Determining a recommended software-stack for a target software item

US11288166B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11288166-B2
Application numberUS-202016933504-A
CountryUS
Kind codeB2
Filing dateJul 20, 2020
Priority dateJul 20, 2020
Publication dateMar 29, 2022
Grant dateMar 29, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A recommended software-stack can be determined for a target software item. For example, a system can receive an input specifying a target software item and a characteristic of a computing environment in which the target software item is to be executed. The system can then generate software-stack candidates for the target software item, the software-stack candidates having unique configurations of software components. The system can determine a respective score for each software-stack candidate of the software-stack candidates based on the characteristic of the computing environment and a unique configuration of software components forming the software-stack candidate. The system can select a particular software-stack candidate from the software-stack candidates as a recommended software-stack, based on the respective score for the particular software-stack candidate having a predefined attribute. The system can then generate an output indicating the recommended software-stack to enable the recommended software-stack to be included in the computing environment.

First claim

Opening claim text (preview).

The invention claimed is: 1. A system comprising: a processor; and a memory including instructions that are executable by the processor for causing the processor to: receive an input from a client device, the input specifying a target software item and specifying a characteristic of a computing environment in which the target software item is to be executed; generate software-stack candidates for the target software item by performing a search using a search algorithm configured to recursively analyze direct and indirect dependencies of the target software item, the software-stack candidates having unique configurations of software components including the target software item and dependencies of the target software item; determine a respective score for each software-stack candidate of the software-stack candidates based on the characteristic of the computing environment and a unique configuration of software components forming the software-stack candidate; select a particular software-stack candidate from the software-stack candidates as a recommended software-stack, based on the respective score for the particular software-stack candidate having a predefined attribute; and transmit an output to the client device indicating the recommended software-stack, wherein the client device is operable to install the recommended software-stack in the computing environment. 2. The system of claim 1 , wherein the software-stack candidates include different versions of the target software item and different versions of dependencies of the target software item. 3. The system of claim 1 , wherein the characteristic of the computing environment is a hardware characteristic or a software characteristic of the computing environment. 4. The system of claim 1 , wherein the memory further includes instructions that are executable by the processor for causing the processor to generate the respective score for each respective software-stack candidate among the software-stack candidates using a scoring function configured to account for the characteristic of the computing environment and (i) a performance property of a first software component in the respective software-stack candidate or (ii) a security property of a second software component in the respective software-stack candidate. 5. The system of claim 4 , wherein the memory further includes instructions that are executable by the processor for causing the processor to determine the performance property and the security property based on information in a predefined database, the information including relationships between (i) software components usable in software stacks, (ii) performance characteristics of the software components, and (iii) security characteristics of the software components. 6. The system of claim 1 , wherein the search is a heuristic search, and wherein the memory further includes instructions that are executable by the processor for causing the processor to determine the software-stack candidates by performing the search using a heuristic search algorithm. 7. The system of claim 6 , wherein the heuristic search algorithm is a Monte Carlo tree-search algorithm or a temporal-difference learning algorithm. 8. The system of claim 6 , wherein the heuristic search algorithm is configured to recursively analyze the direct and indirect dependencies of the target software item to expand a search space associated with the heuristic search. 9. The system of claim 1 , wherein the memory further includes instructions that are executable by the processor for causing the processor to: determine a recommended file to include in the recommended software-stack, wherein the recommended file is different from the target software item and is not a dependency of the target software item, and wherein the recommended file is configured to improve a performance characteristic or a security characteristic of the recommended software-stack; and include the recommended file in the recommended software-stack. 10. The system of claim 1 , wherein the target software item is an individual software application. 11. The system of claim 1 , wherein the software-stack candidates include at least 500 software-stack candidates, and wherein the search algorithm is an optimization algorithm configured to iteratively analyze the at least 500 software-stack candidates to determine an optimal software-stack candidate relative to the other software-stack candidates of the at least 500 software-stack candidates, the optimal software-stack candidate serving as the recommended software-stack candidate. 12. A method comprising: receiving, by a processor and from a client device, an input specifying a target software item and specifying a characteristic of a computing environment in which the target software item is to be executed; generating, by the processor, software-stack candidates for the target software item by performing a search using an algorithm configured to recursively analyze direct and indirect dependencies of the target software item, the software-stack candidates having unique configurations of software components including the target software item and dependencies of the target software item; determining, by the processor, a respective score for each software-stack candidate of the software-stack candidates based on the characteristic of the computing environment and a unique configuration of software components forming the software-stack candidate; selecting, by the processor, a particular software-stack candidate from the software-stack candidates as a recommended software-stack, based on the respective score for the particular software-stack candidate having a predefined attribute; and transmitting, by the processor, an output to the client device indicating the recommended software-stack, wherein the client device is operable to install the recommended software-stack in the computing environment. 13. The method of claim 12 , wherein the software-stack candidates include different versions of the target software item and different versions of dependencies of the target software item. 14. The method of claim 12 , further comprising generating the respective score for each respective software-stack candidate among the software-stack candidates using a scoring function configured to account for (i) the characteristic of the computing environment, (ii) a performance property of a first software component in the respective software-stack candidate, and (iii) a security property of a second software component in the respective software-stack candidate. 15. The method of claim 14 , further comprising determining the performance property and the security property based on information in a predefined database, the information including relationships between (i) software components usable in software stacks, (ii) performance characteristics of the software components, and (iii) security characteristics of the software components. 16. The method of claim 12 , wherein the predefined attribute involves the respective score for the particular software-stack candidate being a maximum score or a minimum score among a plurality of scores corresponding to the software-stack candidates. 17. The method of claim 12 , further comprising determining the software-stack candidates by performing the search using a heuristic search algorithm. 18. The method of claim 12 , further comprising determining the software-stack candidates by performing the search using a stochastic search algorithm. 19. The method of claim 12 , further com

Assignees

Inventors

Classifications

  • Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound · CPC title

  • Dependency analysis; Data or control flow analysis · CPC title

  • Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • using formal methods, e.g. model checking, abstract interpretation (theorem proving G06N5/013) · CPC title

  • Adapting program code to run in a different environment; Porting · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11288166B2 cover?
A recommended software-stack can be determined for a target software item. For example, a system can receive an input specifying a target software item and a characteristic of a computing environment in which the target software item is to be executed. The system can then generate software-stack candidates for the target software item, the software-stack candidates having unique configurations …
Who is the assignee on this patent?
Red Hat Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3608. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 29 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).