- Client/Server Frequently Asked Questions

 Home >  Programming >

Client/Server Frequently Asked Questions

Section 1 of 2 - Prev - Next

Posted-By: auto-faq
Archive-name: client-server-faq
Revision: 1.12 1998/08/17 13:15:27
Posting-frequency: Monthly, on the 17th 

Client/Server Frequently Asked Questions  

Information about this document
Contained below is a list of commonly asked questions in
comp.client-server. Before posting a question to comp.client-server,
check to see if your question(s) are already answered below.

Additional questions (and answers!) may be emailed to
If the question is of general interest, it may be added to the CS-FAQ.
Questions that relate to specific client/server implementation issues
may be answered in one or more of the books listed in the FAQ.  If 
answers cannot be found there, consider posting your question to
comp.client-server.  Due to the volume of email I receive, I cannot
respond to individual questions.

Vendors of client/server products and services are welcome to submit
*brief* summaries of their offerings for inclusion in a separate portion
of this FAQ.  A single paragraph which includes pointers to additional
information (www, ftp, email, or voice telephone) is welcome.

The most recent (authoritative) version of this FAQ is always available at:

In addition, this FAQ is archived at many sites, including the
following. Any site which mirrors "" should have a current
copy as well. If you did not receive the entire posting, please check

-- Lloyd Taylor
   comp.client-server FAQ maintainer
   Home Page: 
Changes since last release:

Updated contact info for Talarian


Subject: Table of Contents

Client/Server Frequently Asked Questions List
Last Revision: 8/17/98

Part 1: Introduction and Miscellaneous questions

1.1   What archives/FTP sites carry client-server related material?

Part 2: Client/Server Definitions

2.1   What is Client-server Computing?
2.2   What is a Client Process?
2.3   What is a Server Process?
2.4   What is a Two-Tier Architecture?
2.5   What is a Three-Tier Architecture?
2.6   What is Middleware?
2.7   What is Cooperative Processing? 
2.8   What is Distributed Processing? 
2.9   What is an "Intranet"?

Part 3:  Client/Server Technical Issues

3.1   What are the characteristics of a Client/Server architecture?
3.2   What are the different types of Servers?
3.3   What are the different client/server processing styles?
3.4   What is Distributed or Remote Presentation?
3.5   What is Remote Data Management?
3.6   What is Distributed Function Processing?
3.7   What is IBM's System Application Architecture?
3.8   What is APPLE's VITAL architecture?
3.9   What is Sun's Open Network Computing Architecture?
3.10  What is Digital's Network Application System (NAS) architecture?
3.11  What is OSF-DCE?
3.12  What are DOMS (Distributed Object Management Systems)?
3.13  What is CORBA?
3.14  What is DAE?

Part 4:  Client/Server Business Issues

4.1   Business-Focused Client/Server Architecture
4.2   Client/Server Business Application Architectures
4.3   Business Drivers
4.4   Business Benefits
4.5   What does business expect from IT?
4.6   What is Business Process Reengineering?

Part 5: Books and Articles on Client/Server computing

5.1   Introductory/Overview Books
5.2   Detailed Technical Books
5.3   Other Books

Part 6: Vendor Information

6.1   Middleware Vendors
6.2   Test Software Vendors
6.3   Development Tool Vendors
6.4   Other Client/Server Vendors


Subject: 1.1  What sites carry client-server related material? 
From: Lloyd Taylor 

Object Management Group:

DCE Questions and Answers:


Object-Oriented Links at Cetus (Germany)

Client/Server Computing Page


Subject: Part 2: Definitions


Subject: 2.1  What is Client-server Computing?
From: Steve Hultquist 

The short answer:

Client/server is a computational architecture that involves client processes
requesting service from server processes.

The long answer:

Client/server computing is the logical extension of modular programming.
Modular programming has as its fundamental assumption that separation of
a large piece of software into its constituent parts ("modules") creates
the possibility for easier development and better maintainability.
Client/server computing takes this a step farther by recognizing that
those modules need not all be executed within the same memory space.
With this architecture, the calling module becomes the "client" (that
which requests a service), and the called module becomes the "server"
(that which provides the service).

The logical extension of this is to have clients and servers running on
the appropriate hardware and software platforms for their functions.
For example, database management system servers running on platforms
specially designed and configured to perform queries, or file servers
running on platforms with special elements for managing files.

It is this latter perspective that has created the widely-believed myth
that client/server has something to do with PCs or Unix machines.


Subject: 2.2 What is a Client process?
From: Ravi Kalakota 

