Section: New Results
Composing Applications in the Internet of Things
Participants : Iraklis Leontiadis, Pankesh Patel, Animesh Pathak.
As introduced above, the Internet of Things(IoT) integrates the physical world with the existing Internet, and is rapidly gaining popularity, thanks to the increased adoption of smart phones and sensing devices. Several IoT applications have been reported in recent research, and we expect to see increased adoption of IoT concepts in the fields of personal health, inventory management, and domestic energy usage monitoring, among others.
An important challenge to be addressed in the domain of IoT is to enable domain experts (health-care professionals, architects, city planners, etc.) to develop applications in their fields rapidly, with minimal support from skilled computer science professionals. Similar challenges have already been addressed in the closely related fields of Wireless Sensor and Actuator Networks (WSANs) and Pervasive/Ubiquitous computing. While the main challenge in the former is the extremely large scale of the systems (hundreds to thousands of largely similar nodes, sensing and acting on the environment), the primary concern in the latter has been the heterogeneity of nodes and the major role that the user's own interaction with these nodes plays in these systems (cf. the classic “smart home” scenario where the user interacts with a smart display which works together with his refrigerator and toaster). The upcoming field of IoT includes both WSANs as well as smart appliances, in addition to the elements of the “traditional” Internet such as Web and database servers, exposing their functionalities as Web services etc. Consequently, an ideal application development abstraction of the IoT will allow (domain expert) developers to intuitively specify the rich interactions between the extremely large number of disparate devices in the future Internet of Things.
The larger goal of our research is to propose a suitable application development framework which addresses the challenges introduced above. This will most likely be achieved by a domain specific language (DSL) that exposes specific functionalities to the domain experts. The first logical step was to construct a domain model. Towards that end, we took advantage of the CRC — Classes, Responsibility, Collaboration — technique, defining the main abstract concepts, their responsibilities, and associations that represent their relationship with each other in the IoT. Specifically, we used this technique to propose a domain model  that addresses the following challenges:
Creation of common understanding. The different terms used by different people in the IoT domain can lead to confusion, which can be alleviated by the usage of a common lexicon, as provided by a domain model. This lexicon can then be used by researchers, system programmers, as well as domain experts.
Modeling invariant properties. The domain model represents the invariant properties of the domain — concepts and relationships which do not change from one application to the other. An instance of this in the IoT domain can be the notion of a sensor attached to a device. Depending on the specific applications, the type of sensors and devices can change (e.g, a light sensor attached to a smart phone), but the inherent relationship between the types of entities they represent does not.
Enabling modular design. Application needs often tend to arrive in terms of behavior, which needs to be broken down and divided among the entities in the system. A good domain model aids in this process, since the capabilities of each type of entity are clearly identified. E.g., the application requirement of “the system senses the temperature of a room and keeps it steady” can be easily broken down into an application consisting of temperature sensors, computational components, and HVAC actuators, each performing its well-known role in this sense-compute-actuate loop.
As part of a related effort with a narrower focus on the domain of sensor network macroprogramming — a technique that aims to aid the wide adoption of networked sensing by providing the domain expert the ability to specify their applications at a high level of abstraction — we have explored techniques to bring Web services in the gamut of sensor network macroprogramming. Our research addresses the challenges faced by developers of systems where sensors (e.g., RFID badge sensors in an office) interact with pre-existing larger software components exposed as Web services (e.g., the office personnel access control database). As part of our work, we have proposed extensions to the data-driven ATaG macroprogramming language using which developers can easily incorporate existing Web services in their applications.
We have incorporated our continued research in the above areas into Srijan (§ 5.5 ), which provides an easy-to-use graphical front-end to the various steps involved in developing an application using the ATaG macroprogramming framework.