IP Library Granted Patent US 8,375,086
Granted Patent B2
US 8,375,086 · App. 11/755,967 · Granted Feb 12, 2013

Shared state manager and system and method for collaboration

Inventor: Robert A. Flavin (Yorktown Heights, NY)
Assignee: International Business Machines Corporation
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 8,375,086
App. No.
11/755,967
Granted
Feb 12, 2013
Kind
B2
Abstract

A shared state manager (SSM) for collaboration includes an updating module for updating a shared state of data based on a request to edit the data made by a client, and a notifying module for, upon the updating the shared state, notifying another client of the updated state.

Claims (66)

1. A shared state manager (SSM) for collaboration, said shared state manager comprising:

a storage device for storing a shared state object (SSO) comprising an abstract representation of a shared state of data which is shared by a plurality of clients which are authorized to edit the data, the abstract representation identifying the plurality of clients and their privileges;

an updating module for updating the shared state of data by updating the abstract representation of the shared state based on a request to edit said data made by a client in the plurality of clients; and

a notifying module for, upon said updating said shared state, notifying another client in the plurality of clients of said updated shared state,

wherein the updating module separates formatting information and content in the shared state of data, and the abstract representation comprises the formatting information, the content, and semantic information which describes a meaning of the content, and

wherein the abstract representation comprises an abstract tree representation, and the semantic information is associated with a subtree of the shared state of data and is inherited by subnodes within the subtree.

2. The shared state manager of claim 1 , further comprising:

an authorization module for confirming an authorization of said request; and

a reply module for generating a reply to said request to said client.

3. The shared state manager of claim 1 , wherein said client comprises one of a browser, an editor, a graphical-based client, a text-based client, and a server.

4. The shared state manager of claim 1 , wherein said shared state of data comprises a shared state of document content data.

5. The shared state manager of claim 4 , wherein at least one of said client and said another client comprise:

a storage module for storing SSM application software for controlling said request to edit said document content data, and causing said notifying module to notify said another client of said updated state of document content data; and

a storage module for storing a shared state object (SSO) comprising a representation of said shared state of said document content data.

6. The shared state manager of claim 4 , wherein said shared state manager is included in a server in a network, said server comprising:

a storage device for storing SSM application software for controlling said request to edit said shared state of said document content data, and causing said notifying module to notify said another client of said updated state of said document content data.

7. The shared state manager of claim 6 , wherein said network comprises the Internet, and said document content data comprises Web page content data for a Web page which is accessible by said client and said another client via the Internet.

8. The shared state manager of claim 7 , wherein said client and said another client comprise a Web browsing application for inputting a request to edit said Web page content data and viewing said Web page content data.

9. The shared state manager of claim 8 , wherein said notifying said another client of said updated state comprises updating a view of said Web page content data generated by said Web browsing application on said another client.

10. The shared state manager of claim 9 , wherein said another client comprises a plurality of other clients, and

wherein said notifying module updates in real time a view of said Web page content data on said client and said plurality of other clients to reflect said updated state of said Web page content data without refreshing a Web page comprising said Web page content data.

11. The shared state manager of claim 1 , wherein said shared state object comprises metadata integrated with said data, such that said notifying said another client of said updated state comprises rendering a different view of said data based on one of a user preference, user role, user access right, and a configuration of said another client.

12. The shared state manager of claim 1 , wherein a tree in said shared state object is tagged with information for controlling a view of said data.

13. The shared state manager of claim 1 , wherein the updating module performs one of creating the semantic information automatically, receiving the semantic information from the client, and generating the semantic information by analyzing the content.

14. The shared state manager of claim 1 , wherein the abstract representation of the shared state of data comprises state information having an order or structure which is different than the shared state of data.

15. The shared state manager of claim 1 , wherein the shared state of data comprises a hypertext markup language (HTML) page, and a correspondence between nodes of the SSO and a document object model (DOM) of the HTML page is other than one-to-one.

16. A system for collaboration, comprising:

a plurality of clients which are authorized to edit data; and

a server connected to a network, said server comprising:

a shared state manager (SSM) for collaboration, said SSM being accessible by said plurality of clients and comprising:

a storage device for storing a shared state object (SSO) comprising an abstract representation of a shared state of the data which is shared by the plurality of clients, the abstract representation identifying the plurality of clients and their editing privileges;

