跳转至

8.0 Client and Server

This section covers the design and architecture of client-server systems, drawing on concepts from distributed systems.

Architecture Comparison Overview

Architecture TypePrimary FocusCommunication ModelService DiscoveryScalability Approach
Client-ServerEntity interactionAsymmetric (Client initiates)Known server locationsAdd more servers
Peer-to-PeerEqual entitiesSymmetricDistributed discoveryAdd more peers
SOAService provisioningRequest-responseRegistry-basedService composition

Key Distributed System Characteristics Matrix

CharacteristicClient-ServerSOAImpact on Design
Resource SharingServer-centricService-centricDetermines allocation strategy
OpennessModerateHighAffects vendor independence
ConcurrencyServer-managedService-managedInfluences performance design
ScalabilityHorizontal server scalingService compositionGuides growth strategy
Fault ToleranceServer redundancyService alternativesShapes reliability approach

1. Introduction to Distributed Systems

  • Virtually all large computer-based systems today are distributed systems.
  • Information processing is spread across multiple computers.
  • Different architectures exist, including client-server, peer-to-peer, and service-oriented architectures.

Core Characteristics Analysis

CharacteristicDefinitionImplementation ChallengeReal-world Example
Resource SharingMaximizing utility and minimizing costNetwork-level concurrent access complexityCloud computing, shared memory, disk space
OpennessMulti-vendor equipment/software compatibilityStandardization and interoperabilityMixed OS environments, cross-platform APIs
ConcurrencySimultaneous processing capabilitySynchronization and coordinationParallel job processing, multi-threading
ScalabilityDynamic resource adjustmentLoad balancing and resource managementAuto-scaling cloud services
Fault ToleranceContinued operation after failuresRedundancy and failover mechanismsService migration, backup systems

Middleware Requirements

Distributed System Components
├── Application Layer
├── Middleware Layer
│   ├── Transaction Monitors
│   ├── Data Converters
│   └── Communication Controllers
└── Network Infrastructure
  • Middleware software (like transaction monitors, data converters, communication controllers) may be needed to manage and support components in a distributed system.

2. Client-Server Architecture

  • A primary distributed systems architecture.
  • Consists of a set of servers that provide specific services (like printing, data management) and a set of clients that call on these services.

Architecture Flow Diagram

[Client 1] ──request──► [Server A: Database]
[Client 2] ──request──► [Server B: Web Service]
[Client 3] ──request──► [Server C: File Storage]
     │                        │
     └──response◄──────────────┘

Key Properties Analysis

PropertyDescriptionDesign Implication
Asymmetric RelationshipClients initiate, servers respondConnection management strategy
Server AwarenessClients know servers, not vice versaService discovery mechanisms
Role SpecializationUI vs. Data/Logic separationResource allocation decisions
Resource SharingMany-to-few client-server ratioLoad balancing requirements

Specialization Breakdown

ComponentResponsibilityOptimization Focus
ClientUser Interface (GUI, rendering)User experience, responsiveness
ServerData management, application logicPerformance, reliability, security

Real-world Implementation Examples

Service TypeArchitecture ComponentsScalability Pattern
Streaming VideoVideo server + Web server + Catalog serverContent delivery networks
Online GamingGame logic server + Image server + DatabaseGeographic distribution
Email SystemEmail server + Authentication + StorageServer clustering
Chat ApplicationChat server + User management + Message storeHorizontal scaling

3. Advantages and Disadvantages Analysis

Comparative Trade-offs

AspectAdvantagesDisadvantagesMitigation Strategy
Data DistributionStraightforward implementationNo shared data modelStandardized APIs
Network UtilizationEffective use of network systemsPotential bottlenecksLoad balancing
Hardware CostsCheap commodity hardwareRedundant management overheadCentralized management tools
ScalabilityEasy server addition/upgradeLack of central service registryService discovery protocols

Cost-Benefit Matrix

High Benefit, Low Cost    │ High Benefit, High Cost
─────────────────────────┼──────────────────────────
• Data distribution      │ • Network optimization
• Hardware flexibility   │ • Advanced load balancing
─────────────────────────┼──────────────────────────
Low Benefit, Low Cost    │ Low Benefit, High Cost
─────────────────────────┼──────────────────────────
• Basic implementations  │ • Over-engineered solutions
• Simple protocols       │ • Unnecessary redundancy

