You are on page 1of 50

Client/Server Computing

What is Client/Server?
• The client/server model is a form of distributed
computing where one program (the client)
communicates with another program (the server)
for the purpose of exchanging information.
The client's responsibility is to
• Handle the user interface.
• Translate the user's request into the desired
protocol.
• Send the request to the server.
• Wait for the server's response.
• Translate the response into "human-readable"
results.
• Present the results to the user.
The server's functions include:

• Listen for a client's query.


• Process that query.
• Return the results back to the client
• How is client/server different from other
distributed computing?
– Heavy reliance on user-friendly applications
– Emphasis on centralizing databases and management
functions
– Commitment to openness/modularity
– Networking fundamental to operation
Client-Server Environment
Client Server Definition

• “ 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

t
es
qu
Re
Client
Server
Network
Re
su
l t
Client machine
Server machine
Characteristics of Client/Server
Computing
• It brings user friendly applications to the desktops,
giving users greater control over timing and style of
computer usage, and allowing departments to be more
responsive to local needs
• Enables databases, network management and utility
functions to be centralised
• Commitment to open and modular systems by the
user organisations and vendors
• Networking is fundamental to the operation, thus
good network management and security functions are
necessary
Client/Server Applications
• Emphasis on GUI for users
• Database Example
– Database on server, applications for access on
client, “glue” (like SQL) enables requests)
– Application logic can be client-only, or split
between client and server
Categories of Servers
• File Server
• Data Server
• Compute Server
• Database Server
• Communication Server
• Video Server
Types of Servers
From A to Z

• Application Servers • List Servers


• Audio/Video Servers • Mail Servers
• Chat Servers • News Servers
• Fax Servers • Proxy Servers
• FTP Servers • Telnet Servers
• Groupware Servers • Web Servers
• IRC Servers • Z39.50 Servers

Source: http://webopedia.lycos.com
May 2002 UNT Center for Digital Knowledge 12
File Server
• File Servers manage a work group’s 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.
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 server’s processing
capabilities can be optimized
Data Server
• Data-oriented; used only for data storage and
management Data
• Since a data server can serve more than one Server
compute server, compute-intensive applications
can be spread among multiple severs
• Does not prefer any application logic
processing Compute
• Performs processes such as data Server
validation, required as part of the data
management function.
• Requires fast processor, large amount of
memory and substantial Hard disk capacity.
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
Classes of
Client-Server Applications
• Host-based processing
• Server-based processing
• Client-based processing
• Cooperative processing
• “Fat client” vs “fat server”
FAT Client vs FAT server

• Client/Server applications can also be differentiated by


how the distributed application is split between the client
and the server.
• The fat server model places more function on the server.
• The fat client does the reverse.
• Groupware, transaction and the web servers are examples
of fat servers; database and file servers are examples of
fat clients.
Fat Client
• Fat clients are the more traditional form of client/server.
• The bulk of the application runs on the client side of the equation.
• In both the file server and database server models, the clients know
how the data is organized and stored on the server side.
• Fat clients are used for decision support and personal software.
• They provide flexibility and opportunities for creating front-end
tools that let end-users create their own applications
Fat Server:
• Fat Server applications are easier to manage and deploy on the
network because most of the code runs on the servers.
• Fat servers try to minimize network interchanges by creating
more abstract levels of service.
• Transaction and object servers, for example, encapsulate the
database.
• The client in the fat server model provides the GUI and interacts
with the server through remote procedure calls (or method
invocations)
• These are used for mission-critical applications, represent the new
growth area fro PC-based client/server computing .
Client Server Architecture
• A network architecture
in which each
computer or process
on the network is
either a client or a
server.

Source: http://webopedia.lycos.com

May 2002 UNT Center for Digital Knowledge 23


Components
• Clients
• Servers
• Communication Networks

Server

Client

May 2002 UNT Center for Digital Knowledge 24


Clients
• Applications that run on computers
• Rely on servers for
Clients are Applications
– Files
– Devices
– Processing power
• Example: E-mail client
– An application that enables you to send and
receive e-mail
May 2002 UNT Center for Digital Knowledge 25
Servers
• Computers or processes that manage
network resources Servers Manage Resources
– Disk drives (file servers)
– Printers (print servers)
– Network traffic (network servers)
• Example: Database Server
– A computer system that processes database
queries
May 2002 UNT Center for Digital Knowledge 26
Communication Networks

Networks Connect Clients


and Servers

May 2002 UNT Center for Digital Knowledge 27


Client–Server Computing
• Process takes place
– on the server and Client-Server Computing
– on the client Optimizes Computing Resources

• Servers
– Store and protect data
– Process requests from clients
• Clients
– Make requests
– Format data on the desktop
May 2002 UNT Center for Digital Knowledge 28
Application Functions
• Software application
functions are separated into
three distinct parts

