Programming interface for licensing
First Claim
1. An apparatus comprising:
- at least one computer processor;
a license store that stores license files for different software products, said license files including licenses to the different software products specifying rights and conditions on the exercise of said rights; and
memory coupled to the at least one computer processor, the memory comprising executable instructions that, based on execution by the at least one computer processor, cause the at least one computer processor to automatically;
expose an application programming interface that provides access by application programs to license information associated with the different software products in said license files in said license store;
receive from an application program via said application programming interface a request comprising an indication of a software product and a request to exercise a right granted in a license to the software product in said license files;
check whether the license for the indicated software product is valid;
based at least on the license for the indicated software product being valid, obtaining from said license store rights and conditions of the exercise of said rights granted in the license for the software product indicated in the request; and
provide, based at least on receiving the request via said application programming interface, the rights and conditions of the exercise of said rights granted in the license for the software product indicated in the request to the application program without implementing any mechanism for granting or denying the rights granted in the license for the software product, wherein the instructions for checking whether the license for the indicated software product is valid further comprises instructions for determining that the license for the indicated software product is bound to the software product by determining whether the rights granted in the license for the software product indicated in the request can be exercised based on whether the rights are bound to a machine executing the application program from which the request was received, wherein the instructions further comprise instructions for establishing a context for asynchronous processing and processing the request from the application program, asynchronously, in accordance with the established context, and wherein the executable instructions are executed by an operating system.
2 Assignments
0 Petitions
Accused Products
Abstract
A software licensing Application Programming Interface (API) that allows software products to use the license management functionality of a common service. A license specifies rights in a software product. The software product calls a consume method on the API in order to consume a right. If the right exists, the service binds the right to the license in which the right is found. The software product enforces the terms of the license by granting, or denying, access to some or all features depending on whether a valid instance of the right is found. Arbitrary data can be associated with a right. The API includes a method to retrieve data from a right that has been previously bound by the consume method.
-
Citations
16 Claims
-
1. An apparatus comprising:
-
at least one computer processor; a license store that stores license files for different software products, said license files including licenses to the different software products specifying rights and conditions on the exercise of said rights; and memory coupled to the at least one computer processor, the memory comprising executable instructions that, based on execution by the at least one computer processor, cause the at least one computer processor to automatically; expose an application programming interface that provides access by application programs to license information associated with the different software products in said license files in said license store; receive from an application program via said application programming interface a request comprising an indication of a software product and a request to exercise a right granted in a license to the software product in said license files; check whether the license for the indicated software product is valid; based at least on the license for the indicated software product being valid, obtaining from said license store rights and conditions of the exercise of said rights granted in the license for the software product indicated in the request; and provide, based at least on receiving the request via said application programming interface, the rights and conditions of the exercise of said rights granted in the license for the software product indicated in the request to the application program without implementing any mechanism for granting or denying the rights granted in the license for the software product, wherein the instructions for checking whether the license for the indicated software product is valid further comprises instructions for determining that the license for the indicated software product is bound to the software product by determining whether the rights granted in the license for the software product indicated in the request can be exercised based on whether the rights are bound to a machine executing the application program from which the request was received, wherein the instructions further comprise instructions for establishing a context for asynchronous processing and processing the request from the application program, asynchronously, in accordance with the established context, and wherein the executable instructions are executed by an operating system. - View Dependent Claims (2, 3, 4)
-
-
5. A method comprising:
-
exposing an application programming interface that provides access by application programs to license information in a license store storing license files for different software products, said license files including licenses to the different software products specifying rights and conditions on the exercise of said rights; receiving from an application program via said application programming interface a request comprising an indication of a software product having a license file in the license store and a request to exercise a right granted in a license to the software product in said license files; checking whether the license for the indicated software product is valid; based at least on the license for the indicated software product being valid, obtaining from said license store rights and conditions of the exercise of said rights granted in the license for the software product indicated in the request; providing, based at least on receiving the request via said application programming interface, the rights and conditions of the exercise of said rights granted in the license for the software product indicated in the request to the application program without implementing any mechanism for granting or denying the rights granted in the license for the software product, wherein checking whether the license for the indicated software product is valid further comprises determining that the license for the indicated software product is bound to the software product by determining whether the rights granted in the license for the software product indicated in the request can be exercised based on whether the rights are bound to a machine executing the application program from which the request was received; establishing a context for asynchronous processing; and processing the request from the application program, asynchronously, in accordance with the established context, wherein the method is executed by an operating system. - View Dependent Claims (6, 7, 8)
-
-
9. A computer-readable memory device comprising executable instructions that, based on execution by at least one computer processor, cause the at least one computer processor to:
-
expose an application programming interface that allows application programs to request license information contained in a license store storing license files for different software products, said license files including licenses to the different software products specifying at least one right; receive from an application program at least via said application programming interface a request comprising an indication of a software product having a license file in the license store and a request to exercise a right granted in a license to the software product in said license files; check whether the license for the indicated software product is valid; based at least on the license for the indicated software product being valid, obtain from said license store the at least one right granted in the license for the software product indicated in the request; provide, based at least on receiving the request via said application programming interface, the at least one right granted in the license for the software product indicated in the request to the application program without implementing any mechanism for granting or denying the rights granted in the license for the software product, wherein checking whether the license for the indicated software product is valid further comprises determining that the license for the indicated software product is bound to the software product by determining whether the rights granted in the license for the software product indicated in the request can be exercised based on whether the rights are bound to a machine executing the application program from which the request was received; establishing a context for asynchronous processing; and processing the request from the application program, asynchronously, in accordance with the established context, wherein the instructions are executed by an operating system. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification