TRANSFER Programming Manual

Defining Package Structure
Developing TRANSFER Applications
40970 Tandem Computers Incorporated 8–9
Defining Package Structure Design the structure of the packages and replies and determine how correspondents
should interpret them. Often, a single application uses many package formats.
Designing a package entails not only deciding what the structure will be, but also
defining delivery parameters such as priority, certification, and timeframes.
When you include one package within another, the number of levels of nesting can
affect performance. To retrieve the components on each level, a requester must:
1. Retrieve the components of the outermost package by issuing a request to TISERV.
2. If any of the components is itself a package, retrieve its components by issuing
another request.
3. Continue this process until all components have been retrieved at all levels.
Retrieving the nested components of a package requires at least one SEND statement
for every level of nesting in the package. Multiple SEND operations, however,
degrade the response time of the application.
The impact of nesting is even more significant upon asynchronous requesters, as
demonstrated in the following points.
Requesters must retrieve all components in order to transport a package to each
remote node.
Each level of nesting results not only in a separate SEND operation to transmit the
data at each level, but also in a recursive call to the program unit that transports
the data.
Deeply nested packages can exhaust the data space available to an asynchronous
requester and degrade the performance of the TRANSFER delivery system across
nodes.
Additional limitations on nesting are described in Section 9, “Designing and Writing
Clients.”