Thoughts on Interactions in Distributed Services (RFC0722)
Original Publication Date: 1976-Sep-01
Included in the Prior Art Database: 2019-Feb-15
Internet Society Requests For Comment (RFCs)
Network Working Group Jack Haverty (MIT) Request for Comments: 722 Sept 1976 NIC #36806
This paper addresses some issues concerned with the design of distributed services. In particular, it is concerned with the characteristics of the interactions, between programs which support some service at various network sites. The ideas presented are derived mainly from experience with various service protocols [Reference 1] on the ARPANET.
A model is developed of interactions between programs. Salient features of this model which promote and simplify the construction of reliable, responsive services are identified. These dualities are motivated by problems experienced with various ARPANET protocols and in the design and maintenance of programs which use these protocols in the performance of some service.
Using this model as a template, the general architecture of one possible interaction protocol is presented. This mechanism provides a foundation on which protocols would be constructed for particular services, simplifying the process of creating services which are easy to implement and maintain, and appear reliable and responsive to the customer. This presentation is meant to serve as an introduction to a specific instance of such a protocol, called the RRP, which is defined in one of the references.
II. OVERVIEW AND TERMINOLOGY
This paper considers the interaction of two programs which support some network service. It develops a model of the interactions of a class of such applications, and includes some thoughts on desirable goals and characteristics of implementations. The model is derived from a proposal [Reference 2] for mail-handling systems. Terminology, as introduced, is highlighted by capitalization.
Many uses of computer networks involve communication directly between programs, without human intervention or monitoring. Some examples would include an advanced mail-handling system, or any kind of multi-site data base manager.
Such programs will be termed SERVERs. They are the users of some mechanism which provides the needed communication and synchronization. The particular facility which the servers implement will be termed a SERVICE. Servers for any particular service may be written in several languages, operate in various system environments on different kinds of computers. The entity which utilizes the service will be termed the CUSTOMER.
Servers interact during ENCOUNTERs, which are the periods when two servers are in communication. An encounter begins when one server establishes a CHANNEL, a bidirectional communication link with another server. The interaction between servers is effected by the exchange of information over the channel. The conventions used in such an exchange are defined by the PROTOCOLs for the interaction.
The theme of this paper is a model for a particular class of process interactions which may be used as a basis for many possible services, where the interactions are fairly simple. Services which fit...