Methods and apparatus for managing objects in a client-server computing system environment
First Claim
1. In a client computer system, a method for defining objects, the method comprising the steps of:
- providing a local object specification to a server;
receiving a global object specification from the server, the global object specification including at least one global object definition having a unique global object identification;
checking whether the global object specification received from the server contains a corresponding global object definition for each respective local object defined in the local object specification provided to the server; and
generating a signal indicating whether the global object specification and the local object specification define common object definitions.
1 Assignment
0 Petitions
Accused Products
Abstract
Mechanisms and techniques allow computer systems to create and exchange uniquely identified shared objects. Using this invention, a client computer system can operate client software to generate local object definitions in a local object specification. To assure that the local object definitions created by the client are uniquely identifiable by this client, as well as by a server and possibly other clients which may require access to such object definitions (e.g., other clients in a collaboration software system), the invention allows the client to send the local object specification to the server for unique identification of the object definitions. The server receives the local object specification containing the local object definitions created by the client and can convert each local object definition within the local object specification to a global object definition in a global object specification. Each global object definition includes a system-wide unique global object identification assigned by the server that uniquely identifies the global object definition on the server, as well across any clients in communication with the server. The server then returns the global object specification containing the uniquely identified global object definitions to the client. The client then compares the global object specification to the local object specification to determine if the server properly created the global object specification based on the local object specification. Assuming the server properly creates the global object specification, the client replaces the local object specification with the global object specification such that the client can operate on global object definitions that are guaranteed to be uniquely identified.
-
Citations
46 Claims
-
1. In a client computer system, a method for defining objects, the method comprising the steps of:
-
providing a local object specification to a server;
receiving a global object specification from the server, the global object specification including at least one global object definition having a unique global object identification;
checking whether the global object specification received from the server contains a corresponding global object definition for each respective local object defined in the local object specification provided to the server; and
generating a signal indicating whether the global object specification and the local object specification define common object definitions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 37, 38, 44, 45)
reserving an object creation right with the server;
in response to reserving the object creation right with the server, defining the local object specification to include at least one local object definition and a corresponding local object identification that is unique to the at least one local object on the client; and
transferring the local object specification to the server.
-
-
3. The method of claim 2 wherein the step of reserving an object creation right with the server includes the step of:
checking for an existence of an object specification on the server, and if no object specification exists on the server, creating a reservation object specification on the server in order to reserve the object creation right with the server on behalf of the client, and if an object specification exists on the server, receiving a denial of the object creation right for the client.
-
4. The method of claim 1 wherein the step of generating a signal indicating whether the global object specification and the local object specification define common object definitions includes the steps of:
-
if the global object specification contains a corresponding global object definition for each respective local object defined in the local object specification, then replacing the local object specification in the client with the global object specification received from the server; and
If the global object specification does not contain a corresponding global object definition for each respective local object defined in the local object specification, then providing the indication of an error to the server.
-
-
5. The method of claim 1 wherein the signal indicates that the global object specification and the local object specification define common object definitions and wherein the method further comprising the steps of:
in response to the signal indicating that the global object specification and the local object specification define common object definitions, providing a confirmation of acceptance of the global object specification to the server to indicate to the server to send an update to other clients such that the other clients can create objects in conjunction with the server.
-
6. The method of claim 5 wherein the step of releasing the object creation right with the server comprises the step of providing an indication to the server to delete a reservation object specification on the server that reserve the object creation right with the server on behalf of the client.
-
7. The method of claim 1 wherein the step of receiving the global object specification receives a global object specification containing global object definitions that correspond to respective local object definitions in the local object specification, the global object definitions having respective global object identifications that are unique amongst all global object definitions created by the server.
-
8. The method of claim 7 wherein:
-
the client is client collaboration software performing on a client computer system involved in a collaboration session with the server;
the server is collaboration adapter software operating on a collaboration computer system; and
wherein the method further comprises the step of;
at the client computer system, determining that the server properly created the global object specification by verifying that local object definitions in the local object specification is identical to global object definitions in the global object specification; and
in response to determining that the server properly created the global object specification, providing confirmation of acceptance of the global object specification to the server such that the server can update the global object specification of other client computer systems performing client collaboration software such that all clients involved in the collaboration session with the server contain the global object definitions having unique global object identifications.
-
-
37. In a client computer system as in claim 1, the method further comprising the steps of:
-
providing an object operation to the server from the client performing on the client computer system;
receiving, at the client, a global object specification update from the server, the global object specification update indicating that the server performed the object operation on a global object specification maintained by the server; and
in response to receiving the global object specification update, performing the object operation on a global object specification maintained by the client.
-
-
38. The method of claim of claim 37 wherein the object operation is a create object operation, and wherein the step of providing the object operation to a server comprises the steps of:
-
defining at least one object property for a global object definition to be created by the server;
providing the object operation to the server including the at least one object property; and
wherein the step of receiving receives the global object specification update containing a new global object identification for a new global object definition to be created in the global object specification in the client computer system; and
wherein the step of performing the object operation on a global object specification maintained by the client includes the steps of;
generating the global object definition within the global object specification on the client computer system, the global object definition containing the at least one object property and containing the global object identification received from the global object specification update.
-
-
44. A method as in claim 1 further comprising:
-
ensuring that the server properly creates and manages a precise set of objects the client computer system provides the server by, at the client computer system;
comparing the local object specification provided to the server with the global object specification received from the server; and
utilizing the unique global object identification provided by the server to identify the global object specification.
-
-
45. A method as in claim 1 further comprising:
providing a high degree of certainty that the unique object identification, as generated by the server, is unique across all clients that access an object definition associated with a corresponding unique object identification.
-
9. In a server computer system, a method for defining objects, the method comprising the steps of:
-
receiving a local object specification from a client;
for each local object definition in the local object specification, defining, within a global object specification, a corresponding global object definition including a unique global object identification;
providing the global object specification to the client;
receiving, from the client, a request to reserve an object creation right on the server;
checking if the client is able to create an object on the server, and if the client is able to create an object on the server, returning an object creation right to the client, and if the client is not able to create an object on the server, providing a denial of the object creation right to the client;
in response to returning the object creation right to the client, receiving, from the client, a reservation object specification on the server that reserves the object creation right on behalf of the client; and
creating the reservation object specification on the server in order to reserve the object creation right with the server on behalf of the client. - View Dependent Claims (10, 11, 12, 13, 14, 15, 46)
creating a global object definition that contains object properties equivalent to object properties of the local object definition to which the global object definition corresponds;
generating an object identification for the unique global object identification that is unique amongst all global object identifications assigned to any existing global object definitions known to the server; and
assigning the unique global object identification to the global object definition such that the global object definition is uniquely identified amongst all global object definitions.
-
-
11. The method of claim 10 wherein the step of creating a global object definition that contains object properties equivalent to object properties of the local object definition to which the global object definition corresponds comprises the step of:
-
copying the local object definition in the local object specification to a global object definition within the global object specification to generate the global object definition which is a copy of the local object definition; and
wherein the step of assigning the unique global object identification to the global object definition replaces the local object identification copied to the global object definition with the unique global object identification generated by the step of generating an object identification for the unique global object identification.
-
-
12. The method of claim 9 further including the step of:
associating the global object definition to the global object specification.
-
13. The method of claim 9 wherein the step of receiving, from a client, a request to reserve an object creation right on the server comprises the steps of:
-
receiving an attempt to create a reservation object specification from the client in order to reserve the object creation right with the server on behalf of the client; and
wherein, if the step of checking if the client is able to create an object on the server determines that the client is able to create an object in the server, the method further includes the step of;
creating a reservation object specification on the server in order to reserve the object creation right with the server on behalf of the client.
-
-
14. The method of claim 9 further comprising the steps of:
-
receiving a confirmation of acceptance of the global object specification provided to the client; and
providing a global object specification update to other clients such that the other clients can retrieve the global object specification from the server.
-
-
15. The method of claim 14 further comprising the steps of:
- receiving a request from the other clients for the global object specification; and
in response to receiving the request from the other clients for the global object specification, providing the global object specification to the other clients.
- receiving a request from the other clients for the global object specification; and
-
46. A method as in claim 9, wherein defining a corresponding global object definition includes:
-
at the server computer system, replacing an identifier associated with the received local object specification with the unique global object identification so that an object specification associated with the received local object specification is globally unique; and
providing the unique global object identification along with the global object specification to the client.
-
-
16. A method for defining shared objects on a client and a server, the method comprising the steps of:
-
providing, from the client, a local object specification to the server;
receiving, in the server, the local object specification from the client;
in the server, for each local object definition in the local object specification, defining, within a global object specification, a corresponding global object definition including a unique global object identification;
providing, from the server, the global object specification to the client;
receiving, at the client, the global object specification from the server; and
comparing, in the client, the global object specification to the local object specification to determine that the server properly created the global object specification based upon the local object specification, and if the server properly created the global object specification, replacing the local object specification in the client with the global object specification received from the server, and if the server improperly created a global object specification, providing from the client an indication of an error to the server.
-
-
17. A client computer system comprising:
-
an interface;
a processor;
a memory system; and
an interconnection mechanism coupling the interface, the processor and the memory system;
wherein the memory system is encoded with an client object manager process that, when performed on the processor, operates as a client to cause the client computer system to define shared objects by performing the operations of;
providing a local object specification defined in the memory system to a server via the interface;
receiving, in the memory system, a global object specification from the server via the interface;
checking whether the global object specification received from the server contains a corresponding global object definition for each respective local object defined in the local object specification provided to the server; and
generating a signal in the memory system indicating whether the global object specification and the local object specification define common object definitions having respective unique object identifiers. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
reserving an object creation right with the server; and
in response to reserving the object creation right with the server, defining a local object specification in the memory system to include at least one local object definition and a corresponding local object identification that is unique to the at least one local object on the client; and
transferring the local object specification to the server via the interface.
-
-
19. The client computer system of claim 18 wherein when the processor performs the operation of reserving an object creation right with the server, the processor further performs the operations of:
checking for an existence of an object specification on the server, and if no object specification exists on the server, creating a reservation object specification on the server in order to reserve the object creation right with the server on behalf of the client, and if an object specification exists on the server, receiving, via the interface, a denial of the object creation right for the client.
-
20. The client computer system of claim 18 wherein when the processor performs the operation of generating a signal indicating whether the global object specification and the local object specification define common object definitions, the processor further performs the operations of:
-
if the global object specification contains a corresponding global object definition for each respective local object defined in the local object specification, then replacing the local object specification in the memory system in the client with the global object specification received from the server; and
if the global object specification does not contain a corresponding global object definition for each respective local object defined in the local object specification, then providing the indication of an error to the server via the interface.
-
-
21. The client computer system of claim 17 wherein the signal indicates that the global object specification and the local object specification define common object definitions and wherein the processor further performs the operations of:
-
in response to the signal indicating that the global object specification and the local object specification define common object definitions, providing a confirmation of acceptance of the global object specification to the server, via the interface, to indicate to the server to send an update to other clients such that the other clients can create objects in conjunction with the server; and
releasing the object creation right with the server.
-
-
22. The client computer system of claim 21 wherein when the processor performs the operation of releasing the object creation right with the server, the processor performs the operation of providing an indication to the server, via the interface, to delete a reservation object specification on the server that reserve the object creation right with the server on behalf of the client.
-
23. The client computer system of claim 17 wherein when the processor performs the operation of receiving the global object specification the processor performs the operation of:
receiving, via the interface, a global object specification containing global object definitions that correspond to respective local object definitions in the local object specification, the global object definitions having respective global object identifications that are unique amongst all global object definitions created by the server.
-
24. The client computer system of claim 23 wherein:
-
the client is client collaboration software performing on a client computer system involved in a collaboration session with the server;
the server is collaboration adapter software operating on a collaboration computer system; and
wherein the processor further performs the operation of;
in response to determining that the server properly created the global object specification, providing confirmation of acceptance of the global object specification to the server via the interface such that the server can update the global object specification of other client computer systems performing client collaboration software such that all clients involved in the collaboration session with the server contain the global object definitions having unique global object identifications.
-
-
25. A server computer system comprising:
-
an interface;
a processor;
a memory system; and
an interconnection mechanism coupling the interface, the processor and the memory system;
wherein the memory system is encoded with a server object manager process that, when performed on the processor, operates as a server to cause the server computer system to define objects by performing the operations of;
receiving a local object specification from a client via the interface;
for each local object definition in the local object specification, defining, within a global object specification in the memory system, a corresponding global object definition including a unique global object identification; and
providing the global object specification from the memory system to the client via the interface;
receiving, from a client, a request to reserve an object creation right on the server;
checking if the client is able to create an object on the server, and if the client is able to create an object on the server, returning an object creation right to the client, and if the client is not able to create an object on the server, providing a denial of the object creation right to the client;
in response to returning the object creation right to the client, receiving, from a client via the interface, a reservation object specification on the server that reserves the object creation right on behalf of the client; and
creating the reservation object specification in the memory system on the server in order to reserve the object creation right with the server on behalf of the client. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
creating a global object definition in the memory system that contains object properties equivalent to object properties of the local object definition to which the global object definition corresponds; and
generating an object identification for the unique global object identification that is unique amongst all global object identifications assigned to any existing global object definitions known to the server; and
assigning the unique global object identification to the global object definition in the memory system such that the global object definition is uniquely identified amongst all global object definitions in the memory system.
-
-
27. The server computer system of claim 26 wherein when the processor performs the operation of creating a global object definition that contains object properties equivalent to object properties of the local object definition to which the global object definition corresponds the processor performs the operations of:
-
copying the local object definition in the local object specification to a global object definition within the global object specification to generate the global object definition which is a copy of the local object definition; and
wherein the step of assigning the unique global object identification to the global object definition replaces the local object identification copied to the global object definition with the unique global object identification generated by the step of generating an object identification for the unique global object identification.
-
-
28. The server computer system of claim 27 wherein the processor further performs the operation of:
associating the global object definition to the global object specification.
-
29. The server computer system of claim 25 wherein when the processor performs the operation of receiving, from a client, a request to reserve an object creation right on the server, the processor performs the operations of:
-
receiving, via the interface, an attempt to create a reservation object specification from the client in order to reserve the object creation right with the server on behalf of the client; and
wherein, if the step of checking if the client is able to create an object on the server determines that the client is able to create an object in the server, the method further includes the step of;
creating a reservation object specification on the server in order to reserve the object creation right with the server on behalf of the client.
-
-
30. The server computer system of claim 25 wherein the processor further performs the operations of:
receiving, via the interface from the client, a confirmation of acceptance of the global object specification provided to the client; and
providing a global object specification update, via the interface to other clients such that the other clients can retrieve the global object specification from the server.
-
31. The server computer system of claim 25 wherein the processor further performs the operations of:
-
receiving, via the interface, a request from the other clients for the global object specification in the memory system; and
in response to receiving the request from the other clients for the global object specification, providing the global object specification in the memory system to the other clients via the interface.
-
-
32. The server computer system of claim 25 wherein the server computer system is a collaboration server and wherein the server object manager process encoded in the memory system is server collaboration software that, when performed on the processor, operates as a collaboration server to allow distribution of the global object specification to multiple client computer systems involved in a collaboration session.
-
33. A system for defining objects on a client and a server, the system comprising the steps of:
-
a client computer system configured with a client;
a server computer system configured with a server;
a network interconnecting the client computer system and the server computer system;
the client providing a local object specification to the server via the network;
the server receiving the local object specification from the client via the network;
for each local object definition in the local object specification, the server defining, within a global object specification, a corresponding global object definition including a unique global object identification;
the server providing the global object specification to the client via the network;
the client receiving the global object specification from the server; and
the client comparing the global object specification to the local object specification to determine whether the server properly created the global object specification based upon the local object specification by determining whether the global object specification and the local object specification define common object definitions, and if the server properly created the global object specification, replacing the local object specification in the client with the global object specification received from the server, and if the server improperly created a global object specification, providing from the client an indication of an error to the server.
-
-
34. A computer program product having a computer-readable medium including computer program logic encoded thereon for defining objects in a client, such that the computer program logic, when performed on at least one processor within a client computer system, causes the at least one processor to perform the operations of:
-
providing a local object specification to a server;
receiving a global object specification from the server;
checking whether the global object specification received from the server contains a corresponding global object definition for each respective local object defined in the local object specification provided to the server; and
generating a signal indicating whether the global object specification and the local object specification define common object definitions having respective unique object identifiers.
-
-
35. A computer program product having a computer-readable medium including computer program logic encoded thereon for defining objects in a server, such that the computer program logic, when performed on at least one processor within a server computer system, causes the at least one processor to perform the operations of:
-
receiving a local object specification from a client;
for each local object definition in the local object specification, defining, within a global object specification, a corresponding global object definition including a unique global object identification;
providing the global object specification to the client;
receiving, from a client, a request to reserve an object creation right on the server;
checking if the client is able to create an object on the server, and if the client is able to create an object on the server, returning an object creation right to the client, and if the client is not able to create an object on the server, providing a denial of the object creation right to the client;
in response to returning the object creation right to the client, receiving, from a client via the interface, a reservation object specification on the server that reserves the object creation right on behalf of the client; and
creating the reservation object specification in the memory system on the server in order to reserve the object creation right with the server on behalf of the client. - View Dependent Claims (36, 39)
creating a global object definition that contains object properties equivalent to object properties of the local object definition to which the global object definition corresponds;
generating an object identification for the unique global object identification that is unique amongst all global object identifications assigned to any existing global object definitions known to the server; and
assigning the unique global object identification to the global object definition such that the global object definition is uniquely identified amongst all global object definitions.
-
-
39. The method of claim of claim 36 wherein the object operation is a delete object operation, and wherein the step of providing the object operation to a server comprises the steps of:
-
defining at least one object property for a global object definition to be deleted from a global object specification maintained by the server;
providing the object operation to the server including the at least one object property; and
wherein the step of receiving receives the global object specification update containing a global object identification of an existing global object definition in the global object specification in the client computer system; and
wherein the step of performing the object operation on a global object specification maintained by the client includes the steps of;
removing a global object definition within the global object specification that corresponds to the global object identification received from the global object specification update.
-
-
40. In a client computer system, a method for defining objects, the method comprising the steps of:
-
from the client computer system;
providing a local object specification to a server, the local object specification including at least one local object definition generated by the client computer system;
at the client computer system;
receiving a global object specification from the server, the global object specification including at least one global object definition having a unique global object identification, wherein the server generates the unique global object identification associated with the at least one global object specification, the unique global object identification generated by the server being different than a client generated identifier provided with the local object specification; and
generating a signal indicating whether the global object specification and the local object specification include at least one matching object definition. - View Dependent Claims (41, 42, 43)
at the client computer system, comparing the at least one local object definition in the local object specification to the at least one global object definition in the global object specification to identify whether the server properly created the global object specification.
-
-
42. A method as in claim 41 further comprising:
-
checking whether the global object specification contains a corresponding global object definition for each respective local object defined in the local object specification; and
if the global object specification contains a corresponding global object definition for each respective local object defined in the local object specification, replacing the local object specification in the client with the global object specification received from the server.
-
-
43. A method as in claim 42 further comprising:
if the global object specification does not contain a corresponding global object definition for each respective local object defined in the local object specification, providing the indication of an error to the server.
Specification