Within a global dialog, the job-submitting service and the job-receiving service run synchronously, and not separately as with message queuing (see "Message queuing"). This applies irrespective of whether the job-submitting service was itself started within a dialog or via the message queuing system.
Global dialogs allow for complex structures:
A job-submitting service can communicate with several job-receiving services within a transaction.
A job-receiving service that processes part of a job for another job-submitting service within a dialog can in turn request a third dialog service in another application.
Such parallel, nested structures result in multi-layered hierarchical relationships which can be represented in tree diagrams. This is known as a service hierarchy.
The diagram shows how a service can function simultaneously as a job-receiving service and a job-submitting service. From the point of view of service A, services B, C and D are job-receiving services. From the point of view of services E, F and G on the lowest level, services B and C are job-submitting services.
Figure 17: Service hierarchy in global dialogs
Each service hierarchy has a top service. The hierarchy exists only as long as the top service is active. By addressing new job-receiving services and terminating existing job-receiving services, a service hierarchy changes as the dialog job is processed.
Programming global dialogs
In global dialogs, a task is performed by several program units in various applications. A program unit can be addressed from a terminal, a client program, a program from the same application, or a remote application. Depending on the partner, it must therefore decide on the task it performs, where to send messages, and whether or not it is to terminate a global transaction.
openUTM provides a simple, reliable means of creating such complex forms of program-to-program communication through its user-friendly options for controlling global dialogs.
Detailed information on programming global dialogs and on the control options available see openUTM programming manuals “Programming Applications with KDCS for COBOL, C and C++” and “Creating Applications with X/Open Interfaces”. |