Claims
- 1. A method for managing licensing data, comprising the steps of:
providing a host system having a processor for processing digital data; providing a client system having a processor for processing digital data and communicably connected to said host system; providing a license management host application running on said host system, said host application having access to a licensing database; providing a license management client application running on said client system, said client application having access to a client license datastore; providing a user interface configured to accept licensing orders, said user interface providing a user with access for ordering a license, said user interface requesting the issuance of a license; issuing a license from said licensing database, using said management host application, in response to a user interface request to add a license to said client license datastore; monitoring usage of a license so issued using said management host application; compiling and displaying at least a plurality of licenses stored in said client license datastore using said license management client application; and communicating with said host application, using said license management client application to modify terms corresponding to at least one license stored in said client license datastore.
- 2. The method for managing licensing data according to claim 1, wherein said host application is administered by at least one of a vendor, a distributor, an agent, a manager, a reseller, a value-added reseller (VAR), a contractor, a sub-contractor, a subsidiary, a partner, an Original Equipment Manufacturing (OEM) provider, a licensee, a sub-licensee, a trustee, and a fiduciary.
- 3. The method for managing licensing data according to claim 1, wherein said communicable connection between said client system and said server system is selected from the group consisting of a LAN, a WAN, a VPN, the Internet, an extranet, an intranet, and any combination thereof.
- 4. The method for managing licensing data according to claim 1, wherein said licensing database is at least one of an ADO compliant database, an ODBC database, a relational database, a flat file, and an SQL compatible database.
- 5. The method of managing licensing data according to claim 1, further comprising the step of populating said database with default structure.
- 6. The method of managing licensing data according to claim 5, further comprising the step of populating said database with default data.
- 7. The method of managing licensing data according to claim 5, wherein said population of said database comprises licensing terms.
- 8. The method for managing licensing data according to claim 1, wherein said datastore is encrypted.
- 9. The method for managing licensing data according to claim 1, wherein said datastore is stored locally on the client system.
- 10. The method for managing licensing data according to claim 1, wherein said datastore is hosted from a remote location.
- 11. The method for managing licensing data according to claim 1, wherein a license issued by said host application is at least one of a trial license, a time-limited license, a perpetual license, a subscription-based license, and an irrevocable license.
- 12. The method for managing licensing data according to claim 1, wherein said client application uses a graphic user interface (GUI) for compiling at least a plurality of licenses stored in said client license datastore.
- 13. The method for managing licensing data according to claim 12, wherein said GUI further comprises a native file management application component of said client system's operating system.
- 14. The method for managing licensing data according to claim 1, wherein said modification of the terms corresponding to at least one license stored in said client license datastore further comprises a method step selected from the group consisting of deleting a license, expiring a license, terminating a license, renewing a license, manually subscribing a license, automatically subscribing a license, transferring a license, abandoning a license, reactivating a license, and any combination thereof.
- 15. The method for managing licensing data according to claim 1, wherein said license management host application further comprises at least one of a Terminate and Stay Resident program (TSR), an operating system service, a daemon, a stand-alone application, an applet, a protected mode application, a multi-threaded application, a parallel processed application, and a distributed processing application.
- 16. The method for managing licensing data according to claim 1, wherein said host application monitoring of usage of a license further comprises a method step selected from the group consisting of collecting machine identification data, collecting user identification data, tracking time of use data, tracking duration of use data, sending a cookie from said client system to said host system, and any combination thereof.
- 17. The method of managing licensing data according to claim 1, further comprising the licensing of a software application.
- 18. The method of managing licensing data according to claim 1, wherein said client system further comprises at least one of a computer, a kiosk, a web access portal, a Point of Sale (POS) terminal, a smartcard, a wireless transmitter, a portable digital assistant, a telephone, a mobile phone, a pager, and an information appliance.
- 19. The method of managing licensing data according to claim 1, wherein said host application further comprises tools to customize the licensing database.
- 20. The method of managing licensing data according to claim 1, wherein said user interface for accepting licensing orders further comprises media adapted for display on a web browser.
- 21. A system for managing licensing data, comprising:
a host system having a processor for processing digital data; a client system having a processor for processing digital data and communicably connected to said host system; a license management host application running on said host system, said host application having access to a licensing database; a license management client application running on said client system, said client application having access to a client license datastore; a user interface configured to accept licensing orders, said user interface providing a user with substantially self-service access for ordering a license, said user interface requesting the issuance of a license; a management host application for issuing a license from said licensing database in response to a user interface request to add a license to said client license datastore, said management host application monitoring usage of a license so issued; and said license management client application compiling and displaying at least a plurality of licenses stored in said client license datastore and communicating with said host application to modify terms corresponding to at least one license stored in said client license datastore.
- 22. The system for managing licensing data according to claim 21, wherein said host service is administered by at least one of a vendor, a distributor, an agent, a manager, a reseller, a value-added reseller (VAR), a contractor, a sub-contractor, a subsidiary, a partner, an Original Equipment Manufacturing (OEM) provider, a licensee, a sub-licensee, a trustee, and a fiduciary.
- 23. The system for managing licensing data according to claim 21, wherein said vendor is also a distributor.
- 24. A method for managing the licensing of software, comprising the steps of:
providing a host system having a processor for processing digital data; providing a client system having a processor for processing digital data and communicably connected to said host system; providing a license management host application running on said host system, said host application having access to a licensing database; providing a software application to be licensed; providing a substantially turnkey wrapping utility for securing compiled instruction code and wrapping said software application with licensing security code; providing a license management client application running on said client system, said client application having access to a client license datastore; providing a user interface configured to accept licensing orders, said user interface providing a user with substantially self-service access for ordering a license, said user interface requesting the issuance of a license; issuing a license from said licensing database, using said management host application, in response to a user interface request to add a license to said client license datastore; monitoring usage of a license so issued using said management host application; compiling and displaying at least a plurality of licenses stored in said client license datastore using said license management client application; and communicating with said host application, using said license management client application to modify terms corresponding to at least one license stored in said client license datastore.
- 25. The method for managing the licensing of software of claim 24, further comprising the step of said host service providing means for downloading said wrapped application.
- 26. The method for managing the licensing of software of claim 24, further comprising the steps of:
providing means for purchasing a license from said host service; and processing payment for said purchase of a license.
- 27. The method for managing the licensing of software of claim 24, wherein said host application further comprises tools to customize the licensing database.
- 28. The method for managing the licensing of software of claim 24, wherein said host application further comprises tools to customize the wrapping of said software application.
- 29. The method for managing the licensing of software of claim 24, further comprising the step of encrypting said wrapped application.
- 30. The method for managing the licensing of software of claim 24, further comprising the step of obtaining information from a user of the license management client application to authorize access to execute said wrapped application.
- 31. The method for managing the licensing of software of claim 24, further comprising the step of downloading said wrapped application over a communications network.
- 32. The method of managing the licensing of software of claim 24, further comprising the distribution of wrapped vendor/developer software applications by a distributor.
- 33. The method of managing the licensing of software of claim 32, wherein the distributor is also the vendor/developer.
- 34. The method of managing the licensing of software of claim 24, further comprising the step of offering user-selectable software options for the wrapped application before issuing a license to execute the wrapped application.
- 35. The method of managing the licensing of software of claim 24, further comprising the step of providing tools to customize the functionality of said license management host application.
- 36. The method of managing the licensing of software of claim 24, further comprising the step of providing tools to customize the functionality of said license management client application.
- 37. The method of managing the licensing of software of claim 24, further comprising the step of providing tools to customize the distributor-created licensing code.
- 38. A method for protecting software from unlicensed use, comprising the steps of:
providing turnkey licensing code to vendors for wrapping a vendor-provided software application; encrypting said vendor-provided software application; wrapping distributor licensing code around said vendor-provided software application.
- 39. The method for protecting software from unlicensed use of claim 38, wherein said vendor is also a distributor.
- 40. The iterative application of the method for protecting software from unlicensed use according to claim 38, wherein the wrapped code produced in the preceding iteration is further wrapped to produce at least a second generation wrapped executable application.
- 41. The method for protecting software from unlicensed use according to claim 38, wherein the distributor code is compiled substantially concurrent with compilation of said vendor-provided software.
- 42. The method for protecting software from unlicensed use according to claim 38, wherein vendor-provided startup code is replaced with distributor-provided startup code.
- 43. The method for protecting software from unlicensed use of claim 42, further comprising the step of using the distributor-provided startup code as a decryption key.
- 44. The method for protecting software from unlicensed use according to claim 38, further comprising the step of executing said wrapped application, wherein the wrapped software application begins execution at a substantially random codebase offset entry point.
- 45. The method for protecting software from unlicensed use according to claim 38, further comprising the step of calculating a CRC for the wrapped application at least prior to execution of said wrapped application to determine if the wrapped application has been modified.
- 46. The method of protecting software from unlicensed use of claim 45, further comprising the step of disabling execution of said wrapped application if said wrapped application has been determined to have been modified.
- 47. The method for protecting software from unlicensed use according to claim 38, further comprising the step of monitoring execution of said wrapped application to determine if tampering attempts to said wrapped application are being made.
- 48. The method for protecting software from unlicensed use according to claim 47, further comprising the step of terminating execution of said wrapped application in response to said tampering attempts.
- 49. The method of protecting software from unlicensed use according to claim 38, further comprising the step of obtaining information from the user to validate licensing information and to permit execution of said wrapped application.
- 50. The method of protecting software from unlicensed use according to claim 38, further comprising the step of calculating a machine fingerprint for comparison with licensing information to authorize execution of said wrapped application.
- 51. The method of protecting software from unlicensed use according to claim 38, further comprising the step of providing a license on a subscription basis.
- 52. The method of protecting software from unlicensed use of claim 51, further comprising the step of automatically renewing said license subscription.
- 53. The method of protecting software from unlicensed use according to either one of claims 38, further comprising the step of providing a distributor with a system for managing licensing data according to claim 21.
- 54. The method of protecting software from unlicensed use according to either one of claims 38, further comprising the step of providing a vendor/developer with system for managing licensing data according to claim 21.
- 55. The method of protecting software from unlicensed use of claim 54, wherein the vendor/developer is also the distributor.
- 56. A system for providing substantially self-serviced access in a network environment to a plurality of vendor-provided software applications for electronic distribution to a remote user, said system comprising:
means for providing at least a plurality of software applications for distribution; means for electronically distributing at least one software application; means for protecting at least one software application so distributed from unlicensed access; means for storing license files in a licensing database; means for issuing a license from said licensing database to said remote user; and means for modifying the terms of the issued license, thereby allowing said system to provide substantially self-service electronic distribution from the perspective of said remote user.
- 57. The system for providing substantially self-serviced access to a plurality of vendor-provided software applications according to claim 56, further comprising means for said remote user to select optional software features.
- 58. The system for providing substantially self-serviced access to a plurality of vendor-provided software applications according to claim 56, wherein said means for providing at least a plurality of software applications for distribution comprises a web-based storefront.
- 59. The system for providing substantially self-serviced access to a plurality of vendor-provided software applications according to claim 56, wherein said issued license is a subscription based license.
- 60. The system for providing substantially self-serviced access to a plurality of vendor-provided software applications according to claim 56, wherein said means for modifying said license comprises an automatic renewal of said license.
RELATED APPLICATIONS
[0001] The present application claims the benefit of and priority to U.S. Provisional Application No. 60/208,901 filed Jun. 2, 2000; the entire content of which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60208901 |
Jun 2000 |
US |