The client/server model

Client/server is a model of interaction in which a program sends a request to another program and awaits a response. The requesting program is called a client; the answering program is called a server. Although the client/server model can be used between programs in a single computer, the term typically refers to a network. In a network, the model provides a convenient way to interconnect programs that are distributed across different locations.

In CICS®, a client is the source of an external request, and the server is the CICS program that services the request. A client can be a program on another platform that is connected to CICS over a network, or a program on another CICS region, connected with interregion communication (IRC).

CICS (or another product) provides a transport-specific listener (a long-running task) that starts another task (a facilitator such as an alias or a mirror), to process the incoming request. The facilitator uses CICS services to access the application.

The priorities of different alias transactions can be adjusted to determine the service that a client request receives. There must be enough free tasks to service the alias transactions as they are started by the listener. The CICS programs that service the client requests are subject to contention for resources in the CICS system, and to transmission delays if they are remote from the CICS system, or if they request the use of remote resources by function shipping or distributed program link.

The CICS server is independent of the application model (2/3-tier, 2/3 platforms). The listener/facilitator deals with the different transports used and sets the rules for which programming models are supported.