The client is a process (program) that sends a message to a server
process (program), requesting that the server perform a task (service).
Client programs usually manage the user-interface portion of the
application, validate data entered by the user, dispatch requests to
server programs, and sometimes execute business logic. The client-based
process is the front- end of the application that the user sees and
interacts with. The client process contains solution-specific logic and
provides the interface between the user and the rest of the application
system. The client process also manages the local resources that the
user interacts with such as the monitor, keyboard, workstation CPU and
peripherals. One of the key elements of a client workstation is the
graphical user interface (GUI).   Normally a part of operating system
i.e. the window manager detects user actions, manages the windows on the
display and displays the data in the windows.


Subject: 2.3 What is a Server process?
From: Ravi Kalakota 

A server process (program) fulfills the client request by performing the 
task requested. Server programs generally receive requests from client 
programs, execute database retrieval and updates, manage data integrity 
and dispatch responses to client requests. Sometimes server programs 
execute common or complex business logic. The server-based process 
"may" run on another machine on the network. This  server could be the 
host operating system or network file server; the server is then provided 
both file system services and application services. Or in some cases, 
another desktop machine provides the application services. The server 
process acts as a software engine that manages shared resources such as 
databases, printers, communication links, or high powered-processors. The 
server process performs the back-end tasks that are common to similar 


Subject: 2.4 What is a Two-Tier Architecture?
From: Lloyd Taylor 

A two-tier architecture is where a client talks directly to a server,
with no intervening server.  It is typically used in small environments
(less than 50 users).

A common error in client/server development is to prototype an
application in a small, two-tier environment, and then scale up by
simply adding more users to the server.  This approach will usually
result in an ineffective system, as the server becomes overwhelmed.  To
properly scale to hundreds or thousands of users, it is usually
necessary to move to a three-tier architecture.


Subject: 2.5 What is a Three-Tier Architecture?
From: Lloyd Taylor 

A three-tier architecture introduces a server (or an "agent") between
the client and the server.  The role of the agent is manyfold.  It can
provide translation services (as in adapting a legacy application on a
mainframe to a client/server environment), metering services (as in
acting as a transaction monitor to limit the number of simultaneous
requests to a given server), or intellegent agent services (as in
mapping a request to a number of different servers, collating the
results, and returning a single response to the client.


Subject: 2.6 What is Middleware?
From: Ravi Kalakota 

Connectivity allows applications to transparently communicate with other 
programs or processes, regardless of their location.  The key element of 
connectivity is the network operating system (NOS). NOS provides 
services such as routing, distribution, messaging, file and print, and 
network management services.  NOS rely on communication protocols to 
provide specific services. The protocols are divided into three groups: 
media, transport and client-server protocols. Media protocols determine 
the type of physical connections used on a network (some examples of 
media protocols are Ethernet, Token  Ring, Fiber Distributed Data 
Interface (FDDI), coaxial and twisted-pair). A transport protocol provides 
the mechanism to move packets of data from client to server (some 
examples of transport protocols are Novell's IPX/SPX, Apple's AppleTalk, 
Transmission Control Protocol/ Internet Protocol (TCP/IP), Open Systems 
Interconnection (OSI) and Government Open Systems Interconnection 
Profile(GOSIP)).  Once the physical connection has been established and 
transport protocols chosen, a client-server protocol is required before the 
user can access the network services. A client-server protocol dictates the 
manner in which clients request  information and services from a server 
and also how the server replies to that request (some examples of client-
server protocols are NetBIOS, RPC, Advanced Program-to-Program 
Communication (APPC), Named Pipes, Sockets, Transport Level Interface 
(TLI) and Sequenced Packet Exchange (SPX)).


Subject: 2.7 What is Cooperative Processing?
From: Ravi Kalakota 

Cooperative processing is computing which requires two or more distinct 
processors to complete a single transaction.  Cooperative processing is 
related to both distributed and client/server processing. It is a form of 
distributed computing where two or more distinct processes are required to 
complete a single business transaction. Usually, these programs interact 
and execute concurrently on different processors. Cooperative processing 
can also be considered to be a style of client/server processing if 
communication between processors is performed through a message 
passing architecture. 


Subject: 2.8 What is Distributed Processing?
From: Ravi Kalakota 

The distribution of applications and business logic across multiple 
processing platforms.  Distributed processing implies that processing will 
occur on more than one processor in order for a transaction to be 
completed. In other words, processing is distributed across two or more 
machines and the processes are most likely not running at the same time, 
i.e. each process performs part of an application in a sequence. Often the 
data used in a distributed processing environment is also distributed across 


Subject: 2.9 What is an "Intranet"?
From: Lloyd Taylor 

The explosion of the World Wide Web is due to the world-wide acceptance
of a common transport (TCP/IP), server standard (HTTP), and markup
language (HTML).  Many corporations have discovered that these same
technologies can be used for internal client/server applications with
the same ease that they are used on the Internet.  Thus was born the
concept of the "Intranet": the use of Internet technologies for
implementing internal client/server applications.

One key advantage of Web-based intranets is that the problem of managing
code on the client is greatly reduced.  Assuming a standard browser on
the desktop, all changes to user interface and functionality can be done
by changing code on the HTTP server.  Compare this with the cost of
updating client code on 2,000 desktops.

A second advantage is that if the corporation is already using the
Internet, no additional code needs to be licensed or installed on client
desktops.  To the user, the internal and external information servers
appear integrated.

A rapidly-disappearing disadvantage is that there is limited ability to
provide custom coding on the client.  In the early days of the Web,
there were limited ways of interacting with the client.  The Web was
essentially "read-only".  With the release of code tools such as Java
and JavaScript, this limitation is no longer a major issue.


Subject: Part 3: Client/Server Technical Issues


Subject: 3.1 What are the characteristics of client/server architecture?
From: Ravi Kalakota 

The basic characteristics of client/server architectures are:

1) combination of a client or front-end portion that interacts with the user, 
and a server or back-end portion that interacts with the shared resource. 
The client process contains solution-specific logic and provides the 
interface between the user and the rest of the application system. The 
server process acts  as a software engine that manages shared resources 
such as databases, printers, modems, or high powered processors. 

