IP Library › Granted Patent US 11,449,581
Granted Patent B2
US 11,449,581 · App. 16/654,554 · Granted Sep 20, 2022

Flexible license sourcing at customer sites

Inventors: Karan Kapoor (Bangalore, IN); Shibi Panikkar (Bangalore, IN)
Assignee: Dell Products L.P.
G06F21/105G06F8/61G06F21/125G06F21/51
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,449,581
App. No.
16/654,554
Filed
Oct 16, 2019
Granted
Sep 20, 2022
Kind
B2
Art Unit
2192
USPC
705/59
Abstract

In a software product installed in a given computing environment, wherein the software product when installed is configured to operate in accordance with a licensing model having a first licensing functionality, a method receives an instruction to modify the licensing model to enable the software product to operate in accordance with a second licensing functionality. The method then automatically modifies the licensing model to enable the software product to operate in accordance with the second licensing functionality.

Claims (52)

1. A method, comprising:

in a software product installed in a given computing environment, wherein the software product when installed is configured to operate in accordance with a licensing model having a first licensing functionality;

receiving an instruction to modify the licensing model to enable the software product to operate in accordance with a second licensing functionality; and

automatically modifying the licensing model to enable the software product to operate in accordance with the second licensing functionality;

wherein the given computing environment comprises a license sourcing component comprising a plurality of discrete memory blocks, each memory block of the plurality of discrete memory blocks specifying one of a plurality of different licensing transaction functions associated with one of a plurality of different licensing functionalities including the first licensing functionality and at least the second licensing functionality;

wherein automatically modifying the licensing model to enable the software product to operate in accordance with the second licensing functionality comprises:

monitoring for one or more licensing transactions called by the software product executing in the given computing environment;

determining an application context for the software product, the application context specifying the second licensing functionality;

dynamically selecting, for a given one of the one or more licensing transactions called by the software product executing in the given computing environment based at least in part on the determined application context, a given one of the plurality of different licensing transaction functions from a given one of the plurality of discrete memory blocks associated with the second licensing functionality;

utilizing at least one of dependency injection and one or more function pointer callbacks to load the given one of the one or more licensing transactions called by the software product from the given one of the plurality of discrete memory blocks; and

executing the given one of the one or more licensing transactions called by the software product utilizing the given licensing transaction function specified by the given one of the plurality of discrete memory blocks; and

wherein the receiving and modifying steps are executed by a processing device operatively coupled to a memory.

2. The method of claim 1 , wherein the first licensing functionality and the second licensing functionality relate to two licensing technologies.

3. The method of claim 1 , wherein the first licensing functionality and the second licensing functionality relate to two licensing topologies.

4. The method of claim 1 , wherein a programmed behavior associated with the first licensing functionality for the given one of the one or more licensing transactions is stored in a first one of the plurality of discrete memory blocks and a programmed behavior associated with the second licensing functionality for the given one of the one or more licensing transactions is stored as the given one of the plurality of discrete memory blocks.

5. The method of claim 4 , wherein the modifying step further comprises loading the programmed behavior from the given one of the plurality of discrete memory blocks associated with the second licensing functionality in response to a call for the given one of the one or more licensing transactions.

6. The method of claim 1 , wherein the given computing environment is a customer site.

7. The method of claim 6 , wherein automatically modifying the licensing model to enable the software product to operate in accordance with the second licensing functionality does not require communication outside the customer site.

8. The method of claim 1 , wherein automatically modifying the licensing model to enable the software product to operate in accordance with the second licensing functionality comprises utilizing the dependency injection to load the given one of the one or more licensing transactions called by the software product from the given one of the plurality of discrete memory blocks.

9. The method of claim 1 , wherein automatically modifying the licensing model to enable the software product to operate in accordance with the second licensing functionality comprises utilizing the one or more function pointer callbacks to load the given one of the one or more licensing transactions called by the software product from the given one of the plurality of discrete memory blocks.

10. An apparatus comprising:

a processing device operatively coupled to a memory and configured to:

in a software product installed in a given computing environment, wherein the software product when installed is configured to operate in accordance with a licensing model having a first licensing functionality;

receive an instruction to modify the licensing model to enable the software product to operate in accordance with a second licensing functionality; and

automatically modify the licensing model to enable the software product to operate in accordance with the second licensing functionality;

