IP Library Granted Patent US 9,015,248
Granted Patent B2
US 9,015,248 · App. 13/526,437 · Granted Apr 21, 2015

Managing updates at clients used by a user to access a cloud-based collaboration service

Inventors: Tomas Barreto (Menlo Park, CA); Arshdeep Mand (Union City, CA); Miles Spielberg (Sunnyvale, CA); David Mackenzie (Daly City, CA); Sam Ghods (San Francisco, CA)
Assignee: Box, Inc.
G06F15/16H04L65/403G06F17/30
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,015,248
App. No.
13/526,437
Granted
Apr 21, 2015
Kind
B2
Abstract

System and method for managing updates at clients used by a user to access a cloud-based collaboration service are disclosed. In one aspect, embodiments of the present disclosure include a method, which may be implemented on a system, for storing a representation of the action to queues of clients associated with the user in a distributed database cluster based on an action type of an action performed by a collaborator of the user. The clients of the user are selected based on the client category and the action type of the action, to receive a notification as a result of the action or to perform a synchronization with changes that occurred as a result of the action.

Claims (50)

1. A method for updating a client at a client device with events occurring in a collaboration platform, comprising:

querying a queue stored in a distributed database and specifying a location in the queue from which to read,

wherein, the queue that is queried is specific to client type of the client and is also specific to a user,

wherein, the queue includes entries representing each of a sequence of events which occurred in the collaboration platform that is relevant to the user;

reading the queue starting from the location in the queue such that previously occurring events that have been updated at the client need not be accessed prior to reading the portions of the queue with those events which have yet to be updated at the client,

wherein, multiple clients associated with the client device or different client devices of the user read from the same queue, and each of the multiple clients individually track a location in the queue from which to read to reflect updates relevant to the client device on which the client resides.

2. The method of claim 1 , further comprising, updating the client device based on the events that occurred in the collaboration platform upon reading the queue.

3. The method of claim 1 , further comprising, storing another location in the queue from which to begin a subsequent read.

4. The method of claim 1 , wherein, each entry is associated with an action type identifier of a given event.

5. The method of claim 1 , wherein, each entry is associated with a revision identifier; wherein, the client uses the revision identifier for conflict resolution at the client device.

6. The method of claim 1 , wherein, the collaboration platform includes a cloud-based service and storage platform.

7. A system for updating a client at a client device with events occurring in a collaboration platform, the system comprising:

one or more processors;

a memory unit having instructions stored thereon which, when executed by the one or more processors, cause the system to:

query a queue stored in a distributed database and specifying a location in the queue from which to read,

wherein, the queue that is queried is specific to client type of the client and is also specific to a user,

wherein, the queue includes entries representing each of a sequence of events which occurred in the collaboration platform that is relevant to the user;

read the queue starting from the location in the queue such that previously occurring events that have been updated at the client need not be accessed prior to reading the portions of the queue with those events which have yet to be updated at the client,

wherein, multiple clients associated with the client device or different client devices of the user read from the same queue, and each of the multiple clients individually track a location in the queue from which to read to reflect updates relevant to the client device on which the client resides.

8. The system of claim 7 , wherein the instructions, when executed by the one or more processors, further cause the system to update the client device based on the events that occurred in the collaboration platform upon reading the queue.

9. The system of claim 8 , wherein the instructions, when executed by the one or more processors, further cause the system to store another location in the queue from which to begin a subsequent read.

10. The system of claim 7 , wherein, each entry is associated with an action type identifier of a given event.

11. The system of claim 7 , wherein, each entry is associated with a revision identifier; wherein, the client uses the revision identifier for conflict resolution at the client device.

12. The system of claim 7 , wherein, the collaboration platform comprises a cloud-based service and storage platform.

13. A method for managing updates at clients used by a user to access a cloud-based collaboration service such that the clients are updated with actions performed by collaborators, comprising:

based on an action type of an action performed by a collaborator of the user in the cloud-based collaboration service,

storing a representation of the action to queues of clients associated with the user in a distributed database cluster,

wherein, each of the queues is uniquely associated with a client category of the clients associated with the user;

wherein, the clients of the user are selected based on the client category and the action type of the action, to receive a notification as a result of the action or to perform a synchronization with changes that occurred as a result of the action,

receiving a query for a queue stored in the distributed database cluster, the query specifying a location in the queue from which to read,

wherein, the queue that is queried is specific to client type of the client and a user,

wherein, the queue includes entries representing each of a sequence of events which occurred in the collaboration platform that is relevant to the user;

providing data starting from the location in the queue such that previously occurring events that have been updated at the client need not be accessed prior to reading the portions of the queue with those events which have yet to be updated at the client,

wherein, multiple clients associated with the client device or different client devices of the user read from the same queue, and each of the multiple clients individually track a location in the queue from which to read to reflect updates relevant to the client device on which the client resides.

14. The method of claim 13 , wherein, the client includes an instance of a web browser having loaded thereon a web-based client to access the cloud-based collaboration service.

15. The method of claim 13 , wherein, the client includes an instance of a desktop synchronization client to synchronize content with the cloud-based collaboration service.

16. The method of claim 13 , further comprising, receiving a request to write to the queues of the clients associated with the user, the writing including writing subsequently occurring actions in a time ordered fashion.

17. The method of claim 13 , further comprising, storing, in the distributed database cluster, additional representations of actions to additional queues of other clients associated with other users of the cloud-based collaboration service.

18. The method of claim 13 , further comprising, effectuating a data change associated with the action.

19. A non-transitory computer readable storage medium having instructions stored thereon which, when executed by one or more processors, causes a system to:

query a queue stored in a distributed database and specifying a location in the queue from which to read,

wherein, the queue that is queried is specific to client type of the client and is also specific to a user,

wherein, the queue includes entries representing each of a sequence of events which occurred in the collaboration platform that is relevant to the user;

read the queue starting from the location in the queue such that previously occurring events that have been updated at the client need not be accessed prior to reading the portions of the queue with those events which have yet to be updated at the client,

wherein, multiple clients associated with the client device or different client devices of the user read from the same queue, and each of the multiple clients individually track a location in the queue from which to read to reflect updates relevant to the client device on which the client resides.

20. The computer readable medium of claim 19 , wherein the instructions, when executed by the one or more processors further cause the system to update the client device based on the events that occurred in the collaboration platform upon reading the queue.

21. The computer readable medium of claim 19 , wherein the instructions, when executed by the one or more processors further cause the system to store another location in the queue from which to begin a subsequent read.

22. The computer readable medium of claim 19 , wherein, each entry is associated with an action type identifier of a given event.

23. The computer readable medium of claim 19 , wherein, each entry is associated with a revision identifier; wherein, the client uses the revision identifier for conflict resolution at the client device.

24. The computer readable medium of claim 19 , wherein, the collaboration platform includes a cloud-based service and storage platform.

Assignments (4)
SECURITY INTEREST Recorded Jul 26, 2023
From: BOX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 064389/0686 →
RELEASE OF SECURITY INTEREST Recorded Dec 8, 2015
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: BOX, INC.
Reel/Frame 037237/0503 →
PATENT SECURITY AGREEMENT Recorded Aug 27, 2013
From: BOX, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031368/0627 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2012
From: BARRETO, TOMAS; MAND, ARSHDEEP; SPIELBERG, MILES; MACKENZIE, DAVID; GHODS, SAM
To: BOX, INC.
Reel/Frame 029313/0570 →
Continuity (3)
Continuation 13524501 · Jun 15, 2012
Provisional Application 61560685 · Nov 16, 2011
Related Publication 20130124638A1 · May 16, 2013