Emergence of the Internet of Things (IoT) is marked by the massive and ubiquitous availability of electronic tags, sensors, actuators, and smart devices capable of interacting with the physical world, computing, and communicating with each other. Due to the ubiquity of electronic tags, eventually, every “thing” in the world will be uniquely identified, located and tracked. Due to embedded communication and computation, sensors and actuators will transform from dependent components of software systems into independent providers of sensing and actuating services. Smart devices will be able to collaborate with each other to provide new, smarter services. IoT melts the boundary between digital and physical worlds to facilitate unprecedented optimisation, to create a more efficient, more sustainable, more pleasant world. A better world.
Internet of Things Search Engines (IoTSE) are critical in all usage scenarios of IoT. They support locating tagged objects. They allow software applications to discover sensing and actuating resources in their locality without prior configuration. They help smart devices to find other devices and services to realise collaborative interactions.
Scale and heterogenity of IoT content make IoTSE a challenging endeavour. Discovering and resolving queries on different types of content require not only different algorithms and semantics, but also different system architecture. In other word, there is not a single, but multiple classes of systems falling under the moniker of IoTSE. However, from perspective of users, IoTSE is simple. It is a system that can find any thing, at any place, and any time, in the Internet of Things.
Such system relies on open, distributed development, operation, and evolution. My current research focuses on the architectural foundation of this vision of IoTSE.
A framework for open, distributed IoTSE development, operation, and evolution.
Open and distributed IoTSE development, operation, and evolution require common knowledge of components making an IoTSE, of the interaction between components to discover and resolve queries on IoT content, and of the deployment of components on computing nodes. They also require a platform to simplify the development, accumulation, and composition of components into a functional IoTSE.
I’m interested in identifying and analysing design alternatives for IoTSE components (e.g., Service-oriented Architecture, Microservice & Container, Agent-based Systems, P2P, Blockchain) to facilitate their distributed development and integration. I’m also interested in developing a functional platform to support IoTSE development.
Formalisation and Semantic Modelling of IoTSE
Formal and semantic models are critical for automation. I’m interested in developing a formal model for IoT queries, components an IoTSE, and patterns of their composition and deployment. I’m also interested in building semantic descriptions for queries, components and patterns, and assigning these descriptions automatically.
The type of query supported by an IoTSE influences its comprising components, their interaction, and their deployment. Accumulating compostion and deployment patterns of components, with respect to query type, contributed by operators of IoTSEs, generates datasets that can be used for training purpose. I’m interested in applying machine learning techniques to learn the best composition and deployment pattern for each given type of query to automate the configuration of IoTSEs.
Automatic derivation of configuration from a given type of query is the first step towards self-adaptive IoTSEs. The IoTSE platform allows this configuration to be carried out automatically. However, to create a self-adaptive IoTSE, reliability must be addressed. I’m interested in application of reliability theory and engineering to this problem.
Data analytics in real-time IoTSE
The vast number of sensors with high refresh rate presents a major challenge for real-time IoTSEs, which resolve queries on real-time, real-world states. Reporting all updates to an IoTSE will overwhelm it. Checking the state of sensors individually is too slow. I’m interested in applying data analytic techniques to speed up this process.
A platform for conducting and reporting Systematic Literature Review
Systematic Literature Review (SLR) is an important research methodology in software engineering. It extracts and synthesises insights from the vast existing research literature to answer new research questions. SLR is an intensive, time-consuming activity that should be tackled with a team. I’m interested in developing a platform to support research teams in defining, orchestrating, conducting, and reporting SLR.