Java Business Integration

Last updated

Java Business Integration (JBI) is a specification developed under the Java Community Process (JCP) for an approach to implementing a service-oriented architecture (SOA). The JCP reference is JSR 208 for JBI 1.0 and JSR 312 for JBI 2.0. JSR 312 was removed from the JCP balloting process on 17 Dec, 2010 by the submitters without being accepted.

Contents

JBI is built on a Web Services model and provides a pluggable architecture for a container that hosts service producer and consumer components. Services connect to the container via binding components (BC) or can be hosted inside the container as part of a service engine (SE). The services model used is Web Services Description Language 2.0. The central message delivery mechanism, the normalized message router (NMR), delivers normalized messages via one of four Message Exchange Patterns (MEPs), taken from WSDL 2.0:

  1. In-Only: A standard one-way messaging exchange where the consumer sends a message to the provider that provides only a status response.
  2. Robust In-Only: This pattern is for reliable one-way message exchanges. The consumer initiates with a message to which the provider responds with status. If the response is a status, the exchange is complete, but if the response is a fault, the consumer must respond with a status.
  3. In-Out: A standard two-way message exchange where the consumer initiates with a message, the provider responds with a message or fault and the consumer responds with a status.
  4. In Optional-Out: A standard two-way message exchange where the provider's response is optional.

To handle functionality that deals with installation, deployment, monitoring and lifecycle concerns amongst BCs and SEs, Java Management Extensions (JMX) is used. JBI defines standardized packaging for BCs and SEs, allowing components to be portable to any JBI implementation without modification.

JBI defines standard packaging for composite applications: applications that are composed of service consumers and providers. Individual service units are deployable to components; groups of service units are gathered together into a service assembly. The service assembly includes metadata for "wiring" the service units together (associating service providers and consumers), as well as wiring service units to external services. This provides a simple mechanism for performing composite application assembly using services. [1]

JBI implementations

The following open-source software JBI based ESB implementations are available:

The following ESBs are certified by the JBI/JSR 208 TCK: Open ESB and Petals ESB.

In addition, the Project GlassFish open-source Java EE application server comes with the JBI runtime from the Open ESB project.

Java EE SDK also includes the JBI runtime and a BPEL orchestration engine.

Oracle claims its Fusion Middleware comes with JBI implementation. [ citation needed ]

TIBCO ActiveMatrix Service Grid provides a service container framework, based on the JSR 208 and SCA specifications (Service Component Architecture), allowing service containers (Java, Java EE, .net, BPEL) to be added as needed, as composite applications on a common foundation.

Existing JBI Components

<https://download.java.net/general/open-esb/docs/jbi-admin-guide/ }} Open JBI Components project on java.net is an incubator project started to foster community-based development of JBI components that conform to the Java Business Integration specification (JSR 208).</nowiki>

Books

See also

Related Research Articles

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

The Jakarta Transactions, one of the Jakarta EE APIs, enables distributed transactions to be done across multiple X/Open XA resources in a Java environment. JTA was a specification developed under the Java Community Process as JSR 907. JTA provides for:

The Jakarta Messaging API is a Java application programming interface (API) for message-oriented middleware. It provides generic messaging models, able to handle the producer–consumer problem, that can be used to facilitate the sending and receiving of messages between software systems. Jakarta Messaging is a part of Jakarta EE and was originally defined by a specification developed at Sun Microsystems before being guided by the Java Community Process.

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, that can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components it is deploying.

Enterprise service bus Communication system in a service-oriented architecture

An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.

Jakarta Connectors is a Java programming language tool for connecting application servers and enterprise information systems (EIS) as part of enterprise application integration (EAI). While JDBC is specifically used to connect Java applications to databases, JCA is a more generic architecture for connection to legacy systems. JCA was developed under the Java Community Process as JSR 16, JSR 112 and JSR 322.

The Java Portlet Specification defines a contract between the portlet container and portlets and provides a convenient programming model for Java portlet developers.

<span class="mw-page-title-main">GlassFish</span> Application server project

GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by Payara, Oracle and Red Hat. The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the Eclipse Public License (EPL).

The Java API for XML Messaging (JAXM) enables distributed software applications to communicate using XML. JAXM supports both asynchronous and synchronous messaging.

Apache ServiceMix is an open-source software project to implement a distributed enterprise service bus (ESB).

Jakarta Persistence is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.

OpenESB is a Java-based open-source enterprise service bus. It can be used as a platform for both enterprise application integration and service-oriented architecture. OpenESB allows developers to integrate legacy systems, external and internal partners and new development in business processes. It supports a multitude of integration technologies including standard JBI, XML with support for XML Schemas, WSDL, and BPEL with the aim of simplicity, efficiency, long-term durability, and low TCO.

Apache ODE

Apache ODE is a software coded in Java as a workflow engine to manage business processes which have been expressed in the Web Services Business Process Execution Language (WS-BPEL) via a website. It was made by the Apache Software Foundation and released in a stable format on March 23, 2018. The software principally communicates with one or more Web services, sending and receiving messages, manipulating data and handling exceptions (errors) as defined by any given process. The engine is capable of running both long and short living processes to coordinate all the services that make up a service or application (orchestration).

Service Component Architecture (SCA) is a software technology designed to provide a model for applications that follow service-oriented architecture principles. The technology, created by major software vendors, including IBM, Oracle Corporation and TIBCO Software, encompasses a wide range of technologies and as such is specified in independent specifications to maintain programming language and application environment neutrality. Many times it uses an enterprise service bus (ESB).

JBoss Tools is a set of Eclipse plugins and features designed to help JBoss and JavaEE developers develop applications. It is an umbrella project for the JBoss developed plugins that will make it into JBoss Developer Studio.

<span class="mw-page-title-main">Petals ESB</span> Type of computer software

Petals ESB is an open-source ESB developed by Linagora. It is a tool for implementing a service-oriented architecture (SOA). It is standard, modular, and physically distributed, to adapt to large-scale infrastructures.

Java Composite Application Platform Suite is a standards-based enterprise service bus software suite from Oracle Corporation. The suite has several components that help to integrate existing applications and deliver new business services in a service-oriented architecture environment. It is a Java EE compliant platform and provides application-to-application integration, business-to-business integration, business process management along with integrated human workflow, an Enterprise Information Portal, extract transform and load (ETL), business activity monitoring and composite application development.

Jakarta RESTful Web Services, is a Jakarta EE API specification that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern. JAX-RS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients and endpoints.

Jakarta Management is a Java specification request (JSR-77) for standardization of Jakarta EE server management. Jakarta Management abstracts the manageable parts of the Jakarta EE architecture and defines an interface for accessing management information. This helps system administrators integrate Jakarta EE servers into a system management environment and also helps application developers create their own management tools from scratch.

References