Extending Sensor Network Macroprogramming Techniques to IoT Application Development

The upcoming domain of Internet of Things (IoT) is a result of the increased prevalence of sensor, actuators, and mobile user devices, all connected to each other. This infrastructure provides a rich substrate over which applications can be developed. However, the Internet of Things also creates several challenges for application developers – extremely large scale, heterogeneity in the devices and the use of interaction patterns oriented more towards the user than the data-oriented ones seen in the domain of wireless sensor networks (WSN).

In this talk, we present our application development framework for IoT which extends WSN macroprogramming techniques to address the above challenges. Our contributions are in three areas. First, a macroprogramming language that allows the application developer to specify an IoT application in terms of tasks- that not only produce/consume data (as is common in WSN applications) but can also interact with each other using more direct request-response interactions. Second, a template generation framework that generates the application-specific API that can then be used by the developer to specify the internal logic of the tasks in his application. Third, a compiler which can take the application description and the task-specific code along with the details of a specific network deployment, and generate node-specific code for each device in it.

Our approach is flexible enough to support programmable devices over which the developer has full control, such as sensors, actuators and phones, as well as existing internet components over which the developer has no control whatsoever, such as Web Services. We provide a single programming abstraction for a wide variety of devices, including small programmable sensors found in WSNs, common pervasive devices like Smart phones equipped with GUIs, and existing Internet components like SOAP based Web Services.

Our ideas have been implemented in the form of a platform-independent toolkit which supports a variety of IoT nodes, such as Sun SPOT sensor nodes, PCs running Java, and smart phones running Android, communicating with each other over a heterogeneous set of networks interfaces, including IEEE 802.15.4, WLAN and Ethernet. The toolkit is open source and available athttp://code.google.com/p/srijan-toolkit/

Date:
Speakers:
Ajay Chhatwal