IP Library Granted Patent US 9,152,644
Granted Patent B2
US 9,152,644 · App. 12/346,385 · Granted Oct 6, 2015

Systems and methods for providing collaborative editing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,152,644
App. No.
12/346,385
Granted
Oct 6, 2015
Kind
B2
Abstract

Systems and methods are presented for providing collaborative editing. An embodiment collaboratively edits a computer file using a plurality of computers in a network, where the computers are connected using a token ring, each of the computers has a local copy, and a first computer has edited its local copy and performs the method. A token circulating around the token ring is captured, and a location of the edited portion of the local copy of the file is determined. The location is broadcast to the other computers. Conflicts are received from the other computers, and the conflicts from the other computers are reconciled with the edited portion of the local copy of the file to provide reconciled edits to the file. The local copy of the file is updated with the reconciled edits. A data packet with the reconciled edits is created and transmitted around the token ring.

Claims (61)

1. A method for collaboratively editing a computer file using a plurality of computers in a network, wherein the computers are connected using a token ring, each of the computers has a local copy of the file, a first computer has edited its local copy of the file, and the method is performed by the first computer, the method comprising:

capturing a token circulating around the token ring;

determining a location of the edited portion of the local copy of the file;

broadcasting the location to the other computers;

receiving conflicts from the other computers;

reconciling the conflicts from the other computers with the edited portion of the local copy of the file to provide reconciled edits to the file;

updating the local copy of the file with the reconciled edits;

creating a data packet with the reconciled edits;

transmitting the data packet around the token ring; and

using a Document Object Model (DOM) representation to represent the file, wherein determining the location of the edited portion of the local copy of the file includes using a post-order or in-order traversal of the DOM representation to obtain numbers that represent the location of the edited portion.

2. The method of claim 1 , further comprising storing the computer file as an XML document.

3. The method of claim 1 , wherein creating a data packet includes creating a data packet with an XML fragment represented as a Simple Object Access Protocol (SOAP) message.

4. The method of claim 3 , wherein transmitting the data packet includes transmitting the data packet using an HTTP/HTTPS protocol.

5. The method of claim 4 , wherein transmitting the data packet include transmitting the data packet using Secure Sockets Layer (SSL) encryption.

6. The method of claim 1 , wherein creating the data packet with the reconciled edits includes creating the data packet with the numbers that represent the location of the edited portion.

7. The method of claim 1 , wherein broadcasting the location to the other computers includes broadcasting numbers to the other computers, the method further comprising including the IP or host name of the broadcasting computer with the broadcasted numbers.

8. The method of claim 1 , wherein receiving conflicts from the other computers includes receiving a conflicting portion of a local copy of the file for at least one of the other computers.

9. The method of claim 1 , wherein capturing the token circulating around the token ring includes capturing the token circulating around a virtual token ring that includes Internet connections.

10. A method for collaboratively editing a computer file using a plurality of computers in a network, wherein the computers are connected using a token ring, each of the computers has a local copy of the file, a first computer has edited its local copy of the file, and the method is performed by a second computer, the method comprising:

receiving a broadcast message from the first computer, wherein the broadcast message identifies a location of an edited portion of the file, wherein receiving the broadcast message includes receiving numbers representing the location of the edited portion based on a Document Object Model (DOM) representation of the file;

determining if a local copy of the file for the second computer has been edited at the location identified in the broadcast message;

if the local copy of the file for the second computer has been edited at the location identified in the broadcast message, transmitting conflicts back to the first computer, wherein the first computer reconciles its edits with the conflicts to provide reconciled changes to the file in a data packet;

receiving the data packet on the token ring; and

updating the local copy of the file for the second computer with the reconciled changes contained in the data packet.

11. The method of claim 10 , further comprising:

identifying that the local copy of the file for the second computer includes a late edit which was not included in the conflict transmitted back to the first computer;

setting a bit in the data packet;

after the first computer clears the data packet to provide an empty token with the bit set,

receiving the token;

determining a location of the late edit;

broadcasting the location of the late edit to the other computers;

receiving conflicts from the other computers;

reconciling the conflicts from the other computers with the late edit to provide reconciled late edits to the file;

updating the local copy of the file with the reconciled late edits;

creating a second data packet with the reconciled late edits; and

transmitting the second data packet around the token ring.

12. The method of claim 10 , wherein transmitting conflicts back to the first computer includes transmitting a conflicting portion of the file back to the first computer.

13. The method of claim 10 , wherein updating the local copy of the file for the second computer including updating an XML format of the local copy of the file for the second computer.

14. The method of claim 10 , wherein receiving the data packet on the token ring includes receiving a Simple Object Access Protocol (SOAP) message that includes a representation of an XML fragment.

15. A system for collaboratively editing a computer file, comprising:

a network of computers adapted to communicate with each other through an Internet connection,

wherein each computer has a local copy of the computer file, and each computer is adapted for use to edit each computer's own local copy of the computer file,

wherein the network of computers are connected using a virtual token ring, and

wherein, when its own local copy of the computer file has been edited, each computer is adapted to:

capture a token circulating around the virtual token ring;

determine a location of an edited portion of its own local copy of the file;

broadcast the location to the other computers in the network;

receive conflicts from the other computers;

reconcile the conflicts from the other computers with the edited portion of its own local copy of the file to provide reconciled edits to the file;

update its own local copy of the file with the reconciled edits;

create a data packet with the reconciled edits;

transmit the data packet around the token ring,

wherein each computer in the network is adapted to use a Document Object Model (DOM) representation to represent the file, determine the location of the edited portion using a post-order or in-order traversal of the DOM representation to obtain numbers that represent the location of the edited portion, and broadcast the location using the numbers from the DOM representation.

16. The system of claim 15 , each computer is adapted to:

receive a broadcast message from a broadcasting computer in the network, wherein the broadcasting computer edited its local copy of the file and the broadcast message from the broadcasting computer identifies a location of an edited portion of the file;

determine if its own local copy of the file has been edited at the location identified in the broadcast message;

if its own local copy of the file has been edited at the location identified in the broadcast message, transmit conflicts back to the broadcasting computer, wherein the broadcasting computer reconciles its edits with the conflicts to provide reconciled changes to the file in a second data packet;

receive the second data packet on the token ring; and

update its own local copy of the file with the reconciled changes contained in the data packet.

17. The system of claim 15 , wherein the local copy of the computer file for each computer in the network is an XML document.

18. The system of claim 15 , wherein each computer in the network is adapted to create a data packet with an XML fragment represented as a Simple Object Access Protocol (SOAP) message.

Assignments (13)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →