IP Library Granted Patent US 10,049,119
Granted Patent B2
US 10,049,119 · App. 15/645,971 · Granted Aug 14, 2018

Synchronization of client machines with a content management system repository

Inventors: Gregory Melahn (Raleigh-Durham, NC); Michael Gardner (Reading, GB); Ray Gauss (Baltimore, MD); Steven Glover (Bracknell, GB); Harpritt Kalsi (Slough, GB); Neil McErtean (Winchester, GB); Brian Remmington (Maidenhead, GB)
Assignee: Alfresco Software, Inc.
G06F17/30174G06F17/30371G06F17/30575
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 10,049,119
App. No.
15/645,971
Granted
Aug 14, 2018
Kind
B2
Abstract

A synchronization queuing service associated with a content management system repository can record file events occurring to content items maintained at the content management system repository. The synchronization queuing service can receive a file synchronization request for information identifying a content item to which a client machine is subscribed. The synchronization queuing service can determine consistency or inconsistency of a client machine state of the content item relative to the content item at the content management system repository and can respond to client machine with a file event summary comprising information usable by the client machine to identify actions necessary to synchronize the client machine state of the content item the content item.

Claims (38)

1. A computer program product comprising a machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to implement a synchronization queuing service configured to perform operations comprising:

recording, to a data structure maintained by the synchronization queuing service, a change set comprising information about one or more file events affecting a content item maintained by a content management system repository with which the synchronization queuing service is associated;

receiving, at the synchronization queuing service from a client machine subscribed to the content item, a file synchronization request comprising an identifier of the content item;

determining consistency or inconsistency, relative to a current state of the content management system repository, of a client machine state of the content item at the client machine, the determining comprising comparing the change set with the identifier and a value representative of a most recent prior synchronization between the client machine and the synchronization queuing service; and

responding with a file event summary, the file event summary comprising information usable by the client machine to identify actions necessary to synchronize the client machine state of the content item relative to the current state of the content management system repository when the client machine state of the content item is inconsistent with the current state of the content management system repository or with an indication the client machine need not directly contact the content management system repository when the client machine state of the content item is consistent with the current state of the content management system repository.

2. A computer program product as in claim 1 , wherein the file synchronization request further comprises a list that includes a change made at the client machine to affect the client machine state of the content item.

3. A computer program product as in claim 2 , wherein the operations further comprise: subscribing the client machine to the content item, the subscribing allowing the client machine to request that the synchronization service compare the change made at the client machine to the current state of the content management system.

4. A computer program product as in claim 2 , wherein the information usable by the client machine to identify actions necessary to synchronize the client machine state of the content item relative to the current state of the content management system repository comprises an indication that the change made at the client machine is in conflict with the current state of the content management system repository.

5. A computer program product as in claim 2 , wherein the information usable by the client machine to identify actions necessary to synchronize the client machine state of the content item relative to the current state of the content management system repository comprises an indication that the change made at the client machine is not in conflict with the current state of the content management system repository such that the current state of the content management system repository can be safely updated to reflect the change made at the client machine.

6. A computer program product as in claim 2 , wherein the information usable by the client machine to identify actions necessary to synchronize the client machine state of the content item relative to the current state of the content management system repository comprises an indication that the change made at the client machine is no longer relevant to the current state of the content management system repository such the client machine can safely ignore the change made at the client machine.

7. A computer program product as in claim 1 , wherein the recording further comprises receiving, by the synchronization queuing service, a message from at least one of the content management system repository, the client machine, and another client machine, the message comprising a description of a file event of the one or more file events; and adding the file event to the data structure.

8. A computer program product as in claim 1 , wherein the file event comprises at least one of a change to the content item in the content management system repository, a change to a local copy of the content item that is stored on the client machine, and a change to a directory structure containing the content time at the content management system repository.

9. A computer program product as in claim 1 , wherein the operations further comprise: receiving, by the synchronization queuing service, an update message from the content management system repository, the update message providing the change set comprising a file event of the one or more file events.

10. A computer program product as in claim 9 , wherein the update message is published by the content management system repository as part of a content management system transaction for an operation relating to the file event, and wherein failure of the synchronization queuing service to receive the update message causes the content management system repository to roll back the operation.

11. A computer program product as in claim 1 , wherein the content management system repository is implemented on one or more machines separate from the at least one programmable processor implementing the synchronization queuing service.

12. A computer program product as in claim 1 , wherein the data structure maintained by the synchronization queuing service comprises a database of file events occurring for content items maintained at the content management system repository, and the recording comprises at least one of creating, updating, and deleting an entry in the database.

13. A computer program product as in claim 1 , wherein the operations further comprise: creating, by the synchronization queuing service, the file event summary using stored information associating the client machine identifier received in the file synchronization request with the content item to which the client machine is subscribed.

14. A computer program product as in claim 1 , wherein the client machine stores a local copy of the content item to which it is subscribed.

15. A computer program product as in claim 1 , wherein the file synchronization request further comprises a request for synchronization information for any changes having occurred to the content item since the most recent prior synchronization between the client machine and the synchronization queuing service.

16. A computer program product as in claim 1 , wherein the file synchronization request is received from the client machine.

17. A computer program product as in claim 1 , wherein the synchronization queuing service comprises a multi-part service arrangement implemented on a plurality of machines, the multi-part service arrangement comprising:

a subscription service, the subscription service reading the change set from the data structure and storing the change set locally, the subscription service comprising a cache of metadata associated with a plurality of content items to which any of a plurality of managed client machines has subscribed; and

