US2008244754A1PendingUtilityA1
System and Method for Software License Management for Concurrent License Management and Issuance
Est. expiryApr 2, 2027(~0.7 yrs left)· nominal 20-yr term from priority
Inventors:Edward Curren
H04L 63/061G06F 21/105H04L 63/0428G06F 2221/2147G06F 21/10
43
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
The present invention is a method and system for software license management. The License Management System (LMS) is comprised of three components. These three components are the License Client (LC), the License Server (LS) and the Network License Manager (NLM). For the system to function the LC and LS are required. The NLM exists to facilitate and manage concurrent license usage.
Claims
exact text as granted — not AI-modified1 . A software license management and issuance system recorded on computer-readable medium and capable of execution by a computer comprising:
a license client,
said license client further comprising:
an identity management subsystem, a license validation subsystem, and
a license monitoring system; and a license server,
said license server further comprising:
an identity management system, a database interference subsystem, a web server, a server clustering subsystem, a license issuance subsystem, and a license validation subsystem.
2 . The software license management and issuance system recorded on computer-readable medium and capable of execution by a computer of claim 1 further comprising a network license manager as means for facilitating and managing concurrent license usage, said network license manager further comprised of an identity management subsystem, a database interference subsystem, a web server, a server clustering subsystem, a license pooling subsystem, a license validation subsystem, and a license monitoring subsystem.
3 . The software license management and issuance system recorded on computer-readable medium and capable of execution by a computer of claim 2 wherein an interaction between the licensing client, licensing system, and network license manage of the system is accomplished via messaging, each message being encrypted and signed for security and authentication purposes.
4 . The software license management and issuance system recorded on computer-readable medium and capable of execution by a computer of claim 2 further comprising a license monitor providing means for monitoring process for all licenses in use by clients.
5 . The software license management and issuance system recorded on computer-readable medium and capable of execution by a computer of claim 4 wherein when a periodic client license check-in is required for a license or a number of licenses, then the license monitor will monitor the statistics updated by an update client usage information method;
if said statistics exceed allowed values then the license will be declared an orphan and be reclaimed by the network license manager; and if a last checking time for the client was ten minutes and one second, then the license would be declared orphaned and reclaimed.
6 . The software license management and issuance system recorded on computer-readable medium and capable of execution by a computer of claim 5 wherein
the license monitor provides means for a limited runs evaluation that combines a number of allowed runs property with a license run count property to determine if the license has expired; the license monitor is further comprised of a software lease providing means for checking that two conditions are valid before proceeding;
a first condition to be checked ensures that the current system date is greater than or equal to the license valid start time property.
a second condition to be checked ensures that the current system time is less than or equal to the license valid end time property; and
upon use of the license the license monitor will check a current system time against a last used date property and validate that the current system time is not earlier than the last used date property; and a count uses license will increment a license run count property.
7 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer, said method comprising the steps of:
making an external request from a client server; selecting a client, a request for a local license, and customer registration to a license server; determining if the license has been tampered with; determining if the license has not expired; returning an error message if tampering or expiration is determined, otherwise continuing with the following method steps;
initiating a request from a server side from either a request from the local license and customer registration or from an electronically transmitted file to a customer service representative;
determining a request type and processing the license request to determine if a customer is registered;
if the customer is not registered, a certificate and customer's public key is issued and sent to the client,
if the customer is registered, the analysis of the license continues;
determining if server will handle the product of the license request, and if so, the server will continue the analysis, but if not, the server will return a response indicating such to the client;
if the server does handle the product and the customer is registered, the system places a call to the end user business rules script and determines if the request has been rejected; and
if the request has been rejected a message will be sent to the client, and if not a determination on whether a license can be issued and the answer returned to the client.
8 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 7 wherein valid license types issued by the system of the present invention includes unrestricted, limited time evaluation, limited runs evaluation, software lease, and count uses.
9 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 8 wherein the unrestricted license type places no restrictions on how long the user of the license may continue to use the software.
10 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 8 wherein the limited time evaluation license will evaluate a license time duration, license time unit, and license timer start variables to create a time span that will then be compared against a current system time to determine if the license time period has been exceeded.
11 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 7 further comprising the steps of the client side server;
receiving an input to start a selected client operation for a concurrent network license; immediately and directly accesses a network license manager for analysis of the request type and additional process steps of the network license manager; and sending a message to the client at the conclusion of the network license manager's processes.
12 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 7 further comprising the steps of the process of the network license manager
creating a license pool comprising a group of licenses that are controlled and allowed to be used based on a set of configuration parameters said license pool consists of one or more subpools receipt of input to the network license manager; initiation of analysis of the request type to determine if the customer is registered is run;
if the customer is not registered a certificate and customer's public key is issued and sent to the client, and the customer is registered;
concurrently, the license is checked for valid credentials and caller permission to check out the license;
if the license is invalid or the caller has no rights, a message is sent to the client;
a check is done to determine if the license pool has any available licenses;
if so, a valid license is marked in use and returned to the client;
if the license pool does not have an available license an overflow pool is checked for available licenses;
if an overflow pool license is available a valid license is marked in use and returned to the client in a message; and
if no overflow pool license is available a message stating such is returned to the client.
13 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 7 further comprising the steps of the business rules callback processing, said business rules callback processing is accomplished via one of three options
a first option wherein when the license server and network license manager starts,
reading a directive named “BusinessRule” from a configuration file, said directive can have four values which are “UserCompiled”, “Java”, “DotNet”, or “NotImplemented”;
in the case of “NotImplimented” the function will simply return immediately.
a second option wherein the client side server and a user interface consists of three routines,
a first routine wherein .NET code is written to the user interface, which is then compiled and uploaded to the server, and its compiled in to .NET assembly;
a second routine wherein the of the code is written to the user interface, compiled, and then uploaded as a shared library or dll file to the server and its compiled object; and
a third routine where the writing of the java code, which is then compiled and uploaded to the server as a Java class file.
14 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 14 wherein, on the server side,
a server request is first received from a license client, which triggers a callback function; the configuration file next indicates that the server should use Java code and then uses a Business Rule Directive from the configuration file to determine if it should continue to use Java or switch to User Compiled or .NET to further process the request;
if java is continued the system calls the java class with the serialized request and obtains if from the java class file;
if the serialized request is to be processed via user compiled, the system calls out to the users compiled shared library and obtains the information from the complied object; and
if the serialized request is to be processed via .NET, then the system calls out to the user's .NET assembly and obtains the information form the compiles .NET assembly.
15 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 7 comprising the following steps
upon the client's receipt of a response message form the network license manager;
if the response is based on invalid credentials, no rights, or no available license an error message is returned to the user;
if the response is valid and a license is returned, the license is added to the active license list and time cycle is started in the license revalidation timer;
when the timer cycle expires the first step is to determine if the license has expired since the last check;
if the license has expired an error message is returned to the user;
if it has not expired the next step is to determine if the network license manager can be contacted;
if the network license manager can not be contacted, then a check is run to determine if the maximum number of missed network license manager updates limit has been exceeded,
if not the process returns to the revalidation timer,
if it has been exceeded an error message is returned to the user;
if the network license manager is contacted, then a check to determine if the license has been reclaimed by the network license manager is run; and
if the network license manager has reclaimed the license an error message is returned to the user, if not the process returns to the revalidation timer.
16 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 7 further comprising the additional steps when a customer service representative or other human interaction is required by a user during the process of the system of the present invention;
when a user starts the process on the client side and selects a client operation a request is made by file or an offline key request is submitted; and the file request is followed by a license request made by a file that is electronically transmitted to a customer service representative who then accesses the server, which results in the issuance of an offline license via file transactions.
17 . A software license management and issuance method recorded on computer-readable medium and capable of execution by a computer of claim 7 further comprising the additional steps when a customer service representative or other human interaction is required by a user during the process of the system of the present invention;
an offline key request is provided to a customer service representative by the user so that the customer service representative can input the client key and license parameters and process offline the key request and generate and offline authorization code that is then provided to the user.
18 . The software license management and issuance system recorded on computer-readable medium and capable of execution by a computer of claim 6 wherein
DLLs are required to be digitally signed, so said signature can then be compared by the employing application and validated that the signature of the DLL it is using matches the known-good signature; licenses are signed by the license server registered with the license client that requested the license including the server's encryption and signature public keys in the form of digital certificates, each time the license is used the license's signature is validated against the server's signature certificate to ensure that the license has been issued by a valid license server; a client database contains unique data about the machine that the software is running on and each time the software is run, the software will validate that the equipment that it is running on matches the data it has stored in it's database; and each time a license is used the time is checked against the last used system time, if the current system time is greater than the last used system time the last used system time is updated to the current time.Join the waitlist — get patent alerts
Track US2008244754A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.