PLAN-P - Programming Networks and
Protocols
PLAN-P : a Programming Language for Active Networks and
Protocols
Active networks are aimed at incorporating programmability into
the network to achieve extensibility. An approach to obtaining
extensibility is based on downloading router programs into network
nodes. Although promising, this approach raises several critical
issues: expressiveness to enable programmability at all levels of
networking, safety and security to protect shared resources, and
efficiency to maximize usage of bandwidth.
PLAN-P is a domain-specific
language for implementing application-specific protocols [TCM98]. It
allows applications to program network routers. It is an extension
of PLAN,
an active network language for diagnostics. The key characteritics
of PLAN-P are:
- Expressiveness. We have extended PLAN, an active
network language for diagnostics, so that the language can express
application protocols. PLAN-P programs are typically 2 to
3 times smaller than handwritten C programs and are easier to
understand.
- Safety and security. Because the language is restricted,
many properties are automatically verifiable. For exemple
PLAN-P ensures global termination and guarantees no packet loss or
exponential duplication.
- Efficiency. An automatically generated run-time
compiler for PLAN-P produces code with better performance than
equivalent compiled Java programs (to compare with another language
that allows mobile code). For example, in a comparison with a
C handwritten learning bridge, the PLAN-P program specialized
at run time provides 100% of the throughput and the bandwidth.
Besides active bridging, other practical experiments with PLAN-P
include a virtual load balancing Web server, adaptive audio
broadcasting, and a live video spy [TMM98].
Although PLAN-P was designed as an extension of PLAN, the
conception and the implementation is the result of an experiment to
apply our framework [CM98,Thi98]
for building domain-specific
languages.
How to use PLAN-P?
PLAN-P is available for download. A preliminary version is
available for Solaris 5.1.
The efficient PLAN-P just-in-time compiler has been
obtained using Tempo, our partial evaluator
for C.
Application Examples
The following are some sample applications that have been
written in PLAN-P. Other existing applications include active
bridging.
- Virtual load balancing Web server
- This virtual Web server distributes requests to a single
address to two different Web servers in order to increase response
time and throughput. The PLAN-P source of the virtual server is available.
- Adaptive audio broadcasting
- This protocol adds adaptation available bandwidth to a simple
audio multicasting LAN application. Depending on the available
bandwidth the router protocol forwards audio packets with degraded
audio quality in order to reduce the required bandwidth. A client
protocol reconstructs any degraded packets to the orginal format,
so that the audio application can be reused without modification.
Both the client and router PLAN-P programs are available.
- Live video spy
- This is protocol that permits multiple clients to share a
single video stream from a non-multicast aware MPEG server. This is
currently only for clients on the same Ethernet segment. On machine
on the segment servers as a monitor which maintains a description
of currently open connections to the server. Clients may then
contact this monitor to find open connections that they may attach
to. In order to attach to an existing stream, a client protocol
snoops packets on the segment and captures the packets belonging to
the requested stream and delivers them to the application. The client and monitor PLAN-P
programs are available.
References
- [CM98]
- C. Consel and R. Marlet. Architecturing software
using a methodology for language development. In Proceedings of
the 10th International Symposium on Programming Languages,
Implementations, Logics and Programs (PLILP/ALP '98),
pp. 170-194, Pisa, Italy, September 1998.
- [TCM98]
- Scott Thibault, Charles Consel, and Gilles Muller. Safe and
efficient active network programming. In 17th IEEE Symposium on
Reliable Distributed Systems, pp. 135--143, West
Lafayette, Indiana, October 1998.
- [Thi98]
- Scott Thibault. Domain-Specific Languages: Conception,
Implementation, and Application. PhD Thesis. University of
Rennes 1, France. October 1998.
- [TMM98]
- Scott Thibault, Jérôme Marant, and Gilles Muller.
Adapting distributed applications using extensible networks. In
ICDCS '99, pp. 234-243, Austin, Texas, USA, June 1999.
Last modified: Tue May 23 17:37:59 MET DST 2000
- Gilles.Muller@irisa.fr