Abstract:
According to the present invention there is provided a method to ensure authorized usage of software, by creating and then verifying and validating with the software&#39;s registered information in the vendor&#39;s online server, at frequent intervals, software activation file and computer&#39;s motherboard id.

Description:
DESCRIPTION OF THE INVENTION 
       [0001]    Present invention describes online registration, activation and reinstallation program, said program is a byte code program written in Microsoft .NET programming language. 
     
    
       [0002]    Referring to  FIG. 1 , User installs the software with embedded unique software id to his computer by executing function  101 , upon successful installation user is ready to use the software. User click on the software executable for first time to run the software, method  102  is invoked. As user use the software for first time software registration  103  window will appear to register user to online server from desktop software. User enters his registration information  104  into registration wizard  103 . If internet connection is available  105  verifies the integrity of the  105  method associated with each loaded object, if the method  106  is successfully executed the method  107  validates registration information upon successful invocation of  108 . Software validates the software id embedded in software with the software id registered at online server by executing function  109 , Validator  110  is executed to validate whether the software id is valid and authorized. Software register user to the online server by invoking method  111  and issue unique customer id to the user and embed customer id in the software by executing method  112 . 
         [0003]    Referring to  FIG. 2 , as user install and register the software to online server user need to enter confirmation key to activate the software. Method  201  is invoked to display activation wizard, user choose subscription option i.e. trial or subscription by invoking method  202 , If user select trial period  203  confirmation key will be send to user&#39;s registered email id. If user selects subscription option by performing method  204  software redirect to online payment gateway  205 , if user made payment successfully by invoking method  206  software send confirmation key to user&#39;s registered email id by invoking method  207 . user enters confirmation key into activation key by executing function  208 , software execute internet connection availability class  209  to check the internet connection if internet is available  210  then function  211  execute to validate the confirmation key with the online database by executing internet availability class  212 . Upon successful validation server send activation file with encrypted customer id  213 , this activation file also contain installation id, period of authorized usage transferred from online server to user&#39;s machine and store users motherboard id to online database. Software validates customer id in activation file with customer id embedded in software by executing function  214 . If customer id validated successfully  215  method  216  executed to activate the software. 
         [0004]    Referring to  FIG. 3   a , If the software is needed to be reinstalled, method  301  is invoked. User reinstalls the software with embedded unique software id by executing function  302 . Method  303  is executed while user clicks to start the software, software registration window  304  appears, user selects whether this is new installation or reinstallation of an existing software, If user selects reinstallation, click next to proceed by executing function  305 . User enters email id and password into the wizard and click next by performing function  306 , If internet connection is available  307  verifies the integrity of the  308  method associated with each loaded object, if the method  308  is successfully verified  309  is invoked to validate the software id embedded in software with the software id registered at online server, Validator  310  is executed to validate whether the software id is valid and authorized. 
         [0005]    Method  311  is  311  to check entered information with online server database. If entered information is present  312  verifies the integrity of the  312  method associated with each loaded object, if the method  312  is successfully verified  313  (as referred in  FIG. 3   b ) is invoked to fetch all information of user who has already registered to online server. Method  314  reinstalls the software. If method  314  executed successfully, then software sends confirmation key to the user&#39;s registered email id by performing  315 . User enters confirmation key into the activation wizard by executing function  316 . Software checks the availability of internet by performing method  317 . Software validates confirmation key  318  with online server database, if key is validated by method  319  then disable all previous installation ids associated with the particular account and generates new unique installation id and store machine code to online database by executing function  320 , the method  321  called to complete the reinstallation of software. 
         [0006]    Referring to  FIG. 4 , as user uses the software, periodically computers motherboard id is validated with the motherboard id registered online during activation. Internet availability function  401  is invoked to execute internet availability class, if function  402  executed successfully.  403  is invoked to validate the software id embedded in software with the software id registered at online server, Validator  404  is executed to validate whether the software id is valid and authorized. The authorization component  405  checks the motherboard id. If the motherboard id mismatch, there could be two reasons first that user has changed the hardware, and the second reason because the software has been duplicated. Method  406  verifies the integrity of the methods associated with each loaded object, if the method successfully checks change in motherboard id then method  407  is invoked to register new motherboard id and identify the software with this motherboard id. If internet connection is available  408  verifies the integrity of the  408  method associated with each loaded object, if the method  409  is successfully verified  410  is invoked to check if any previously registered motherboard id appears again for that software, if the motherboard id appears again, function  411  invoked and server will block both the software and request user to reinstall. 
         [0007]    Referring to  FIG. 5 , If user purchases ‘n’ number of licenses for the software by invoking function  501 . As user installs the software and register the software with online server, software checks license count limit for the particular user with the online server database by invoking the function  502 . Software invokes the method  503  to create ‘n’ number of installation ids for that particular user and method  504  associate these installation id&#39;s to the customer id of that user. As user installs the software one installation id will be utilized for the installation by executing function  505 . By invoking method  506  software records these transactions date wise to online server database. If internet connection available after executing function  507  and  508  checks motherboard id and installation id associated with the particular user for every installation.