IP Library Granted Patent US 9,262,502
Granted Patent B2
US 9,262,502 · App. 14/162,886 · Granted Feb 16, 2016

Methods and systems for recommending cloud-computing services to a customer

Inventors: Shruti Kunde (Mumbai, IN); Tridib Mukherjee (Bangalore, IN); Gueyoung Jung (Rochester, NY)
Assignee: Xerox Corporation
G06F17/30589G06F9/45558G06F2009/45595
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,262,502
App. No.
14/162,886
Granted
Feb 16, 2016
Kind
B2
Abstract

There is provided systems and methods for creating a repository of templates. The templates are deterministic of a configuration a virtual machine. The method includes creating one or more templates for each of one or more applications types based on a benchmark data. Each of the one or more templates is stored in a hierarchal structure having one or more hierarchal levels. Each of the one or more hierarchal levels is indicative of a parameter of the configuration of the virtual machine. Thereafter, one or more rules are defined to traverse through the one or more hierarchal levels to access the one or more templates.

Claims (48)

1. A method for creating a repository of templates, the method comprising:

creating, by one or more processors, one or more templates for each of one or more applications types based on a benchmark data, wherein each of the one or more templates are deterministic of a configuration of at least one virtual machine;

storing, by the one or more processors, each of the one or more templates in a hierarchal structure having one or more hierarchal levels based on the configuration of the at least one virtual machine determinable from the each of the one or more templates, each of the one or more hierarchal levels being indicative of a parameter of the configuration of the at least one virtual machine, wherein the parameter of the configuration of the at least one virtual machine corresponds to at least one of a CPU, a memory, a storage, a load handling capability of the at least one virtual machine, or a software installed on the at least one virtual machine; and

defining, by the one or more processors, one or more rules to traverse through the one or more hierarchal levels to access the one or more templates.

2. The method of claim 1 , wherein the benchmark data corresponds to at least one of a number of virtual machines of a defined configuration required to execute an application of a particular application type, a performance measure of a virtual machine with the defined configuration while executing the application of the particular application type, a cost of the virtual machine with the defined configuration, a measure of throughput, a number of nodes required by the virtual machine with the defined configuration to execute the application.

3. The method of claim 2 , wherein the performance measure of the virtual machine comprises a first performance measure of the virtual machine in a distributed computing environment and a second performance measure of the virtual machine in a clustered computing environment.

4. The method of claim 1 , wherein the parameter of the configuration associated with the at least one virtual machine further comprises a type of the at least one virtual machine, and an application type executable on the at least one virtual machine.

5. The method of claim 4 , wherein the type of the at least one virtual machine comprises at least one of a large virtual machine, a medium virtual machine, or a small virtual machine.

6. The method of claim 5 , wherein the type of the at least one virtual machine is determined based on the configuration of the at least one virtual machine.

7. A method for creating a template from one or more pre-defined templates stored in a hierarchal structure, the hierarchal structure comprising one or more hierarchal levels, the method comprising:

receiving, by one or more processors, a request to execute an application, the request comprising one or more requirements parameters;

traversing, by the one or more processors, the hierarchal structure by selecting at least two paths at each of the one or more hierarchal levels based on one or more rules to traverse the hierarchal structure and the one or more requirements parameters;

selecting, by the one or more processors, a set of pre-defined templates at one or more leaf nodes of the hierarchal structure based on the at least two paths selected at each of the one or more hierarchal levels; and

creating, by the one or more processors, the template by combining each template in the selected set of pre-defined templates, wherein the template is deterministic of a configuration of at least one virtual machine.

8. The method of claim 7 , wherein each of the one or more hierarchal levels is indicative of a parameter of the configuration of the at least one virtual machine.

9. The method of claim 7 , wherein the one or more requirements parameters comprises a type of the application, at least one of a load requirement, budget constraints, a virtual machine type, a memory requirement, or a storage requirement.

10. The method of claim 7 further comprising storing, by the one or more processors, the created template in the hierarchal structure.

11. The method of claim 10 further comprising generating, by the one or more processors, a rule-set to access the created template in the hierarchal structure.

12. The method of claim 7 , wherein the created template includes the configuration of each of the at least one virtual machine associated with each template in the set of pre-defined templates.

13. The method of claim 7 , wherein the created template is presented to a user, wherein the user has sent the request.

14. The method of claim 13 further comprising receiving, by the one or more processors, a response from the user indicative of whether the user accepts the configuration of one or more virtual machines in the created template.

