Building block 2 – service bus

Service bus is responsible to establish data traversing pathways (data buses) that reach all services and the mechanisms to route and deliver data among services. In Fig. 1, service bus includes these blue double arrowed lines as well as the blue pipe along with hardware infrastructure that runs and manages them. The service bus of PLASH platform is powered by MULE enterprise service bus (ESB). The choice of adopting MULE ESB is due to higher development flexibilities. MULE ESB is open source and is capable to perform integration with other software packages. The requirements of supporting heterogeneous services and clients suggest that the service bus must either provide transformation facilities or prepare several data buses for different data types and protocols. In the PLASH platform, both approaches are implemented.

Fig. 1 portrays three common data buses supported by the service bus of the PLASH platform. The JMS (Java message service) transport delivers JMS messages. JMS message is the default message format for internal components as JMS is supported by many other Java based ESB and software packages especially those for enterprise systems. The HTTP transport is the primary gateway to the outside world. Most of PLASH LAS clients connect to the PLASH system via Internet and the HTTP is the standard protocol to communicate. The JDBC transport uses Java Database Connectivity technology to pave a highway to databases for services. In addition to these three data buses, Extensible Messaging and Presence Protocol (XMPP) transports, UDP transport, TCP transport, FTP transport and SOAP transport are readily available to pick up jobs from various clients and service providers. In case of the need of a unique transport, the PLASH platform is freely open for service providers to install custom transports on the service bus.

Transformation facility is another tool to approach the problem of dealing with heterogeneous clients and services. Transforming facility converts message payloads to formats expected by their designated receivers. As illustrated in Fig. 2 MULE ESB reserves two placeholders for transformation facilities at every service bus terminal. These transformation facilities are called transformers. Typically transformers are installed in pair - one converts data coming from data bus to the format understood by the service and the other does the reverse process.

The PLASH platform has prepared sets of transformers that transform data among JMS message format, Java Map message format, MULE message format, JavaScript Object Notation (JSON) format, Java List format as well as Java String.

Last, but not least, the service bus contains a service broker along with a service contract repository. In the PLASH platform, a service contract is an XML description file that is to be read by the service broker of MULE ESB. In addition to standard SOC paradigms, the PLASH platform utilizes the routing facilities of MULE ESB to achieve service chaining. Specifically, the outbound router depicted in Fig. 2 determines the destination of outgoing messages while the inbound router decides whether to process or pass the incoming messages. In this manner, the PLASH platform reads in router configuration files and composes new services based on existing ones.


Figure 2: