Related Work



next up previous
Next: Conclusion Up: A Framework for Protocol Previous: Status and Challenges

Related Work

We are not the first to realize that a framework for communication protocols is necessary. The best-known framework for composing a set of protocols is the STREAMS framework [13]. In this approach, the protocols are lined up linearly, and two reliable, sequenced channels are placed between each pair of consecutive protocols. One of these channels is for transporting user data, while the other channel carries protocol control messages. STREAMS, however, does not support group communication and has limited opportunities for concurrency. A related but more sophisticated approach is used in the x-kernel [11]. In this system, protocol objects can be linked together in acyclic graphs. Horus was motivated by ideas from x-kernel, but with group communication as the fundamental abstraction. x-kernel was mainly designed for point-to-point communication, and even simple request-response style communication is not always easy to map down to this interface. Also, in the x-kernel, configuration is done at compile-time, not at run-time.

Horus improves on this work by providing full thread-safety, and supporting messages that may span multiple address spaces. Since Horus does not provide control operations, and has one single address format, layers can be mixed and matched. In both STREAMS and the x-kernel, the different protocol modules supply many different control operations, and design their own address format, both severely limiting such configuration flexibility. We note that a follow-on to the x-kernel project, called Consul [9], is attempting to deal with some of these disadvantages by supporting sophisticated micro-protocols between protocol modules.

Our work with ML parallels the FOX project [2], which is investigating the implementation of system services such as TCP/IP over Standard ML. While we use ML as a tool for implementing prototypes and towards verification of our protocols, FOX takes it a step further by building production systems this way. Their research involves overcoming the performance problems that are incurred because of this approach, while we are interested in the protocols themselves.



next up previous
Next: Conclusion Up: A Framework for Protocol Previous: Status and Challenges



Robbert VanRenesse
Mon May 15 12:16:43 EDT 1995