In IoT scenarios, numerous things and services are connected and coordinated via distributed events. Hence, a service bus needs to be established to streamline these events to enable the efficient and stable coordination of IoT services as an integrated service system. However, without an awareness of the coordination requirements of the application, the publish/subscribe-based service bus will not be optimally utilized to deliver real-time and coherent sensor events, and at the same time, service concurrency and scalability cannot be maximally realized. In this chapter, a service-oriented publish/subscribe middleware is proposed as a base for the construction of a distributed, ultra-scale, and elastic service bus for IoT applications. In order to establish this publish/subscribe service bus, the service coordination logic is then extracted from an event-driven business process, and the coordination logic is translated into the event matching and routing functions of the publish/subscribe middleware.
TopIntroduction
In some applications, the communication foundation needs to cooperate with the computation systems. Cloud computing in data centres is based on this idea, enabling elastic and scalable computation with high levels of utility to be realised. Particularly in IoT scenarios, numerous things and real-time services need to connect and coordinate with each other, meaning that cooperation becomes very important in supporting the scalablility and interconnection of IoT services. In the work of Bakken et al. (2011), a special publish/subscribe middleware was proposed for smart grids, involving an adjustment of the communication fabric for higher-layer IoT services. SDNs (O. M. E. Committee, 2012) are similar, and allow an application to control all the operations in the network. These two examples do not involve the redesign of upper applications. In the current work, the communication fabric for IoT services acts as a service bus. In order to enable a service bus and IoT service systems to cooperate, three problems must be addressed:
- 1.
Whether the architecture of the service bus supports the higher-layer applications in utilising its fine-grained functionalities and adjusting it flexibly to adapt to changes.
- 2.
Whether the interaction functionalities can be separated from the upper application and can be assumed by the communication fabric to realise decoupling-based scalability for the application’s systems.
- 3.
Whether the higher-layer applications are aware of the underlying communication fabric, enabling adaptation such as adjusting their behaviour and moving.
In the same way as GridStat and SDN enabled a rethinking of the foundations of communication, the work of Li et al. (2010) and Hensa et al. (2014) involved the rethinking of higher-level applications to allow accommodation of the underlying functionality. These authors partitioned a single business process into multiple pieces, which were deployed and executed according to the states of the underlying infrastructure. However, they did not consider two-layer cooperation.
In the current work, the underlying communication fabric which works on the service (SOAP) protocol is designed, followed by the distributed service containers. These two components form the distributed publish/subscribe-based service bus for IoT services, where service routing such as addressing service endpoints and delivering service invocations is supported, and its routing and management capabilities are encapsulated in the form of application interfaces, allowing bus clients to access its functionalities. This bus is called the unified message space (UMS).
The remainder of the paper is structured as follows. Section 2 describes the complete architecture of the service bus. Section 3 describes the service-oriented publish/subscribe middleware over SDN. In Section 4, the service’s behaviour coordination functionalities are integrated into the middleware, based on event relations. In Section 5, the authorisation control of the service is combined with the communication fabric, as an example of the integration of service properties. In Section 6, applications and experiments related to this solution are discussed. Section 7 describes related work. Finally, conclusions are drawn in Section 8.
TopUnified Message Space
A service-oriented publish/subscribe middleware is designed here, and based on this, an event-driven service bus called UMS that can connect together wide-area heterogeneous sensors/actuators and IoT services is presented. The aim of this publish/subscribe middleware design is to converge time-synchronous sensed IoT data and IoT service operations, support interoperation among all IoT participants, and provide a mechanism for coordination between IoT resources and IoT services. Publish/subscribe functionality alone cannot achieve these tasks. Together, the publish/subscribe middleware and the service runtime environment form an event-driven service bus called UMS, in which the names of and relationships between events can be used to describe IoT service interfaces that allow for the convergence of service capabilities and IoT data. Coordination logic can be extracted from the services as an independent modelling unit, and can be integrated into the communication fabric to realise cross-layer coordination in the middleware; collaborating business processes can also be transparently managed without requiring awareness of their deployment sites.