IP Library Granted Patent US 9,705,986
Granted Patent B2
US 9,705,986 · App. 14/308,581 · Granted Jul 11, 2017

Elastic scalability of a content transformation cluster

Inventors: David Caruana (London, GB); Ray Gauss (Baltimore, MD)
Assignee: ALFRESCO SOFTWARE, INC.
H04L67/1097G06F17/30179G06F17/30569H04L67/2823H04L67/327G06F17/30005G06F17/30017G06F17/30076G06F17/30507
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,705,986
App. No.
14/308,581
Granted
Jul 11, 2017
Kind
B2
Abstract

Content transformations can include transformation of content items in a CMS repository from a source format to a target format. Such transformations can be performed using a transformation node cluster having multiple nodes, each of which is configured for a specific content transformation type. Router nodes can receive requests for content items and route content items to transformation nodes having a proper content transformation type to either transform a requested content item to the target format or perform an intermediate transformation as part of a transformation chain. A transformation node cluster can be dynamically configurable based on estimates of expected loads for the various types of transformations. Systems, methods, and articles of manufacture are also described.

Claims (42)

1. A computer-implemented method for scaling cloud-based content transformations, the method comprising:

estimating, by at least one computing system comprising computer hardware based on transformation usage data, an expected load for each of a plurality of transformation types for content item requests from one or more client machines relating to content items maintained in a content management system repository, each transformation type of the plurality of transformation types transforming a first content format to a second content format differing from the first content format, the transformation usage data comprising historical data pertaining to content transformation requests requested from the transformation node cluster;

configuring, by the at least one computing system, a transformation node cluster comprising a plurality of nodes, the configuring comprising designating each of two or more subsets of the plurality of nodes for executing one of the plurality of content transformation types, each of the two or more subsets having a designated number of nodes of the plurality of nodes, the number of nodes based on the estimated expected load for the one of the plurality of transformation types for which that subset is designated; and

assigning, by the at least one computing system, one or more router nodes within the plurality of nodes, wherein the one or more router nodes, as a result of the assigning perform operations comprising:

receiving a content item request from the one or more client machines,

identifying a required transformation type specified in the content item request, and

routing the content item request to an appropriate subset of the two or more subsets in the configured transformation node cluster, the content transformation for which the appropriate subset is designated matching the required transformation type specified in the content item request.

2. The computer-implemented method in accordance with claim 1 , further comprising re-configuring the transformation node cluster, the re-configuring comprising changing the designated number of nodes of the plurality of nodes for at least one of the two or more subsets based on a changed estimate of the expected load.

3. The computer-implemented method in accordance with claim 1 , wherein the operations performed by the one or more router nodes further comprise:

identifying a current content format of a content item referenced in a received request of the content item requests and a target content format of the content item specified in the received request; and

determining one or more required transformation types for the content item from the plurality of content transformation types.

4. The computer-implemented method in accordance with claim 3 , wherein the one or more required transformation types comprise a transformation chain comprising a plurality of transformation types, and wherein the appropriate subset has a first transformation type to transform the content item to a first intermediate content item having a first intermediate format.

5. The computer-implemented method in accordance with claim 4 , wherein the operations performed by the one or more router nodes further comprise:

routing the first intermediate content item to a second appropriate subset, a second content transformation for which the second appropriate subset is designated matching a second required transformation type of the one or more required transformation types for transforming the first intermediate content item to either a second intermediate content item having a second intermediate format or to a target content item having the target format.

6. The computer-implemented method in accordance with claim 1 , wherein at least one of the one or more router nodes is also included in one of the two or more subsets of the plurality of nodes.

7. The computer-implemented method in accordance with claim 1 , wherein the estimating further comprises use of at least one of a predictive model, machine learning, and a neural network to make predictions based on the historical data.

8. The computer-implemented method in accordance with claim 1 , wherein the stored data comprise stored callbacks provided by the one or more router nodes to client machines in response to previously completed content item requests.

9. The computer-implemented method in accordance with claim 8 , wherein the stored callbacks comprise at least one of references to requested content items, arrays of transformed content item references referencing intermediate content items created in transformation chains to produce transformed content items in response to the completed content item requests, listings of options specified in the content item requests, listings of operations performed to convert content items to target content formats, and identifiers for transformation nodes that participated in the transformation chains.

10. The computer-implemented method in accordance with claim 1 , wherein the transformation usage data further comprises at least one of a type and number of business process applications supported by the content management system repository, usage factors defined for content item transformations expected to be called by the business process applications, and an absolute or relative amount of mobile device usage supported by the content management system repository.

11. The computer-implemented method in accordance with claim 1 , wherein the estimating further comprises acting on at least one human input parameter relating to expected transformation demands.

12. 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 comprising:

estimating, based on transformation usage data, an expected load for each of a plurality of transformation types for content item requests from one or more client machines relating to content items maintained in a content management system repository, each transformation type of the plurality of transformation types transforming a first content format to a second content format differing from the first content format, the transformation usage data comprising historical data pertaining to content transformation requests requested from the transformation node cluster;

configuring, by the at least one computing system, a transformation node cluster comprising a plurality of nodes, the configuring comprising designating each of two or more subsets of the plurality of nodes for executing one of the plurality of content transformation types, each of the two or more subsets having a designated number of nodes of the plurality of nodes, the number of nodes based on the estimated expected load for the one of the plurality of transformation types for which that subset is designated; and

assigning, by the at least one computing system, one or more router nodes within the plurality of nodes, wherein the one or more router nodes, as a result of the assigning perform operations comprising:

receiving a content item request from the one or more client machines,

identifying a required transformation type specified in the content item request, and

routing the content item request to an appropriate subset of the two or more subsets in the configured transformation node cluster, the content transformation for which the appropriate subset is designated matching the required transformation type specified in the content item request.

13. The computer program product in accordance with claim 12 , wherein the operations further comprise re-configuring the transformation node cluster, the re-configuring comprising changing the designated number of nodes of the plurality of nodes for at least one of the two or more subsets based on a changed estimate of the expected load.

14. The computer program product in accordance with claim 12 , wherein the stored data comprise stored callbacks provided by the one or more router nodes to client machines in response to previously completed content item requests.

15. The computer program product in accordance with claim 14 , wherein the stored callbacks comprise at least one of references to requested content items, arrays of transformed content item references referencing intermediate content items created in transformation chains to produce transformed content items in response to the completed content item requests, listings of options specified in the content item requests, listings of operations performed to convert content items to target content formats, and identifiers for transformation nodes that participated in the transformation chains.

16. The computer program product in accordance with claim 12 , wherein the transformation usage data further comprises at least one of a type and number of business process applications supported by the content management system repository, usage factors defined for content item transformations expected to be called by the business process applications, and an absolute or relative amount of mobile device usage supported by the content management system repository.

17. A system comprising:

computer hardware configured to perform operations comprising:

estimating, based on transformation usage data, an expected load for each of a plurality of transformation types for content item requests from one or more client machines relating to content items maintained in a content management system repository, each transformation type of the plurality of transformation types transforming a first content format to a second content format differing from the first content format, the transformation usage data comprising historical data pertaining to content transformation requests requested from the transformation node cluster;

configuring, by the at least one computing system, a transformation node cluster comprising a plurality of nodes, the configuring comprising designating each of two or more subsets of the plurality of nodes for executing one of the plurality of content transformation types, each of the two or more subsets having a designated number of nodes of the plurality of nodes, the number of nodes based on the estimated expected load for the one of the plurality of transformation types for which that subset is designated; and

assigning, by the at least one computing system, one or more router nodes within the plurality of nodes, wherein the one or more router nodes, as a result of the assigning perform operations comprising:

receiving a content item request from the one or more client machines,

identifying a required transformation type specified in the content item request, and

routing the content item request to an appropriate subset of the two or more subsets in the configured transformation node cluster, the content transformation for which the appropriate subset is designated matching the required transformation type specified in the content item request.

18. A system as in claim 17 , wherein the computer hardware comprises

a programmable processor; and

a machine-readable medium storing instructions that, when executed by the processor, cause the programmable processor to perform at least some of the operations.

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 Jun 6, 2017
From: CARUANA, DAVID; GAUSS, RAY
To: ALFRESCO SOFTWARE, INC.
Reel/Frame 042619/0916 →
Continuity (1)
Related Publication 20150370870A1 · Dec 24, 2015