Programming abstraction for user-driven architecture in the Internet of Things
The advancement of smart devices and wireless networking have been enabling the Internet of Things to establish a presence in the market. Manufacturers offer different IoT solutions for a vast range of IoT deployments, starting from home automation to building smart cities. Despite the immense progress on creating the physical building blocks of IoT, there is an essential need to define how to manage the vast deployment of the devices. There will be a tremendous increase of information from the devices. Managing the intelligent devices to provide an intuitive IoT experience requires a software abstraction with a scalable and effective architecture. Through research on the Warble platform, we encapsulate our exploration of the architectural model to resolve the IoT management problem. Enabling interoperability and personalized IoT experiences needs a middleware that embraces a user-driven approach to communicate with assorted devices across multiple manufactures and ecosystems. We introduce the Warble middleware, an IoT management middleware with an extensible abstraction of personalization and interoperability. The middleware abstracts the complexity of communicating across various devices, and enables applications to learn from prior user interactions within the IoT space. Furthermore, we also introduce Mesh, an IoT framework for research and development of IoT model architecture, which enables the creation of IoT and to define their structured collaborations. Through this thesis, we present the architecture and the internal mechanisms of both software artifacts. Subsequently, we evaluate our implementations through a use case that demonstrates their contributions to IoT research.