Computer software applications are typically loaded onto a computer from a memory medium such as a compact disc or from an Internet download or from other mediums on which software applications may be stored. In order to utilize a software application on a user's computer, an activation procedure often must be accomplished for a loaded application to enable full operation of the application and to notify an activation authority, such as the application manufacturer, that the appropriately obtained application is now in use on the user's computer. Such activation procedures allow manufacturers/marketers of software applications to eliminate or reduce unauthorized use of software applications (also known as, software piracy).
In many cases, a product identification key code or other authorization code accompanies an acquired software application and must be entered during a software setup process to enable full use of the features of the software application. In some cases, a software application may be loaded and launched without entry of an appropriate product identification key code or other authorization code, but the application will run with a greatly reduced feature set until the product identification key code or other authorization code is entered. In other cases, after entry of a product identification key code in a software setup process, a grace period is provided in which a full set of software application features may be utilized before software activation must be performed. During the software activation, product information contained in the software application may be associated with the computer onto which the software application is loaded, or product information may be passed to the software application manufacturer via mail or via a distributed computing network such as the Internet. Unfortunately, entry of the product identification key code prior to initial use of the software application is seen by some software users as a barrier to initial enjoyment of the software application that often taints the first impressions of the software user regarding the features of the software application.
It is with respect to these and other considerations that the present invention has been made.
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 or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.
Embodiments of the present invention solve the above and other problems by providing a grace period during which the features of a software application may be fully utilized and appreciated without requiring entry of a product identification key code or other authorization code. After loading a software application onto a user's computer, a grace period is provided during which the software application may be booted and used with all its associated features and functionalities before requiring entry of a product identification key code or other authorization code. Thus, an initial use of the software application is provided without requiring entry of a product identification key code so that the user may fully experience the features of the software application without delay. At the end of the grace period, entry of the appropriate product identification key code or other authorization code is required, followed by activation of the software application. If a user enters the appropriate product identification key code or other required authorization code during the grace period, the user then may utilize features and/or functionalities of the associated software application prescribed by the product identification key code or other required authorization code.
These and other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory only and are not restrictive of the invention as claimed.
As briefly described above, embodiments of the present invention are directed to providing a grace period during which the features and functionalities of a given software application may be utilized and appreciated without requiring entry of a product identification key code or other authorization code. After use of the software application for a prescribed number of software application “boots” during which the software application is started up or after use of the application for a prescribed duration, a product identification key code or other authorization code provided by the software application manufacturer must be entered, and the software application must be activated. If a product identification key code or other required authorization code is entered during the grace period before the grace period has expired, the software application may be utilized, according to the entered product identification key code, for the remaining portion of the grace period before software activation is required. According to another embodiment, once the product identification key code or other required authorization code is entered, application activation must be immediately performed.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These embodiments may be combined, other embodiments may be utilized, and structural changes may be made without departing from the spirit or scope of the present invention. The following detailed description is therefore not to be taken in a limiting sense and the scope of the present invention is defined by the appended claims and their equivalents.
Referring now to the drawings, in which like numerals refer to like elements through the several figures, aspects of the present invention and an exemplary computing operating environment will be described. Referring now to
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Referring now to
The mass storage device 14 is connected to the CPU 8 through a mass storage controller (not shown) connected to the bus 10. The mass storage device 14 and its associated computer-readable media provide non-volatile storage for the computer 2. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed or utilized by the computer 2.
By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 2.
According to various embodiments of the invention, the computer 2 may operate in a networked environment using logical connections to remote computers through a network 4, such as a local network, the Internet, etc. for example. The computer 2 may connect to the network 4 through a network interface unit 16 connected to the bus 10. It should be appreciated that the network interface unit 16 may also be utilized to connect to other types of networks and remote computing systems. The computer 2 may also include an input/output controller 22 for receiving and processing input from a number of other devices, including a keyboard, mouse, etc. (not shown). Similarly, an input/output controller 22 may provide output to a display screen, a printer, or other type of output device.
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 14 and RAM 18 of the computer 2, including an operating system 32 suitable for controlling the operation of a networked personal computer, such as the WINDOWS® operating systems from MICROSOFT CORPORATION of Redmond, Wash. The mass storage device 14 and RAM 18 may also store one or more program modules. In particular, the mass storage device 14 and the RAM 18 may store application programs, such as a word processing application 28, a spreadsheet application 30, e-mail application 34, drawing applications, etc. According to an embodiment, a licensing module 24 is included for managing application activation process as described below.
It should be appreciated that various embodiments of the present invention can be implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, logical operations including related algorithms can be referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, firmware, special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims set forth herein.
Referring still to
A product identification key code or other authorization code is typically provided by a manufacturer or distributor of a given software application to an authorized user of the software application. The product identification key code or other authorization code may be in the form of an alpha-numeric string. Such codes are also sometimes referred to by software manufacturers or distributors as passwords. For example, a product identification key code may be provided on the labeling or packaging of a compact disc purchased by a user and containing a desired software application. Alternatively, if a software application is pre-loaded on a computer 2 purchased by the user, the product identification key code or other activation code may be provided with licensing materials accompanying the purchased computer. According to other alternatives, a software application may be purchased via a distributed computing environment, such as the Internet, and a manufacturer's product identification key code or other authorization code may be transmitted to the user electronically. According to yet other alternatives, a product identification key code or other authorization code may be embedded directly within a storage medium, for example, CD-ROM or DVD, or the code may be preloaded on a purchased computer.
According to an embodiment, the licensing module 24 associated with the software application purchased, rented or otherwise acquired by the user allows the software application to be loaded onto the computer 2 and allows the software application to be fully utilized during a grace period before required entry of a product identification key code or other authorization code. During the grace period, a prescribed number of application “boots” is provided. For example, a given software application may have an associated grace period of 25 boots which means that the application may be loaded onto the computer 2 and may be subsequently booted for use on the computer 25 times before required entry of the product identification key code or other authorization code. During the grace period, the licensing module 24 maintains a count of application boots or startups to ensure that the application may not be utilized beyond the grace period. Alternatively, the grace period may include a time period during which the full functionality of the software application may be utilized. In this case, the licensing module 24 maintains a time clock after initial startup and measures the total amount of elapsed usage time.
According to embodiments, during the grace period, an enhanced set of application features may be provided to the user that will be unavailable after entry of the product identification key code and after performance of the required software product activation. For example, if a user purchases a home version of a popular software application that contains fewer features than a business version of the same software application; all features available under the business version of the software application may be provided to the user during the grace period. At the end of the grace period and after product identification key code entry and subsequent activation, only those features associated with the purchased version of the software application, for example, the home version will be allowed by the licensing module 24. Such utilization of a fuller set of software features is advantageous because the user is provided a “preview” of the more advanced features that may be available to the user if the user decides to subsequently purchase the version of the software application containing the larger set of features. Alternatively, during the grace period, a reduced functionality feature set may be provided for the software application, and a warning or other notification may be provided to the user that a more advanced feature set will be provided upon entry of the required product identification key code or other required authorization code along with the required application activation.
After all grace boots have been utilized during the grace period, or after the prescribed grace time duration has elapsed, the licensing module 24 may cause the associated application to enter a reduced functionality mode in which only a small set of the features of the application may be utilized until the product identification key code and accompanying activation are entered and performed. As should be appreciated, the reduced functionality mode may include a complete shutdown of the associated application. As briefly described above, if a user enters a required product identification key code or other authorization code during the grace period, according to one embodiment, the licensing module 24 will allow the user to continue using the software application for the remaining term of the grace period before software activation is required. For example, if the user enters the product identification key code after five boots of a 25 boot grace period, the user may use the software application for the remaining 20 boots before software activation is required. Alternatively, after product identification key code or other authorization code is entered by the user, software activation must be immediately performed.
Referring now to
Referring now to
At operation 215, the user may begin entry of the product identification key code as requested in the displayed dialog box 100. At operation 220, once the user begins entry of the characters of the product identification key code or other authorization code, the button 125, for allowing the user to continue with setup without entry of the product identification key code, is disabled. That is, once the user begins entry of product identification key code or other authorization code characters, the licensing module 24 assumes that the user intends to enter the required product identification key code, and the button 125, for allowing the user to setup the application without entry of the key code, is disabled.
At operation 225, the product identification key code or other authorization code digits are entered, and at decision operation 230, a determination is made by the licensing module 24 as to whether the product identification key code or other authorization code entered by the user is valid. If the key code entered by the user is not valid, a warning is provided at operation 235, and the method proceeds back to operation 225 to allow the user to correct the entered key code. If the product identification key code or other authorization code entered by the user is valid, the method proceeds to operation 250, and a continuation of the setup of the software application is enabled, as described below.
Referring back to operation 220, if the user decides to forego entry of the product identification key code and to make use of the prescribed grace period, the method may proceed to operation 240, and the user may clear the entered product identification key code. If the user clears the product identification key code characters entered at operation 225, the method proceeds to operation 245, and the button 125, for allowing the user to set up the software application without entry of the required product identification key code, is enabled. The method then proceeds to operation 265 where the user may select the button 125 for setting up the software application without entry of the product identification key code or other required authorization code.
Referring back to operation 210, when the activation dialog box 100 is initially launched after loading the software application onto the computer 2, the button 125 is enabled, as described above. If the user decides at this initial point to forego entry of the product identification key code and to make use of the prescribed grace period, the method proceeds directly to operation 265. At operation 265, the button 125 is selected for initiating a setup of the software application loaded by the user without requiring entry of the product identification key code or other required authorization code. At operation 270, a warning is displayed to the user to notify the user that the user is setting up the associated software application without entry of the required product identification key code and that the software application may be utilized by the user with a full feature set during a prescribed period after which the full feature set may be disabled. After receiving the product identification key code warning at operation 270, if the user decides to enter the product identification key code or other required authorization code, the method proceeds via operation 280 back to operation 210 where the activation dialog box 100 is provided to the user for entry of the product identification key code or other required authorization code.
After receiving the warning at operation 270, if the user desires to continue with application setup without entry of the required product identification key code or other required authorization code, the method proceeds via operation 275 to operation 285, and the licensing module 24 allows application setup to continue without receipt of the product identification key code. At operation 290, the licensing module 24 displays an end user licensing agreement (EULA) in which default product branding strings may be displayed in association with application setup without entry of the required product identification key code. For example, information may be provided in the EULA that notifies the user that an enhanced or reduced feature set may be provided for the software application during the grace period until the appropriate product identification key code or other authorization code is entered. After acceptance of the EULA by the user, the software application may be booted and utilized during the grace period, as described herein. The method ends at operation 295.
Referring now to
If a determination is made that a valid license for the software application is not present, the method proceeds to operation 320, and a determination is made as to whether a product identification key code or other authorization code has been entered by the user. According to an embodiment, at operation 320, the dialog box 100 may be displayed to the user at each attempted boot of the software application to remind the user that the user should enter the required product identification key code or other authorization code followed by software application activation. At operation 320, if the user enters a product identification key code, the method proceeds to operation 325, and the activation procedure prescribed for the software application in use may be performed. According to one embodiment, activation may not be performed at this time. While activation is the next step in the process, the user may elect to cancel and continue to use the software for any remaining grace period before activation is required. During this period, the feature set appropriate to the entered product identification key code is enabled. Thus, the grace period is independent of the feature set enabled or of the entered product key code.
Referring back to operation 320, if the user does not enter a product identification key code at operation 320, the method proceeds to operation 330, and the licensing module 24 retrieves a counter of the expended application grace boots. For example, if the grace period for the application in question includes 25 grace boots of the application, a counter is retrieved by the licensing module 24 to determine how many grace boots have been used for the software application since application setup, as described above with reference to
At operation 345, if the user decides to enter the product identification key code, the method proceeds to operation 350, and product identification key code characters or digits entered by the user are validated. If a valid product identification key code is entered by the user, the EULA and associated branding information is provided at operation 355. At operation 360, setup of the software application including application activation may be completed as described above with reference to operation 325.
Referring back to operation 345, if a product identification key code or other authorization code is not entered by the user, the method proceeds to operation 365, and a determination is made as to whether prescribed grace boots for the grace period remain available for booting the software application. If prescribed grace boots do remain, or if prescribed grace time remains, the method proceeds to operation 370, and a warning may be displayed to the user to notify the user that the startup of the application is in accordance with the grace period, and a counter may be provided in the displayed warning by the licensing module 24 to notify the user of the remaining number of grace boots or grace time that may be used during the grace period.
At operation 375, according to an embodiment, the user may be once again provided the opportunity to enter the product identification key code or other authorization code as a part of the warning provided at operation 370. For example, if during the warning provided at operation 370, the user realizes that only one grace boot is left for the grace period, the user may decide that it is now time to enter the product identification key code or other required authorization code for activating the application for sustained use.
If the user decides not to enter the product identification key code, the method proceeds to operation 380, and the application is started up and runs with the full feature set provided by the licensing module 24 during the grace period. Referring back to operation 375, if the user decides to enter the product identification key code, the method proceeds back to operation 340, and the activation dialog box 100 is displayed, as described above.
Referring back to decision operation 365, if a determination is made by the licensing module 24 that no grace boots remain or that no grace time remains, the method proceeds to operation 385, and a shutdown warning is displayed to the user. That is, a warning is displayed to the user that the application will be shut down because the prescribed grace period has expired. Alternatively, instead of shutting down the application, the licensing module 24 may cause the application to run in a reduced functionality mode where many of the features of the application are disabled. According to embodiments, the warning displayed at operation 385 provides a button or control which when selected causes a display of the activation dialog box 100. If the user decides to enter the product identification key code at this time, the method proceeds back to operation 340, as described above. If the user decides not to enter the product identification key code after being warned that the grace period as expired, the method proceeds to operation 395, and the licensing module 24 causes the application to run in a reduced functionality mode where many of the functions and features of the application are disabled. Alternatively, the licensing module 24 may cause the application to shut down altogether. The method ends at operation 398.
As described herein, embodiments are directed to providing a grace period during which un-activated use of a software application is allowed. Although the invention has been described in connection with various exemplary embodiments, those of ordinary skill in the art will understand that many modifications can be made thereto within the scope of the claims that follow. Accordingly, it is not intended that the scope of the invention in any way be limited by the above description, but instead be determined entirely by reference to the claims that follow.