Publishing Engine Programmer's Guide > Arbortext Publishing Engine and its Components > Technical Overview of Arbortext Publishing Engine > Distributed Computing and the Client/Server Model
  
Distributed Computing and the Client/Server Model
Arbortext Publishing Engine and its clients follow the client/server model of distributed computing. The term distributed computing refers to two or more programs or machines working together to solve a problem or deliver service. The client/server model is a conceptual framework for understanding distributed computing. In this model, every interaction between two computers or programs is viewed as a transaction consisting of a request and a response.
A transaction begins when a program running on one machine (the client) sends a request for service to a program running on another machine (the server). When the server receives the request from the client, the server interprets the request, performs some kind of work, and returns a response to the client. The client usually waits for the response from the server. When the client receives the response, the transaction is considered to be over. The client continues processing, and the server sleeps, awaiting a request from another client.
The term client can refer to either the program that transmits the request to the server (the client program) or to the machine on which the client program runs (the client machine). The term server can refer to either the program that receives the client request (the server program) or to the machine on which the server program runs (the server machine).
Sometimes the client and server machine are the same, and a client process transmits a request to a server process running on the same machine. To fulfill a client request, a server process may need to send a request to another server, in which case a single program can be considered both a server and a client.
A client program and a server program must share common expectations about how to exchange data in the request and response transaction. The set of rules governing how the client will construct and send a request and how the server will return a response to the client is called a protocol.