Any widely-distributed system needs to track its participating nodes, and be able to send messages among those nodes. This facility is often called an overlay network, since it provides an application with customized networking functionality (naming, topology, routing) that runs as a layer over traditional IP networking. Overlays are in wide use, including in commercial mail/calendar servers, application-level multicast systems, and distributed hash tables (DHTs).
It is tricky to design, build, and deploy an overlay suited to a particular application and environment. To ease this process, we have implemented P2, a system which uses a high-level declarative language to express overlay networks in a highly compact and reusable form. P2 has been used to specify and execute working, detailed overlays in over 100x less code than is used in traditional implementations. P2 automatically compiles high-level specifications to a dataflow-oriented runtime system, which can itself be used by expert programmers to specify efficient overlays.
Our work on P2 is part of a more general effort to revisit networking technology through the lens of database query processing. Our approach could provide not only simpler, safer specifications for network protocols, but also -- within the same framework -- the ability to query, monitor and control all aspects of the network's distributed state.
$Id: index.php,v 1.8 2005/09/27 04:19:14 jmh Exp $