Claims Analysis
Total Claims: 31
Claim 1
Independent Claim
388 words
A method for providing peer ownership of shared objects by multiple processes, comprising: creating a first shell object associated with a first process, wherein the first shell object includes a reference to a first shared object state stored in shared memory; creating a second shell object associated with the first process to access a second shared object state when the first shell object desires to access the second shared object state, wherein the second shell object includes a reference to the second object state stored in the shared memory; creating a third shell object associated with a second process, wherein the third shell object includes a reference to the first shared object state stored in the shared memory so that the first and second processes are peer owners of the first shared object state; creating a fourth shell object associated with the second process to access the second shared object state when the third shell object desires to access the second shared object state, wherein the fourth shell object includes a reference to the second shared object state stored in the shared memory so that the first and second processes are peer owners of the second shared object state; determining a first offset value corresponding to a global identifier of the first object state, the first offset value associated with a first data block in the shared memory, the first data block including the first shared object state, wherein the first shell object includes a pointer to the first data block in a process space of the first process; determining if the first offset value is present in a second table, the second table comprising a plurality of shell objects for the first process, the plurality of shell objects referenced by a plurality of offset values; if the first offset value is present in the second table, creating the first shell object further comprises: retrieving from the second table the first shell object corresponding to the first offset value; and if the first offset value is not present in the second table, creating the first shell object further comprises: creating the first shell object in the process space; setting the pointer in the first shell object to point to the first data block; and adding the first shell object and the first offset value to the second table.
Claim 2
Independent Claim
388 words
A method for providing peer ownership of shared objects by multiple processes, comprising: creating a first shell object associated with a first process, wherein the first shell object includes a reference to a first shared object state stored in shared memory; creating a second shell object associated with the first process to access a second shared object state when the first shell object desires to access the second shared object state, wherein the second shell object includes a reference to the second object state stored in the shared memory; creating a third shell object associated with a second process, wherein the third shell object includes a reference to the first shared object state stored in the shared memory so that the first and second processes are peer owners of the first shared object state; creating a fourth shell object associated with the second process to access the second shared object state when the third shell object desires to access the second shared object state, wherein the fourth shell object includes a reference to the second shared object state stored in the shared memory so that the first and second processes are peer owners of the second shared object state; determining a first offset value corresponding to a global identifier of the first object state, the first offset value associated with a first data block in the shared memory, the first data block including the first shared object state, wherein the first shell object includes a pointer to the first data block in a process space of the first process; determining if the first offset value is present in a second table, the second table comprising a plurality of shell objects for the first process, the plurality of shell objects referenced by a plurality of offset values; if the first offset value is present in the second table, creating the first shell object further comprises: retrieving from the second table the first shell object corresponding to the first offset value; and if the first offset value is not present in the second table, creating the first shell object further comprises: creating the first shell object in the process space; setting the pointer in the first shell object to point to the first data block; and adding the first shell object and the first offset value to the second table.
Claim 3
Dependent Claim
129 words
The method of claim 1 , wherein determining the first offset value corresponding to the global identifier comprises: determining if the global identifier is present in a first table, the first table comprising a plurality of associated offset values referenced by a plurality of global identifiers; if the global identifier is present in the first table, retrieving from the first table the first offset value corresponding to the global identifier of the object; if the global identifier of the object is not present in the first table, creating the first data block in shared memory to contain the first shared object state of the object; determining the first offset value for the first data block; and adding the global identifier and the first offset value to the first table.
Claim 4
Dependent Claim
42 words
The method of claim 2 , wherein determining the first offset value for the first data block comprises determining a distance between a data block address of the first data block in shared memory and a base address of the shared memory.
Claim 5
Dependent Claim
28 words
The method of claim 1 , wherein setting the pointer comprises adding the first offset value to a base address of the shared memory in the process space.
Claim 6
Dependent Claim
44 words
The method of claim 1 , wherein the first shared object state is part of a first data block, the method further comprising: maintaining a first reference count for the first shell object; and maintaining a second reference count for the first data block.
Claim 7
Dependent Claim
61 words
The method of claim 5 , wherein creating the first shell object further comprising: returning the first shell object to the first process; wherein maintaining the first reference count comprises: incrementing the first reference count when the first shell object is returned to the first process; and decrementing the first reference count when the first process releases the first shell object.
Claim 8
Dependent Claim
38 words
The method of claim 5 , wherein maintaining the second reference count comprises: incrementing the second reference count when the first shell object is created; and decrementing the second reference count when the first shell object is terminated.
Claim 9
Dependent Claim
86 words
The method of claim 1 , further comprising: intercepting a call to marshal the first shell object state to the second process; copying the first offset value associated with the first shell object to a marshal packet; retrieving the first offset value from the marshal packet; and based on the retrieved first offset value, returning a second shell object to the second process, the second shell object containing a pointer to the first data block in shared memory in a process space of the second process.
Claim 10
Dependent Claim
42 words
The method of claim 1 , further comprising: copying data into a portion of shared memory; and storing a second offset value of the portion of shared memory into the first data block as an element of the first shared object state.
Claim 11
Dependent Claim
42 words
The method of claim 9 , further comprising: retrieving the second offset value from the first data block; transforming the second offset value into a local pointer; and returning the data from the portion of shared memory identified via the local pointer.
Claim 12
Dependent Claim
52 words
The method of claim 1 , further comprising: marshalling a non-peer object into a marshal packet; copying the marshal packet into a portion of shared memory; and storing a second offset value of the portion of shared memory into the first data block as an element of the first shared object state.
Claim 13
Dependent Claim
43 words
The method of claim 11 , further comprising: retrieving the second offset value from the first data block; transforming the second offset value into a local pointer; and unmarshalling the non-peer object from the portion of shared memory identified via the local pointer.
Claim 14
Dependent Claim
58 words
The method of claim 1 , further comprising: determining a second offset value associated with a second shared object state within a second data block in shared memory; storing the second offset value into the first data block as an element of the first shared object state; and incrementing a reference count associated with the second data block.
Claim 15
Dependent Claim
46 words
The method of claim 13 , further comprising: retrieving the second offset value from the first data block; and returning a second shell object corresponding to the second offset value, the second shell object pointing to the second data block containing the second shared object state.
Claim 16
Dependent Claim
25 words
The method of claim 1 , further comprising: utilizing a peer ownership manager as an object server for the first and second shared object states.
Claim 17
Dependent Claim
467 words
A computer program product comprising: a computer usable medium having computer program code embodied therein for providing peer ownership of shared objects by multiple processes, the computer program product comprising: computer program code configured to create a first shell object associated with a first process, wherein the first shell object includes a reference to a first shared object state stored in shared memory; computer program code configured to create a second shell object associated with the first process to access a second shared object state when the first shell object desires to access the second shared object state, wherein the second shell object includes a reference to the second object state stored in the shared memory; computer program code configured to create a third shell object associated with a second process, wherein the third shell object includes a reference to the first shared object state stored in the shared memory so that the first and second processes are peer owners of the first shared object state; computer program code configured to create a fourth shell object associated with the second process to access the second shared object state when the third shell object desires to access the second shared object state, wherein the fourth shell object includes a reference to the second shared object state stored in the shared memory so that the first and second processes are peer owners of the second shared object state computer program code configured to cause a computer to determine a first offset value corresponding to a global identifier of the first object state, the first offset value associated with a first data block in the shared memory, the first data block including the first shared object state, wherein the first shell object includes a pointer to the first data block in a process space of the first process wherein the computer program code configured to cause a computer to determine the first shell object corresponding to the first offset value comprises: computer program code configured to cause a computer to determine if the first offset value is present in a second table, the second table comprising a plurality of shell objects for the first process referenced by a plurality of offset values; computer program code configured to cause a computer to retrieve from the second table the first shell object corresponding to the first offset value if the first offset value is present in the second table; computer program code configured to cause a computer to perform the following if the first offset value is not present in the second table, creating the first shell object in the process space; setting the pointer in the first shell object to point to the first data block; and adding the first shell object and the first offset value to the second table.
Claim 18
Dependent Claim
467 words
A computer program product comprising: a computer usable medium having computer program code embodied therein for providing peer ownership of shared objects by multiple processes, the computer program product comprising: computer program code configured to create a first shell object associated with a first process, wherein the first shell object includes a reference to a first shared object state stored in shared memory; computer program code configured to create a second shell object associated with the first process to access a second shared object state when the first shell object desires to access the second shared object state, wherein the second shell object includes a reference to the second object state stored in the shared memory; computer program code configured to create a third shell object associated with a second process, wherein the third shell object includes a reference to the first shared object state stored in the shared memory so that the first and second processes are peer owners of the first shared object state; computer program code configured to create a fourth shell object associated with the second process to access the second shared object state when the third shell object desires to access the second shared object state, wherein the fourth shell object includes a reference to the second shared object state stored in the shared memory so that the first and second processes are peer owners of the second shared object state computer program code configured to cause a computer to determine a first offset value corresponding to a global identifier of the first object state, the first offset value associated with a first data block in the shared memory, the first data block including the first shared object state, wherein the first shell object includes a pointer to the first data block in a process space of the first process wherein the computer program code configured to cause a computer to determine the first shell object corresponding to the first offset value comprises: computer program code configured to cause a computer to determine if the first offset value is present in a second table, the second table comprising a plurality of shell objects for the first process referenced by a plurality of offset values; computer program code configured to cause a computer to retrieve from the second table the first shell object corresponding to the first offset value if the first offset value is present in the second table; computer program code configured to cause a computer to perform the following if the first offset value is not present in the second table, creating the first shell object in the process space; setting the pointer in the first shell object to point to the first data block; and adding the first shell object and the first offset value to the second table.
Claim 19
Dependent Claim
172 words
The computer program product of claim 16 , wherein the computer program code configured to cause a computer to determine the first offset value corresponding to the global identifier comprises: computer program code configured to cause a computer to determine if the global identifier is present in a first table, the first table comprising a plurality of associated offset values referenced by a plurality of global identifiers; computer program code configured to cause a computer to retrieve from the first table the first offset value corresponding to the global identifier of the object if the global identifier is present in the first table; computer program code configured to cause a computer to perform the following operations if the global identifier of the object is not present in the first table: creating the first data block in shared memory to contain the first shared object state of the object; determining the first offset value for the first data block; and adding the global identifier and the first offset value to the first table.
Claim 20
Dependent Claim
62 words
The computer program product of claim 17 , wherein the computer program code configured to cause a computer to determine the first offset value for the first data block comprises: computer program code configured to cause a computer to determine a between a data block address of the first data block in shared memory and a base address of the shared memory.
Claim 21
Dependent Claim
49 words
The computer program product of claim 16 , wherein the computer program code configured to cause a computer to set the pointer comprises: computer program code configured to cause a computer to add the first offset value to a base address of the shared memory in the process space.
Claim 22
Dependent Claim
66 words
The computer program product of claim 16 , wherein the first shared object state is part of a first data block, the computer program product further comprising: computer program code configured to cause a computer to maintain a first reference count for the first shell object; and computer program code configured to cause a computer to maintain a second reference count for the first data block.
Claim 23
Dependent Claim
88 words
The computer program product of claim 20 , wherein the computer program code configured to cause a computer to maintain the first reference count comprises: computer program code configured to return the first shell object to the first process; computer program code configured to cause a computer to increment the first reference count when the first shell object is returned to the first process; and computer program code configured to cause a computer to decrement the first reference count when the first process releases the first shell object.
Claim 24
Dependent Claim
68 words
The computer program product of claim 20 , wherein the computer program code configured to cause a computer to maintain the second reference count comprises: computer program code configured to cause a computer to increment the second reference count when the first shell object is created; and computer program code configured to cause a computer to decrement the second reference count when the first shell object is terminated.
Claim 25
Dependent Claim
123 words
The computer program product of claim 16 , further comprising: computer program code configured to cause a computer to intercept a call to marshal the first shell object to a second process; computer program code configured to cause a computer to copy the first offset value associated with the first shell object to a marshal packet; computer program code configured to cause a computer to retrieve the first offset value from the marshal packet; and computer program code configured to cause a computer to return a second shell object to the second process based on the retrieved first offset value, the second shell object containing a pointer to the first data block in shared memory in a process space of the second process.
Claim 26
Dependent Claim
62 words
The computer program product of claim 16 , further comprising: computer program code configured to cause a computer to copy data into a portion of shared memory; and computer program code configured to cause a computer to store a second offset value of the portion of shared memory into the first data block as an element of the first shared object state.
Claim 27
Dependent Claim
71 words
The computer program product of claim 24 , further comprising: computer program code configured to cause a computer to retrieve the second offset value from the first data block; computer program code configured to cause a computer to transform the second offset value into a local pointer; and computer program code configured to cause a computer to return the data from the portion of shared memory identified via the local pointer.
Claim 28
Dependent Claim
81 words
The computer program product of claim 16 , further comprising: computer program code configured to cause a computer to marshal a non-peer object into a marshal packet; computer program code configured to cause a computer to copy the marshal packet into a portion of shared memory; and computer program code configured to cause a computer to store a second offset value of the portion of shared memory into the first data block as an element of the first shared object state.
Claim 29
Dependent Claim
72 words
The computer program product of claim 26 , further comprising: computer program code configured to cause a computer to retrieve the second offset value from the first data block; computer program code configured to cause a computer to transform the second offset value into a local pointer; and computer program code configured to cause a computer to unmarshal the non-peer object from the portion of shared memory identified via the local pointer.
Claim 30
Dependent Claim
87 words
The computer program product of claim 16 , further comprising: computer program code configured to cause a computer to determine a second offset value associated with a second shared object state within a second data block in shared memory; computer program code configured to cause a computer to store the second offset value into the first data block as an element of the first shared object state; and computer program code configured to cause a computer to increment a reference count associated with the second data block.
Claim 31
Dependent Claim
66 words
The computer program product of claim 28 , further comprising: computer program code configured to cause a computer to retrieve the second offset value from the first data block; and computer program code configured to cause a computer to return a second shell object corresponding to the second offset value, the second shell object pointing to the second data block containing the second shared object state.