From: lloyd@aplcomm.jhuapl.edu (Lloyd Taylor)
Newsgroups: comp.client-server,comp.answers,news.answers
Subject: comp.client-server Frequently Asked Questions
Date: 18 Mar 1995 11:00:47 -0500
Organization: Johns Hopkins University
Message-ID: <client-server-faq-1-795542447@aplcomm.jhuapl.edu>
Reply-To: cs-faq@aplcomm.jhuapl.edu (Client/Server FAQ Coordinator)
below.  Corrections and/or additions to the list can be emailed to :-
below.  Corrections and/or additions to the list can be emailed to :-

cs-faq@aplcomm.jhuapl.edu

And I'll try to add them as soon as possible....

-- Lloyd Taylor
   comp.client-server FAQ maintainer
 
----------------------------------------------------------------------

Subject: Table of Contents

Comp.Client-Server Frequently Asked Questions List


Part 1: Introduction and Miscellaneous questions

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


Part 2: Basic Concepts of client/server architecture

1.   What is Client-server Computing?
2.   What is a Client Process?
3.   What is a Server Process?
4.   What is Middleware?
5.   What is Cooperative Processing? 
6.   What is Distributed Processing? 
7.   What is Reengineering? 
8.   What are the characteristics of a Client/Server architecture?
9.   What are the different types of Servers?
10.  What are the different client/server processing styles?
11.  What is Distributed or Remote Presentation?
12.  What is Remote Data Management?
13.  What is Distributed Function Processing?
14.  What is IBM's System Application Architecture?
15.  What is APPLE's VITAL architecture?
16.  What is Sun's Open Network Computing Architecture?
17.  What is Digital's Network Application System (NAS) architecture?
18.  What is OSF-DCE?
19.  What are DOMS (Distributed Object Management Systems)?
20.  What is CORBA?
21.  What is DAE?

Part 3: Books and Articles on Client/Server computing

------------------------------

Subject: i. What archives/FTP sites carry client-server related material?

Object Management Group archives:
	ftp://omg.org

OSF/DCE FAQ
	http://www.osf.org:8001/dce/faq-mauney.html
	ftp://ftp.dstc.edu.au/pub/DCE/FAQ

Standards Acronyms:
	ftp://rtfm.mit.edu/pub/usenet/news.answers/standards-faq

------------------------------ 

Subject: 1.  What is Client-server Computing?

Client/Server processing refers to a style of computing based on a 
requestor-server approach where communication is accomplished through 
messaging.  Client-server processing refers to a type of computing based 
on a message-passing between communicating processes. The requester, 
usually the client, asks for some specific of service and the server responds 
by servicing the request or providing the information. The 
communications between the client  and server occur through messages 
(e.g. RPC (Remote Procedural Call), Named Pipes) and may be conducted 
on a single host computer.  The simplest form of a client/server application 
has only two pieces: a client process and a server process connected via a 
network.  The server process is the provider of services and the client is a 
consumer of services.

------------------------------ 

Subject: 2. What is a Client process?

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: 3. What is a Server process?

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 
applications.  

------------------------------ 

Subject: 4. What is Middleware?

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: 5. What is Cooperative Processing?

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: 6. What is Distributed Processing?

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 
platforms.

------------------------------ 

Subject: 7. What is Reengineering?

Reengineering is the organizational process required to align people, 
processes and technology with strategies to achieve business integration. It 
can also be thought of as taking a business in its current state and forming 
an organizational and operational blueprint to redirect skills, policies, 
information (data), cultural values, organizational structures, processing 
and incentives towards targeted improvements.

------------------------------ 

Subject: 8. What are the characteristics of a client/server architecture?

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 
RPC's.

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 
multiservers.

------------------------------ 

Subject: 9. What are the  different types of servers?

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: 10. What are the different client/server processing styles?

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: 11. What is distributed or remote presentation?

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: 12. What is Remote Data Management?

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: 13. What is distributed function processing?

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: 14. What is IBM's System Application Architecture?

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: 15. What is APPLE's VITAL architecture?

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: 16. What is Sun's Open Network Computing Architecture?

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,
PC\NFS, AIX/6000, Solaris, UNIX\SVR4, AIX/ESA.  NetWise developed the
TI-RPC Application Toolkit source code generation technology.
NetManage developed ONC RPC-Dynamic Link Library, an implementation of
RPC/XDR under windows 3.0.