an updating module for updating the shared state of data by updating the abstract representation of the shared state based on a request to edit said data made by a client in the plurality of clients; and

a notifying module for, upon said updating said shared state, notifying another client in the plurality of clients of said updated shared state,

wherein the updating module separates formatting information and content in the shared state of data, and the abstract representation comprises the formatting information, the content, and semantic information which describes a meaning of the content, and

wherein the abstract representation comprises an abstract tree representation, and the semantic information is associated with a subtree of the shared state of data and is inherited by subnodes within the subtree.

17. The system of claim 16 , wherein said shared state comprises a shared state of content data for a document.

18. The system of claim 16 , wherein said shared state manager (SSM) further comprises

a storage device for storing SSM application software for controlling said request to edit said data, and causing said notifying module to notify said another client of said updated state of said data; and

a storage device for storing a shared state object (SSO) comprising a representation of said shared state of said data.

19. A method of collaboration, comprising:

storing a shared state object (SSO) comprising an abstract representation of a shared state of data which is shared by a plurality of clients which are authorized to edit the data, the abstract representation identifying the plurality of clients and their privileges;

updating the shared state of data by updating the abstract representation of the shared state based on a request to edit said data made by a client in the plurality of clients; and

upon said updating said shared state, notifying another client in the plurality of clients of said updated shared state,

wherein the updating of the shared state of data comprises separating formatting information and content in the shared state of data, and the abstract representation comprises the formatting information, the content, and semantic information which describes a meaning of the content, and

wherein the abstract representation comprises an abstract tree representation, and the semantic information is associated with a subtree of the shared state of data and is inherited by subnodes within the subtree.

20. The method according to claim 19 , wherein said shared state of data comprises a shared state of document content data.

21. The method according to claim 19 , further comprising:

confirming an authorization of said request; and

generating a reply to said request to said client.

22. The method according to claim 19 , further comprising:

storing application software for controlling said request to edit said data.

23. The method according to claim 19 , further comprising:

storing a shared state object (SSO) comprising a representation of said shared state of said data.

24. The method according to claim 19 , wherein said notifying said another client of said updated state comprises filtering and translating an abstract representation of said data into a plurality of different presentation formats for viewing said updated update state of said data.

25. A non-transitory programmable storage medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method of collaboration, said method comprising:

storing a shared state object (SSO) comprising an abstract representation of a shared state of data which is shared by a plurality of clients which are authorized to edit the data, the abstract representation identifying the plurality of clients and their privileges;

updating the shared state of data by updating the abstract representation of the shared state based on a request to edit said data made by a client in the plurality of clients; and

upon said updating said shared state, notifying another client in the plurality of clients of said updated shared state,

wherein the updating of the shared state of data comprises separating formatting information and content in the shared state of data, and the abstract representation comprises the formatting information, the content, and semantic information which describes a meaning of the content, and

wherein the abstract representation comprises an abstract tree representation, and the semantic information is associated with a subtree of the shared state of data and is inherited by subnodes within the subtree.

26. A method of deploying computing infrastructure in which computer-readable code is integrated into a computing system, such that said code and said computing system combine to perform a method of collaboration, said method of collaboration comprising:

storing a shared state object (SSO) comprising an abstract representation of a shared state of data which is shared by a plurality of clients which are authorized to edit the data, the abstract representation identifying the plurality of clients and their privileges;

updating the shared state of data by updating the abstract representation of the shared state based on a request to edit said data made by a client in the plurality of clients; and

upon said updating said shared state, notifying another client in the plurality of clients of said updated shared state,

wherein the updating of the shared state of data comprises separating formatting information and content in the shared state of data, and the abstract representation comprises the formatting information, the content, and semantic information which describes a meaning of the content, and

wherein the abstract representation comprises an abstract tree representation and the semantic information is associated with a subtree of the shared state of data and is inherited by subnodes within the subtree.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNORS NAME PREVIOUSLY RECORDED ON REEL 019888 FRAME 0117. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2010
From: FLAVIN, ROBERT A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 023747/0074 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2007
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 019888/0117 →
Continuity (1)
Related Publication 20080301228A1 · Dec 4, 2008