client-server

A common form of distributed system in which
software is split between server tasks and client tasks.
A client sends requests to a server, according to some
protocol, asking for information or action, and the server
responds.

This is analogous to a customer (client) who sends an order
(request) on an order form to a supplier (server) who
despatches the goods and an invoice (response). The order
form and invoice are part of the "protocol" used to
communicate in this case.

There may be either one centralised server or several
distributed ones. This model allows clients and servers to be
placed independently on nodes in a network, possibly on
different hardware and operating systems appropriate to
their function, e.g. fast server/cheap client.

Examples are the name-server/name-resolver relationship in
DNS, the file-server/file-client relationship in NFS and
the screen server/client application split in the X Window
System.