Isidoros Paterakis, "Web proxy service for the Web of Things", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2022
https://doi.org/10.26233/heallink.tuc.94391
Nowadays, devices have become part of people’s daily lives in a variety of fields such as healthcare, transportation, agriculture, education, environmental purposes, monitoring, physical exercise and many other application domains. Smart cities, smart buildings and smart factories are based on Internet of Things (IoT) devices and companies constantly develop IoT applications. WoT is a relatively new concept. There is no universal application layer protocol to enable Things and services to communicate. The interconnection of Things is commonly supported by sensor-specific protocols (e.g. Bluetooth, ZigBee, etc.) rather than by HTTP directly. The Web of Things approach by W3C and other investigators suggests that the interconnection of Things does not depend on peculiarities of IoT protocols that would require an extra layer of complexity in an implementation. Ideally, the Web of Things approach requires that Things receive (each one) an IPv6 address and have a Web server installed. However, this is not always possible, especially for resource-constrained devices. A workaround to this problem is to deploy a Web proxy on a server (or on a gateway) that keeps the virtual image of each Thing (e.g. a JSON representation). Web proxy implements a directory (e.g. a database) with all Things (i.e. instances, their types, descriptions and services supported). Things become part of the Web and can be accessed via their Web Proxy (i.e. they can be published, consumed, aggregated, updated and searched for). Web services exposed by Things can then be discovered by users or other services. Therefore, Thing descriptions become an important component of any architecture intended for the WoT so that devices and their APIs become discoverable. The focus of this work is on designing and implementing a Web Proxy service (Nexus) for exposing Things / Applications on the Web that decouples the Thing’s functionality and its management. OpenAPI is a universal language that can be used to accurately and completely describe Things / Applications in a universal way that is understandable by both humans and machines. In this proposed architecture, we consider that all Things / Applications are described by an OpenAPI description.