2) the front-end task and back-end task have fundamentally different 
requirements for computing resources such as processor speeds, memory, 
disk speeds and capacities, and input/output devices. 

3) the environment is typically heterogeneous and multivendor. The 
hardware platform and operating system of client and server are not 
usually the same.Client and server processes communicate through a 
well-defined set of standard application program interfaces (API's) and 

4) An important characteristic of client-server systems is scalability. They 
can be scaled horizontally or vertically. Horizontal scaling means adding 
or removing client workstations with only a slight performance impact. 
Vertical scaling means migrating to a larger and faster server machine or 


Subject: 3.2 What are the  different types of servers?
From: Ravi Kalakota 

The simplest form of servers are disk servers and file servers. With a file 
server, the client passes requests for files or file records over a network to 
the file server. This form of data service requires large bandwidth and can 
slow a network with many users down considerably. Traditional LAN 
computing allows users to share resources, such as data files and 
peripheral devices, by moving them from standalone PCUs onto a 
Networked File Server (NFS).

The more advanced form of servers are database servers, transaction 
server and application servers (Orfali and Harkey 1992). In database 
servers, clients passes SQL (Structured Query Language) requests as 
messages to the server and the results of the query are returned over the 
network. The code that processes the SQL request and the data resides on 
the server allowing it to use its own processing power to find the requested 
data, rather than pass all the records back to a client and let it find its own
data as was the case for the file server. In transaction servers, clients 
invoke remote procedures that reside on servers which also contains an 
SQL database engine. There are procedural statements on the server to 
execute a group of SQL statements (transactions) which either all succeed 
or fail as a unit. The applications based on transaction servers are called 
On-line Transaction Processing (OLTP) and tend to be mission-critical 
applications which require 1-3 second response time, 100% of the time 
and require tight controls over the security and integrity of the database.  
The communication overhead in this approach is kept to a minimum as the  
exchange typically consists of a single request/reply (as opposed to 
multiple SQL statements in database servers). Application servers are not 
necessarily database centered but are used to server user needs, such as. 
download capabilities from Dow Jones or regulating a  electronic mail 
process. Basing resources on a server allows users to share data, while 
security and management services, which are also based in the server, 
ensure data integrity and security. 


Subject: 3.3 What are the different client/server processing styles?
From: Ravi Kalakota 

Gartner group came out with the five ways of describing the different c/s 
styles based on how they split the three components of any application: 
user interface, business or application logic, data management. The five 
styles are distributed presentation, remote presentation,  distributed 
function, remote data management, and distributed data management.

(Note: This is an arbitary classification and others may do it differently)


Subject: 3.4 What is distributed or remote presentation?
From: Ravi Kalakota 