------------------------------ 

Subject: 17. What is Digital's Network Application System (NAS) architecture?

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 
   text)
 - System Access services which provides a standard operating system 
   interface.

------------------------------ 

Subject: 18. What is OSF-DCE?

(Extracted, with permission, from the DCE FAQ, available at
http://www.osf.org:8001/dce/faq-mauney.html)

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

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: 19. What are Distributed Object Management Systems  (DOMS)? 

DOMS provide a way of pulling diverse components together and 
managing their communications. They are aimed at addressing the 
following: 
 - A single interface to manage the complexities of a heterogeneous         
   environment 
 - 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.

(See "Software Without Walls"  by Herbert M. Osher Byte, March, 1992) 
for an overview.

------------------------------ 

Subject: 20. What is CORBA?

CORBA stands for the Common Object Request Broker Architecture.  It is 
designed to make sure that a client's request for service in a DOMS is sent 
to the proper server.
 
(For technical details, peruse the Object Management Group ftp site at 
ftp://omg.org)

------------------------------ 

Subject: 21. What is DAE?

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: Books

1.  	AUTHOR:       	Berson, Alex
	TITLE:      	Client-server architecture / Alex Berson.              
	PUBLISHED: 	New York : McGraw-Hill, c1992.                         
	SERIES:     	J. Ranade series on computer communications            
	ISBN:        	0070050767 
                     
2.	AUTHOR:       	Smith, Patrick.
	TITLE:         	Client/server computing
        PUBLISHED:	Carmel, Ind. : SAMS, c1992.                        
	SERIES:         Professional reference series.            
	ISBN:          	0672300656

3. 	AUTHOR:     	Orfali, Robert, Dan  Harkey.  
	TITLE:          Client/server programming with OS/2 2.0  
	PUBLISHED:      New York : Van Nostrand Reinhold, c1992.  
	SERIES:         VNR computer library 
	ISBN:           0442012195

4. 	AUTHOR:         Dewire, Dawna Travis
        TITLE:		Client/server computing 
	PUBLISHED:      New York : McGraw-Hill, c1993.                
	SERIES:         James Martin/McGraw-Hill productivity series  
	ISBN:           007016732X

5. 	AUTHOR:     	Renaud, Paul E., 1957-  
	TITLE:          Introduction to client/server systems : a practical 
			guide for systems professionals / Paul E. Renaud.
	PUBLISHED: 	New York : Wiley, c1993.
	SERIES:         Wiley professional computing
	ISBN:           0471577731;   047157774X (pbk.)

6. 	TITLE:          "Client Server Computing: Making It Work for You"   
    	PUBLISHED: 	Parallan Computer, Inc.
     			Attn: Marketing Publications
     			201 Ravendale Drive
     			Mountain View, CA  94043

7. 	AUTHOR:     	Boar, Bernard H., 1947-
	TITLE:          Implementing client/server computing : a strategic 
			perspective
	SERIES:         McGraw-Hill systems design & implementation 
	ISBN:           0070062153 :                  

8. 	AUTHOR:     	Baker, Richard H.
	TITLE:          Networking the enterprise : how to build client/server 
			systems that work                              
	PUBLISHED:      New York : McGraw-Hill, c1994
	SERIES:         McGraw-Hill series on computer communications
	ISBN:           0070050899 :  0070050902 (PBK) :            

9. 	AUTHOR:         Inmon, William H.                           
	TITLE:          Developing client/server applications
	PUBLISHED:      Boston : QED Pub. Group, c1993.            
	ISBN:           0894354582 :                     

10.     AUTHOR:         Khanna, R. (Editor)
        TITLE:          Distributed Computing: Implementation and
                        Management Strategies
        PUBLISHED:      New Jersey: Prentice Hall, c1994
        ISBN:           0-13-220138-0

11.	AUTHOR:		Orfali, Robert, et. al.
	TITLE:		Essential Client/Server Survival Guide
	PUBLISHED:	New York : Van Nostrand Reinhold
	ISBN:		0-442-01941-6

------------------------------ 

Subject: Papers/Articles

1. Sinha, Alok,. 1992. Client-Server Computing. Communications of the 
ACM, Vol. 35 No.7 : 77-98. 


