A Reference Architecture and a Software Platform for Engineering Internet of Things Search Engines
[摘要] The Internet of Things (IoT) is here. Enabled by advances in the wireless networking and the miniaturization of embedded computers, billions of physical things have been connecting to the Internet and offering their ability to sense and react to the real-world phenomena. These abilities form the content of IoT, which enable applications such as smart-city, smartbuilding, assisted living, and supply chain automation. The Internet of Things Search Engines (IoTSE) support human users and software systems to detect and retrieve IoT content for realizing the stated applications. Due to the diversity and sensitivity of IoT content, the literature has suggested that IoTSE will emerge as a large number of small instances, each of which monitors a specific IoT infrastructure and specializes in querying a particular type of IoT content. Various internal activities (i.e., components), as well as the logical and physical arrangement of those activities (i.e., architectural patterns), will overlap between IoTSE instances. The emergence of a large number of IoTSE instances, which possess overlapping operations and architecture, highlights the need for leveraging prior components and architectural patterns in engineering IoTSE instances. However, as an IoTSE reference architecture and a software infrastructure to guide and support such reuse-centric IoTSE engineering have not existed, a majority of IoTSE instances have been engineered from scratch. This thesis aims at proposing the reference architecture and the software infrastructure to support leveraging prior components and architectural patterns in engineering IoTSE instances. The key contributions of this thesis include a reference architecture that describes the constituting components and architectural patterns of an IoTSE instance, and software infrastructure that supports utilizing the reference architecture in developing reusable, composable IoTSE components and engineering IoTSE instances from those components. In order to propose the IoTSE reference architecture, we conducted a systematic and extensive survey of over one decade of IoTSE research and development effort from both an academic and an industrial perspective. We identified commonalities among diverse classes of IoTSE instances and compiled this knowledge into a reference architecture, which defines 18 components, 13 composition patterns, and 6 deployment patterns. We assessed the reference architecture by mapping it onto two IoTSE prototypes that represent the most common types of IoTSE in the literature and possess the more complicated architecture compared to other types. In order to develop the software infrastructure, we first proposed a kernel-based approach to IoTSE engineering, which was inspired by the design of modern operating systems. In this approach, IoTSE instances operate as a collection of independently developed IoTSE components that are plugged into a shared kernel. This kernel provides essential utilities to run IoTSE components and control their interactions to fulfill the functionality of an IoTSE instance. The kernel also provides templates that simplify the development of IoTSE components that are interoperable and compliant with the proposed reference architecture. In a case study, which involves engineering an IoTSE prototype, the kernel managed to reduce the amount of new source line of code to just 30%. The kernel-based approach supports engineering a majority of prominent IoTSE types detected in the literature. To enhance its support for emerging classes of IoTSE and prepare for future features in the reuse-centric IoTSE engineering, we proposed a platform-based approach to IoTSE engineering that extends the kernel-based approach. The platform-based approach revolves around an Internet of Things Search Engine Platform – ISEP – that supports developing interoperable IoTSE components, accumulating those components, and allowing search engine operators to engineer IoTSE instance from them using any valid architectural pattern defined in the reference architecture, without modifying the implementation of the components. In a case study, the platform-based approach enabled engineering complex IoTSE instances entirely from the components of simpler ones. Both the ability to engineer various IoTSE instances from a set of components and the engineering of new IoTSE instances entirely from accumulated components are unprecedented in the IoTSE literature. Future research can focus on devising mechanisms that leverage the architecture and the infrastructure proposed in this thesis to accumulate the knowledge generated in the process of engineering IoTSE instances and use it to introduce automation gradually to IoTSE engineering. Eventually, when the automation is proven to be trustworthy and reliable, machines might compose and deploy IoTSE instances in real-time to adapt to the incoming queries and the state of the computing infrastructure. By achieving this degree of automation, we will have realized a search engine for the Internet of Things.
[发布日期] [发布机构] The University of ADELAIDE
[效力级别] search engine [学科分类]
[关键词] [时效性]