IP Library › Granted Patent US 8,676,919
Granted Patent B2
US 8,676,919 · App. 12/146,516 · Granted Mar 18, 2014

Asynchronously editing a synchronous data store, such as a project management data store

Inventors: Sudin Bhat (Redmond, WA); Raju Iyer (Redmond, WA); Daniel Michael (Seattle, WA); Mohammad Yakoob Shahdad (Bellevue, WA); Bonny Lau (Bellevue, WA)
Assignee: Microsoft 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,676,919
App. No.
12/146,516
Granted
Mar 18, 2014
Kind
B2
Abstract

A dynamic client system is described that provides an interactive client-side web application experience to a user accessing an application through a web browser. At the client, the system receives an edit to a project task from a user of the client. The system receives an indication that the user has completed editing the project task. The system sends the edited project task to the project server. The client sends edits to the project server in the background and users can continue editing the project without waiting for the project server to finish processing the edits.

Claims (49)

1. A computer-implemented method for editing a project on a synchronous project server via an asynchronous client, the computer-implemented method comprising:

receiving, at the asynchronous client, a first edit to a first project task of the project made by a user of the asynchronous client;

receiving, at the asynchronous client, an indication that the user of the asynchronous client has completed editing the first project task;

sending, from the asynchronous client to the synchronous project server, the first edit to the first project task via background processing while the user of the asynchronous client continues to interact with the project, wherein the asynchronous client is configured to receive a completion response from the synchronous project server for each edit sent to the synchronous project server after processing at the synchronous project server of each edit is complete;

receiving, at the asynchronous client from the synchronous project server, a confirmation response indicating that the synchronous project server received the first edit to the first project task;

receiving, at the asynchronous client, a second edit to a second project task of the project made by the user of the asynchronous client while the asynchronous client is waiting for a completion response for the first edit to the first project task indicating that the synchronous project server has processed the first edit to the first project task;

sending, from the asynchronous client to the synchronous project server, the second edit to the second project task via background processing, wherein the user of the asynchronous client can continue editing the project without waiting for the synchronous project server to finish processing each edit sent to the synchronous project server; and

receiving, at the asynchronous client from the synchronous project server, a completion response for each edit sent to the synchronous project server after processing of each edit by the synchronous project server is complete.

2. The computer-implemented method of claim 1 , wherein the completion response for the first edit to the first project task includes an acknowledgement that the first edit to the first project task was successfully applied to the project.

3. The computer-implemented method of claim 1 , further comprising:

upon receiving the completion response for the first edit to the first project task from the synchronous project server, refreshing a display of the project at the asynchronous client based on the completion response for the first edit to the first project task.

4. The computer-implemented method of claim 1 , further comprising:

checking in the project; and

receiving project information from the synchronous project server, wherein the project information includes edits made by another user.

5. The computer-implemented method of claim 1 , wherein the completion response for the first edit to the first project task includes an update to the first project task based on a consistency check performed by the synchronous project server.

6. The computer-implemented method of claim 1 , wherein a type of the first edit to the first project task is one of:

changing a project name, changing a project start date, changing a project end date, changing a project duration, or changing a dependency of the project.

7. The computer-implemented method of claim 1 , wherein the asynchronous client batches changes to the first task together and sends the changes to the synchronous project server when the user begins editing the second project task.

8. The computer-implemented method of claim 1 , wherein sending the first edit to the first project task comprises sending a delta of information about the first project task that has changed since a previous send to the synchronous project server.

9. A computing device comprising:

a processor configured to execute computer-executable instructions; and

memory storing computer-executable instructions that, when executed by the processor, cause the computing device to perform a method for editing a project on a synchronous project server via an asynchronous client on the computing device, the method comprising:

receiving, at the asynchronous client, a first edit to a first project task of the project made by a user of the asynchronous client;

receiving, at the asynchronous client, an indication that the user of the asynchronous client has completed editing the first project task;

sending, from the asynchronous client to the synchronous project server, the first edit to the first project task via background processing while the user of the asynchronous client continues to interact with the project, wherein the asynchronous client is configured to receive a completion response from the synchronous project server for each edit sent to the synchronous project server after processing at the synchronous project server of each edit is complete;

receiving, at the asynchronous client from the synchronous project server, a confirmation response indicating that the synchronous project server received the first edit to the first project task;

receiving, at the asynchronous client, a second edit to a second project task of the project made by the user of the asynchronous client while the asynchronous client is waiting for a completion response for the first edit to the first project task indicating that the synchronous project server has processed the first edit to the first project task;

sending, from the asynchronous client to the synchronous project server, the second edit to the second project task via background processing, wherein the user of the asynchronous client can continue editing the project without waiting for the synchronous project server to finish processing each edit sent to the synchronous project server; and

receiving, at the asynchronous client from the synchronous project server, a completion response for each edit sent to the synchronous project server after processing of each edit by the synchronous project server is complete.

10. The computing device of claim 9 , wherein the completion response for the first edit to the first project task includes an acknowledgement that the first edit to the first project task was successfully applied to the project.

11. The computing device of claim 9 , wherein the memory further stores computer-executable instructions for:

upon receiving the completion response for the first edit to the first project task from the synchronous project server, refreshing a display of the project at the asynchronous client based on the completion response for the first edit to the first project task.

12. The computing device of claim 9 , wherein the completion response for the first edit to the first project task includes an update to the first project task based on a consistency check performed by the synchronous project server.

13. The computing device of claim 9 , wherein the asynchronous client batches changes to the first task together and sends the changes to the synchronous project server when the user begins editing the second project task.

14. The computing device of claim 9 , wherein sending the first edit to the first project task comprises sending a delta of information about the first project task that has changed since a previous send to the synchronous project server.

15. A computer-readable storage device storing computer-executable instructions that, when executed by a processor of a computing device, cause the computing device to perform a method for editing a project on a synchronous project server via an asynchronous client on the computing device, the method comprising:

receiving, at the asynchronous client, a first edit to a first project task of the project made by a user of the asynchronous client;

receiving, at the asynchronous client, an indication that the user of the asynchronous client has completed editing the first project task;

sending, from the asynchronous client to the synchronous project server, the first edit to the first project task via background processing while the user of the asynchronous client continues to interact with the project, wherein the asynchronous client is configured to receive a completion response from the synchronous project server for each edit sent to the synchronous project server after processing at the synchronous project server of each edit is complete;

receiving, at the asynchronous client from the synchronous project server, a confirmation response indicating that the synchronous project server received the first edit to the first project task;

receiving, at the asynchronous client, a second edit to a second project task of the project made by the user of the asynchronous client while the asynchronous client is waiting for a completion response for the first edit to the first project task indicating that the synchronous project server has processed the first edit to the first project task;

sending, from the asynchronous client to the synchronous project server, the second edit to the second project task via background processing, wherein the user of the asynchronous client can continue editing the project without waiting for the synchronous project server to finish processing each edit sent to the synchronous project server; and

receiving, at the asynchronous client from the synchronous project server, a completion response for each edit sent to the synchronous project server after processing of each edit by the synchronous project server is complete.

16. The computer-readable storage device of claim 15 , wherein the completion response for the first edit to the first project task includes an acknowledgement that the first edit to the first project task was successfully applied to the project.

17. The computer-readable storage device of claim 15 , further storing computer-executable instructions for:

upon receiving the completion response for the first edit to the first project task from the synchronous project server, refreshing a display of the project at the asynchronous client based on the completion response for the first edit to the first project task.

18. The computer-readable storage device of claim 15 , wherein the completion response for the first edit to the first project task includes an update to the first project task based on a consistency check performed by the synchronous project server.

19. The computer-readable storage device of claim 15 , wherein the asynchronous client batches changes to the first task together and sends the changes to the synchronous project server when the user begins editing the second project task.

20. The computer-readable storage device of claim 15 , wherein sending the first edit to the first project task comprises sending a delta of information about the first project task that has changed since a previous send to the synchronous project server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2009
From: BHAT, SUDIN; IYER, RAJU; MICHAEL, DANIEL; YAKOOB, SHAHDAD MOHAMMAD; LAU, BONNY
To: MICROSOFT CORPORATION
Reel/Frame 022080/0421 →
Continuity (1)
Related Publication 20090327403A1 · Dec 31, 2009