US9823915B1ActiveUtility

Software container format

Assignee: MESOSPHERE INCPriority: Aug 6, 2015Filed: Jun 3, 2016Granted: Nov 21, 2017
Est. expiryAug 6, 2035(~9.1 yrs left)· nominal 20-yr term from priority
Inventors:Cody Maloney
G06F 8/61G06F 9/4411G06F 8/71
92
PatentIndex Score
30
Cited by
7
References
22
Claims

Abstract

A system for building a package with a deterministic identifier for selective software component installation comprises an interface and a processor. The interface is to receive package configuration information. The processor is to retrieve build resources; determine a deterministic package identifier based at least in part on the build resources; build a package based at least in part on the package configuration information using the build resources; and provide the package. The package includes the deterministic package identifier. A selected software component from the package is installed on a target system.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A system for building a package with a deterministic identifier for selective software component installation, comprising:
 an interface to:
 receive package configuration information; and 
 
 a processor to:
 retrieve build resources; 
 determine a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:
 determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources, 
 creating a dictionary of the set of hashes, 
 determining a serialization by serializing the dictionary in a deterministic way, and 
 determining the deterministic package identifier by computing a hash of the serialization; 
 
 build a package based at least in part on the package configuration information using the build resources; and 
 provide the package, wherein the package includes the deterministic package identifier, wherein a selected software component from the package is installed on a target system. 
 
 
     
     
       2. The system of  claim 1 , wherein the package configuration information comprises a build script. 
     
     
       3. The system of  claim 1 , wherein the package configuration information comprises a build information file. 
     
     
       4. The system of  claim 1 , wherein build resources comprise source code. 
     
     
       5. The system of  claim 1 , wherein build resources comprise libraries. 
     
     
       6. The system of  claim 1 , wherein the processor is further to:
 determine whether build resources are available; and 
 in the event build resources are not available:
 provide an error message and end the process. 
 
 
     
     
       7. The system of  claim 1 , wherein the processor is further to prepare a build environment for building the package. 
     
     
       8. The system of  claim 7 , wherein preparing a build environment comprises creating a new container environment. 
     
     
       9. The system of  claim 7 , wherein preparing a build environment comprises removing previous build artifacts and source code from a container environment. 
     
     
       10. The system of  claim 7 , wherein preparing a build environment comprises installing libraries and source code into a container environment. 
     
     
       11. The system of  claim 7 , wherein package software is built within the build environment. 
     
     
       12. The system of  claim 11 , wherein the package is created by copying the package software out of the build environment and packaging the package software. 
     
     
       13. The system of  claim 1 , wherein the processor is further to:
 determine whether building the package succeeded; and 
 in the event building the package did not succeed:
 provide an error message and end the process. 
 
 
     
     
       14. The system of  claim 1 , wherein the deterministic package identifier is determined based at least in part on a hash of the build resources. 
     
     
       15. The system of  claim 1 , wherein the package is provided to an installation server. 
     
     
       16. The system of  claim 1 , wherein the target system is associated with a role. 
     
     
       17. The system of  claim 16 , wherein the selected software component is installed based at least in part on the role. 
     
     
       18. The system of  claim 1 , wherein installing the selected software component comprises installing selected directory locations from the package. 
     
     
       19. The system of  claim 1 , wherein in the event that the software component fails, the software component is reverted to a previous version of the package. 
     
     
       20. The system of  claim 1 , wherein installing the selected software component comprises checking the deterministic package identifier to verify that the package comprises the correct package version. 
     
     
       21. A method for building a package with a deterministic identifier for selective software component installation, comprising:
 receiving, by a processor, package configuration information; 
 retrieving, by the processor, build resources;
 determining, by the processor, a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:
 determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources, 
 creating a dictionary of the set of hashes, 
 determining a serialization by serializing the dictionary in a deterministic way, and 
 
 
 determining the deterministic package identifier by computing a hash of the serialization; 
 building, by the processor, a package based at least in part on the package configuration information using the build resources; and 
 providing, by the processor, the package and the deterministic package identifier, wherein a selected software component is installed based at least in part on the deterministic package identifier using the package. 
 
     
     
       22. A computer program product for building a package with a deterministic identifier for selective software component installation, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
 receiving package configuration information; 
 retrieving build resources;
 determining a deterministic package identifier based at least in part on the build resources, wherein determining the deterministic package identifier comprises:
 determining a set of hashes, wherein each hash of the set of hashes comprises a hash of a build resource of the build resources, 
 creating a dictionary of the set of hashes, 
 determining a serialization by serializing the dictionary in a deterministic way, and 
 
 
 determining the deterministic package identifier by computing a hash of the serialization; 
 building a package based at least in part on the package configuration information using the build resources; and 
 providing the package and the deterministic package identifier, wherein a selected software component is installed based at least in part on the deterministic package identifier using the package.

Join the waitlist — get patent alerts

Track US9823915B1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.