IP Library Granted Patent US 11,263,002
Granted Patent B2
US 11,263,002 · App. 17/096,657 · Granted Mar 1, 2022

Efficient automatic population of downgrade rights of licensed software

Inventors: Nirali A. Vora (Milpitas, CA); Yiwen Wang (Santa Clara, CA); Colby Andrew Blakeman (Mountain View, CA)
Assignee: ServiceNow, Inc.
G06F8/71G06F8/61G06F8/75G06F8/77
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 11,263,002
App. No.
17/096,657
Granted
Mar 1, 2022
Kind
B2
Abstract

A software model specification for a software package can be associated with representation of a software downgrade definition. The software model specification can include a publisher of the software package, an application title of the software package, and the version of the software package. One or more entitlements for the software package can be obtained. Based on the software downgrade definition being associated with the software model specification, the software downgrade definition can be associated with the entitlement(s). Compliance of the installations of the software package with the entitlement(s) can be calculated, where the software downgrade definition can cause each of the entitlement(s) to be applicable to the installations of the version of the software package or one or more earlier versions of the software package.

Claims (62)

1. A method comprising:

identifying installations of a software package on one or more computing devices; and

calculating compliance of the installations by allocating an entitlement corresponding to a software license for the software package to each installation of the installations, wherein allocating a first entitlement to a first installation comprises:

identifying a group of associated entitlements for the software package;

selecting a closest-match entitlement of the group of associated entitlements based at least in part on a software downgrade definition associated with each associated entitlement of the group of associated entitlements, wherein the closest-match entitlement comprises a smallest number of applicable versions of the software package of the group of associated entitlements, wherein the applicable versions of the software package are specified by the software downgrade definition associated with each associated entitlement of the group of associated entitlements;

determining whether a first software license for the software package associated with the closest-match entitlement is available;

in response to determining that the first software license associated with the closest-match entitlement is available, updating metric data to indicate that the first software license associated with the closest-match entitlement has been allocated to the first installation;

in response to determining that the first software license associated with the closest-match entitlement is not available, selecting a minimum entitlement of the group of associated entitlements, wherein the minimum entitlement comprises a next smallest number, greater than the smallest number, of applicable versions of the software package of the group of associated entitlements; and

in response to determining that a second software license of the software package associated with the minimum entitlement is available, updating the metric data to indicate that the second software license associated with the minimum entitlement has been allocated to the first installation.

2. The method of claim 1 , comprising determining an installed version of the software package for the first installation.

3. The method of claim 2 , wherein each associated entitlement of the group of associated entitlements is associated with the installed version of the software package.

4. The method of claim 2 , wherein the closest-match entitlement comprises applicability for only the installed version of the software package.

5. The method of claim 1 , determining the software downgrade definition associated with each associated entitlement based at least in part on software upgrades or software downgrades supported by the associated entitlement.

6. The method of claim 5 , comprising:

determining relationships between discovery maps, wherein each discovery map of the discovery maps comprises version information associated with the software package; and

determining the software upgrades or the software downgrades supported by each associated entitlement based at least in part on the determined relationships.

7. The method of claim 1 , comprising generating a compliance report of the installations of the software package based at least in part on the metric data, wherein the compliance report indicates whether any software license is available for the first installation of the software package.

8. A system comprising:

one or more processors; and

non-transitory memory comprising instructions executable by the one or more processors, wherein the instructions comprise instructions to perform operations comprising:

identifying installations of a software package on one or more computing devices; and

calculating compliance of the installations, wherein calculating the compliance of the installations comprises:

allocating an entitlement corresponding to a software license for the software package to each installation of the installations, wherein allocating a first entitlement to a first installation comprises:

identifying a group of associated entitlements for the software package;

determining an installed version of the software package for the first installation;

selecting a minimum entitlement of the group of associated entitlements based at least in part on a software downgrade definition associated with each associated entitlement of the group of associated entitlements, wherein the minimum entitlement comprises an available software license with a smallest number of applicable versions of the software package of the group of associated entitlements, wherein the applicable versions of the software package are specified by the software downgrade definition associated with each associated entitlement of the group of associated entitlements; and

