Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
2000-01-20
2003-01-07
Corrielus, Jean M. (Department: 2172)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C707S793000, C707S793000
Reexamination Certificate
active
06505211
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to the implementation of Java™ classes, and in particular, to a method for providing for persistence of Java™ classes where the persistence semantics of the Java™ classes may be orthogonal to the class definition.
2. Description of Related Art
It is well known in the art to use object-oriented programming techniques with relational database management systems, such as IBM's Database 2 (DB2™) Universal Database (UDB™) relational database management system. Currently, there is a need to store objects in such a database, in order to provide persistence of the objects.
However, existing approaches for persistence of objects of a Java™ class have required one of the following:
1. The Java™ class implements the Serializable or Externalizable interfaces defined as part of the Java™ language specification.
2. The Java™ class implements the SQLData interface defined as part of the Java™ Database Connectivity (JDBC) 2.0 Extensions, which is one of the standard Application Programming Interfaces (API) of the Java™ Language Specification.
3. A special non-standard virtual machine execution environment which implements more than the standard Java™ virtual machine (JVM) specification, which would be a model for “true orthogonal persistence”, where objects that are still “live” automatically survive without any code that explicitly instructs them to do so.
Using one of approaches (1) and (2) mentioned above is feasible when the user of the Java™ class is also its author. In the real world, however, programmers often reuse general-purpose Java™ classes that are distributed by third parties, and have neither the authority to modify such classes, nor the source code of the classes themselves. Even if the user can modify the Java™ class, it is desirable to have persistence as a property that is independent of the class definition and usage, i.e., as an orthogonal property.
The “almost ideal” situation of approach (3) above is infeasible because it requires a special non-standard execution environment that describes something more than the Java™ language itself.
The problem of persistent programming languages has been a topic for research in the programming language community for the last 15 years. There have been various approaches proposed over the years, but they can all be placed in one of two categories:
1. The persistence semantics are tied into the definition of the programming language type, i.e., by implementing special interfaces or by inheriting such semantics from special superclasses. In the Java™ case, this corresponds to approaches (1) and (2) mentioned above with regard to existing approaches. However, this does not provide the semantics of orthogonal persistence.
2. The underlying programming language is changed by building the semantics into the execution environment for interpretive languages or by training the compiler for compiled languages. In either situation, the result is semantics that will work only in very restricted cases. For the Java™ language, this corresponds to approach (3) mentioned above with regard to existing approaches. With Java™, it is absolutely necessary for the code to run in any standard Java™ environment, and so this is infeasible.
Thus, there is a need in the art for new approaches for providing persistence for Java™ objects.
SUMMARY OF THE INVENTION
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 providing for persistence of Java™ objects. A Java™ object is instantiated from its corresponding Java™ class definition and then loaded into a Java™ virtual machine (JVM). The class definition corresponding to the Java™ object can be derived using the Java™ Reflection Application Programming Interface (API). Once the class definition is derived, it can be used to create a structured type in a relational database management system (RDBMS) that corresponds to the Java™ class (where fields in the Java™ class map to attributes in the structured type). The class definition can be used with the Java™ Reflection API to inspect the contents of the Java™ object. An instance of a structured type is then generated from the inspected contents of the Java™ object, wherein the instance is stored in a column of a table of a relational database managed bathe RDBMS. As a result of these steps, the Java™ object is persistently stored in the database, yet the persistence semantics for storing the object are not specified as part of the class definition of the object, which means that the persistence semantics are orthogonal to the class definition.
Various advantages and features of novelty, which characterize the invention, are pointed out with particularity i n 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.
REFERENCES:
patent: 5161225 (1992-11-01), Abraham et al.
patent: 5247669 (1993-09-01), Abraham et al.
patent: 5291593 (1994-03-01), Abraham et al.
patent: 5295256 (1994-03-01), Bapat
patent: 5613099 (1997-03-01), Erickson et al.
patent: 5729739 (1998-03-01), Cantin et al.
patent: 5737597 (1998-04-01), Blackman et al.
patent: 5737598 (1998-04-01), Blackman et al.
patent: 5752249 (1998-05-01), Macon, Jr. et al.
patent: 5764979 (1998-06-01), Blackman et al.
patent: 5784620 (1998-07-01), Isham
patent: 5809506 (1998-09-01), Copeland
patent: 5809508 (1998-09-01), Blackman et al.
patent: 5809509 (1998-09-01), Blackman et al.
patent: 5854896 (1998-12-01), Brenner et al.
patent: 5864866 (1999-01-01), Henckel et al.
patent: 5920725 (1999-07-01), Ma et al.
patent: 6163776 (2000-12-01), Periwal
patent: 6199195 (2001-03-01), Goodwin et al.
patent: 6330709 (2001-12-01), Johnson et al.
Seiter et al., “Evolution of Object behavior using Context Relations”, ACN, 1996, pp. 46-57.*
B. Liskov et al. (1996) “Safe and Efficient Sharing . . . Thor,” ACM SIGMOD pp. 318-329.
Voyager/C++, Client/Server Object Management System (1995) Secant Technologies Inc.
K.J. Muckenhaupt (1996) “Preserving Current Assets With Objects on MVS White Paper”.
M. Jordan et al. (1996) “Applications Supported by an . . . System,” OOPSLA pp. 1-12.
A. Saljoughy (1997) “Object Persistence and Java,” Java World pp. 1-8.
M. Jordan et al. (1998) “Orthogonal Persistence for Java . . . Report,” Sun Microsystems Laboratories.
Dessloch Stefan
Elliot Steven K.
Krishnamurthy Saileshwar
Panwar Rajendra B.
Wollscheid Dirk
Corrielus Jean M.
Gates & Cooper LLP
International Business Machines - Corporation
LandOfFree
Method for providing for persistence of java classes where... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method for providing for persistence of java classes where..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for providing for persistence of java classes where... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3015147