Abstract:
A method of synchronizing CICS data streams with a sequence of user interface contexts for use with automated time and attendance computer programs and the like systems which operate in a mainframe environment having CICS with extended attributes feature. The present invention provides a windowing type scheme allowing an operator overlay information panes and store changes made on the bit map thereby incorporating the video display of a changed bit map into an overlay pane.

Description:
FIELD OF THE INVENTION 
     The invention relates to window images for computer programs and, more particular, to the management of computer program user interface contexts and their corresponding processing control elements to present a video display composed of overlapping window images while using mainframe-hosted CICS. 
     BACKGROUND OF THE INVENTION 
     Automated time and attendance systems have become increasingly popular for collection of time sheet data for payroll processing. Improvements in the payroll processing systems permit management with the information necessary to devise more effective schedule and programs to control or reduce wages, salaries and fringe benefits. Such systems are typically incorporated into a mainframe computer having the storage and procession capability to manage large amount of data. 
     A problem with the prior art revolves around the inputing and presentation of information. Computer programs of the prior art typically employ a video display scheme that produces rectangular images through which the computer program and the user communicate. Such a rectangular image, commonly known as a window, is the video display manifestation of the program&#39;s current input/output data exchange with the user. All of the computer program&#39;s interaction with the user occurs through this kind of user interface relying on multiple, often overlapping, windows. Each window is the visual aspect of a particular user interface context. To properly handle the sequencing of user interface contexts as windows are created and destroyed the program must manage numerous processing control elements. These processing control elements define the program&#39;s processing states for active and pending user interface contexts represented by windows on the display screen. 
     The task of sequencing user interface contexts minimally requires that the processing control elements handle operations in two functional categories--the video display and user input. The video display handling is required to maintain window images which correspond to user interface contexts without incurring unsightly side effects or inconvenient delays. Likewise, the user input must be received and interpreted in correspondence with a particular user interface context. Doing this efficiently when multiple user interface contexts are layered upon one another requires complex and sophisticated processing control operations. 
     CICS, the Customer Information Communications System, is an IBM software product which allows terminal users to access mainframe programs for on-line transaction processing. Prior to its introduction in 1969, batch data processing was used for transaction processing. CICS has since become the standard facility through which on-line processing occurs for mainframes. CICS is the software interface between the mainframe data processing application program and a user&#39;s terminal, such as an IBM 3270. CICS is primarily concerned with managing the flow of data streams between the mainframe application program and the user&#39;s terminal. A crucial facet of the data stream management is formatting the data as it appears to the user on the terminal. 
     The customary manner of presenting multiple user interface contexts in a CICS computer program does not include any form of windowing. A CICS program requires clearing the display screen while making a transition from one user interface display to another. No more than one user interface context is ever visible. Also in a CICS program, the video screen arrangement and the related user input fields for a particular user interface context are defined together as an integral unit. These discrete user interface context definitions are the fundamental units upon which a windowing scheme must be devised for CICS programs. To implement in a CICS program such a windowing scheme capable of displaying the multilayered presentation of windows representing a cascade of user interface contexts requires special synchronization of the data streams between the application program and the user&#39;s terminal. The program&#39;s processing control elements provide the user interface context sequencing to perform this synchronization. Also needed are special video display design techniques to overcome the intrinsic limitations of CICS display capabilities. 
     Most of the contemporary computer user interfaces include some form of windowing. The expansive acceptance of products like Microsoft&#39;s WINDOWS (tm) and the Common User Access (CUA) user interface design standard developed by IBM attest to the need for computer program windowing capabilities. Yet CICS, itself, lacks any facility to directly provide windowing within a computer program operating on a personal computer or intelligent work station. CICS, though, is in use on a vast number of personal computers and intelligent work stations to support the on-line transaction processing needs of businesses around the world. 
     Thus what is lacking in the art is the ability to synchronize CICS data streams with a sequence of user interface contexts and the appropriate video display design techniques to accomplish windowing. 
     SUMMARY OF THE INVENTION 
     The ability to synchronize CICS data streams with a sequence of user interface contexts have found particular application with the applicant&#39;s automated time and attendance systems. In such systems, the automated time and attendance system operates in a mainframe environment requiring CICS version 1.6 or above with CICS&#39;S extended attributes feature. The system operates under VSAM, DB2 running under MVS/XA/ESA or VSE/ESA. Due to the size of the applicant&#39;s software program and associated complexities, over 200 display screens are used to accommodate a wide range of on-line interactive updating and displaying. 
     CICS manages the flow of data between an application program running on a mainframe computer and a remotely located user terminal consisting of a keyboard and a video display device with certain logic and storage facilities. When IBM 3270-type terminals are used the data flow consists of native-mode 3270 data streams. Personal computers or intelligent work stations capable of 3270 emulation are also in common use as terminals. CICS employs numerous programs to manage the 3270 data streams. Several of these programs are directly involved in the operation of the present invention. The terminal control program (TCP) is directly responsible for transmissions between the application program and CICS system running on the mainframe and the terminal devices. The storage control program (SCP) and temporary storage program (TSP) are facilities used to manage data in main storage and temporary storage, respectively. 
     The content of the 3270 data stream determines the arrangement and behavior of video display elements and the data values associated with user input. The video display elements and their corresponding data entry values are called fields. All field properties such as basic display characteristics, display location, cursor behavior, etc. are specified by the field attributes. Advanced display characteristics such as color and reverse video require extended attributes. The present invention relies on the support of extended attributes. A 3270 data stream is composed primarily of fields and field attributes. The field attributes occupy one or more bytes in the data stream immediately preceding the field to which they pertain. Thus the fields, their attributes and the field ordering determine the format and behavior of a video display screen. 
     CICS includes a programming facility for specifying the format and behavior of video display screens. This facility is Basic Mapping Services (BMS). A programmer creates and maintains BMS maps. The BMS maps are incorporated into an application program to supply the program with a user interface which is executed via CICS. A single BMS map defines a single video display screen. Hence, in the present invention a particular user interface context and its associated 3270 data stream is specified by a BMS map. 
     When the application program executes a &#34;Send Map&#34; CICS command, a 3270 data stream is transmitted to the remote terminal where the terminal&#39;s logic circuitry translates the data stream into a formatted data entry screen. The TCP records data changes resulting from user input to the data entry screen. When the application program executes a &#34;Receive Map&#34; CICS command, the data changes recorded by the TCP are formatted in accordance with the map specifications and then made available to the application program. A simple usage cycle of a single user interface context in the present invention is delineated by the sending and the receiving of a single map. 
     The present invention&#39;s windowing scheme is described in terms of base panes, overlay panes, base maps and secondary maps. For instance, if an operator chooses to view a particular listing, such as a maintenance record, the operator can &#34;explode&#34; the record by moving the cursor to the record sought to be viewed and by depressing a function key, in this instance PF6, the record over lays a portion of the existing screen. The base pane is a window protected from a base map data stream such as the previously described screen displayed record. The overlay pane may either partially or completely cover the base pane and may provide help information for the user. If the operator changes information shown on the overlay, the change is stored in a bit mat wherein the information can be incorporated into an otherwise normal overlay pane. 
     Thus, a primary objective of the invention is to synchronize CICS data streams with a sequence of user interface contexts. 
     Still another objective of the invention is to teach rules and guidelines for composing BMS maps for base panes and overly panes. 
     Another objective is to provide a means for incorporating the video display of a changed bit map into an overlay pane. 
     Other objects and advantages of this invention will become apparent from the following description taken in conjunction with the accompanying drawings wherein are set forth, by way of illustration and example, certain embodiments of this invention. The drawings constitute a part of this specification and include exemplary embodiments of the present invention and illustrate various objects and features thereof. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a pictorial representation of the windowing panes and bit maps defined by the instant invention; and 
     FIG. 2 is a pictorial example of bit map positioning. 
    
    
     DETAILED DESCRIPTION 
     Although the invention has been described in terms a specific embodiment, it will be readily apparent to those skilled in this art that various modifications, rearrangements and substitutions can be made without departing from the spirit of the invention. The scope of the invention is defined by the claims appended hereto. 
     CICS manages the flow of data between an application program running on a mainframe computer and a remotely located user terminal consisting of a keyboard and a video display device with certain logic and storage facilities. When IBM 7 3270-type terminals are used the data flow consists of native-mode 3270 data streams. Personal computers or intelligent work stations capable of 3270 emulation are also in common use as terminals. CICS employs numerous programs to manage the 3270 data streams. Several of these programs are directly involved in the operation of the present invention. The terminal control program (TCP) is directly responsible for transmissions between the application program and CICS system running on the mainframe and the terminal devices. The storage control program (SCP) and temporary storage program (TSP) are facilities used to manage data in main storage and temporary storage, respectively. 
     The content of the 3270 data streams determine the arrangement and behavior of video display elements and the data values associated with user input. The video display elements and their corresponding data entry values are called fields. All field properties such as basic display characteristics, display location, cursor behavior, etc. are specified by the field attributes. Advanced display characteristics such as color and reverse video require extended attributes. The present invention relies on the support of extended attributes. A 3270 data stream is composed primarily of fields and field attributes. The field attributes occupy one or more bytes in the data stream immediately preceding the field to which they pertain. Thus the fields, their attributes and the field ordering determine the format and behavior of a video display screen. 
     CICS includes a programming facility for specifying the format and behavior of video display screens. This facility is Basic Mapping Services (BMS). A programmer creates and maintains BMS maps. The BMS maps are incorporated into an application program to supply the program with a user interface which is executed via CICS. A single BMS map defines a single video display screen. Hence, in the present invention a particular user interface context and its associated 3270 data stream is specified by a BMS map. 
     When the application program executes a &#34;Send Map&#34; CICS command, a 3270 data stream is transmitted to the remote terminal where the terminal&#39;s logic circuitry translates the data stream into a formatted data entry screen. The TCP records data changes resulting from user input to the data entry screen. When the application program executes a &#34;Receive Map&#34; CICS command, the data changes recorded by the TCP are formatted in accordance with the map specifications and then made available to the application program. A simple usage cycle of a single user interface context in the present invention is delineated by the sending and the receiving of a single map. 
     FIG. 1 depicts a possible multilayered window configuration resulting from a &#34;nesting&#34; or cascade of user interface contexts. Note that each window on a video display resulted from a 3270 data stream, which, in turn, resulted from the run-time execution of a BMS map. 
     The present invention&#39;s windowing scheme is described in terms of base panes, overlay panes, base maps and secondary maps. Referring to FIG. 1, window A is a base pane with respect to windows B and C, while windows B and C are overlay panes with respect to window A. Similarly, window D is an overlay pane with respect to windows B and C, and windows B and C are base panes with respect to window D. The data stream which produced window A resulted from a base map. Windows B, C &amp; D all resulted from data streams produced by secondary maps. In a collection of windows, there will always be a base pane which cannot also be an overlay pane. This base pane will correspond to one or more base maps. An overlay pane will always correspond to a secondary map. 
     Continuing with FIG. 1, window B is a partial overlay pane with respect to window A because it only partially covers window A. Likewise window B is a partial overlay pane with respect to window A, window C is a partial overlay pane with respect to windows A and B and window D is a partial overlay pane with respect to windows B and C. As a complete overlay pane renders its base pane invisible, it is difficult to illustrate. But envision an instance where window B would immediately follow window A before window B in the windowing sequence of FIG. 1, i.e. a window sequence from bottom to top of A, D, B, C rather than the sequence of A, B, C, D as is shown. In such a case, window B would be a complete overlay pane with respect to window D. 
     During the process of creating and destroying overlay panes, the present invention must refer to video display information and processing control elements at various stages of the process. This is accomplished by combining the relevant field attribute values and process control variable values into bit patterns which can then be recorded for future reference. The resulting bit patterns are stored in files called bit maps. 
     The present invention further includes the capability of allowing a user to change and record the text contained within an overlay pane. This feature is particularly valuable in the instance where an overlay pane contains help information for the user. With this feature users can, when allowed, append informative help text to expand on that already present. Any overlay contents changed by a user are stored in a file that is called a changed bit map. The present invention employs a technique for incorporating the video display effects of a changed bit map into an otherwise normal overlay pane. 
     The bit map is the result of saving the base map onto a temporary storage queue. A TS-QUEUE must be defined to contain 
     the whole map image (including Orders and Attributes). Each map that will be overlaid must have a temporary storage queue defined for the map. The algorithm for saving/restoring the bit map, is a FILO (First In Last Out) method. Here the temporary storage queue is used as a Stack. This Stack then becomes the repository for maps to be saved (Pushed) or restored (Popped). An item number is assigned to the queue. This item number will be incremented monotonically for subsets of the base map. An example would be if a base map (Map-A) was to be overlaid with children maps (CMap-1) and (CMap-2); and then all maps were to be overlaid by a new Parent (Map-B), the following steps would need to be done to accomplish the creation of bit maps and the handling of these bit maps to successfully restore the screen to the original Parent: 
     1. A TS-Queue defined for Map-A (Length of largest Map) 
     2. A TS-Queue defined for Map-B 
     3. Push Map-A with item #1 to Queue-A (A Rewrite Queue with the IOAREA pointing to the actual Map I/O Group.) 
     * This creates the Bit Map of Map-A 
     4. Send CMap-1 
     5. Push CMap-1 with item #2 to Queue-A 
     6. Send CMap-2 
     7. Push CMap-2 with item #3 to Queue-A 
     8. Request for new Parent 
     a. Send Map- B 
     b. Push Map-B onto Queue-B 
     c. Process until request to Parent-A 
     Flow can now be controlled between two distinct Parents. Bit Maps have been created for each Parent and child maps (if present.) If fast pathing is to be performed between the two parents, then Popping off the TS-Queues restores the prior instance. 
     The present invention further employs techniques for rapid access of stored bit maps to eliminate unsightly video side effects resulting from slowly redrawing windows on the display screen. These techniques provide for smooth, visually attractive and convenient windowing presentations. 
     The handling of the Bit Maps is performed by utilizing the MAIN option in the WRITE TSQUEUE Command. By using MAIN (as opposed to AUXILIARY), the propensity for causing SIO&#39;s to manage the Bit Maps is virtually eliminated. IBM has greatly enhanced the Temporary Storage Management in CICS 3.n. Threaded Management allows the use of MAIN to be extremely fast and efficient. Due to the transient nature of Bit Maps, the life span is short and memory resources are managed quite nicely. By handling multiple instances of Bit Maps in MAIN Temporary Storage, we have virtually no processing overhead of rebuilding the BMS Dsects and associated I/O. The result is a smooth transition of Parent/Child Maps relative to Screen I/O processing. Popping from a TS MAIN Queue into an IOAREA for SEND MAP, eliminates any I/O Re-building; and the MAIN option eliminates the TS-Queue I/O Auxiliary Storage. Transaction Backout is not an issue. 
     As with its video display limitations, CICS makes no provisions for directly controlling the data entry cursor in multiple user interface contexts. Yet when an overlay pane intended for data entry use is created, the active cursor must shift from the base pane to the overlay pane. Since prescribed CICS usage does not consider the possibility of windowing, the present invention also includes a special technique for manipulating the data entry cursor in overlay panes. 
     When a Parent Map is overlaid with a Child, all open attributes, ie. (unprotected), must be turned off if the Child map will have cursor control with in its pane. To accomplish this control we first execute the defined Bit Map Save; then a SEND MAP (DATAONLY) is issued for the Parent or Base Map; only after all Unprotected attributes have been set to ASKIP/FSET. Once the SEND MAP (DATAONLY) has been issued, then the Child or overlay pane can be sent. Cursor movement is restricted within the child pane. This is the result of all fields being set to ASKIP/FSET. Only the unprotected attributes are available. This manages the cursor control within the active pane. If subsequent child maps are to be processed, then the same algorithm will be applied at the next level. As the application moves backward (Popping to prior instance), we apply the Bit Map Restore, (which contains the attributes preserved in their original functional state.) 
     Among the techniques employed by the present invention are those applied when the CICS application program is being designed. Some rules and guidelines must be followed when composing the BMS maps for the base pane and the overlay panes. The first of these rules establish a technique for preserving the intended appearance of an overlay pane by preventing the video display elements of its base pane from &#34;bleeding through&#34;. These rules are: 
     1. All areas of an overlay pane must be defined with the REVERSE VIDEO attribute. 
     2. All areas, including those defined with the ASKIP attribute, must be defined as an unused character areas by assigning a hexadecimal value of 40. 
     3. All ASKIP areas additionally set the FSET and DARK attributes. 
     These rules prevent the standard use of hexadecimal 00 as the fill character, as is the default operation of CICS. 
     Additional design guidelines concern the relative video display positioning of particular base map fields and any subsequent overlay panes and establish a technique vital to a CICS windowing scheme. Certain field attributes in the base map are critical to preserving the user interface context-to-3270 data stream synchronization while windowing and therefore must never be overwritten by the field attributes resulting from a secondary map used to produce an overlay pane. Hence, when composing secondary maps for overlay panes, careful window placement planning and an awareness of critical base map field locations is required for successful windowing. 
     It is imperative to follow the design restrictions and map constructs discussed. The visual presentation of Base and Overlap Maps is dependent upon the following design considerations: 
     Rule 1 
     When designing an overlap, you must consider the X, Y location relative to the Base Map. If the overlay map will not cover the complete area of the right most part of the Base Map, then the overlay map must not be positioned (X, Y) on any part of the (Orders and Attribute SBA, SF) of the Base Map. The overlay map must be right justified and cover the right most area of the intersecting panes. If the design is not done as described, the result will turn off the extended attributes of the base map. 
     Rule 2 
     All considerations from Rule 1 apply. Rule 2 deals with overlays that cross the complete pane of the base map. The only consideration is that the ending area of the overlay map intersect or go beyond the end of the base map. Combinations of child maps can be accomplished by following Rule 1 and Rule 2. 
     Rule 3 
     All non-display characters must be defined as spaces in the map with an attribute of ASKIP/FSET. This prevents the Base Map from bleeding through. Areas that are perceived to cover the Base Map with extended attributes (REVERSE VIDEO) also must be defined as character strings with spaces. FIG. 2 portrays the application of the aforementioned rules wherein the illustration of is permissible and will not destroy any base map panes. The following source code sets forth a working example of the windowing scheme. ##SPC1## 
     Thus is described the manner in which a video display of multiple, partially and/or completely overlaid window panes representing cascaded user interface contexts can be created and managed by a CICS application program relying solely on standard and widely available CICS components and features and the techniques of the present invention. 
     It is to be understood that while we have illustrated and described certain forms of my invention, it is not to be limited to the specific forms or arrangement of parts herein describe and shown. It will be apparent to those skilled in the art that various changes may be made without departing from the scope of the invention and the invention is not to be considered limited to what is shown in the drawings and described in the specification.