IP Library Granted Patent US 8,452,712
Granted Patent B2
US 8,452,712 · App. 13/244,233 · Granted May 28, 2013

Method and apparatus for enforcing software licenses

Inventors: Blaine Garst (Los Altos, CA); Bertrand Serlet (Palo Alto, CA)
Assignee: Apple Inc.
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,452,712
App. No.
13/244,233
Granted
May 28, 2013
Kind
B2
Abstract

A method and apparatus for enforcing software licenses for resource libraries such as an application program interface (API), a toolkit, a framework, a runtime library, a dynamic link library (DLL), an applet (e.g., a Java or ActiveX applet), or any other reusable resource. The resource library can be used by authorized end user software programs. A “per-program” licensing scheme for a resource library can allow a resource library to be licensed only for use with particular software programs.

Claims (29)

1. A method, comprising:

receiving, using one or more processing units, a resource library at a particular site, wherein the resource library is a software resource library that includes a function, an embedded key, and an embedded text string specifying one or more use terms;

extracting, using the one or more processing units, the key and the text string from the resource library, wherein extracting includes using the function on the resource library;

determining, using the one or more processing units, an authenticity of the extracted key and the text string, wherein determining includes using the function on the resource library; and

determining, using the one or more processing units, whether the resource library is licensed for unrestricted use with any calling entity at the particular site, wherein determining includes using the function on the resource library, and wherein extracting the key and the text string from the resource library, determining the authenticity of the extracted key and the text string, and determining whether the resource library is licensed for unrestricted use with any calling entity at the particular site are based upon a license parameter.

2. The method of claim 1 , wherein the calling entity includes at least one of an application program, a calling function, or an object.

3. The method of claim 2 , comprising: executing the calling entity upon determining that the resource library is licensed for unrestricted use.

4. The method of claim 1 , wherein the embedded key is a key unique to the software resource library and the one or more use terms, the one or more use terms specifying aright of one or more calling entities or a computing device to use the software resource library.

5. The method of claim 1 , wherein the software resource library includes at least one of an application program interface (API), a toolkit, a framework, a runtime library, a dynamic link library, or an applet.

6. A non-transitory computer readable storage medium, storing computer executable instructions that when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, using one or more processing units, a resource library at a particular site, wherein the resource library is a software resource library that includes a function, an embedded key, and an embedded text string specifying one or more use terms;

extracting, using the one or more processing units, the key and the text string from the resource library, wherein extracting includes using the function on the resource library;

determining, using the one or more processing units, an authenticity of the extracted key and the text string, wherein determining includes using the function on the resource library; and

determining, using the one or more processing units, whether the resource library is licensed for unrestricted use with any calling entity at the particular site, wherein determining includes using the function on the resource library, and wherein extracting the key and the text string from the resource library, determining the authenticity of the extracted key and the text string, and determining whether the resource library is licensed for unrestricted use with any call in entity at the particular site are based upon a license parameter.

7. The product of claim 6 , wherein the calling entity includes at least one of an application program, a calling function, or an object.

8. The product of claim 7 , the operations comprising: executing the calling entity upon determining that the resource library is licensed for unrestricted use.

9. The product of claim 6 , wherein the embedded key is a key unique to the software resource library and the one or more use terms, the one or more use terms specifying aright of one or more calling entities or a computing device to use the software resource library.

10. The product of claim 6 , wherein the software resource library includes at least one of an application program interface (API), a toolkit, a framework, a runtime library, a dynamic link library, or an applet.

11. A system, comprising:

one or more processors;

one or more computer-readable storage mediums containing instructions that when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, using one or more processing units, a resource library at a particular site, wherein the resource library is a software resource library that includes a function, an embedded key, and an et bedded text string specifying one or more use terms;

extracting, using the one or more processing units, the key and the text string from the resource library, wherein extracting includes using the function on the resource library;

determining, using the one or more processing units, an authenticity of the extracted key and the text string, wherein determining includes using the function on the resource library; and

determining, using the one or more processing units, whether the resource library is licensed for unrestricted use with any calling entity at the particular site, wherein determining includes using the function on the resource library, and wherein extracting the key and the text string from the resource library, determining the authenticity of the extracted key and the text string, and determining whether the resource library is licensed for unrestricted use with any calling entity at the particular site are based upon a license parameter.

12. The system of claim 11 , wherein the calling entity includes at least one of an application program, a calling function, or an object.

13. The system of claim 12 , the operations comprising: executing the calling entity upon determining that the resource library is licensed for unrestricted use.

14. The system of claim 11 , wherein the embedded key is a key unique to the software resource library and the one or more use terms, the one or more use terms specifying a right of one or more calling entities or a computing device to use the software resource library.

15. The system of claim 11 , wherein the software resource library includes at least one of an application program interface (API), a toolkit, a framework, a runtime library, a dynamic link library, or an applet.

Continuity (3)
Continuation 09704254 · Nov 1, 2000
Continuation 08901776 · Jul 28, 1997
Related Publication 20120066135A1 · Mar 15, 2012