Server:
Data Management

Client: Presentation & Application Logic

May 2002 UNT Center for Digital Knowledge 29


Application Components

3 2 Client Types
Data Management

2 Application Logic Fat


Thin Client
1 Presentation Client
3 Logical Tiers

Database Applications:
Most common use of client-server architectures

May 2002 UNT Center for Digital Knowledge 30


Middleware
• Software that connects two
otherwise separate applications Database Server:
Manages Data
• Example: Middleware product
linking a database system to a Web
server Middleware Links
Applications

Web Server:
Presents Dynamic Pages

Client: Requests Data via Web


May 2002 UNT Center for Digital Knowledge 31
Two-Tier Architecture

• Example of C/S Architecture


• Improves scalability over File Sharing
Architecture
• Consists of 3 components
– User system interface
– Processing Management
– Database Management
• 2-tier architecture is used to describe client/server
systems where the client requests resources and the server
responds directly to the request, using its own resources.

• This means that the server does not call on another


application in order to provide part of the service.
2 tier
Two Tier Architecture
Two-Tier Architecture

• Limitations
– Performance deteriorates if number of users is
greater than 100
– Restricted flexibility and choice of DBMS,
since data language used in server is
proprietary to each vendor
– Limited functionality in moving program
functionality across servers
Three-Tier Architecture

• To overcome the limitations of Two-Tier


Architecture
• Middle tier between UI and DB
• Ways of incorporating Middle-Tier
– Transaction processing Monitors
– Application Servers
– Message Servers
3-tier
• In 3-tier architecture, there is an intermediary level, meaning the
architecture is generally split up between:
• A client, i.e. the computer, which requests the resources, equipped
with a user interface (usually a web browser) for presentation
purposes
• The application server (also called middleware), whose task it is to
provide the requested resources, but by calling on another server
• The data server, which provides the application server with the data
it requires
3-tier
3-Tier Client/Server Architecture
3-Tier with a TP Monitor

• Online access through


– Time sharing or Transaction Processing
• Client connects to TP instead of DB
• Monitor accepts transaction, queues it and
takes responsibility until it is completed
• Asynchrony is achieved
Key services provided by the monitor

• ability to update multiple different DBMS in a single


transaction
• connectivity to a variety of data sources, including
– flat files
– non relational DBMS
– mainframe
• more scaleable than a 2-tier approach
• ability to attach priorities to transactions
• robust security
• For large (e.g., 1,000 user) applications, a TP monitor is
one of the most effective solutions.
3 Tier with an Application Server

• Most of Application’s business logic is


moved to Shared host server
• PC is used only for presentation services
• Approach is similar to X Architecture
– Both aim at pulling the main body of
application logic off the desktop and running it
on a shared host.
3 Tier with an Application Server
Advantages to Application Designer
• Less software on client, hence less to
worry about security
• Application is more scalable
• Less software maintenance cost
• Easier to design the application to be
DBMS-agnostic
• Allows “after the fact” application
partitioning
Middleware
• Standardized interfaces and protocols
between clients and back-end databases
• Hides complexity of data sources from the
end-user
• Compatible with a range of client and
server options
• All applications operate over a uniform
applications programming interface (API).
2 Tier vs 3Tier
• These functional units can be assigned to either the client or to one or more servers.
• The most typical functional units are:
– User Interface
– Business Logic and
– the Shared Data
• In 2-tier, the application logic is either buried inside the User Interface on the client or
within the database on the server (or both)
• 2-tier system examples: File Servers and Database Servers with stored procedure.
• In 3-tier, the application logic (or) process lives in the middle-tier, it is separated from
the data and the user interface.
• 3-tier systems are more scalable, robust and flexible. In addition, they can integrate
data from multiple sources.
• Examples: TP Monitors, Distributed Objects and the Web.
2 Tier vs 3 Tier
• 2-tier architecture is therefore a client-server architecture where the
server is versatile, i.e. it is capable of directly responding to all of the
client's resource requests.
• In 3-tier architecture however, the server-level applications are
remote from one another, i.e. each server is specialised with a certain
task (for example: web server/database server). 3-tier architecture
provides:
• A greater degree of flexibility
• Increased security, as security can be defined for each service, and at
each level
• Increased performance, as tasks are shared between servers
Intranets
• Implementation of internet-based
client/server technology within an
organization, rather than for global
connectivity
• Immensely successful in corporate
computing contexts
Intranet Disadvantages
• Long development cycles
• Difficulty in partitioning applications, and
modifying based on user feedback
• Effort in distributing upgrades to clients
• Difficult in scaling servers to respond to
increased load
• Continuous requirement for more powerful
desktop machines

You might also like