Dynamic Web of Things Device Interface Generation using Components
Internet of Things (IoT) is gaining popularity as it becomes increasingly easier and cheaper to produce devices that are smaller and include higher feature set than before. This proliferation of devices poses a challenge for application development in IoT. One problem is the variety of standards developed for the numerous protocols needed to communicate with the devices. Most of the time these protocols are either not compatible or proprietary, in which case they come with an application that only partially fulfills the requirements of the user. Developers are still missing standardized protocols. In order to access these devices or to combine them into a system which can reach a desired goal, the developer usually needs a lot of knowledge about each specific device and its capability. This offers no scalability because with every new device that is added or changed in a specific solution, arises a necessity for a new interface that needs to be developed from the very beginning and subsequently integrated. This increases the time and cost for the implementation of projects that utilize IoT devices. It also introduces an added complexity to a problem that is ought to be simplified with the use of technology.
One solution which improves interoperability is the Web of Things (WoT) which allows devices to be integrated to the Web. With this, the existing proven standards of the web ecosystem can be reused. W3C provides a standardization for describing WoT devices in an interoperable format. This model is made of entities (Things) that can describe their capabilities in a machine-interpretable format, the Thing Description (TD) and expose these capabilities through the WoT interface, that is, network interactions modeled as Properties (for reading and writing values), Actions (to execute remote procedures with or without return values) and Events (for signaling notifications). Web developers benefit from this method, because the focus moves from the means of communication to the content of the transferred data. User interface elements for WoT devices can be represented as Web Components. This is a scalable and practical solution because Web Components provide reusability with encapsulation of functionality which is particularly useful for extending the capabilities of a user interface element. One of the main goals of a dynamic user interface in this context is the capability to react and change depending on the current location information. This relates to the surrounding environment, such as to the presence of other WoT devices in the proximity.
The objective of this master thesis is to use the WoT TD and Web component-based technologies in the context of dynamically generating WoT device interfaces taking genericity into account to help developers monitor and integrate WoT devices. In addition, the solution should automatically adapt the user interface of relevant device information for a given context i.e. location and available devices. This particularly includes the state of the art regarding application development techniques which are suitable for smart ubiquitous environments. The demonstration of feasibility with an implementation prototype of the concept is part of this thesis. Finally, a suitable evaluation of the tool with developers to show the amount of time required to add a new device to the system as well as evaluating dynamic user interfaces for continuous monitoring of states depending on the context is part of this thesis.