Report ID
1999-39
Report Authors
M. Schmitt, A. Acharya, M. Ibel
Report Date
Abstract
As network services have evolved, their communication structures have becomeincreasingly complex. This increase in the complexity in the communicationstructure of services is mirrored by an increase in the complexity of theclient code that interacts with and administers these services. In this paper,we propose the Service Socket abstraction. Conceptually, a ServiceSocket (or an S-socket) is a communication channel to a service insteadof a particular host. Service Sockets abstract away the details ofinteracting with complex and dynamic services while retaining the conceptualsimplicity, the familiar programming interface and the ease-of-use of BerkeleySockets. The other attractive feature of the Service Sockets design is itsmodular construction: the service-specific components of a Service Socketsimplement well-defined interfaces. Modularizing the different aspects of aservice into a common core and pluggable components makes it easier to composeservices as well as to reuse individual components. We describe the design andimplementation of Service Sockets. Our experience with Service Sockets hasbeen positive. The Service Sockets core consists of a shared library with asmall footprint (60-75KB). We have developed S-sockets for a wide variety ofservices. A microbenchmark-based evaluation indicates that the modular designof Service Sockets does not impose a major performance penalty.
Document
1999-39.ps299.37 KB