Lecture Notes for Client-Server Interfaces

24 January 2002 - 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

    7. security - client-server authentication, protection against misbehaving endpoints

  4. client-server examples

    1. the web - browsers request pages, servers send them

    2. dns address resolutions - clients request name translation, servers return ip addresses

    3. nfs - clients request data from files, servers return them


This page last modified on 18 January 2002.