This paper proposes an Internet of Things (IoT) middleware called Middleware for Cooperative Interaction of Things (MinT). MinT supports a fully distributed IoT environment in which IoT devices directly connect to peripheral devices easily construct a local or global network, and share their data in an energy efficient manner. MinT provides a sensor abstract layer, a system layer and an interaction layer. These enable integrated sensing device operations, efficient resource management, and active interconnection between peripheral IoT devices. In addition, MinT provides a high-level API to develop IoT devices easily for IoT device developers.
We aim to enhance the energy efficiency and performance of IoT devices through the performance improvements offered by MinT resource management and request processing. The experimental results show that the average request rate increased by 25% compared to Californium, which is a middleware for efficient interaction in IoT environments with powerful performance, an average response time decrease of 90% when resource management was used, and power consumption decreased by up to 68%. Finally, the proposed platform can reduce the latency and power consumption of IoT devices.
Recently, many IoT middleware solutions have been researched and developed. Middleware provides a software layer between applications, the operating system (OS), and the network communications layer, and coordinates some aspects of cooperative processing. Generally, middleware abstracts the complexities of the system or hardware, allowing application developers to develop devices and applications simply and easily. IoT middleware can ease the development process by integrating heterogeneous computing and communications devices, and by supporting interoperability within diverse applications and services.
In particular, because an IoT environment can display considerable heterogeneity in both communication and system level technologies, IoT middleware should support both perspectives as necessary. IoT middleware must therefore integrate these technologies to support the potentially diverse application domains; namely, existing wireless sensor networks (WSNs), M2M (Machine to machine) communications, and supervisory control and data aggregation.
Table 1 is the comparative table to summize of the middlewares. WSN and Cloud-centric IoT Middlewares: Hydra is a type of middleware used for ambient intelligence services and systems. Hydra provides semantic level interoperability using semantic web-based technology. Hydra’s resource, device, and policy managers make it lightweight, by optimizing power consumption in resource-constrained devices.
However, ontology-based semantic interoperability solutions implemented in Hydra are likely to be unsuitable in IoT, because there are currently no standard ontologies for ultra-large-scale IoTs. UbiSoAP provides seamless networking of web services. UbiSoAP is a lightweight middleware solution, which offers network level interoperability by supporting heterogeneous networking devices and technologies. However, ubiSOAP cannot be operated by itself, and this is key for the adaptive and autonomous behavior of the things.
The mobile sensor data processing engine (MOSDEN) is a very similar WSN-centric middleware for IoT environments. It supports sensing as a service model, built on top of Global Sensor Networks (GSN). The use of a plugin architecture improves the scalability and user friendliness of the middleware; this is because plugins for heterogeneous devices are easier to build and available in easily accessible places. An information of IoT devices, which include sensor devices, is always updated in the IoT environment, because the environment and the state of the device may change periodically.
MIDDLEWARE FOR COOPERATIVE INTERACTION OF THINGS
As shown in Figure 1, an IoT device implemented by MinT can interact spontaneously with peripheral IoT devices connected in the same region and network area. For this purpose, MinT provides the following features. MinT provides a network environment to support active interactions between heterogeneous network protocols. An IoT environment supports various network protocols such as Bluetooth, BLE, ZigBee, and Wi-Fi; when a united network environment is installed, connectivity can be established between IoT devices via any of the protocols, based on the quality of the physical network connection and flexible use of system resources.
Figure 2 shows the architecture of MinT. The MinT application is composed of five layers: the Platform Adapter, Sensor Abstract Layer, Interaction Layer, System Layer, and Application Layer. The Hardware Platform Adapter provides the immediate upper interface to control the hardware installed as part of the IoT device. The Hardware Platform Adapter provides interfaces to the underlying hardware that let users control the sensors and network devices connected to the hardware platform. Support is provided via Linux-, Android-, and Windows-based interfaces.
Figure 4 shows the structure of the Interaction Layer. The key goals of the Interaction Layer are:
- Manage the process of creating connections for various network protocols.
- Improve the message reliability.
- Perform fast searches for surrounding devices and enable efficient allocation of resources.
The Connectivity module in MinT is responsible for supporting networking and connectivity between IoT devices. This module provides the Network Manager for efficient exchange of data between IoT devices. As shown in Figure 4, the Network Manager is composed of submodules in Matcher & Serialization, Transportation, and Message Handler that undertake all the operations related to data receiving/processing/sending.
To develop a device driver for the ultrasonic sensor, the device controller must first be developed as shown in Figure 11 (left). The device controller is based on the C language to allow embedded system programming, and is developed by referring to the interfaceprovided in Table, in combination with MinT.
Because MinT is IoT middleware based on Java, the device driver should ultimately be provided in Java; this allows the association of SAL with MinT, as shown in Figure 11 (right). In order to develop a device driver, the MinT API Device class must be inherited; the device driver is then developed by referring to the device controller. Finally, the device controller and driver are linked by the java native interface (JNI) and the final device driver is created.
MinT aims to provide a simple and easy-to-use development kit for IoT device developers. This allows developers to develop IoT devices with minimal effort. Figure 12 shows source code used for IoT device application development, implemented in MinT. First, it inherits the MinT class and uses the MinT base middleware. MinT typically provides approximately five functions required to operate an IoT device.
PERFORMANCE EVALUATION AND RESULTS
(a) client modules for experiment, (b) server module with ultrasonic sensor, (c) server module with camera sensor.
We construct experimental setup, with ten Raspberry Pi 3s for the virtual clients and four servers as shown in Figure 13a. The client modules are the IoT testbeds without sensor devices in order to send packets periodically to the server. The specifications of the client (Raspberry Pi 3) were: ARM Coretex-A53 CPU, 1GB RAM, and Linux OS. Figure 13b, c show the IoT device servers implemented usig MinT. They are tested on hardware platforms including Beaglebone Black, Raspberry Pi 3 and Intel Edison. Each device installs the camera sensor, ultrasonic sensor and BLE module.
Figure 14 shows the power consumption according to the measurement interval of an ultrasonic sensor device. The ultrasonic sensor takes about 46ms to measure the distance from it. It therefore consumes 0.16W while it continuously measures the distance at an interval of 46ms. In addition, Camera sensor takes about 832ms to take a picture from it. It consumes 1.2W while it continuously takes picture at an interval 832ms. Figure 14 shows that the power consumption rate decreases sharply as the measurement interval increases.
Figure 18 shows the average throughput performance on various hardware platforms for MinT and Californium. When compared to Californium, MinT shows about 19% better performance on the Raspberry Pi 3 and about 45% better on BeagleBone Black. However, MinT demonstrated about a 5% worse throughput on the Intel Edison, compared to Californium. Given the fact that both the BeagleBone Black and Intel Edison are low-end hardware platforms with low throughputs, the inferior performance of MinT on the Intel Edison need not be regarded to be of much significance.
In this paper we have proposed a distributed IoT middleware solution called MinT, aimed at firstly addressing the problems of existing IoT middleware platforms, and secondly fulfilling other IoT middleware requirements. First, we designed the sensor abstract layer, which provides integrated operations for the various sensors and network devices. Because the SAL provides a powerful suite of APIs for developers, they can easily build and maintain IoT based applications. The abstracting nature of the SAL also allows MinT to enhance the re-usability of device drivers on other hardware or software platforms.
Second, we proposed resource management that helps to manage both the local data measured by sensor devices, and the network data received from other IoT devices. The Resource Manager in MinT defines two resource storages and sensor measurement modules to aim at reducing unnecessary sensor device behavior and reduce unnecessary IoT device processing. These allows MinT to enhanced the efficiency of use of the sensor device.
Notably, this reduced the response time and power consumption of an IoT device. MinT controls the sensor device and manages the sensing or network data, it can respond directly with the data stored in the local resource storage. Therefore, the experimental results demonstrated an average response time decrease of 90% when resource management was used. In addition, MinT can adjust the measurement period of the sensor device and physically limits power consumption of the sensor device while not measuring data. Therefore, we can show the results of power consumption decreased by up to 68%.
Third, we designed the Connectivity Module to encourage efficient interaction between the IoT devices. This layer supports the network environments between variable network protocols via the Protocol Adapter module. To reduce the response times for requests passed between IoT devices, MinT also implements simplified networking technology and an optimized System Layer. It increases the CPU resource utilization of the Interaction Layer, and uses multi-threading for rapid request processing.
Source: Kangwon National University
Authors: Soobin Jeon | Inbum Jung