Methods and apparatus for providing transparent persistence in a distributed object operating environment
First Claim
1. A computer-implemented method for providing transparent persistent data support to distributed objects instantiated within a distributed object system wherein an instance of a servant object class is instantiated having a transient data portion in which transient data can be stored and a data object in which persistent data can be stored, the method comprising the steps of:
- a) providing a particular servant object that is a particular instance of the servant object class, the particular servant object having an associated transient data portion in which transient data can be stored, an associated data object in which persistent data can be stored and a data object pointer that indirects to the associated data object, wherein the particular servant object inherits the data object from a data object class;
b) providing a persistent data storage mechanism having a persistent data object in which persistent data can be stored and a persistent data pointer that indirects to the persistent data object, the persistent data storage mechanism operating independently of the particular servant object and capable of storing data persistently in a portion of persistent memory separate from the associated data object of the particular servant object;
c) determining the value of the data object pointer; and
d) locating the data object pointer within the particular servant object and replacing the data object pointer with the persistent data pointer thereby providing transparent persistent data support to the particular servant object in that when the particular servant object stores persistent data intended for the data object, the persistent data object pointer redirects the persistent data intended for the data object to the persistent data object which is maintained by the persistent storage mechanism, not the particular servant object.
0 Assignments
0 Petitions
Accused Products
Abstract
A number of methods and apparatus are disclosed for providing transparent persistence in a distributed object operating environment are disclosed. In general, the present invention teaches replacing the value in the object'"'"'s data pointer (addressing information which points to the objects limited persistent memory) with a pointer value which points out to another persistent storage device. In preferred embodiments, a persistent storage manager (external and transparent to the distributed object) maintains the object data. In a specific embodiment, a distributed object framework is provided which has the mechanism for providing the transparent persistent strategy of the present invention. An object developer develops object implementations which the distributed object generates distributed objects with, in the process automatically providing transparent persistence.
58 Citations
20 Claims
-
1. A computer-implemented method for providing transparent persistent data support to distributed objects instantiated within a distributed object system wherein an instance of a servant object class is instantiated having a transient data portion in which transient data can be stored and a data object in which persistent data can be stored, the method comprising the steps of:
-
a) providing a particular servant object that is a particular instance of the servant object class, the particular servant object having an associated transient data portion in which transient data can be stored, an associated data object in which persistent data can be stored and a data object pointer that indirects to the associated data object, wherein the particular servant object inherits the data object from a data object class; b) providing a persistent data storage mechanism having a persistent data object in which persistent data can be stored and a persistent data pointer that indirects to the persistent data object, the persistent data storage mechanism operating independently of the particular servant object and capable of storing data persistently in a portion of persistent memory separate from the associated data object of the particular servant object; c) determining the value of the data object pointer; and d) locating the data object pointer within the particular servant object and replacing the data object pointer with the persistent data pointer thereby providing transparent persistent data support to the particular servant object in that when the particular servant object stores persistent data intended for the data object, the persistent data object pointer redirects the persistent data intended for the data object to the persistent data object which is maintained by the persistent storage mechanism, not the particular servant object. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method for providing transparent persistent data support to distributed objects instantiated within a distributed object system wherein an instance of a servant object class is instantiated having a transient data portion in which transient data can be stored and a data object in which persistent data can be stored, the method comprising the steps of:
-
providing a particular servant object that is a particular instance of the servant object class, the particular servant object having an associated transient data portion in which transient data can be stored, an associated data object in which persistent data can be stored and a data object pointer that indirects to the associated data object, wherein the particular servant object inherits the data object from a data object class; providing a persistent data storage mechanism having a persistent data object in which persistent data can be stored and a persistent data pointer that indirects to the persistent data object, the persistent data storage mechanism operating independently of the particular servant object, the persistent data storage mechanism further being capable of storing data persistently in a portion of persistent memory separate from the associated data object of the particular servant object; determining the value of the data object pointer, wherein determining the value of the data object pointer includes performing a widening function on the particular servant object to determine thereby the data object pointer in the data object class; and locating the data object pointer within the particular servant object and replacing the data object pointer with the persistent data pointer thereby providing transparent persistent data support to the particular servant object in that when the particular servant object stores persistent data intended for the data object, the persistent data object pointer redirects the persistent data intended for the data object to the persistent data object which is maintained by the persistent storage mechanism, not the particular servant object. - View Dependent Claims (5, 6)
-
-
7. A computer-implemented method for providing transparent persistent data support to distributed objects instantiated within a distributed object system wherein an instance of a servant object class is instantiated having a transient data portion in which transient data can be stored and a data object in which persistent data can be stored, the method comprising the steps of:
-
providing a particular servant object that is a particular instance of the servant object class, the particular servant object having an associated transient data portion in which transient data can be stored, an associated data object in which persistent data can be stored and a data object pointer that indirects to the associated data object, the particular servant object being arranged to inherit the data object from a data object class, wherein the particular servant object is a distributed object located in the memory of a computer on a distributed object system, which distributed object system includes a plurality of networked computers having memories in which distributed objects and clients are located and which distributed objects communicate using an object request broker mechanism and an object adapter mechanism; providing a persistent data storage mechanism having a persistent data object in which persistent data can be stored and a persistent data pointer that indirects to the persistent data object, the persistent data storage mechanism operating independently of the particular servant object, the persistent data storage mechanism further being capable of storing data persistently in a portion of persistent memory separate from the associated data object of the particular servant object; determining the value of the data object pointer; and locating the data object pointer within the particular servant object and replacing the data object pointer with the persistant data pointer thereby providing transparent persistent data support to the particular servant object in that when the particular servant object stores persistent data intended for the data object, the persistent data object pointer redirects the persistent data intended for the data object to the persistent data object which is maintained by the persistent storage mechanism, not the particular servant object. - View Dependent Claims (8, 9)
-
-
10. A distributed object having transparent persistent data support, the transparent persistent data support being formed using:
-
a particular servant object that is a particular instance of a servant object class, the particular servant object having an associated transient data portion in which transient data can be stored, an associated data object in which persistent data can be stored and a data object pointer that indirects to the associated data object, wherein the particular servant object inherits the associated data object from a data class; and a persistent data storage mechanism having a persistent data object in which persistent data can be stored and a persistent data pointer that indirects to the persistent data object, the persistent data storage mechanism being arranged to operate independently of the particular object, the persistent data storage mechanism further being arranged to store data persistently in a portion of persistent memory that is separate from the associated data object of the particular servant, wherein the data object pointer is arranged to be located within the particular servant object and replaced with the persistent data pointer to thereby provide the transparent persistent data support in that when the particular servant object stores persistent data intended for the data object, the persistent data object pointer redirects the persistent data intended for the data object to the persistent object which is maintained by the persistent storage mechanism, not the particular servant object.
-
-
11. A computer system for creating a distributed object having transparent persistent data support, comprising:
-
a data compiler to compile data schema into a data object class; an implementation compiler to compile implementation files into compiled implementations; a final stage compiler to create a servant object constructor capable of creating a servant object, the servant object including a transient data space, a data object pointer and a data object, wherein the servant object inherits the data object pointer from the data object class; a persistent data storage mechanism that includes a persistent database and a persistent data object that is an image of the persistent database; and a transparent persistence mechanism that includes a locator to find the value of the data object and the address space of the data object, and a replacement mechanism to swap the value of the data object in the address space with a pointer to the persistent data object thereby providing the servant object the capability of storing more persistent data than would be possible with the data object, the transparent persistence mechanism providing the increased storage capability independent of the servant object. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
- 19. A distributed object suitable for use on a distributed object system, comprising a transient data space for storing transient data, a data object and a persistent data pointer that indirects the reading and writing of persistent data from the data object to a persistent data object, which persistent data object is an image of a persistent database, the persistent database being maintained by a persistent storage mechanism which is distinct from the distributed object, the persistent storage mechanism providing the servant object the capability of storing more persistent data than would be possible with the data object, wherein the capability of storing more persistent data than would be possible with the data object is provided by a replacement mechanism which allows the value of the data object to be swapped with a pointer to the persistent data object.
Specification