Claims
- 1. A method of managing a software license, comprising:
issuing a license to a client, the license having an expiration date; receiving a license request from the client during a license update period; providing a new expiration date for the license; and reissuing the license with the new expiration date to the client.
- 2. A method of managing a software license, comprising:
issuing a license to a client, the license having an expiration date; receiving a license request from the client during a license update period; determining that the client has lost the license; issuing a new license to the client if a new license is available, the new license having a new expiration date; and issuing a temporary license to the client if a new license is not available, the temporary license being valid for a temporary period.
- 3. A method as recited in claim 2, wherein a temporary license has been issued to the client and the temporary license is within the temporary period, the method further comprising:
receiving a license request each time the client accesses a terminal server; reissuing the license to the client if the license is available, the reissued license having a new expiration date; issuing a new license to the client if the license is not available and a new license is available, the new license having a new expiration date; and granting the client access to terminal server resources when the license is not reissued and a new license is not issued.
- 4. A method as recited in claim 2, wherein a temporary license has been issued to the client and the temporary license is beyond the temporary period, the method further comprising:
receiving a license request when the client accesses a terminal server; reissuing the license to the client if the license is available, the reissued license having a new expiration date; issuing a new license to the client if the license is not available and a new license is available, the new license having a new expiration date; and denying the client access to terminal server resources when the license is not reissued and a new license is not issued.
- 5. A method as recited in claim 2, further comprising:
on the expiration date of the license, making the license available to be issued to any client.
- 6. A method as recited in claim 2, further comprising:
selecting the expiration date to be a random date such that a period extending from the day the license is issued through the expiration date of the license is at least one day less than the length of the temporary period.
- 7. A method as recited in claim 2, wherein the license update period begins a predetermined number of days before the expiration date.
- 8. A method as recited in claim 2, wherein the temporary period is a 90 day period.
- 9. A method as recited in claim 6, wherein the random date is between 52 and 89 days from the date the license is issued.
- 10. A method as recited in claim 2, wherein the temporary license is non-renewable.
- 11. Computer-readable media having computer-readable instructions for performing the method as recited in claim 2.
- 12. A method of managing a software license, comprising:
receiving a license request from a client; determining that the expiration date of a license previously issued to the client has been reached; reissuing the license to the client if the license is available, the reissued license having a new expiration date; issuing a new license to the client if a new license is available and the license is not available, the new license having a new expiration date; and denying the client access to software resources if the license is not reissued and a new license is not issued.
- 13. A method as recited in claim 12, further comprising:
on the expiration date of the license, making the license available to be issued to any client.
- 14. A method as recited in claim 12, wherein the software resources are located on a terminal server.
- 15. Computer-readable media having computer-readable instructions for performing the method as recited in claim 12.
- 16. A method, comprising:
receiving a license to access software resources, the license having an expiration date; requesting a license update during an update period preceding the expiration date; receiving the license as a reissued license during the update period, the reissued license having a new expiration date.
- 17. A method as recited in claim 16, wherein the software resources are located on a terminal server.
- 18. A method as recited in claim 17, wherein requesting a license update occurs upon accessing the terminal server.
- 19. A method, comprising:
receiving a license to access software resources, the license having an expiration date; having lost the license, requesting a license update during a license update period; receiving a new license if a new license is available, the new license having a new expiration date; and receiving a temporary license if a new license is not available, the temporary license being valid for a temporary period.
- 20. A method as recited in claim 19, wherein a temporary license has been received and is within the temporary period, the method further comprising:
making a license request; receiving the license as a reissued license if the license is available, the reissued license having a new expiration date; receiving a new license if a new license is available and the license is not available, the new license having a new expiration date; and having access to the software resources when the license is not received as a reissued license and a new license is not received.
- 21. A method as recited in claim 19, wherein a temporary license has been received and is beyond the temporary period, the method further comprising:
making a license request; receiving the license as a reissued license if the license is available, the reissued license having a new expiration date; receiving a new license if a new license is available and the license is not available, the new license having a new expiration date; and being denied access to the software resources if the license is not received as a reissued license and a new license is not received.
- 22. A method as recited in claim 19, wherein the expiration date is a random date such that the period extending from the day the license is first received through the expiration date, is at least one day less than the length of the temporary period.
- 23. A method as recited in claim 19, wherein the license update period begins a predetermined number of days before the expiration date.
- 24. A method as recited in claim 19, wherein the temporary period is a 90 day period.
- 25. A method as recited in claim 19, wherein the expiration date is a random date selected between 52 and 89 days from the date the license is issued.
- 26. A method as recited in claim 19, wherein the temporary license is non-renewable.
- 27. Computer-readable media having computer-readable instructions for performing the method as recited in claim 19.
- 28. A method as recited in claim 19, wherein the software resources are located on a terminal server.
- 29. A method as recited in claim 28, wherein requesting a license update occurs upon accessing the terminal server.
- 30. A method comprising:
receiving a license to access software resources, the license having an expiration date; making a license request after the expiration date has been reached; receiving the license as a reissued license if the license is available, the reissued license having a new expiration date; receiving a new license if a new license is available and the license is not available, the new license having a new expiration date; and being denied access to the software resources if a reissued license or a new license is not received as a result of the license request.
- 31. A method as recited in claim 30 wherein the license is made available to be issued to any client on the expiration date of the license.
- 32. Computer-readable media having computer-readable instructions for performing the method as recited in claim 30.
- 33. A method as recited in claim 30, wherein the software resources are located on a terminal server.
- 34. A method as recited in claim 33, wherein making a license request occurs upon accessing the terminal server.
- 35. A license server comprising:
an available license pool to store licenses; an assigned license pool to store information regarding licenses assigned to clients; a request handling module to receive a license request; a new license module to search the available license pool, setting an expiration date on a new license if a new license is available, and issuing the new license to a client; a license clean-up module operating periodically to review the assigned license pool and return any license to the available license pool which is found to have reached its expiration date.
- 36. A license server as recited in claim 35, further comprising:
a same license module which, during a license update period, updates the expiration date of a license assigned to a client and reissues the license to the client as an updated license, and, after the license update period, searches in the available license pool for the license, updates the expiration date of the license, and reissues the license to the client as an updated license if the license is found in the available license pool.
- 37. A license server as recited in claim 35, further comprising:
a temporary license module to issue a temporary license to a client during a license update period if the client loses a license, is not issued a new license, and has not yet been issued a temporary license, the temporary license having a temporary period.
- 38. A license server as recited in claim 35, wherein periodically is daily, such that the license clean-up module operates on a daily basis to review the assigned license pool and return any license to the available license pool which is found to have reached its expiration date.
- 39. A license server as recited in claim 36, wherein the license update period is a period of a predetermined number of days which immediately precedes the expiration date of the license.
- 40. A license server as recited in claim 37, wherein each expiration date is a random date selected such that a period extending from the day a new license is issued through the expiration date of the new license, is at least one day less than the length of the temporary period.
- 41. A terminal server, comprising:
a database to provide terminal server resources to a client; a client access module executing on the one or more processors for allowing access to the terminal server resources by a client having a license and denying access to the terminal server resources by a client not having a license; and, a license request module to:
obtain a license for an unlicensed client that connects to the terminal server; obtain a license update for a licensed client that connects to the terminal server during a license update period; and obtain a license update or a new license for a previously licensed client connecting to the terminal server after the license update period.
- 42. A terminal server as recited in claim 41, wherein the license request module further obtains a temporary license for a licensed client that has lost its license and connects during the license update period.
- 43. A system for licensing software, comprising:
a license generator configured to receive a license purchase request, and to produce and transport licenses in response to the license purchase request; and, a license server configured to submit the license purchase request to the license generator and store the licenses received in response to the license purchase request in an available license pool; the license server further configured to issue individual licenses to individual clients from the available license pool, the individual licenses each having an expiration date; the license server further configured to return licenses that reach their expiration date to the available license pool.
- 44. A system as recited in claim 43, wherein the license server is further configured to update the expiration date of a client's license and reissue the client's license to the client when the client requests a license during a license update period.
- 45. A system as recited in claim 44, wherein the license server is further configured to search the available license pool for a client's license when the client requests a license after the license update period, and, if the client's license is found in the available license pool, to update the expiration date of the client's license and reissue the client's license to the client.
- 46. A system as recited in claim 45, wherein the license server is further configured to search the available license pool for a new license when the client's license is not found in the available license pool, and to set an expiration date for the new license and issue the new license to the client.
- 47. A system as recited in claim 43, wherein the license server is further configured to issue a temporary license to the client when the client requests a license during a license update period and the client has lost its license.
- 48. A system as recited in claim 47, wherein the temporary license has a temporary period and expiration dates are random dates which are set such that a period extending from the day a license is issued through the expiration date of the license, is at least one day less than the length of the temporary period.
- 49. A system as recited in claim 43, further comprising:
a terminal server to facilitate connectivity between the license server and clients for issuing licenses to clients, and to provide resources for clients having a license; the terminal server configured to obtain a license for an unlicensed client that connects to the terminal server; the terminal server further configured to obtain a license update for a licensed client that connects to the terminal server during a license update period; the terminal server further configured to obtain a license update or a new license for a previously licensed client connecting to the terminal server after the license update period.
RELATED APPLICATIONS
[0001] The following patent application is related to the present application, is assigned to the assignee of this patent application, and is expressly incorporated by reference herein:
[0002] U.S. patent application Ser. No. 09/040,813, entitled “System and Method for Software Licensing”, filed on Mar. 18, 1998.