|
Key
This line was removed.
This word was removed. This word was added.
This line was added.
|
Changes (21)
View Page HistoryPetals ESB is not only a JBI container, the project also contains tools for management, monitoring, frawework to create JBI components to hide the JBI complexity and a collection of Binding Components and Service Engines. All of this will be detailed in the next chapters.
{center}
!petals_esb_600.png|height=355,width=400!
{center}
{column}
{column:width=350px}
{panel:title=Table of contents}{toc}{panel}
{panel:title=Contributors}{contributors:order=name|mode=list}{panel}
{column}
{section}
!petals_esb_600.png|height=355,width=400!
{center}
{column}
{column:width=350px}
{panel:title=Table of contents}{toc}{panel}
{panel:title=Contributors}{contributors:order=name|mode=list}{panel}
{column}
{section}
{center}!petals_esb_600.png|height=355,width=400!{center}
h1. Java Business Integration
Components are plugged into a JBI environment and can provide or consume services through it in a loosely coupled way. The JBI environment then routes the exchanges between those components and offers a set of technical services. JBI is built on top of state-of-the-art SOA standards : service definitions are described in WSDL format and components exchange XML messages in a document-oriented-model way.
!Environnement.jpg|height=345,width=600!
{center}!Environnement.jpg|height=345,width=600!{center}
The central part of the JBI specification is the Normalized Message Router (NMR), described as the "JBI Environment" in figure above. The NMR ensures loosely coupled communication by providing standard Service Provider Interfaces (SPI) that promote the exchange of XML documents between plugged JBI components and loose references via the use of their interface name.
The Petals ESB architecture has been defined using the software component paradigm. The following figure introduces the main components which are required to build the Petals ESB container.
!High Level Architecture.jpg|height=450,width=600!
{center}!High Level Architecture.jpg|height=450,width=600!{center}
Details about the software components are detailed in the next section.
The JBI container can be seen as a service container and like a web application container, a JBI container is not useful when used alone. To use the container, artifacts needs to be installed/deployed into the container with the help of management operations.
!Petals JBI Container.jpg!
{center}!Petals JBI Container.jpg!{center}
h2. Using a JBI Component
The Java classes, which are packaged into the component, are used to create the component class loader and the container links the component to the container with a context and the delivery channel used to send and receive JBI messages. Once these steps are achieved, the component is started but it can not receive and process JBI messages.
!Using JBI Component.jpg!
{center}!Using JBI Component.jpg!{center}
h2. Using a JBI Service Unit
The service unit can not be used alone since the component to deploy the service unit onto is not defined in its descriptor.
!Using a JBI Service Unit.jpg!
{center}!Using a JBI Service Unit.jpg!{center}
h2. Using a JBI Service Assembly
Now that the container is started, the components are installed and the endpoints are activated with the help of the service unit deployment, services can be invoked and messages can be exchanged between service consumers and providers.
!Using the JBI Environment.jpg!
{center}!Using the JBI Environment.jpg!{center}
In the previous figure, a web service client calls a web service which is hosted by the JBI container. This web service is just a facade. The JBI service which is consumed by the facade can be changed as many time as needed. The only condition is to provide the same interface. This approach is extremely flexible since the JBI service can be a service composition of other JBI services (and recursively to reach atomic JBI services).
A Petals ESB container can share its services and access services which are hosted by other containers in a transparent way. It means that on the service consumers and providers' point of view there is no additional configuration like in other JBI containers. Where other JBI containers provide a distributed approach by connecting containers with the use of JBI Binding Components plus huge configuration, Petals ESB provide this feature natively without any additional configuration.
!Distributed Environment.jpg!
{center}!Distributed Environment.jpg!{center}
The previous figure shows that multiple containers with their deployed JBI artifacts are completelu equal to a single container which holds all these artefacts. The following sections introduce the software modules which are needed to build this Distributed Entreprise Service Bus.
All the containers are linked together by the transporter layer. All the services providers and consumer scan potentially send messages to each other. All the links which were at the charge of the distributed application developer are now hidden by the Petals ESB container not only at the service level but also at the communication one.
!Inter Nodes Communications.jpg!
{center}!Inter Nodes Communications.jpg!{center}
The previous figure illustrates two visions of the inter node communication which are totally equivalent. On the left side, all the containers are linked together by point to point communication channels. On the right side, all the containers can also communicate to each other but the links are totally hidden by an abstract communication layer. At the lower level, the links exist but are not important on the transport user point of view (in the Petals ESB case, the router layer does not care about links between containers).
There is actually some work to generalize these monitoring approaches to all the container software components and also to provide monitoring data in more standard ways (using OASIS WSDM specification and WS-* seems to be good candidates). The following figure is a general vision of what is planned by adding aspects/wrappers/controllers to Fractal software components :
{center}!Monitoring.jpg!{center}
h1. Kernel Features
Petals ESB is not a simple distributed JBI container where all services can be accessed by all the consumers. To add some visiblity control containers can be classified by domains and subdomains.
{center}!Domains.jpg!{center}
* Petals ESB containers can only communicate with containers which belong to the same domain.
Since JBI messages are XML based and potentially contain redundant data, the compression feature has been added when exchanging messages between Petals ESB containers. This compression is done at transport level when a property ({{org.ow2.petals.transport.compress}}) is detected in the message exchange (set by the service consumer).
{column}
{column:width=350px}
{panel:title=Table of contents}{toc}{panel}
{panel:title=Contributors}{contributors:order=name|mode=list}{panel}
{column}
{section}