updating metric data to indicate that the minimum entitlement has been allocated to the first installation; and

allocating a second entitlement to a second installation having the installed version of the software package, wherein allocating the second entitlement to the second installation comprises:

identifying the group of associated entitlements for the software package;

determining that no additional software license associated with the minimum entitlement is available;

selecting a second minimum entitlement, wherein the second minimum entitlement comprises a second available software license with a second smallest number, greater than the smallest number, of applicable versions of the software package of the group of associated entitlements; and

updating the metric data to indicate that the second minimum entitlement has been allocated to the second installation.

9. The system of claim 8 , wherein each associated entitlement of the group of associated entitlements is associated with the installed version of the software package.

10. The system of claim 8 , wherein calculating the compliance of the installations comprises attempting to allocate a third entitlement to a third installation having the installed version of the software package, wherein attempting to allocate the third entitlement to the third installation comprises:

identifying the group of associated entitlements for the software package;

determining that no additional software license associated with the group of associated entitlements is available; and

update the metric data to indicate a compliance issue associated with the third installation.

11. The system of claim 8 , wherein the minimum entitlement comprises a closest-match entitlement.

12. The system of claim 8 , wherein the operations comprise determining the software downgrade definition associated with each associated entitlement based at least in part on software upgrades or software downgrades supported by the associated entitlement.

13. The system of claim 12 , wherein the operations comprise:

determining relationships between discovery maps, wherein each discovery map of the discovery maps comprises version information associated with the software package; and

determining the software upgrades or the software downgrades supported by each associated entitlement based at least in part on the determined relationships.

14. A non-transitory, computer-readable medium storing instructions executable by one or more processors of a computing system, wherein the instructions comprise instructions to perform operations comprising:

identifying installations of a software package on one or more computing devices; and

calculating compliance of the installations, wherein calculating compliance of the installations comprises:

allocating an entitlement corresponding to a software license for the software package to each installation of the installations, wherein allocating a first entitlement to a first installation comprises:

determining an installed version of the software package for the first installation;

determining an installed version of the software package for the first installation;

identifying a group of associated entitlements for the installed version of the software package;

selecting a minimum entitlement of the group of associated entitlements based at least in part on a software downgrade definition associated with each associated entitlement of the group of associated entitlements, wherein the minimum entitlement comprises an available software license with a smallest number of applicable versions of the software package of the group of associated entitlements, wherein the applicable versions of the software package are specified by the software downgrade definition associated with each associated entitlement of the group of associated entitlements; and

updating metric data to indicate that the minimum entitlement has been allocated to the first installation; and

attempting to allocate a second entitlement to a second installation having the installed version of the software package, wherein attempting to allocate the second entitlement to the second installation comprises:

identifying the group of associated entitlements for the software package;

determining that no additional software license associated with the group of associated entitlements is available; and

updating the metric data to indicate a compliance issue associated with the second installation.

15. The non-transitory, computer-readable medium of claim 14 , wherein each associated entitlement of the group of associated entitlements is associated with the installed version of the software package.

16. The non-transitory, computer-readable medium of claim 14 , wherein the software downgrade definition is determined based at least in part on relationships between discovery maps, wherein each discovery map of the discovery maps comprises version information associated with the software package, wherein the relationships comprise software upgrades or software downgrades supported by each associated entitlement.

17. The non-transitory, computer-readable medium of claim 14 , wherein the operations comprise allocating a third entitlement to a third installation having the installed version of the software package, wherein allocating the third entitlement to the third installation comprises:

identifying the group of associated entitlements for the software package;

determining that no additional software license associated with the minimum entitlement is available;

selecting a second minimum entitlement, wherein the second minimum entitlement comprises a second available software license with a second smallest number, greater than the smallest number, of applicable versions of the software package of the group of associated entitlements; and

updating the metric data to indicate that the second minimum entitlement has been allocated to the third installation.

Continuity (2)
Continuation 16402714 · May 3, 2019
Related Publication 20210081195A1 · Mar 18, 2021