You are on page 1of 22

~e c h n o lo~,3 .


wo decades ago, the data processing industry was using
powerful mainframes with the users sharing C P U cycles
and data storage facilities. Access to the mainframes was
tightly controlled by MIS departments and the only method of
accessing the data from mainframes was through punched cards or
primitive terminals. We saw evolution of pioneering data retrieval
and analysis methodologies in the years to come; yet the techniques
were arduous and constrained due to centralized resources and user-
hostile interfaces. Thus, when PCs came to the computing industry
in the early 1980s, their growth was phenomenal, as they provided
limited C P U cycles and data storage facilities on user desktops, user
control over desktops, and user-friendly PC-based software.

Aiok Sinha

PCs, however, were still incapa- loosely defined to be those infor- directions for purposes of data re-
ble o f handling data processing mation processing and analysis trieval and analysis, as well as the
needs o f most large businesses. applications whose o u t p u t is used means o f presenting the results o f
Local area networks (LANs) pro- by corporations for strategic deci- one o r m o r e queries or commands.
vided the solution by connecting sions. Almost universally, finance Typically, the Client presents a
PCs and mainframes. Thus, the PC m a n a g e m e n t systems are consid- Graphical User Interface (GUI) to
where present, was used as a user- ered "mission critical applications." the user (e.g., Microsoft Windows-
friendly "terminal" to the host. At T h e "criticality" o f one set o f appli- based interfaces).
the same time, we saw the evolution cations over a n o t h e r is often deter- As a CSS can consist o f multiple
o f LAN and PC-based file and print mined by the business o f the corpo- Clients, multiple User Interfaces
Servers (e.g., Novell Netware ration (e.g., transaction processing may exist in a CSS, but each Client
started in 1983 and Microsoft MS- systems are often the most "critical" will have a single consistent U I ,
Net-based L A N software, such as applications for the airline compa- e.g., a CSS may have both Micro-
IBM PC-LAN started in the 1984- nies). soft Windows o r Presentation Man-
85 year). In 1989, in a survey by Indeed, today the Network in- ager (PM) Clients. A CSS may have
Infonetics o f Santa Clara, 20% o f dustry in general and the LAN and interfaces in addition to the User
PC LAN buyers cited the desire to Database Server Industry in partic- Interface for administrative control
share printers, while 22% cited the ular is very excited about "downsiz- and system management.
sharing o f large mass storage de- ing" m a i n f r a m e applications to PC [B] It forms one or more queries
vices as buying motivation [6]. As Servers and LANs using the Client- or c o m m a n d s in a p r e d e f i n e d lan-
we will discuss in the next section, Server Computing paradigm. guage for presentation to the
file and printer sharing does not T h e i r enthusiasm is causing MIS Server. T h e Client and the Server
lead to Client-Server applications. shops to take more serious notice o f may use a standard-based language
Today, both PCs and LANs have this new paradigm. O f course, this such as SQL or a p r o p r i e t a r y lan-
a large installed base in corpora- has resulted in the d e v e l o p m e n t guage known within the CSS. Each
tionsl; so have PC-based word- o f new network o p e r a t i n g systems user query or c o m m a n d need not
processors, spreadsheets, and data- and database architectures to sup- necessarily m a p a query to the
base programs. Thus, while the PC- p o r t the Client-Server C o m p u t i n g Server from the Client.
based software has allowed a variety model. 2 A Client may use caching and
o f processing to be d o n e on the optimization techniques to reduce
desktop, PC LANs have allowed queries to the Server or p e r f o r m
Client-Server Computing
sharing o f files and peripherals to Paradigm security and access control checks.
take place at the d e p a r t m e n t level Definitions A Client may also check integrity o f
in corporations. In the Client-Server c o m p u t i n g queries or c o m m a n d s requested by
We have also seen Unix worksta- paradigm, one or m o r e Clients and the user. Sometimes it may not be
tions getting larger installed bases one o r m o r e Servers, along with the necessary to send a query to the
in corporations. These are typically u n d e r l y i n g o p e r a t i n g system and Server at all. In such cases, Client
used for "specialized applications." interprocess communication sys- may itself p e r f o r m the data pro-
Worldwide Unix workstation reve- tems, form a composite system al- cessing requested by the user and
nue from "the commercial market" lowing distributed computation, satisfy the user query or command.
is expected to rise from $0.8 billion analysis, and presentation. We will It is however, r e c o m m e n d e d that
in 1990 to $4.6 billion in 1994, call such a composite system a Client applications do not provide
while the revenue from "the techni- "Client-Server System" or simply these functionalities and we ask that
cal market" is expected to grow CSS. In such a system, a Client is a they foist these on the Server appli-
from $6.6 billion in 1990 to $10.7 process which interacts with the cation. For example, if the Server
billion in 1994 [20]. user and has the following charac- manages security, it is much more
Most o f the "Mission critical ap- teristics: difficuh for intruders to break in.
plications" in corporations, how- [C] It communicates to the
ever, have r e m a i n e d mainframe- Server via a given Interprocess
[A] It presents the User Interface
(and minicomputer-) centrio "Mis- communication methodology and
(UI). This interface is the sole
sion critical applications" can be transmits the queries or c o m m a n d s
means o f g a r n e r i n g user queries or
to the Server. An ideal Client com-
*PC-installed bases in U.S. g o v e r n m e n t , busi- pletely hides the u n d e r l y i n g com-
nesses, a n d education were estimated to be 2Network o p e r a t i n g systems (NOS) provide
33.4 million units in 1990 a n d are expected to network functionalities besides n o r m a l (local) munication methodology from the
g r o w to 69 million units by 1994. 34.2% o f file-system functionalities. T h e s e typically user.
PC-installed bases in 1990 are connected have network-aware modules e m b e d d e d
t h r o u g h LANs; 65.2% o f PC-installed bases
[D] It p e r f o r m s data analysis on the
within the o p e r a t i n g system kernel. Microsoft
are expected to be connected by LANs in Lan M a n a g e r Server or 4.3 BSD Unix is a query or c o m m a n d results sent
1994. DataQuest (Mar. 1991). very g o o d example o f a NOS. from the Server and subsequently

78 July 1992/Vol.35,N o . 7 / C O M M U N I C A T I O N S OF THE ACM

presents them to the user. T h e na- on the Server(s) and LAN technol- • They may present a proprietary
ture and extent of processing on ogy connecting the Client to the User Interface. Typical terminals
the Client may vary from one CSS Server(s). or terminal-emulators present a
to another. It is advisable, and desirable, that n o n - G U I interface (e.g., IBM 3270
T h e Client characteristics [B] and in a multiserver environment, the terminals or emulators). I n recent
[D] set it apart from d u m b termi- Servers communicate with one an- years, the terminal-emulator indus-
nals connected to a Host, since it other to provide a service to the Cli- try has attempted to present graph-
possesses intelligence and process- ent without its knowledge of the ical interfaces while hiding non-
ing capability.3 O n the other hand, existence of multiple Servers or graphical and proprietary
Client characteristic [D] must not be intra-server communication. Thus, interfaces from the users.
confused with a PC connected to a in such a distributed processing • Typically, all user key strokes and
LAN, which downloads all the nec- environment, the Client should be cursor positions are transmitted to
essary files from a Server or a Host unaware of the locale of one or the mainframe. Thus, no local in-
and does all the processing locally. more Servers servicing the Client telligence or processing is required,
In a CSS, a Server is a process, or query or command. except that required for the trans-
a set of processes all of which must mission of the user commands or
Thus, a Client/Server architec-
exist on one machine which pro- queries.
ture divides an application into sep-
vides a service to one or more Cli- • Simple terminals are typically
arate processes operating on sepa-
ents. It has the following character- hardwired to the mainframe or to a
rate machines connected over a
istics: local terminal controller, which in
network, thus forming a "loosely
t u r n is connected to mainframes via
coupled" system. 4 A n application
[A]. A Server provides a service to cluster controllers, while PC-based
designer divides the user-defined
the Client. T h e nature and extent terminal emulators are either re-
task into subtasks to be completed
of the service is defined by the busi- motely connected to the main-
either by the Client or by the Serv-
ness goal of the CSS itself. Thus, an frames through modems or con-
er(s) within the constraints posed by
accounting CSS Server provides an nected to the mainframe through a
business goal of the CSS itself and
accounting data retrieval and pro- LAN (Figure 1)
funtionalities provided by the un-
cessing service to the Client. • Typically, all results r e t u r n e d
derlying network operating system.
A service provided by a Server from the mainframes are in terms
T h e more advanced the network
may require minimal Server-based of cursor positions and characters
operating system, the smaller
computation (e.g., print servers or or strings to be displayed at certain
(code-wise) the application will be.
file Servers) to intensive computa- positions on the screen. All compu-
For example, Microsoft LAN Man-
tions (e.g., database servers or tations as well as UI control and
ager provides a rich set of
Image-Processing servers). r e n d e r i n g is done by the main-
functionalities geared toward de-
[B]. A Server merely responds to frame. This causes excessive load-
veloping CSS. Thus, a CSS r u n n i n g
the queries or commands from the ing on expensive mainframe re-
on top of LAN Manager will itself
Clients. Thus, a Server does not ini- sources, such as storage systems
contain less code--which leads to
tiate a conversation with any Client. and CPU cycles, and is the main
reduced development time. If,
It merely acts either as a repository disadvantage of mainframe-centric
however, the same CSS were to r u n
of data (e.g., file Server) or knowl- systems.
on top on a network operating sys-
edge (e.g., database Server) or as a • Mainframe-centric systems ac-
tem which merely provides file/
service provider (e.g., print Server). cord tight administrative control as
printer sharing, CSS code can easily
[C]. A n ideal Server hides the well as comprehensive system man-
entire composite Client-Server sys- agement and performance man-
tem from the Client and the user. A Industry Perspective agement facilities.
Client communicating with a Server At present, most corporate applica- In PC-Server-centric environ-
should be completely unaware of tions are either mainframe-centric ments, on the other hand, PCs
the Server plaform (hardware and or PC-server-centric. I n main- share applications, and data reside
software), as well as the communi- frame-centric environments, users on one or more PC-based Servers.
cation technology (hardware and interact with applications r u n n i n g This e n v i r o n m e n t provides flexibil-
software). For example, a DOS- on mainframes through terminals ity to the individual user, but ad-
based Client should be able to com- or PC-based terminal-emulators ministrative control and system
municate with a Unix or OS/2- which have the following character- m a n a g e m e n t tools are minimal.
based Server in the same m a n n e r , istics: These systems have the following
regardless of the operating system 4Ideally, the Client and the Server may exist characteristics:
on the same machine without any network • Typically, the PC-based Server is
3See section on X-Windows for differentia- involvement; nevertheless, almost all Client-
tion between CSS and X-Windows Client/ Server Systems of interest have a network used to share printers and share
Server. subsystem. c o m m o n applications and data