For people whose roots are embedded in the mainframe IBM world, 
client-server is  essentially distributed or remote presentation. This style 
maps a workstation Graphical User Interface (GUI)  front end onto an 
existing application's text-based screen. This   is also called Remote, 
Mapping, Front-ending or HLLAPI (High-Level Language Application 
Programming Interface). The  mode of operation is typically intelligent 
workstations intercepting and interrogating text-screen (e.g. 3270) data 
streams sent from a host for display in a windowed environment.This is   
"frontware" solution, where a GUI front end is added to an IBM/MVS 
3270/5250 application and is placed on a workstation.   However, most 
processing remains on the host or server, with the exception of user 
interface translation logic and possibly validation logic.  For example,  
data from an application program is sent to a 3270 screen program on the 
mainframe to be displayed. The  merged data is sent to the workstation as 
a 3270 data stream.The workstation interprets the data and converts it to 
graphical form in a window. (Typically every mainframe screen used by 
the application has a corresponding window on the workstation and vice 
versa). When the user enters the data in a GUI window, it is transformed 
by the frontware application into a corresponding 3270 data format and is 
sent to the host computer. 


Subject: 3.5 What is Remote Data Management?
From: Ravi Kalakota 

In remote data management, the entire application resides on the client and 
the data managment is located on a remote server/host.   Remote Data 
Management is relatively easily to program for because there is just one 
application program. The client communicates with the server using SQL, 
the server then responds with data that satisfies the query.  RDBMS 
products that offer remote data management provide a layer of software on 
the client to handle the communication with the DBMS server.This style 
represents a more traditional LAN database server or file server approach. 
Workstations support the presentation and function logic and interface 
with the data server through the data manipulation language.Distributed 
data management is an extension of remote data management and uses the 
distributed facilities of the DBMS to access distributed data in a manner 
transparent to users. This is most relevant for architectures having data 
spread  across  several servers and when access to a DBMS on another 
server is required.


Subject: 3.6 What is distributed function processing?
From: Ravi Kalakota 

Here the split occurs in the application functionality, one part going to the 
client, other to the server. Distributed function applications are the most 
complex of the three typologies  since two separately compiled application 
programs must be developed.  Developers must analyze where each 
function should reside and what type of dialog must occur between the 
two programs. The underlying communications facilities may implement 
either a message-based or remote procedure call (RPC) mechanism for 
transfer of dialog and data.  However, there are many variants of this 
typology. One variant of the distributed function style is where data 
management and application function occur at both the client and server. 
In this instance, data management at the client would include referential, 
read-only data. Data frequently updated or accessed by many users would 
reside on the server.


Subject: 3.7 What is IBM's System Application Architecture?
From: Ravi Kalakota 

SAA is a collection of selected software interfaces, conventions, and 
protocols that are used as a framework for developing consistent, 
integrated applications across the major IBM computing environments.

Four major components of this architecture are:
 - Common User Access (CUA) defines conventions for GUI look and feel.
 - Common Programming Interface (CPI) provides languages, tools, and 
   APIs that give applications greater portability and more consistent user 
   interfaces across multiple platforms. 
 - Common Communication Support (CCS) supports existing 
   communications standards, such as LU 6.2. 
 - Common Applications, written by IBM, will serve as demonstrations of 
   SAA concepts and make it easy for users to migrate between systems. 

Subject: 3.8 What is APPLE's VITAL architecture?
From: Ravi Kalakota 

VITAL provides a way of building information systems constructed from 
generalized modules that can be reused and shared.It specifies how to 
construct and provide interfaces for these modules. A cornerstone of 
Apple's client/server architecture is Data Access Language (DAL).  DAL 
consists of software components for the client and the server (Macintosh 
System 7 includes the client component, DOS and Windows clients are 
sold separately).  DAL sits between the client and server components.  
This approach allows varied clients to communicate with many different 
servers.  With DAL, a change in the DBMS does not affect the front-end; 
it simply requires the appropriate DAL link.

Subject: 3.9 What is Sun's Open Network Computing Architecture?
From: Ravi Kalakota 

Open Network Computing (ONC) is the Sun architecture, with third party
alliances providing the missing pieces.  Sun's RPC is licensed by more
than 300 companies, including DEC, IBM, and Apple Computer.  It is a
lean, efficient  RPC that is particularly effective for installations
not requiring WAN support.  Transport Independent Remote Procedure
Calls (TI-RPC) were co-developed by Sun and AT&T.  TI-RPC runs
independent of the underlying network transport, allowing applications
to run unmodified over multiple transport protocols including NetWare,
PCNFS, AIX/6000, Solaris, UNIX/SVR4, AIX/ESA.  NetWise developed the
TI-RPC Application Toolkit source code generation technology.


Subject: 3.10 What is Digital's Network Application System (NAS) architecture? 
From: Ravi Kalakota 