4. Layered Architectures in Client-Server

Architecture Evolution Comparison

ArchitectureLayersDistributionComplexityPerformanceManagement
Two-Tier2Client-ServerLowVariableSimple
Three-Tier3Client-App-DataMediumOptimizedBalanced
N-TierNDistributedHighScalableComplex

Two-Tier Architecture Models

Model Comparison Table

ModelClient ResponsibilitiesServer ResponsibilitiesUse CasePerformance Profile
Thin ClientPresentation onlyApplication + DataIoT, terminalsLow client load
Fat ClientPresentation + ApplicationData ManagementDesktop appsHigh client utilization

Processing Load Distribution

Thin Client Model:
Client: [████] 20% (UI only)
Server: [████████████████] 80% (Logic + Data)

Fat Client Model:
Client: [████████████] 60% (UI + Logic)
Server: [████████] 40% (Data only)

Three-Tier Architecture Breakdown

Tier 1: Presentation Layer
├── Web Browser
├── Mobile App
└── Desktop Client

Tier 2: Application Processing Layer
├── Business Logic Server
├── API Gateway
└── Authentication Service

Tier 3: Data Management Layer
├── Database Server
├── File Storage
└── Cache Systems

Performance Optimization Analysis

MetricTwo-Tier ThinTwo-Tier FatThree-TierExplanation
Network TrafficHighMediumOptimizedLogic placement affects data flow
Client Resource UsageLowHighMediumProcessing distribution impact
ScalabilityLimitedPoorExcellentIndependent layer scaling
MaintenanceSimpleComplexBalancedSeparation of concerns

Real-world Example: Banking System

Three-Tier Banking Architecture:

Presentation (Client):
• Mobile banking app
• Web browser interface
• ATM interface

Application Processing (Server):
• Account management service
• Transaction processing
• Security validation
• Business rule enforcement

Data Management (Server):
• Customer database
• Transaction history
• Account balances
• Audit logs

Calculation Example: Server Load Distribution

Scenario: 1000 concurrent users, 3-tier architecture

Load Distribution Calculation:

Presentation Tier (Client-side):
• UI rendering: 1000 clients × 10% CPU = Local processing
• Network requests: 1000 × 5 requests/min = 5000 requests/min

Application Tier:
• Request processing: 5000 requests/min ÷ 3 servers = 1667 requests/server/min
• Business logic: 60% of total processing load

Data Tier:
• Database queries: 5000 requests/min × 0.8 DB ratio = 4000 queries/min
• Storage I/O: 40% of total processing load

5. Service-Oriented Architecture (SOA)

SOA vs Client-Server Paradigm Shift

DimensionClient-ServerSOAKey Difference
Primary FocusEntity interactionService provisioningRelationship vs. Function
Discovery ModelKnown endpointsRegistry-basedStatic vs. Dynamic
Service BindingCompile-timeRuntime (potential)Fixed vs. Flexible
Resource ModelServer ownershipService consumptionOwnership vs. Usage
ScalabilityServer additionService compositionHardware vs. Logic

SOA Component Architecture

SOA Interaction Flow:

1. Service Provider ──publishes──► Service Registry
2. Service Requester ──discovers──────┘
3.                   └──requests service──► Service Provider
4.                   ◄──service response─────┘

Service Characteristics Matrix

CharacteristicImpactImplementationBenefit
Provider IndependenceVendor flexibilityStandard interfacesReduced lock-in
Runtime Service FindingDynamic discoveryRegistry protocolsAdaptive systems
Service CompositionModularityAPI orchestrationRapid development
Pay-per-use ModelCost optimizationUsage meteringResource efficiency
Compact ApplicationsReduced complexityMicroservicesMaintainability
Reactive/AdaptiveDynamic behaviorEvent-driven designResponsiveness

Hybrid Implementation Example

E-commerce Platform: SOA + Client-Server Hybrid

Client-Server Components:
├── Web Frontend (Client)
├── Application Server
└── Database Server

SOA Services:
├── Payment Processing Service (External)
├── Shipping Calculation Service (External)
├── Inventory Management Service (Internal)
└── User Authentication Service (Shared)

Service Registry:
• API Gateway managing service discovery
• Load balancing across service instances
• Health monitoring and failover

Cost-Performance Analysis

