IP Library › Granted Patent US 10,742,525
Granted Patent B2
US 10,742,525 · App. 15/654,517 · Granted Aug 11, 2020

Systems and methods for synthesizing resource templates using composable parts

Inventors: Steven A. Keller (Coral Springs, FL); Thomas J. Hammond (Coconut Creek, FL)
Assignee: Citrix Systems, Inc.
H04L41/5054G06F9/45558H04L41/08H04L41/0813H04L41/0843G06F2009/4557G06F2009/45575
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,742,525
App. No.
15/654,517
Filed
Jul 19, 2017
Granted
Aug 11, 2020
Kind
B2
Examiner
KHAN, ATTA
Art Unit
2449
USPC
709/226
Abstract

Described embodiments automatically and dynamically generate and update resource templates for deployable resources, utilizing composable parts that may be dynamically replaced. Common portions of the templates may be easily defined once and reused multiple times, reducing risk of error and ensuring stability and cross-resource compatibility. Each dynamic template may have replaceable parts, as well as replaceable parameters and values within the replaceable parts, as well as in common portions of the template. The replacement properties and values may be determined at runtime or during deployment, ensuring that configurations are always current.

Claims (30)

1. A method for provisioning computer system resources via a dynamic template, comprising:

receiving, by a resource manager executed by a device, a first template comprising a first one or more resource identifiers, one or more property identifiers, and one or more dynamic tags each comprising an identifier of a composable part comprising a second one or more resource identifiers; an address of the composable part; a set of property definitions; and an identification of a replacement property, wherein each of the first and second one or more resource identifiers comprise identifiers of virtual machines, databases, virtual networks, or web applications;

identifying, by the resource manager, a first dynamic tag in the first template;

retrieving, by the resource manager, the composable part at the address identified in the first dynamic tag;

replacing, by the resource manager, a variable in the retrieved composable part with the identified replacement property;

replacing, by the resource manager, the first dynamic tag in the first template with the retrieved composable part;

replacing, by the resource manager, the one or more property identifiers in the first template with corresponding definitions from the set of property definitions to create a modified template; and

transmitting, by the resource manager, the modified template to a server, the modified template used to provision one or more resources.

2. The method of claim 1 , wherein retrieving the composable part identified in the first dynamic tag further comprises transmitting a request, via a network interface, to a storage device storing the composable part; and receiving the composable part, via the network interface, responsive to the request.

3. A system for provisioning resources of a computer system, comprising:

a memory device storing a first template comprising a first one or more resource identifiers, one or more property identifiers, and one or more dynamic tags each comprising an identifier of a composable part comprising a second one or more resource identifiers an address of the composable part a set of property definitions; and an identification of a replacement property, wherein each of the first and second one or more resource identifiers comprise identifiers of virtual machines, databases, virtual networks, or web applications; and

a resource manager executable on a processor, configured to:

retrieve the first template from the memory device,

identify a first dynamic tag in the first template,

retrieve the composable part at the address identified in the first dynamic tag,

replace a variable in the retrieved composable part with the identified replacement property,

replace the dynamic tag in the first template with the retrieved composable part,

replace the one or more property identifiers in the first template with corresponding definitions from the set of property definitions to create a modified template, and

transmit the modified template to a server, the modified template used to provision one or more resources.

4. The system of claim 3 , further comprising a network interface; and wherein the resource manager is further configured to:

transmit a request, via the network interface, to a storage device storing the composable part, and

receive the composable part, via the network interface, responsive to the request.

5. A method for provisioning computer system resources via a dynamic template, comprising:

configuring a computer memory according to a first template, comprising a first one or more resource identifiers, one or more property identifiers, and one or more dynamic tags each comprising an identifier of a composable part comprising a second one or more resource identifiers an address of the composable part; a set of property definitions; and an identification of a replacement property, wherein each of the first and second one or more resource identifiers comprise identifiers of virtual machines, databases, virtual networks, or web applications; and

reconfiguring the computer memory by, for each of the one or more dynamic tags:

identifying said dynamic tag in the first template,

retrieving the composable part at the address identified in the said dynamic tag,

replacing a variable in the retrieved composable part with the identified replacement property,

replacing the said dynamic tag in the first template with the retrieved composable part, and

replacing the one or more property identifiers in the first template with corresponding definitions from the set of property definitions to create a modified template.

Assignments (8)
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2017
From: KELLER, STEVEN A.; HAMMOND, THOMAS J.
To: CITRIX SYSTEMS, INC.
Reel/Frame 043057/0297 →
Continuity (1)
Related Publication 20190028364A1 · Jan 24, 2019