Server to the user.
• Sharing the Server resources
Time- (e.g., CPU cycles, data storage)
most optimally. A Client may re-
quest the Server to do intensive
I I Terminal computation (e.g., image process-
FrontEnd Controller

I Processor
I ing) or r u n large applications on
the Server (e.g., database servers)
and simply r e t u r n the results to the
• Optimal network utilization as
Terminal the Clients communicate with the
Controller I Server t h r o u g h a p r e d e f i n e d lan-
guage (e.g., SQL) and the Server
simply returns the results o f the
c o m m a n d as o p p o s e d to r e t u r n i n g
all the data files.
• Providing an abstraction layer on
the u n d e r l y i n g o p e r a t i n g systems
Server I and communication systems such as
LAN, allowing easy maintenance

t X.25

and portability o f the applications
for years to come.
Comparisions with Time-Shared
Systems.It is widely acknowledged
in the c o m p u t e r industry that CSS
systems are being widely consid-
LAN e r e d by corporations for new appli-

® ® cations. Often, MIS professionals

are c o n f r o n t e d with the question
"Is Client/Server computing
cheaper?" McCarthy et al. [3] pre-
sent the costs involved in a CSS sys-
tem and c o m p a r e it to the typical
F i g u r e 1. Terminals connected to a the PC-based application may inter-
time-shared computer costs o f a mainframe-centric (or
act with the file Server for accessing
time-shared system centric) appli-
(shared or private) data. This
F i g u r e 2. PCS connected to PC-Serv- cation. T h e y have b r o k e n down the
ers over LAN causes high volume network
life cycle cost o f a CSS into five cate-
traffic since data file(s) must be
gories a n d forecast the cost o f
t r a n s p o r t e d from the file Server
developing an application based
(files only). T h e file Servers provide onto the PC's local memory. This is
on the Client/Server c o m p u t i n g
a range o f services to share data particularly true for PC-network-
model, as o p p o s e d to the time-
a m o n g one or m o r e PC applications based database programs. To-
sharing model shown in Table 1.
(Figure 2). gether, these two drawbacks o f PC-
Thus, they summarize:
• Each application presents UI and based applications form the main
has complete control of the inter- disadvantage of PC-server-centric • T i m e - s h a r i n g has the edge in
face as well as r e n d e r i n g o f the re- systems. application development cost
sults. Recent years have seen an A CSS provides an ideal solution t h r o u g h 1992 d u e to (1) incomplete
explosive growth o f GUI-based to the drawbacks o f both main- and incompatible d e v e l o p m e n t
applications. frame-centric and PC-Server- tools in Client-Server e n v i r o n m e n t
• Usually, all user c o m m a n d s or centric systems. T h e most impor- and (2) additional complexity of
queries are processed on the PC it- tant features o f a CSS are building and testing split applica-
self. Thus, there must be a large • Desktop intelligence, since the tions.
RAM in the PC to enable it to r u n Client is responsible for UI. It • CSS holds a h a r d w a r e cost advan-
sophisticated (and thus large) appli- transforms the user queries or com- tage over minicomputers.
cations. This works against corpo- mands to a p r e d e f i n e d language • System administration is more
rate desire to provide cost-effective u n d e r s t o o d by the Server and pre- difficult in a CSS, since (1) the man-
desktops to the users. F u r t h e r m o r e , sents the results r e t u r n e d from the a g e m e n t tools are i m m a t u r e or

80 July 1992/Vol.35, No.7/COMMUNIGATIONSOF THE A C M

missing, (2) a CSS composite con- the components o f a CSS are com- Network Basic Input/Output Sys-
sists o f nmltivendor-supplied com- mercially available. With the emer- tem (NetBIOS). This was originally
ponents, (3) Time-sharing systems gence o f industry standards in user developed by Sytek, Inc. as a "high-
allow central administration. interfaces such as Microsoft Win- level" p r o g r a m m i n g interface to
• Software maintenance in a CSS is dows, OSF Motif, IBM Presentation the IBM PC Network on a broad-
expected to be lower than in a time- Manager, the d e v e l o p m e n t o f the band a d a p t o r card in August 1984.
sharing system due to (1) greater Client software has become rela- It was located on the IBM PC Net-
reliance on packages as opposed to tively simple and less time-consum- work L A N A d a p t o r (LANA) as an
in-house developments, (2) utiliza- ing; these new interfaces, however, "extention" to B1OS ROM. Soon, it
tion o f new software technology have caused escalation o f developer became a &facto session layer stan-
such as object-oriented p r o g r a m - training costs. d a r d for the PC L A N industry. In
ming. 5 Similarly, LAN software vendors the 1984-85 year, Microsoft devel-
• A d o p t i o n o f the graphical user have provided higher-level com- oped Microsoft Network (MSNet)
interface in a CSS will help cut user munication support. This has been software for IBM based on Net-
training costs by as much as 30 to a catalyst in rapid d e v e l o p m e n t o f BIOS, which f o r m e d the basis of a
40%. the Client-Server systems. T h e wide array o f LAN software sys-
high-level interfaces present a less tems. Most noticeable were IBM
Technology daunting task o f developing and. PCLP, original versions o f DEC
T h e major components o f a Client- testing the communication subsys- Pathworks and UB Net/One, and
Server System are: tems, and allow simpler designs. 3corn 3+Share.
• LAN: This is the backbone of the NetB1OS represents a p r o g r a m -
communication subsystem o f a CSS ming interface at the Session Layer
and provides low-level communica- Connectivity Interfaces as per the OSI model 6 (Figure 3).
tion mechanisms to the network Low-Level Methods. Traditionally, T h e p r o g r a m m i n g interface and
applications. the emphasis o f most early LAN some implementation specifications
• LAN-based PC Servers: T h e software systems (e.g., Microsoft have been defined by IBM [9], leav-
Server can be either a packaged MS-Net) was on providing such ser- ing implementation details to each
product (e.g., file Server, database vices as file-Sharing and printing. vendor. Currently, NetBIOS sup-
Server) or a custom-designed T h u s they provided limited and port is provided by all major LAN
Server to meet the needs of the low-level p r o g r a m m i n g interfaces vendors (e.g., Novell, Microsoft,
business. for the L A N system. For backward Banyan) on DOS, Windows, OS/2,
• Mainframe connectivity via PC compatibility reasons, these inter- and Unix platforms.
Server, if desired: This gives the faces are present in the most Applications interact with Net-
Clients easy access to the vast re- evolved (or advanced) versions o f BIOS s u p p o r t t h r o u g h a data struc-
sources of the existing mainframes. the c o r r e s p o n d i n g LAN software ture called Network Control Block
This feature is crucial to the success systems. (NCB) (see Figure 4); A n applica-
of a CSS, since it provides a natural Most applications which used (or tion must specify values for Com-
migration path to the users and use) these methods have long de- mand field and may specify values
applications downsized from the velopment and testing cycles. Soft- for zero or m o r e fields in the NCB
mainframes. ware maintenance and portability data structure, d e p e n d i n g on the
• Higher-level connectivity s u p p o r t o f these applications are a r d u o u s at NCB C o m m a n d . Finally, an appli-
(e.g., RPC) and Client-Server dia- best. F u r t h e r m o r e , these necessi- cation "submits" a NCB to the Net-
logue (e.g., SQL) support tate business houses to train their BIOS support. T h e exact interface
• GUI. p r o g r a m m e r s to be specialized net- varies with operating system e.g.,
work p r o g r a m m e r s . Due to low while in the DOS environment, an
While the Client-Server p a r a d i g m application can call function I N T
overhead, however, associated with
itself is not new to the c o m p u t e r 6See Tanenbaum, A. S. Computer Networks,
the transport mechanism itself,
industry, it is only now that most of Prentice-Hall, Englewood Cliffs, N.J. 07632
high data transmission t h r o u g h p u t 1980, for a detailed explanation of the OSI
5provided object-oriented tools are available c a n be achieved in each c a s e . layers.

Table 1.
Relative Cost of Development of a Client/Server System as Compared to a Time-Shared System.

COSt Category Application Hardware Systems Software

Year Development Acquisition Administration Maintenance Training

1990 + 30% - 20% + 30% 0% + 10%

1992 + 10% - 30% + 20% - 10% 0%
1994 - 10% - 40% + 10% - 25% + 10%

COMMUNICATIONS OF THE ACM/July 1992/Vol.35, No.7 81

form the first name in the N a m e
Layer Application Layer Interfaces Table maintained by every LAN
7 Application 3 (Named Pipe, TLI, Mail SIot) adaptor. Applications can a d d up to
254 additional names p e r a d a p t o r
6 Presentation "] p e r network node. N e t B I O S pro-
NetBIOS SPX Sockets vides a name-resolution protocol to
5 Session ] check that a unique name to be
a d d e d in an a d a p t o r N a m e Table is
4 Transport -]
IPX not used by any o t h e r a d a p t o r on
Network ] the network a n d a g r o u p name is
not present as a unique n a m e in any
2 Data Link ] a d a p t o r on the network [9]. Appli-
cations can thus use unique names
1 Physical "] or g r o u p names to communicate
with one other.
I n t e r n e t w o r k i n g is h i d d e n from
applications by u n d e r l y i n g Net-
The NCB Fields BIOS drivers or p r o g r a m s and
Length bridges which together provide
Offset Field Name in Byl:es Field Structures Source Routing o f packets. 7 Simply
+00 Command 1 [] put, Source Routing is a protocol in
+01 Return Code 1 [] which a sender node specifies the
+02 Local Session Number 1 [] route (through LANs and bridges)
+03 Name Number 1 [] to the destination node in the frame
+04 Buffer Address 4 ~QOQ itself. A route consists o f a sequence
+08 Buffer Length 2 DO o f route designators, each compris-
+10 Call Length 16 OQDOOQDOODQQDDOQ ing a LAN n u m b e r and an adja-
+26 Name (Local) 16 DDOODQODOOODOQDO cent-next-bridge n u m b e r [16]. T h e
+42 Receive Time Out 1 [] route is carried in the routing in-
+43 Send Time Out 1 [] formation field, distinct from the
+44 Post Routine Address 4 ODDD address field that includes control
+48 LANA Number 1 [] information. A bridge scans the
+49 Command Complete Flag 1 [] routing information field for its
+50 Reserved Field 14 ODDDDQDDDDODDD bridge n u m b e r sandwiched be-
tween the two LANs it joins. T h e
routing information is acquired by
Figure 3. OSl model and different in- bility to the applications to establish the network nodes dynamically
terfaces u p to 254 sessions p e r LAN a d a p t o r with the cooperation o f bridges.
Figure 4. NetWOrk control block p e r network node (Session n u m b e r A simple Client-Server System
(NCB) data structure 0 and 255 are reserved). I f the data consists o f a Server which will wait,
cannot be transferred reliably, an "listening" (NetBIOS c o m m a n d :
e r r o r code is r e t u r n e d to the appli- NCB_LISTEN) to a 'Call' (Net-
5C with the address of NCB in reg- cation p r o g r a m t h r o u g h NCB. BIOS command: NCB_CALL)
ister pair ES:BX to "submit" a Datagram s u p p o r t provides the from any Client. Once a 'Listen'
NCB; in the OS/2 environment, an "best effort" data transfer mecha- matches a 'Call', a session is set up
application calls NetBiosSubmit0 nism, and receipt o f data is not between the Server and the Client.
function to "submit" a NCB. In all g u a r a n t e e d [9]. Now, the Server and the Client can
cases, the underlying NetBIOS F u r t h e r m o r e , NetBIOS provides transfer data (up to 64KB) bidirec-
s u p p o r t p r o g r a m returns a success N a m e S u p p o r t to the application tionally t h r o u g h N e t B I O S data
or failure message in the Return p r o g r a m s as well, so that a network transfer commands, such as
Code field o f NCB. Almost all NCB node can be addressed-- NCB_SEND and NCB_RECEIVE.
c o m m a n d s can be executed either individually by a 16-byte unique
synchronously o r asynchronously. name or as a g r o u p by a 16-byte 7A bridge between two local area networks
copies some or all packets f r o m one net to
NetBIOS provides two kinds o f g r o u p name. Every LAN a d a p t o r a n o t h e r a n d vice-versa. A bridge operates a
data transfer m e t h o d s - - s e s s i o n has a unique 6-byte p e r m a n e n t data link layer o f the OSI model. An intelli-
s u p p o r t and d a t a g r a m support. name (provided by the a d a p t o r gent bridge uses intelligent a n d efficient
packet transfer methods instead o f transfer-
Session s u p p o r t provides a reliable manufacturer), which is a p p e n d e d r i n g all packets f r o m one net to a n o t h e r a n d
data transfer mechanism and flexi- with 10 bytes o f binary zeros to vice-versa.

