Skip to main content

Middleware Technology for IoT Systems: UNIT 2

 HOME             UNIT 1           UNIT 2          UNIT 3         UNIT 4           UNIT 5


Middleware Technology for IoT Systems:


            Middleware for IoT is the software technology that has been used as the basis for the development, management, and integration of both heterogeneous devices and applications in IoT environments. Despite the intended definition of a horizontal architecture approach (i.e., a common system approach to manage different application domains or verticals) for IoT middleware has been one of the main requirements by global IoT projects during the last years, the imminent arrival of 5G technology is revealing that current middleware approaches possibly will face some challenges due to new application requirements imposed by 5G (e.g., big data bandwidth and infinity, reliable, and efficient capability of networking, joining massive user experiences on mobile communications with multimedia sharing). In this way, this chapter not only presents concepts and architectural layers of IoT Middle- ware, but also helps in the identification of future challenges and further perspectives regarding the IoT Middleware ability to provide pervasive systems services able to cope with 5G-based application requirements in IoT environments.

During the last decades the development of ubiquitous and pervasive applications has been influenced by innumerous technological improvements, and middleware technology, which is an important building block idealized by the distributed sys- tem community toward the fulfillment of many application requirements, is one of these cutting edge technologies that are influencing the way modern systems and applications are developed today.


Middleware is considered as an enabling technology that facilitates the development of distributed applications. In this sense, middleware has evolved from hiding network details from applications, into more sophisticated systems to handle many important requirements providing support for distribution, heterogeneity, mobility, interoperability, and data management, just to name a few [8]. The natural evolution of middleware technology has been influenced by innumerous developments and standardization efforts, and the Internet of Things (IoT) is an important field of the contemporary computing that dictates the increasing evolution of middleware in terms of both worldwide scientific research and industrial development.


Internet of Things has been stating a vision of a computing paradigm that goes beyond to plug physical devices into the Internet in order to link physical and virtual objects globally. In other words, IoT must be able to cause new experiences to users, providing smart and ubiquitous services to users according to their behaviors and needs. Thus, the main enabling factor of the IoT is the ubiquitous integration of several Information and Communication Technologies (ICT) in an environment (ecosystem) where pervasive things can automatically communicate to computer systems, people, and each other providing smart services for the benefit of humankind [14].


IoT ecosystem is a computational environment based on a layered systems architecture style that uses this view to abstract the integration of objects (i.e., physical devices) and to provide services solutions to applications. In IoT ecosystems, high- level system layers (as the application layer) are composed of IoT applications and middleware system, which is an entity interposed between the physical infrastructure of devices and the applications [4]. Consequently, one of the main functions of IoT middleware is to provide to applications a concise set of services according to physical devices functionalities.


Although there are IoT middleware systems designed to be applied in specific areas of applications (e.g., a vertical architecture approach), most of IoT middleware were designed to cover different domains and lack for a generic and more horizontal system architecture able to cope with the interoperation of these different areas. In this sense, the SOA (Service-Oriented Architecture) standard has been used as a viable design choice to help mitigate this gap [63]. The adoption of SOA principles allows the decomposition of complex systems into a set of modular applications, which consist of a system of simpler and well-defined components that offer their own functionality as standard services.

                Current analyses from R&D institutes predict that, by 2020, 50 billion of IoT devices will be connected to mobile networks worldwide, and consequently, will produce a large number of mobile data traffic [25]. This explosion in data traffic can be characterized by the proliferation of high-end mobile devices in people’s lives, mainly the Internet-oriented smart phones and tablets which have been considered a kind of data-hungry mobile devices. Another important factor associated with the mobile data traffic growth is the increasing demand from users for advanced mul- timedia applications such as Ultra-High Definition (UHD) and 3D video, as well as augmented reality and immersive experience. Furthermore, social networking and mobile cloud computing applications (MCC) have become important elements for mobile users introducing new consumption trends and a considerable amount of mobile data traffic around the world [25].

The IoT architecture helping in the identification of basic architectural layers, as well as in the mapping of the IoT middleware requirements (e.g., Cloud-based Big Data Management, Heterogeneity of IPV6-based Devices, Interoperability of Data, Context-based Smart Services Provision, Pervasive and Cognitive Communication Patterns, and Security and Privacy issues) that would be needed to reach the future 5G-based IoT applications requirements demands.

