Generally described, a computing device, such as a personal computer, can include a wide variety of software applications for use by a user. In one common embodiment, new software applications loaded on a designated computing device such as by purchasing a copy of the software application or downloading the copy over a communication network, such as the Internet. Because of the nature of computer software and the nature of the mechanisms for installing new software (e.g., computer disks, CDs, DVDs, etc.), however, a single legitimate copy of a software application could be loaded on multiple computer devices against the intent of the software application manufacturer.
One attempt to mitigate the proliferation of unauthorized copies of a software application to multiple computing devices relates to the incorporation of a software application use license with the software application. Generally described, software application use licenses relates to a set of information utilized by the software application and/or a software application service to control the number of copies of a software application that can be loaded onto a computing device. The set of information can correspond to a unique product identifier, information related to machine characteristics of the computing devices (e.g., a data “snapshot” of the hardware configurations of the client computing device), and expiration data for the software application use license. Typically, the software application requires the present of the software application use license upon installation of the software application.
In practice, the unique product identifier may be located on documentation provided with the software application (e.g., on the cover of a CD case). A user may be required to manually enter the product identifier on the client computing device, which then transmits the product identifier along with the machine characteristics of the client computing device to the software application service as an “activation” request. The software application service then returns information that will enable the software application to execute on the particular client computing device. Thereafter, however, if the software application service receives a second activation request corresponding to the same product identifier but different machine characteristics, it assumes that the second activation request is fraudulent and the activation request can be denied. After a certain period of time after installation and/or use, the software application can cease to operate or operate in a reduced functionality mode until the software application has been successfully activated.
Software applications can become obsolete by newer or updated versions of the same software application. Likewise, users can have only an occasional need for a specific software application and may not be readily inclined to purchase the infrequently used software application. Accordingly, software application subscription services can provide access to newer and/or updated versions of software applications based upon the needs/demands of the user. The subscriptions can be based on a specific amount of time the particular software application is used (e.g., 40 hours of use) or based on date-based criteria (e.g., monthly, quarterly, yearly subscriptions).
Although software application use licenses can include expiration information upon which the software application use license is no longer valid, software application use license may not be well-suited for implementation in subscription-based software application. Typically, upon the expiration of the software application use license, a user must request a new software application use license. As described above, the user would be required to manually enter a new product identifier, which would be transmitted in a “renewal” request to the software service in a manner similar to the activation request. Depending on the frequency of the subscription (e.g., monthly), the manual reentry of new product identifiers may be burdensome. Additionally, typical software application use licenses may not be well suited for utilization in a subscription service corresponding to a grouping of a number of computing devices.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
In accordance with an aspect, a system for facilitating a software subscription service is provided. The system includes one or more client computing devices that can include any number of subscription-based software applications. The software applications are associated with a software application use license and a software application subscription license. The client computing device can also include a software subscription agent that manages the software application subscription license. The system can also include a software subscription service for generating and transmitting software application subscription licenses to the client computing devices based upon a comparison of credentials. During the execution of the software application, the software subscription agent periodically transmits a request to update the software application subscription license based upon a detected condition, such as the upcoming expiration of the software application subscription license.
In accordance with another aspect, a method for managing a software application subscription is provided. The method may be implemented by a software subscription agent in a computer system including a number of subscription-based software applications associated with a software application use license and a software application subscription license. In accordance with the method, the software subscription agent obtains a set of current software application subscription licenses for the number of software applications and determines whether update criteria for the current software application subscription licenses have been satisfied. If so, the software subscription agent requests an updated software application subscription license from a software application subscription service upon detection of update criteria. The software application use license does not need to be updated and is independent of the software application subscription license.
In accordance with a further aspect, a computer-readable medium having computer-executable components associated with a software application on a client computing device is provided. The computer-executable components include a software application use component associated with the software application. The software application use component includes a unique product identification and information corresponding to machine characteristics of the client computing device. The software application use component can also include an indicator that a software application subscription license is required. The computer-executable components also include a software application subscription component associated with the software application. The software application subscription component includes a unique product identification and expiration criteria. Both the software application use component and the software application subscription component are required for execution of the software application on the client computing device.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
Generally described, the present invention relates to a system, method, and computer-readable components for managing software application subscription licenses. More specifically, the present invention relates to a system, method, and computer-readable components for managing software application subscription licenses having expiration criteria in conjunction with software application use licenses. Although the present invention will be described with regard to illustrative operating environments, data structures, software components, and software routines, one skilled in the relevant art will appreciate that the disclosed embodiments are illustrative in nature and should not be construed as limiting.
As will be described in greater detail below, in an illustrative embodiment, the execution of the software applications 104A-104C will be controlled through the utilization of software application use licenses and software application subscription licenses. The client computing device 102 can also include a software subscription agent 106 for managing the generation and updating of software application subscription licenses. Although not shown, the client computing device 102 can also include various components for generating and managing software application use licenses. The software application use licenses and software application subscription licenses may be stored in the license data store 106.
In an illustrative embodiment, a software application use license may apply to one or more software applications. In one aspect, a single software application use license may apply to multiple software applications on a single client computing device 102. In another aspect, a single software application use license may apply to the same type of software application (e.g., a word processing software application) on different, associated client computing devices (e.g., all client computing devices on a private network). In a similar manner, in an illustrative embodiment, a software application subscription license may apply to one or more software applications based on a set of credentials. In one aspect, a single software application subscription license may apply to multiple software applications on a single client computing device 102 based upon a single set of credentials (e.g., a single user). In another aspect, a single software application subscription license may apply to the same type of software application (e.g., a word processing software application) on different, associated client computing devices based on a shared set of credentials (e.g., all client computing devices on a private network).
With continued reference to
With reference now to
With reference now to
Turning now to
With reference now to
With reference now to
Turning now to
Thereafter, at block 406, the client computing device obtains and processes the software application subscription license. In one aspect, the client computing device 102 can display a unique product id for use by the user upon prompting by the software application 104. In another aspect, the client computing device 102 can store the software application subscription license in the license data store 108. In a further aspect, the software application subscription license may be processed to identify the expiration criteria 356 (
Referring now to
At block 506, the software subscription agent 106 sets the first identifier software application subscription license as the current software application subscription license. At decision block 508, a test is conducted to determine whether the update condition associated with the current software application subscription license is satisfied. In an illustrative embodiment, the update condition criteria can correspond to the update conditions registered when the software application subscription license was received and processed. In another embodiment, additional update conditions may also be provided by the software application 104 and/or software subscription agent 106. Additionally, the update condition criteria may be in the form of a set of alternative conditions that satisfaction of which will result in the satisfaction of the update condition as a whole.
If the update condition has been satisfied, at block 510, the client computing device 102 transmits a software application subscription license update request to the software subscription service 114. Thereafter, at block 512, the client computing device obtains and processes the software application subscription license. In an illustrative embodiment, the client computing device 102 may process the software application subscription license in a manner similar to block 406 (
If the update condition has not been satisfied for the current license at decision block 508 or upon registration of the an updated software application subscription license at block 514, at decision block 516, a test is conducted to determine whether any additional software application subscription licenses remain from the subset of currently stored software application subscription licenses identified in block 504. If so, the next software application subscription license in the subset is set as the current license at block 518 and the routine 500 returns to decision block 508. Alternatively, the routine 500 terminates at block 520.
Referring now to
At decision block 604, a test is conducted to determine whether the credentials provided in the request correspond to an active subscription. If the credentials do not correspond to an active subscription, the routine 600 terminates at block 608. Alternatively, at decision block 610, a test is conducted to determine whether a software application use license associated with the software application corresponds to a subscription account. In an illustrative embodiment, if the software application use license does not specify that a software application subscription license is also required, the software subscription service 114 will not generate a subscription license. Accordingly, if the use license does not correspond to a subscription, the routine 600 terminates at block 612.
If the software application use license corresponds to a subscription, at block 614, the software subscription service 114 generates a software application subscription license 350 (
While illustrative embodiments have been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention.
This application claims the benefit of U.S. Provisional Application No. 60/739,396, entitled ″Enforcing Subscription Validity on Software, and filed on Nov. 23, 2005. U.S. Provisional Application No. 60/739,396 is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
60739396 | Nov 2005 | US |