Electronic Thesis and Dissertation Repository

Thesis Format

Monograph

Degree

Master of Science

Program

Computer Science

Supervisor

Kontogiannis, Konstantinos

Abstract

The Internet of Things (IoT) emerges as a system paradigm that encompasses a wide spectrum of technologies and protocols related to Internetworking, services computing, and device connectivity. The main objective is to achieve an environment whereby physical devices and everyday objects can communicate and interact with each other over the Internet. The Internet of Things is heralded as the next generation Internet, and introduces significant opportunities for novel applications in many different domains. What is missing right now is a programming model whereby developers as well as end-users can specify any addressable resource at a higher level of abstraction, and consequently utilize these abstractions to define compositions, or scripts, among resources that allow for the customizable exchange of data among the resources, the evaluation of conditions based on exchanged data, and the enactment of actions provided that specific events occur and specific conditions are met.

In this thesis, we investigate the problem of designing a programming model for composing resource or "things", with applications in the IoT domain, and implement a proof of concept prototype in order to evaluate the feasibility of such a programming model. More specifically, this thesis attacks the problem of devising an IoT programming model from three directions. The first direction is the design of a Meta-Object Facility meta-model, that allows for URI addressable entities to be specified at a higher level of abstraction. Such a meta-model can be considered as domain specific language that allows for the denotation of \emph{types} of entities (resources) in different application domains. The second direction is the design of an actionable composition model for IoT devices and other URI addressable resources. In this respect, this thesis investigates the use of the Event-Condition-Action paradigm as a basis of a runtime environment whereby action models can be enacted once events occur and condition models are fulfilled. A resource composition model also allows for resources to exchange data through input and output plugs implemented on top of the OPC UA publish subscribe middleware. The third direction deals with the design of a layered architecture that allows for scalability, robustness, security, and fault tolerance to be considered. Such an architecture takes advantage of a publish subscribe framework and utilizes proxies and facades to efficiently connect with third party components.

Summary for Lay Audience

The Internet of Things (IoT) imagines a world where physical devices (e.g., temperature sensors) and everyday objects (e.g., smartphones) can communicate and interact with each other over the Internet. It is seen as the next generation Internet, and brings great opportunities for new applications in many different domains. Such applications include industrial automation, smart home, health monitoring, to name a few. What is missing right now is a programming model, which is an abstraction of the underlying computer system that allows for the expression of both algorithms and data structures. The design of the programming model aims to ease the development of IoT applications.

In this thesis, we tackle the problem of designing a programming model for composing resources or "things" in the IoT domain, and implement a prototype in order to evaluate the feasibility of our approach. More specifically, this thesis handles the problem from three parts. The first part is the representation of resources which server as the data providers. Those resources are either physical IoT devices or Web resources which we can access on the Internet. The second part is the design of the composition model of the resources. We use Event-Condition-Action (ECA) model to do that. ECA means that when an event occurs, if certain conditions are satisfied, the corresponding actions are taken. The third part deals with the design of a layered system architecture. We design the prototype system to consider not only functional requirements (e.g., data acquisition and exchange, model evaluation), but also non-functional requirements (e.g., scalability, usability, security). The verified result of the prototype system proves that our proposed programming model is feasible for IoT application development.

Share

COinS