System Architecture — Centralized architecture

Lecture 2 — part 2

Client-server applications

  • Clients
    • Interacts with users through a user interface
    • Performs application functions
    • Interacts with client middleware using middleware API
    • Receives response and display it if needed
  • Servers
    • Implement services
    • Invoked by server middleware
    • Provide error-recovery and failure handling service

 Overview

  • Common communication patterns in distributed applications
    • Client-Server
    • Group (multicast)
    • Function-shipping/Applets
  • Client
    • Process that requests services
  • Server
    • Process that provides services
  • Details
    • Client usually blocks until server responds
    • Client usually invoked by end users when hey require services
    • Server usually waits for incoming requests
    • Server can have many clients making concurrent requests
    • Server is usually a program with special privileges

Application Software Architectures

  • Many applications can be considered to be made up of three software components or logical tiers

    • user interface
    • processing layer
    • data layer

  • Client/server architecture

    • Single-physical tiered, two physical tiered
    • multi-tiered
    • Distributed Data
      • e.g., distributed database
    • Remote data
      • e.g., network file system 
    • Distributed programs
      • e.g., world wide web
    • Remote presentation
      • e.g., telnet
    • Distributed presentation
      • e.g., X Windows

  • Motivation for multi-tier architectures

    • Frees clients from dependencies on the exact implementation of database
    • It allows business logic to be concentrated in one place
      • software updates are restricted to middle layer
    • Performance improvements possible by batching requests from many clients to database
    • Database and business logic tiers could be implemented by multiple servers for scalability

Leave a Reply