← Back to Patent Explorer
US5905987A Expired / Lapsed US ⏱️ 0.0 years remaining

Method, data structure, and computer program product for object state storage in a repository

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-03-19
•
Granted: 1999-05-18
•
Expires: 2017-03-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In an interface-based binary object system capable of supporting multiple interfaces into objects created by class templates, a repository of stored object states is formed that can be accessed by later created objects. Such later created objects may be of the same class as the original object or may be of a new class extended from the original class and still use the same stored object state. Access to the stored object state is made through a generic repository object that emulates the behavior of a particular class of object as defined in type definitions. Requests to a particular object's properties through interface methods are serviced by having the generic repository object make reference to the type definitions in order to fulfill the request. Binary extensibility of the generic repository object along with proper class definition in the type definitions allows custom objects having greater functionality than that provided by the generic repository object to be implemented. Furthermore, class definitions that use only functionality provided by the generic repository object may be defined so as to allow instantiation of objects without the implementation of actual software code whatsoever. Finally, in a currently preferred embodiment, object state is stored advantageously in SQL database tables organized on a per-interface basis with properties common to all objects stored in a main stored object state table.

Inventors

  • 👤 David R. Shutt
  • 👤 Paul Jonathon Sanders

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 01:15
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/28; G06F16/289; Y; Y10; Y10S; Y10S707/00; Y10S707/953; Y10S707/96; Y10S707/99941; Y10S707/99943; Y10S707/99944

Claims Analysis

