Rapid application development in the internet of things : a model-based approach (2015)

The Internet of Things (IoT) is a vision in which physical and digital objects are connected and cooperate to achieve particular goals. Unfortunately, the extent of expertise required to incorporate intelligent hardware, software, and computer network still presents a significant challenge. Service-oriented IoT middleware have been proposed quite often to solve this problem. However, they are mostly designed for professional developers with a high degree of flexibility and extensive features. Consequently, tool’s simplicity is often sacrificed, and they present a steep learning curve for entry-level developers. This dissertation aims at addressing this gap by elaborating the state-of-the-art in IoT developments and proposing IoTLink, a rapid IoT software development tool for novice developers. For designing IoTLink, the author reviewed the available IoT architectures. A typical pattern suggests that a physical object must be uniquely identifiable, has physical qualities that partly can be sensed by sensors, and has some capabilities or services that could affect the environment. Virtual entities may act as proxies to execute services and retrieving information about the physical objects. IoTLink is designed for enabling inexperienced developers to develop proxies representing domain objects and abstracting individual sensors and actuators. IoTLink design concept comprises a five layered architecture. The first layer is responsible for abstracting communication with heterogeneous data sources. The second layer deals with sensor fusion components to process and fuse sensor data into useful information. The third layer is concerned with the definitions of domain models and the concrete objects. The fourth layer provides output components, including interfaces to the application logic, distributed applications, and databases to store the information about the virtual objects. The fifth layer abstracts the application logic that access the domain objects. IoTLink employs a model driven approach for wiring these components visually. The visual model is then serialized into XML data and used to generate a Java implementation which can be executed as proxies. In addition, IoTLink offers a discovery broker allowing developers to share and discover IoT resources within the internet. The key advantage of IoTLink discovery is the ability to detect if similar devices are described with synonymous terms. This approach increases the discoverability of similar devices described with diverse terms. The author evaluated the practicability of IoTLink and model-driven approach within three distinct case studies in European research projects. The result shows that it could reduce approximately 2/3 of the development efforts. In addition, the author compared IoTLink’s usability to a Java middleware approach in a controlled experiment performed by 24 participants. The results show that IoTLink could on average reduce 44% of the development time and 48% of mistakes. Moreover, when used by developers with less than five years object-oriented experience, IoTLink was able to reduce up to 57% of mistakes compared to Java development.