Abstract:
A method of authorizing use of a computer program only able to be used when an authorized message is received from an authorizing system. The method includes providing an authorization system, making a request to use a computer program, signalling the request to the authorization system, the authorization system recording the use of the computer program and providing the authorization message to the computer program upon receipt of the authorization message the computer program may be used.

Description:
FIELD OF THE INVENTION 
   The present invention relates to authorising use of a computer program, in particular the present invention relates to a method of authorising use of a computer program, a computer configured to authorise the use of a computer program and a computer readable media on which is stored computer software for authorising use of a computer program. 
   BACKGROUND OF THE INVENTION 
   There is an increasing need for securing and protection of computer programs and other digital products. This is reflected in an increasing demand for a “pay as you use” payment arrangement for licensed use of computer software. It is known for a server to provide application software to a plurality of client&#39;s machines. Under this model it is possible to provide a “pay as you use” method of software licensing. Current pricing models used for the payment of software applications are based on per user and seat licensing agreements that are complex, restrictive and inefficient, especially for client server and application service provider software delivery. “Pay as you use” pricing is demanded by software users for its simplicity, cost effectiveness and flexibility. 
   There is therefore a need for an alternative method of providing a software licensing system that allows for each user of the software to correspond a payment for that use. The licensed software needs to be able to be prevented from use unless authorised, to allow for inter alia payment for using the software. 
   SUMMARY OF THE PRESENT INVENTION 
   An object of the present invention is to provide a method of authorising use of a computer program in a manner suitable for implementing inter alia a “pay as you use” licensing system. 
   According to the present invention there is provided a method of authorising use of a computer program, said method including the steps of:
         providing an authorisation system;   recording an identifier of a computer program to be authorised for use with the authorisation system;   a user registering with the authorisation system and receiving a user identification from the authorisation system;   the authorisation system recording an arrangement that relates to the authorised use of the computer program by the user;   the user making a request to use the computer program;   the computer program identifier and user identification being sent to the authorisation system in a login request message;   the authorisation system verifying the identity of the user from the user login identification and checking the arrangement to determine whether the user is authorised to use the computer program identified by the computer program identifier;   the authorisation system recording the information sent with the request message;   if the user is verified and authorised to use the computer program, then a user authorisation message is sent to the computer program, otherwise an authorisation denied message is sent to the computer program;   whereby upon receipt of the authorisation message the computer program may be used by the user.       

   Also, according to the present invention there is provided a method of authorised use of a computer program, said method including the steps of:
         providing an authorisation system;   providing an interface for passing messages between the computer program and the authorisation system;   recording an identifier of the computer program to be authorised for use with the authorisation system;   a user registering with the authorisation system and receiving a user identification from the authorisation system;   the authorisation system recording an arrangement that relates to the authorised user of the computer program by the user;   the user making a request to user the computer program;   sending the user identification to the authorisation system in a login request message;   the authorisation system verifying the identity of the user from the user login identification;   if the identity of the user is verified, then sending a login successful message to the interface;   if a login successful message is received by the interface, then sending the computer program identifier to the authorisation system in a computer program use request message;   recording the information sent in the user request message;   the authorisation system checking the arrangement to determine whether the user is authorised to use the computer program identified by the computer program identifier;   if the user is authorised to use the computer program, then a use authorisation message is sent to the computer program, otherwise an authorisation denied message is sent to the computer program;   whereby upon receipt of the authorisation message the computer program may be used by the user.       

   Preferably the computer program is a sub-component of a software application. More preferably the login request message is sent to the authorisation system when the user requests to use the software application and the authorisation request message is sent to the authorisation system when the user requests to use the sub-component of the software application. 
   Preferable the method includes the steps of:
         the computer program sending a use message to the authorisation system indicting that the computer program is being used;   the authorisation system recording the user message against the identified user.       

   Preferably the method includes the steps of:
         the computer program sending a request to the authorisation system to incur a charge for the use of the computer program;   the authorisation system recording a charge against the identified user for use of the computer program.       

   Preferably the authorisation system records whether the user is verified, whether the user is authorised to use the computer program and a time stamp. 
   Preferably the authorisation denied message includes information relating to the reason for denying use of the computer program. Preferably if an authorisation denied message is sent to the computer program, then the computer program determines how to process based on information relating to the reason for denying use of the computer program. 
   Preferably the arrangement permits use of computer program by a class of user. Preferably the arrangement specifies whether the user is charged for use of the computer program. Preferably the charge for use of the computer program is determined by the terms of the arrangement for use of the computer program by the use. 
   Preferably the charge for use of the computer program is recorded in usage units. 
   Preferably a rate of charging usage units for the us of the computer program is recorded in the authorisation system. A different rate of charge may be applied to different computer programs. 
   Preferably the usage units are charged by the authorisation system upon receipt of the request to charge for the use of the computer program. 
   Preferably the request to the authorisation system for charge of usage units is sent once per use of the computer program. Alternately the request to the authorisation system to charge usage units is sent once per specified period during the use of the computer program. 
   Preferably the user purchases usage units in advance of use of the computer program, the usage unit total being reduced by each charge, use being authorised only while there are a positive number of usage units left. 
   Preferably the authorisation message is encrypted. Preferably, the communication between the interface program and the authorisation system is encrypted. Preferably messages to and from the authorisation system includes a unique component that is only valid for a single use, so that the message can&#39;t be duplicated and used again. 
   Preferably the user identification is obtained from the user by providing the user with a login prompt, the user entering the login identification provided by the authorisation system, the entered user identification being included in the login request. 
   Preferably an interface program signals the login request to the authorisation system. Preferably the interface program is a separate program called by the computer program being authorised as part of the initialisation of the authorised computer program. In one embodiment the interface program forms part of the computer program and is started when a user attempts to use the computer program. In another alternative embodiment, the interface program is part of an operating system and is started when a user attempts to use the computer program. 
   Preferably the authorisation system is at a location remote from a computer running the activated computer program. More preferably, the computer running the activated computer program also runs the interface program, the interface program communicates with the authorisation system over a computer network. 
   Preferably the authorisation system is configured to record and authorise a plurality of computer programs. Typically, the authorisation system is configured to record and authorise a plurality of uses of the same computer program. 
   In one embodiment the authorisation is provided for each activation of the computer program. Typically, a charge is generated for each use of the computer program. In another embodiment, the authorisation is required periodically, wherein at the end of a period of time specified in the computer program from the last authorisation, a request to charge the usage units is sent to the authorisation system for a further authorisation, the authorisation system sends each further authorisation and records the use for each period, whereby a charge is generated for each authorisation message sent. 
   In yet another embodiment, when the computer program is finished, a terminate message is sent to the authorisation system, the authorisation system records the duration of the use of the computer program between the authorisation message is sent to the computer program until the terminate message is received, whereby a charge in PUs is generated for use of the computer program corresponding to the recorded duration. 
   According to another aspect of the present invention there is provided a distributed system for authorising use of a computer program, said system comprising at least:
         an authorisation system, with a storage means for recording an identifier of a computer program to be authorised for use with the authorisation system and recording a user identification;   a computer for running the computer program;   the computer being configured to send the identifier of the computer program and user identification to the authorisation system in a login request message when the user makes a request to use the computer program;   the authorisation system being configured to verify the identity of the user from the recorded user login identification and check that the user is authorised to use the computer program identified by the recorded computer program identifier;   the authorisation system configured to record the information sent with the request message;   the authorisation system being configured to send a login authorised message to the computer if the user is verified and authorised to use the computer program and otherwise send an authorisation denied message to the computer;   whereby the computer is configured to continue use of the computer program upon receipt of the authorisation message but otherwise terminate the use of the computer program.       

   Preferably the computer is configured to sending a request to the authorisation system to record a charge or the use of the computer program against the identified user for use of the computer program. 
   Preferably the computer storage means records the rate of charge for the use of the computer program. 
   Preferably the authorisation system records a charge against the user upon receipt of the request to charge for use of the computer program. 
   Preferably the computer is configured to send a request to the authorisation system to charge the user once per use of the computer program. 
   Preferably the computer is configured to send a request to the authorisation system to charge the user is sent once per specified period during the use of the computer program. 
   Preferably the computer is the communication between the computer program and the authorisation system is encrypted. 
   Preferably the computer and authorisation system are configured to include a unique component in the encrypted messages communicated therebetween. 
   Preferably the authorisation system is at a location remote from a computer running the activated computer program. 
   Preferably the computer running the activated computer program also runs the interface program, an interface program that communicates with the authorisation system over a computer network. 
   Preferably the authorisation system is configured to record and authorise a plurality of computer program. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In order to provide a better understanding, preferred embodiments of the present invention will now described in detail, by way of example only, with reference to the accompanying drawings, in which: 
       FIG. 1  is a schematic representation of a system that enables the authorisation of use of a computer program in accordance with the present invention; 
       FIG. 2   a  is a state diagram showing the states of a server waiting for a login; 
       FIG. 2   b  is a state diagram showing the states of a run time license consumption session; 
       FIG. 3  is a flow chart showing the method of the present invention; 
       FIG. 4  is a schematic timing diagram of message passing between components of the system of  FIG. 1 ; 
       FIG. 5  is a schematic timing diagram of an alternative method of message passing between components of the system of  FIG. 1 ; and 
       FIG. 6  is a flow chart showing the registration of a user and a software application for use with the present invention. 
   

   DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
   Referring to  FIG. 1 , a system  10  is shown for authorising use of a computer program, such as a software application  12  on a computer  14 . The computer program may be a sub-component of a larger software application. A user  5  activates the software application  12  for execution on the computer  14 . The software application  12  calls an interface program  16 , known as a Software Application Interface Library program (SAIL). The SAIL  16  communicates with an on-line server  18  via a network, such as the Internet  20 . An authorisation system  22  is running on the server  18 . The authorisation system  22  is called a Software Application License Manager Over Networks (SALMON) system. It is noted that the computer platform need not be the same as the server, likewise operating systems of the computer and the server need not be the same. The SALMON system  22  is able to handle many software applications on a plurality of computers, each having a SAIL interfacing with the SALMON system  22 , via a communication network, such as the Internet  20 . The SALMON system  22  communicates with the SAIL  16  to determine whether the user is authorised to use the software application  12 . There is a one to one relationship between the user and the instance of the software application. This allows for each user to be charged for each use of the software application. 
   The SAIL  16  is provided to a software vendor that wishes to use the system  10  of the present invention. The software vendor incorporates calls to the SAIL  16  in the vendor&#39;s computer program. 
   The computer program or software application  12  is written to be disabled from use until the user  5  is identified to the SALMON  22  using a login routine of the SAIL  16  and receives an authorisation message from the SALMON system  22 . The authorisation message operates as a once off run time license. The SAIL  16  sends another authorisation message to the software application  12  when it receives the authorised message from the SALMON system  22 . 
   Specifically, when the software application is started, it calls a login sub-routine of the SAIL  16 . The application waits for the SAIL login sub-routine to return a message indicating that the user is logged in. A software vendor wanting to charge for use of the software can decide the price of use. It may be free, parts of the software may be charged for, or all of the software may be charged for. The cost may be charged on each start-up of the application, on a time basis or on a per function basis. Different users may be charged different rates. A user is charged for using a program use run-time license unit (RTL). The SAIL  16 , once logged in, can send a message to the SALMON system  22  to record usage of the computer program/software application according the payment scheme desired. 
   Referring to  FIG. 3 , which shows the operation of the present invention in the form of a flow chart. The flow chart starts at  202  where a user wishes to run a software application. The user activates the software application in the normal manner at  204 . The software application interfaces with the SAIL  16  to validate the user at  206  via a login request message which is encrypted with a public key at  208  by the SAIL  16 . The encrypted login request message is communicated over a network  210 , such as the internet, and is then decrypted with a private key at  212  in a server running the SALMON system  22 . The SALMON system  22  validates the user name, password and the status of the application at  214 . If the user is valid and authorised to use the software application, a logged-in confirmation message is encrypted with a public key at  216  and sent across the network  210 . It is decrypted at  218  with a private key by the SAIL  16 . 
   If the validation is successful, as indicated by  220 , the application continues at  222 . If the software vendor wishes the user to pay for the use of the software application, the steps from  224  take place. The account creditability is validated at  226 . The SAIL  16  sends a public key encrypted “allocate a charge” message at  228  over the network  210 . The message is then decrypted with a private key at  230 . The account is checked to determine whether sufficient RTLs are available. If so, the required number of RTLs are debited at  232 . A charged confirmation message is encrypted with a public key and sent at  234  across the network  210  and decrypted at  236  with a private key. If the validation is successful the application continues at  238 , otherwise it terminates at  240 . 
   The method of encryption of transmitted messages involves the inclusion of a unique component so that a message is valid only once. Each message is in the form of a binary number to be sent between the SAIL  16  and the SALMON system  22 . A random number is added to the message. A digestion routine takes the data from the message and the random number to produce a digestion value. The digestion value is computed in such a way that finding an input that will exactly generate a given digest is computationally infeasible. The message data, the random number and the digestion value are then encrypted using a public key. The message is the transmitted. The received message is then decrypted using a private key. The decrypted message is then separated in to individual components. The message can be validated by using the same digestion formula on the message and random number components to check the digestion result calculated against the digestion value received. If the values are the same the message is considered valid, otherwise it is considered invalid. This process provides a different date sequence for each message even if the same acknowledgment message is sent each time. In this way each message includes a unique value which can only be used once. Thus if the message is duplicated it will no longer by valid and will be rejected. 
   The SALMON system  22  may be configured to allow many users to be authorised at the same time for one or more software application. The software vendor may allow up to a predetermined number of users to login for a particular software application. For each authorised user allowed a login a login resource is allocated in the SALMON system  22 . Each available login resource, a login daemon process will be waiting for a user to login. 
   Referring to  FIG. 2   a , until a login is received each of the login daemon processes remains in a not logged in state  30 . Once a login  32  is received the SALMON system  22  enters a logged in state  34 . A routine “Can consume RTL”  35  checks to see whether RTLs may be consumed, until the user  5  logs out at  38 , whereupon the login resource of the SALMON system  22  re-enters the not logged in state  30 . Thus checking that sufficient funds (in the form of RTLs) are available can be a criterion for authorisation. 
     FIG. 2   b  shows the consumption of RTLs in the logged in state  34 . A routine “ConsumeRTL”  42  consumes RTLs on the successful verification by SALMON system  22 . If there are sufficient RTLs and it is a valid transaction. At the completion of the use of software application pending logout, or once all available RTLs are consumed, the user logs out  38 . 
   A user of the software application using the on-line pay as you use model must first be registered with the on-line SALMON system  22 . They will be provided with a user name and password so that the SALMON system  22  can identify them and the login details verified. 
   The login of the user is to verify that the user is logged with the on-line SALMON system  22  before being able to proceed with use of the software. The software application logs out from the SALMON system  22  in order to provide a clean exit. Generally, only one login session per user should be active, a previous session must be logged out before another login session can begin. 
   Referring to  FIG. 4 , the passing of messages is now described. A user  5  activates a software application  12  thereby creating  50  an instance of the software application  12 . The software application  12  then creates  52  an instance of the SAIL  16 . The software application  12  requests details from the user  5  at  54 . The user  5  enters a user name and password at  56 . The software application calls a “SAIL-login” routine of the SAIL  16  at  58 . The SAIL  16  then establishes a connection, via the Internet  20 , to the SALMON system  22 . The SAIL-login routine then passes the user name, password and an identification of the software to the SALMON system  22 . Once confirming that the login details are correct, the SALMON  22  sends a login “OK” message at  62  to the SAIL  16  which then at  64  sends an “OK” message to the software application  12 . 
   Depending on the model that the software vendor wishes to use the charge for use of the software an appropriate scheme of using RTLs will be used. The scheme described in relation to  FIG. 4  is for a one-off charge for use of the software application. Other schemes will be described below. 
   The software application  12  then sends a one-off request to consume an RTL at  66 . This request is a SAIL-consume RTL call. The SAIL-consume RTL sends a consume RTL message to the SALMON system  22  at  68 . The SALMON system  22  records the request to consume RTL and sends an authorisation message at  70  to the SAIL  16 , The SAIL  16  then passes the OK message at  72  to the software application  12 . The software application  12  then begins to log out of the SAIL  16  at  74 . The logout message is then passed from the SAIL  16  to the SALMON system  22  at  76 . A Logout confirmation message is then passed from the SALMON system  22  to the SAIL  16  at  78 . The logout confirmation message is then sent from the SAIL  16  to software application  12  at  80 . The software application  12  may then terminate the SAIL program  16  at  82 . The user  5  may proceed with use of the software application  12  at  84 . Once the user has finished with the software application  12  it may then be terminated at  86 . 
   The recording of the consumption of a one-off consumption of an RTL creates a charge for the one-off use of the software application  12 . This charge may be deducted from an amount of RTLs held in credit for the user  5  or may be billed to the user  5 . 
   Different software applications may request the consumption of different numbers of RTLs. For example a word processing application may consume five RTLs whereas a spreadsheet may consume  10 . As mentioned above, the software being authorised need only be a sub-component of a large software application. For example, a print function may be regarded as the computer program being authorised. For each use of the print function a charge is accrued. A user  5  may also be entitled to a discount such as, for example, if they are a high volume user. The number of RTLs may then be multiplied by a user discount to produce a final number of RTLs deducted from the user&#39;s account. 
   Referring to  FIG. 5 , the periodic consumption of RTLs is described. Periodic consumption of RTLs may be consumed at a different rate to one-off consumption of RTLs. Like numerals depict like actions from  FIG. 4 . Again the user  5  starts the software application  50  which creates the instance of the SAIL  16  at  52 . Login is requested at  54  and login details are provided to the SAIL  16  at  56 . The login details are then passed from the software application to SAIL  16  at  58  and then onto the SALMON system  22  at  60 . The confirmation of login is passed from the SALMON system  22  to the SAIL  16  at  62 , and from the SAIL  16  to the software application  64 . The user may proceed with the normal use of the application at  84 . In the meantime, the software application  12  makes periodic requests to the SAIL  16  for the consumption of an RTL at  98 . The SAIL  16  passes the request to the SALMON system  22  at  100 . The confirmation of the recording of the consumption of the RTL occurs in the SALMON system  22  and the confirmation of this is then passed from the SALMON system  22  to the SAIL  16  at  102  and then from the SAIL  16  to software application  12  at  104 . 
   At the end of each period a further RTL is consumed as indicated by  106 ,  108 ,  110  and  112 . When the user has finished with the application, a command is sent to exit from the application  12  at  86 . The software application then sends the logout message to the SAIL  16  at  74  which is sent on at  76  to the SALMON system  22 . Confirmation of the logout is sent from the SALMON system  22  to the SAIL  16  at  78  and then from the SAIL  16  to the software application  12  at  80 , whereupon the software application may end the instance of the SAIL  16  at  82  and then shut itself down. 
   As an alternative the software application  12  may specify the period to the SAIL  16  and the SAIL  16  handles the operation of sending consume RTL messages to the SALMON system  22  for deduction RTLs from the users account. 
   The number of periodic RTLs consumed is recorded and a corresponding charge generated. The total charge for the session is deducted from an account or billed out. RTLs may use currency units, the consumption of RTLs is in itself payment. The charge for the consumption of each RTL can be arranged by agreement between the software vendor and the system operator. 
   The SALMON system  22  may be configured to allow many users to be authorised at the same time for one or more software applications.  FIG. 6  shows a flow chart setting out the establishment of a pay-as-you-use registration according to the present invention. The flow chart begins at  302  where a user wishes to use a software application utilising the system of the present invention. If the user is registered with the administrators of the authorisation SALMON system  22  they proceed down path  304  otherwise they need to register with the administrator, in this case “OPTIMISER” at  306 . An on-line registration site is made available over the Internet at  308 , where the user can register to use a single software application  310  or a range of software applications  312 . A subscription fee is paid at  314  or  316  depending on whether the user selects a single software application or general use. A rule of, for example US$10 per annum is paid if a single application is to be used. An annual subscription of, for example US$120 per annum is charged for general use of software. Once this payment is made to the administrator the process continues at  318  as if the person was previously registered. 
   If the user wishes to use an application that is not pay-as-you-use enabled as indicated at  320 , the software vendor will need to register the system with the administrators. If the software is registered it will proceed as indicated by  322 . The software vendor may download website software as indicated by  324 . If the software vendor is not registered with the administrator as indicated by  326  the vendor must register at  328 . Once the vendor is registered the SAIL interface program can be downloaded at  330  and integrated into the vendor&#39;s software at  332 . 
   Once the user is registered, the user must have credit available with the administrator. This is checked at  334 . If they don&#39;t, as indicated by  336 , they must purchase RTLs. If they have paid the vendor for usage as indicated by  338  the vendor must pass on the usage payment at  340  to the administrator, which will be credited as RTLs. Once the user has RTLs credited as indicated by  342  the user may use the software according to the present invention. When the software application is started the SAIL is activated at  344 , as described above, with  344  being equivalent to  50  in  FIGS. 4 and 5 . The authorisation of the user is indicated by  346  being the equivalent of the OK message  64  in  FIGS. 4 and 5 . On-line usage reporting, indicated by  348 , is equivalent to the recording of the logging in and consumption of RTLs. The user may then view their access usage and RTL consumption at a later stage. Even if the software is not charged for use, the software can be recorded and tracked. 
   The SAIL interface  16  may provide a “heart beat” function that periodically sends the SALMON system  22  a message to check that a connection between the two still exists. If the connection has dropped out, it may be re-established or the application terminated, depending on the security desired by the software vendor. 
   A list of SAIL Application Program Interface (API) system calls is listed in appendix 1. A more preferred list of SAIL API system calls is listed in appendix 2. A set of example scenarios showing the use of the SAIL  16  is included in appendix 3. 
   The SAIL interface as implemented as an Application Programmable Interface (API) library able to interface with the programming language of the software application. Programming methodologies like ActiveX or CORBA can be used to provide class wrappers around the system API library. 
   Now that the preferred embodiments have been described it will be clear to the skilled addressee that it has at least the following advantages. A locked software application may be provided to each user that is only able to be unlocked and used where the user purchases run time licenses which are consumed on a per use basis. This means that software does not need to be downloaded and may be provided on, for example, a floppy disk, CD-ROM or DVD ROM. The user only receives use of the software that they pay for and the user only has to pay for the actual use of the software. 
   It will be clear that modifications and variations can be made to the present invention, such as the implementation need not be exactly as described in the above mentioned example, the computer language that the underlying software is programmed in may be any suitable language, such as Java, C++ or Visual BASIC. The method of charging and/or billing for us of the run time licenses for the software may vary from those described above. It is also envisages that the present invention may be applicable to authorise specified users to access a program, rather than for payment of RTLs. Such a security measure to only allow certain personnel to access sensitive software applications and is able to track their use. 
   Such modifications and variations are intended to be within the scope of the present invention, the nature of which is to be determined from the foregoing description.