- request-response computational model
- advantages
- conceptually simple - make a request, get a response
- familiar - like subroutines
- well structured - poor modularity = poor performance
- data transmission costs, computational bottlenecks
- easy to design - relatively complex designs are easy
- loose coupling - easy to hide or ignore errors, somewhat easy to
recover from errors
- easily dynamic - server choice, multiple servers
- problems
- not universal - highly coordinated computing
- one way, loosely-coupled communication
- too synchronous - may be expensive
- streaming media
- simple concepts are difficult to implement - pointers, failures
- little implementation support; support is expensive
- this is changing, but slowly and without new ideas (corba, soap)
- the client-server computing 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
- security - client-server authentication, protection against misbehaving
endpoints
- client-server examples
- the web - browsers request pages, servers send them
- dns address resolutions - clients request name translation, servers
return ip addresses
- nfs - clients request data from files, servers return them
This page last modified on 20 January 2003.