82 July 1992/Vol.35,No.7/COMMUNICATIONSOF T H E ACM

Finally, either end can break the destination node (LAN adaptor) a packet from any Client (Novell
session using N C B _ H A N G U P com- and can be set to 0x FF FF FF FF FF IPX API: IPXReceive). T h e Server
mand. FF for sending a broadcast packet. must also "advertise" its presence
N e t B I O S provides a solid back- Finally, a destination socket, or (Novell Bindery API: Ad~ ertiseSer-
ward and forward compatible com- destSocket in IPX header, is a vice) so that when a Client wishes to
munication m e t h o d which is a de 2-byte field containing the socket connect to a server, it can "seek" a
facto standard in PC LANs. It gives address o f the destination process. Server (Novell Bindery API: Scan-
an efficient and fast means o f trans- A SPX packet contains an addi- Bindery) and d e t e r m i n e the Serv-
ferring data peer-to-peer or Client tional 12 bytes of h e a d e r to keep er's address (Novell IPX command:
to Server. However, it causes long track o f the packet sequence a n d IPXGetLocal Target). Finally, the
p r o d u c t development, testing, and acknowledgment number, and may Client can "send" a request to
maintenance cycles as most often, it thus contain up to 534 bytes of the Server (Novell IPX API:
requires low-level d e b u g g i n g using data. Applications sending SPX IPXSendPacket). Novell also pro-
network packet analyzers. packets form SPX connections with vides IPX Setup API, which fills in
Internetwork Packet Exchange destination applications, and SPX other necessary fields o f the ECB.
(IPX) and Sequenced Packet Ex- retransmits any unacknowledged IPX provides a fast and efficient
change (SPX). These protocols packets after a p p r o p r i a t e timeout communication interface due to lit-
were introduced by Novell in their intervals. After a certain n u m b e r o f tle overhead associated with each
NetWare LAN products. It is now unacknowledged retransmissions, packet and to its being a simple
available in a n u m b e r of L A N soft- SPX assumes that destination appli- d a t a g r a m protocol. SPX provides a
ware environments as an a d d e d cation is no longer listening and stable connection-oriented commu-
feature for allowing NetWare con- breaks the connection [15]. nication interface which gains in
nectivity and interoperability. IPX Applications communicate with speed d u e to tight integration with
protocol is the native communica- one another, using either an IPX or IPX. Both IPX and SPX, however,
tion protocol of NetWare itself and SPX p r o g r a m m i n g interface. Prior suffer from the drawback o f being
is r e c o m m e n d e d by Novell as the to using either IPX or SPX func- low-level p r o g r a m m i n g , similar to
communication method for Client- tions, applications must p r e p a r e the N e t B I O S interface.
Server applications [14]. T h e IPX and set u p a structure called Event Sockets. T h e s e are the building
protocol is an implementation o f Control Block (ECB). T h e n , they blocks o f communication in the
the Internetwork Datagram Packet can call the IPX, SPX functions Berkeley Unix system and were
(IDP) Protocol designed by Xerox with pointers to ECB, which con- first introduced in 4.3BSD as an
Corporation. It is essentially a data- tains the address o f the IPX or SPX i m p r o v e m e n t or generalization of
gram delivery service [15]. On the packet itself. pipes. Pipes provide IPC mecha-
other hand, SPX protocol is a guar- A typical Client-Server System nisms on the same system. Socket is
anteed delivery service. Thus, the consists o f a Server that will "open"
IPX p r o g r a m m i n g interface ex- a socket (Novell IPX API: IPX
poses an interface at the network OpenSocket) and wait to "receive" Figure S. Ipx/spx Docket structure
layer and SPX p r o g r a m m i n g inter-
face at the session layer (Figure 3).
An IPX packet is identical to a IPX Packet Structure
Xerox Internetwork Standard unsigned s h o r t checksum; P high-low */
(XNS), which consists o f a 30-byte packetLen packetLen; P high-low */
unsigned char transportCtl;
h e a d e r followed by 0 to 546 bytes of
unsigned char packetType;
data (Figure 5). A message can be unsigned long destNet; P high-low */
sent to any node on the internet- unsigned char destNode[6]; P high-low */
work by placing it in the data por- unsigned s h o r t destSocket; P high-low */
tion o f the IPX packet. Each packet unsigned long source Net; P high-low */
must have the destination address, unsigned char soumeNode[6]; P high-low */
which is composed o f the tuple unsigned s h o r t soumeSockat; P high-low */
{destination network, node, socket}. The SPX packet header consists of an IPX header
The destination network, or (30 bytes) and seven additional fields as follows:
destNet in IPX structure, is a 4-byte unsigned char connectionCtl;
n u m b e r specifying a LAN n u m b e r unsigned char dataStreamType;
and is 0 for a node on the same unsigned s h o r t sourceConnectlD; P high-low */
LAN as the sender. T h e destination unsigned s h o r t destConnectlD; P high-low */
node, o f destNode in an IPX struc- unsigned s h o r t sequenceNumber;, P high-low */
unsigned s h o r t ackNumber; P high-low */
ture, is a 6-byte n u m b e r which con- unsigned s h o r t allocNumber;, P high-low */
tains the physical address of the


an e n d p o i n t o f communication to interface {4.3BSD call: bind (sock- Upper-Level (API Layer) MethOdS
which a name can be "bound" [11]. et_no, local name, name length)}. Typically, this class o f communica-
Each socket in use has a "type" and F u r t h e r m o r e , the Server must issue tion mechanisms provides an ab-
has one or more processes attached a 'listen' call (4.3 BSD call: listen straction from the underlying oper-
to it. T h e "type" o f socket deter- (socket__no, m a x i m u m n u m b e r o f ating system, the networking
mines the m e t h o d and mode o f outstanding connections)}. Fur- protocols, and network software
data transfer in the socket as thermore, it must also make 'accept' and hardware. T h e abstraction
shown: or 'select' {4.3BSD call: accept (soc- comes from a regulated and care-
• S t r e a m Socket: provides bidirec- ket__no,..) or select(...) } calls to listen fully designed set o f application-
tional, reliable, sequenced, and for Client request to connect; 'se- programming interfaces (API)
unduplicated flow of data without lect' provides a synchronous input/ which remain u n c h a n g e d across
record boundaries o u t p u t request. various platforms (i.e., vendor-
• S e q u e n c e d P a c k e t Socket:: pro- i n d e p e n d e n t ) within a specific
vides bidirectional, reliable, se- T h e association is completed desktop e n v i r o n m e n t (e.g., PC
quenced, and unduplicated t]ow o f when a Client makes a 'connect' call L A N vs. Unix workstation LAN).
data with record boundaries {4.3 BSD call: connect (sockeLno, Porting o f applications, based on
• D a t a g r a m Socket: provides unre- server address, size o f address)}. these APIs, from one platform to
liable packet transfer across the T h e Client must either know the a n o t h e r platform becomes an easy
socket. Server address, or it may use socket task; In some cases, the application
• R a w Socket: provides access to interface library along with N a m e itself may not need to even be re-
underlying communication proto- Service to obtain the address o f the compiled. For example, Microsoft
col and is provided so sophisticated Server. Now, the Client and the Windows-based N a m e d - P i p e appli-
I n t e r n e t applications can be devel- Server can transfer data by means cations can be used in the Microsoft
oped of 'read/write' calls {4.3BSD: L A N M a n a g e r or Novell NetWare
In a sockets environment, the write(socket__no, buffer, size o f L A N e n v i r o n m e n t by setting up
Client (s) as well as the Server must buffer) and read(socket__no, buffer, necessary Dynamic Link Libraries
first create a socket by some a p p r o - size o f buffer)}. Finally, they can (DLL) and/or N a m e d - P i p e drivers. 8
priate socket interface call (4.3BSD eliminate the connection by means While the network software ven-
call: socket ()). O n e needs to specify of 'close' {4.3 BSD: close(sock- dors present similar interfaces
the tuple { domain, type, protocol} eL_no)} function call. (APIs) to the applications, they
when creating a socket. T h e "type" Socket interface is closer to have complete i n d e p e n d e n c e in
o f a socket has been discussed. One upper-level (API layer) methods designing and i m p l e m e n t i n g the
can specify a specific communica- than N e t B I O S or IPX/SPX, as each u n d e r p i n n i n g s . This leads to effi-
tion domain, e.g., an intra-system function call provides some degree cient data transfer mechanisms,
d o m a i n (in 4.3BSD: AF_Unix), or o f abstraction from the u n d e r l y i n g since each v e n d o r has the best
I n t e r n e t domain (in 4.';BSD: t r a n s p o r t mechanism. Further- knowledge o f his or h e r own system
AF_INET). F u r t h e r m o r e , one can more, it provides request multi- (software or hardware). F u r t h e r -
either use the default communica- plexing on the Server end and more, users o f a specific network
tion protocol (e.g., TCP/IP) or spec- advanced techniques for asyn- e n v i r o n m e n t (e.g., Novell Netware)
ify a specific protocol (e.g., chronous data transfer and out- can use any new application soft-
"myprotocol"). of-bound data transmission. ware without having to change the
A socket by itself is nameless, and environment; T h e y simply need to
thus, it cannot be addressed or ref- Socket interface provides a fast get u p g r a d e or compatibility kits
erenced. In o r d e r for Internet communication mechanism be- from the vendor.
communication to take place, there tween Unix-based Servers. A num- N a m e d - P i p e s . Named-Pipes were
must be an "association" between ber o f vendors have provided designed at Microsoft as part of
communicating processes, which is socket interface not only on Unix early LAN M a n a g e r software; they
o f form {local pathname:local workstations, but also on non-Unix were however, quickly m a d e part o f
port::foreign pathname:foreign desktops such as DOS and OS/2. the o p e r a t i n g system so that all
port}. On the other hand, an associ- T h e p r o g r a m m i n g interface, how- L A N software vendors can provide
ation {local p a t h n a m e : : f o r e i g n ever, remains low-level and poses s u p p o r t for Named-Pipes. Cur-
pathname} is sufficient for intra- the same kinds o f problems as Net- rently, all major vendors o f L A N
system processes (where 'fi)reign BIOS and IPX/SPX. T h e variations software provide s u p p o r t for
p a t h n a m e ' means a p a t h n a m e cre- a m o n g different flavors of Unix Named-Pipes. T h e N a m e d - P i p e
ated by foreign processes, not a provided by various vendors make
p a t h n a m e on a foreign system) portability o f applications and in-
sit may be necessary to recompile and/or
[11]. In o r d e r for this association to teroperability between systems a modify the application u n d e r certain condi-
be built, the Server must call bind challenging project in itself. tions.