a synchronization service, the synchronization service managing a subset of the plurality of managed client machines, the subset comprising the client machine, the synchronization service performing operations comprising:

receiving the file synchronization request from the client machine,

accessing the change set and cache of metadata stored locally by the subscription service, and

responding to the client machine with the file event summary.

18. A computer program product as in claim 17 , wherein the cache of metadata comprises information about whether a state of the content item in the content management system repository has changed since the client machine last synchronized with the content management system repository.

19. A system comprising computer hardware configured to provide operations of a synchronization queuing service, the operations comprising:

recording, to a data structure maintained by the synchronization queuing service, a change set comprising information about one or more file events affecting a content item maintained by a content management system repository with which the synchronization queuing service is associated;

receiving, at the synchronization queuing service from a client machine subscribed to the content item, a file synchronization request comprising an identifier of the content item;

determining consistency or inconsistency, relative to a current state of the content management system repository, of a client machine state of the content item at the client machine, the determining comprising comparing the change set with the identifier and a value representative of a most recent prior synchronization between the client machine and the synchronization queuing service; and

responding with a file event summary, the file event summary comprising information usable by the client machine to identify actions necessary to synchronize the client machine state of the content item relative to the current state of the content management system repository when the client machine state of the content item is inconsistent with the current state of the content management system repository or with an indication the client machine need not directly contact the content management system repository when the client machine state of the content item is consistent with the current state of the content management system repository.

20. A system as in claim 19 , wherein the computer hardware comprises a programmable processor receiving instructions that cause the programmable processor to perform at least some of the operations.

21. A computer-implemented method for implementing a synchronization queuing service, the method comprising:

recording, to a data structure maintained by the synchronization queuing service, a change set comprising information about one or more file events affecting a content item maintained by a content management system repository with which the synchronization queuing service is associated;

receiving, at the synchronization queuing service from a client machine subscribed to the content item, a file synchronization request comprising an identifier of the content item;

determining consistency or inconsistency, relative to a current state of the content management system repository, of a client machine state of the content item at the client machine, the determining comprising comparing the change set with the identifier and a value representative of a most recent prior synchronization between the client machine and the synchronization queuing service; and

responding with a file event summary, the file event summary comprising information usable by the client machine to identify actions necessary to synchronize the client machine state of the content item relative to the current state of the content management system repository when the client machine state of the content item is inconsistent with the current state of the content management system repository or with an indication the client machine need not directly contact the content management system repository when the client machine state of the content item is consistent with the current state of the content management system repository.

Assignments (11)
SECURITY INTEREST Recorded Jan 17, 2024
From: HYLAND UK OPERATIONS LIMITED
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 066339/0332 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 055820/0369 Recorded Sep 24, 2023
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, A BRANCH OF CREDIT SUISSE
To: ALFRESCO SOFTWARE LIMITED (K/N/A HYLAND UK OPERATIONS LIMITED)
Reel/Frame 065018/0057 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 55820/0343 Recorded Sep 21, 2023
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, A BRANCH OF CREDIT SUISSE
To: ALFRESCO SOFTWARE LIMITED (K/N/A HYLAND UK OPERATIONS LIMITED)
Reel/Frame 064974/0425 →
CHANGE OF NAME Recorded Oct 13, 2021
From: ALFRESCO SOFTWARE LIMITED
To: HYLAND UK OPERATIONS LIMITED
Reel/Frame 057909/0840 →
SECURITY AGREEMENT SUPPLEMENT (FIRST LIEN) Recorded Mar 26, 2021
From: ALFRESCO SOFTWARE LIMITED
To: CREDIT SUISSE
Reel/Frame 055820/0343 →
SECURITY AGREEMENT SUPPLEMENT (SECOND LIEN) Recorded Mar 26, 2021
From: ALFRESCO SOFTWARE LIMITED
To: CREDIT SUISSE
Reel/Frame 055820/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: ALFRESCO SOFTWARE, INC.
To: ALFRESCO SOFTWARE LIMITED
Reel/Frame 054935/0642 →
RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 50372/0079 Recorded Oct 27, 2020
From: GUGGENHEIM CREDIT SERVICES, LLC, AS COLLATERAL AGENT
To: ALFRESCO SOFTWARE, INC.
Reel/Frame 054229/0133 →
NOTICE OF ASSIGNMENT OF PATENT SECURITY AGREEMENT RECORDED AT R/F 045602/0578 Recorded Sep 13, 2019
From: GUGGENHEIM CORPORATE FUNDING, LLC, AS RETIRING AGENT
To: GUGGENHEIM CREDIT SERVICES, LLC, AS SUCCESSOR AGENT
Reel/Frame 050372/0079 →
PATENT SECURITY AGREEMENT Recorded Mar 14, 2018
From: ALFRESCO SOFTWARE, INC.
To: GUGGENHEIM CORPORATE FUNDING, LLC
Reel/Frame 045602/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2017
From: MELAHN, GREGORY; GARDNER, MICHAEL; GAUSS, RAY; GLOVER, STEVEN; KALSI, HARPRITT; MC ERLEAN, NEIL; REMMINGTON, BRIAN
To: ALFRESCO SOFTWARE, INC.
Reel/Frame 042957/0365 →
Continuity (3)
Continuation 14308625 · Jun 18, 2014
Provisional Application 61970280 · Mar 25, 2014
Related Publication 20180011873A1 · Jan 11, 2018