Lecture Notes for Client-Server Interfaces
18 January 2001 - Client-Server Distributed Computing
- request-response computational model
- advantages
- conceptually simple - make a request, get a response
- familiar - like subroutines
- well structured - poor modularity = poor performance
- easy to design - relatively complex designs are easy
- loose coupling - easy error recovery
- easily dynamic - server choice
- problems
- not universal - highly coordinated computing
- too synchronous - may be expensive
- simple concepts are difficult to implement - pointers, failures
- little implementation support; support is expensive
- the model
- hardware
- host - where clients and servers run
- network - what moves data between the client and server; a transport
(end-to-end) network, an internet
- software
- the client - issues requests, receives replies
- the server - receives requests, issues replies
- the operating system - supports (more or less) the client and server;
computation and communication
- the protocol - how the client and server interact
- middleware - a vast cloud; location and transport; brokering and
transport; maybe corba, maybe a .h file
- issues
- which application functions go where - client and server design; fixed
servers make this moot
- protocol design - many protocols; application-level protocols
- identity - what can connect to what; what identify information
available is available to whom
- state - what needs to remember what
- stateful - easy protocol, complicated implementation (when to forget)
- stateless - harder protocol (no context), easy implementation
- location and selection - performance, function; brokering
- error semantics
This page last modified on 18 January 2001.