Oient/Server Model of Distribnted Processing
Liba Svobodova
IBM Zurich Research Laboratory
Rtlschlikon, Switzerland
Abstract: The client/server model of distributed computing is a structuring concept which
can be identified in many different distributed systems. Clients and servers are active
modules communicating through messages. Systems composed of server machines and
personal workstations as their clients exemplify this concept. The paper focuses mainly on
two issues: server design and communication protocols. File servers are used as an example
in the server design overview. The communication issues are discussed in the framework of
the OSI Reference Model and protocols.
1. INTRODUCfION
The notion of a client/server model of distributed computing gained widespread use in the
context of local-area networks where separate server machines are used to support work
performed on workstations. Workstations are rather powerful personal computers in th~ir
own right, but they need to communicate, and, above all, they still do need to share resources,
specifically:
• information
• complex services
• expensive hardware
The individual workstations should retain a high degree of autonomy, that is, it should be
possible for the owner to insert and remove his workstation from the network, without
affecting other users. In order to achieve such an autonomy, the shared resources should not
be controlled by the workstations; rather, the shared resources should be managed by
highly-available, carefully-administered machines, which are usually called servers. Such a
combination of client and server machines has been claimed to be the most suitable scenario
for the office environment. Many research efforts of this sort have been conducted in the
past decade. The projects at Xerox PARC [SWIN79, STUR80, MITC82a, BIRR82, SCHR84,
BROW84] and the University of Cambridge [NEED82, D10N80, CRAF83] are particularly
notable. Two large projects co-sponsored by IBM have been started in the recent past to
deploy this sort of system in a university environment: an ITC (Information Technology
Center) project at Carnegie-Mellon University [SATY84], and project Athena at MIT
[BALK84]. Each of these systems is intended to support in a few years thousands of personal
computers on multiple connected local-area networks.
An alternative scenario for distributed computing, sometimes called "integrated distributed
computing", assumes that each node' controls some resources (usually information), which
A node stands here for a single processor or a cluster of processors with memory and possibly various storage and
input/output devices. A node is associated with a single network address.
D. Heger et al. (eds.), Kommunikation in Verteilten Systemen I
© Springer-Verlag Berlin Heidelberg 1985
486
can be used from any other node in the system. Thus, the principal difference between this
scenario and the one described above is that there is no distinction between a server machine
and a client machine: each machine is both a server and a client. Many of these projects are
based on UNIX:2 LOCUS [POPE81, WALK83], Newcastle Connection [BRBR82], and
Berkeley Distributed Unix [FERR84] are just a few well-known examples. Another example
of extending an existing operating system is VMDF [FUSI81]. An alternative approach is to
start with a new operating system, specifically designed to support distributed computing
[LAZ081, RASH81, LEAC83, CHERI84a]. Finally, distributed database systems such as
R· [WILL82, LIND84] also belong to the category of integrated systems.
It should be added that many of the integrated systems are designed so that it is possible to
configure some nodes as servers and others as clients only. On the other hand, many designs
that fall into the workstation/server category provide a uniform interface to local and remote
services, thus giving the client an image of an integrated system. Perhaps the main distinction
between these two types of system is where one starts: in the first case, the initial design
emphasis is on server design, and the integration is added as a layer between the client and
the server. In the other scenario, uniform mechanisms for being able to access resources on
any node from any node forms the basis; server and client machines can be configured by
restricting these general access possibilities.
Yet another scenario, rarely described in scientific literature, is built around a
general-purpose host. Such systems represent a natural evolution from a central time-shared
facility towards a distributed system. Intelligent workstations make it possible to off-load
many tasks, especially those dealing with the user interface, while the host continues
providing access to databases and services developed in the past. The IBM VM/PC product
is a good example of this trend [IBM83].
1.1. Generalized client/server model
The workstation/server scenario is the most obvious demonstration of the client/server
model of distributed computing, but the notion of servers and clients can be identified in all
three scenarios described above.' In a broader sense, a server is simply a subsystem that
provides a particular type of service to a priori unknown clients. The definitions given below
are adapted from those given by Mitchell [MITC82b].
A service is a software entity running on one or more machines.4
A server is an instance of a particular service running on a single machine.
A client is a software entity that exploits services provided by servers. A client can but
does not have to interface directly with a human user.
Although clients could run on the same physical processor as the server, such a cohabitation
is assumed to be an exception rather than a rule; as a default, clients and servers must be
designed so that their communication can be carried over the connecting network.
2 UNIX is a trademark of Bell Laboratories.
The notion of a client and a server (User Agent and Service Agent) appears also in the CCITT System Model for
Message Handling System [CCITT83] and Directory Systems [CCITT84j.
4 This software entity might control some specific hardware resources, such as a disk or a printer.