Lecture Notes for Client-Server Interfaces

18 January 2001 - Client-Server Distributed Computing


  1. request-response computational model

    1. advantages

      1. conceptually simple - make a request, get a response

      2. familiar - like subroutines

      3. well structured - poor modularity = poor performance

      4. easy to design - relatively complex designs are easy

      5. loose coupling - easy error recovery

      6. easily dynamic - server choice

    2. problems

      1. not universal - highly coordinated computing

      2. too synchronous - may be expensive

      3. simple concepts are difficult to implement - pointers, failures

      4. little implementation support; support is expensive

  2. the model

    1. hardware

      1. host - where clients and servers run

      2. network - what moves data between the client and server; a transport (end-to-end) network, an internet

    2. software

      1. the client - issues requests, receives replies

      2. the server - receives requests, issues replies

      3. the operating system - supports (more or less) the client and server; computation and communication

      4. the protocol - how the client and server interact

      5. middleware - a vast cloud; location and transport; brokering and transport; maybe corba, maybe a .h file

  3. issues

    1. which application functions go where - client and server design; fixed servers make this moot

    2. protocol design - many protocols; application-level protocols

    3. identity - what can connect to what; what identify information available is available to whom

    4. state - what needs to remember what

      1. stateful - easy protocol, complicated implementation (when to forget)

      2. stateless - harder protocol (no context), easy implementation

    5. location and selection - performance, function; brokering

    6. error semantics


This page last modified on 18 January 2001.