← Back to Patent Explorer
US6446113B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1999-07-19
•
Granted: 2002-09-03
•
Expires: 2019-07-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Jack E. Ozzie
  • 👤 Raymond E. Ozzie

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 19:58
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44568; G06F16/00; G06F16/10; G06F16/17; G06F16/176; G06F16/1767; G06F5/00; G06F5/06; G06F5/065; G06F9/448; G06F9/4488; G06F9/449; G06F9/46; G06F9/54; G06F9/546; H; H04; H04L; H04L12/00; H04L12/28; G06F2209/00; G06F2209/54; G06F2209/548

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 179 words
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.
Claim 2
Dependent Claim 179 words
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.
Claim 3
Dependent Claim 27 words
The local network-capable device in accordance with claim 1 , wherein the data is stored in a persistent state in a non-volatile memory device comprising the memory.
Claim 4
Dependent Claim 18 words
The local network-capable device in accordance with claim 1 , wherein the data is stored in XML format.
Claim 5
Dependent Claim 41 words
The local network-capable device in accordance with claim 1 , further comprising a first telespace associated with the local copy of the data; said first telespace comprising an instantiation of a first activity, said activity comprising said tool and said engine.
Claim 6
Dependent Claim 28 words
The local network-capable device with claim 4 , further comprising a member record for storing identities of telespace members, and an identity manager for managing the member record.
Claim 7
Dependent Claim 97 words
The local network-capable device in accordance with claim 4 , further comprising a second telespace; said second telespace comprising an instantiation of a second activity; said second activity comprising: 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.
Claim 8
Dependent Claim 24 words
The local network-capable device in accordance with claim 6 , further comprising a telespace record for storing identifications of the first and second telespaces.
Claim 9
Dependent Claim 62 words
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.
Claim 10
Dependent Claim 26 words
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.
Claim 11
Dependent Claim 46 words
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.
Claim 12
Dependent Claim 56 words
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.
Claim 13
Dependent Claim 41 words
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.
Claim 14
Dependent Claim 38 words
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.
Claim 15
Dependent Claim 42 words
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.
Claim 16
Dependent Claim 54 words
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.
Claim 17
Dependent Claim 49 words
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.
Claim 18
Dependent Claim 47 words
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.
Claim 19
Dependent Claim 39 words
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.
Claim 20
Dependent Claim 42 words
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 .
Claim 21
Dependent Claim 49 words
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.
Claim 22
Dependent Claim 230 words
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 including 1) 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.
Claim 23
Dependent Claim 230 words
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 including 1) 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.
Claim 24
Dependent Claim 111 words
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.
Claim 25
Dependent Claim 111 words
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.
Claim 26
Dependent Claim 67 words
The networked system in accordance with claim 22 , wherein the user interactions can be initiated, causing data change requests to be generated, at any of the network-capable devices of the networked system, and each network-capable device further includes a communications manager for causing data change requests generated at the each network-capable device to be sent to each of the other dynamics managers of the network-capable devices.
Claim 27
Dependent Claim 16 words
The networked system in accordance with claim 23 , wherein the network-capable devices include computer systems.
Claim 28
Dependent Claim 73 words
The networked system in accordance with claim 23 , further comprising an activity-based communications (ABC) system for interpersonal interaction, comprising plural, network-capable devices connectable via a network, each network-capable device comprising: 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.
Claim 29
Dependent Claim 217 words
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.
Claim 30
Dependent Claim 217 words
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.
Claim 31
Dependent Claim 149 words
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.
Claim 32
Dependent Claim 149 words
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.
Claim 33
Dependent Claim 38 words
The activity-based collaboration method in accordance with claim 27 , further comprising the step of the dynamics manager directing the making of the changes to the data by the data change engine responsive to the data change requests.
Claim 34
Dependent Claim 155 words
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.
Claim 35
Dependent Claim 155 words
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.
Claim 36
Independent Claim 136 words
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.
Claim 37
Independent Claim 136 words
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.
Claim 38
Dependent Claim 30 words
The system in accordance with claim 30 further comprising the step of effecting the change asynchronously among the network-capable devices with respect to a locally stored copy of the data.

References Cited (Backward Citations)

US4974173A Cited
US5008853A Cited
US5388196A Cited
US5538255A Cited
US6049334A Cited
EP0822493A1 Cited
US5892949A Cited
US5899810A Cited
WO1999021117A1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-09-02 2006-03-04 2006-09-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-09-02 2010-03-04 2010-09-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-09-02 2014-03-04 2014-09-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag