Method and system for referring to and binding to objects using identifier objects
First Claim
1. A method in a computer system for binding to a source object, the computer system having a destination object, the method comprising the computer-implemented steps of:
- instantiating a moniker object, the instantiated moniker object having a moniker class identifier that identifies binding code that, when invoked, locates and connects to the source object;
storing a reference to the source object in the instantiated moniker object as naming information, the source object associated with server code;
storing in the destination object a reference to the instantiated moniker object having the stored reference to the source object;
when the destination object is accessed,retrieving the reference stored in the destination object to the instantiated moniker object; and
invoking the binding code identified by the moniker class identifier of the instantiated moniker object referred to by the retrieved reference;
when the binding code is invoked,locating and invoking the server code associated with the source object referred to by the naming information of the instantiated moniker object referred to by the retrieved reference; and
requesting the server code to connect to the source object referred to by the naming information of the instantiated moniker object referred to by the retrieved reference; and
when the server code is invoked,instantiating the source object referred to by the naming information of the instantiated moniker object referred to by the retrieved reference;
loading data into the instantiated source object; and
returning to the invoked binding code an indication of the instantiated source object with the loaded data, wherein the loaded data of the instantiated source object is accessed using the returned indication.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for referring to and binding to objects using a moniker object is provided. In a preferred embodiment, a moniker object contains information to identify linked source data and provides methods through which a program can bind to the linked source data. A binding method is provided that returns an instance of an interface through which the linked source data can be accessed. The moniker object can identify source data that is stored persistently or nonpersistently. In addition, moniker objects can be composed to form a composite moniker object. A composite moniker object is used to identify linked source data that is nested in other data. In a preferred embodiment, the moniker object provides other methods including a reducing method that returns a more efficient representation of the moniker object; equality and hash methods for comparing moniker objects; and inverse, common prefix, and relative-path-to methods for comparing and locating moniker objects from other moniker objects. Several implementations of a moniker object are provided including a file moniker, an item moniker, a generic composite moniker, a pointer moniker, and an anti moniker. Each implementation is a moniker class and has a class identifier that identifies code to manage the moniker class.
-
Citations
51 Claims
-
1. A method in a computer system for binding to a source object, the computer system having a destination object, the method comprising the computer-implemented steps of:
-
instantiating a moniker object, the instantiated moniker object having a moniker class identifier that identifies binding code that, when invoked, locates and connects to the source object; storing a reference to the source object in the instantiated moniker object as naming information, the source object associated with server code; storing in the destination object a reference to the instantiated moniker object having the stored reference to the source object; when the destination object is accessed, retrieving the reference stored in the destination object to the instantiated moniker object; and invoking the binding code identified by the moniker class identifier of the instantiated moniker object referred to by the retrieved reference; when the binding code is invoked, locating and invoking the server code associated with the source object referred to by the naming information of the instantiated moniker object referred to by the retrieved reference; and requesting the server code to connect to the source object referred to by the naming information of the instantiated moniker object referred to by the retrieved reference; and when the server code is invoked, instantiating the source object referred to by the naming information of the instantiated moniker object referred to by the retrieved reference; loading data into the instantiated source object; and returning to the invoked binding code an indication of the instantiated source object with the loaded data, wherein the loaded data of the instantiated source object is accessed using the returned indication.
-
-
2. A method in a computer system of creating an object that refers to a source object, the method comprising the computer-implemented steps of:
-
creating an instance of an identifier object of an identifier class, the identifier class having a binding member function that, when invoked, binds to the source object by locating and accessing the source object; storing a reference to the source object in the created identifier object as naming information that is used by the binding member function to bind to the source object; and storing a reference to the created identifier object having the stored reference to the source object that is used when binding to the source object. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9)
-
-
10. A method in a computer system for composing a first identifier object with a second identifier object to create a composite identifier object that refers to a source object, the first identifier object having an internal state that refers to a container object and having a first class identifier that identifies binding code that, when invoked, locates and connects to the container object referred to by the internal state, the second identifier having an internal state that refers to an item and having a second class identifier that identifies binding code that, when invoked, locates and connects to the item referred to by the internal state, the method comprising the computer-implemented steps of:
-
creating an instance of a composite identifier object, the created composite identifier object having an internal state and having a composite class identifier that identifies binding code that, when invoked, locates and connects to the source object referred to by the internal state of the created composite identifier object; storing a reference to the first identifier object in the internal state of the created composite identifier object; and storing a reference to the second identifier object in the internal state of the created composite identifier object, wherein the second identifier object is composed with the first identifier object to refer to the item within the container object as the source object. - View Dependent Claims (11, 12, 13)
-
-
14. A computer system for creating an object that refers and binds to source data comprising:
-
means for instantiating an identifier object having a class identifier that identifies binding code; and means for storing in the instantiated identifier object a reference to the source data as identifying data, wherein the binding code, when invoked, locates and connects to the source data referred to by the stored identifying data; and means for storing in the instantiated identifier object a class identifier that identifies the binding code. - View Dependent Claims (15)
-
-
16. A method in a computer system for binding to source data, the method comprising the computer-implemented steps of:
-
creating an instance of an identifier object, the created identifier object having naming information that identifies the source data and having a class identifier that identifies binding code that, when invoked, binds by locating and connecting to the source data identified by the naming information; invoking the binding code identified by the class identifier of the created identifier object to bind to the source data; and when the binding code is invoked, returning an indicator of the bound source data. - View Dependent Claims (17, 18)
-
-
19. A method in a computer system of generating an object that refers to source data, the computer system having a destination object, the method comprising the computer-implemented steps of:
-
creating an instance of a moniker object, the created moniker object having a moniker class identifier that identifies binding code that, when executed, binds to the source data; storing a reference to the source data in the created moniker object as naming information; storing the class identifier in the created moniker object; and storing in the destination object a reference to the created moniker object having the stored reference to the source data. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A method in a computer system of binding to source data having associated persistent storage for containing the source data, the method comprising the computer-implemented steps of:
-
instantiating an identifier object, the instantiated identifier object having a class identifier that identifies binding code that, when executed, binds to the source data; storing a reference to the source data in the instantiated identifier object as naming information; and accessing the source data by invoking the binding code identified by the class identifier of the instantiated identifier object to obtain an indicator of the persistent storage associated with the source data.
-
-
25. A method in a computer system of locating source data, the computer system having a destination object, the method comprising the computer-implemented steps of:
-
creating an instance of a link object, the link object having an absolute location reference for referring to the location of the source data relative to an origin location, having a relative location reference for referring to the location of the source data relative to the location of the destination object, and having a link class identifier that identifies binding code that, when executed, locates and connects to the source data; and locating the source data by invoking the binding code identified by the link class identifier of the created link object, the binding code using one of the absolute location reference and the relative location reference to locate the source data. - View Dependent Claims (26, 27, 28)
-
-
29. A method in a computer system of generating a reduced reference to source data, the method comprising the computer-implemented steps of:
-
creating an instance of a moniker object, the created moniker object having a moniker class identifier that identifies a reduce member function; storing a reference to the source data in the created moniker object as naming information; and reducing the stored reference to the source data to a canonical form by invoking the reduce member function, wherein the reduce member function creates a reduced moniker object, the created reduced moniker object having reduced naming information that refers, in the canonical form, to the source data referred to by the naming information of the created moniker object. - View Dependent Claims (30, 31, 32, 33, 34, 35)
-
-
36. A method in a computer system of comparing a first object that refers to source data to a second object that refers to source data, the method comprising the computer-implemented steps of:
-
creating an instance of a moniker object, the created moniker object having naming information that refers to source data and having a moniker class identifier that identifies comparison code that, when executed, determines whether the moniker object is equal to another moniker object; and invoking the comparison code, passing a requested moniker object, the requested moniker object having naming information that refers to source data, to determine whether the created moniker object is equal to the requested moniker object. - View Dependent Claims (37, 38, 39, 40)
-
-
41. A method in a computer system for determining a common prefix between a first identifier object and a second identifier object, the method comprising the computer-implemented steps of:
-
creating an instance of the first identifier object, the created first identifier object having naming information that refers to first source data; creating an instance of the second identifier object, the created second identifier object having naming information that refers to second source data, the second identifier object having a class identifier that identifies code having a prefix determination member function that, when executed, determines a common prefix between the naming information of the created second identifier object and a requested location; and invoking the prefix determination member function of the second identifier object, with an indicator to the naming information of the created first identifier object as the requested location, to determine a common prefix between the naming information of the created second identifier object and the naming information of the created first identifier object. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49)
-
-
50. A computer system for binding to source data comprising:
-
means for generating a moniker object having naming information that identifies source data and having a class identifier that identifies a binding member function that, when executed, binds to the source data identified by the naming information and returns an indicator of the bound source data; and means for invoking the binding member function of the moniker object.
-
-
51. A method in a computer system for binding to a source object, the computer system having a destination object, the method comprising the computer-implemented steps of:
-
instantiating a first moniker object of a moniker class, the moniker class identified by a moniker class identifier and having binding code that, when invoked, connects to the source object; storing a source reference to the source object in the instantiated first moniker object as naming information, the source object associated with server code; storing in the destination object a moniker reference to the instantiated first moniker object having the stored source reference; storing the destination object in persistent storage including, accessing the moniker class identifier and the naming information referred to by the moniker reference; storing in persistent storage the accessed moniker class identifier; and storing in persistent storage the accessed naming information; when the destination object is accessed from persistent storage, retrieving the stored moniker class identifier and naming information from persistent storage; instantiating a second moniker object of the moniker class identified by the retrieved moniker class identifier; storing the retrieved naming information in the instantiated second moniker object; and invoking the binding code of the moniker class; when the binding code is invoked, invoking the server code associated with the source object referred to by the naming information stored in the second moniker object; and requesting the server code to connect to the source object referred to by the naming information stored in the second moniker object; and when the server code is invoked, instantiating the source object referred to by the naming information stored in the second moniker object; loading data into the instantiated source object; and returning to the invoked binding code an indication of the instantiated source object with the loaded data, wherein the loaded data of the instantiated source object is accessed using the returned indication.
-
Specification