15. The method of claim 14 further comprising receiving, by the one or more processors, input from the user, based on the response, to at least one of modify the configuration of the one or more virtual machines, or create a new configuration of the one or more virtual machines.

16. The method of claim 7 , wherein the at least two paths are selected from one or more paths connecting two adjacent hierarchy levels.

17. The method of claim 7 , wherein each template in the selected set of pre-defined templates correspond to a different configuration of a virtual machine.

18. A system for creating a repository of templates, the system comprising:

one or more processors operable to:

create one or more templates for each of one or more applications types based on a benchmark data, wherein each of the one or more templates being deterministic of a configuration of at least one virtual machine;

store each of the one or more templates in a hierarchal structure having one or more hierarchal levels based on the configuration of the at least one virtual machine determinable from the each of the one or more templates, each of the one or more hierarchal levels being indicative of a parameter of the configuration of the at least one virtual machine, wherein the parameter of the configuration of the at least one virtual machine corresponds to at least one of a CPU, a memory, a storage, a load handling capability of the at least one virtual machine, or a software installed on the at least one virtual machine; and

define one or more rules to traverse through the one or more hierarchal levels to access the one or more templates.

19. A system for creating a template from one or more pre-defined templates stored in a hierarchal structure, the hierarchal structure comprising one or more hierarchal levels, the system comprising:

one or more processors operable to:

receive a request to execute an application, the request comprising one or more requirements parameters;

traverse the hierarchal structure by selecting at least two paths at each of the one or more hierarchal levels based on one or more rules to traverse the hierarchal structure and the one or more requirements parameters;

select a set of pre-defined templates at one or more leaf nodes of the hierarchal structure based on the at least two paths selected at each of the one or more hierarchal levels; and

create the template by combining each template in the selected set of pre-defined templates, wherein the template is deterministic of a configuration of at least one virtual machine.

20. The system of claim 18 , wherein each of the one or more hierarchal levels is indicative of a parameter of the configuration of the at least one virtual machine.

21. The system of claim 18 , wherein the one or more processors are further operable to store the created template in the hierarchal structure.

22. The system of claim 20 , wherein the one or more processors are further operable to generate a rule-set to access the created template in the hierarchal structure.

23. The system of claim 18 , wherein the created template includes the configuration of each of the at least one virtual machine associated with each template in the set of pre-defined templates.

24. A computer program product for use with a computing device, the computer program product comprising a non-transitory computer readable medium, the non-transitory computer readable medium stores a computer program code for creating a repository of templates, the computer program code is executable by one or more processors in the computing device to:

create one or more templates for each of one or more applications types based on a benchmark data, wherein each of the one or more templates being deterministic of a configuration of at least one virtual machine;

store each of the one or more templates in a hierarchal structure having one or more hierarchal levels based on the configuration of the at least one virtual machine determinable from the each of the one or more templates, each of the one or more hierarchal levels being indicative of a parameter of the configuration of the at least one virtual machine, wherein the parameter of the configuration of the at least one virtual machine corresponds to at least one of a CPU, a memory, a storage, a load handling capability of the at least one virtual machine, or a software installed on the at least one virtual machine; and

define one or more rules to traverse through the one or more hierarchal levels to access the one or more templates.

25. A computer program product for use with a computing device, the computer program product comprising a non-transitory computer readable medium, the non-transitory computer readable medium stores a computer program code for creating a template from one or more pre-defined templates stored in a hierarchal structure, the hierarchal structure comprising one or more hierarchal levels, the computer program code is executable by one or more processors in the computing device to:

receive a request to execute an application, the request comprising one or more requirements parameters;

traverse the hierarchal structure by selecting at least two paths at each of the one or more hierarchal levels based on one or more rules to traverse the hierarchal structure and the one or more requirements parameters;

select a set of pre-defined templates at one or more leaf nodes of the hierarchal structure based on the at least two paths selected at each of the one or more hierarchal levels; and

create the template by combining each template in the selected set of pre-defined templates, wherein the template is deterministic of a configuration of at least one virtual machine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2014
From: KUNDE, SHRUTI , ,; MUKHERJEE, TRIDIB , ,; JUNG, GUEYOUNG , ,
To: XEROX CORPORATION
Reel/Frame 032038/0006 →
Continuity (1)
Related Publication 20150213106A1 · Jul 30, 2015