Method, computer program product, and data structure for publishing a data object over a store and forward transport
First Claim
1. A method for sharing a data object amongst multiple clients and distributing changes made to the data object among the clients comprising the steps of:
- publishing the data object to at least one subscription client from a publishing client so that a data object copy resides at each subscription client;
receiving, at the publishing client, changes to the data object from one of the subscription clients over a store and forward transport; and
distributing the changes from the publishing client to the clients not aware of the changes so that the data object and data object copies may reflect the changes.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and computer program product instituting an entirely client-based system for sharing messages and other data objects is provided. Communication between clients occurs over a generic store and forward transport such as the Internet message protocol described in RFC 822 and implemented on the Internet or other wide area network. A message or other data object is originally maintained by a “publication” client that publishes the data object and any modifications thereto to one or more “subscription” clients that will each maintain a copy thereof. As modifications are made by a client (either publication or subscription) to the client copy of the data object, the modified data object is sent, using the store and forward transport, to the publication client to update the data object. Once the data object is updated by the publication client, copies of the modified data object are sent using the store and forward transport to each subscription client so that the subscription client may update the subscription copy. One embodiment of the present invention designates a messaging folder containing one or more data objects as a publication folder (managed by a publication client) that is replicated out to subscription clients over the store and forward transport. The subscription clients each have a corresponding subscription folder wherein the subscription client copies of the data objects are maintained. Any modifications to the data objects are passed to the publication client for verification, replacement in the publication folder, and distribution out to each subscription client for replacement in the corresponding subscription folder. The addition of new data objects or the deletion of existing data objects are handled in like manner through the publication client.
-
Citations
30 Claims
-
1. A method for sharing a data object amongst multiple clients and distributing changes made to the data object among the clients comprising the steps of:
-
publishing the data object to at least one subscription client from a publishing client so that a data object copy resides at each subscription client;
receiving, at the publishing client, changes to the data object from one of the subscription clients over a store and forward transport; and
distributing the changes from the publishing client to the clients not aware of the changes so that the data object and data object copies may reflect the changes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26)
sending a subscription invitation message over a store and forward transport to at least one potential subscription client;
receiving a subscription acknowledgment message over a store and forward transport from each potential subscription client desiring to subscribe to the data object; and
sending the data object to each acknowledged subscription client over a store and forward transport.
-
-
4. A method as recited in claim 1 wherein the publishing step comprises the step of sending at least one message over a store and forward transport having associated therewith the data object to each subscription client.
-
5. A method as recited in claim 1 wherein the receiving step comprises receiving a store and forward message having associated therewith the modified data object.
-
6. A method as recited in claim 1 wherein the distributing step comprises sending a store and forward message having associated therewith the modified data object to each of the subscription clients.
-
7. A method as recited in claim 1 wherein the modified data object is a data object that has been deleted by a subscription client and the receiving step comprises receiving a message over a store and forward transport indicating deletion of the data object, and wherein the distributing step comprises sending a message over a store and forward transport to each subscription client indicating the deletion of the particular data object so that each subscription client may make the corresponding deletion of the respective data object copy.
-
8. A method as recited in claim 1 wherein the subscription clients have different permissions with respect to the data object.
-
9. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 1.
-
10. A method as recited in claim 1, further comprising:
-
a monitoring, client not aware of the changes, the incoming messages delivered by a store and forward transport for messages from a publishing client, the messages used for maintaining a subscription folder that contains data objects;
transferring the messages from the publishing client to a pending messages folder if the message represents a change in a data object such as the changes to the data object received from one of the subscription clients over the store and forward transport; and
processing each message in the pending message folder.
-
-
11. A method as recited in claim 10 wherein processing each message comprises:
-
parsing the message for an attached data object; and
if an attached data object is found during parsing, placing the data object into the subscription folder.
-
-
12. A method as recited in claim 10 wherein processing each message comprises:
-
parsing the message for a publisher table of contents comprising a list of data object references, the publisher table of contents corresponding to the subscription folder;
if a publisher table of contents is found during parsing, comparing the list of data object references in the publisher table of contents with the data objects in the subscription folder and based on the comparison performing the following;
deleting data objects from the subscription folder that do not appear on the publisher table of contents list of data object references; and
sending a request message to the publishing client for each data object not found in the subscription folder but found on the list of data object references of the publisher table of contents.
-
-
13. A method as recited in claim 12 wherein each data object in the subscription folder has associated therewith a version number, the publisher table of contents further comprises a version number for each data object reference, the comparing the list of data object references comprises comparing the data object reference version number with the corresponding subscription folder data object version number, and sending a request message further comprises sending a request message to the publishing client for each data object having a higher version number on the publisher table of contents data object reference than on the subscription folder version number.
-
14. A method as recited in claim 1, further comprising:
-
monitoring, at the publishing client, the incoming messages delivered by a store and forward transport for messages from subscription clients, the messages used for maintaining a publication folder that contains data objects;
transferring the messages from the subscription clients to a pending messages folder if the message represents a change in a data object such as the changes to the data object received from the one of the subscription clients over the store and forward transport; and
processing each message in the pending message folder.
-
-
15. A method as recited in claim 14 wherein processing each message comprises:
-
parsing the message for an attached data object; and
if an attached data object is found during parsing, placing the data object into the publication folder and sending an update message to at least one subscription client over a store and forward transport containing the data object as an attachment.
-
-
16. A method as recited in claim 14 wherein processing each message comprises:
-
determining if the message is a request for a particular data object; and
if the message is a request for a particular data object, sending an update message to the subscription client having the particular data object as an attachment.
-
-
17. The method in accordance with claim 1, wherein the receiving, at the publishing client, of changes to the data object from one of the subscription clients over a store and forward transport comprises the following:
receiving, at the publishing client, changes to the data object from one of the subscription clients using an RFC 822 Internet message protocol specification.
-
19. A method as recited in claim 12 further comprising the step of periodically sending a store and forward message containing current modification status of each data object contained in the publication folder to every subscription client so that each subscription client may verify that the contents of the respective subscription folder is up to date with respect to the publication folder.
-
20. A method as recited in claim 12 wherein the publishing step comprises the steps of:
-
sending a subscription invitation message over a store and forward transport to at least one potential subscription client;
receiving a subscription acknowledgment message over a store and forward transport from each potential subscription client desiring to subscribe to the publication folder and contained data objects; and
sending the data objects contained in the publication folder to each acknowledged subscription client over a store and forward transport.
-
-
21. A method as recited in claim 12 wherein the publishing step comprises the step of sending at least one message over a store and forward transport having associated therewith the data objects contained in the publication folder to each subscription client.
-
22. A method as recited in claim 12 wherein the receiving step comprises receiving a store and forward message having associated therewith the modified data object.
-
23. A method as recited in claim 12 wherein the distributing step comprises sending a store and forward message having associated therewith the modified data object to each of the subscription clients.
-
24. A method as recited in claim 12 wherein the modified data object is a data object that has been deleted by a subscription client and the receiving step comprises receiving a message over a store and forward transport indicating deletion of a particular data object, wherein the replacing step comprises deleting the data object from the publication folder, and wherein the distributing step comprises sending a message over a store and forward transport indicating the deletion of the particular data object so that each subscription client may make the corresponding deletion of the particular data object from the respective subscription folder.
-
25. A method as recited in claim 12 wherein the subscription clients have different permissions with respect to the publication folder and the data objects contained therein.
-
26. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 12.
-
18. A method for sharing data objects contained in a publication folder amongst multiple clients and distributing changes made to the data objects among the clients comprising the steps of:
-
publishing, from a publishing client, the publication folder containing the data objects to at least one subscription client where a subscription folder containing the same data objects is maintained;
receiving, at the publishing client, a modified data object corresponding to a data object contained in the publication folder from one of the subscription clients over a store and forward transport;
replacing, in the publication folder, the corresponding data object with the modified data object in the folder; and
distributing the modified data object from the publishing client to every subscription client so that each subscription client may replace the corresponding data object with the modified data object in the subscription folder.
-
-
27. A computer-readable medium having stored thereon a data structure, comprising:
-
a plurality of data entries, each data entry corresponding to each client that subscribes to at least one data object stored in a folder, each data entry comprising;
a first data field containing data representing an identification of a subscription client;
a second data field containing data representing an identification of a data object; and
a third data filed containing data representing a permission of how the subscription client identified in the first data filed can act upon the data object identified in the second data field, wherein when the subscription client acts upon the data object, the changes to the data object are transmitted over a store and forward transport to a publishing client which then itself distributes the modified data object over a store and forward transport to the other subscription clients represented by data entries in the plurality of data entries that are not aware of the changes. - View Dependent Claims (28)
-
-
29. A computer-readable medium for use in implementing a method for sharing a data object amongst multiple clients and distributing changes made to the data object among the clients, the computer-readable medium having stored thereon computer-executable instructions for performing the following:
-
causing the data object to be published to at least one subscription client from a publishing client so that a data object copy resides at each subscription client;
detecting the receipt, at the publishing client, of changes to the data object from one of the subscription clients over a store and forward transport; and
causing the changes from the publishing client to be distributed to the clients not aware of the changes so that the data object and data object copies may reflect the changes.
-
-
30. A method for sharing data objects contained in a publication folder amongst multiple clients and distributing changes made to the data objects among the clients comprising the steps of:
-
causing the publication folder to be published from a publishing client to at least one subscription client where a subscription folder containing the same data objects is maintained, the publication folder containing the data objects;
detecting the receipt, at the publishing client, of a modified data object corresponding to a data object contained in the publication folder from one of the subscription clients over a store and forward transport;
replacing, in the publication folder, the corresponding data object with the modified data object in the folder; and
causing the modified data object to be distributed from the publishing client to every subscription client so that each subscription client may replace the corresponding data object with the modified data object in the subscription folder.
-
Specification