IP Library Granted Patent US 8,516,090
Granted Patent B1
US 8,516,090 · App. 12/495,815 · Granted Aug 20, 2013

Method and apparatus for distributing licenses

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 8,516,090
App. No.
12/495,815
Granted
Aug 20, 2013
Kind
B1
Abstract

A method and apparatus are provided for distributing or redistributing licenses from a failed or unavailable license controller to one or more backup license controllers. Each controller has an initial count of licenses it can serve or allocate to clients desiring access to licensed electronic content. Each controller maintains a set of data that identifies the initial license counts and that also identifies backup relationships between controllers. Each such relationship for a given controller identifies which controllers will inherit licenses if the given controller becomes unavailable, and how many (e.g., a percentage) of the given controller's license that will be inherited. A redistribution plan for a given controller may have multiple levels, wherein a subsequent level may be applied only if all controllers designated as backups in the preceding level are also unavailable.

Claims (76)

1. A method of redistributing licenses for accessing electronic content, the method comprising:

distributing a total number of licenses for the electronic content among a plurality of nodes;

at each node in the plurality of nodes, allocating up to a maximum number of licenses in response to license requests, wherein a given node's maximum number of licenses is initially equal to a default number of licenses specified for the given node;

detecting unavailability of a first node;

before responding to another license request, redistributing the first node's default number of licenses among one or more backup nodes, wherein said redistributing comprises, for each of the one or more backup nodes:

identifying a percentage of the first node's default number of licenses to redistribute to the backup node; and

increasing the backup node's maximum number of licenses by the identified percentage of the first node's default number of licenses;

detecting availability of the first node after said redistributing;

at each of the one or more backup nodes:

calculating a first difference between the backup node's maximum number of licenses and either the number of licenses currently allocated by the backup node or the backup node's default number of licenses, whichever is less; and

decreasing the backup node's maximum number of licenses by the amount the backup node's maximum number of licenses was increased in said increasing;

calculating a sum of all said first differences; and

setting the maximum number of licenses the first node can allocate to entities requesting access to the content equal to said sum.

2. The method of claim 1 , further comprising:

detecting availability of the first node after said executing;

at the first node, allocating up to the first node's default number of licenses to entities requesting access to the content; and

at each of the one or more backup nodes, decreasing the backup node's maximum number of licenses by the amount the backup node's maximum number of licenses was increased in said increasing.

3. The method of claim 1 , further comprising, after said setting:

for each backup node that is currently allocating a number of licenses greater than the backup node's default number of licenses, detecting decreases in the backup node's currently allocated number of licenses; and

in response to said detecting decreases, increasing the maximum number of licenses the first node can allocate to entities requesting access to the content.

4. The method of claim 1 , further comprising:

distributing to each node in the plurality of nodes a dataset comprising each node's default number of licenses.

5. The method of claim 4 , wherein:

said dataset further comprises a redistribution plan comprising a set of weighted arcs; and

each said weighted arc comprises:

an identity of a third node;

an identity of a second node that will receive a portion of the third node's default number of licenses in the event the third node becomes unavailable; and

a weight, wherein said weight is configured to identify a size of the portion.

6. The method of claim 4 , wherein:

said dataset further comprises a multi-level hierarchical redistribution plan, wherein each level of the redistribution plan comprises a set of weighted arcs; and

each said weighted arc comprises:

an identity of a prospective failed node;

an identity of a beneficiary node that will receive a portion of the prospective failed node's default number of licenses in the event the prospective failed node becomes unavailable; and

a weight, wherein said weight corresponds to a size of the portion; and

said redistributing comprises selecting a highest level of the plan at which a first weighted arc identifying the first node as said prospective failed node identifies an available node as said beneficiary node.

7. The method of claim 6 , wherein said identifying a percentage of the first node's default number of licenses to redistribute to the backup node comprises:

identifying said weight of the first weighted arc.

8. The method of claim 6 , wherein said identifying a percentage of the first node's default number of licenses to redistribute to the backup node further comprises:

adjusting said weight if said weight corresponds to a portion of the first node's initial number of licenses that the available node cannot support.

9. A method of redistributing licenses for accessing electronic content, the method comprising:

distributing to each node in a plurality of nodes a dataset comprising:

each node's default number of licenses for the electronic content; and

a redistribution plan comprising a set of weighted arcs, each said weighted arc comprising:

an identity of a first node;

an identity of a second node that will receive a portion of the first node's default number of licenses in the event the first node becomes unavailable; and

a weight configured to identify a size of the portion;

at each node in the plurality of nodes, allocating up to a maximum number of licenses in response to license requests, wherein a given node's maximum number of licenses is initially equal to the default number of licenses specified for the given node;

detecting unavailability of a third node; and

before responding to another license request, redistributing the third node's default number of licenses among one or more backup nodes, wherein said redistributing comprises, for each of the one or more backup nodes:

identifying a percentage of the third node's default number of licenses to redistribute to the backup node; and

increasing the backup node's maximum number of licenses by the identified percentage of the third node's default number of licenses.

10. The method of claim 9 , wherein:

said dataset further comprises a multi-level hierarchical redistribution plan, wherein each level of the redistribution plan comprises a set of weighted arcs; and

each said weighted arc comprises:

an identity of a prospective failed node;

an identity of a beneficiary node that will receive a portion of the prospective failed node's default number of licenses in the event the prospective failed node becomes unavailable; and

a weight, wherein said weight corresponds to a size of the portion; and

said redistributing comprises selecting a highest level of the plan at which a first weighted arc identifying the third node as said prospective failed node identifies an available node as said beneficiary node.

11. The method of claim 10 , wherein said identifying a percentage of the third node's default number of licenses to redistribute to the backup node comprises:

identifying said weight of the first weighted arc.

12. The method of claim 10 , wherein said identifying a percentage of the third node's default number of licenses to redistribute to the backup node further comprises:

adjusting said weight if said weight corresponds to a portion of the third node's initial number of licenses that the available node cannot support.

13. The method of claim 9 , further comprising:

detecting availability of the third node after said executing;

at the third node, allocating up to the third node's default number of licenses to entities requesting access to the content; and

at each of the one or more backup nodes, decreasing the backup node's maximum number of licenses by the amount the backup node's maximum number of licenses was increased in said increasing.

14. The method of claim 9 , further comprising:

detecting availability of the third node after said redistributing;

at each of the one or more backup nodes:

calculating a first difference between the backup node's maximum number of licenses and either the number of licenses currently allocated by the backup node or the backup node's default number of licenses, whichever is less; and

decreasing the backup node's maximum number of licenses by the amount the backup node's maximum number of licenses was increased in said increasing;

calculating a sum of all said first differences; and

setting the maximum number of licenses the third node can allocate to entities requesting access to the content equal to said sum.

15. The method of claim 14 , further comprising, after said setting:

for each backup node that is currently allocating a number of licenses greater than the backup node's default number of licenses, detecting decreases in the backup node's currently allocated number of licenses; and

in response to said detecting decreases, increasing the maximum number of licenses the third node can allocate to entities requesting access to the content.

Assignments (20)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 18, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059232/0551 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
PATENT SECURITY AGREEMENT Recorded Mar 5, 2021
From: RIVERBED TECHNOLOGY, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 055514/0249 →
SECURITY INTEREST Recorded May 19, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035665/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2015
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035569/0111 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2015
From: RIVERBED TECHNOLOGY, INC.
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 035097/0776 →
RELEASE OF SECURITY INTEREST Recorded Mar 3, 2015
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035078/0354 →
RELEASE OF PATENT SECURITY INTEREST Recorded Dec 26, 2013
From: MORGAN STANLEY & CO. LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032113/0425 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2009
From: WELCH, WILLIAM
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 023010/0953 →