Another contribution of this chapter is to present our current IoT middleware plat- form that has been extended to reach the evolution of the IoT, and consequently, the advent of the 5G paradigm. COMPaaS (Cooperative Middleware Platform as a Ser- vice) was designed to help users in the development of IoT applications. COMPaaS extends the specifications of the EPCglobal regarding RFID middleware interfaces for high-level services provision. Moreover, it provides lightweight system architecture based on the ETSI specifications for M2M (Machine-to-Machine) services platform, as well as web-based application services for physical devices integration (CoAP project). The main functions of COMPaaS range from data management to devices integration, and address the provision of high-level and cooperative services to IoT applications.


 IoT ecosystems, computing interactions are driven by smart objects, which are system entities considered the main building blocks of the IoT environment. By putting intelligence into everyday objects (i.e., dedicated embedded systems into everyday physical devices), these devices are turned into smart objects able not only

 

to collect information from the environment and interact/control the things of the physical world, but also to be interconnected to each other through the Internet to autonomously exchange pervasive data and information. The expected huge number of interconnected devices and the significant amount of available data, open new opportunities to create smart services that will bring tangible benefits to the society, environment, economy, and individual citizens [11].

IoT considers the pervasive presence of a variety of smart objects interacting and cooperating in the physical environment through available ubiquitous services. Thus, the goal of the IoT is to enable things to be interconnected at anytime, anyplace, with anything and anyone, ideally using any path/network and any source.

To make the idea of the IoT more clear, let us consider the “city ecosystem” as an example of how the city of the future (i.e., the Smart City) will look like in the coming years [11]. Indeed, a smart city is a kind of city that should be able to oper- ate simultaneously on two representation levels, physical and virtual, respectively. These abstractions should imply in the provision of intelligent solutions that ensure efficiency at multiple levels, aiming basically to: (i) a more aware and optimized usage of the resources of the city, (ii) a minimization of environmental impact (e.g., by reducing CO2 emissions), and (iii) an increase in the life quality of citizens in terms of safety, health, and wellness. This smart capability is desired due to the fact that, today, half of the global population is concentrated in the cities, and hence, is increasingly consuming the city’s resources (e.g., light, water) everyday. Besides, quality, sustainability, and security are crucial requirements and unavoidable issues for the city.

A smart city should provide autonomous management of its public services (e.g., transport, energy, lighting, waste management, health, and entertainment) through the widespread adoption of Information and Communication Technologies (ICT). Such technologies are the basis for the provision of a logical/virtual infrastructure that should be able to control and coordinate the physical infrastructure of the city in order to adapt the city services to the actual citizen needs, while reducing waste and making the city more sustainable [12].

Figure 1 provides a schematic representation of a smart city ecosystem. In this perspective, the city will be equipped with physical devices or things (i.e., net- work of sensors, cameras, speakers, smart meters, and thermostats) that will col- lect information of the environment. The gathered information, the so-called “Big Data” 

Fig. 1 Schematic representation of a Smart City ecosystem [24]



Horizontal Architecture Approach for IoT Systems

A systemic implementation of IoT ecosystems is usually based on a layered architecture style [7], which can range from data acquisition layer (i.e., Perception layer) at the bottom, to application layer at the top (see Fig. 2). In this kind of architecture, layers from the bottom usually contribute to devices integration and data capturing, while layers from the top are responsible for data distribution and utilization by IoT applications.


Fig. 2 IoT systems architecture overview

The common architectural approach largely used by current IoT systems is a vertical strategy where each application is built on its proprietary ICT infrastructure and dedicated physical devices. In this approach, similar applications do not share any feature of the IoT infrastructure (e.g., managing services and network), resulting in unnecessary redundancy and increase of costs (i.e., financial and computational costs). As explained in the smart city example, this totally vertical approach should be overtaken by a more flexible and horizontal approach, where a common operational platform is able to manage the network and the application services, and abstracts across a diverse range of data sources to enable applications to work properly.

As shown by Fig. 2, through a horizontal IoT middleware approach, applications no longer work in isolation, and share infrastructure, environment, and network elements by means of a common service platform (i.e., the IoT middleware plat- form) that orchestrates on behalf of them. Figure 2 also shows the three different layers (or interaction phases) in which the cyber-physical world interactions should take place. Specifically, they are:

 (i) perception layer, 

(ii) transportation layer, and 

