Architecture-independent programming and software synthesis for networked sensor systems

Networked sensor systems such as wireless sensor networks (WSNs) are a relatively new class of distributed computing systems that are closely coupled to the physical environment and provide embedded sense-and-response capabilities. For various reasons, programming the global behavior of such systems by individually configuring each sensor node is not feasible for complex applications. Macroprogramming models seek to provide high level abstractions for the application developer to specify collective behaviors that are then automatically compiled into low level operations at the individual node. This thesis proposes a data driven macroprogramming model called the Abstract Task Graph (ATaG) for architecture-independent development of networked sensing applications. Architecture independence allows application development to proceed prior to decisions being made about the target deployment, and also allows the same application to be automatically synthesized when needed onto different deployments. In ATaG, the application is modeled as a set of abstract tasks that represent types of information processing functions in the system, and a set of abstract data items that represent types of information exchanged between abstract tasks. Code that implements the actual information processing is provided by the user. Appropriate numbers and types of tasks can then be instantiated to match the actual network configuration, with each node incorporating the user-provided code, automatically generated glue code, and a runtime engine. The runtime engine called DART has a component-based software architecture, and manages all low level aspects of coordination and communication in the network. A prototype environment for visual programming and software synthesis has been implemented with an integrated functional simulation and visualization front end.