Client/Server Computing
(the wave of the future)
Rajkumar Buyya
School of Computer Science & Software Engineering Monash University Melbourne, Australia rajkumar@[Link]
Agenda
Why
client server ? Models Architecture Tools Applications Conclusions
A simple definition A simple definition of CS is server software accepts requests for data from client software and returns the results to the client
Elements of C-S Computing
a client, a server, and network
Client Server Network
Client machine Server machine
Where Operations are Done
In CS Relationship most of the application processing is done on a computer (client side), which obtains application services (such as database services) from another computer (server side) in a master slave configuration
CS-Focus is on
In client-server computing major focus is on SOFTWARE
Application Tasks
User Interface Presentation Logic Application Logic Data Requests & Results Physical Data Management
Client (dumb) - Server Model
Client
Server Presentation Logic Network Application Logic DBMS
True Client-Server Model
Client
Server Application Logic
Presentation Logic
Network DBMS
Distributed Client-Server Model
Client Application Logic Presentation Logic
Server Application Logic Network DBMS
Client-server computing is distributed access, not a distributed computing.
RPC Look and Feel like Local Calls
calling results= results= called bar(arguments) procedure bar(arguments) procedure results= calling procedure bar(arguments) (client) client stub
arguments
results request message reply message arguments
arguments
network transport
results
server stub network transport
request message reply message
results
called procedure (client) Local Procedure Call
Network
Remote Procedure Call
Flow Control in a Sychronous RPC
Client Machine
Server Machine
Service Daemon Listening
Client Program
RPC Call with Request
Invoke Service Service Call return() answer
Client Waiting
return ( ) reply Request Completed
May be the same machine
Multithreaded Server
Client Process Server Process
Server Threads
Client Process
User Mode
Kernel Mode
Message Passing Facility
Categories of Servers
File
Server Data Server Compute Server Database Server Communication Server Video Server
File Server
Servers manage a work groups application and data files, so that they may be shared by the group. Very I/O oriented Pull large amount of data off the storage subsystem and pass the data over the network Requires many slots for network connections and a large-capacity, fast hard disk subsystem.
File
Compute Server
Performs
Application logic processing Compute Servers requires processors with high performance capabilities large amounts of memory relatively low disk subsystems By separating data from the computation processing, the compute servers processing capabilities can be optimized
Cluster as Compute Server
Data Server
Data-oriented; used only for data storage and management Since a data server can serve more than one compute server, computeintensive applications can be spread among multiple severs Does not prefer any application logic processing Performs processes such as data validation, required as part of the data management function. Requires fast processor, large amount of memory and substantial Hard disk capacity.
Data Server
Compute Server
Cluster as High Availablity Data Server
Data Server
Compute Server
Database Server
Most
typical use of technology in client-server Accepts requests for data, retrieves the data from its database(or requests data from another node)and passes the results back. Compute server with data server provides the same functionality. The server requirement depends on the size of database, speed with which the database must be updated, number of users and type of network used.
Communication Server
Provides
gateway to other LANs, networks & Computers E-mail Server & internet server Modest system requirements multiple slots fast processor to translate networking protocols
Internet Server
PC client Internet Server
Local Area Network
UNIX workstations
Distributed processing application connects to remote database
SQ L* Forms
SQL *Net TCP/IP
UNIX Server
SQL *Net TCP/IP
Distributed database application connects to local database which connects to remote database
SQL * Forms
ORACL E
SQL *Net TCP/IP
ORACLE
Database Configurations
Ethernet era client/server First Wave Second Wave Database servers
Intergalactic era client/server
Third Wave
File servers
Distributed
objects
1982
1986
1990
1994
1998
The Client/Server Infrastructure
Client
GUI/OOUI
SNMP
Middleware Service Specific
SQL/IDAPI TxRPC Mail ORB
Server
Objects Groupware
TP monitor
DSM
CMIP DME
NOS
Directory RPC Security Messaging Distributed file Peer-to-peer
DBMS DSM
Operating System
DSM
Operating System
NetBIOS
Transport Stack
TCP/IP IPX/SPX SNA
Thank You ...