Total Claims: 42
Claim 1
Independent Claim 306 words
A method of forming a repository for storing the state of a plurality of objects and for permitting retrieval of the stored state for use in later created objects that is independent of any underlying language used to form the objects, said method comprising the steps of: forming one or more interface means, each interface means comprising (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; forming one or more class means, each consisting of executable code means that implements one or more said interface means and having a unique class identifier means; forming one or more objects as instances of one or more said class means, the properties of the interface means implemented by said class means defining the state of the object, each object accessible through at least one of said one or more interface means; and forming a repository of stored object states for each of said one or more objects by including in said objects a database interface means, said database interface means storing for each object: (a) said class identifier means used to instantiate said object, (b) said properties for each one or more said interface means defining the state of the object, (c) said interface identifier means for each interface means implemented in said object, and (d) a stored state identifier means for identifying the stored object state, thereby enabling said stored object state to be retrieved from said repository for use in a later created object, and thereafter enabling further use of said later created object in the state defined by said properties.
Claim 2
Independent Claim 306 words
A method of forming a repository for storing the state of a plurality of objects and for permitting retrieval of the stored state for use in later created objects that is independent of any underlying language used to form the objects, said method comprising the steps of: forming one or more interface means, each interface means comprising (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; forming one or more class means, each consisting of executable code means that implements one or more said interface means and having a unique class identifier means; forming one or more objects as instances of one or more said class means, the properties of the interface means implemented by said class means defining the state of the object, each object accessible through at least one of said one or more interface means; and forming a repository of stored object states for each of said one or more objects by including in said objects a database interface means, said database interface means storing for each object: (a) said class identifier means used to instantiate said object, (b) said properties for each one or more said interface means defining the state of the object, (c) said interface identifier means for each interface means implemented in said object, and (d) a stored state identifier means for identifying the stored object state, thereby enabling said stored object state to be retrieved from said repository for use in a later created object, and thereafter enabling further use of said later created object in the state defined by said properties.
Claim 3
Dependent Claim 16 words
A method as recited in claim 1 wherein said state retrieval occurs implicitly during object navigation.
Claim 4
Dependent Claim 21 words
A method as recited in claim 1 wherein said state retrieval occurs explicitly by reference to said stored state identifier means.
Claim 5
Dependent Claim 196 words
A method as recited in claim 1 further comprising a method of instantiating objects through a request to a generic repository object that accesses a stored class definition library, the method of instantiation comprising the steps of: identifying and storing in a stored class definition library one or more class definitions, each of said class definitions identifying one or more class means that implements one or more interface means having (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; forming a generic repository object for interpreting a request to instantiate a new object based upon said one or more said class definitions that identify the new object class; searching said stored class definition library and retrieving therefrom a class definition corresponding to said request; and enabling said generic repository object to take on the interfaces corresponding to the requested new object class so as to thereby instantiate the new object.
Claim 6
Dependent Claim 29 words
A method as recited in claim 1 wherein said later created object is instantiated from the same class as that of said object represented by said stored object state.
Claim 7
Dependent Claim 53 words
A method as recited in claim 1 wherein said later created object is instantiated from a different class than that of said object represented by said stored object state, said later created object capable of implementing different interface means having different methods or properties than said object represented by said stored object state.
Claim 8
Dependent Claim 50 words
A method as recited in claim 1 wherein said later created object is instantiated from a different class than that of said object represented by said stored object state, said later created object class being a binary extension of the class of said object represented by said stored object state.
Claim 9
Dependent Claim 38 words
A method as recited in claim 1 wherein said executable code means is broken into subroutines, each subroutine corresponds to a method of said interface means, and said class identifier means and said interface identifier means are GUIDs.
Claim 10
Dependent Claim 52 words
A method as recited in claim 1 wherein each of said one or more objects further comprises an indicating interface common to every one of said one or more objects, said indicating interface providing means for accessing each and every other interface means supported by each of said one or more objects.
Claim 11
Dependent Claim 27 words
A method as recited in claim 1 wherein said properties comprise relationships implemented as a collection of relationship objects between an origin interface and a destination interface.
Claim 12
Dependent Claim 19 words
A method as recited in claim 1 wherein said properties comprise relationships implemented as a collection of target objects.
Claim 13
Dependent Claim 95 words
A method as recited in claim 1 wherein said repository of stored object states is organized into a row-column database format comprising the steps of: forming a stored object state table wherein the rows identify each said stored object state and the columns identify one or more generic properties common to all said persisted object states; and forming an interface table for each interface means supported by said one or more objects wherein the rows for said interface table identify said stored object state and the columns identify the properties for said each interface means.
Claim 14
Dependent Claim 21 words
A method as recited in claim 1 wherein said repository of stored object states is stored in an object oriented database.
Claim 15
Dependent Claim 309 words
A computer-readable medium having stored thereon a data structure consisting of a repository for storing the state of a plurality of objects and for permitting retrieval of the stored state for use in later created objects that is independent of any underlying language used to form the objects, said data structure comprising: one or more interface means, each interface means comprising (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; one or more class means, each consisting of executable code means that implements one or more said interface means and having a unique class identifier means; one or more objects as instances of one or more said class means, the properties of the interface means implemented by said class means defining the state of the object, each object accessible through at least one of said one or more interface means; and a repository of stored object states for each of said one or more objects, the repository including a database interface means included in said objects, said database interface means storing for each object: (a) said class identifier means used to instantiate said object, (b) said properties for each one or more said interface means defining the state of the object, (c) said interface identifier means for each interface means implemented in said object, and (d) a stored state identifier means for identifying the stored object state, thereby enabling said stored object state to be retrieved from said repository for use in a later created object, and thereafter enabling further use of said later created object in the state defined by said properties.
Claim 16
Dependent Claim 309 words
A computer-readable medium having stored thereon a data structure consisting of a repository for storing the state of a plurality of objects and for permitting retrieval of the stored state for use in later created objects that is independent of any underlying language used to form the objects, said data structure comprising: one or more interface means, each interface means comprising (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; one or more class means, each consisting of executable code means that implements one or more said interface means and having a unique class identifier means; one or more objects as instances of one or more said class means, the properties of the interface means implemented by said class means defining the state of the object, each object accessible through at least one of said one or more interface means; and a repository of stored object states for each of said one or more objects, the repository including a database interface means included in said objects, said database interface means storing for each object: (a) said class identifier means used to instantiate said object, (b) said properties for each one or more said interface means defining the state of the object, (c) said interface identifier means for each interface means implemented in said object, and (d) a stored state identifier means for identifying the stored object state, thereby enabling said stored object state to be retrieved from said repository for use in a later created object, and thereafter enabling further use of said later created object in the state defined by said properties.
Claim 17
Dependent Claim 17 words
A computer-readable medium as recited in claim 14 wherein said state retrieval occurs implicitly during object navigation.
Claim 18
Dependent Claim 22 words
A computer-readable medium as recited in claim 14 wherein said state retrieval occurs explicitly by reference to said stored state identifier means.
Claim 19
Dependent Claim 207 words
A computer-readable medium as recited in claim 14, wherein said data structure further comprises computer-executable instructions for implementing a method of instantiating objects through a request to a generic repository object that accesses a stored class definition library, wherein the computer-executable instructions when executed, perform the steps of: identifying and storing in a stored class definition library one or more class definitions, each of said class definitions identifying one or more class means that implements one or more interface means having (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; forming a generic repository object for interpreting a request to instantiate a new object based upon said one or more said class definitions that identify the new object class; searching said stored class definition library and retrieving therefrom a class definition corresponding to said request; and enabling said generic repository object to take on the interfaces corresponding to the requested new object class so as to thereby instantiate the new object.
Claim 20
Dependent Claim 30 words
A computer-readable medium as recited in claim 14 wherein said later created object is instantiated from the same class as that of said object represented by said stored object state.
Claim 21
Dependent Claim 54 words
A computer-readable medium as recited in claim 14 wherein said later created object is instantiated from a different class than that of said object represented by said stored object state, said later created object capable of implementing different interface means having different methods or properties than said object represented by said stored object state.
Claim 22
Dependent Claim 51 words
A computer-readable medium as recited in claim 14 wherein said later created object is instantiated from a different class than that of said object represented by said stored object state, said later created object class being a binary extension of the class of said object represented by said stored object state.
Claim 23
Dependent Claim 39 words
A computer-readable medium as recited in claim 14 wherein said executable code means is broken into subroutines, each subroutine corresponds to a method of said interface means, and said class identifier means and said interface identifier means are GUIDs.
Claim 24
Dependent Claim 53 words
A computer-readable medium as recited in claim 14 wherein each of said one or more objects further comprises an indicating interface common to every one of said one or more objects, said indicating interface providing means for accessing each and every other interface means supported by each of said one or more objects.
Claim 25
Dependent Claim 28 words
A computer-readable medium as recited in claim 14 wherein said properties comprise relationships implemented as a collection of relationship objects between an origin interface and a destination interface.
Claim 26
Dependent Claim 20 words
A computer-readable medium as recited in claim 14 wherein said properties comprise relationships implemented as a collection of target objects.
Claim 27
Dependent Claim 92 words
A computer-readable medium as recited in claim 14 wherein said repository of stored object states is organized into a row-column database format comprising of: a stored object state table wherein the rows identify each said stored object state and the columns identify one or more generic properties common to all said persisted object states; and an interface table for each interface means supported by said one or more objects wherein the rows for said interface table identify said stored object state and the columns identify the properties for said each interface means.
Claim 28
Dependent Claim 22 words
A computer-readable medium as recited in claim 14 wherein said repository of stored object states is stored in an object oriented database.
Claim 29
Dependent Claim 332 words
A computer program product comprising: a computer usable medium; and computer readable program code means embodied in said medium for forming a repository for storing the state of a plurality of objects and for permitting retrieval of the stored state for use in later created objects that is independent of any underlying language used to form the objects, said computer readable program code means comprising; means for forming one or more interface means, each interface means comprising (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; means for forming one or more class means, each consisting of executable code means that implements one or more said interface means and having a unique class identifier means; means for forming one or more objects as instances of one or more said class means, the properties of the interface means implemented by said class means defining the state of the object, each object accessible through at least one of said one or more interface means; and means for forming a repository of stored object states for each of said one or more objects by including in said objects a database interface means, said database interface means storing for each object: (a) said class identifier means used to instantiate said object, (b) said properties for each one or more said interface means defining the state of the object, (c) said interface identifier means for each interface means implemented in said object, and (d) a stored state identifier means for identifying the stored object state, thereby enabling said stored object state to be retrieved from said repository for use in a later created object, and thereafter enabling further use of said later created object in the state defined by said properties.
Claim 30
Dependent Claim 332 words
A computer program product comprising: a computer usable medium; and computer readable program code means embodied in said medium for forming a repository for storing the state of a plurality of objects and for permitting retrieval of the stored state for use in later created objects that is independent of any underlying language used to form the objects, said computer readable program code means comprising; means for forming one or more interface means, each interface means comprising (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; means for forming one or more class means, each consisting of executable code means that implements one or more said interface means and having a unique class identifier means; means for forming one or more objects as instances of one or more said class means, the properties of the interface means implemented by said class means defining the state of the object, each object accessible through at least one of said one or more interface means; and means for forming a repository of stored object states for each of said one or more objects by including in said objects a database interface means, said database interface means storing for each object: (a) said class identifier means used to instantiate said object, (b) said properties for each one or more said interface means defining the state of the object, (c) said interface identifier means for each interface means implemented in said object, and (d) a stored state identifier means for identifying the stored object state, thereby enabling said stored object state to be retrieved from said repository for use in a later created object, and thereafter enabling further use of said later created object in the state defined by said properties.
Claim 31
Dependent Claim 18 words
A computer program product as recited in claim 27 wherein said state retrieval occurs implicitly during object navigation.
Claim 32
Dependent Claim 23 words
A computer program product as recited in claim 27 wherein said state retrieval occurs explicitly by reference to said stored state identifier means.
Claim 33
Dependent Claim 206 words
A computer program product as recited in claim 27 further comprising computer program code means for instantiating objects through a request to a generic repository object that accesses a stored class definition library, the computer code means further comprising: means for identifying and storing in a stored class definition library one or more class definitions, each of said class definitions identifying one or more class means that implements one or more interface means having (a) one or more properties that are capable of describing the state of an object, (b) one or more method means for accessing and modifying said properties and exposing other behavior, and (c) an interface identifier means for uniquely identifying an interface means so as to enable accessing of said one or more method means; means for forming a generic repository object for interpreting a request to instantiate a new object based upon said one or more said class definitions that identify the new object class; means for searching said stored class definition library and retrieving therefrom a class definition corresponding to said request; and means for enabling said generic repository object to take on the interfaces corresponding to the requested new object class so as to thereby instantiate the new object.
Claim 34
Dependent Claim 31 words
A computer program product as recited in claim 27 wherein said later created object is instantiated from the same class as that of said object represented by said stored object state.
Claim 35
Dependent Claim 55 words
A computer program product as recited in claim 27 wherein said later created object is instantiated from a different class than that of said object represented by said stored object state, said later created object capable of implementing different interface means having different methods or properties than said object represented by said stored object state.
Claim 36
Dependent Claim 52 words
A computer program product as recited in claim 27 wherein said later created object is instantiated from a different class than that of said object represented by said stored object state, said later created object class being a binary extension of the class of said object represented by said stored object state.
Claim 37
Dependent Claim 40 words
A computer program product as recited in claim 27 wherein said executable code means is broken into subroutines, each subroutine corresponds to a method of said interface means, and said class identifier means and said interface identifier means are GUIDs.
Claim 38
Dependent Claim 54 words
A computer program product as recited in claim 27 wherein each of said one or more objects further comprises an indicating interface common to every one of said one or more objects, said indicating interface providing means for accessing each and every other interface means supported by each of said one or more objects.
Claim 39
Dependent Claim 29 words
A computer program product as recited in claim 27 wherein said properties comprise relationships implemented as a collection of relationship objects between an origin interface and a destination interface.
Claim 40
Dependent Claim 21 words
A computer program product as recited in claim 27 wherein said properties comprise relationships implemented as a collection of target objects.
Claim 41
Dependent Claim 103 words
A computer program product as recited in claim 27 wherein said repository of stored object states is organized into a row-column database format by computer program code means comprising: means for forming a stored object state table wherein the rows identify each said stored object state and the columns identify one or more generic properties common to all said persisted object states; and means for forming an interface table for each interface means supported by said one or more objects wherein the rows for said interface table identify said stored object state and the columns identify the properties for said each interface means.
Claim 42
Dependent Claim 23 words
A computer program product as recited in claim 27 wherein said repository of stored object states is stored in an object oriented database.

References Cited (Backward Citations)

US5247669A Cited
US5291593A Cited
US5613099A Cited
US5729739A Cited
US5692183A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-05-17 2002-11-16 2003-05-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-05-17 2006-11-16 2007-05-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-05-17 2010-11-16 2011-05-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag