News Column

Patent Issued for Self-Evolving Computing Service Template Translation

August 7, 2014



By a News Reporter-Staff News Editor at Computer Weekly News -- According to news reporting originating from Alexandria, Virginia, by VerticalNews journalists, a patent by the inventor Neogi, Atanu (Brookline, MA), filed on April 10, 2012, was published online on July 22, 2014.

The assignee for this patent, patent number 8789022, is BMC Software, Inc. (Houston, TX).

Reporters obtained the following quote from the background information supplied by the inventors: "The growth in network-based computing, which is also often referred to as 'cloud computing', has provided alternatives for designing and implementing computing resources, as compared with traditional approaches where a user (or entity) purchases hardware and software and then manages that hardware and software on an ongoing basis. Depending on the particular situation, such traditional approaches can be expensive, time-consuming and inefficient. For instance, hardware often becomes quickly obsolete, requiring periodic updates along with the associated time and expense of those updates. Additionally, for complex systems, keeping operating software (e.g., operating system software) and applications up-to-date and operating properly is expensive, time-consuming and often difficult to keep track of.

"Network-based computing systems may be used to implement sets of computing resources for a user or set of users, such as for employees of a company, in a virtual manner. For instance, in certain implementations, a set of computing resources may be defined in a design template (also referred to herein as a 'computing resources template' or 'template'), where a given template represents a 'live', or 'runtime state' of a desired set of computing resources. Such templates, for a given computing system platform, may be used to generate a homogeneous, normalized service blueprint (e.g., in the form of a directed acyclic graph) that may then be used to virtually deploy the desired set of computing resources (e.g., a set of virtual machines, network components, firewalls, etc.) in an independently managed computing (e.g., hardware and software) network, where such a network is maintained by an independent service provider. In such approaches, users may then access the virtual deployed resources over a computing network, such as the Internet or other computer network (e.g., 'over the cloud'). Accordingly, such approaches provide users access to desired computing resources, with essentially equivalent functionality as traditional approaches, while alleviating the need for ongoing management of computing hardware and/or software by the user, users and/or entity for which the resources are virtually implemented.

"In such approaches, service blueprints are generally implemented as directed, acyclic graphs that illustrate a collection of computing nodes (e.g., virtual machines, databases, servers, etc.) and the relationships (e.g., edges) between those computing nodes in normalized manner. As indicated above, such service blueprints are translated from a corresponding service template that represents a runtime state of the computing resources. While such approaches provide a flexible approach for designing and deploying a given set of computing resources, they have some drawbacks. For instance, translation programs for translating templates to service blueprints are usually platform specific and are not extensible across different (heterogeneous) platforms. Specifically, virtually deploying computing resources in a given network-computing platform using such an approach may require a platform specific translation program (or set of translation programs), thus requiring separate design templates in order to deploy resources that are distributed across different types of platforms. Further, as new network-based computing platforms become available, new virtual computing resources are made available on a given platform and/or the semantics (e.g., design template semantics) used for a given platform change or are enhanced, the related translation programs must be re-engineered and/or new translation programs must be generated by software engineers, which, again, is expensive, time consuming and inefficient."

In addition to obtaining background information on this patent, VerticalNews editors also obtained the inventor's summary information for this patent: "In one general aspect, a computer-implemented method includes generating, by at least one processor, a population of translation logic elements from a plurality of verified computing services template translation programs, where each of the verified computing services template translation programs is configured to correctly translate at least one computing services template of a plurality of known computing services templates to a respective service blueprint. The computer-implemented method further includes identifying a new computing services template, programmatically augmenting the population of translation logic elements and generating one or more additional computing services template translation programs based on the augmented population of translation logic elements. The computer-implemented method also further includes validating each of the one or more additional computing services template translation programs. Based on the validating, the computer-implemented method includes performing, for each of the one or more additional computing services template translation programs, one of adding the additional translation program to the plurality of verified computing services template translation programs or discarding the additional translation program.

"Implementations may include one or more of the following features. For example, generating the population of translation logic elements may include deconstructing the plurality of verified translation programs into a plurality of constituent decision trees, where each decision tree includes a plurality of operators and a corresponding plurality of operands. The plurality of operators may include a plurality of autonomous and sequential condition evaluation expressions and assignment expressions. The plurality of operands may include a plurality of resource identifiers and blueprint constructs. Each of the resource identifiers may correspond with a respective computing services template. Each of the blueprint constructs may be computing services template independent.

"Programmatically augmenting the population of translation logic elements may include copying one or more of the translation logic elements and adding the one or more copies to the population of the translation logic elements, performing mutation of one or more of the translation logic elements of the population of translation logic elements, and performing crossover between two or more of the translation logic elements of the population of translation logic elements. Programmatically augmenting the population of translation logic elements may include recursively augmenting the population of translation logic elements.

"Validating each of the one or more additional computing services template translation programs may include, for each of the additional computing services template translation programs, determining whether a service blueprint for the new computing services template that is generated by the respective additional translation program is semantically accurate and self-consistent. If the generated service blueprint is not semantically accurate and self-consistent, the respective additional translation program may be discarded. The generated service blueprint may be a directed graph.

"Determining whether the generated service blueprint is semantically accurate and self-consistent may include (a) determining if the directed graph is acyclic; (b) determining, for each of one or more functional components represented in the directed graph, whether the respective functional component is associated with a single computing resource set, where each respective computing resource set may include at least one of respective computing specifications and respective network specifications; and determining whether each of the at least one of respective computing specifications and respective network specifications are homogeneous.

"Validating each of the one or more additional computing services template translation programs may include, for each semantically accurate and self-consistent service blueprint generated, determining whether the generated service blueprint corresponds, within a given degree of accuracy, with a runtime state of a computing services platform associated with the new computing services template. In the event the generated blueprint corresponds with the runtime state within the given degree of accuracy, the respective additional translation program may be added to the plurality of verified computing services template translation programs. In the event the generated blueprint does not correspond with the runtime state within the given degree of accuracy, the respective additional translation program may be discarded.

"The generated service blueprint may comprise a directed graph and determining whether the generated blueprint corresponds with the runtime state within the given degree of accuracy may include, for each of one or more functional components represented in the directed graph, one or more of (a) comparing software of a corresponding functional component on the computing services platform with software indicated in the directed graph; (b) comparing an operating system of the corresponding functional component on the computing services platform with an operating system indicated in the directed graph; comparing a network configuration of the corresponding functional component on the computing services platform with a network configuration indicated in the directed graph; (d) comparing a firewall configuration of the corresponding functional component on the computing services platform with a firewall configuration indicated in the directed graph; and (e) comparing a load balancer specification of the corresponding functional component on the computing services platform with a load balancer specification indicated in the directed graph.

"Determining whether the generated blueprint corresponds with the runtime state within the given degree of accuracy may include determining a percentage of attributes of the computing services platform that correctly match attributes indicated in the directed graph based on the comparisons of the computing services platform with the directed graph for each functional component indicated in the directed graph.

"The computer-implemented method, in the event each of the one or more additional translation programs are discarded, may include (a) programmatically further augmenting the population of translation logic elements; (b) generating one or more further additional computing services template translation programs based on the further augmented population of translation logic elements; validating each of the one or more further additional computing services template translation programs; and (d) based on the validating of the one or more further additional computing services template translation program, performing, for each of the one or more further additional computing services template translation programs, one of adding the further additional translation program to the plurality of verified computing services template translation programs or discarding the further additional translation program.

"Each of the known computing services templates and the new computing services template may include respective meta-data describing a configuration for a corresponding computing services platform. The new computing services template may be one of a modified version of one of the known computing services templates and a computing services template that was not previously included in the known service templates. The respective service blueprint may be a normalized, directed acyclic graph representing a design time state of a computing services platform associated with the respective computing services template, the directed acyclic graph may include a plurality of nodes and corresponding edges that define respective relationships between the plurality of nodes.

