IP Library Granted Patent US 10,963,482
Granted Patent B2
US 10,963,482 · App. 14/170,364 · Granted Mar 30, 2021

Linking of content between installations of a content management system

Inventors: Neil McErlean (Winchester, GB); Tuna Aksoy (Maidenhead, GB); Nick Burch (Maidenhead, GB); Michael Farman (Maidenhead, GB); Paul Holmes-Higgin (Maidenhead, GB); John Newton (Maidenhead, GB); Brian Remmington (Maidenhead, GB); Mark Rogers (Maidenhead, GB); Jan Vonka (Maidenhead, GB); David Webster (Maidenhead, GB)
Assignee: Alfresco Software, Inc.
G06F16/27G06F8/61G06F16/178G06F16/275H04L63/02H04L63/10H04L67/1095
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,963,482
App. No.
14/170,364
Granted
Mar 30, 2021
Kind
B2
Abstract

Content maintained in a first repository of a first installation (which can optionally be an on-premise installation) of a content management system, as well as metadata associated with the content, can be shared via an approach in which content items maintained in the first repository are synchronized with a copy of the content items maintained in a second repository of a second installation (which can optionally be a cloud-based installation). The first installation can be optionally firewall protected. The copy of the content items can be accessed by collaborative users both within and external to a firewall. Related systems, methods, products, etc. are described.

Claims (50)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations of a first installation of a content management system, the operations comprising:

establishing authentication between a first repository managed by the first installation and a second repository managed by a second installation of the content management system, the first installation being protected by a firewall preventing access to the first repository by an external user;

linking a content item maintained by the first repository with a copy of the content item maintained by the second repository such that the copy of the content item is accessible by an external user subject to one or more access controls enforceable by the second installation, the copy comprising both content of the content item and a set of metadata in common with the content item at the first repository; and

synchronizing the set of metadata between the copy of the content item and the content item in the first repository, the synchronizing occurring via a push to the second installation of changes to the content item at the first repository for writing to the copy of the content item at the second repository, and via a pull to the first installation of changes to the copy of the content item at the second repository for writing to the content item at the first repository, the first installation initiating both the push and the pull.

2. A computer program product as in claim 1 , wherein the access controls are defined based on either or both of an input from an internal user of the first installation who initiates the linking of the content item and the copy of the content item, and an access permission defined for an existing structure at the second installation that is designated as a destination for the copy of the content item.

3. A computer program product as in claim 1 , wherein the linking further comprises:

adding the content item to a synchronization set;

associating a marker aspect with the content item at the first repository when the content item is added to the synchronization set; and

adding an entry in a first audit log for the synchronization indicating addition of the content item the synchronization set, the adding of the entry triggering a first push synchronization to the second installation to create the copy of the content item at the second repository.

4. A computer program product as in claim 3 , wherein the operations further comprise: unsynchronizing the copy of the content item and the content item, the unsynchronizing comprising removing the marker aspect from the content item at the first repository and adding an unsynchronization record to the first audit log.

5. A computer program product as in claim 4 , wherein the unsynchronizing further comprises pushing a removal node from the first installation to the second installation, the removal node causing the second installation to delete the copy of the content item upon receipt of the removal node.

6. A computer program product as in claim 4 , wherein the unsynchronizing further comprises pushing a removal node from the first installation to the second installation, the removal node causing the second installation to retain the copy of the content item without further reporting of changes made to the copy back to the first installation.

7. A computer program product as in claim 1 , wherein the synchronizing occurs periodically and comprises receiving from the second installation a change manifest generated from a second audit log that records changes to the copy of the content item at the second repository occurring since a previous synchronization and reading from a first audit log that records changes to the content item at the first repository occurring since the previous synchronization.

8. A computer program product as in claim 7 , wherein the pull further comprises querying the second audit log from the first installation and the push further comprises sending information from the first audit log to the second installation.

9. A computer program product as in claim 1 , wherein the first installation serves as a system of record for changes to the content item and the second installation serves as a system of engagement where collaborative changes to the copy of the content item occur.

10. A computer program product as in claim 1 , wherein the content item and the copy of the content item comprise one or more of a file, a folder, and a directory structure.

11. A computer program product as in claim 1 , wherein the linking further comprises creating a synchronization set defining content for synchronization between the first repository and the second repository, the defining comprising selecting the content item for inclusion in the synchronization set and a destination in the second repository to which the content item in the synchronization set is to be synchronized.

12. A computer program product as in claim 1 , wherein the first repository comprises an on-premise repository protected from access by external users by a firewall, and the second repository comprises a cloud-based tenant repository outside of the firewall.

13. A computer program product as in claim 12 , wherein the cloud-based tenant repository comprises a plurality of sites, and wherein a synchronization set defines content for synchronization between the first repository and the second repository, the synchronization set comprising the content item for inclusion in the synchronization set and a site of the plurality of sites in the second repository as a destination to which the content item in the synchronization set is to be synchronized.

14. A computer program product as in claim 1 , wherein the synchronizing further comprises:

sending a request for a change manifest from the first installation to the second installation, the request comprising a repository identifier identifying the first repository;

receiving the change manifest from the second repository at the first repository, the change manifest comprising a synchronization set identifier identifying a changed synchronization set of the one or more synchronization sets, the changed synchronization set comprising the content item which has had its copy changed at the second repository subsequent to a previous synchronization between the first repository and the second repository;

