Coordination Models and Languages (Coordination'08)
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.
Matt Welsh has been an assistant professor in Computer Science at Harvard University since 2003. He received his M.S. and Ph.D. degrees from UC Berkeley (1999 and 2002). Following his Ph.D. work he spent one year as a visiting researcher at Intel Research Berkeley. He received his undergraduate degree from Cornell University (1996).
His research interests include operating system, network, and language support for large-scale distributed systems. His current research focuses on wireless sensor networks, with an emphasis on high-level languages and programming models. His group is developing sensor network platforms for applications such as medical care and monitoring volcanic eruptions. They are also developing an Internet-based infrastructure for collecting and processing large volumes of real-time sensor data.
Distributed Applications and Interoperable Systems (DAIS'08)
New Uses of Simulation in Distributed System Engineering
Alexander L. Wolf, Imperial College London, UK
Simulation has been used by software engineers for many years to study the functionality and performance of complex distributed system designs. For example, they are used to understand network protocols, tune distributed systems, and improve distributed algorithms. They are appealing to engineers because of their inherent efficiency and scalability. Unlike many other development artifacts, simulations seem to be used, and therefore well maintained, throughout the development process, both as early design tools and as late evaluation tools. Given the effort invested in the construction and maintenance of simulations, and the degree to which developers trust in them, we wonder whether there are other purposes to which they can be put. In this talk we present two such uses, one to increase the power of large-scale distributed experimentation and the other to develop a rigorous testing method for distributed systems.
Alexander L. Wolf is a professor in the Department of Computing at Imperial College London (UK). He also holds affiliated appointments in the Department of Computer Science at the University of Colorado at Boulder (US), and the Faculty of Informatics at the University of Lugano (CH).
Prof. Wolf received the B.A. degree from Queens College of the City University of New York, majoring in both Geology and Computer Science. He received the M.S. and Ph.D. degrees from the Department of Computer Science at the University of Massachusetts at Amherst. Prof. Wolf was a Member of the Technical Staff at AT&T Bell Laboratories (now AT&T Labs Research and Bell Laboratories) in Murray Hill, New Jersey, before joining the University of Colorado faculty. During his years at the University of Colorado, Prof. Wolf held the ranks of assistant, associate, and full professor. He also held the Charles Victor Schelke Chair in the College of Engineering. At the University of Lugano he helped found the Faculty of Informatics, the first computer science faculty in the Italian-speaking region of Switzerland.
Prof. Wolf's research interests are directed toward the discovery of principles and development of technologies to support the engineering of large, complex software systems. He has published in the areas of software engineering, distributed systems, networking, security, and database management.
Prof. Wolf is currently a member of the Association for Computing Machinery (ACM) Council, the governing authority of the 65,000-member professional association. He serves on the editorial board of the IEEE Computer Society journal Transactions on Software Engineering (TSE). Prof. Wolf previously served as Vice Chair and then Chair of the ACM Special Interest Group in Software Engineering (SIGSOFT), on the editorial boards of the ACM journal Transactions on Software Engineering and Methodology (TOSEM) and the Wiley journal Software Process - Improvement and Practice (SPIP), and has chaired a number of international program committees. He is currently a participant in the ACM Distinguished Speakers Program.
Prof. Wolf is a Fellow of the ACM and holder of a Royal Society-Wolfson Research Merit Award.
Formal Methods for Open Object-based Distributed Systems (FMOODS'08)
Guiding distributed systems synthesis with language-based security policies
Andrew Myers, Cornell University
The distributed information systems we use every day are becoming more complex and interconnected. Can we trust them with our information? Currently there is no good way to check that distributed software uses information securely, even if we have the source code. Many mechanisms are available, but are error-prone: for example, encryption, various cryptographic protocols, access control, and replication. But it is hard to know when we are using these mechanisms in a way that correctly enforces application security requirements.
This talk describes a higher-level approach to programming secure systems. Instead of using security mechanisms directly, the programming language incorporates explicit security policies specifying the confidentiality, integrity, and availability of information. The compiler then automatically transforms the source code to run securely on the available host machines, and uses a variety of security mechanisms in order to satisfy security policies. The result is systems that are secure by construction. We look at two applications of this approach: building secure web applications using partitioning beween clients and servers, and building more general secure systems by synthesizing fault-tolerance protocols for availability.
Joint work with Steve Chong, Jed Liu, Nate Nystrom, Xin Qi, K. Vikram, Steve Zdancewic, Lantian Zheng, and Xin Zheng.
Andrew Myers is an Associate Professor in the Computer Science Department at Cornell University in Ithaca, NY. He received his Ph.D. in Electrical Engineering and Computer Science from MIT in 1999.
His research interests include computer security, programming languages, and distributed and persistent objects. His work on computer security has focused on practical, sound, expressive languages and systems for enforcing information security. The Jif programming language makes it possible to write programs which the compiler ensures are secure. The Polyglot extensible compiler framework is now widely used for programming language research.
Myers is the recipient of an NSF CAREER award, an Alfred P. Sloan Fellowship, a College of Engineering Abraham T. C. Wong '72 Excellence in Teaching Award, a George M. Sprowls award for outstanding Ph.D. thesis from MIT, and a best paper award for a paper in SOSP 2001.