(iii) application layer (i.e., process, management and utilization phases). Each layer is characterized by different interacting technologies and protocols and has different purposes and functions as discussed below:

  • Perception layer: it refers to procedures for sensing the physical environment, collecting real-time data, and reconstructing a general perception of it in the virtual world (i.e., in the system logical domain). Technologies such as RFID and sensors provide identification of physical objects and sensing of physical parameters. While technologies such as IEEE 802.15.4 and Bluetooth are responsible for data collecting.
  • Transportation layer: it includes mechanisms to deliver the collected data to applications and to different external servers. Methods are therefore required for accessing the network through gateways and heterogeneous technologies (e.g., wired, wireless, satellite), as well as for addressing and/or routing.
  • Applications layer: it deals with processing and analyzing information flows, forwarding data to applications and services, and providing feedbacks to control applications. In addition, it is responsible for critical functions such as device discovery, device management, data filtering, data aggregation, semantic analysis, and information utilization/distribution. Indeed, these functions are essential for IoT ecosystems, and as such, must be handled by an IoT middleware platform.

The first step toward the Internet of Things is the collection of information about the physical environment (e.g., temperature, humidity, brightness) or about objects (e.g., identity, state, energy level). Data acquisition is encompassed by using different sensing technologies attached to sensors, cameras, GPS terminals, while data collection is generally accomplished by short range communications, which could be open source standard solutions (e.g., Bluetooth, ZigBee, Dash7, Wireless M-BUS) as well as proprietary solutions (e.g., Z-Wave, ANT).

Once data is gathered through sensing technologies, it needs to be transmitted across the network in order applications can be able to consume the data. Heterogeneous communication technologies form the backbone to access the network.

When data arrives in the application layer, information flows are processed and then forwarded to applications. The IoT middleware layer covers a fundamental role for managing the above operations. It is crucial for hiding the heterogeneity of hard- ware, software, data formats, technologies and communication protocols that characterize an IoT ecosystem [15]. Besides, it is responsible for abstracting all the features of objects, network, and services, and for offering a loose coupling of components. Additional features of this layer are service discovery and service composition.


SOA-based IoT Middleware


In IoT ecosystems, computation, storage, data management, and communication services are intended to be high ubiquitous and distributed. Furthermore, the enti- ties of the environment (people, things/objects, platforms, and surrounding spaces) are intended to create to IoT applications a highly decentralized common pool of resources, which must be interconnected by a dynamic network of networks.

 

The smart integration of both intended services and entities represents the real ecosystem of the IoT. In this context, middleware for IoT is considered an important building block for the provision of IoT services, which are extremely desired to be highly pervasive and distributed. Indeed, middleware is an IoT platform intended to be a service of services to IoT ecosystems (i.e., a common services platform as described in the Sect. 2.2).

The notion of service-based IoT systems has been realized according to the principles of SOA and ROA (Resource-Oriented Architecture) architecture styles, which increasingly coexist in the IoT ecosystem since ROA allows the deployment of lightweight SOA-based communication mechanisms embedded into resource- constrained IoT devices [45]. SOA-based techniques provide to IoT applications a uniform and structured abstraction of services for communication with IoT devices. On the other hand, ROA-based approaches realize the necessary requirements to make the devices (things) addressable, searchable, controllable, and accessible to IoT applications through the Web.

According to Fig. 3 (which is an extension of Fig. 2), IoT middleware is a software layer or a set of sub-layers interposed between technological (perception and transportation layers) and application layers. The middleware’s ability to hide the details of different technologies is fundamental to exempt the programmer from issues that are not directly pertinent to her/his focus, which is the development of specific applications enabled by IoT infrastructures [4]. In this way, IoT middleware has received much attention in the last years due to its major role of simplify the development of application and the integration of devices.

Many of the system architectures proposed for IoT middleware comply with the SOA approach. A SOA structure for IoT middleware is illustrated in Fig. 3. According to this structure, the applications layer allows end users to request information services and to interact with the middleware.

Fig. 3 SOA-based IoT middleware architecture
 
The devices layer can be composed of any IoT device which can connect to the middleware to provide services based on its features/resources. The devices abstrac- tion layer can be embedded into both devices and middleware. Each service in the services provision layer is composed of one or more services from the devices. The devices function is abstracted into services by the devices abstraction layer and pro- vided by the middleware through the services provision layer.
The applications should use an API from the services provision layer to consume the provided services. All the processing activity is generated in the management core layer also called middleware core. The security layer must ensure security in all exchanged and stored data, since the middleware architecture enables some vulner- ability points that can be explored by security threats.





Comments