ArchitectureSetup CostOperating CostFlexibilityPerformance
Pure Client-ServerLowMediumLowHigh
Pure SOAHighVariableHighVariable
Hybrid ApproachMediumMediumHighOptimized

Calculation Example: SOA Service Costs

Scenario: E-commerce platform with SOA services

Monthly Service Cost Calculation:

Internal Services (Fixed costs):
• User Management: $500/month
• Inventory System: $800/month
• Order Processing: $600/month
Total Internal: $1,900/month

External Services (Usage-based):
• Payment Processing: $0.30 per transaction
• Shipping API: $0.05 per lookup
• Email Service: $0.001 per email

Usage Example (10,000 transactions/month):
• Payment: 10,000 × $0.30 = $3,000
• Shipping: 10,000 × $0.05 = $500
• Email: 15,000 × $0.001 = $15
Total External: $3,515/month

Total SOA Cost: $1,900 + $3,515 = $5,415/month

Traditional equivalent infrastructure: $8,000/month
Cost saving: $2,585/month (32% reduction)

Architecture Decision Framework

FactorClient-Server BestSOA BestHybrid Recommended
Project SizeSmall-MediumLarge-EnterpriseMedium-Large
Team ExpertiseTraditional ITDevOps/CloudMixed skills
Budget ConstraintsLimited upfrontFlexible operatingBalanced approach
Change FrequencyStable requirementsDynamic needsModerate changes
Integration NeedsInternal systemsExternal partnersMixed requirements

Exam-Focused Summary

Critical Decision Points for Concept Questions

Architecture Selection Criteria

RequirementRecommended ArchitectureJustification
Low latency, high performanceFat Client (2-tier)Local processing reduces network overhead
Centralized data controlThin Client (2-tier)All logic and data on server
Independent scaling needsThree-tierSeparate scaling of presentation, logic, data
External service integrationSOARegistry-based discovery and composition
Limited client resourcesThin ClientMinimal client-side requirements
Offline capability neededFat ClientLocal processing when disconnected

Performance Calculation Formulas

Network Load Calculation

Total Network Traffic = (Requests/second) × (Average Request Size) × (Number of Clients)

Thin Client: High network traffic (all processing remote)
Fat Client: Lower network traffic (local processing)
Three-tier: Optimized traffic (processing layer filters requests)

Scalability Metrics

Scalability Factor = (Max Supported Users) / (Min Infrastructure Cost)

Client-Server: Linear scaling (add servers)
SOA: Exponential scaling (service composition)

Cost-Benefit Analysis

TCO = Infrastructure Cost + Development Cost + Maintenance Cost + Operating Cost

ROI = (Benefits - Total Costs) / Total Costs × 100%

Common Exam Scenarios

Scenario 1: Mobile Banking App

Question: Choose appropriate architecture for 100, 000 concurrent users

Analysis: * High security requirements → Server-side processing * Mobile devices → Limited resources * Scalability critical → Independent layer scaling

Answer: Three-tier architecture * Mobile app (Presentation) * API server cluster (Application) * Database cluster (Data)

Scenario 2: Real-time Gaming Platform

Question: Minimize latency for competitive gaming

Analysis: * Ultra-low latency required → Local processing * Rich graphics → Client-side rendering * Game state synchronization → Server coordination

Answer: Fat Client architecture * Game engine on client * State sync server * Optimized network protocols

Scenario 3: Enterprise Integration Platform

Question: Connect 50+ diverse systems

Analysis: * Multiple vendors → Standard interfaces needed * Dynamic service requirements → Runtime discovery * Cost optimization → Pay-per-use model

Answer: SOA architecture * Service registry for discovery * API gateway for integration * Microservices for modularity

Key Formulas for Calculations

Load Distribution (Three-tier)

Client Load = UI Processing + User Interaction
Application Server Load = Business Logic + API Processing
Database Load = Query Processing + Data Storage

Total System Load = Sum of all tier loads
Bottleneck Tier = Tier with highest utilization ratio

Service Cost Optimization (SOA)

Service Cost = Fixed Cost + (Usage × Variable Rate)
Total SOA Cost = Σ(Individual Service Costs)
Break-even Point = Fixed Infrastructure Cost / Monthly SOA Savings

Fault Tolerance Calculation

System Availability = Π(Individual Component Availability)
MTBF (Mean Time Between Failures) = 1 / Failure Rate
Recovery Time = Detection Time + Switchover Time + Sync Time