Grapevine is a distributed, replicated system that provides message delivery, naming, authentication, resource location, and access control services in an internet of computers. The system, described in a previous paper [1], was designed and implemented several years ago. We now have had operational experience with the system under substantial load. This experience has proved the original design sound in most aspects, but there also have been some surprises. In this paper we report what we have learned from using Grapevine. Our experience may offer some help to designers of new systems.
Grapevine is implemented as a program that is run on a set of dedicated server computers. Client programs o f Grapevine run on various workstation and server computers attached to an internet. The services provided by Grapevine are divided into the message service and the registration service.
The message service accepts messages prepared by clients for delivery to individual recipients and distribution lists. Messages are buffered in inboxes on message servers until the recipient requests them. Any message server can accept any message for delivery, thus providing a replicated submission service. A computer system mall user has inboxes on at least two message servers, thus replicating the delivery path for the user.
[1]
M. E. Lesk,et al.
IMPLEMENTATION OF A DIAL-UP NETWORK OF UNIX SYSTEMS.
,
1980
.
[2]
Roger M. Needham,et al.
Grapevine: an exercise in distributed computing
,
1982,
CACM.
[3]
Douglas Comer,et al.
The computer science research network CSNET: a history and status report
,
1983,
CACM.
[4]
Robert Metcalfe,et al.
Ethernet: distributed packet switching for local computer networks
,
1988,
CACM.
[5]
Andrew Birrell,et al.
Implementing remote procedure calls
,
1984,
TOCS.
[6]
Robert M. Metcalfe,et al.
Pup: An Internetwork Architecture
,
1980,
IEEE Trans. Commun..
[7]
Yogen K. Dalal,et al.
Pilot: an operating system for a personal computer
,
1980,
CACM.