MFS is an IMS facility that formats messages to and from terminals so that IMS application programs need not deal with device-specific characteristics in input or output messages. MFS formats messages to and from user-written programs in remote controllers and subsystems so that host application programs need not deal with terminal-specific characteristics of the remote controller. Restriction: MFS does not support LU 6.2 devices. The LU 6.2 Edit exit routine (DFSLUEE0), which is supplied with IMS, can edit both input and output messages from LU 6.2 devices when the implicit API support is used. MFS uses control blocks that the user specifies to indicate to IMS how input and output messages are arranged.
In IMS systems, data that is passed between the application program and terminals or remote programs can be edited by MFS or the basic edit function. The facilities provided by MFS depend on the type of terminals or secondary logical units (SLUs) your network uses. MFS allows application programmers to deal with logical messages instead of device-dependent data; this simplifies application development. The same application program can deal with different device types using a single set of logic, whereas device input and output varies for specific device types. Figure 17-1 on page 299 shows how MFS can make an application program device-independent by formatting input data from the device or remote program for presentation to IMS, and by formatting the application program data for presentation to the output device or remote program. Figure 17-1. Message Formatting Using MFS
The presentation of data on the device or operator input can be changed without changing the application program. Full paging capability is provided by IMS for display devices. Input messages can be created from multiple screens of data. With MFS, you do not need to design your program for the physical characteristics of the device that is used for input and output messages unless the program uses very specific device features. Even when these features are used, the program can request that MFS assist in their presentation to the program or the device. MFS supports SLU-type devices SLU-1, SLU-2, SLU-P, Finance, and LU 6.1. MFS also supports older devices, including IBM 2740, 2741, 3270, and 3600. For IBM 3270 or SLU-2 devices, device control characters or orders can be sent directly from or received by the program using the MFS bypass function. This gives the application program more direct control of the data stream. The program uses reserved format names that cause MFS not to edit:
Using MFS bypass is usually confined to special application programs such as those that invoke Graphical Data Display Manager (GDDM) to display graphical data. Both logical and physical paging facilities are provided for the IBM 3270 and 3604 display stations. These facilities allow the application program to write large quantities of data that MFS can divide into multiple display screens on the terminal. The terminal operator can then page forward and backward to different screens within the message. MFS ComponentsMFS has several components:
IMS online change also plays an important part in updating the MFS libraries, even though it is not part of MFS. Briefly, online change allows the control block libraries to be modified while the IMS control region is running. Related Reading: For a complete description of online change, see IMS Version 9: Administration Guide: System. Figure 17-2 on page 301 shows an overview of the MFS utilities and their output. For information about these utilities, see IMS Version 9: Utilities Reference: Database and Transaction Manager. Figure 17-2. MFS Utilities and Their Output
Figure 17-3 shows the MFS online environment. The steps that follow correspond to the numbers in Figure 17-3. Figure 17-3. Overview of the MFS Online Environment
Figure 17-4 show the MFS test environment. The steps that follow correspond to the numbers in Figure 17-4. Figure 17-4. Overview of the MFS Test Environment
The MFS message editor and MFS pool manager operate online during the normal production mode of operation. The MFS message editor performs the actual message formatting operations using the control block specifications. In MFS test mode, the MFS Language utility can run at the same time as the online IMS control region. However, you must use the online change procedure to modify MFS formats when not in IMS test mode. Administering MFSTo take full advantage of the flexible message formatting options offered by MFS and to ensure efficient MFS operation, you should appoint an MFS administrator. The MFS administrator is responsible for MFS implementation and administration and should coordinate MFS application design and programming for the installation. The responsibilities of an MFS administrator include:
The MFS administrator should be technically competent in all aspects of IMS relative to MFS, including:
The administrator should also be familiar with the hardware and remote programs for SLU-P, Finance remote programs, or ISC subsystems if such programs are going to operate with MFS by using distributed presentation management. In addition, the administrator should be familiar with the terminal hardware characteristics because one administrative responsibility is minimizing device character transmission. An MFS administrator must communicate with IMS system administrators and application developers, as well as programmable workstation developers and end users. The MFS administrator must be able to enforce installation standards and to modify application specifications for MFS control blocks when necessary to benefit overall system performance. The procedures of related programming groups should recognize this authority of the MFS administrator. MFS Control BlocksMFS uses the following four types of control blocks to format input and output messages for application programs, terminals, or remote programs:
A MID and MOD that work together as a set are collectively called a message descriptor. A DIF and DOF that work together as a set are collectively called a device format. Because each MOD, DOF, DIF, and MID deals with a specific message, both a MOD and DOF must exist for each unique message that a program sends, and both a DIF and MID must exist for each unique message that a program receives. Figure 17-5 shows how the input data from a terminal in formatted mode is mapped by MFS (using a DIF and a MID) to the message format that is presented to the application program. Figure 17-5. MFS Input Formatting
In Figure 17-5, the DIF contains a list of device descriptor fields (DFLDs) that define what data is expected from which part of the device (that is, the location on the screen). The MID contains a list of message descriptor fields (MFLDs) that define the layout of the input segment as it is presented to the application program. MFS maps the data of the DFLDs into the corresponding MFLDs. The application program is primarily device independent because different physical inputs can be mapped into the same input segment. When the application program finishes its processing, the reverse mapping process occurs to deliver the result back to the device. MFLD statements define:
In addition, the MFLD statement defines:
Advantages to Using MFSTwo primary advantages to using MFS are that it:
To simplify IMS application development and maintenance, MFS performs many common application program functions and gives application programs a high degree of independence from specific devices or remote programs. With the device independence (the ability to communicate with different types of terminals without having to change the way it reads and builds messages) offered by MFS, one application program can process data to and from multiple device types while still taking advantage of their different capabilities. Thus, MFS can eliminate or minimize the changes in application programs when new terminal types are added. When the application program receives a message from a terminal, how the message appears in the program's I/O area is independent of the type of terminal that sent it; the appearance depends on the MFS options specified for that program. If the next message that the application program receives is from a different type of terminal, the user does not need to do anything to the application program. MFS shields the application program from the physical device that is sending the message in the same way that a database program communication block (PCB) shields a program from the data in the database and how it is stored. Other common functions MFS performs include left or right justification of data, padding, exit routines for validity checking, time and date stamping, page and message numbering, and data sequencing and segmenting. When MFS performs these functions, the application program handles only the actual processing of the message data. Related Reading: For information on user-written exit routines and how to use them, see IMS Version 9: Customization Guide. MFS also improves online performance of a terminal-oriented IMS by using control blocks that are designed for online processing. The MFS control blocks are compiled offline, when IMS is not being executed, from source language definitions. MFS can check their validity and make many decisions offline to reduce online processing. In addition, during online processing, MFS uses look-aside buffering of the MFS control blocks in order to reduce CPU usage and the channel costs of input/output activity. Online storage requirements are also reduced because MFS control blocks are reentrant and can be used for multiple applications. Optional main-storage indexing and anticipatory fetching of the control blocks can also reduce response time. IMS gains additional performance improvements because multiple I/O operations can execute concurrently in loading the format blocks from the MFS format library. In addition, MFS uses z/OS paging services to reduce page faults by the IMS control region. Finally, MFS can reduce the volume of data that travels across communication lines. Compressing and transmitting only the required data reduces line load and improves both response time and device performance. |