This article deals with the client-server application paradigm. After a general description of its characteristics, two of the system design challenges it involves are treated in detail: addressing and server threading. Devising an appropriate address finding/resolution scheme is of vital importance in order to make client-server applications transparent with respect to the machinery they run on. Furthermore, the choice of an appropriate threading model for servers is closely bound to the communication needs between clients and server, and can heavily affect the overall application performance.
A postscript copy is available