Availability Guide for Application Design
Designing Applications for Change
Availability Guide for Application Design—525637-004
10-21
Using Version-Labeled Interfaces for Intermodule
Communication
receives its messages. However, so long as they have at least one message format in
common, they can communicate.
Figure 10-4 shows two processes in communication. One process supports message
versions A through H. The other supports message versions F through M.
Communication works as follows. Process A sends a message to process B. The
message includes a tag, indicating the range of messages supported by process A.
Process B reads the tag and compares the range of the sender with its own range. If
Process B does not support a message in that range, it returns an error to indicate that
message versions are incompatible. If the message range supported by process B
overlaps the range supported by process A, then the two processes can negotiate the
message level they will use for communication.
Typically, two processes will communicate using the highest message version they
have in common.
An approach such as this gives you the flexibility to choose how many earlier versions
you are prepared to communicate with. While most applications have a requirement to
be compatible with recent versions, it is usually impractical to support every version of
every process in the application since the application was first written.
Message Versions and NonStop Tuxedo
NonStop Tuxedo applications can use the File Manipulation Language (FML) to ease
handling of message versions. With careful planning, you can use FML to dynamically
change message content without having to rebuild all clients and servers.
The conceptual model works as follows. New clients, for example, can add fields to an
existing message buffer. Upgraded server processes are able to use the new
information. Older server processes will safely ignore the additional information,
assuming the new message format is a superset of the old.
For details on writing programs to use FML, refer to the NonStop Tuxedo System
Application Development Guide.
Figure 10-4. Overlapping Ranges of Labeled Message Versions
Process A Process B
Supports
These
Message
Versions
Supports
These
Message
Versions
A
H
F
M
VST904.vdd