wherein the given computing environment comprises a license sourcing component comprising a plurality of discrete memory blocks, each memory block of the plurality of discrete memory blocks specifying one of a plurality of different licensing transaction functions associated with one of a plurality of different licensing functionalities including the first licensing functionality and at least the second licensing functionality; and

wherein automatically modifying the licensing model to enable the software product to operate in accordance with the second licensing functionality comprises:

monitoring for one or more licensing transactions called by the software product executing in the given computing environment;

determining an application context for the software product, the application context specifying the second licensing functionality;

dynamically selecting, for a given one of the one or more licensing transactions called by the software product executing in the given computing environment based at least in part on the determined application context, a given one of the plurality of different licensing transaction functions from a given one of the plurality of discrete memory blocks associated with the second licensing functionality;

utilizing at least one of dependency injection and one or more function pointer callbacks to load the given one of the one or more licensing transactions called by the software product from the given one of the plurality of discrete memory blocks; and

executing the given one of the one or more licensing transactions called by the software product utilizing the given licensing transaction function specified by the given one of the plurality of discrete memory blocks.

11. The apparatus of claim 10 , wherein the first licensing functionality and the second licensing functionality relate to two licensing technologies.

12. The apparatus of claim 10 , wherein the first licensing functionality and the second licensing functionality relate to two licensing topologies.

13. The apparatus of claim 10 , wherein a programmed behavior associated with the first licensing functionality for the given licensing transaction is stored in a first one of the plurality of discrete memory blocks and a programmed behavior associated with the second licensing functionality for the given one of the one or more licensing transactions is stored in the given one of the plurality of discrete memory blocks.

14. The apparatus of claim 13 , wherein the processing device is further configured to modify the software product by loading the programmed behavior from the given one of the plurality of discrete memory blocks associated with the second licensing functionality in response to a call for the given one of the one or more licensing transactions.

15. The apparatus of claim 10 , wherein the given computing environment is a customer site.

16. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device to perform steps of:

in a software product installed in a given computing environment, wherein the software product when installed is configured to operate in accordance with a licensing model having a first licensing functionality;

receiving an instruction to modify the licensing model to enable the software product to operate in accordance with a second licensing functionality; and

automatically modifying the licensing model to enable the software product to operate in accordance with the second licensing functionality;

wherein the given computing environment comprises a license sourcing component comprising a plurality of discrete memory blocks, each memory block of the plurality of discrete memory blocks specifying one of a plurality of different licensing transaction functions associated with one of a plurality of different licensing functionalities including the first licensing functionality and at least the second licensing functionality; and

wherein automatically modifying the licensing model to enable the software product to operate in accordance with the second licensing functionality comprises:

monitoring for one or more licensing transactions called by the software product executing in the given computing environment;

determining an application context for the software product, the application context specifying the second licensing functionality;

dynamically selecting, for a given one of the one or more licensing transactions called by the software product executing in the given computing environment based at least in part on the determined application context, a given one of the plurality of different licensing transaction functions from a given one of the plurality of discrete memory blocks associated with the second licensing functionality;

utilizing at least one of dependency injection and one or more function pointer callbacks to load the given one of the one or more licensing transactions called by the software product from the given one of the plurality of discrete memory blocks; and

executing the given one of the one or more licensing transactions called by the software product utilizing the given licensing transaction function specified by the given one of the plurality of discrete memory blocks.

17. The article of claim 16 , wherein the first licensing functionality and the second licensing functionality relate to two licensing technologies.

18. The article of claim 16 , wherein the first licensing functionality and the second licensing functionality relate to two licensing topologies.

19. The article of claim 16 , wherein a programmed behavior associated with the first licensing functionality for the given one of the one or more licensing transactions is stored in a first one of the plurality of discrete memory blocks and a programmed behavior associated with the second licensing functionality for the given one of the one or more licensing transactions is stored as the given one of the plurality of discrete memory blocks.

20. The article of claim 19 , wherein the modifying step further comprises loading the programmed behavior from the given one of the plurality of discrete memory blocks associated with the second licensing functionality in response to a call for the given one of the one or more licensing transactions.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2019
From: KAPOOR, KARAN; PANIKKAR, SHIBI
To: DELL PRODUCTS L.P.
Reel/Frame 050735/0934 →
Continuity (1)
Related Publication 20210117513A1 · Apr 22, 2021
Cited By (2)
US 12,505,178 US 12,659,153