"Programmatically augmenting the population of translation logic elements, generating the one or more additional computing services template translation programs and validating each of the one or more additional computing services template translation programs may be performed in accordance with one or more termination criteria.

"In another general aspect, a non-transitory computer-readable storage medium has instructions stored thereon that, when executed, cause a processor to perform a process. The instructions include instructions to generate, by the at least one processor, a population of translation logic elements from a plurality of verified computing services template translation programs, wherein each of the verified computing services template translation programs is configured to correctly translate at least one computing services template of a plurality of known computing services templates to a respective service blueprint. The instructions further include instructions to identify a new computing services template, instructions to programmatically augment the population of translation logic elements and instructions to generate one or more additional computing services template translation programs based on the augmented population of translation logic elements. The instructions still further include instructions to validate each of the one or more additional computing services template translation programs, and, based on the validating, perform, for each of the one or more additional computing services template translation programs, one of adding the additional translation program to the plurality of verified computing services template translation programs or discarding the additional translation program.

"Implementations may include one or more of the following features. For example, the instructions to programmatically augment the population of translation logic elements may include instructions to copy one or more of the translation logic elements and add the one or more copies to the population of the translation logic elements; perform mutation of one or more of the translation logic elements of the population of translation logic elements; and perform crossover between two or more of the of the translation logic elements of the population of translation logic elements. The instructions to programmatically augment the population of translation logic element may further include instructions to recursively augment the population of translation logic elements.

"The instructions may further include, in the event each of the one or more additional translation programs are discarded, instructions to (a) programmatically further augment the population of translation logic elements; (b) generate one or more further additional computing services template translation programs based on the further augmented population of translation logic elements; and validate each of the one or more further additional computing services template translation programs. Based on the validating of the one or more further additional computing services template translation programs, the instructions may perform, for each of the one or more further additional computing services template translation programs, one of adding the further additional translation program to the plurality of verified computing services template translation programs or discarding the additional translation program.

"In another general aspect, a computer-implemented method includes generating, by at least one processor, a population of translation logic elements from a plurality of verified computing services template translation programs, where each of the verified computing services template translation programs is configured to correctly translate at least one computing services template of a plurality of known computing services templates to a respective service blueprint. The method further includes identifying a new computing services template. The method still further includes programmatically augmenting the population of translation logic elements by copying one or more of the translation logic elements and adding the one or more copies to the population of the translation logic elements; performing mutation of one or more of the translation logic elements of the population of translation logic elements; and performing crossover between two or more of the of the translation logic elements of the population of translation logic elements. The method still further includes generating one or more additional computing services template 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. The method also includes, based on the validating, performing, for each of the one or more additional computing services template translation programs, one of adding the additional translation program to the plurality of verified computing services template translation programs or discarding the additional translation program.

"Implementations may include one or more of the following features. For example, validating each of the one or more additional computing services template translation programs may include, for each of the additional computing services template translation programs, determining whether a service blueprint for the new computing services template generated by the respective additional translation program is semantically accurate and self-consistent. If the generated service blueprint is not semantically accurate and self-consistent, the respective additional translation program may be discarded. For each semantically accurate and self-consistent service blueprint generated, the method may include determining whether the generated service blueprint corresponds, within a given degree of accuracy, with a runtime state of a computing services platform associated with the new computing services template. In the event the generated blueprint corresponds with the runtime state within the given degree of accuracy, the respective additional translation program may be added to the plurality of verified computing services template translation programs. In the event the generated blueprint does not correspond with the runtime state within the given degree of accuracy, the respective additional translation program may be discarded.

"The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims."

For more information, see this patent: Neogi, Atanu. Self-Evolving Computing Service Template Translation. U.S. Patent Number 8789022, filed April 10, 2012, and published online on July 22, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8789022.PN.&OS=PN/8789022RS=PN/8789022

Keywords for this news article include: BMC Software Inc..

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Computer Weekly News


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters