US20010014889A1 - Generic execution model for isolating applications from underlying databases - Google Patents
Generic execution model for isolating applications from underlying databases Download PDFInfo
- Publication number
- US20010014889A1 US20010014889A1 US09/070,274 US7027498A US2001014889A1 US 20010014889 A1 US20010014889 A1 US 20010014889A1 US 7027498 A US7027498 A US 7027498A US 2001014889 A1 US2001014889 A1 US 2001014889A1
- Authority
- US
- United States
- Prior art keywords
- objects
- database
- data
- business
- framework
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/956—Hierarchical
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
Definitions
- the present invention relates generally to computerized methods for accessing databases, and in particular, to a generic execution model for isolating application programs from the structure and operations of the underlying data.
- One method for allowing object-oriented application programs to access data in an IMSTM database is through transaction wrappering, implemented in such products such as IBM's VisualAgeTM IMS Connection.
- Transaction wrappering creates a class having methods that retrieve data from the IMSTM database, create an object embodying the retrieved data, and manipulate the object in an object-oriented application program.
- the problem with this approach is that each object-oriented application requires substantial additional coding, both object-oriented and non-object-oriented, before it is able to access the data in the IMSTM database.
- Another approach to accessing data in a non-relational, non-object-oriented database is to translate the non-relational database to a relational database, and use existing object-oriented programming techniques developed for relational databases to access the data therein.
- the problem with this approach is that non-relational data, such as the hierarchical data found in an IMSTM database, does not map well to a relational database.
- the present invention discloses a method, apparatus, and article of manufacture for accessing a database, wherein the database is modeled as an objects framework having zero or more business objects and one or more data objects.
- the data objects represent data in the database and the business objects represent logic for operating on the data objects.
- FIG. 1 is a block diagram illustrating an exemplary hardware environment used to implement the preferred embodiment of the present invention
- FIG. 2 is a block diagram illustrating a layered processing model used in the objects framework according to the present invention.
- FIG. 3 is a flowchart illustrating the steps performed by the application program and objects framework according to the present invention.
- the present invention introduces a new model for accessing databases, such as an IMSTM database, by modeling the database into an objects framework and providing the mechanisms that allow object-oriented application programs to access the database data using standard tools, such as the DL/ITM query language for the IMSTM database.
- the objects framework instantiates IMSTM data objects upon demand from application programs and manages those objects from creation to deletion. Further, the objects framework uses these objects to dynamically construct DL/ITM calls from application program requests.
- the objects framework can be used in a number of different environments, such as: (1) DL/ITM batch processing and (2) on-line transactions including both IMSTM and CICSTM transactions. Moreover, the objects framework can be executed in any MVS address space, including IMSTM and non-IMSTM address spaces, such as web server address spaces.
- the present invention offers improved IMSTM application programming productivity by supporting IMSTM business objects and data objects, by eliminating complicated DL/ITM programming, and by supporting use of object-oriented programming tools.
- FIG. 1 is a block diagram illustrating an exemplary hardware environment used to implement the preferred embodiment of the invention.
- a client computer 100 communicates with a server computer 102 .
- Both the client computer 100 and the server computer 102 are typically comprised of one or more processors, random access memory (RAM), read-only memory (ROM), and other components such data storage devices and data communications devices.
- RAM random access memory
- ROM read-only memory
- the client computer 100 executes one or more computer programs 104 operating under the control of an operating system. These computer programs 104 transmit requests to the server computer 102 for performing various functions and receive data from the server computer 102 in response to the requests.
- the server computer 102 also operates under the control of an operating system, and executes one or more computer programs 106 , 108 , and 110 . These computer programs 106 , 108 , and 110 receive requests from the client computer 100 for performing various functions and transmit data to the client computers 100 in response to the requests.
- the server computer 102 manages one or more databases 112 stored on one or more data storage devices (such as a fixed or hard disk drive, a floppy disk drive, a CD-ROM drive, a tape drive, or other device).
- the database 112 is managed by the IMSTM database management system (DBMS) offered by IBM Corporation.
- DBMS database management system
- the present invention is generally implemented using five major components executed by client computers 100 and server computers 102 , including a client program 104 , object-oriented application program 106 , objects framework 108 , database management system DBMS) 110 and database 112 , wherein each of these components comprise instructions and/or data.
- client program 104 provides a user interface
- object-oriented application program 106 performs application functions
- the objects framework 108 materializes data retrieved from the database 112 as objects
- the database management system 110 controls access to the database 112 .
- these instructions and/or data 104 - 112 are all tangibly embodied in or retrievable from a computer-readable device, medium, or carrier, e.g., a data storage device, a data communications device, etc.
- these instructions and/or data when read, executed, and/or interpreted by the client computer 100 and/or server computer 102 , causes the client computer 100 and/or server computer 102 to perform the steps necessary to implement and/or use the present invention.
- the present invention may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof.
- article of manufacture (or alternatively, “computer program product”) as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media.
- FIG. 2 is a block diagram illustrating a layered processing model provided by the objects framework 108 according to the present invention.
- the layered processing model corresponds to the application views, database definitions, and data defined and stored in an IMSTM database management system.
- the objects framework 108 comprises a C++ class library that interfaces to the application program 106 .
- the application program 106 dynamically loads previously-defined objects into the objects framework 108 to access the database 112 during execution time.
- the objects loaded into the objects framework 108 include a DL/ITM object 200 , one or more applView objects 202 , one or more dbdView objects 204 , one or more business objects (BOs) 206 , one or more data objects (DOs) 208 , and an iterator object 210 .
- the application program 106 first loads the objects framework 108 class library by instantiating the DL/ITTM object 200 , one applView object 202 , and one dbdView object 204 .
- the objects framework 108 then dynamically loads in the BO 206 and DO 208 class library requested by the application program 106 to create an iterator object 210 , which then instantiates the BOs 206 and their corresponding DOs 208 during execution.
- All the class objects, except the iterator class 210 are organized into a tree structure to represent the hierarchical structure of data retrieved from the database 112 .
- the tree structure ensures that there is exactly one path through the hierarchy to each object and consequently exactly one identity, i.e., segment occurrence, for an object.
- Each of the objects encapsulates a logical unit of data retrieved from the database 112 and includes member functions for manipulating the encapsulated data.
- the structure and member functions of these various objects are described in more detail below.
- the database 112 is an IMSTM database 112 , which is an “application views database”.
- the DL/ITM object 200 is the root of the objects framework 108 , and thus is a root for a collection of application views (applView objects 202 ) in the IMSTM database 112 .
- the objects framework 108 provides for multiple application views of the database 112 in a layered processing model.
- Each applView object 202 represents an “application (appl) view” of the IMSTM database 112 .
- Each applView object 202 contains and manages a collection of dbdView objects 204 .
- Each dbdView object 204 represents a “database description (dbd) view” associated with a given “application view” of the IMSTM database 112 .
- Each dbdView object 204 includes information about the structure of the segments in the IMSTM database 112 and the record layouts, including formatting information for the records in the database 112 .
- the dbdView objects 204 also define the hierarchy to help locate segments for the database 112 .
- each dbdView object 204 contains and manages a collection of data objects (DOs) 206 and business objects (BOs) 208 .
- DOs data objects
- BOs business objects
- the IMSTM database 112 is comprised of a collection of segment types, and each segment type contains a collection of segment occurrences.
- a DO 208 class represents each segment type and each segment occurrence is represented by an instance of the class, i.e., a DO 208 .
- the DOs 208 provide a direct mapping of the data within each segment occurrence.
- the object-oriented application program 106 can directly access the data of the segment occurrence by interacting with the DO 208 via the objects framework 108 to perform the necessary operations on the database 112 .
- a BO 206 may be instantiated with a DO 208 to provide business logic for the application program 106 .
- the application program 106 accesses the business logic via the BO 206 , which in turns invokes the methods of its corresponding DO 208 to perform the necessary operations on the database 112 , to manage its essential state data.
- the DO 208 isolates the BO 206 from the specifics of the database 112 .
- customers can easily separate business logic from the physical data access logic to accommodate more diversified business needs.
- the objects framework 108 can be easily extended to other non-hierarchical databases, e.g. DB2TM.
- the application program 106 uses a DL/ITM query string to access the IMSTM database 112 .
- the application program 106 first instantiates a desired applView object 202 . If the associated DL/ITM object 200 has not been instantiated yet, this also results in its instantiation as the root of the objects framework 108 and the root for the collection of application views (applView objects 202 ) in the IMSTM database 112 .
- the application program 106 then provides the DL/ITM query string to an “evaluate” method of the applView object 202 .
- the applView object 202 builds a DL/ITM segment search argument list based on the values within the DL/ITM query string.
- the application program 106 then creates the iterator object 210 that is used to point to an incrementally-materialized collection of BOs 206 and DOs 208 that meet the search criteria specified in the DL/ITM query string.
- the “evaluate” method of the applView object 202 reads the DL/ITM query string and sets a pointer in the iterator object 210 to point to the collection of BOs 206 and DOs 208 that meet the DL/ITM segment search criteria.
- a “next” method of the iterator object 210 is invoked to instantiate each BO 206 and/or DO 208 from the database 112 , wherein the resulting state data of the BO 206 and DO 208 are cached in the memory of the server computer 104 .
- the application program 106 can iterate through a collection of BOs 206 and/or DOs 208 to materialize one BO 206 and/or DO 208 after the other in the memory of the server computer 102 .
- Each BO 206 and DO 208 class contains both “get” and “set” methods associated for each class attribute.
- the application program 106 can then retrieve or update the attributes of a DO 208 by invoking these methods.
- no I/O operations are performed at the invocation of these “get” and “set” methods, and all state data is changed in memory only until a commit occurs.
- the BOs 206 are used by the application program 106 to perform needed business logic on the associated DOs 208 .
- the application program 106 can perform DL/ITM operations (e.g., retrieve, update, delete and insert) using methods of the BOs 206 .
- the BO 206 will, in turn, invoke methods of its corresponding DO 208 to perform the actual DL/ITM calls.
- the following methods exemplify the BO 206 methods that allow the application program 106 to retrieve a DO 208 from the database 112 , to update state data for the DO 208 in the database 112 , to add a new instance of the DO 208 to the database 112 , or to delete a DO 208 from the database 112 :
- FIG. 3 is a flowchart illustrating the steps performed by the application program 106 and objects framework 108 according to the present invention.
- Block 300 represents the DL/ITM object 200 of the objects framework 108 being instantiated in the memory of the server computer 102 . Usually, this occurs either when the objects framework 108 is loaded or when the application program 106 first requests an applView object 202 .
- Block 302 represents the application program 106 instantiating the requested applView object 202 in the memory of the server computer 102 .
- Block 304 represents the dbdView objects 204 of the objects framework 108 being instantiated in the memory of the server computer 102 . Usually, this occurs either when the objects framework 108 is loaded or when the application program 106 first requests an applView object 202 .
- Block 306 represents the application program 106 instantiating the iterator object 210 in the memory of the server computer 102 and setting its object pointer by invoking the “evaluate” method with a DL/ITM query string.
- Blocks 308 - 316 represent a loop that may be performed by the application program 108 to iterate through all the associated BOs 206 and/or DOs 208 in the collection.
- Block 310 represents the application program 106 invoking the “next” member function or method of the iterator object 210 to instantiate/materialize the next DO 208 and/or BO 206 in the memory of the server computer 102 .
- Block 312 represents the iterator object 210 instantiating the requested DO 208 and/or BO 206 in the memory of the server computer 102 .
- Block 314 represents the application program 106 invoking the “getter”, “setter”, or other methods of the DOs 208 and/or BOs 206 to perform the desired functionality. Thereafter, control transfers back to Block 308 .
- Block 316 represents the end of the logic.
- the present invention discloses a method, apparatus, and article of manufacture for accessing a database, wherein the database is modeled as an objects framework.
- the database is modeled as an objects framework having zero or more business objects and one or more data objects.
- the data objects represent data in the database and the business objects represent logic for operating on the data objects.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- 1. Field of the Invention
- The present invention relates generally to computerized methods for accessing databases, and in particular, to a generic execution model for isolating application programs from the structure and operations of the underlying data.
- 2. Description of Related Art
- It is well known in the art to use database management systems, such as IBM's IMS™ (Information Management System) database management system, to manage computerized databases. Indeed, IMS™ has been used for decades and remains in use today. Currently, there is a need to access such “legacy” databases using application programs developed by object-oriented programming systems (OOPS). However, there are few tools available to assist OOPS developers.
- One method for allowing object-oriented application programs to access data in an IMS™ database is through transaction wrappering, implemented in such products such as IBM's VisualAge™ IMS Connection. Transaction wrappering creates a class having methods that retrieve data from the IMS™ database, create an object embodying the retrieved data, and manipulate the object in an object-oriented application program. The problem with this approach is that each object-oriented application requires substantial additional coding, both object-oriented and non-object-oriented, before it is able to access the data in the IMS™ database.
- Another approach to accessing data in a non-relational, non-object-oriented database is to translate the non-relational database to a relational database, and use existing object-oriented programming techniques developed for relational databases to access the data therein. The problem with this approach is that non-relational data, such as the hierarchical data found in an IMS™ database, does not map well to a relational database.
- Thus, there is a need in the art for improved techniques for accessing hierarchical data using object-oriented frameworks.
- To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method, apparatus, and article of manufacture for accessing a database, wherein the database is modeled as an objects framework having zero or more business objects and one or more data objects. The data objects represent data in the database and the business objects represent logic for operating on the data objects.
- Various advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to accompanying descriptive matter, in which there is illustrated and described specific examples of an apparatus in accordance with the invention.
- Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
- FIG. 1 is a block diagram illustrating an exemplary hardware environment used to implement the preferred embodiment of the present invention;
- FIG. 2 is a block diagram illustrating a layered processing model used in the objects framework according to the present invention; and
- FIG. 3 is a flowchart illustrating the steps performed by the application program and objects framework according to the present invention.
- In the following description of the preferred embodiment, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration a specific embodiment in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.
- Overview
- The present invention introduces a new model for accessing databases, such as an IMS™ database, by modeling the database into an objects framework and providing the mechanisms that allow object-oriented application programs to access the database data using standard tools, such as the DL/I™ query language for the IMS™ database. The objects framework instantiates IMS™ data objects upon demand from application programs and manages those objects from creation to deletion. Further, the objects framework uses these objects to dynamically construct DL/I™ calls from application program requests.
- The objects framework can be used in a number of different environments, such as: (1) DL/I™ batch processing and (2) on-line transactions including both IMS™ and CICS™ transactions. Moreover, the objects framework can be executed in any MVS address space, including IMS™ and non-IMS™ address spaces, such as web server address spaces.
- Thus, the present invention offers improved IMS™ application programming productivity by supporting IMS™ business objects and data objects, by eliminating complicated DL/I™ programming, and by supporting use of object-oriented programming tools.
- Hardware Environment
- FIG. 1 is a block diagram illustrating an exemplary hardware environment used to implement the preferred embodiment of the invention. A
client computer 100 communicates with aserver computer 102. Both theclient computer 100 and theserver computer 102 are typically comprised of one or more processors, random access memory (RAM), read-only memory (ROM), and other components such data storage devices and data communications devices. - The
client computer 100 executes one ormore computer programs 104 operating under the control of an operating system. Thesecomputer programs 104 transmit requests to theserver computer 102 for performing various functions and receive data from theserver computer 102 in response to the requests. - The
server computer 102 also operates under the control of an operating system, and executes one ormore computer programs computer programs client computer 100 for performing various functions and transmit data to theclient computers 100 in response to the requests. - The
server computer 102 manages one ormore databases 112 stored on one or more data storage devices (such as a fixed or hard disk drive, a floppy disk drive, a CD-ROM drive, a tape drive, or other device). In a preferred embodiment, thedatabase 112 is managed by the IMS™ database management system (DBMS) offered by IBM Corporation. Those skilled in the art will recognize, however, that the present invention may be applied to any database and associated database management system. - The present invention is generally implemented using five major components executed by
client computers 100 andserver computers 102, including aclient program 104, object-oriented application program 106,objects framework 108, database management system DBMS) 110 anddatabase 112, wherein each of these components comprise instructions and/or data. Theclient program 104 provides a user interface, the object-oriented application program 106 performs application functions, theobjects framework 108 materializes data retrieved from thedatabase 112 as objects, and thedatabase management system 110 controls access to thedatabase 112. - Generally, these instructions and/or data104-112 are all tangibly embodied in or retrievable from a computer-readable device, medium, or carrier, e.g., a data storage device, a data communications device, etc. Moreover, these instructions and/or data, when read, executed, and/or interpreted by the
client computer 100 and/orserver computer 102, causes theclient computer 100 and/orserver computer 102 to perform the steps necessary to implement and/or use the present invention. - Thus, the present invention may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” (or alternatively, “computer program product”) as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope of the present invention.
- Those skilled in the art will recognize that any combination of the above components, or any number of different components, including computer programs, peripherals, and other devices, may be used to implement the present invention, so long as similar functions are performed thereby.
- Objects Framework Model
- FIG. 2 is a block diagram illustrating a layered processing model provided by the
objects framework 108 according to the present invention. The layered processing model corresponds to the application views, database definitions, and data defined and stored in an IMS™ database management system. - The
objects framework 108 comprises a C++ class library that interfaces to theapplication program 106. Theapplication program 106 dynamically loads previously-defined objects into theobjects framework 108 to access thedatabase 112 during execution time. The objects loaded into theobjects framework 108 include a DL/I™ object 200, one or more applViewobjects 202, one or moredbdView objects 204, one or more business objects (BOs) 206, one or more data objects (DOs) 208, and aniterator object 210. - The
application program 106 first loads theobjects framework 108 class library by instantiating the DL/IT™ object 200, oneapplView object 202, and onedbdView object 204. Theobjects framework 108 then dynamically loads in the BO 206 and DO 208 class library requested by theapplication program 106 to create aniterator object 210, which then instantiates theBOs 206 and theircorresponding DOs 208 during execution. - All the class objects, except the
iterator class 210, are organized into a tree structure to represent the hierarchical structure of data retrieved from thedatabase 112. In the preferred embodiment, the tree structure ensures that there is exactly one path through the hierarchy to each object and consequently exactly one identity, i.e., segment occurrence, for an object. - Each of the objects encapsulates a logical unit of data retrieved from the
database 112 and includes member functions for manipulating the encapsulated data. The structure and member functions of these various objects are described in more detail below. - DL/I Object
- In the preferred embodiment, the
database 112 is anIMS™ database 112, which is an “application views database”. The DL/I™ object 200 is the root of theobjects framework 108, and thus is a root for a collection of application views (applView objects 202) in theIMS™ database 112. Thus, theobjects framework 108 provides for multiple application views of thedatabase 112 in a layered processing model. - applView Object
- Each applView object202 represents an “application (appl) view” of the
IMS™ database 112. Each applView object 202 contains and manages a collection of dbdView objects 204. - dbdView Object
- Each dbdView object204 represents a “database description (dbd) view” associated with a given “application view” of the
IMS™ database 112. EachdbdView object 204 includes information about the structure of the segments in theIMS™ database 112 and the record layouts, including formatting information for the records in thedatabase 112. The dbdView objects 204 also define the hierarchy to help locate segments for thedatabase 112. In theobjects framework 108, eachdbdView object 204 contains and manages a collection of data objects (DOs) 206 and business objects (BOs) 208. - Business Objects and Data Objects
- The
IMS™ database 112 is comprised of a collection of segment types, and each segment type contains a collection of segment occurrences. ADO 208 class represents each segment type and each segment occurrence is represented by an instance of the class, i.e., aDO 208. Thus, theDOs 208 provide a direct mapping of the data within each segment occurrence. Moreover, the object-orientedapplication program 106 can directly access the data of the segment occurrence by interacting with theDO 208 via theobjects framework 108 to perform the necessary operations on thedatabase 112. - In addition, a
BO 206 may be instantiated with aDO 208 to provide business logic for theapplication program 106. In such an embodiment, theapplication program 106 accesses the business logic via theBO 206, which in turns invokes the methods of itscorresponding DO 208 to perform the necessary operations on thedatabase 112, to manage its essential state data. Thus, theDO 208 isolates theBO 206 from the specifics of thedatabase 112. With the BO/DO model, customers can easily separate business logic from the physical data access logic to accommodate more diversified business needs. Furthermore, because of the nature of the separation ofBO 206 and DO 208, theobjects framework 108 can be easily extended to other non-hierarchical databases, e.g. DB2™. - Iterator Object
- In the
objects framework 108, theapplication program 106 uses a DL/I™ query string to access theIMS™ database 112. Theapplication program 106 first instantiates a desiredapplView object 202. If the associated DL/I™ object 200 has not been instantiated yet, this also results in its instantiation as the root of theobjects framework 108 and the root for the collection of application views (applView objects 202) in theIMS™ database 112. Theapplication program 106 then provides the DL/I™ query string to an “evaluate” method of theapplView object 202. TheapplView object 202 builds a DL/I™ segment search argument list based on the values within the DL/I™ query string. - The
application program 106 then creates theiterator object 210 that is used to point to an incrementally-materialized collection ofBOs 206 andDOs 208 that meet the search criteria specified in the DL/I™ query string. The “evaluate” method of theapplView object 202 reads the DL/I™ query string and sets a pointer in theiterator object 210 to point to the collection ofBOs 206 andDOs 208 that meet the DL/I™ segment search criteria. - A “next” method of the
iterator object 210 is invoked to instantiate eachBO 206 and/or DO 208 from thedatabase 112, wherein the resulting state data of theBO 206 and DO 208 are cached in the memory of theserver computer 104. Using the pointer and “next” method of theiterator object 202, theapplication program 106 can iterate through a collection ofBOs 206 and/orDOs 208 to materialize oneBO 206 and/or DO 208 after the other in the memory of theserver computer 102. - Each
BO 206 and DO 208 class contains both “get” and “set” methods associated for each class attribute. Theapplication program 106 can then retrieve or update the attributes of aDO 208 by invoking these methods. Preferably, no I/O operations are performed at the invocation of these “get” and “set” methods, and all state data is changed in memory only until a commit occurs. - As described above, the
BOs 206 are used by theapplication program 106 to perform needed business logic on the associatedDOs 208. In addition, theapplication program 106 can perform DL/I™ operations (e.g., retrieve, update, delete and insert) using methods of theBOs 206. TheBO 206 will, in turn, invoke methods of itscorresponding DO 208 to perform the actual DL/I™ calls. - The following methods exemplify the
BO 206 methods that allow theapplication program 106 to retrieve aDO 208 from thedatabase 112, to update state data for theDO 208 in thedatabase 112, to add a new instance of theDO 208 to thedatabase 112, or to delete aDO 208 from the database 112: - RetrieveFromDS ( )
- UpdateToDS( )
- InsertToDS( )
- DeleteFromDS ( )
- In a preferred embodiment, only the above four methods will result in actual I/O operations on the
database 112. - Example Application Program
- Following is a sample object-oriented
application program 106 according to the present invention:// application program main( ) { // instantiate desired applView object (and DL/I object if necessary) applView_SSM applView(“applViewName”); // instantiate iterator object and set pointer using applView object's // “evaluate” method and query string iterator* ltr=applView.evaluate(queryString); // use “next” method to instantiate a BO and its associated DO BO*pObj=ltr->next( ); // use indicated methods to retrieve, update, or // delete BOs and DOs pObj->RetrieveFromDS( ); pObj->UpdateToDS( ); pObj->DeleteFromDS( ); // use “newObject” method to instantiate new DO DO*pObj=ltr->newObject( ); // use indicated method to insert new DO pObj->InsertToDS( ); } - Following is a example DL/I™ query string that could be used by the object-oriented
application program 106 that accesses the database 112:SELECT doClassNameC FROM database ViewName WHERE doClassNameA.keyname relop keyvalue, doClassNameB.keyname relop keyvalue, doClassNameC.keyname relop keyvalue - where “relop” is a relational operator, such as:
- EQ or = or=
- GT or > or >
- LT or < or <
- GE or >=or=>
- LE or <=or=<
- NE or ! or=!
- AND or & or *
- OR or | or+
- Logic of the Objects Framework
- FIG. 3 is a flowchart illustrating the steps performed by the
application program 106 andobjects framework 108 according to the present invention. -
Block 300 represents the DL/I™ object 200 of theobjects framework 108 being instantiated in the memory of theserver computer 102. Usually, this occurs either when theobjects framework 108 is loaded or when theapplication program 106 first requests anapplView object 202. -
Block 302 represents theapplication program 106 instantiating the requestedapplView object 202 in the memory of theserver computer 102. -
Block 304 represents the dbdView objects 204 of theobjects framework 108 being instantiated in the memory of theserver computer 102. Usually, this occurs either when theobjects framework 108 is loaded or when theapplication program 106 first requests anapplView object 202. -
Block 306 represents theapplication program 106 instantiating theiterator object 210 in the memory of theserver computer 102 and setting its object pointer by invoking the “evaluate” method with a DL/I™ query string. - Blocks308-316 represent a loop that may be performed by the
application program 108 to iterate through all the associatedBOs 206 and/orDOs 208 in the collection. -
Block 310 represents theapplication program 106 invoking the “next” member function or method of theiterator object 210 to instantiate/materialize thenext DO 208 and/orBO 206 in the memory of theserver computer 102. -
Block 312 represents theiterator object 210 instantiating the requestedDO 208 and/orBO 206 in the memory of theserver computer 102. -
Block 314 represents theapplication program 106 invoking the “getter”, “setter”, or other methods of theDOs 208 and/orBOs 206 to perform the desired functionality. Thereafter, control transfers back toBlock 308. -
Block 316 represents the end of the logic. - Conclusion
- This concludes the description of the preferred embodiment of the invention. The following paragraphs describe some alternative methods of accomplishing the same objects.
- In alternative embodiments of the present invention, other types and configurations of computers could be used. For example, the invention need not be restricted to client-server configurations. In addition, mainframes, minicomputers, or personal computers, could be used with the present invention.
- In alternative embodiments of the present invention, other types and configurations of computer programs could be used. For example, the invention need not be restricted to client-server configurations.
- In alternative embodiments of the present invention, other database management systems could be used. For example, the invention need not be restricted to IMS™ database management systems. Instead, the present invention could be used to model other types of databases or datastores.
- In summary, the present invention discloses a method, apparatus, and article of manufacture for accessing a database, wherein the database is modeled as an objects framework. The database is modeled as an objects framework having zero or more business objects and one or more data objects. The data objects represent data in the database and the business objects represent logic for operating on the data objects.
- The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.
Claims (17)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/070,274 US6360229B2 (en) | 1998-04-30 | 1998-04-30 | Generic execution model for isolating applications from underlying databases |
US09/540,336 US6539398B1 (en) | 1998-04-30 | 2000-03-31 | Object-oriented programming model for accessing both relational and hierarchical databases from an objects framework |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/070,274 US6360229B2 (en) | 1998-04-30 | 1998-04-30 | Generic execution model for isolating applications from underlying databases |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/070,273 Continuation-In-Part US6128611A (en) | 1998-04-30 | 1998-04-30 | Internet-enabled generic application program for accessing hierarchical data |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/070,528 Continuation-In-Part US6529914B1 (en) | 1998-04-30 | 1998-04-30 | Object-oriented programming model for accessing hierarchical databases |
Publications (2)
Publication Number | Publication Date |
---|---|
US20010014889A1 true US20010014889A1 (en) | 2001-08-16 |
US6360229B2 US6360229B2 (en) | 2002-03-19 |
Family
ID=22094281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/070,274 Expired - Lifetime US6360229B2 (en) | 1998-04-30 | 1998-04-30 | Generic execution model for isolating applications from underlying databases |
Country Status (1)
Country | Link |
---|---|
US (1) | US6360229B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004040420A2 (en) * | 2002-10-29 | 2004-05-13 | Marathon Ashland Petroluem L.L.C. | Generic framework for applying object-oriented models to multi-tiered enterprise applications |
US20110307520A1 (en) * | 2010-06-11 | 2011-12-15 | Microsoft Corporation | Reflection over objects |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539398B1 (en) * | 1998-04-30 | 2003-03-25 | International Business Machines Corporation | Object-oriented programming model for accessing both relational and hierarchical databases from an objects framework |
US6779184B1 (en) * | 1999-01-21 | 2004-08-17 | Oracle International Corporation | Method for loosely coupling object oriented and non-object oriented applications in a messaging-based communication infrastructure |
US6594672B1 (en) * | 2000-06-01 | 2003-07-15 | Hyperion Solutions Corporation | Generating multidimensional output using meta-models and meta-outlines |
US7366732B2 (en) * | 2001-02-16 | 2008-04-29 | Creeth Richard F | Fully capable minimally inflatable object model system for multidimensional applications |
US20050060707A1 (en) * | 2003-09-17 | 2005-03-17 | Tunney William Patrick | Method for iterating through elements of a collection |
US7899756B2 (en) * | 2004-12-01 | 2011-03-01 | Xerox Corporation | Critical parameter/requirements management process and environment |
US8099716B2 (en) * | 2005-11-28 | 2012-01-17 | Ubiquity Software Corporation Limited | Service structured application development architecture |
US20100153432A1 (en) * | 2008-12-11 | 2010-06-17 | Sap Ag | Object based modeling for software application query generation |
US9218405B2 (en) | 2012-10-10 | 2015-12-22 | Apple Inc. | Batch processing and data synchronization in cloud-based systems |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5206951A (en) | 1987-08-21 | 1993-04-27 | Wang Laboratories, Inc. | Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types |
US5161225A (en) | 1989-10-23 | 1992-11-03 | International Business Machines Corporation | Persistent stream for processing time consuming and reusable queries in an object oriented database management system |
US5297279A (en) | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
US5379419A (en) | 1990-12-07 | 1995-01-03 | Digital Equipment Corporation | Methods and apparatus for accesssing non-relational data files using relational queries |
US5295256A (en) | 1990-12-14 | 1994-03-15 | Racal-Datacom, Inc. | Automatic storage of persistent objects in a relational schema |
US5291583A (en) | 1990-12-14 | 1994-03-01 | Racal-Datacom, Inc. | Automatic storage of persistent ASN.1 objects in a relational schema |
US5212787A (en) | 1991-03-12 | 1993-05-18 | International Business Machines Corporation | Method and apparatus for accessing a relational database without exiting an object-oriented environment |
US5426747A (en) | 1991-03-22 | 1995-06-20 | Object Design, Inc. | Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system |
US5414812A (en) | 1992-03-27 | 1995-05-09 | International Business Machines Corporation | System for using object-oriented hierarchical representation to implement a configuration database for a layered computer network communications subsystem |
US5459860A (en) | 1992-10-05 | 1995-10-17 | International Business Machines Corporation | Computerized system and process for managing a distributed database system |
US5535389A (en) * | 1993-01-26 | 1996-07-09 | International Business Machines Corporation | Business process objects with associated attributes such as version identifier |
WO1995003586A1 (en) | 1993-07-21 | 1995-02-02 | Persistence Software, Inc. | Method and apparatus for generation of code for mapping relational data to objects |
US5542078A (en) | 1994-09-29 | 1996-07-30 | Ontos, Inc. | Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities |
US5734887A (en) * | 1995-09-29 | 1998-03-31 | International Business Machines Corporation | Method and apparatus for logical data access to a physical relational database |
US6018743A (en) * | 1996-10-04 | 2000-01-25 | International Business Machines Corporation | Framework for object-oriented interface to record file data |
US6104874A (en) * | 1996-10-15 | 2000-08-15 | International Business Machines Corporation | Object oriented framework mechanism for order processing including pre-defined extensible classes for defining an order processing environment |
US5987423A (en) * | 1997-03-28 | 1999-11-16 | International Business Machines Corporation | Object oriented technology framework for order processing |
US6014637A (en) * | 1997-04-30 | 2000-01-11 | International Business Machines Corporation | Object oriented framework mechanism for fulfillment requirements management |
US6016495A (en) * | 1997-09-19 | 2000-01-18 | International Business Machines Corporation | Object-oriented framework mechanism for providing persistent storage |
-
1998
- 1998-04-30 US US09/070,274 patent/US6360229B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004040420A2 (en) * | 2002-10-29 | 2004-05-13 | Marathon Ashland Petroluem L.L.C. | Generic framework for applying object-oriented models to multi-tiered enterprise applications |
WO2004040420A3 (en) * | 2002-10-29 | 2004-08-12 | Marathon Ashland Petroluem L L | Generic framework for applying object-oriented models to multi-tiered enterprise applications |
US20110307520A1 (en) * | 2010-06-11 | 2011-12-15 | Microsoft Corporation | Reflection over objects |
US8250533B2 (en) * | 2010-06-11 | 2012-08-21 | Microsoft Corporation | Reflection over objects |
Also Published As
Publication number | Publication date |
---|---|
US6360229B2 (en) | 2002-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6539398B1 (en) | Object-oriented programming model for accessing both relational and hierarchical databases from an objects framework | |
US6128611A (en) | Internet-enabled generic application program for accessing hierarchical data | |
US5799313A (en) | Framework for object-oriented access to non-object-oriented datastores | |
US6928431B2 (en) | Dynamic end user specific customization of an application's physical data layer through a data repository abstraction layer | |
US6279008B1 (en) | Integrated graphical user interface method and apparatus for mapping between objects and databases | |
US6141660A (en) | Command line interface for creating business objects for accessing a hierarchical database | |
US5991765A (en) | System and method for storing and manipulating data in an information handling system | |
US6128619A (en) | Generating an internet application for accessing a hierarchical database | |
US6430571B1 (en) | Multi-frame output form that facilitates internet search and update in a hierarchical database | |
US5504886A (en) | System and method for applying user supplied relation definitions to application files for a relational database | |
US6529914B1 (en) | Object-oriented programming model for accessing hierarchical databases | |
US5809509A (en) | Method for using a non-object-oriented datastore as a generic persistent datastore for persistent objects | |
US6223184B1 (en) | Method for cataloging datastore characteristics and defining and generating datastore persistent objects | |
US6185572B1 (en) | Method for representing data from non-relational, non-object-oriented datastores as queryable datastore persistent objects | |
JP2001527243A (en) | Method and apparatus for generating an index in a relational database corresponding to a class in an object-oriented application | |
US7366741B2 (en) | Method and apparatus for redefining a group of related objects in a relational database system | |
US6421661B1 (en) | Hierarchical query syntax for inquiring and selecting among database objects | |
US6360229B2 (en) | Generic execution model for isolating applications from underlying databases | |
US5765162A (en) | Method for managing queryable datastore persistent objects and queryable datastore collections in an object-oriented environment | |
US6192369B1 (en) | Object-oriented paradigm for accessing transactional requests by modeling I/O message queues into an object framework | |
US6202069B1 (en) | Execution paradigm for accessing hierarchical data using an object framework | |
US5781907A (en) | Method for the incremental presentation of non-object-oriented datastores using an object-oriented queryable datastore collection | |
US5761671A (en) | Method for interfacing queryable datestore persistent objects to non-relational, non-object-oriented datastores | |
US5765161A (en) | Method for encapsulating data from non-object-oriented datastores as datastore persistent objects | |
US5794248A (en) | Method for representing non-object-oriented datastores using a collection of collections data model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BLACKMAN, KENNETH RAY;HO, SHYH-MEI FANG HO;SANDER, THOMAS BEAVERS;REEL/FRAME:009319/0294 Effective date: 19980709 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 8 |
|
REMI | Maintenance fee reminder mailed | ||
AS | Assignment |
Owner name: TWITTER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:032075/0404 Effective date: 20131230 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
SULP | Surcharge for late payment |
Year of fee payment: 11 |