Introduction to Data Management
Managing Data on the Tandem Systems
15873 Tandem Computers Incorporated 2-3
As an example of such an arrangement, Figure 2-1 shows an application that performs
three main functions: checking credit, adding a new order, and updating an existing
order. Each of these functions is handled by a corresponding server process that
manages the activity on the database. Users request these operations, however,
through an order-entry requester process that manages terminal I/O.
Figure 2-1. Requester-Server Relationship
S8020-00
4
Order Entry
Information
Order Entry
(Requester)
Credit Check
(Server)
Add
New Order
(Server)
Update Order
(Server)
Database
Terminals
Requesters are sometimes multithreaded processes; one requester can handle a
complex series of operations for many users, interleaving the concurrent handling of
several requests. For instance, a requester process can accept messages from several
terminals concurrently, performing similar operations for each message and
ultimately directing it to the appropriate server process.
Servers, however, are usually single-threaded; each services one request completely
before handling the next. For example, an order-processing application might include
one server that performs a credit check, another that adds an order to the database,
and a third that updates an order; each server completes its particular function for one
request and then does the same for the next request. Often a transaction results in a
multistep update that involves several servers, with each server involved in changing
the database.
A server, unlike a requester, typically has a simple structure that performs a basic
sequence of steps such as reading the transaction record, performing the requested
operation, and replying.
To increase the performance of an application, the requester-server relationship allows
you to create multiple copies of the same server process in different processors. As
Figure 2-2 shows, you can even have multiple requesters sharing access to multiple
servers for concurrent processing of many requests.