Mobility Platform Connectors in Glassfish ESB
The Mobility Platform team has been working on a number of new features and enhancements since the release of GlassFish Mobility Platform v1.1 in February 2009. One of those features is the ability to run the Mobility Platform software on top of Glassfish ESB. There is a clear synergy between the Mobility Platform and Glassfish ESB. The former is about mobilizing the enterprise, while the latter is about integration of enterprise and legacy information systems. By running the Mobility Platform on top of Glassfish ESB, as opposed to just Glassfish, it is possible to write enterprise connectors that sit on the enterprise bus and can mobilize all sorts of information systems.
The Mobility Platform v1.1 supports two types of enterprise connectors: based on ECBO or JAX-RS. ECBO connectors are deployed as Java EE connectors and are co-located with the sync engine on a Glassfish instance. JAX-RS connectors are web applications that can be deployed on any Glassfish instance and interface with the sync engine via a JAX-RS connector bridge (which is a Java EE connector written using the ECBO). To enable integration with the ESB service bus, we have developed a new connector bridge for JAX-WS. This connector translates ECBO requests into JAX-WS requests to a connector implemented as a web service endpoint. The exact details of this web service definition is beyond the scope of this blog; it suffices to say that the web service defines a method for each of the four CRUD (create, retrieve, update and delete) operations involved in a synchronization session.
Given that enterprise connector is now simply a SOAP-based web service, it is possible to implement it using tools and languages available in Glassfish ESB. In particular, it is possible to use BPEL and the excellent graphical tools in Glassfish ESB to develop an enterprise connector. In what follows, will we'll investigate the development of a MusicDb connector using these tools. For more information on the MusicDb connector please refer to this blog entry.
Every enterprise connector implemented in BPEL will need access a serialization service, which is specific to each connector, and is responsible for serializing and deserializing business objects according to the contract that was agreed with client applications. The serialization service is implemented as a web service and listed as a partner link in the BPEL process. In addition, since the MusicDb connector stores business objects in a relational database, there is a database binding component (BC) which is also partner link in the BPEL process definition. The overall flow of the process is: loop until the terminate message is received and execute commands using the serialization service and the database binding component as needed to implement the semantics of each message. The following is a graphical representation of this BPEL process:
The box on the left represents the WSDL implemented by all enterprise connectors that use JAX-WS. The two boxes on the right correspond to the database binding component and the serialization service, from top to bottom. The middle box is a graphical representation of the BPEL process flow outlined above.
If you are interested in trying out any of these new features and providing feedback, please contact us at firstname.lastname@example.org and we can provide an early access release of the Mobility Platform for a limited evaluation period.