Fiji: A Platform for Data-Intensive Sensor Network Applications
Matt Welsh, Harvard University, USA
Sensor networks are becoming increasingly important for data-intensive applications that involve moderate to high data rates, fine-grained timestamping of recorded signals, and computationally-intensive processing within the network. Examples of this new class of applications include volcano monitoring, structural health monitoring, and biomedical data capture. In contrast to the first generation of sensor networks, which were focused on low-duty-cycle data collection and aggregation, these new applications demand much greater data fidelity and computational sophistication.
At the same time, wireless sensor platforms are inherently resource-constrained, leading to severe limitations of computational horsepower, memory capacity, and radio bandwidth. The stringent application demands and resource constraints conflate to make programming complex sensor applications a very difficult task, even for experts in embedded systems. As a result there is a vast gap between the needs of domain scientists wishing to develop and deploy a sensor network and the level of expertise required to realize a resource-efficient implementation.
In this talk, I will present Fiji, a new programming platform intended to make it much easier for domain scientists to leverage wireless sensor networks. Fiji is based on the concept of macroprogramming, in which a program describing the global behavior of the network is compiled down to an efficient node-level binary. This is accomplished using a flexible dataflow-based intermediate form supported by multiple compilers for each target language. Fiji also provides a powerful node-level runtime and OS for resource-aware programming, allowing applications to naturally adapt to varying resource availability.