requesting from the second repository based on the change manifest, a detailed record of changes made at the second repository to the content item identified by the content item identifier; and

receiving, at the first repository from the second repository, a set of change descriptions comprising the detailed record of changes.

15. A computer program product as in claim 1 , wherein the establishing authentication comprises verifying that an internal user of the first installation has authorized access to a destination for the copy of the content item at the second installation, the verifying comprising at least one of receiving authentication credentials provided by the first user and retrieving the authentication credentials from a credentials store.

16. A system comprising:

computer hardware configured to perform operations of a first installation of a content management system, the operations comprising:

establishing authentication between a first repository managed by the first installation and a second repository managed by a second installation of the content management system, the first installation being protected by a firewall preventing access to the first repository by an external user;

linking a content item maintained by the first repository with a copy of the content item maintained by the second repository such that the copy of the content item is accessible by an external user subject to one or more access controls enforceable by the second installation, the copy comprising both content of the content item and a set of metadata in common with the content item at the first repository; and

synchronizing the set of metadata between the copy of the content item and the content item in the first repository, the synchronizing occurring via a push to the second installation of changes to the content item at the first repository for writing to the copy of the content item at the second repository, and via a pull to the first installation of changes to the copy of the content item at the second repository for writing to the content item at the first repository, the first installation initiating both the push and the pull.

17. A system as in claim 16 , wherein the computer hardware comprises at least one programmable processor and a machine-readable medium storing instructions that, when executed by the at least one processor, cause the at least one programmable processor to perform the operations.

18. A system as in claim 16 , wherein the linking further comprises:

adding the content item to a synchronization set;

associating a marker aspect with the content item at the first repository when the content item is added to the synchronization set; and

adding an entry in a first audit log for the synchronization indicating addition of the content item the synchronization set, the adding of the entry triggering a first push synchronization to the second installation to create the copy of the content item at the second repository.

19. A system as in claim 16 , wherein the first repository comprises an on-premise repository protected from access by external users by a firewall, and the second repository comprises a cloud-based tenant repository outside of the firewall.

20. A system as in claim 19 , wherein the cloud-based tenant repository comprises a plurality of sites, and wherein a synchronization set defines content for synchronization between the first repository and the second repository, the synchronization set comprising the content item for inclusion in the synchronization set and a site of the plurality of sites in the second repository as a destination to which the content item in the synchronization set is to be synchronized.

21. A system as in claim 16 , wherein the synchronizing further comprises:

sending a request for a change manifest from the first installation to the second installation, the request comprising a repository identifier identifying the first repository;

receiving the change manifest from the second repository at the first repository, the change manifest comprising a synchronization set identifier identifying a changed synchronization set of the one or more synchronization sets, the changed synchronization set comprising the content item which has had its copy changed at the second repository subsequent to a previous synchronization between the first repository and the second repository;

requesting from the second repository based on the change manifest, a detailed record of changes made at the second repository to the content item identified by the content item identifier; and

receiving, at the first repository from the second repository, a set of change descriptions comprising the detailed record of changes.

22. A computer-implemented method comprising:

establishing authentication between a first repository managed by a first installation of a content management system and a second repository managed by a second installation of the content management system, the first installation being protected by a firewall preventing access to the first repository by an external user;

linking a content item maintained by the first repository with a copy of the content item maintained by the second repository such that the copy of the content item is accessible by an external user subject to one or more access controls enforceable by the second installation, the copy comprising both content of the content item and a set of metadata in common with the content item at the first repository; and

synchronizing the set of metadata between the copy of the content item and the content item in the first repository, the synchronizing occurring via a push to the second installation of changes to the content item at the first repository for writing to the copy of the content item at the second repository, and via a pull to the first installation of changes to the copy of the content item at the second repository for writing to the content item at the first repository, the first installation initiating both the push and the pull.

23. A computer-implemented method comprising:

receiving, by a second installation of a content management system from a first installation of the content management, confirmation that a first repository managed by the first installation of the content management system has established authentication with a second repository managed by the second installation, the first installation being protected by a firewall preventing access to the first repository by an external user;

receiving, at the second installation, a link of a content item maintained by the first repository with a copy of the content item maintained by the second repository such that the copy of the content item is accessible by an external user subject to one or more access controls enforceable by the second installation, the copy comprising both content of the content item and a set of metadata in common with the content item at the first repository; and

synchronizing the set of metadata between the copy of the content item and the content item in the first repository, the synchronizing occurring via receipt by the second installation of a push from the first installation of changes to the content item at the first repository for writing to the copy of the content item at the second repository, and by the second installation responding to a pull to the first installation of changes to the copy of the content item at the second repository for writing to the content item at the first repository, the first installation initiating both the push and the pull.

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 Aug 14, 2014
From: MC ERLEAN, NEIL; ROGERS, MARK; VONKA, JAN; AKSOY, TUNA; BURCH, NICK; FARMAN, MICHAEL; HOLMES-HIGGIN, PAUL; NEWTON, JOHN; REMMINGTON, BRIAN; WEBSTER, DAVID
To: ALFRESCO SOFTWARE, INC.
Reel/Frame 033535/0297 →
Continuity (2)
Provisional Application 61887277 · Oct 4, 2013
Related Publication 20150100548A1 · Apr 9, 2015