CA2446283A1 - Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system - Google Patents

Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system Download PDF

Info

Publication number
CA2446283A1
CA2446283A1 CA002446283A CA2446283A CA2446283A1 CA 2446283 A1 CA2446283 A1 CA 2446283A1 CA 002446283 A CA002446283 A CA 002446283A CA 2446283 A CA2446283 A CA 2446283A CA 2446283 A1 CA2446283 A1 CA 2446283A1
Authority
CA
Canada
Prior art keywords
delta
endpoint
data change
deltas
container
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CA002446283A
Other languages
French (fr)
Other versions
CA2446283C (en
Inventor
Ransom Richardson
Raymond E. Ozzie
Jack E. Ozzie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Groove Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Groove Networks Inc filed Critical Groove Networks Inc
Publication of CA2446283A1 publication Critical patent/CA2446283A1/en
Application granted granted Critical
Publication of CA2446283C publication Critical patent/CA2446283C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database

Abstract

[190, In a peer-to-peer collaboration system, deltas containing data change commands are organized in a persistent data structure called a delta log. The delta log is organized into blocks, which are the largest division in the delta log. In turn, blocks contain groups, groups contain chains and chains contain deltas. Delta blocks are used to implement priority deltas that are used to limit the collection of data change commands that must be transferred. Within a block the deltas are organized by groups, each of which is a set of deltas organized into chains. The delta group in used to determine which deltas to purge. The chains are ordered by increasing creator ID of the endpoint that created the chain. Organizing the delta log in this fashion allows the log to be "walked" to detect convergence problems. To achieve causality-preservation, each delta has a list of dependencies representing other deltas that must be executed before the current delta can be executed. The dynamics manager uses the ability to do (execute) and undo commands to perform roll back and roll forward operations on deltas in order to achieve convergence.

Claims (78)

1. Apparatus for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands contained in deltas to each other in order to update the local data copies, the apparatus comprising:
a persistent delta log data structure located in each endpoint that stores deltas and their contents;
a mechanism in each endpoint that inserts each delta generated by the each endpoint and received from other endpoints into the delta log so that each delta received from an endpoint is kept in a chain in order of generation and reception; and a mechanism in each endpoint that executes the data change commands in a delta, the mechanism using the contents of the delta log to selectively undo and redo data change commands in order to achieve convergence of the data change commands at all endpoints.
2. The apparatus of claim 1 wherein a delta generated by the each endpoint and received from other endpoints is inserted into a delta log at a point determined by the endpoint that generated that delta and a sequence number.
3. The apparatus of claim 1 wherein each chain in a delta log is comprised of deltas received from an endpoint ordered by the sequence number.
4. The apparatus of claim 1 wherein each chain in a delta log has a predetermined maximum length.
5. The apparatus of claim 1 wherein the chains in the delta log are arranged in groups wherein, within each group, chains are arranged in order of increasing creator ID wherein the creator ID is the combination of an endpoint ID for an endpoint and a random number generated each time that endpoint opens the shared space.
6. The apparatus of claim 1 further comprising a mechanism for generating endpoint pulses that are transmitted between the endpoints in the shared space wherein each endpoint pulse is generated by an endpoint and comprises information identifying a delta group that that endpoint is willing to delete.
7. The apparatus of claim 6 further comprising means in each endpoint that receives endpoint pulses generated by other endpoints and deletes deltas in groups selected by comparing the information in the endpoint pulses in order to determine delta groups that all endpoints are willing to delete.
8. The apparatus of claim 1 wherein the mechanism in each endpoint that executes the data change commands in a delta comprises a mechanism that uses the chains in a delta log to sequentially examine deltas in order to undo data change commands in selected deltas.
9. The apparatus of claim 8 wherein the mechanism in each endpoint that executes the data change commands in a delta comprises a mechanism that uses the chains in a delta log to sequentially examine deltas in order to redo data change commands that had been previously undone.
10. The apparatus of claim 1 wherein each delta has a list of dependencies representing other deltas that must be executed before the each delta can be executed.
11. The apparatus of claim 10 wherein the mechanism in each endpoint that executes the data change commands in a delta comprises means for using undo information contained in a delta in order to undo data change commands contained in that delta.
12. The apparatus of claim 11 further comprising a data change engine that inserts undo information into a delta at the same time that data change commands in the delta are executed.
13. The apparatus of claim 10 wherein the mechanism in each endpoint that inserts each delta generated by the each endpoint and received from other endpoints into the delta log inserts the delta chains into blocks based on a priority assigned to each delta so that each block contains one delta with highest priority, all deltas on which the highest priority delta depends are located in blocks created before the each block, all deltas that are independent of the highest priority delta are in the each block and all deltas that depend on the highest priority delta are in the each block and blocks created after the each block.
14. The apparatus of claim 10 further comprising a mechanism for creating an asynchronous delta wherein no other deltas are dependent on the asynchronous delta.
15. The apparatus of claim 10 further comprising a mechanism in an endpoint for fetching from other endpoints deltas in a list of dependencies, which deltas are not in the delta log of that endpoint.
16. The apparatus of claim 15 wherein the mechanism for fetching deltas sends a fetch request to another endpoint including a fetch request sequence number and wherein the other endpoint comprises a fetch response mechanism that includes a fetch response sequence number and wherein the fetch response mechanism returns requested deltas to the mechanism for fetching deltas when the fetch request sequence number is equal to the fetch response sequence number.
17. The apparatus of claim 16 wherein the fetch response mechanism sends an update message to the mechanism for fetching when the fetch request sequence number is not equal to the fetch response sequence number.
18. The apparatus of claim 17 wherein the mechanism for fetching is responsive to the update message for incrementing the fetch request sequence number.
19. The apparatus of claim 10 further comprising a mechanism for creating an identity disseminated delta that is sent to a subset of endpoints in the shared space and which is inserted into a delta log at a point determined by the endpoint that generated that delta and a sub-sequence number.
20. The apparatus of claim 1 further comprising a mechanism in each endpoint for storing persistent data representing a state of all endpoints in the shared space including an active state end a mechanism for sending deltas only to endpoints with an active state.
21. The apparatus of claim 20 wherein the mechanism in each endpoint that executes the data change commands in a delta is responsive to a state of the endpoint that generated the delta for selectively executing the data change commands in the delta.
22. The apparatus of claim 20 wherein each endpoint has a current state and each endpoint comprises a mechanism that changes the endpoint current state to another state in response to a predetermined event.
23. A method for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands contained in deltas to each other in order to update the local data copies, the method comprising:
(a) storing deltas and their contents in a persistent delta log data structure located in each endpoint;
(b) inserting each delta generated by the each endpoint and received from other endpoints into the delta log so that each delta received from an endpoint is kept in a chain in order of generation and reception; and (c) executing the data change commands in a delta, the mechanism using the contents of the delta log to selectively undo and redo data change commands in order to achieve convergence of the data change commands at all endpoints.
24. The method of claim 23 wherein step (b) comprises inserting a delta generated by the each endpoint and received from other endpoints into a delta log at a point determined by the endpoint that generated that delta and a sequence number.
25. The method of claim 23 wherein each chain in a delta log is comprised of deltas received from an endpoint ordered by the sequence number.
26. The method of claim 23 wherein each chain in a delta log has a predetermined maximum length.
27. The method of claim 23 wherein step (b) comprises arranging the chains in the delta log in groups wherein, within each group, chains are arranged in order of increasing creator ID wherein the creator ID is the combination of an endpoint ID
for an endpoint and a random number generated each time that endpoint opens the shared space.
28. The method of claim 23 further comprising:
(d) generating endpoint pulses that are transmitted between the endpoints in the shared space wherein each endpoint pulse is generated by an endpoint and comprises information identifying a delta group that that endpoint is willing to delete.
29 The method of claim 28 further comprising:
(e) receiving endpoint pulses generated by other endpoints and deleting deltas in groups selected by comparing the information in the endpoint pulses in order to determine delta groups that all endpoints are willing to delete.
30. The method of claim 23 wherein step (c) comprises using the chains in a delta log to sequentially examine deltas in order to undo data change commands in selected deltas.
31. The method of claim 30 wherein step (c) comprises using the chains in a delta log to sequentially examine deltas in order to redo data change commands that had been previously undone.
32. The method of claim 23 wherein each delta has a list of dependencies representing other deltas that must be executed before the each delta can be executed.
33. The method of claim 32 wherein step (c) comprises using undo information contained in a delta in order to undo data change commands contained in that delta.
34. The method of claim 33 further comprising:
(d) inserting undo information into a delta at the same time that data change commands are executed.
35. The method of claim 32 wherein step (b) comprises inserting the delta chains into blocks based on a priority assigned to each delta so that each block contains one delta with highest priority, all deltas on which the highest priority delta depends are located in blocks created before the each block, all deltas that are independent of the highest-priority delta are in the each block and all deltas that depend on the highest priority delta are in the each block and blocks created after the each block.
36. The method of claim 32 further comprising:
(d) creating an asynchronous delta wherein no other deltas are dependent on the asynchronous delta.
37. The method of claim 32 further comprising:
(d) fetching to a first endpoint from other endpoints deltas in a list of dependencies, which deltas are not in the delta log of the first endpoint.
38. The method of claim 37 wherein step (d) comprises sending a fetch request from the first endpoint to another endpoint including a fetch request sequence number and wherein the other endpoint comprises a fetch response mechanism that includes a fetch response sequence number and wherein step (d) further comprises returning requested deltas from the another endpoint to the first endpoint when the fetch request sequence number is equal to the fetch response sequence number.
39. The method of claim 38 wherein step (d) further comprises sending an update message to first endpoint when the fetch request sequence number is not equal to the fetch response sequence number.
40. The method of claim 39 wherein step (d) further comprises incrementing the fetch request sequence number in response to the update message.
41. The method of claim 32 further comprising creating an identity disseminated delta that is sent to a subset of endpoints in the shared space and inserting the identity disseminated delta into the delta log at a point determined by the endpoint that generated that delta and a sub-sequence number.
42. The method of claim 23 further comprising:
(d) storing persistent data in each endpoint representing a state of all endpoints in the shared space including an active state; and (e) sending deltas only to endpoints with an active state.
43. The method of claim 42 wherein step (c) comprises selectively executing the data change commands in the delta in response to a state of the endpoint that generated the delta.
44. The method of claim 42 wherein each endpoint has a current state and the method further comprises:
(f) changing the endpoint current state to another state in response to a predetermined event.
45. A computer program product for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands contained in deltas to each other in order to update the local data copies, the computer program product comprising a computer usable medium having computer readable program code thereon, including:
program code for storing deltas and their contents in a persistent delta log data structure located in each endpoint;
program code for inserting each delta generated by the each endpoint and received from other endpoints into the delta log so that each delta received from an endpoint is kept in a chain in order of generation and reception; and program code for executing the data change commands in a delta, the mechanism using the contents of the delta log to selectively undo and redo data change commands in order to achieve convergence of the data change commands at all endpoints.
46. The computer program product of claim 45 wherein the program code for inserting each delta into the delta log comprises program code for inserting a delta generated by the each endpoint and received from other endpoints into a delta log at a point determined by the endpoint that generated that delta and a sequence number.
47. The computer program product of claim 45 wherein each chain in a delta log is comprised of deltas received from an endpoint ordered by the sequence number.
48. The computer program product of claim 45 wherein each chain in a delta log has a predetermined maximum length.
49. The computer program product of claim 45 wherein the program code for inserting each delta into the delta log comprises program code for arranging the chains in the delta log in groups wherein, within each group, chains are arranged in order of increasing creator ID wherein the creator ID is the combination of an endpoint ID for an endpoint and a random number generated each time that endpoint opens the shared space.
50. Apparatus for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands contained in deltas to each other in order to update the local data copies, the apparatus comprising:
a persistent delta log data structure located in each endpoint that stores deltas and their contents;
means in each endpoint for inserting each delta generated by the each endpoint and received from other endpoints into the delta log so that each delta received from an endpoint is kept in a chain in order of generation and reception;
and means in each endpoint for executing the data change commands in a delta, the executing. means using the contents of the delta tog to selectively undo and redo data change commands in order to achieve convergence of the data change commands at all endpoints.
51. The apparatus of claim 50 wherein the inserting means is responsive to a delta generated by the each endpoint and received from other endpoints for inserting the delta into a delta log at a point determined by the endpoint that generated that delta and a sequence number.
52. The apparatus of claim 50 wherein each chain in a delta log is comprised of deltas received from an endpoint ordered by the sequence number.
53. The apparatus of claim 55 wherein each chain in a delta log has a predetermined maximum length.
54. The apparatus of claim 50 wherein the inserting means comprises means for arranging chains in the delta log into groups wherein, within each group, chains are arranged in order of increasing creator ID wherein the creator ID is the combination of an endpoint ID for an endpoint and a random number generated each time that endpoint opens the shared space.
55. Apparatus for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands to each other in order to update the local data copies, the apparatus comprising:
a first tool in one endpoint that is responsive to user actions at the endpoint for creating a first delta container to transmit data change commands to other endpoints and for adding data change commands to the first delta container;
a second tool in the one endpoint that is called by the first tool to add data change commands to the first delta container; and means in the second tool for creating a second delta container, adding the second delta container to the first delta container and adding data change commands to the second delta container.
56. The apparatus of claim 55 wherein at least one of the data change commands includes undo information for reversing the data change performed by the command.
57. The apparatus of claim 55 further comprising a data change engine for executing the data change commands in the first delta container and the data change commands in the second delta container and a dynamics manager for adding the data change commands in the second delta container and undo information corresponding to the data change commands in the second delta container to the beginning of the first delta container.
58. The apparatus of claim 57 wherein the data change engine executes data change commands added to the first delta container before the second delta container was added to the first delta container after the data change commands in the second delta container are executed and added.
59. The apparatus of claim 58 wherein the data change engine comprises means responsive to the occurrence of an error during the execution of the data change commands in the first delta container for aborting the execution of the data change commands in the second delta container.
60. A method for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands to each other in order to update the local data copies, the method comprising:
(a) using a first tool to create a first delta container in response to user actions at one endpoint to transmit data change commands to other endpoints;
(b) using the first tool to add data change commands to the first delta container;
(c) calling a second too! in the one endpoint with the first tool to add data change commands to the first delta container;
(d) creating a second delta container with the second tool; and (e) using the second tool to add the second delta container to the first delta container and to add data change commands to the second delta container.
61. The method of claim 60 wherein at least one of the data change commands includes undo information for reversing the data change performed by the command.
62. The method of claim 60 further comprising:
(f) executing the data change commands in the second delta container and the data change commands in the first delta container; and (g) after executing the data change commands in the second delta container, adding the data change commands in the second delta container and undo information corresponding to the data change commands in the second delta container to the beginning of the first delta container.
63. The method of claim 62 wherein step (f) comprises executing the data change commands added to the first delta container before the second delta container was added after step (g) is performed.
64. The method of claim 58 further comprising:
(h) aborting the execution of the data change commands in the second delta container upon the occurrence of an error during the execution of the data change commands in the first delta container.
65. Apparatus for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands contained in delta containers to each other in order to update the local data copies, the apparatus comprising:
a data change engine in one endpoint for executing the data change commands in a first delta container, for generating undo information in order to reverse the effects of the data change commands and for storing the undo information in the first data change container;
means in the data change engine and responsive to the execution of a selected data change command for creating a second delta container in the one endpoint and for adding data change commands to the second delta container.
66. The apparatus of claim 65 further comprising means for executing the commands in the second delta container and for generating undo information for reversing the effects of the commands in the second delta container and means operable upon execution for storing the commands in the second delta container and undo information generated for those commands in the undo information of the first delta container.
67. The apparatus of claim 66 further comprising means for using the undo information in the first delta container to reverse the effect of the commands contained in the first delta container wherein the means for using the undo information reverses commands originally stored in the second delta container before the selected command that caused the second delta container to be created is reversed.
68. A method for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands contained in delta containers to each other in order to update the local data copies, the method comprising:

(a) executing the data change commands in a first delta container, generating undo information in order to reverse the effects of the data change commands and storing the undo information in the first data change container;
(b) responsive to the execution of a selected data change command, creating a second delta container in the one endpoint; and (c) adding data change commands to the second delta container.
69. The method of claim 68 further comprising:
(d) executing the commands in the second delta container and generating undo information for reversing the effects of the commands in the second delta container; and (e) storing the executed commands from the second delta container and undo information generated for those commands in the undo information of the first delta container.
70. The method of claim 69 further comprising:
(f) using the undo information in the first delta container to reverse the effect of the commands contained in the first delta container; and (g) during the performance of step (f) reversing commands originally stored in the second delta container before the selected command that caused the second delta container to be created is reversed.
71. Apparatus for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands contained in deltas to each other in order to update the local data copies, the apparatus comprising:
a conflict region in each delta that identifies other deltas with which the execution of the each delta conflicts;

a persistent delta log data structure located in each endpoint that stores deltas and their contents;
a mechanism in each endpoint that inserts each delta generated by the each endpoint and received from other endpoints into the delta log in a consistent order across all endpoints based on a group number and sequence number in that delta; and a data engine that walks backward over the delta log starting from the last delta entered and proceeding towards the first delta entered and compares the conflict regions of each executed delta with the conflict regions of other deltas entered into the log and reverses the effect of each executed delta that conflicts with another delta entered into the log.
72. The apparatus of claim 71 wherein the data engine comprises means for reversing the effect of each executed delta that has a conflict by iterating in reverse order over the data change commands in the delta and using undo information in the delta for each data change command to reverse the effect of the command.
73. The apparatus of claim 72 wherein, after reversing the effect of each delta that conflicts with another delta, the data change engine walks backward over the delta log starting from the last delta entered and proceeding towards the first delta entered and re-executes the data change commands in each delta that was reversed.
74. The apparatus of claim 73 wherein the conflict region of each delta is set when the delta is created.
75. A method for maintaining consistency of a shared space across multiple endpoints in a collaborative computer system wherein each endpoint has a local data copy and endpoints transmit data change commands contained in deltas to each other in order to update the local data copies, the method comprising:
(a) creating a conflict region in each delta that identifies other deltas with which the execution of the each delta conflicts;
(b) storing deltas and their contents in a persistent delta tog data structure located in each endpoint;
(c) inserting each delta generated by the each endpoint and received from other endpoints into the delta fog in a consistent order across all endpoints based on a group number and a sequence number in that delta; and (d) walking backward over the delta log starting from the last delta entered and proceeding towards the first delta entered, comparing the conflict regions of each executed delta with the conflict regions of other deltas entered into the log and reversing the effect of each executed delta that conflicts with another delta entered into the log.
76. The method of claim 75 wherein step (d) comprises reversing the effect of each executed delta that has a conflict by iterating in reverse order over the data change commands in the delta and using undo information in the delta for each data change command to reverse the effect of the command.
77. The method of claim 75 further comprising:
(e) after reversing the effect of each delta that conflicts with another delta, walking backward aver the delta log starting from the last delta entered and proceeding towards the first delta entered and re-executing the data change commands in each delta that was reversed.
78. The method of claim 77 wherein step (a) comprises creating the conflict region of each delta when the delta is created.
CA002446283A 2002-10-24 2003-10-23 Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system Expired - Fee Related CA2446283C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/279,785 2002-10-24
US10/279,785 US7340502B2 (en) 2002-10-24 2002-10-24 Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system

Publications (2)

Publication Number Publication Date
CA2446283A1 true CA2446283A1 (en) 2004-04-24
CA2446283C CA2446283C (en) 2009-12-22

Family

ID=32106809

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002446283A Expired - Fee Related CA2446283C (en) 2002-10-24 2003-10-23 Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system

Country Status (8)

Country Link
US (2) US7340502B2 (en)
EP (1) EP1418726B1 (en)
JP (1) JP4684546B2 (en)
KR (1) KR101021399B1 (en)
AT (1) ATE357700T1 (en)
CA (1) CA2446283C (en)
DE (1) DE60312624T2 (en)
IL (1) IL158508A (en)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859821B1 (en) * 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
US7509378B2 (en) * 2003-03-11 2009-03-24 Bea Systems, Inc. System and method for message ordering in a message oriented network
US20050033625A1 (en) * 2003-08-06 2005-02-10 International Business Machines Corporation Method, apparatus and program storage device for scheduling the performance of maintenance tasks to maintain a system environment
US7383302B2 (en) * 2003-09-15 2008-06-03 International Business Machines Corporation Method and system for providing a common collaboration framework accessible from within multiple applications
US7945675B2 (en) * 2003-11-03 2011-05-17 Apacheta Corporation System and method for delegation of data processing tasks based on device physical attributes and spatial behavior
US20050204297A1 (en) * 2003-12-22 2005-09-15 International Business Machines Corporation Combined synchronous and asynchronous logical components in a collaborative context
US8171387B2 (en) * 2004-05-13 2012-05-01 Boardwalk Collaboration, Inc. Method of and system for collaboration web-based publishing
JP4972901B2 (en) * 2004-11-10 2012-07-11 日本電気株式会社 Information sharing space providing system, information sharing space providing method, and computer program
CN1972200B (en) * 2005-02-21 2010-12-22 索尼计算机娱乐公司 Network system, and constitutive component therefor, and visualization method for network
US20060265396A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265394A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265395A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US7610287B1 (en) * 2005-06-28 2009-10-27 Google Inc. System and method for impromptu shared communication spaces
US7930346B2 (en) * 2005-08-24 2011-04-19 Microsoft Corporation Security in peer to peer synchronization applications
US8819536B1 (en) 2005-12-01 2014-08-26 Google Inc. System and method for forming multi-user collaborations
US20070198992A1 (en) * 2006-01-26 2007-08-23 International Business Machines Corporation Changing submitted asynchronous business events to synchronous business events in a Business processing system
US8965874B1 (en) 2006-08-04 2015-02-24 Google Inc. Dynamic aggregation of users
US20080148368A1 (en) * 2006-12-14 2008-06-19 Mary Ellen Zurko Secure extranet access to collaborative activities in a collaborative computing environment
US7900142B2 (en) * 2007-01-15 2011-03-01 Microsoft Corporation Selective undo of editing operations performed on data objects
US8286069B2 (en) * 2007-01-26 2012-10-09 Myspace Llc System and method for editing web-based video
US20080270629A1 (en) * 2007-04-27 2008-10-30 Yahoo! Inc. Data snychronization and device handling using sequence numbers
GB0712935D0 (en) * 2007-07-04 2007-08-15 Deltamxl Ltd Representation of multiple markup language files in one file for the productionof new new markup language files
US9401957B2 (en) * 2007-09-14 2016-07-26 International Business Machines Corporation System and method for synchronization between servers
US8774374B2 (en) * 2007-12-13 2014-07-08 Verizon Patent And Licensing Inc. Managing visual voicemail from multiple devices
KR101425621B1 (en) * 2008-01-15 2014-07-31 삼성전자주식회사 Method and system for sharing contents securely
US8151145B2 (en) * 2008-04-03 2012-04-03 Oracle America, Inc. Flow control timeout mechanism to detect PCI-express forward progress blockage
KR101467512B1 (en) 2008-04-30 2014-12-02 삼성전자주식회사 P2P Network System And Operating Method thereof
US8010487B2 (en) 2008-06-27 2011-08-30 Microsoft Corporation Synchronization and collaboration within peer-to-peer and client/server environments
US8140478B2 (en) * 2009-01-29 2012-03-20 Microsoft Corporation Commit rate management with decoupled commit operations
US8275869B2 (en) * 2009-08-05 2012-09-25 Tellabs Operations, Inc. Re-synchronizing data between network elements and network management system using partial node discovery
US8732247B2 (en) * 2009-09-28 2014-05-20 Bjorn Michael Dittmer-Roche System and method of simultaneous collaboration
US8949346B2 (en) * 2010-02-25 2015-02-03 Cisco Technology, Inc. System and method for providing a two-tiered virtual communications architecture in a network environment
US9170123B2 (en) 2010-08-06 2015-10-27 Nokia Technologies Oy Method and apparatus for generating information
US20120036188A1 (en) * 2010-08-06 2012-02-09 Nokia Corporation Method and Apparatus for Aggregating Document Information
US8935214B2 (en) * 2010-08-16 2015-01-13 Mimosa Systems, Inc. Storing electronic content with time-varying properties
US9092499B2 (en) * 2012-01-20 2015-07-28 Blackberry Limited Synchronizing endpoint data stores having disparate schemas
US20130244792A1 (en) * 2012-03-13 2013-09-19 Zynga Inc. Game environment utilizing a lock free memory system
US9087105B2 (en) * 2012-10-04 2015-07-21 Adobe Systems Incorporated Rule-based extraction, transformation, and loading of data between disparate data sources
US10528610B2 (en) * 2014-10-31 2020-01-07 International Business Machines Corporation Customized content for social browsing flow
US20160344677A1 (en) 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Unified messaging platform for providing interactive semantic objects
US10216709B2 (en) 2015-05-22 2019-02-26 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing inline replies
US10261756B2 (en) * 2015-06-01 2019-04-16 Brigham Young University Method for preventing reference invalidation when reversing operations in synchronous collaborative applications
US20170180131A1 (en) * 2015-12-16 2017-06-22 Intel Corporation Secure unlock to access debug hardware
US11048722B2 (en) * 2018-07-31 2021-06-29 EMC IP Holding Company LLC Performance optimization for data persistency in asynchronous replication setups

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170480A (en) * 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
DE4497149T1 (en) * 1993-09-24 1996-10-17 Oracle Corp Method and device for replicating data
US5787262A (en) * 1996-06-26 1998-07-28 Microsoft Corporation System and method for distributed conflict resolution between data objects replicated across a computer network
US6317754B1 (en) * 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
US6148383A (en) * 1998-07-09 2000-11-14 International Business Machines Corporation Storage system employing universal timer for peer-to-peer asynchronous maintenance of consistent mirrored storage
US6327671B1 (en) * 1998-11-18 2001-12-04 International Business Machines Corporation Delta compressed asynchronous remote copy
US6859821B1 (en) 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
US7587467B2 (en) * 1999-12-02 2009-09-08 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6898642B2 (en) * 2000-04-17 2005-05-24 International Business Machines Corporation Synchronous collaboration based on peer-to-peer communication
GB0018042D0 (en) * 2000-07-21 2000-09-13 Monsell Edm Ltd Method of and software for recordal and validation of changes to markup language files
JP3955181B2 (en) 2001-02-05 2007-08-08 株式会社エヌジェーケー How to share and use information peer-to-peer
AU2002332812A1 (en) * 2001-09-04 2003-03-18 Soft2B Llc Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization
US6889229B1 (en) * 2001-09-28 2005-05-03 Oracle International Corporation Techniques for peer-to-peer replication of objects in a relational database
US9350782B2 (en) * 2002-01-29 2016-05-24 Antonio Ortega Method and system for delivering media data
US7386753B2 (en) * 2004-09-02 2008-06-10 International Business Machines Corporation Subscription-based management and distribution of member-specific state data in a distributed computing system

Also Published As

Publication number Publication date
DE60312624D1 (en) 2007-05-03
DE60312624T2 (en) 2007-11-29
KR20040036633A (en) 2004-04-30
JP4684546B2 (en) 2011-05-18
US8073905B2 (en) 2011-12-06
EP1418726A2 (en) 2004-05-12
US20070255787A1 (en) 2007-11-01
IL158508A (en) 2008-11-03
EP1418726A3 (en) 2005-06-01
CA2446283C (en) 2009-12-22
EP1418726B1 (en) 2007-03-21
KR101021399B1 (en) 2011-03-14
ATE357700T1 (en) 2007-04-15
US20040083263A1 (en) 2004-04-29
IL158508A0 (en) 2004-05-12
US7340502B2 (en) 2008-03-04
JP2004152289A (en) 2004-05-27

Similar Documents

Publication Publication Date Title
CA2446283A1 (en) Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system
US6513084B1 (en) Arbitration of state changes
CN1273899C (en) Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment
US7801852B2 (en) Checkpoint-free in log mining for distributed information sharing
US6529921B1 (en) Dynamic synchronization of tables
CN108140028B (en) Method and architecture for providing database access control in a network with a distributed database system
US20140181026A1 (en) Read-only operations processing in a paxos replication system
US20020066051A1 (en) Method and apparatus for providing serialization support for a computer system
EP0730766B1 (en) Computer method and apparatus for asynchronous ordered operations
US7613740B2 (en) Control of a data replication engine using attributes associated with a transaction
JP4291060B2 (en) Transaction processing method, transaction control device, and transaction control program
US20140229432A1 (en) System and method for providing high availability data
US20040177099A1 (en) Parallel transaction recovery
US20010039548A1 (en) File replication system, replication control method, and storage medium
KR920005606B1 (en) Data input/output control system
US20120303761A1 (en) Breakpoint continuous transmission method
WO2001080005A2 (en) Distributed computing system clustering model providing soft real-time responsiveness and continuous availability
EP1450270B1 (en) System and method of distributing replication commands
KR20140106588A (en) Application consistent snapshots of a shared volume
CA2893327A1 (en) Joining memberships in distributed computing systems
US7519633B2 (en) Asynchronous replication of data
DuBourdieux Implementation of Distributed Transactions.
US5734897A (en) Reduction of logging in distributed systems
RU2010125680A (en) SYSTEMS AND METHODS FOR TRANSFERING DATA FILES, INDEPENDENTLY ON THE PLATFORM
JP2009237906A (en) Backup method of computer system

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20141023