Title: Client/Server%20Systems
1Chapter 12
- Client/Server Systems
- Hachim Haddouti
2In this chapter, you will learn
- What client/server computing is
- What the advantages of using client/server
systems are - client/server architecture, system components
and how they interact - What effect the client/server system has on the
DBMS
3Client/Server Computing
- Computing model for the development of
computerized systems - Client requests specific service
- Server provides requested service
- Reside on same or different computers
Figure 12.1
4Client/Server Computing (cont.)
- Key to client server power is where request
processing takes place - Extent of sharing processing
- Thin client
- Thin server
- Fat client
- Fat server
- Classification
- 2-tier
- 3-tier
5Forces that Drive Client/Server Trend
- Changing business environment
- Growing need for enterprise data access
- Demand for end-user productivity gains based on
efficient use of data - Technological advances
- Growing cost/performance advantages
6Evolution of Computing Environment
7Mainframe vs. Client/Server Systems
8Components of Data-Intensive Systems
- Three separate types of functionality
- Data management
- Application logic
- Presentation
- The system architecture determines whether these
three components reside on a single system
(tier) or are distributed across several tiers
9Single-Tier Architectures
- All functionality combined into a single tier,
usually on a mainframe - User access through dumb terminals
- Advantages
- Easy maintenance and administration
- Disadvantages
- Today, users expect graphical user interfaces.
- Centralized computation of all of them is too
much for a central system
10Client-Server Architectures
- Work division Thin client
- Client implements only the graphical user
interface - Server implements business logic and data
management - Work division Thick client
- Client implements both the graphical user
interface and the business logic - Server implements data management
11Two-Tier Client/Server Architecture
12Components of Client/Server Architecture
- Client
- Front-end application
- Server
- Back-end application
- Communications middleware
- Communications layer
13Client-Server Architectures (Contd.)
- Disadvantages of thick clients
- No central place to update the business logic
- Security issues Server needs to trust clients
- Access control and authentication needs to be
managed at the server - Clients need to leave server database in
consistent state - One possibility Encapsulate all database access
into stored procedures - Does not scale to more than several 100s of
clients - Large data transfer between server and client
- More than one server creates a problem x
clients, y servers xy connections
14The Three Layers
- Presentation tier
- Primary interface to the user
- Needs to adapt to different display devices (PC,
PDA, cell phone, voice access?) - Middle tier
- Implements business logic (implements complex
actions, maintains state between different steps
of a workflow) - Accesses different data management systems
- Data management tier
- One or more standard database management systems
15The Three-Tier Architecture
Client Program (Web Browser)
Presentation tier
Application Server
Middle tier
Database System
Data managementtier
16Three-Tier Client/Server Architecture
17Advantages of the Three-Tier Architecture
- Heterogeneous systems
- Tiers can be independently maintained, modified,
and replaced - Thin clients
- Only presentation layer at clients (web browsers)
- Integrated data access
- Several database systems can be handled
transparently at the middle tier - Central management of connections
- Scalability
- Replication at middle tier permits scalability of
business logic - Software development
- Code for business logic is centralized
- Interaction between tiers through well-defined
APIs Can reuse standard components at each tier
18Example 1 Airline reservations
- Build a system for making airline reservations
- What is done in the different tiers?
- Database System
- Airline info, available seats, customer info,
etc. - Application Server
- Logic to make reservations, cancel reservations,
add new airlines, etc. - Client Program
- Log in different users, display forms and
human-readable output
19Example 2 Course Enrollment
- Build a system using which students can enroll in
courses - Database System
- Student info, course info, instructor info,
course availability, pre-requisites, etc. - Application Server
- Logic to add a course, drop a course, create a
new course, etc. - Client Program
- Log in different users (students, staff,
faculty), display forms and human-readable output
20Technologies
HTML Javascript XSLT
Client Program(Web Browser)
ASP, JSPServlets Cookies CGI
Application Server(Tomcat, Apache, IIS)
Database System(SQL Server, Oracle, DB2)
XML
Stored Procedures
21Typical Characteristics of Server Hardware
- Fast CPU
- Fault-tolerant capabilities
- Dual power
- Standby power
- Error checking and correcting memory
- RAID
- Expandability of CPU, memory, disk, and
peripherals - Bus support for multiple add-on boards
- Multiple communications options
22Competing Standards
- Client operating systems
- Microsoft Windows
- OS/2, Apple Mac OS, Unix, Linux
- Client graphical user interfaces
- Microsoft Windows
- OS/2 Presentation Manager, Macintosh, UNIX
- Server operating systems and network protocols
- Database servers Unix, OS/2, Windows NT
Server/2000 Server - Printer and file servers Novell Netware
- LAN protocols TCP/IP, IPX/SPX, NetBIOS
- Middleware
- ODBC, IDAPI, DRDA, QE
23Client/Server DBMS Functions
- Transparent data access to multiple,
heterogeneous clients - Allow client requests to the database server over
network - Process client data requests at local server
- Send only SQL results to clients over network
24Summary Advantages ofClient/Server Systems
- Lower network traffic
- Improved processing distribution
- Thinner clients
- Greater processing transparency
- Increased network, hardware, and software
transparency - Improved security
- Decreased costs
- Increased scalability
25Client/Server Implementation Issues
- Management Issues
- Communications infrastructure
- Applications
- Controlling escalating and hidden costs
- People and cultural changes
- Multiple vendor relationships
- Development tool acquisition
- Determination if client/server approach is
correct