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
$Id: index.php,v 1.8 2005/09/27 04:19:14 jmh Exp $