Gian Pietro Picco
Abstract: Wireless sensor networks (WSNs) have been around for more than a decade. They are distributed systems made of tiny, resource-scarce, often battery-powered devices that cooperate towards distributed monitoring and control. Their small size, autonomy, and flexibility has placed them to the forefront of pervasive computing scenarios. Yet, their programming is still largely carried out by using directly the low-level primitives provided by the operating system. This approach steers the programmer away from the application, hampers reusability and decoupling, and ultimately makes development unnecessarily complex.
In this talk, we report about our research efforts in simplifying WSN programming through the notion of tuple space, embodied in a middleware called TeenyLime. As the name implies, TeenyLime borrows the transiently shared tuple space model introduced by the Lime middleware for mobile ad hoc networks, but also deeply revisits it to match the peculiar characteristics of WSNs, e.g., to deal with the limited resources of WSN nodes and to provide additional visibility and control on the lower levels of the stack. TeenyLime was indeed designed as a thin veneer atop the basic OS communication facilities, to support the development of both the application logic and system tasks such as routing.
TeenyLime and its particular incarnation of the tuple space concept proved successful in developing several real-world applications where the WSN was deployed for a long time, in an operational setting, and most importantly to fulfill the needs of real users. This talk reports about two of these experiences: the structural health monitoring of a medieval tower, and the closed-loop control of adaptive lighting of a road tunnel. Facing real-world challenges forced a redesign of the TeenyLime implementation, but left its original abstractions essentially unaltered. As expected, the higher level of abstraction provided by TeenyLime w.r.t. using directly the OS primitives resulted in a significant reduction of the source code size, hinting at a lower burden on the programmer. Less expected, it also resulted in a smaller binary size, therefore enabling one to pack more functionality on the resource-scarce WSN nodes. Ultimately, these experiences clearly showed that it is possible to simplify the chore of programming WSN applications without sacrificing their performance and efficiency. TeenyLime is available as open source at teenylime.sourceforge.net.
Bio: Gian Pietro Picco is a Professor and Head of the Department of Information Engineering and Computer Science (DISI) at the University of Trento, Italy. The goal of his current research is to ease the development of modern distributed systems through the design and implementation of appropriate programming abstractions and of communication protocols efficiently supporting them. His work spans the research fields of software engineering, middleware, and networking, and is oriented in particular towards wireless sensor networks, mobile computing, and large-scale distributed systems. He served as Program Co-chair in COORDINATION 2005. In 2007, at the Int. Conf. on Software Engineering (ICSE’07) he was the recipient of the “Most Influential Paper from ICSE’97″ Award. Other awards include a Best Paper Award at the IPSN conference in 2009 and 2011, and the Mark Weiser Best Paper Award at PerCom in 2012. He is a member of the editorial board of ACM Trans. on Sensor Networks (TOSN).