1 Distinct characteristics of C/S 2
Client-server is a computing architecture which
#01
separates a client from a server
It is almost always implemented over a computer
network
Client/Server The most basic type of client-server architecture
employs only two types of nodes: clients and servers.
This type of architecture is sometimes referred to as
Computing
two-tier.
It allows devices to share files and resources.
CLIENT/SERVER COMPUTING AND WEB TECHNOLOGIES Server provides the service
Client is considered as the customer requesting
the service
Distinct characteristics of C/S 3 Systems with C/S Architecture 4
File servers
The server service can be shared among a File sharing and file processing Client
number of clients Database servers Server
Passing file results
Clients must request or initiate the service
Example: Query in DBMS server Client
The location of the server in the network is Typically one single request/reply
transparent to clients Transaction servers
Transaction server includes DBMS and transaction monitoring
Transaction between C/S is message-passing
Server has remote procedures run online by the client
based
Web servers
C/S architecture is scalable Super-fat servers and thin clients
horizontally (more clients can added) Uses HTTP protocol
Vertically (more servers can be added) Client
HTML
The server is centrally maintained where as clients Internet Server Application
are independent of each other Client
Java
Client/Server Models 5 Two-Tier vs. Three-Tier 6
Where to push the application to Same basic idea as fat-client versus fat-server
Fat clients
Depends on how the application is divided between
The bulk of the application is running on the client the server and the client
The client knows how the data is organized and where it is
Two-tier servers
Different clients access the same applications different ways
Fat servers Examples: file servers and database server
The server more complicated In this case the process (application logic) is buried
The clients are less complex within the client or server (or both)
More of the code runs on the server Three-tier servers
The network interaction is minimized
Examples: Web and distributed objects
In this case the process is run on the middle-tier
Application separated from the user and data interface
They can integrate the data from multiple sources
Client Server More robust and more scalable
Tier Architecture 7 Client (dumb) - Server Model 8
Presentation Business
Data Source
Logic Logic
Server
2 Tier - Fat Client Client
Client Server
Presentation Logic
2 Tier - Thin Client (or Fat Server)
Network
Client Server Application Logic
3 Tier
DBMS
Application Database
Client
Server Server
True Client-Server Model 9 Distributed Client-Server Model 10
Server Server
Client Client
Application Logic Application Logic
Application Logic
Presentation Logic Network Network
DBMS DBMS
Presentation Logic
Client/Server Computing 11 Client/Server Computing 12
Logical extension of modular programming Clients and Servers are running separately on
appropriate hardware and software platforms for
with assumption that separation of a huge program into
their functions.
modules can create
the possibility for further modification For example, database management system servers
easier development running on platforms specially designed and
better maintainability. configured to perform queries, or file servers running on
platforms with special elements for managing files.
All large modules need not all be executed within the
Components in Client-Server Computing
same memory space.
Client
the calling module becomes the client( requesting service)
Server
In client-server computing
the called module becomes the server (providing service). Middleware major focus is on SOFTWARE
Middleware Software 13 calling called
14
procedure procedure
It is the (/) between client and server which glues
them together
arguments
arguments
results
results
Allowing the client request for a service and the
server providing it calling
procedure
Middleware can also be between server/server
(client)
Two broad classes
client stub server stub
General network transport network transport
arguments
results
LAN servers, TCP/IP, Communication stacks, Queuing
services, etc.
request message
request message
reply message
reply message
Application specific
Used to accomplish a specific task
called
Groupware specific: SMTP procedure
Internet specific: HTTP (client)
Database specific: SQL
Network
Remote Procedure Call Local Procedure Call
Six types of middleware 15 Six types of middleware 16
1. Asynchronous Remote Procedure Calls (RPC)
client makes calls to procedures running on remote computers but 4. Message-Oriented Middleware (MOM)
does not wait for a response
asynchronous sends messages that are collected and
If connection is lost, client must re-establish the connection and send stored until they are acted upon, while the client continues
request again.
with other processing.
High scalability but low recovery, largely replaced by type 2
5. Object Request Broker (ORB)
2. Synchronous RPC
distributed program may call services on different computers object-oriented management of communications
between clients and servers.
makes it possible to achieve this without detailed coding (e.g. RMI in
Java) ORB tracks the location of each object and routes
3. Publish/Subscribe (often called push technology) requests to each object.
server monitors activity and sends information to client when 6. SQL-oriented Data Access
available.
It is asynchronous, the clients (subscribers) perform other activities middleware between applications and database servers.
between notifications from the server.
Has the capability to translate generic SQL into the SQL
Useful for monitoring situations where actions need to be taken when specific to the database
particular events occur.
Computing Model 17 References 18
Farid Farahmand, "An Introduction to Client/Server Architecture"
Computing
Rajkumar Buyya, "Client/Server Computing
Model (the wave of the future)"
Albert Yau, "Client Server Computing",
http://www.doc.ic.ac.uk/~nd/surprise_95/journal/vol1/wcy/article1.html
Terminal Distributed
Host Model Computing Model
File Transfer Client/Server Peer to Peer
Model Model Model