Abstract:
A system, method, and computer program product for collecting sets of related data with minimal redundancy, at a mainframe, and for transferring the collected data to a local workstation for processing. The mainframe remotely executes a utility application to construct an object model describing a desired structure of database elements. The object model is encoded into a single descriptive stream, such as XML, and converted to a metadata class for subsequent transfer to the local workstation. At the local workstation, the metadata class is decoded into a reconstructed object model for further processing.

Description:
FIELD OF INVENTION 
   The present invention generally relates to database management systems, and particularly to a system, method, and computer program product for collecting sets of related metadata with minimal redundancy, at a mainframe, and for transferring the collected data to a local workstation for processing. More specifically, the present invention relates to a utility application on the mainframe, which remotely executes the computing-intensive phases of the data collection process and selectively transmits the required elements to the local workstation with minimal redundancy. 
   BACKGROUND OF THE INVENTION 
   Large enterprise application solutions typically use database management systems (DBMS) such as DB2®, Informix®, Oracle®, MS SQL Server®, and others to store and retrieve data. These database management systems are found in every aspect of the society ranging from business sectors to government institutions. Because of the wide ranging applications, the schemas for these solutions are sometimes very complex, including tens of thousands of tables and indexes or more. Concomitantly, the number of objects in these database management systems generally pose significant challenges to typical database administration (DBA) operations such as backup, reorganization, statistics collection, and database space growth management. 
   Large databases are comprised of multiple sub-databases to form hierarchical database systems, allowing parallel processing and workload sharing for many of the database&#39;s functions among the sub-database systems. More importantly, the hierarchical database systems provide many other significant advantages, such as data protection and database outage prevention. 
   Typically, large databases reside on large mainframes that are also referred to as database servers. These database servers are interconnected in a communication network that serves as a data highway. Through this communication network, data information from the mainframes flows to a user who may be operating on a local workstation. 
   Workstations provide a user interface typically via monitors and input devices. To control the flow of information to the user, a central processing mainframe, or interface, is connected between the local workstation and the database server to provide program execution and data management. The central processing mainframe also acts as a host server. In an exemplary information management system (IMS) the hierarchical databases are stored on auxilliary storage (disk storage) attached directly to the mainframe system. 
   As an illustration, a user wishes to perform a transaction using an information management system (IMS) software. This software accepts the transaction input from the user across the communication network, and dispatches an application program that runs on a central processing mainframe. Generally, the application program requires access to a set of data stored in hierarchical databases. 
   IMS hierarchic databases warehouse large volumes of data, each one of which is stored in a hierarchical structure. A single record in a hierarchical database typically includes multiple related records, called segments, that are grouped together in a tree structure, similar to a directory structure. Individual records are usually indexed and secondary (alternate) indexes may also be present, providing direct access to some segments. 
   Generally, the central processing mainframe, also referred to as the IMS mainframe, controls various logical regions that manage application programs for use by the user. Upon a request from the end-user, the IMS control region schedules an application program in a dependent region. In order to schedule program execution, the control region requires two pieces of information: a program specification block (PSB) and a database description (DBD). 
   A program specification block (PSB) is a physical program module that is stored in a library, that resides on the IMS mainframe. The purpose of the PSB is to define the data view of an information management system (IMS) application program as a subset of the full set of IMS hierarchic databases residing on that mainframe. 
   A database description (DBD) defines the database tree structure of one IMS hierarchical database by encoding the information into a special library that resides on the IMS mainframe. A DBD for a particular can be accessed through this DBD library. 
   A DBD may be physical or logical. A physical DBD describes an actual physically existing hierarchic set of data on a storage facility. A logical DBD describes a virtual hierarchy of data emulated by the IMS software from one or more physical databases that are linked by cross database references (or pointers). An application&#39;s PSB may point to either physical or logical DBD&#39;s, and the application may process either, with generally similar semantics. 
   When the control region services the user request, the IMS application program interacts with the PSB that points to a logical DBD, which, in turn, points to numerous other physical DBD&#39;s according to its logical relationship defined by the pointers. In this manner, the IMS application program is sensitive to the multiple hierarchical databases. 
   Also, a physical DBD may have logical relationships with other physical DBD&#39;s. Thus, in order to process all the blocks of information provided by the PSB and the various logical and physical DBD&#39;s for a particular IMS application program, an extensive web of related blocks may need to be moved from the IMS mainframe (or database server) to the local workstation. Moreover, this web of blocks can only be determined by parsing the associations defined inside each blocks. 
   Because of the intricacy of such web of blocks of information, the task of parsing the associations or elements can be time consuming and tedious. To address this issue, there currently exist two methods for accessing the needed elements. 
   The first conventional method is to transfer all the elements stored at the IMS mainframe to the local workstation. When the transfer is complete, the related elements are traversed at the local workstation to retrieve desired data for IMS application program execution. Because of potentially large amounts of data, transferring all the elements when only a small subset of which may actually be needed is very computationally inefficient and time consuming. 
   The second conventional method is to transfer the first element from the IMS mainframe to the local workstation, the content of which is then parsed to determine the element to which the first element relates. This element is then fetched from the IMS mainframe to the local workstation. This process is then repeated until all the related elements have been fetched. 
   According to the latter method, the potentially large number of “round trips” needed to individually fetch each related element and the time to complete all the individual fetches, is time consuming. 
   Thus, there remains an unsatisfied need for a system and associated method and computer program product for accessing related data at an IMS mainframe, and for transferring them to a local workstation for further processing. Preferably, the system and method should eliminate the need for accessing and reconstructing related data on two separate computing systems, thereby achieving increased efficiency and reduced processing time. 
   SUMMARY OF THE INVENTION 
   The present invention addresses this needs and provides a system, method, and associated computer program product (also collectively referred to as “the present system”) for accessing related data on an information management system (IMS) mainframe, and for moving the accessed data to a local workstation for processing. 
   To this end, the present system provides a utility or program that runs on the IMS mainframe where the related data are stored, and to communicate with the applications or tools that run on the local workstation. 
   The utility receives a command from the user of the local workstation, containing the identity of the first element to be retrieved. The utility fetches and parses this first element on the IMS mainframe, and identifies its related elements. For each of these related elements, the utility recursively fetches and parses all the other related elements in the web of blocks as defined by the DBD, in a depth-first manner, until all the related elements have been fetched. The fetching and parsing processes take place at the local level on the IMS mainframe, and are thus implemented in a relatively short period of time, since only the related elements are fetched or parsed, to the exclusion of non-related elements. 
   While fetching and parsing each element, the utility builds an object model of the elements that encapsulates their attributes and properties, as well as their associations, as required by the application at the local workstation; 
   Upon completion of fetching and parsing processes, the object model is transformed into a single descriptive stream, such as an internet-enabled XML data stream that encodes all the object instances, associations, and attributes of the object model on the IMS mainframe. This XML data stream is transmitted to the local workstation, whereupon it is transformed back into an identical copy of the original object model on the IMS mainframe. The XML encoded object model from the IMS mainframe is preferably sent to the local workstation in a single transmission, and does not contain unnecessary elements. 
   The use of the object model approach according to the present invention allows a much more efficient processing of user commands by the IMS utility, thereby significantly reducing the processing time and the database management cost. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The various features of the present invention and the manner of attaining them will be described in greater detail with reference to the following description, claims, and drawings, wherein reference numerals are reused, where appropriate, to indicate a correspondence between the referenced items, and wherein: 
       FIG. 1  is a high level architecture of an IMS database system that utilizes the system, method, and computer program product of the present invention, for collecting and processing related data; 
       FIG. 2  illustrates a functional block diagram of the remote central processing mainframe and the databases of the IMS database system of  FIG. 1 ; 
       FIG. 3  is a functional block diagram of a preferred embodiment of a system of the present invention, for collecting sets of related data at a mainframe and transferring the collected data to a workstation for processing; and 
       FIG. 4  is a process flow chart illustrating a method used by the system of  FIG. 3 , for creating an object model according to a preferred embodiment of the present invention. 
   

   DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
   The following definitions and explanations provide background information pertaining to the technical field of the present invention, and are intended to facilitate the understanding of the present invention without limiting its scope: 
   Database: A logically organized set of data that conforms to some particular schema. 
   Database systems, also referred to as Database Management System (DBMS): Software used to manage databases. Generally provides services by which applications can access and manipulate the data in the databases under its control, and other services for the administration, security, and integrity of the databases. 
   Data Stream: A flow of data from one place to another. 
   Internet: A collection of interconnected public and private computer networks that are linked together with routers by a set of standard protocols to form a global, distributed network. 
   Markup language: A method of adding information to the text indicating the logical components of a document, or instructions for layout of the text on the page or other information which can be interpreted by some automatic system. 
   Metadata: data about data. Metadata is definitional data that provides documentation of or information about other data managed within an environment or by an application. Metadata may document data about data elements or attributes such as name, size, or data type. It may also log data about data structures including length, fields, and columns. Other data included in Metadata encompass the association, storage location, and ownership of data. Metadata may additionally include descriptive information about the context, quality and condition, and/or characteristics of data. 
   XML: eXtensible Markup Language. A standard, semi-structured language used for Web documents. During a document authoring stage, XML “tags” are embedded within the informational content of the document. These tags are not predefined and can be interpreted by different applications for different purposes, such as exchange of data, visual display. For example, when the web document (or “XML document”) is subsequently transmitted by a web server to a web browser, the tags are interpreted by the browser and used to parse and display the document. In addition to specifying how the web browser is to display the document, XML tags can be used to create hyperlinks to other web documents. 
     FIG. 1  is a high level architecture of an information management system (IMS)  100  that utilizes a system or computer program product  10  of the present invention (also shown in  FIG. 3 ), for collecting and transferring related data from a mainframe  110  to one or more local workstations that are collectively referenced by the numeral  105 , according to a preferred embodiment of the present invention. 
   System  10  includes a software programming code or computer program product that may be embodied on any of a variety of known memories or media for use with a data processing system, such as a diskette, hard drive, or CD-ROM. The code may be distributed on such media, or may be distributed to users from the memory or storage of one computer system over a network of some type to other computer systems for use by users of such other systems. The techniques and methods for embodying software programming code in memory, on physical media, and/or distributing software code via networks are well known and will not be further discussed herein. 
   The IMS  100  generally comprises the remote central processing mainframe  110  which is capable of providing remote computing as a host server, a plurality of IMS databases  115 ,  117 , and a communication network  120 . The local workstation  105  provides an interface to a user  125  by means of any suitable human interface, such as a keyboard, a pointing device, a video display terminal, and so forth. Typically, the local workstation  105  is a computer device capable of data manipulation, storage, and networking. The local workstation  105  also includes an operating system that controls various computing functions and a limited collection of software applications for specialized computing purposes that not provided by the operating system. 
   The local workstation  105  and the remote central processing mainframe  110  interchange information through the Internet or World Wide Web (WWW) via communication network  120 . It should be understood that the communication network  120  is not limited to the Internet, and it can be any available or known network. 
   The remote central processing mainframe  110  is a high-performance computing device capable of high rate of data processing. In a preferred embodiment, system  10  is deployed totally on the remote central processing mainframe  110  to enable the mainframe  110  to act as an information server. This remote server capability of the remote central processing mainframe  110  allows the user&#39;s instructions to be transmitted over the communication network  120 . 
   According to another embodiment, system  10  is deployed in part on the mainframe  110  and in part on the workstation  105 . 
   The remote central processing mainframe  110  comprises a control region  130 , and a plurality of IMS application programs  135 , such as P1 and P2s. The control region  130  maintains and manages the IMS application programs  135 . 
   In operation, the remote central processing mainframe  110  receives an instruction from the user  125  of the local workstation  105  to execute a specific IMS application program  135 . The instruction is dispatched to the control region  130  for further processing. In turn, the control region  130  identifies the information needed for executing the IMS application program  135 . 
   The IMS control region  130  accesses the IMS databases  115 ,  117  to retrieve relevant data for executing the IMS application program  135 . Each of the IMS databases  115 ,  117  is a dedicated data warehouse computing device wherein large volumes of information are stored on hard disk devices in a hierarchical manner. 
   With reference to  FIG. 2 , upon receiving an instruction from the user  125 , the mainframe  110  transfers this instruction to the control region  130  for executing the application program  135 . The control region  130  services this user request by connecting to a program specification block (PSB) library  140 , which is stored on a hard disk device on the mainframe  110 . 
   The PSB library  140  is comprised of a plurality of specialized codes referred to as program specification blocks (PSB)  145 ,  147  such as PSB 1  and PSB 2 . Each of these program specification blocks  145 ,  147  is responsible for defining the data view of the specified IMS application program. 
   The PSB  145  (PSB 1 ) and the PSB  147  (PSB 2 ) representing the specified application program  135  are connected to a plurality of logical database descriptions (DBD&#39;s)  150 ,  152 , such as “DBD A” and “DBD B”, via pointers  156 ,  157 , respectively. Each of these logical DBD&#39;s  150 ,  152  is responsible for defining hierarchical data structures across the plurality of physical databases  115 ,  117 . The logical DBD&#39;s  150 ,  152  are stored in a special library, referred to as DBD library  155 , that can reside on the remote central processing mainframe  110 . Through this DBD library  155 , logical relationships are encoded in the logical DBD&#39;s  150 ,  152 . 
   Each of the logical DBD&#39;s  150 ,  152  further points to a plurality of dependent physical DBD&#39;s  160 ,  162 ,  164 . For example, logical DBD  150  points to physical “DBD E,” “DBD F,” and “DBD G”. Each of the physical DBD&#39;s  160 ,  162 ,  164  contains encoded hierarchical structures of data stored in one of the IMS databases  115 . 
   The physical DBD&#39;s  160 ,  162 ,  164  are also stored in the DBD library  157 , that resides on the remote central processing mainframe  110 . Each physical DBD, such as “DBD E”  160 , is referred to as a main database, and may have one or more index databases  167 ,  168 ,  169  that point to it. The index databases  167 ,  168 ,  169  are referred to as primary or secondary indexes PI 1 , SI 1 , SI 2 , respectively. 
     FIG. 3  is a functional block diagram of a preferred embodiment of system  10  of the present invention, for collecting sets of related data at the mainframe  110  and transferring the collected data to the local workstation  105  for further processing. In this illustration, a utility  200  is deployed on the local workstation  105 . 
   The workstation  105  includes a graphical user interface (GUI)  195  with a variety of GUI tools such as menus, dialogs, etc., that enable the user  125  to interact with the local workstation  105  for initiating a request for an IMS action and for performing subsequent processing of the reconstructed object model,  235 . This request can further be edited and translated into a specified PSB name  235  using the workstation utility  200 . 
   Upon processing this request, the workstation utility  200  sends the PSB name  235  to a mainframe utility  210  on the remote central processing mainframe  110  via the communication network  120  ( FIG. 1 ). The mainframe utility  210  reads the data from the PSB Library  140 , the DBD library  155 , and the DBD library  157 , and performs a fetching and parsing process  300  ( FIG. 4 ) to complete the retrieval of all related elements of the data in a hierarchical data tree structure. 
   With further reference to  FIG. 4 , it illustrates a fetching and parsing process  300  implemented by the mainframe utility  215  of system  10 , to create, at step  305 , an object model  220  at the remote mainframe  110 . The object model  220  contains the retrieved related elements and their associated attributes. 
   At step  310 , the mainframe utility  215  encodes (or transforms) the object model  220  into a single descriptive stream, such as an XML stream  225 , and transmits the same to the workstation  105  at step  315 . The XML stream  225  encodes all the object instances, associations, and attributes of object model  220 . 
   At step  320 , the workstation utility  200  of system  10  decodes the XML stream  225  into a reconstructed object model  235  that is substantially similar or identical to object model  220 . At step  325 , the local workstation  105  (or the workstation utility  200 ) formats the reconstructed object model  235  into, for example a metadata class. It should be noted that this is one example of the use of the elements in the reconstructed object model. Once a related set of elements has been reconstituted to an object model on the workstation, these elements could be used for other purpose. Thus, the use of the term “metadata class” refers to a very specific, exemplary, and non-exclusive application. 
   The object model  220  provides the related elements to the local workstation  105  for further processing. The workstation  105  can include various software applications that process the object model as desired by the user. In the present illustration of the invention, the workstation  105  formats the object model  220  into a metadata class. The object model contains only the related elements of interest. When the reconstructed object model  235  is formatted into the metadata class, all unneeded data elements are eliminated and only the relevant related elements are retained. 
   According to the present invention, the computing-intensive phases of the fetching and parsing process  300  are implemented on the remote mainframe  110 . Due to the high-performance nature of the remote mainframe  110 , which is powered by potentially multiple high-speed central processing units (CPU&#39;s), the fetching and parsing processes  300  and  400  are relatively fast and highly efficient, as compared to conventional methods. 
   Moreover, because the object model  220  and the reconstructed object model  235  contain information that is needed by the workstation  105 , superfluous data are not transmitted to the local workstation  105  from the remote mainframe  110 . Such efficiency affords a much faster processing time than the conventional methods. 
   It should be understood that the features, and procedures of the elements described herein can be modified within the scope of the invention and are not intended to be the exclusive. Other modifications can be made when implementing the invention for a particular environment.