NAS is a software suite that enables applications to be integrated across a 
distributed network of multivendor systems: NAS services are divided 
into four main groups:
 - Application Access Services which support user interface (forms based, 
   graphical or character terminal based)
 - Communication and Central services which support communications 
   using electronic mail and EDI
 - Information and resource sharing, which supports database access and 
   compound documents (collection of images, graphics and conventional 
 - System Access services which provides a standard operating system 


Subject: 3.11 What is OSF-DCE?
From: Jon Mauney 

(Extracted, with permission, from the DCE FAQ, available at

DCE is the Distributed Computing Environment, from the Open Software
Foundation. (It is called "the DCE" by sticklers for grammatical

DCE consists of multiple components which have been integrated to work
closely together.  They are the Remote Procedure Call (RPC), the Cell
and Global Directory Services (CDS and GDS), the Security Service, DCE
Threads, Distributed Time Service (DTS),and Distributed File Service
(DFS).  The Threads, RPC, CDS, Security, and DTS components are
commonly referred to as the "secure core" and are the required
components of any DCE installation.  DFS is an optional component.

DCE is called "middleware" or "enabling technology."  It is not
intended to exist alone, but instead should be integrated or bundled
into a vendor's operating system offering.  DCE's security and
distributed filesystem, for example, can completely replace their
current, non-network, analogs.


Subject: 3.12 What are Distributed Object Management Systems (DOMS)?
From: Ravi Kalakota  

DOMS provide a way of pulling diverse components together and 
managing their communications. They are aimed at addressing the 
 - A single interface to manage the complexities of a heterogeneous         
 - A uniform framework, based on standards and extensibility, to build,     
   integrate, and deploy open distributed-computing applications
 - A method for creating location independence for client applications.


Subject: 3.13 What is CORBA?
From: Lloyd Taylor 

CORBA stands for the Common Object Request Broker Architecture.  It is a
set of standard mechanisms for naming, locating, and defining objects in
a distributed computing environment.
(For technical details, peruse the Object Management Group web site at


Subject: 3.14 What is DAE?
From: Ravi Kalakota 

Distributed Application Environment is  designed to allow businesses to 
use IBM's RISC System/6000 and PS/2 computers in a client/server 
network (or standalone) for their business applications.  DAE consists (1)  
MESSAGING services; (2) DATABASE services ; (3)  PRESENTATION 
services; (4)  DEVICE services to capture data and to control a broad  
category of controllers, devices, equipment and sensors.  

Subject: Part 4:  Client/Server Business Issues


Subject: 4.1 Business-Focused Client/Server Architecture
From: Bernard Robertson-Dunn 

When analysing a business there are three views of the organisation:

- A functional model, which reflects organisational responsibilities
and the way in which the people who use the system view their work.

- A process model, which details the business functions of the
organisation (eg accept orders, make goods, deliver goods, bill
customers, receive money).  The functional structure and process model
rarely, if ever, agree.

- An information model, which details the information that the
organisation needs to function.


Subject: 4.2. Client/Server Business Application Architectures
From: Bernard Robertson-Dunn 

Traditional applications architectures have been based on function.
Today, to meet the needs of the business an application architecture
should reflect the complete range of business requirements.

Therefore, client/server computing demands a three layer view of the

1 The user interface layer, which implements the functional model

2 The business function layer, which implements the process model

3 The data layer, which implements the information model

It should be noted that this application architecture does not demand
multiple hardware platforms, although such technology can be utilised,
if the environment is robust and reliable enough and the business is
prepared to pay the additional costs associated with workstation and
LAN technology.


Subject: 4.3  Business Drivers
From: Bernard Robertson-Dunn 

Client/server computing has arisen because of a change in business
needs.  Businesses today need integrated, flexible, responsive and
comprehensive applications to support the complete range of business

Problems with existing systems include: 
- applications were developed to model vertical applications 
- applications were built in isolation 
- applications were implemented as monolithic systems 
- applications were complex 
- the supporting technology was based on a centralised control model

Information technology, which is an enabling factor in systems
building, has almost reached the stage where these systems can be
designed and created. Unfortunately, most businesses have existing
systems based on older technology, which must be incorporated into the
new, integrated environment.

The development and implementation of client/server computing is more
complex, more difficult and more expensive than traditional, single
process applications. The only answer to the question "why build
client/server applications?" is "because the business demands the
increased benefits.


Subject: 4.4  Business Benefits

Section 1 of 2 - Prev - Next

Back to category Programming - Use Smart Search
Home - Smart Search - About the project - Feedback

© | Terms of use