84 July 1992/Vol.35, N o . 7 / C O M M U N I C A T I O N S OF T H E A C M
architecture is based on the Client- calls to r e t u r n immediately if no thus making the Client application
Server model and all the program- data is available. A Named-Pipe can almost "network unaware"; Thus,
ruing interfaces provided reflect be changed from blocked to non- the Client end of a CSS can simply
that design guideline. Thus, de- blocked (or vice-versa) after a con- focus on UI and data presentation
signing a Client-Server system nection has been established. aspects of the CSS. Designing and
based on Named-Pipes is easier • Inbound/OutBound or D u p l e x . i m p l e m e n t i n g the Server end of the
than designing a Client-Server sys- While an i n b o u n d pipe allows data CSS is made simple due to the
tem based on other methods which transfer from a Client to the Server, Named-Pipe APIs.
can be "adapted" to implement an o u t b o u n d pipe allows data trans- Mailslots. Mailslots are part of the
Client-Server communication. fer from a Server to the Client. A Microsoft LAN Manager and adap-
A Named-Pipe is the abstract duplex pipe allows bidirectional tations of Microsoft LAN Manager
pipe (Virtual Circuit) that exists flow of data. T h e flow of data can- (e.g., IBM LAN Server, A T & T
between the Server and one or not be changed after a Named-Pipe StarGroup LAN Manager, Digital
more Clients and provides a relia- has been "created." Pathworks). Mailslots provide a
ble unidirectional or bidirectional simple, reliable or unreliable, data-
data transfer channel. A Named- • Message or Byte Stream. A
gram (connectionless) channel as
Pipe has a Server end and a Client Named-Pipe can provide either a
well as a consistent application pro-
end, and each must make certain message stream or a byte stream of
g r a m m i n g interface across plat-
calls to establish a connection. A data. A message stream provides
forms and vendors.
Named-Pipe can be uniquely iden- discrete message boundaries and
"First class" Mailslot message can
tified in global name space by a reliable transfer of messages. T h e
be used in a CSS for reliable Client-
UNC (Universal Naming Conven- stream cannot be changed after a
to-Server communication method
tion) name as shown: Named-Pipe has been "created."
while "Second Class" Mailslot mes-
• M e s s a g e or B y t e R e a d m o d e . In- sage can be used for a peer-to-peer
\\<server n a m e > d e p e n d e n t of the stream type of the communication method. In a CSS,
\PIPE\<pipe name> Named-Pipe, data can be read from second-class messages may be used
where a Named-Pipe either as discrete by the Server to broadcast messages
messages or as a byte stream. T h e to all Clients, while first-class mes-
<server n a m e > is any unique char-
readmode of a pipe can be changed sages can be used by the Clients to
acter string (max 16-byte) identify-
after a connection has been estab- quickly send some data to the
ing the Server on the net.
lished. However, a message stream Server. Although not as compre-
PIPE is a reserver keyword
pipe is read in message readmode hensive as Named-Pipes, Mailslots
< p i p e n a m e > is a unique character
and a byte stream pipe is read in are still useful in that they provide
string adhering to the local file sys-
byte readmode. the layer of abstraction over the
tem n a m i n g convention.
After "creating" a Named-Pipe, lower-level methods such as Net-
A Named-Pipe has to be "created" the Server must wait for one or BIOS or IPX/SPX.
{DosMakeNmPipe0} at the Server more clients to connect to each in- In order to receive messages in
end of the CSS. 9 While each stance of the pipe {DosCon- Mailslots, a node (Server or Client)
Named-Pipe must have a unique nectNmPipe0}. At this time, a Cli- must first "make" a mailslot { LAN
name, each Named-Pipe can have ent can "open" a Named-Pipe by Manager API: DosMakeMailslot0 };
multiple (up to 255) instances. This providing the full UNC name of Only the Server r u n n i n g on OS/2
feature allows one Server process to the pipe to a generic file-opening or Unix platform can receive first-
create one pipe with multiple in- call, e.g., OS/2 call: DosOpen0, class messages. While creating a
stances with each instance servicing Windows call: OpenFile0. This es- Mailslot, one must specify the name
requests from a Client. A Named- tablishes the connection between of a Mailslot as follows:
Pipe can be "created" in the follow- the Server and the Client. Now, the
ing modes: Client can use normal file-system \MAILSLOTx<mailslot n a m e >
• Wait or N o - W a i t . A Named-Pipe
"read file or write file" calls to read
from or write to the file. Finally, the where
in wait mode will cause all reads
from and writes to the pipe to be Client can call file-system "close
file" to close its end of the pipe. T h e MAILSLOT is a reserved key word
blocked if no data is available. No-
Server must make a "disconnect" <mailslot n a m e > is a character
wait modes allow all read or write
{ DosDisConnect0} call when it is string adhering to file-system nam-
notified that the Client has closed ing conventions.
9Currently, only OS/2 and Unix operating
systems support "creation" of a Named-Pipe, its end of the pipe.
thus the Server end of a CSS must exist on Named-Pipe allows the Client A sender of messages must specify
these platforms. In the near future, this capa-
bility will be extended to Microsoft Windows end to use normal file-system calls the UNC name of the Mailslot as
as well. to communicate with the Server, follows:

COMMUNICATIONS OF THE ACM/July 1992/Vol.35, No.7 85

\\<computer name>
\ M A I L S L O T ~ < m a i l s l o t name:> N a m e d Pipes
where he pseudo-code f o r the Server end of an application is
< c o m p u t e r n a m e > is a u n i q u e
c h a r a c t e r string (max 16 bytes)
T shown in Figure SBla and for the Client end of the appli-
cation In Figure SBlb. Figure SB2 shows the life cycle of a
named pipe. In the following example, f o r the sake of simplicity
identifying recipient computer. and clarity, we will assume the server is OS/2-based and the Cli-
ent Is DOS-baSed. A Client-Server designer, however, might Imple-
A n y Client { D O S , W i n d o w s , o r
ment the Client in Microsoft Windows or other graphical user in-
OS/2 } can send a first-class message terface environment.
to the S e r v e r using L A N M a n a g e r As ShOWn in Figure SBla, the Server creates a blOcked mode
A P I : DosWriteMailslot0. T h e s a m e pipe and waits f o r the Client to connect by calling DOSCOn-
A P I is used to send second-class nectNmPIpe. The Client can be a local process (on multitasking
messages to any n o d e on the net- systems) or a remote process. The remote Client must specify the
work. A r e c i p i e n t o f messages can remote Server name. For example, if Server program was run-
r e a d the message f r o m Mailslot ning on a Server named \\harley, Client application will need to
using L A N M a n a g e r A P I : Dos- specify pipe name as \\harley~pipe\acm. The beauty of the named
ReadMailslot(). Finally, o n e can pipes example shown In Figure SBla and SBlb is that it works
among loCal as well as remote processes just by changing the
delete a Mailslot u s i n g L A N Man-
pipe name, which can be obtained Interactlvely from the user,
a g e r A P I : DosDeleteMailslot(). unlike the scheme ShOwn in the example.
While the Mailslot t r a n s p o r t The Client (Figure SBlb) simply opens the pipe as a file using
m e c h a n i s m may internally o p e n a DosOpen and reads from, and writes to, the pipe. Notice t h a t
connection (Virtual-Circuit) be- while the server (underlying implementation such as LAN Man-
tween the s e n d e r a n d r e c e i v e r ager) allocates t w o buffers f o r Input and o u t p u t buffer, the cli-
n o d e s for t r a n s f e r i n g o n e packet in ent end does not need to set aside buffers f o r IPC. The client
case o f first-class messages, it essen- simply closes Its end of the pipe by calling DosClOse. This causes
tially p r o v i d e s a d a t a g r a m (connec- the server to be notified of the closure of the client end of the
tionless) service. T h u s , each call to pipe.
DosWriteMailslot causes a t e m p o -
Once, the client has been serviced, the server disconnects the
pipe by calling DosDisConnectNmPipe. It must call DosCon-
rary c o n n e c t i o n to be established
nectNmPipe again to put the pipe in listening mode again so that
b e t w e e n the Client a n d the S e r v e r the next client can connect using DOSOpen. Before exiting, the
m a k i n g this m e t h o d a less efficient server closes the pipe using DosClose call. After a DOSCIOSecall, a
method for t r a n s m i t t i n g data. pipe has to be freshly created by calling DosMakeNmPipe.
F r o m the application p r o g r a m -
m e r ' s p o i n t o f view, Mailslots are
most useful for occasional b r o a d -
casting o f data o n a n e t w o r k with-
o u t using low-level m e t h o d s such as
T L I . T h e T r a n s p o r t L a y e r Inter-
face (TLI) defines the t r a n s p o r t #define PipeName "\\pipe\t~cm"
i n t e r f a c e to the t r a n s p o r t p r o v i d e r , #define IN_BUFF_SIZE 1024
a n d is not a t r a n s p o r t p r o v i d e r it- #define 0UT_BUFF_SIZE 1024
#define WAIT_TIME - 1
self; T h e u s e r specifies the trans-
int m a i n ( )
p o r t p r o v i d e r to be u s e d for data {
t r a n s f e r which could be based o n unsigned int handle, omode, pmode;
T C P / I P o r S T R E A M S l° library [8]. unsigned long 1Time0ut;
T L I interface is m o s t c o m m o n l y unsigned s h o r t status, BytesRead, BytesWritten;
i m p l e m e n t e d on top o f S T R E A M S - char InBuffer [ IN_BUFF_SIZE ];
based t r a n s p o r t p r o t o c o l drivers. static c h a r 0utBuffer [ 0UT_BUFF_SIZE ] = "Hello from Server"
A l t h o u g h it is the most c o m m o n l y omode = PIPE_ACCESS_DUPLEX; //fifll duplex.
pmods = 0x0001 I // 1 instance of pipe
~°STREAMS was incorporated in Unix Sys- PIPE_WAIT //blocked pipe
tem V Release 3 to standardize and augment PIPE_REA1)MODE_BYTE / / b y t e read mode
development and usage of character input/ PIPE_TYPE_BYTE //byte type pipe,
out drivers and to support development of 1Time0ut = 10L; // 10 milliseconds
communication drivers. It supports the im-
plementation of services ranging from com- //Create a blocked or wait duplex message mode pipe
plete networking protocol suites to simple status = DosMakeNmPipe (szPipeName,
device drivers. See [6] for details.

86 July 1992/Vol.35, No.7/COMMUNICATIONSOF T H E ACM

IN_BUFF_SIZE, // i n c o m i n g buffer data size
OUT_BUFF_SIZE, / / o u t g o i n g buffer data size
WAIT_TIME); / / A p p l i c a t i o n s to w a i t for
/ / t h i s time to c o n n e c t
if ( s t a t u s )
p r i n t f ( ' E r r o r c r e a t i n g pipe %d/n', status);
exit ( status);
/ / T h e pipe is n o w made, n e x t w e wait/block to connect.
//We will also loop forever w a i t i n g for n e x t client to c o n n e c t
for (;;)
s t a t u s = DosConnectNmPipe(handle);
if ( s t a t u s )
p r i n t f ( ' E r r o r i n c o n n e c t i n g pipe %dkn', status);
//We will n o t get h e r e u n t i l the client
//issues a n open. Once w e do get h e r e
//we can do a n y pipe p r o c e s s i n g we w i s h
//until a close is issued o n the pipe.

