Upload
rafe-cain
View
232
Download
1
Tags:
Embed Size (px)
Citation preview
Chapter 2Client Server Architecture
Objectives
• Explain the essential principles of client-server architecture
• Explain the differences between 2-tier, 3-tier, and multitier architectures, including their features and relative capacities
• Recognize 2-tier, 3-tier, and multi-tier architectures
• Contrast the client-server architecture with centralized and distributed architectures
System Architecture
• The architecture of a computer system is the high-level (most general) design on which the system is based
• Architectural features include:– Components– Collaborations (how components interact)– Connectors (how components communicate)
System Architecture
• Common architectural patterns include– Client-Server– Layered– Peer-to-peer– Pipes and Filters– etc.
Client-Server Architecture
• Each component of a client-server system has the role of either client or server
– Client: a component that makes requestsclients are active initiators of transactions
– Server: a component that satisfies requestsservers are passive and react to client requests
Centralized / Distributed
• The client-server architecture can be thought of as a median between– Centralized processing: computation is
performed on a central platform, which is accessed using “dumb” terminals
– Distributed processing: computation is performed on platforms located with the user
Centralized DistributedClient / Server
Client-Server Architecture
• The Web is a client-server system
• Web browsers act as clients, and make requests to web servers
• Web servers respond to requests with requested information and/or computation
Server
Server
ServerClient
Client
ClientClient
Clientrequest
Tiered Web Architectures
• Web applications are usually implemented with 2-tier, 3-tier, or multitier (N-tier) architectures
• Each tier is a platform (client or server) with a unique responsibility
2-Tier C-S Architecture
• Tier 1: Client platform, hosting a web browser
• Tier 2: server platform, hosting all server software components
2-Tier Characteristics
• Advantage:– Inexpensive (single platform)
• Disadvantages– Interdependency (coupling) of components– No redundancy– Limited scalability
• Typical application– 10-100 users– Small company or organization, e.g., law office,
medical practice, local non-profit
3-Tier C-S Architecture
• Tier 3 takes over part of the server function from tier 2, typically data management
3-Tier Characteristics
• Advantages– Improved performance, from specialized hardware – Decreased coupling of software components– Improved scalability
• Disadvantages– No redundancy
• Typical Application– 100-1000 users– Small business or regional organization, e.g., specialty retailer,
small college
Multitier C-S Architecture
• A multitier (N-tier) architecture is an expansion of the 3-tier architecture, in one of several different possible ways– Replication of the function of a tier– Specialization of function within a tier– Portal services, focusing on handling
incoming web traffic
Replication
• Application and data servers are replicated
• Servers share the total workload
Specialization
• Servers are specialized
• Each server handles a designated part of the workload, by function
Portal Services
• Portal servers handle incoming traffic, reducing application server load– e.g., firewall, load balancer, transaction
processing manager
Multi-Tier Characteristics
• Advantages– Decoupling of software components– Flexibility to add/remove platforms in response to load– Scalability– Redundancy
• Disadvantages– Higher costs (maintenance, design, electrical load, cooling)
• Typical Application– 1000+ users– Large business or organization
Characteristics Summary
2-Tier
3-Tier
N-Tier
10
100
1000users
•large e-commerce, business, or organization
•small e-commerce, regional business or organization
•local business or organization
capacityscalabilityredundancycost
Review
• Client-Server Architecture
• 2-tier, 3-tier, Multitier architectures