Client/Server Frequently Asked Questions

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?

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

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


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

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

(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: 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
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.


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

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 ftp site at
ftp://omg.org)


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

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.