/ / r e a d a r e q u e s t f r o m client
s t a t u s = DosRead (handle, InBuffer, IN_BUFF_SIZE, &BytesRead);
if ( s t a t u s )
p r i n t f ( ' E r r o r i n reading pipe %dkn', status);
p r i n t f ( ' D a t a received: %s~u', InBuffer);
/ / p r o c e s s the r e q u e s t a n d r e s p o n d back to client
s t a t u s = Dos Write (handle, OutBuffer, strlen(OutBuffer), &BytesWritten);
if ( s t a t u s )
p r i n t f ( ' E r r o r i n w r i t i n g pipe %dkn', status);
} w h i l e ( s t a t u s ! = 0);
/ / D i s c o n n e c t t h e pipe. Now, n o client c a n access t h e pipe
s t a t u s = DosDisconnectNmPipe (handle);
if ( s t a t u s ) S
p r i n t f ( ' E r r o r i n d i s c o n n e c t i n g t h e pipe %dku', s t a t u s ) ;

//Close the pipe

s t a t u s = DosClose( handle);
if ( s t a t u s )
p r i n t f ( ' E r r o r i n closing the pipe %dkn', status);
return (status);


used interface in the Unix environ-
FIGURE SBlb. ment, it is m a d e available on non-
#ffdef LOCAL Unix (e.g., DOS) workstations by
#define '~\ptpe\~m" some network vendors. Similarly,
!else although the most c o m m o n trans-
#define PlpeNs~ne '",kremote..serve:r\\ptpe\~cm"
p o r t provider is TCP/IP, any trans-
ms maan( ) p o r t layer driver such as SPX can be
used in the Novell NetWare envi-
unsigned tnt handle; ronment.
unsigned short status;
char InBuffer [ I N . . B U F F _ S I Z E ]; ch; In a CSS, both the Client and the
statlc char O u t B u f f e r [ OUT..BUFF_SIZE ] = ' H e l l o f r o m C l i e n t ' Server must first initiate a dialogue
//Open the ctisnt end of the pipe in duplex mode with the p r o v i d e r by calling
handle = open( PlpeName, //Local or remote pipe name
O_EDW'R i / / w i l l read and write
t--open0 function by explicitly nam-
O_TEXT, / / T e x t d g t a a s opposed to binary ing the provider. Next, both the
8_rWRITE // Ignored tn ~ case as pipe tu not being created. Client and the Server must associ-
); ate their logical names to their net-
if(handle = = -1 )
{ work name by calling t_bind(). T L I
p r i n t f ( ' E r r o r o p e n l y ; pipe [%s) %d~n', Ptpename. handle); exit ( I ). itself does not provide an address-
} ing mechanism. It instead, passes
//It" a server has already created the pipe, and client has proper
//access rlghts, a connectlon Is m a d e between client a n d server
the address in the form o f {struc-
//we can do a n y pipe proceesing w e w ~ s b ture, length o f structure} to the
//untll a close Is issued o n the pipe. t r a n s p o r t provider. This allows sev-
do eral possibilities for underlying
//send a request to the server
t r a n s p o r t mechanisms, including
status = vn-lte (handle, OutBuffer, etrisn(OutBuffer); being T C P or N e t B I O S or SPX.
ff(e~J;us = = -1 ) Now, the Server can go into the
"listening" state by calling Llisten0
prtntt'('Error in w'rlt,tng pipe %dkn', statu~);
break; and subsequently, becoming ready
l to accept the Client request by call-
/1 r e c e i v e r e s p o n s e i ~ m t h e s e r v e r ing Laccept0. At this time, a Client
status = read (handle, InBuffer, IN_BUFF-SIZE) ;
if(status = = -I )
can call Lconnect0, specifying the
{ remote Server name to establish a
prlnt~('Emmr ~L readir~g pipe %dLn', status); data-transfer channel between the
break; Client and the Server; Applications
else must first find out the type o f ser-
p r i n t f ( ' D a t a received~ %s~n', ~ e r ) ; vice (connection-oriented vs. con-
/ / a s k t h e u s e r f f t h e y w a n t to e n d t h e p r o g r a m . nection-less) provided by the pro-
ch = getCh();
} while ((ch t = ESC) ~ ( status I= -1 )); vider. Once a connection has been
/ / C l o s e the pipe established, the Server and the Cli-
stataas = c l o s e ( handle); ent can use L s n d 0 and t--rcv0 calls
ff ( s t a t u s = = - 1 ) to transfer data units and can fi-
pz,lnt~'Error i~. cloetr~ the pipe %d~n', status);
r e t u r n (status); nally disconnect, calling t_recrel 0
and t_.sndrel 0 to gracefully discon-
T h e T L I interface (along with
1. DosMakeNmPipecreates pipe ~ 3. DosOpencreates client STREAMS I/O system) has allowed
2. DosConnectNmPipewaits for client / connection Unix applications to be p o r t e d
across various flavors o f Unix and
t r a n s p o r t drivers. We do not typi-
cally see applications written to the
41 T L I interface in non-Unix (DOS,
I. DosRead/DosWI Windows, and OS/2) environments
, ,~ovides dialog betw . . . . unless they have been p o r t e d from
Server client and server Client
Unix; thus it has not impacted the
5. DosDisconnectNmPipedeletes client connection non-Unix world to a large extent.
R e m o t e P r o c e d u r e Calls (RPC)
F I G U R E S B 2 . The life cycle o f a n a m e d Pipe Source: Ralph Ryan [181 provides the framework for a
"loosely coupled" distributed pro-

88 July 1992/Vol,35, No.7 /COMMUNICATIONS OF THE ACM

cessing system in which the process-
(a) Client
ing load may be spread across het-
erogeneous processors loosely Server
coupled by networks. RPC provides Client
1 I Service
the mechanisms by which a local callrpcO II, process
p r o c e d u r e may be executed re-
motely on a remote processor and Execute /
the results r e t u r n e d to the local request ~' Call service
p r o c e d u r e without the application's v I Execute
knowledge [2, 12]. ~ service
Return answer
In a CSS based on RPC, when a
remote p r o c e d u r e in the Client end
is called, the arguments o f the pro- Return
cedure are packaged in a packet 4
and sent to the Server end "magi- Client
1 Service
cally" and (in simple cases) the call-
ing p r o c e d u r e is blocked. At the
Server end, the packet is unpack-
aged on delivery and a p r o c e d u r e
local to the Server executes with the
arguments passed by the Client
end. At the completion o f this pro- Interface
cedure, all results are repackaged
in the packet, sent back to the Cli-
ent end, where they are unpack-
aged from the packet into r e t u r n Network
values from the remote call proce-
dure. At this time, the calling pro-
cedure continues execution.
T h e RPC implementations can Client process Server process
be broadly classified into two major
• O N C 11 fromSun. In this mecha- • N C A 12 from Apollo. In this Figure
6. ApollovsSunRPC
nism, a p r o c e d u r e is executed re- model, a set of routines, called
motely and its r e t u r n values are "stubs" are provided at both the
brought back by means o f argu- Client end and the Server end. Advanced Program-to-Program
ments to the call. Figure (6a) illus- Thus, any local calls are r o u t e d to (APPC/LU 6.2) allows peer-to-peer
trates the simplest Sun RPC call, the remote Server p r o c e d u r e communication between any two
CaIIRPC0, which takes a set o f pa- t h r o u g h the Client and Server stubs p r o g r a m s in a System Network
rameters: (Remote Server name, as shown in Figure (6b). Typically, Architecture (SNA) environment,
p r o g r a m name, version, p r o c e d u r e the stubs are generated by a RPC and is the foundation o f the "coop-
number, External Data Represen- compiler which interacts with the erative distributed processing" en-
tation (XDR) routine for input ar- RPC runtime library. T h e RPC vironment envisioned by IBM.
guments, actual arguments, a XDR runtime library shields the network T h e entities using APPC com-
routine for r e t u r n e d arguments, communication from both the munication functions are called
and r e t u r n e d arguments), where an Server and Client applications. For Transaction Programs (TP), each of
XDR function provides any data example, Apollo's RPC runtime li- which can have a 64-byte name and
translation required when transfer- brary provides a connection- an 8-byte identifier; A p r o g r a m can
ring data between heterogeneous oriented data transfer service over contain one or more TPs. Each T P
c o m p u t e r systems [12]. In this the User Datagram Protocol (con- issues a "verb" to the APPC API in-
model, applications need to be nectionless) service. terface for some APPC action to
aware o f underlying network and The Distributed Computing take place. A verb is a device, oper-
protocols. Environment (DCE) RPC is based ating system, and underlying SNA
on this model. See [12] for a de- c o m p o n e n t - i n d e p e n d e n t formatted
Netwise implementation o f RPC for
tailed comparison of the above- request that APPC executes. Pro-
Novell Netware is similar to this
mentioned RPC methodologies. grams use APPC verb sequences to
communicate with programs at
HOpen Network Computing ~2Network Computing Architecture other locations, while the p r o g r a m


itself can be written in any sup- APPC p a r t n e r (such as a DOS ma- systems and networks make queries
ported language such as COBOL, chine) and the Server being the to the Server(s). T h e Server has
C, or Assembly [10]. In a SNA envi- high-end APPC partner (such as a absolute control over access to data,
ronment, each SNA node contains OS/2 Server). T h e Server can be a as well as the responsibility to main-
a specific Physical Unit (PU) which mainframe, a minicomputer or a tain data integrity and consistency.
manages data buffers and network PC-based Server r u n n i n g APPC Therefore, a well-defined interface
links. T h e PU type (2.0, 2.1, 4, and support software. However, due to must be provided to the Clients so
5) determines the functions pro- physical memory limitations on a they can formulate their queries
vided by the SNA node, such as typical DOS desktop, it may not be and send them to the Server, using
routing capability, connection capa- feasible to r u n APPC support soft- any communication interface,
bility, and network device address- ware on the Clients. Thus, some In recent years, SQL has become
ing capability. O n the other hand, a software products, such as the the standard database interface in
Logical Unit (LU) provides the TPs DCA/Microsoft Communication the relational DBMS. Thus, Clients
access to the SNA network by pro- Server, use LAN communication simply translate one or more user
viding a logical abstraction over the interface (e.g., Named Pipe) on the queries into one or more SQL state-
u n d e r l y i n g PU. Many LUs can be Client to simply send an APPC verb ments, send to the Server, and
active simultaneously or many TPs to a Communication Server, which present the o u t p u t r e t u r n e d by the
can access the services of one LU. runs all the necessary APPC sup- Server to the user. O n receipt of a
Again, the LU type (0, 1, 2, 3, 4, port software. T h e Communication SQL query from the Client, the
6.1, 6.2, and 7) determines the Server uses APPC to communicate Server checks the syntax of the SQL
functionality provided by the LU. A with the real Server on the SNA statements and verifies the exis-
PU must support LU 6.2 to be able network and r e t u r n results to the tence, access rights of the Client,
to support APPC-based communi- .Client through the LAN interface. and data type of each object. At this
cation between programs (APPC T h e APPC-based Client-Server time, the Server may invoke a SQL
itself is an implementation of LU system is a viable system for busi- query optimizer to find the most
6.2 architecture) [10]. nesses which already have an SNA optimal path to the referenced
I n order for two TPs to commu- e n v i r o n m e n t and are either down- data. It finally executes the state-
nicate, two LUs must first set up a sizing their applications to the PC ment, records the transaction, and
LU-LU 'session.' Sessions control Servers or want to make mainframe returns resulting data, if any, to the
data transmitted, data security, net- data readily available to the PC- Client [5].
work routing, data loss, and traffic based Clients. Each Client using SQL as the
congestion. TPS use conversations database interface can access any
to communicate where conversa- Future Modes of database Server which exposes SQL
tions use LU-LU sessions. A n u m - Communication as the database interface. Thus, a
ber of conversations can use the We anticipate RPC evolving into the Client end can be implemented in
same session in serial fashion. Once mainstream mode of Client-Server any language or environment. O n
a conversation is allocated a session, communication. Currently, mostly the other hand, a Client end can be
both TPs can transfer data by Unix software vendors are migrat- quickly developed using a fourth-
means of 'receive' and 'send' verbs. ing toward RPC. In the PC environ- generation language. Most ad-
(See Figure (7).) Once a conversa- ment, RPC still has to become the vanced software development tools
tion ends, the session is deallocated key network communication inter- provide network-transparent data-
and it can be used by next conversa- face. T h e evolution of RPC will base functions which convert argu-
tion. probably coincide with, or be the ments to the functions into SQL
T h e power of APPC is that any catalyst for, the evolution of CASE statements at run-time and per-
two nodes, which support LU 6.2, tools for developing Client-Server form network communication for
can communicate irrespective of Systems. It will definitely be the key the application. This allows the
their location on the (SNA) net, c o m p o n e n t of future distributed developer to focus on database
operating system, or hardware plat- operating systems and distributed computing aspects of a Client with-
form; Thus, a DOS workstation can applications. out having to worry about SQL syn-
talk to an IBM mainframe, pro- tax and u n d e r l y i n g network soft-
vided both have APPC support 0atabase Interfaces ware. Acceptance of SQL as
software and hardware. Similarly, In a Client-Server model-based standard interface has also been a
two DOS machines can communi- database computing environment, catalyst in proliferation of off-the-
cate with each other via an APPC one or more Clients r u n n i n g on self front ends to the database Serv-
interface.13 perhaps heterogeneous operating ers. Furthermore, most report gen-
APPC can be used as a building eration or spreadsheet tools now
block of a CSS. O n e can envision ~3There must be a S N A r o u t i n g node in be- provide an SQL interface so that
the CSS Client being the low-end tween the two. users can retrieve information from

90 July 1992/Vol.35, No.7/COMMUNICATIONS OF THE ACM

,~_ - - -y_-_-_-_- - - - --_-_-_ ~ - - - - . _ .
~ r . . . . . . . . . . . . . . . . . . I--. "m

I ,' 'I I
I ', , ! I
--.L ', r,-. i r--L
,I I LU "! I I, I I
,I I LUi .L
,I / ,11
I_A,. /

" . . , ~L. I Ic-. ~ ~q ' - -~. ~ . ~-- .- - ',~,1
, a - - ~~ ' - 5~.- E ~ . . ~. . 1. . -. . ;;~J
~.-:M F-~-~ "-~-.
~. . . . . . ~ , ~ . . . . . . . . ;-J



any database Server. tions u n i f o r m device-independent F i g u r e 7. LU-LU session between

It must be noted that the data- text and graphics primitives. workstations
Source: [10]
base interface (e.g., SQL) between X-Windows provides the facilities
the Client and the Server creates for generating multifont text and
network traffic at least an order of two-dimensional graphics (such as the X Client and X Server are on
magnitude less than typical net- points, lines, arcs, and polygons) in the same machine, the X Protocol
work traffic generated by PC-based a hierarchy of rectangular windows often uses interprocess communi-
database programs which must on a user screen; Every window is a cation (IPC) mechanisms provided
bring all the tables stored on the virtual screen which can contain a by the u n d e r l y i n g operating sys-
Server onto the PC's local memory. tree of subwindows which can over- tem. Otherwise, it uses the underly-
lap one another and can be moved, ing transport provider to establish a
Graphical Interfaces resized, and stacked on top of one reliable data transfer channel be-
Typically the GUI provided with another dynamically [19]. Further- tween the X Client and the X
the operating system defines the more, the X-Windows provides net- Server; X Protocol can communi-
user interface for the Client end of work transparency so that an appli- cate all necessary information over
a CSS. For example, an application cation displaying a chart on a a single asynchronous duplex 8-bit
r u n n i n g on HP NewWave system screen could be r u n n i n g on a local bytes stream. X Server sends event
uses the GUI provided by New- machine or a remote machine thou- notification to the X Client, such as
Wave. Currently, the most popular sands of miles away; Herein lies the mouse movement or keyboard
GUIs in the PC computing arena difference between the PC environ- input. X Client sends requests to
are Microsoft Windows, IBM Pre- ment GUIs and the X-Windows. the X Server to execute some
sentation Manager, and HP New- graphics primitive, such as draw a
Wave, to name a few. These inter- T h e X-Windows facilitates the point { X call: XDrawPoint0 }. T h e
work involved in the graphical dis- X Server does not have to acknowl-
faces, however, are local to the
machine and are not network play to be distributed by defining X edge any request or even execute
Server and X Clients (Figure 8). any request (Figure 9).
In a Unix environment, the X Unlike the Client and the Server of Although X-Windows provides a
a CSS, the X Server is local to the network-transparent windowing
Window System, or the X-
user's machine, while the X Client environment, applications need
Windows, has become the de facto
can execute on the local machine or tool kits which provide a higher
graphical interface standard. It was
a remote system. T h e X Server and level of abstraction than accorded
designed and implemented at Mas-
X Client communicate through a by X, such as Draw a Scroll Bar.
sachusetts Institute of Technology
(MIT) and has been adopted by well-defined communication proto- OSF Motif and Sun O p e n Look are
col called X Protocol, which is the some of the popular tool kits. Fur-
most Unix vendors, as well as most
foundation of X-Windows. If both thermore, one must note that while
Unix workstation hardware and
software vendors.14 The X- X (along with added tool kits) can
a4X W i n d o w S y s t e m libraries a r e n o w avail-
Windows is a network-transparent able o n D O S a n d (Microsoft) W i n d o w s envi-
provide one of the key elements of
window system that gives applica- r o n m e n t s as well. a C S S - - n a m e l y User I n t e r f a c e - - i t

COMMUNICATIONS O F T H E AOM/July 1992/Vol.35, No.7 91

is not in itself the complete solution. that are interpreted by an intelli- example, the Microsoft LAN Man-
In a simple CSS based on X- gent Server (Host). This is defi- ager for Unix (LM/U) provides
Windows, a CSS Client will double nitely an o r d e r o f m a g n i t u d e more almost all o f the LAN Manager API
both as a X Client and a regular efficient than r u n n i n g terminal interfaces in the Unix environment,
CSS Client. T h e X Client part will emulators on the desktop. How- which allows for writing efficient
be interacting with the X Server ever, if a X Client is run on a host Clients. X-Windows Clients on PCs
r u n n i n g on a local or remote user instead o f on the desktop itself, typically suffer from m e m o r y prob-
desktop for purposes o f graphical such a system would use host CPU lems and slow response time and
data presentation (e.g., a chart) and cycles for user interface display on are, thus, not r e c o m m e n d e d .
data/query acquisition (e.g., one or m o r e desktops. Thus, it will
t h r o u g h some G U ! form). On the lead to wastage or expensive host Clients
other hand, the regular CSS Client CPU cycles. F u r t h e r m o r e , such a T h e following are the key issues
part will be interacting with the CSS system will still cause high network that a CSS Client must consider:
Server (e.g., a database Server) for traffic as c o m p a r e d with, say a
the p u r p o s e o f finding results o f Microsoft Windows Client, that j u s t
• Workstation O p e r a t i n g S y s t e m
(OS). T h e workstation o p e r a t i n g
one or more user queries. Thus, communicates to the Host or Server
system (broadly Windows vs. OS/2
one can envision a CSS Client (dub- to receive query results and pre-
vs. Unix) is often decided on by the
bing as a X Client as well) on a Unix sents user interface by itself.
driving force behind the CSS itself.
system servicing one or m o r e X X-windows might be a good al-
O n e must, however, design a CSS
Servers r u n n i n g on Unix worksta- ternative for a CSS, where most
so that it can grow to accommodate
tions or DOS-based PCs all con- users use Unix workstations and
heterogeneous-OS-based Clients.
nected t h r o u g h a LAN; T h e CSS are familiar with Unix and
Client, in turn, can be interacting X-Windows. T h e designer, how- • H a r d w a r e Constraints. T h e Cli-
with yet a n o t h e r Database Server to ever, must evaluate simple non-X- ent should usually be as small as
service users. Windows implementations using possible so it can be p o r t e d to low-
X-Windows is a network-aware direct network calls to circumvent end to high-end workstations. This,
graphical interface, where transac- problems faced with X-Windows- however, may not always be feasi-
tions are in the form o f requests based Clients. Most PC-based LAN ble, especially for advanced appli-
software vendors also provide Unix cations.

Figure 8. X windowClientsand Serv-

Client software and API interfaces, • C o n n e c t i v i t y Constraints. T h e
ers which can be utilized to develop u n d e r l y i n g connectivity h a r d w a r e
Source: [19] simple and efficient Clients. For and software itself will influence
the design o f a Client software. A
m o d u l a r design, however, will en-
X WINDOW SYSTEM sure that Client application is port-
able across multiple-vendor-
Application Application supplied LANs and Wide-Area-
Mail Network (WAN) software and
GKS Library PseudoTrY Application
Terminal Window X Toolkit
Emulator Manager • Object-Oriented D e s i g n . In a
CSS, object-oriented design tech-
X Library X Library X Library X Library niques can be used to hide the con-

,I I Network I
straints mentioned and make appli-
cations portable to new o p e r a t i n g
systems or LANs.
X Network Protocol
• G U I . T h e underlying user inter-
face shell (say Windows) is again
I X Server I I X Server I largely defined by the p u r p o s e o f
the CSS itself and the workstation
DeviceLibrary I DeviceUbrary o p e r a t i n g system. In general, the
UI should be as m o d u l a r as possible
so the Client can be p o r t e d from
I one operating system to another.

• Division of Responsibility.
Which processing is done on the
Client and which done on the

92 July 1992/%1.35, No.7/COMMUNICATIONS OF T H E A C M

Server? Should the Server be sim- compatible and less susceptible to on the PC Server and giving all Cli-
ply a storage facility (e.g., a file obsolescence as new innovations in ents seamless access to m a i n f r a m e
Server) that wiffcause the Client to software and hardware unfold. data storage facilities. This m e t h o d
do the rest o f the processing or in- can also be used to gain access to
telligent information retrieving * Gateway to Mainframe. Most large database systems on main-
(e.g., a database Server) in which m e d i u m to large corporations have frames (through database gateway).
the Client mostly does presentation very valuable and strategic data on
* Disk Space. W h e n downsizing a
and some analysis? These questions mainframes, which the corporate large application from mainframes
can be answered best by the user Client wants access to from her to PC Servers, especially databases,
needs and business goals o f the CSS desktop. O n the other side, the
one may experience disk space limi-
itself. mainframes have large reliable data
tations on a PC Server. While it is
repository systems that can be used
Servers by the corporate Client to store
T h e importance of p r o p e r design data. Both needs can be easily satis- F i g u r e 9. X windows environment
of the Server(s) cannot be overem- fied by r u n n i n g gateway software Source: [19]

phasized. T h e following key issues

must be considered when designing
a Client-Server system:
• Scalability. A Server must be
scalable to s u p p o r t larger and
larger numbers o f heterogeneous
Clients. For example, in case of
database Servers, the design must
allow for growth into a distributed
database system. A distributed sys-
tem contains multiple (perhaps het-
erogeneous) Servers which provide
the Clients location transparency, 15
fragmentation transparency, 16 or Personal
replication transparency 17' 18 [7].
• Server Interface. It is important
that the Clients be unaware of any
Server features except for the stan-
d a r d interface such as SQL or
X-Windows. All Server platform
(hardware and software) issues
should be h i d d e n from the Clients.
Display Server
This will make the CSS upward-

15Location t r a n s p a r e n c y makes the user una-

ware of changes in the physical location of the
database. Client Client Client
Application (Window Manager) Application
~6Replication t r a n s p a r e n c y provides multiple Toolkit
copies o f data items across the system, thereby
r e d u c i n g q u e r y response time. This, however,
Xlib Xlib Xlib
causes extra overhead as each c h a n g e must be
replicated to all copies.

~TFragmentation a n d partitioning transpar-

Events and replies I X Window System
ency make the user u n w a r e that parts o f the are passed back protocol requests are
database are stored at different locations or to C ients 1 sent from Clients
an existing (overgrown) database has been
split into separate entities. T

~XThe c u r r e n t SQL s t a n d a r d cannot s u p p o r t

location, f r a g m e n t a t i o n or replication trans-
parency, a n d it cannot enforce integrity con-
straints. T h e ANSI S t a n d a r d s Committee
G r o u p X3H2, as well as SQL Access G r o u p (a
I Device Drivers I

vendor consortium) are working on accept-

ance of u p d a t e d SQL standards [7].

COMMUNICATIONS OF THE ACM/July 1992/Vo1.35,No.7 93

c o m m o n to find 6 0 0 - 8 0 0 M B disk LANs are plagued with problems o f mote sites, as well as handling re-
space on the PC Servers, one may internetworking. Simply providing quests from about 65 local Clients.
obtain Super network Servers a LAN and some form o f internet- In a fully installed system, each Cli-
which often can be scaled to pro- working solution is often not ent would connect to a local Server
vide larger and larger disk storage. enough for developing enterprise- which would contain data pertinent
For example, a Compaq 486/ wide mission-critical applications. to the Client's needs. In total, there
33MHz SystemPro can be config- Currently, the lack of effective PC would be 300 relational tables
u r e d to provide 1.68GB of disk LAN m a n a g e m e n t tools is a critical spread over multiple Servers which
space. 19 Beyond such limits, the inhibitor to mission-critical applica- are replicated to a central Server
designer should consider splitting tion d e p l o y m e n t on LANs [16]. database which is estimated to be as
the storage (e.g., database tables) large as 3GB.
over multiple Servers. Some Examples o f Such
• Security and Access Control. ventures iLan Project (excerpted from [22])
This has been one o f the weak Microsoft WinSales Project iLan is a consulting and software
points o f PC-based Servers as com- Chevron Vancouver Project d e v e l o p m e n t firm based in Colum-
p a r e d to mainframes. Most LAN Chevron Canada used the Client- bus, Ohio. T h e y developed an im-
software provides password en- Server model to revamp their stra- aging system, based on the Client-
cryption and password-based access tegic sales-monitoring application Server model, for a customer. T h e
control. This may not be sufficient that connects Chevron's Canadian iLan imaging system supports very
for some strategic applications. In distributors to the Chevron's head- high-volume scanning and index-
recent years, however, we have seen quarters in Vancouver (Figure 10). ing o f images for mission-critical
growth o f software and hardware T h e existing application is based on applications. For billing, the system
security features or products that IBM 3090 and is a 20-year-old can p r o d u c e a list of invoices from
one may incorporate into the CSS batch-processing application [21]. the index, find and print out copies
to make it very secure. It is used for o r d e r entry, tax and o f all of them.
• Backup, Recovery, and Logging. inventory control, and for produc- In this System, a front-end pro-
This is yet another weak point o f ing strategic m a n a g e m e n t reports. cessor (a DOS-based workstation)
PC-based Servers when c o m p a r e d Thus, it is a mission-critical applica- scans in an image, allowing the op-
to mainframes. This can be fairly tion, s u p p o r t i n g a combined on- erator to enter index information
well overcome by integrating multi- line transaction processing system or queue up the image for later
pie software and hardware solu- (OLTP) and decision s u p p o r t sys- indexing. O t h e r operators find out
tions into the CSS. tem (DSS). what has been q u e u e d up when
• Fault Tolerance (FT) and Unin- Based on organizational and user they start work, call up the image
terrupted Power Supply (UPS). F T needs, they decided the database and key the indexing information.
usually refers to the ability o f the Server must be multiuser, scalable W h e n indexing is complete, the
Server to withstand the loss o f one with s u p p o r t for both O L T P and image is stored on an optical disk,
or more disk drives and disk con- DSS, and most important, be based while the indexing information
trollers. UPS refers to making sure on the Client-Server model. As for (key words, comments) is written to
the Server gets u n i n t e r r u p t e d and the Server platform, it must sup- an Oracle database from Oracle
steady power d u r i n g blackouts and port the database Server selected, Corp., Redwood City, Calif., on the
brownouts. In this respect, a wide be scalable, and must s u p p o r t local Server machine.
variety of solutions exist which can area networking as well as wide- For this installation, they picked
be easily integrated with the PC- area networking. Finally, CSS must Vines network from Banyan,
based Server. s u p p o r t various Clients and end- Westborough, Mass., with Oracle
• Performance and System Man- user tools. for Vines as the database Server.
agement. C u r r e n t PC-based Serv- According to Soper, they built a T h e y decided to use the Unix-
ers must grow more to allow com- prototype based on Sybase/Micro- based Server, since it allowed them
plete system m a n a g e m e n t of LANs soft SQL (database) Server on a flexibility. F u r t h e r m o r e , Oracle
and Servers from one workstation. OS/2 platform. T h e Windows or database could be p r o g r a m m e d to
Currently, this is one of the major OS/2-based Clients were connected hold only the index as o p p o s e d to
concerns o f MIS shops that are to the Server via Microsoft LAN the image itself, thus saving the
planning to downsize to PCs. M a n a g e r LAN software. T h e pro- database from storing huge images.
• I n t e r n e t w o r k i n g . Most middle to totype was installed in early 1990 Now, they are porting their ap-
large corporations that are consid- with the full system expected to be plication to different Server plat-
ering downsizing to PC Servers and commissioned by 1992. At that forms (e.g., OS/2, AIX) as the Ora-
time, the CSS will be handling cle database Server is becoming
19As per Compaq Computer Corporation lit- about 165,000 transactions p e r available on each such Server plat-
erature dated 03/30/90 month coming from over 35 re- form. Thus, by choosing a Server

94 July 1992/Vol.35, N O . 7 / C O M M U N I C A T I O N S OF THE A C M

35 Agencies Refinery Warehouse

[ ] Dial-up
Wide Area
[ ] Leased Line Network
[ ] X-25 /


San Francisco Integrated

Mainframe Database

Local Area SERVERS


II Marketing

APT (Sales System)
Ad-hoc database

Figure 10. Chevron Vancouver project

Source: [21]


that runs on multiple platforms, the database server. Each Server the network and SQL-based trans-
iLan retained the flexibility to supports anywhere from 5 to 10 actions between workstations and
change the Server hardware and NCR or Nixdorf 386SX work'sta- the SQL Server. All error-checking,
operating system wherever it is tions, which have printers, mag- customer validation, and financial
beneficial to do so. T h e i r applica- netic swipe readers, and smartcard data integrity checking has been
tion code does not have to change readers as peripherals. T h e mag- implemented as triggers in the SQL
as the Server platform is changed, netic card swipe allows customers to Server, which gets activated by each
since Oracle will maintain a consis- use a credit card or dept card for transaction. Each 'trigger' is a com-
tent Server interface. identification d u r i n g transactions. piled C/SQL function, which gets
T h e user interface consists of a called by the SQL Server to enforce
Commonwealth Bank (Australia) simple series of windows, allowing user-defined semantic a n d integrity
Project customer service representatives to rules. T h e Client software and all
Commonwealth Bank of Au,~tralia check account balances, open new SQL Server p r o g r a m m i n g was
is one of the largest commercial accounts, perform overseas trans- done by the bank's information ser-
banks with 50,000 employees and actions, or access customer infor- vices department.
1,800 branches. They are imple- mation. T h e user interface hides By the e n d of 1992, all of the
m e n t i n g Access to Sales and Service
I n f o r m a t i o n System (ASSIST) in
their branch offices to provide their
customers with faster service and
easier access to b a n k i n g infi~rma-
Client/Server Architecture of Winsales
tion. T h e system is based on the FIGURE SB3a. depicts Microsoft MIS Winsales base client/server architecture.
The architecture comprises personal computers running Windows1 applications
Client-Server computing model. with SOL Server,2 a relational database management system, as the primary server
Prior to installing the new sys- application. The client application is an executable that runs on top of the Micro-
tem, the bank faced a d a u n t i n g soft Windows operating system. The user controls the client application by initiat-
ing keyboard and mouse events. These events generate recognizable Microsoft
paper chase. O p e n i n g a typical Windows system messages that are trapped by the windows application and are
checking account could take up to used to trigger application functions. Application functions in turn call DB-Library
functions.~ DB-Library iS the application programmer interface (API) to SOL Server.
20 minutes and involved filling out It is used to establish and break connections with the server and to submit and
several forms which had to be pro- receive data processing requests, primarily in terms of SOL. DB-Library makes the
cessed by one or more bank offi- necessary calls to the Lan Manager 4 API, which in turn provides access to server
resources over Ethernet under the XNSs protocol. On the SOL Server side, each
cers. Furthermore, data entry was server application is made of data, tables, indices, and other relational database
yet another problem. Each day objects. The server receives requests from the client application via Lan Manager.
about 200 operators entered data These requests in turn are submitted to the database engine for processing.
This architecture has several advantages. All knowledge of the network and
into 3,090 IBM mainframes ,which
were again checked for errors. All
of this led to slow, yet expensive
service. I Client I SQL Server
Thus, the bank decided to imple- Application Application
m e n t ASSIST in all the retail
branches. So far, they have installed
ASSIST in over 250 branches,
which led to a 90% reduction in
I I[ win0owI SQL Server

paperwork, and accords a pleasant

customer service environment. I LAN Manager I LAN Manager
U n d e r the new system, each
branch has a Token-Ring LAN with
a NCR or Nixdorf 386-based
Server with 16MB of memory. Each
Server has a NCR-adapted OS/2

operating system with Microsoft Ethernet

Lan Manager LAN server on top of
the operating system. NCR-
adapted Microsoft/DCA C o m m u n i - W i n d o w s / S Q L Server Client Server
cation is also loaded on a Server to Architecture
allow an open communication link
with central IBM 3090 mainframes.
FIGURE SB3a. Windows/SOL Server Client server architecture.
Finally, Microsoft/Sybase SQL Source: [17]
Server is also r u n on each Server as

96 July 1992/Vol.35,No.7/COMMUNICATIONS OF THE A C M

Commonwealth Bank's 1,800 tion, and analysis o f separate tele- m e n t e d to make information easily
branches are planning to have simi- marketing campaigns. In addition, accessible to the end-user. This arti-
lar systems instfiUed. T h e bank also information collected by one cam- cle a t t e m p t s to delineate major
plans to use the Micro T e m p u s En- paign should be available for reuse components o f a Client-Server sys-
terprise Router to develop an en- for future campaigns and the same tem with special emphasis on com-
terprise-wide routing system or vir- database should s u p p o r t multiple munication interfaces. While most
tual LAN that connects 1,800 local campaigns concurrently. T h e sys- Client-Server systems being devel-
Servers to the IBM hosts. This will tem is designed to be used by sales o p e d are database computing re-
allow monitoring and control of all representatives from a large num- lated (i.e., the Server is a database
Servers from a single location. ber of field offices for telemarket- Server), not all are or will be.
ing, as well as customer surveys. Today, most o f the components
Microsoft MIS WinSales Project: (See sidebar.) of a Client-Server system are avail-
(excerpted from [171) able commercially. F u r t h e r m o r e ,
T h e WinSales application was de- Conclusions most components, namely LAN
signed at Microsoft MIS house to Today, a wide spectrum of Client- software, database Servers, and
s u p p o r t the execution, administra- Server Systems are being imple- User Interface software, are being
provided by a n u m b e r of vendors,
giving MIS houses f r e e d o m o f
choice. Nevertheless, most MIS
sewer implementation is encapsulated within the client/sewer APl and therefore houses still have to do some in-
entirely transparent to client applications. For example, a SOL Sewer application house development. Finally, system
may be moved to a new hardware platform overnight with no effect on the client
application. With the appropriate gateway technology, DB-LibraW may be used to integration o f CSS components is a
access databases other than SQL Server, Including operating system files such as d a u n t i n g task which all MIS houses
VAX RMS or RDB files. Several client applications may run concurrently on a single must perform.
workstation and communicate with each other through Windows. In addition cli-
ent applications may access multiple and diverse sewer applications during the With the growth o f Client-Server
same session. In Wlnsales environment, multiple SOL Servers, corporate email sew- systems, one can anticipate that
ers, and fax sewers are all used to link individual workstations to corporate data,
each other and the rest of the world (see Figure SB3b). most vendors o f CSS components
will work toward open systems,
IMicrosoft Windows which are easy to integrate and will
~Microso~'t SQL Server and Sybase SQL Server
require less in-house d e v e l o p m e n t
~part of the SQL Server product to fit in within the CSS. Further-
4Microsoft Lan Manager
more, one can foresee evolution o f
~Xerox Network Standard fourth-generation languages (4GL)
and CASE tools, which will allow
rapid prototyping of Client-Server
FAX email J
t Sewer SQL I Sewer Se wer Sewer Acknowledgment
i I would like to thank Ray Patch,
I I I, Charles Rudd, Brian Valentine,
Bob Kruger, Dov Hovel, Steve
I D u d g e o n of Microsoft Corporation
and Bill Soper of Chevron Corpo-
I emai, AP', I I db,,b,,P, I I FAX API I ration for their comments and/or
; assistance in putting this article to-
I , I ,I
I W,ndows*P, I gether. []
i i
I I , References
1. AT&T. AT&T streams. ISBN 0-13-
940537-2025, 1987.
2. Birrell, A.D., and Nelson, B.J. Im-
plementing Remote Procedure
Multiple Client Applications Calls. ACM Trans. Comput. Syst. 2, 1
A c c e s s i n g Multiple Server Resources (Feb. 1984), 39-59.
3. Business Research Group. PC Lan
integration and management: User
FIGURE SB3b. Multipte Client applications accessing multiple sewer resources.
trends. Newton, Mass., June 1991.
Source: [17] 4. Client-Server Computing. Datapro
reports on PC communications.

C O M M U N I C A T I O N S OF T H E ACM/July 1992/Vo1.35, N o . 7 97
j , 5.
Tech. Reps., McGraw-Hill, Inc.,
Delran, N.J. 713-101. June, 1990.
Dale, R. Client-Server database:
Architecture of the future. Database
Project Manager, Chevron Canada
Ltd., Vancouver B.C., Canada.
22. Winston, A. OS/2, Unix competing
for server selection. Softw. Mag.
Program. Design. (Aug. 1990), 2 8 - (May 1991).

I; 6.
Fields, D., Ed. Client Server Comput-
ing: Making it Workfor You. Parallan
CR Categories and Subject Descrip-
tors: A.1 [General Literature]: Intro-
Computer, Inc., Mountain View, ductory and Survey; C.2.4 [Computer
Calif., 1990. Communication Networks]: Distrib-
7. Gold-Bernstein, B. Does Client- uted Systems--distributed applications;

t 8.
Server equal distributed database?
Database Prog. Design (Sept. 1990).
Harris, D. TLI. Unix Networking.
S.G. Kochan and P. Wood, Eds.,
H.3.4. [Information Systems]: Systems
and Software--information networks;
K.8.0 ]Personal Computing]: G e n e r a l - -

4 t 9.
Hayden Books Unix System Li-
brary, pp. 171-202.
IBM Corporation. IBM Local Area
Network Tech. Ref., SC30-3383-2,
General Terms: Design, Performance
Additional Key Words and Phrases:
Client-Server computing
About the Authors:

ALOK S I N H A is a software design en-
10. IBM. APPC Programming Refer- gineer at Microsoft Corp. in Redmond,
ence. Operating System/2 Extended Wash. His current research interests are
Ed., Version 1.3. Sept. 1990, O r d e r distributed computing, directory ser-

Tracks... no. 01F0295 S01F-0295

11. Leffler, S.J. et al. An advanced
4.3BSD interprocess communica-
tion tutorial. Computer Systems
vice, and LAN. Author's Present Ad-
dress: Microsoft Corp., One Microsoft
Way, Redmond, Wash. 98052-6399;
Research Group, Department .of
... to your nearest mailbox Electrical Engineering and Com- Microsoft, MS/DOS, and Lan Manager are
and send for the latest puter Science, University of Cali- trademarks of Microsoft Corporation.
copy of the f r e e Consumer fornia, Berkeley, 1986.
12. Manson, C, and T h u r b e r , K. Re- AT&T and Unix are registered trademarks of
Information Catalog. mote control. Byte (July 1989) 2 3 5 - American Telephone and Telegraph Com-
It lists about 200 free or 13. McCarthy, J.C., Bluestein, W.M. Is IBM, IBM Lan Server, IBM PC Lan, OS/2 are
low-cost government Client-Server cheaper? Forrester registered trademarks of IBM.
Research Inc., Cambridge, Mass.
publications on topics like (Aug. 1990). HP, and New Wave are registered trademarks
health, nutrition, careers, 14. Novell, Inc. Client Server tutorial. of Hewlen Packard Corporation
money management, and Professional Development Series, C
ONC is a registered trademark of Sun Sys-
Network Compiler/386, Austin,
federal benefits. Tex.
15. Novell, Inc. Netware loadable mod-
NCA is a registered trademark of Apollo
Take a step in the right ule library reference. Professional Computer Inc.
direction and write today Development Series, C Network
Compiler/386, Austin, Tex. Netware is a registered trademark of Novell
for the free Consumer 16. Pitt, D.A., and Winkler, J.L. Table- Corporation.
Information Catalog. Just free bridging. IEEE J. Selected Areas
send your name and in Commun. SAC-5, 9 (Dec. 1987). SQL Server is a trademark of Sybase Corpo-
17. Rudd, C., McKee, P., Yip, T. T h e ration.
address to: development of WinSales: A Client/
Motif is a trademark of Open Software Foun-
Server application. Microsoft Inter- dation.
nal Paper. Dec. 1991.
Consumer Information Center 18. Ryan, R. Microsoft Lan Manager: A
Permission to copy without fee all or part of
Department MT Programmer's Guide. Microsoft Press,
this material is granted provided that the
Pueblo, Colorado 81009 copies are not made or distributed for direct
One Microsoft Way, Redmond, commercial advantage, the ACM copyright
Washington, 1999. notice and the title of the publication and its
19. Scheifler, R.W. et al. X Window Sys- date appear, and notice is given that copying
tem: C Library and Protocol Refer- is by permission of the Association for
ence. Digital Press. Computing Machinery. To copy otherwise, or
20. Sharp, B. Commercial Success. Lan to republish, requires a fee and/or specific
Comput. (June, 1991), 24-25. permission.
21. Soper, B. Private communications, © ACM 0002-0782/92/0700-077 $1.50
A public service of this publication and
the Consumer Information Center of the
U.S.General Services Administration.

~8 July 1992/Vol.35,No.7/COMMUNICATIONSO F T H E A C M