Method for licensing software
First Claim
1. A computer implemented method for interfacing between a licensed application program and a plurality of license server programs in an operating system executing in a computer system, for the purpose of obtaining a license to use the licensed application program, said computer implemented method comprising the steps of:
- (a) programmatically receiving a license request from the licensed application program, wherein said license request is defined in a first format;
(b) programmatically requesting identification information from a currently active license server program to identify which one of the plurality of license server programs is currently in use by the operating system;
(c) programmatically translating said license request from said first format into a second format required by said one of the plurality of license server programs identified in step (b);
(d) programmatically sending said translated request to said license server program identified in step (b);
(e) programmatically receiving a response from said license server program identified in step (b), wherein said response indicates whether a license to use the licensed application program is granted;
wherein step (e) further comprises the steps of;
(e1) when said response indicates said license is not granted, presenting an options menu to a user of the licensed application program, through a display attached to said computer system;
(e2) obtaining a menu selection input from the user through an input device attached to said computer system;
(e3) immediately retrying said license request by repeating steps (d) and (e), when said menu selection input from the user requests that said license request be attempted again; and
(e4) sending a queue request to said license server program currently in use, to place said license request into a queue, when said menu selection input from the user requests waiting for a license to be granted, whereby said license server program currently in use may grant a license when a license becomes available;
(f) programmatically sending said response to the licensed application program, whereby said licensed application program continues execution when said license is granted and discontinues when said license is not granted; and
(g) programmatically initiating and sending, at predefined periodic intervals, a license renewal request to said one of the plurality of license server programs identified in step (b), said license renewal request being initiated and sent independently of receiving a license renewal request from the licensed application program.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a system that provides a common application software interface for a variety of vendor supplied license servers. The system provides a single set of program calls and translates this single set of calls into a set of calls for each license server. This translation is performed using a translate table, which is easily updated to interface to newly developed or newly released license servers. The system runs as a separate process within the operating environment to monitor the application program, and as long as the application program continues to provide services to the user, the system sends periodic license renewal messages to the license server. The system also notifies the user when the application program cannot obtain a license in order to provide a consistent user interface across applications.
-
Citations
6 Claims
-
1. A computer implemented method for interfacing between a licensed application program and a plurality of license server programs in an operating system executing in a computer system, for the purpose of obtaining a license to use the licensed application program, said computer implemented method comprising the steps of:
-
(a) programmatically receiving a license request from the licensed application program, wherein said license request is defined in a first format; (b) programmatically requesting identification information from a currently active license server program to identify which one of the plurality of license server programs is currently in use by the operating system; (c) programmatically translating said license request from said first format into a second format required by said one of the plurality of license server programs identified in step (b); (d) programmatically sending said translated request to said license server program identified in step (b); (e) programmatically receiving a response from said license server program identified in step (b), wherein said response indicates whether a license to use the licensed application program is granted; wherein step (e) further comprises the steps of; (e1) when said response indicates said license is not granted, presenting an options menu to a user of the licensed application program, through a display attached to said computer system; (e2) obtaining a menu selection input from the user through an input device attached to said computer system; (e3) immediately retrying said license request by repeating steps (d) and (e), when said menu selection input from the user requests that said license request be attempted again; and (e4) sending a queue request to said license server program currently in use, to place said license request into a queue, when said menu selection input from the user requests waiting for a license to be granted, whereby said license server program currently in use may grant a license when a license becomes available; (f) programmatically sending said response to the licensed application program, whereby said licensed application program continues execution when said license is granted and discontinues when said license is not granted; and (g) programmatically initiating and sending, at predefined periodic intervals, a license renewal request to said one of the plurality of license server programs identified in step (b), said license renewal request being initiated and sent independently of receiving a license renewal request from the licensed application program.
-
-
2. A system for interfacing between a licensed application program and a plurality of license server programs, said system comprising:
-
a computer system; a multi-tasking operating system contained within a memory of said computer system; means for performing the licensed application program within one task of said multi-tasking operating system; library module program means, programmatically linked to the licensed application program, for receiving a license request from the licensed application program; license monitor means, located in a separate task of said multi-tasking operating system, for communicating with said plurality of license server programs; means within said license monitor means for determining which one of the plurality of license server programs is currently in use by said multi-tasking operating system; communication means, connected between said library module program means and said license monitor means, for sending said license request from said library module program means to said license monitor means and for receiving a response from said license monitor means; translation means, contained within said license monitor means, for translating said license request into a translated request having a request format defined by said one of the plurality of license servers currently in use; means for sending said translated request from said license monitor means to said one of the plurality of license server programs currently in use; response means for using said communication means for sending a response received from said one of the plurality of license server programs currently in use to said library module means and for further sending said response to the licensed application program wherein said response indicates whether a license to use said licensed application program is granted; means within said license monitor means for determining that the licensed application program is continuing to be performed within the multi-tasking operating system; means within said license monitor means for initiating and sending, at predefined periodic intervals, a license renewal request to said one of the plurality of license server programs currently in use, said license renewal request being sent only when the licensed application program is continuing to be performed within the multi-tasking operating system, and said license renewal request being sent independently of receiving a license renewal request from the licensed application program. - View Dependent Claims (3, 4, 5)
-
-
6. A computer implemented method for interfacing between a licensed application program and a plurality of license server programs in an operating system executing in a computer system, for the purpose of obtaining a license to use the licensed application program, said computer implemented method comprising the steps of:
-
(a) programmatically receiving an unrestricted type license request from the licensed application program, wherein said license request is defined in a first format; (b) programmatically requesting identification information from a currently active license server program to identify which one of the plurality of license server programs is currently in use by the operating system; (c) programmatically translating said license request from said first format into a second format required by said one of the plurality of license server programs identified in step (b); (d) programmatically sending said translated request to said license server program identified in step (b); (e) programmatically receiving a response from said license server program identified in step (b), wherein said response indicates whether an unrestricted type license to use the licensed application program is granted, and when said unrestricted type license is not granted, performing the steps of (e1) presenting an options menu to a user of the licensed application program, through a display attached to said computer system, (e2) obtaining a menu selection input from the user through an input device attached to said computer system, (e3) when said menu selection input from the user requests that said license request be attempted again, immediately retrying said license request by repeating steps (d) and (e), (e4) when said menu selection input from the user requests waiting for a license to be granted, sending a queue request to said license server program currently in use, to place said license request into a queue, whereby said license server program currently in use may grant a license when a license becomes available, and (e5) when said input from the user requests a second type of license, sending a request for said second type of license; (f) programmatically sending said response to the licensed application program, whereby said licensed application program continues execution when said license is granted and discontinues execution when said license is not granted; and (g) programmatically initiating and sending, at predefined periodic intervals, a license renewal request to said one of the plurality of license server programs identified in step (b) , said license renewal request being initiated and sent independently of receiving a license renewal request from the licensed application program.
-
Specification