Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
First Claim
1. A local network-capable device for use in an activity-based collaboration system, the activity-based collaboration system including a plurality of network-capable devices including the local network-capable device and a plurality of remote network-capable devices at a plurality of locations, each network-capable device responsive to a user, the local network-capable device comprising:
- A) a memory for storing a local copy of data in accordance with a data model;
B) a tool, responsive to a user interaction, for initiating generation of a plurality of locally-generated data change requests;
C) a data-change engine coupled with the memory and the tool, and responsive to the locally generated data change requests and a plurality of remotely-generated data change requests, for controlling storage of a local copy of data in the memory in accordance with the data model, and making changes to the local copy of the data; and
D) a dynamics manager, coupled with the tool and the data-change engine, and responsive to the locally-generated and remotely-generated data change requests, for controlling the engine and coordinating execution of the locally-generated and remotely-generated data change requests.
3 Assignments
0 Petitions
Accused Products
Abstract
An activity-based collaboration system provides communication and other shared and mutual activities between individuals and small groups in shared private spaces, called “telespaces”. In the system, participants or members of a telespace interact through personal computers, Internet appliances or other network-capable devices, which can communicate with one-another over a network, e.g., the Internet. Each telespace is an instantiation of an activity operable on each of the network-capable devices of members of the telespace. Each activity includes a tool for initiating data change requests (called “deltas”) responsive to telespace member interactions, and a data-change engine, separate from the tool, for maintaining telespace data pursuant to a common data model, usually activity-specific, in memory. Each network-capable device also includes a dynamics manager, responsive to the deltas, for directing the data-change engine to make changes to the local copy of data.
275 Citations
31 Claims
-
1. A local network-capable device for use in an activity-based collaboration system, the activity-based collaboration system including a plurality of network-capable devices including the local network-capable device and a plurality of remote network-capable devices at a plurality of locations, each network-capable device responsive to a user, the local network-capable device comprising:
-
A) a memory for storing a local copy of data in accordance with a data model;
B) a tool, responsive to a user interaction, for initiating generation of a plurality of locally-generated data change requests;
C) a data-change engine coupled with the memory and the tool, and responsive to the locally generated data change requests and a plurality of remotely-generated data change requests, for controlling storage of a local copy of data in the memory in accordance with the data model, and making changes to the local copy of the data; and
D) a dynamics manager, coupled with the tool and the data-change engine, and responsive to the locally-generated and remotely-generated data change requests, for controlling the engine and coordinating execution of the locally-generated and remotely-generated data change requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
A) a second tool, responsive to a user interaction, for generating a second data change request;
B) a second data-change engine coupled with the memory and the second tool, and responsive to the second data change request, for controlling storage of a second local copy of data in the memory in accordance with a second data model, and making changes to the second local copy of the data.
-
-
7. The local network-capable device in accordance with claim 6, further comprising a telespace record for storing identifications of the first and second telespaces.
-
8. The local network-capable device in accordance with claim 6, wherein the locally-generated and remotely-generated data change requests each comprise a container object, and the container object contains an engine identifier for identifying one of the first and second telespaces;
- and, responsive to the engine identifier, the dynamics manager directs the identified engine to execute the locally-generated and remotely-generated data change requests.
-
9. The local network-capable device in accordance with claim 6, wherein the dynamics manager receives data change requests from both the tool and the second tool.
-
10. The local network-capable device in accordance with claim 1, wherein the data change requests each comprise a container object initiated by the tool and generated by the dynamics manager, and the data-change engine provides the container object with commands for fulfilling the data change request.
-
11. The local network-capable device in accordance with claim 1, wherein the local copy of the data associated with the first telepace is stored in a first, allocated space of the memory and the second local copy of the data is stored in a second, allocated space of the memory separate from the first, allocated space.
-
12. The local network-capable device in accordance with claim 1, wherein the dynamics manager comprises a queue structure for ordering data change requests;
- and a dynamo process mechanism for controlling the engine and directing making of the changes to the data.
-
13. The local network-capable device in accordance with claim 12, wherein the dynamo process mechanism, responsive to the queue structure, causes the data change engine to process the data change requests on a first in, first out basis.
-
14. The local network-capable device in accordance with claim 12, wherein the queue structure includes a first queue for holding pointers to data change requests initiated by the tool, and a second queue for holding pointers to the remotely-generated data change requests.
-
15. The local network-capable device in accordance with claim 13, wherein the dynamo process mechanism, responsive to the queue structure, causes the data change engine to process received data change requests corresponding to enqueued pointers in the second queue prior to processing locally-generated data change requests corresponding to enqueued pointers in the first queue.
-
16. The local network-capable device in accordance with claim 1, wherein the data-change engine is implemented separately from the tool;
- and, as between the tool and the data-change engine, only the tool has access to a user interface and only the data-change engine has access to the data model.
-
17. The local network-capable device in accordance with claim 1, wherein the local copy of the data comprises a data state;
- and the data-change engine changes the data state in response to each of a plurality of the data change requests to generate a current data state.
-
18. The local network-capable device in accordance with claim 1, wherein the data-change engine notifies the tool of the change in the data state, and the tool presents the current data state to a user via a user interface.
-
19. The local network-capable device in accordance with claim 1, in combination with the remote network-capable devices, and wherein each of the network-capable devices comprises a memory, a tool, a data-change engine, and a dynamics manager as recited in claim 1.
-
20. The local network-capable device in accordance with claim 19, wherein each of the network-capable devices includes a local copy in memory of the data, and a communications manager for receiving remote data change requests from others of the network-capable devices for changing the local copy of the data.
-
21. An activity-based collaboration (ABC) system for providing communications and other shared and mutual activities between users in virtual spaces comprising telespaces, said system comprising:
-
A) a plurality of network-capable devices connected for communication with one-another, each network-capable device having a memory;
B) a plurality of substantially identical activities, each of the activities operable on a different one of the network-capable devices for performing a task;
each telespace being an instantiation of at least one of the activities;
each of the activities including1) a tool for generating data change requests, responsive to user interactions, and 2) a data-change engine, separate from the tool and operating asynchronously therewith, for maintaining telespace data pursuant to a common data model in memory;
C) a plurality of communications managers, each incorporated in a different one of the network-capable devices for receiving data change requests from others of the network-capable devices and causing data change requests from the tool of the network-capable device incorporating the communications manager to be sent to the others of the network-capable devices; and
D) a plurality of dynamics managers, each incorporated in a different one of the network-capable devices, and, responsive to the data change requests, for directing the data-change engine operable on the network-capable device in which the dynamics manager is incorporated to make changes to the local copy of data stored in the memory of the network-capable device.
-
-
22. A networked system including plural, network-capable devices at different locations connected for communication;
- each network-capable device comprising;
A) a memory for storing a local copy of data pursuant to a common data model;
B) an activity including a tool for generating data change requests, responsive to user interactions, and a data-change engine separate from the tool and operating synchronously therewith for maintaining the data model; and
C) a dynamics manager, responsive to data change requests generated by all network-capable devices for directing the data-change engine to make changes to the local copy of data stored in the memory so that all local copies of data remain consistent relative to each other. - View Dependent Claims (23, 24, 25)
A) a framework including at least one of the dynamics managers;
B) a plurality of activity components, each comprising one of the activities for performing a specific task, the activity components being operable through common application programming interfaces (API) with the framework.
- each network-capable device comprising;
-
26. A computer program product for use in each collaborative station of a peer-to-peer collaboration system having a plurality of collaboration stations, each having means for interacting with a user, a local copy of collaborative data and means for directly exchanging data change requests with other collaboration stations, the computer program product comprising a storage media for storing computer program code;
- and computer program code comprising activity program code for performing an activity comprising a task, the activity program code comprising;
A) tool program code for initiating data change requests, responsive to user interactions;
B) dynamics manager program code that receives data change requests both from the tool program code and from other collaboration stations, determines which data change requests should be executed so that collaborative data copies at all collaborative stations remain consistent and issues data-change directions; and
C) data-change engine program code, for maintaining a local copy of collaborative data pursuant to a data model;
the data-cange engine program code including a tool end program code responsive to data change requests for providing notification to the tool program code of data changes and dynamics manager end program code for receiving, from the dynamics manager program code, data-change directions that cause the data change engine program code to make changes to the local copy of collaborative data.
- and computer program code comprising activity program code for performing an activity comprising a task, the activity program code comprising;
-
27. An activity-based collaboration method for enabling communications between network-capable devices that share in the performance of a task, each of the devices performing the method comprising the steps of:
-
A) storing a local copy of data in a local memory in accordance with a data model;
B) responsive to a user interaction, a tool initiating a first data change request;
C) receiving a second data change request from a remote one of the computer systems;
D) responsive to the first and second data change requests, an engine controlling storage of data in the memory in accordance with the data model, including making changes to the local copy of the data in accordance with the data model; and
E) responsive to the first and second data change requests, a dynamics manager controlling the engine and coordinating execution of data change requests so that all local copies of data remain consistent. - View Dependent Claims (28)
-
-
29. A distributed, coordinated system comprising a plurality of network-capable devices for maintaining a plurality of copies of data pursuant to a distributed data model, wherein the copies can be changed responsive to users'"'"' actions by the network-capable devices, each of the network-capable devices having a local copy of the data and comprising:
-
A) a tool for receiving user-requested changes to the data copies stored pursuant to the data model and generating a data change request;
B) an engine separate from the tool for controlling the local copy of the data, and for making and unmaking changes to the local copy of the data; and
C) a dynamics manager, responsive to the user-requested changes generated by tools in all of the plurality of network-capable devices, for controlling the engine in making changes to the local copy of the data in accordance with the data model so that all local copies of the data are maintained consistently.
-
-
30. A method implemented in a coordinated, distributed collaboration system comprising a plurality of network-capable devices for storing a plurality of copies of data each associated with a different one of a plurality of data-change engines for maintaining the associated copy in accordance with a distributed data model responsive to users'"'"' actions, the method comprising the steps of:
-
A) at each network capable device, receiving directly from all of the network capable devices, requests for changing data stored locally;
B) identifying, from an engine code in each request, which among a plurality of the data-change engines in each network-capable device is associated with data that the each request seeks to change; and
C) invoking the identified engine to effect the requested change in accordance with the data model so that all local data copies are maintained consistently. - View Dependent Claims (31)
-
Specification