1. Introduction
Currently, the
Internet of Things (IoT) is receiving much attention from both industries and academics as an emerging technology that uses the Internet infrastructure to connect physical worlds to cyberspaces [
1]. The IoT application infrastructure is continuously being extended to become more ubiquitous around the world and is composed of numerous physical devices distributed across multiple domains [
2]. In this context, the success of an IoT application system depends on the ability to collect, manage, and analyze the data easily and flexibly, as well as to distribute it to users and other systems efficiently [
3,
4]. Nowadays, the amount of data generated by sensor devices is increasing rapidly with the availability of diverse network connectivity and various protocol services; IoT application system developers should design and build these systems considering standardizations with heterogeneous device management.
In an IoT application system,
edge computing is often adopted to bring computing capabilities for data processing to locations closer to sensors or target devices [
5]. Some IoT applications may require low latency and real-time data processing, which cloud servers cannot provide [
6,
7]. Due to the diversity of sensor resources, the introduction of
edge computing devices has become a valuable solution to reducing the computational complexity of data processing in cloud servers [
8]. Edge computing devices enable various functions at the edges of networks before sending data to the server and can increase the efficiency of data processing [
9]. It also offers the data conversion capability to convert raw data to the standard data format. It is expected that the
edge device framework was introduced to facilitate application developments in edge computing devices [
10]. The framework interacts with devices in the physical world that may change over time [
11]. Therefore, it should support the dynamic development of edge systems.
Recently, cloud-based solutions have been widely used for IoT application systems [
12]. Instead of focusing on the implementation details, the prepared tools allow developers to focus on the implementation of logic by using functions that efficiently support the design and implementation of IoT applications [
13]. However, most of the existing cloud-based solutions did not support effective and efficient developments at the edge devices level, and their technologies have often limited the interoperability with third parties.
Previously, we designed and implemented the IoT application server platform as a cloud-based solution for integrating various IoT application systems, called
SEMAR (Smart Environmental Monitoring and Analytical in Real-Time) [
14].
SEMAR provides standard features for collecting, displaying, processing, and analyzing sensor data from different domains. It offers
built-in functions for data synchronizations, aggregations, and classifications with machine learning in
Big Data environments, and
plug-in functions for allowing other systems to access the data through the
Representational State Transfer Application Programming Interface (REST API).
Unfortunately, the current implementation of SEMAR does not facilitate deployments and implementations of edge devices within the context of IoT ecosystem application deployments. As an effective IoT application server platform, SEMAR should be able to control and manage various IoT devices remotely. It must be capable of reconfiguring IoT devices to improve their performance and utilization.
In this paper, we proposed an
edge device framework and its implementation for
SEMAR to facilitate the development of edge devices for IoT applications. As a popular edge device, the
Raspberry Pi was selected for this implementation, and the image was created in the
SEMAR server. This framework can remotely optimize the utilization of this edge device by configuring the connectivity of sensor interfaces, a data conversion approach, a data model, transmitted data, local data storage, local visualization, and the data transmission interval on the server. Actually, it provides features for downloading configuration files to the devices using
HTTP communications, converting data from diverse sensor resources into standard data formats before delivering them to
SEMAR, processing data using rules and filter functions, offering multiple output components for utilizing the acquired data, and enabling remote configuration updates using
Message Queue Telemetry Transport (MQTT) services [
15].
For evaluations of the proposal, we applied the edge device framework to the
fingerprint-based indoor localization system (FILS15.4) [
16,
17] and the
data logging system. These integrated systems were deployed in #1 and #2 Engineering Buildings at Okayama University, Japan. In addition, we evaluated the effectiveness of the edge device framework by investigating its computing performance and comparing it with similar research works. The results confirm the feasibility of utilizing the edge device framework in developing IoT application systems with
SEMAR.
The rest of this paper is organized as follows:
Section 2 presents related works.
Section 3 describes the IoT application system architecture.
Section 4 briefly reviews our previous works on
SEMAR.
Section 5 presents the design and implementation of the edge device framework.
Section 6 and
Section 7 briefly describe the implementation in two IoT application systems.
Section 8 presents comprehensive performance evaluations and a comparative analysis with similar related work. Finally,
Section 9 concludes this paper with future works.
2. Related Works
In [
18], Mahmood et al. presented a simulation of an edge computing implementation for resource allocation in IoT applications for smart cities. The result shows the effectiveness of the edge computing layer in reducing the energy and computational resources for IoT networks.
In [
19], Sarangi et al. proposed IoT applications for digital farming by using a microcontroller that connects soil moisture sensors with the mobile system as edge gateways. The edge device captures and transmits sensor data to the mobile system through Wi-Fi communications. Then, the mobile system processes the data and sends them to the cloud server. This approach presented the utilization of the mobile system for collecting and processing information at edges to reduce computational processes at the cloud level.
In [
20], Oueida et al. proposed an integration of the edge computing device and the cloud service in the smart healthcare system. Edge computing was used to gather information from smart devices, process it to obtain the necessary data, and transmit it to the cloud server. The proposed system was suitable for emergency departments and other types of queuing systems.
In [
21], Mach et al. proposed the concept of the mobile edge computing, which enables IoT applications to perform massive data processing at the device level. However, developers should consider three key aspects, namely, the computation decision, the resource allocation for computational processes, and the mobility management. This approach can reduce the latency of the network in IoT application systems.
In [
22], Yousafzai et al. introduced a light-effect migration-based paradigm for managing computational offloading in edge networks in mobile edge computing. They investigated the impacts of edge networks on IoT applications. The evaluation results showed that the execution time for data processing and the amount of transmitted data should be considered to optimize the utilization of edge devices.
In [
13], Berta et al. proposed a general end-to-end IoT platform that is composed of the cloud-based service for managing sensor data and devices of IoT applications called
Measurify, and the tool for facilitating the construction of edge devices called
Edgine.
Edgine requests the local configuration and executable scripts. Then, it collects data from the sensors, processes them using downloadable scripts and stores it in the cloud. The proposed system has been installed and used for several IoT application systems. The results demonstrated the efficiency of the system by enabling developers to focus on application requirements and design decisions to define the edge system rather than on implementations.
In [
23], Yang et al. proposed an edge computing framework suitable for IoT device development. This framework provides functions to configure the module hardware security, the data conversion, control, and communication to the server. It also offers advanced data processing capabilities at the edge computing level, including rule engines, data analysis, and application integration. By accessing the cloud service, this framework allows users to update the configuration through
MQTT communications. This approach is similar to our method for updating the configuration remotely.
In [
24], Kim et al. proposed plug-and-play in IoT platforms, using a web page to manage IoT devices. They utilized
Arduino boards as edge devices that were connected to the sensors and actuators. The proposed system allows configuring the device for data collection or control actions by accessing the platform website. The implementation results indicate that the system was able to reduce the deployment complexity and increase the IoT environment dynamicity. However, they only considered the device layer and did not address the data visualization and analysis at the cloud level.
In [
25], Iera et al. introduced the
Social Internet of Things (SIoT) architecture paradigm. This architecture comprises IoT applications in objects that are registered on a social networking platform, where each object collaborates and interacts with other objects to provide specialized services. The architecture includes three elements: objects, gateway, and an
SIoT server. Each component may consist of three layers: sensing, network, and application. It enables IoT objects to conduct high-computational processes, in contrast to only the server performing these tasks. As a common IoT architecture, the network layer is only used to connect the server and the objects. However, this architecture allows the integration between IoT objects and provides interfaces for IoT objects and humans through network layers. Thus, it provides the development of IoT applications that interact with one another. This architecture can be considered a reference with which to improve the design of the IoT application system architecture proposed in this paper.
In [
26], Cauteruccio et al. proposed the
Multi-Internet of Things (MIoT) architecture to improve object communication in the
SIoT architecture. In the
SIoT architecture, IoT objects connect and collaborate with one another. It makes the complexity of data transfer increase. Thus, MIoT architecture solves this issue by considering data-driven and semantics-based aspects of data exchange between objects. Unfortunately, the proposed communication model is not suitable for dynamic IoT application scenarios, where IoT devices are dynamically added and removed.
4. SEMAR IoT Application Server Platform
In this section, we introduce
SEMAR as an IoT application server platform to facilitate the development of a cloud layer system. In previous studies, we designed and implemented the
SEMAR IoT application server platform in consideration of the cloud layer for the general IoT architecture described in
Section 3. The current implementation of
SEMAR has been used in several IoT application systems [
30]. It provides the integration functions of collecting, displaying, processing, and analyzing sensor data, including
built-in and
plug-in functions.
Figure 2 shows the system overview of the
SEMAR.
The built-in function allows the use of new functions without implementing or modifying the original source codes. The components of the built-in function are grouped according to data input, data processing, and data output that are controlled by the management system.
The
data input provides components for gathering sensor data from various IoT resources that accept connection through network interfaces and communication protocols. It consists of the IoT cloud gateway for communication services through
HTTP POST and
MQTT communication protocols, and the
data aggregator for gathering and processing sensor data with the consumable format based on the sensor format stored in the device management data. It transmits the results to the
data processing component and stores them in the
MongoDB data storage [
31].
The data processing components consist of the data filter for reducing noises and inaccuracies in the data obtained, the data synchronization for synchronizing the data from different devices and storing it in the dynamic database called the schema data storage, and the data analytics for analyzing large amounts of data.
The last component employs machine learning techniques and real-time data classification services. The machine learning techniques enable the user to construct a data model for the real-time data categorization feature using sample data from the data storage. In addition, the SEMAR IoT application server platform enables plug-in functions that can be implemented as system extensions or as the other IoT application systems to access the data through REST API services.
The SEMAR IoT application server platform includes several output components. Users can access the sensor and synchronized data through the user interface based on a website. It enables the data export function to download sensor data in CSV, JSON, Excel, or text format at a specific time by accessing the user interfaces. The notification function enables the user to set the threshold for each sensor data point as the message notification trigger. If the value fulfills the threshold, the system will generate and send an alert to users. In accordance with the current trend of IoT platforms, we implemented capabilities that enable IoT collaboration, which allows for the connections and integrations of other systems. We used the REST API service for data integrations and exchanges through HTTP POST communications using the JSON format. The REST API retrieved data from storage and translated it into the JSON format.
The management service has been implemented in the SEMAR to manage user authentications, devices data, and its communication protocol. In this paper, we improved the device management feature by adding the function to create, update, and delete the edge configuration file for the edge device. Users are able to operate and monitor the device remotely. Users can access this service through the user interface.
The procedure for integrating the SEMAR platform with a new IoT application system is described as follows:
The user registers the devices and the sensors of the IoT application system on the SEMAR platform;
The system prepares the IoT cloud gateway services, including the HTTP POST and MQTT communication protocols, to receive data;
The device sends data to the server through the defined communication service in JSON format;
The data are received by the IoT cloud gateway, processed by the data aggregator based on the registered sensors, and are stored in the sensor data storage.
The SEMAR provides the capability of synchronizing data from several devices by accessing the sensor data storage and storing the results in the schema data storage;
The user interface of SEMAR displays the data. The user can integrate their programs as plug-in functions by utilizing the REST API.