US12008084B2ActiveUtilityA1

System and method for autonomous software licensing during bootup process

48
Assignee: BARRACUDA NETWORKS INCPriority: Feb 2, 2022Filed: Mar 29, 2022Granted: Jun 11, 2024
Est. expiryFeb 2, 2042(~15.6 yrs left)· nominal 20-yr term from priority
G06F 21/1077G06F 9/4401G06F 21/121G06F 21/105
48
PatentIndex Score
0
Cited by
7
References
25
Claims

Abstract

A new approach is proposed to support software validation and licensing management. An instance of a software component deployed to a physical computing device is configured to request a copy of license of the software component from a license server out-of-band before the software component can be installed and/or booted up on the physical computing device. Upon receiving a request for the copy of license from the instance of the software component, the license server is configured to grant or deny the request based on the current number of copies of license of the software component available. If the request is granted, the instance of the software component is booted up on the physical computing device. During its operation, the instance of the software component continues to communicate with the license server periodically to indicate whether the copy of license assigned by the server is still in use.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A system, comprising:
 a physical computing device; 
 an instance of a software component deployed to the physical computing device and configured to 
 transmit a request for a copy of license of the software component to a license server via a license client running in a pre-bootup environment of the instance of the software component at beginning of a bootup process before the instance of the software component is booted up and run on the physical computing device; and 
 continue to boot up and run on the physical computing device if the copy of license is assigned by the license server; 
 said license server configured to 
 populate and manage a plurality of copies of licenses for the software component, wherein the plurality of copies of licenses are maintained in a license database (DB); 
 check the license DB to determine if there is a copy of license of the virtual appliance available when the request for the copy of license of the virtual appliance is received; 
 assign the copy of license of the virtual appliance to the instance of the virtual appliance requesting the copy of license if there is a copy of license of the virtual appliance available in the license DB; and 
 deny the request for a copy of license by the instance of the virtual appliance if it is determined that every copy of license of the virtual appliance is in use. 
 
     
     
       2. The system of  claim 1 , wherein:
 the software component is one of a virtual appliance, an operating system (OS), a container, or a type of software that requires the copy of license to be installed and run on the physical computing device. 
 
     
     
       3. The system of  claim 1 , wherein:
 the license server is hosted in a public cloud that is publicly accessible over Internet. 
 
     
     
       4. The system of  claim 1 , wherein:
 the license server is hosted at a private datacenter where no external network access is provided. 
 
     
     
       5. The system of  claim 1 , further comprising:
 said license DB configured to maintain the plurality of copies of licenses of the software component together with their current statuses indicating whether each of the plurality of copies of licenses is available or in-use. 
 
     
     
       6. The system of  claim 1 , wherein:
 the instance of the software component is configured to continue to communicate with the license server periodically about current status of the instance of the virtual appliance after the instance of the virtual appliance has booted up on the physical computing device. 
 
     
     
       7. The system of  claim 6 , wherein:
 the instance of the software component is configured to inform the license server accordingly when the instance of the virtual appliance is shut down so that the copy of license of the instance of the virtual appliance is taken back by the license server to be put back into the license DB for use by other instances of the virtual appliance. 
 
     
     
       8. The system of  claim 6 , wherein:
 the license server is configured to reserve the copy of license assigned to the instance of the virtual appliance as long as one or more heartbeat messages are periodically received by the license server. 
 
     
     
       9. The system of  claim 6 , wherein:
 the license server is configured to release the copy of license assigned to the instance of the virtual appliance back to the license DB to be used by another instance of the virtual appliance if no heartbeat message has been received from the instance of the virtual appliance over a pre-specified timeout period. 
 
     
     
       10. The system of  claim 1 , wherein:
 the license server is configured to
 store the plurality of copies of licenses in a digitally-signed license file; 
 verify that the license file is authentic before populating the license DB with the plurality of copies of licenses in the digitally-signed license file. 
 
 
     
     
       11. The system of  claim 1 , wherein:
 the instance of the virtual appliance is configured to terminate the bootup process if there is no copy of license of the virtual instance available. 
 
     
     
       12. The system of  claim 1 , wherein:
 the instance of the virtual appliance is configured to boot up and run with limited functionalities if there is no copy of license of the virtual instance available. 
 
     
     
       13. The system of  claim 1 , wherein:
 the instance of the virtual appliance is configured to perform an out-of-band lookup to determine which path to boot up, wherein the out-of-band lookup identifies one or more alternative bootup processes either pre-defined by a user and automatically determined by the instance of the virtual appliance if there is no copy of license of the virtual instance available. 
 
     
     
       14. A computer-implemented method, comprising:
 populating and managing a plurality of copies of licenses for a software component by a license server, wherein the plurality of copies of licenses are maintained in a license database (DB); 
 transmitting by an instance of the software component deployed to a physical computing device a request for a copy of license of the software component to a license server via a license client running in a pre-bootup environment of the instance of the software component at beginning of a boot up process before the instance of the software component is booted up and run on the physical computing device; 
 checking the license DB to determine if there is a copy of license of the virtual appliance available when the request for the copy of license of the virtual appliance is received; 
 assigning the copy of license of the virtual appliance to the instance of the virtual appliance requesting the copy of license if there is a copy of license of the virtual appliance available in the license DB; 
 denying the request for a copy of license by the instance of the virtual appliance if it is determined that every copy of license of the virtual appliance is in use; 
 continuing to boot up and run the instance of the software component on the physical computing device if the copy of license is assigned by the license server. 
 
     
     
       15. The method of  claim 14 , further comprising:
 hosting the license server in a public cloud that is publicly accessible over Internet. 
 
     
     
       16. The method of  claim 14 , further comprising:
 hosting the license server at a private datacenter where no external network access is provided. 
 
     
     
       17. The method of  claim 14 , further comprising:
 maintaining the plurality of copies of licenses of the software component in said license DB together with their current statuses indicating whether each of the plurality of copies of licenses is available or in-use. 
 
     
     
       18. The method of  claim 14 , further comprising:
 continuing to communicate with the license server periodically about current status of the instance of the virtual appliance after the instance of the virtual appliance has booted up on the physical computing device. 
 
     
     
       19. The method of  claim 18 , further comprising:
 informing the license server accordingly when the instance of the virtual appliance is shut down so that the copy of license of the instance of the virtual appliance is taken back by the license server to be put back into the license DB for use by other instances of the virtual appliance. 
 
     
     
       20. The method of  claim 18 , further comprising:
 reserving the copy of license assigned to the instance of the virtual appliance as long as one or more heartbeat messages are periodically received by the license server. 
 
     
     
       21. The method of  claim 18 , further comprising:
 releasing the copy of license assigned to the instance of the virtual appliance back to the license DB to be used by another instance of the virtual appliance if no heartbeat message has been received from the instance of the virtual appliance over a pre-specified timeout period. 
 
     
     
       22. The method of  claim 14 , further comprising:
 storing the plurality of copies of licenses in a digitally-signed license file; 
 verifying that the license file is authentic before populating the license DB with the plurality of copies of licenses in the digitally-signed license file. 
 
     
     
       23. The method of  claim 14 , further comprising:
 terminating the bootup process if there is no copy of license of the virtual instance available. 
 
     
     
       24. The method of  claim 14 , further comprising:
 booting up and running the instance of the virtual appliance with limited functionalities if there is no copy of license of the virtual instance available. 
 
     
     
       25. The method of  claim 14 , further comprising:
 performing an out-of-band lookup to determine which path to boot up, wherein the out-of-band lookup identifies one or more alternative bootup processes either pre-defined by a user and automatically determined by the instance of the virtual appliance if there is no copy of license of the virtual instance available.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.