Lecture Notes for Client-Server Interfaces

23 January 2003 - 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

        1. data transmission costs, computational bottlenecks

      4. easy to design - relatively complex designs are easy

      5. loose coupling - easy to hide or ignore errors, somewhat easy to recover from errors

      6. easily dynamic - server choice, multiple servers

    2. problems

      1. not universal - highly coordinated computing

        1. one way, loosely-coupled communication

      2. too synchronous - may be expensive

        1. streaming media

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

      4. little implementation support; support is expensive

        1. this is changing, but slowly and without new ideas (corba, soap)

  2. the client-server computing 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 20 January 2003.