DSB Management

The main goal of the DSB management is to hide all the JBI complexity by wrapping and provided some JBI independant APIs and solutions. In order to achieve this, some hacks have been performed on the DSB side and are explained in the new sections.

In the next sections we will refer to the DSB distribution folder with the $DSB_HOME variable even if it is not set in the system environment.

Components

Startup

We assume that we do not need to deal with JBI components and let the Service Bus manage them. To achieve this, we introduced an artifact repository file implementation where JBI artefacts are stored on the Service Bus side. This artefact repository is available under $DSB_HOME/artifacts/ and is splited into 3 parts : components, sa and sl.

The components available under $DSB_HOME/artifacts/components can be automatically started at DSB startup by filling the embedded.component.list property in $DSB_HOME/conf/dsb.cfg. For example, if the dsb.cfg file is filled like :

and if the SOAP and REST components are available in the components folder, they will be started automatically when the container starts (no more JBI lifecycle management for these components is needed).

Configuration

We forked the standard Petals ESB components to be able to configure them more easily and to share information between the container and the components. This section introduces what type of configuration is possible for the DSB components. Especially, we introduced a new way to define ports : instead of having to modify the components themselves (the jbi.xml component) or to have to deal with some JMX calls which are not compliant with the easy approach we want to have, component ports can be configured in the $DSB_HOME/conf/components.properties file like this :

Web Service

The DSB can be managed from remote clients using the Web Service API. The initial goal of the Web service API is to hide the JBI layer which is not Internet-friendly (even if some JBI aspects are used and will be explained in this section). This section gives details on how to use the Web service client library.

Deploy a JBI Service Assembly

A JBI Service Assembly (SA) can be uploaded to the DSB artefact repository (a folder in the default implementation as described earlier). Once the SA is uploaded, one can call the SA lifecycle operations on the uploaded SA.

A code sample is available at (http://chamerling.org/2010/04/12/librairie-cliente-pour-petals-esb/)

Bind and Expose Services

A more easy way to work with services is to let the DSB the responsability to configure itself in order to bind or expose services as it can be done with the help of JBI SAs. The default implementation of the DSB comes with a management API which is dedicated to that. By using this Web service API, you just use standard SOAP client or library to communicate with the Management layer of the DSB.

SOAP-based Services

The DSB SOAP Component is in charge or binding external services to the bus and to expose DSB services as SOAP services. This can be done by using a collection of Web services embedded and provided by the DSB itself.

In order to bind an external Web service, simply call the bindWebService() operation of the SOAPServiceBinder DSB service with the WSDL URL of the service to bind as parameter. As a result, a new endpoint will be created in the DSB and each time a message is received on this DSB endpoint, it will be forwarded to the real Web service (the one you bound).

TODO : Example with WSDL and resulting endpoints
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.