An eXtensible Servibe Bus to address heterogeneity in service choreographies
The eXtensible Service Bus (XSB) is a development and runtime environment dedicated to complex distributed applications. In the Future Internet (FI), such applications will be based, to a large extent, on the open integration of extremely heterogeneous systems, such as lightweight embedded systems (e.g., networks of sensors and actuators), mobile systems (e.g., smartphone applications), and resource-rich IT systems (e.g., systems hosted on enterprise servers and Cloud infrastructures).
Such heterogeneous systems are supported by enabling middleware platforms, particularly for their interaction. With regard to middleware-supported interaction, the client-service (CS), publish-subscribe (PS), and tuple space (TS) paradigms are among the most widely employed ones, with numerous related middleware platforms such as: Web Services, Java RMI for client-server; JMS, SIENA for publish-subscribe; and JavaSpaces, LIME for Tuple space.
SB provides support for the seamless integration of heterogeneous interaction paradigms (CS, PS and TS). Our systematic interoperability approach is carried out in two stages. First, a middleware platform is abstracted under a corresponding interaction paradigm among the three base ones (CS, PS and TS). To this aim, we elicit a connector model for each paradigm, which comprehensively covers its essential semantics. Then, these three models are abstracted further into a single generic application (GA) connector model which encompasses their common interaction semantics. Based on GA, we build abstract connector converters that enable interconnecting the base interaction paradigms.
Specifically, we realize our interoperability solution as an eXtensible Service Bus, which is an abstract service bus that employs the GA connector model as its common bus protocol. Furthermore, we provide an implementation of XSB which builds upon existing SOA and ESB realizations. XSB features richer interaction semantics than common ESBs to deal effectively with the increased heterogeneity of FI. Moreover, XSB incorporates special consideration for the cross-integration of heterogeneous interaction paradigms. Services relying on different interaction paradigms can be plugged into XSB by employing binding components (BCs) that adapt between their native middleware and the common bus protocol. This adaptation is based on the abstractions, and in particular on the conversion between the native middleware, the corresponding CS/PS/TS abstraction, and the GA abstraction.