IP Library Granted Patent US 9,286,189
Granted Patent B2
US 9,286,189 · App. 14/285,434 · Granted Mar 15, 2016

Self-evolving computing service template translation

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,286,189
App. No.
14/285,434
Granted
Mar 15, 2016
Kind
B2
Abstract

Methods and apparatus for automatically generating translation programs for translating computing services templates to service blueprints are disclosed. An example method includes generating a population of translation logic elements from a plurality of verified computing services template translation programs, where each of the verified programs is configured to correctly translate at least one computing services template of a plurality of known templates to a respective service blueprint. The example method further includes identifying a new computing services template and programmatically augmenting the population of translation logic elements. The example method also includes generating one or more additional translation programs based on the augmented population of translation logic elements and validating each of the one or more additional computing services template translation programs. Based on the validating, each of the one or more additional computing services template translation programs is added to the verified translation programs or is discarded.

Claims (73)

1. A computer-implemented method including executing, by at least one processor, instructions recorded on a non-transitory computer-readable storage medium, the method comprising:

identifying, by the at least one processor, a template from a set of templates, each template included in the set of templates including respective meta-data describing a configuration for a corresponding computing services platform, and the template being associated with a translation program that translates the template into a service blueprint for a computing services platform associated with the service blueprint;

verifying the translation program associated with the template, the verifying comprising:

applying a first fitness function to the translation program;

determining, by the first fitness function, that the translation program is valid;

based on the first fitness function determining that the translation program is valid, applying a second fitness function to the translation program; and

determining, by the second fitness function, that the translation program is valid; and

based on the second fitness function determining that the translation program is valid and based on the first fitness function determining that the translation program is valid, adding the translation program to a set of validated translation programs for use in translating the set of templates.

2. The computer-implemented method of claim 1 , further comprising:

generating, by the at least one processor, a population of translation logic elements from the set of validated translation programs, wherein each of the validated translation programs is configured to correctly translate at least one template of the set of templates to a respective service blueprint for the computing services platform associated with the service blueprint.

3. The computer-implemented method of claim 1 , wherein determining, by the first fitness function, that the translation program is valid comprises determining that the translation program is a candidate for further generational evolution.

4. The computer-implemented method of claim 3 , wherein determining, by the first fitness function, that the translation program is a candidate for further generational evolution comprises determining that the translation program is stable and semantically consistent.

5. The computer-implemented method of claim 4 , wherein determining, by the second fitness function, that the translation program is valid further comprises determining that the translation program is a good fit for the associated template.

6. The computer-implemented method of claim 1 , wherein determining, by the second fitness function, that the translation program is valid comprises:

generating, by the translation program, a translation of the template into a service blueprint that includes a plurality of elements;

comparing, for each of the plurality of elements, the element of the service blueprint with a respective element of a runtime state matrix of a computing services platform associated with the service blueprint to identify a fraction of mismatched constructs; and

determining that the fraction of mismatched constructs is within an acceptable target for the second fitness function.

7. The computer-implemented method of claim 1 , further comprising:

determining, by the first fitness function, that the translation program is not valid; and

based on the first fitness function determining that the translation program is not valid, discarding the translation program, the discarding not adding the translation program to a set of validated translation programs for use in translating the set of templates.

8. The computer-implemented method of claim 1 , further comprising:

determining, by the first fitness function, that the translation program is not valid; and

based on the first fitness function determining that the translation program is not valid, not applying the second fitness function.

9. The computer-implemented method of claim 1 , further comprising:

determining, by the second fitness function, that the translation program is not valid; and

based on the second fitness function determining that the translation program is not valid, discarding the translation program, the discarding not adding the translation program to a set of validated translation programs for use in translating the set of templates.

10. The computer-implemented method of claim 1 , further comprising:

identifying termination criteria associated with the translation program;

determining that the translation program satisfies at least one of the termination criteria; and

based on determining that the translation program satisfies at least one of the termination criteria, terminating further generational evolution of the translation program.

11. The computer-implemented method of claim 10 , wherein the termination criteria includes a maximum number of allowed generational evolutions for the translation program.

12. The computer-implemented method of claim 10 , wherein determining that the translation program satisfies at least one of the termination criteria comprises:

generating, by the translation program, a translation of the template into a service blueprint that includes a plurality of elements;

comparing, for each of the plurality of elements, the element of the service blueprint with a respective element of a runtime state matrix of a computing services platform associated with the service blueprint to identify a fraction of mismatched constructs; and

determining that the fraction of mismatched constructs is not within an acceptable variance of a target value.

13. A system comprising:

at least one memory device configured to store executable code; and

at least one processor operably coupled to the at least one memory device, the processor configured to execute the code in order to perform the operations of:

identifying, by the at least one processor, a template from a set of templates, each template included in the set of templates including respective meta-data describing a configuration for a corresponding computing services platform, and the template being associated with a translation program that translates the template into a service blueprint for a computing services platform associated with the service blueprint;

verifying the translation program associated with the template, the verifying comprising the operations of:

applying a first fitness function to the translation program;

determining, by the first fitness function, whether the translation program is valid;

based on the first fitness function determining that the translation program is valid, applying a second fitness function to the translation program; and

determining, by the second fitness function, whether the translation program is valid; and

based on the second fitness function determining that the translation program is valid and based on the first fitness function determining that the translation program is valid, adding the translation program to a set of validated translation programs for use in translating the set of templates.

14. The system of claim 13 , the operations further comprising:

generating a population of translation logic elements from the set of validated translation programs, wherein each of the validated translation programs is configured to correctly translate at least one template of the set of templates to a respective service blueprint for the computing services platform associated with the service blueprint.

15. The system of claim 13 , the operations further comprising:

generating, by the translation program, a translation of the template into a service blueprint;

wherein the operation of determining, by the first fitness function, that the translation program is valid comprises determining that the service blueprint is semantically accurate and self-consistent; and

wherein the operation of determining, by the second fitness function, that the translation program is valid comprises determining that the service blueprint corresponds, within a given degree of accuracy, with a runtime state of the computing services platform associated with the service blueprint.

16. The system of claim 13 , the operations further comprising:

identifying termination criteria associated with the translation program;

determining that the translation program satisfies at least one of the termination criteria; and

based on determining that the translation program satisfies at least one of the termination criteria, terminating further generational evolution of the translation program.

17. A computer program product, the computer program product being tangibly embodied on a non-transitory computer-readable storage medium storing instructions that when executed cause a processor to perform a process, the instructions comprising instructions to:

identify, by the at least one processor, a template from a set of templates, each template included in the set of templates including respective meta-data describing a configuration for a corresponding computing services platform, and the template being associated with a translation program that translates the template into a service blueprint for a computing services platform associated with the service blueprint;

verify the translation program associated with the template, the instructions to verify comprising instructions to:

apply a first fitness function to the translation program;

determine, by the first fitness function, that the translation program is valid;

apply a second fitness function to the translation program based on the first fitness function determining that the translation program is valid; and

determine, by the second fitness function, that the translation program is valid; and

add the translation program to a set of validated translation programs for use in translating the set of templates based on the first fitness function and the second fitness function determining that the translation program is valid.

18. The computer program product of claim 17 , the instructions further comprising instructions to:

generate a population of translation logic elements from the set of validated translation programs, wherein each of the validated translation programs is configured to correctly translate at least one template of the set of templates to a respective service blueprint for the computing services platform associated with the service blueprint.

19. The system of claim 17 , the instructions further comprising instructions to:

generate, by the translation program, a translation of the template into a service blueprint;

wherein determining, by the first fitness function, that the translation program is valid comprises determining that the service blueprint is semantically accurate and self-consistent; and

wherein determining, by the second fitness function, that the translation program is valid comprises determining that the service blueprint corresponds, within a given degree of accuracy, with a runtime state of the computing services platform associated with the service blueprint.

20. The system of claim 17 , wherein the instructions to determine, by the second fitness function, that the translation program is valid comprise instructions to:

generate, by the translation program, a translation of the template into a service blueprint that includes a plurality of elements;

compare, for each of the plurality of elements, the element of the service blueprint with a respective element of a runtime state matrix of a computing services platform associated with the service blueprint to identify a fraction of mismatched constructs; and

determine that the fraction of mismatched constructs is within an acceptable target for the second fitness function.

Assignments (16)
CHANGE OF NAME Recorded Jan 10, 2025
From: BLADELOGIC, INC.
To: BMC HELIX, INC.
Reel/Frame 069870/0796 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2017
From: BMC SOFTWARE, INC.
To: BLADELOGIC, INC.
Reel/Frame 042749/0439 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2014
From: NEOGI, ATANU
To: BMC SOFTWARE, INC.
Reel/Frame 032954/0546 →