+

WO2008001074A1 - Système et procédé de location de logiciels - Google Patents

Système et procédé de location de logiciels Download PDF

Info

Publication number
WO2008001074A1
WO2008001074A1 PCT/GB2007/002387 GB2007002387W WO2008001074A1 WO 2008001074 A1 WO2008001074 A1 WO 2008001074A1 GB 2007002387 W GB2007002387 W GB 2007002387W WO 2008001074 A1 WO2008001074 A1 WO 2008001074A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
user
rental
computer
program
Prior art date
Application number
PCT/GB2007/002387
Other languages
English (en)
Inventor
Phil Hames
John Thornewill
Original Assignee
The Business Software Centre Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The Business Software Centre Limited filed Critical The Business Software Centre Limited
Priority to EP07733380A priority Critical patent/EP2038829A1/fr
Publication of WO2008001074A1 publication Critical patent/WO2008001074A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Definitions

  • the present invention generally relates to a system and method to facilitate the rental of software for use on a user's computer.
  • An alternative model to providing software on a user's PC is the application service provider (ASP) model whereby applications are hosted at a server and the user can access the software and use it on a subscription or rental basis without having to have the software loaded on their computer.
  • ASP application service provider
  • the downside of this type of service is that a user must have access to a network in order to access the server.
  • a software rental system controlling the use of rented software on a computer comprises a control arrangement for storing access control parameters which are obtained and periodically updated from a server over a network according to user payment parameters at the server for each of a plurality of software programs.
  • the control arrangement interacts with each of the software programs to control each of the software programs in accordance with respective access control parameters.
  • each software program can be independently controlled in accordance with user payment parameters held at a server. This facilitates remote control of the capabilities of the software programs in accordance with user payment behaviour.
  • the periodic updating of the access control parameters facilitates periodic updating of the control of the software programs.
  • the access control parameters will indicate expiry of permission to use software.
  • Different software programs can be controlled separately without requiring a user to access different vendors or rental outlets.
  • the rental system offers access to an aggregation of software programs thereby simplifying aggregation of payment for the rental service.
  • the access control parameters can include an expiry date which is based on a most recent user payment for each of the computer programs.
  • Control means are adapted to detect when a current date has passed any expiry date and generate a warning to the user. If the current date is within a grace period of the expiry date, the warning can simply be a warning that the user needs to renew their rental, e.g. make additional rental payments. When the current date has passed a grace period, the warning to a user can warn them that the software program has been deactivated and the software program can accordingly be deactivated. A user will then be required to access the server to make additional rental payments in order to have the software program reactivated.
  • the software programs can be downloaded from the server in accordance with the user payment parameters.
  • the present invention is not limited to the automatic downloading of the selected programs, since the programs could be provided to the user by the means e.g. by a separate transmission from a separate provider, or on a physical medium such as a CD-ROM.
  • the automatic downloading of the software programs in accordance with the user payment parameters offers obvious advantages in that the provision and control of the software programs is brought together under the control of the server and the control means.
  • the system is able to automatically update versions of the software programs on the user's computer.
  • the most up to date versions of the software programs are stored at the server and made available to the user's computer.
  • Control means is adapted to detect the updated versions of the software programs at the server and to automatically download the updated versions.
  • a user interface is provided to allow a user to select to install the software programs downloaded by the control means onto the user's computer.
  • this interface can be used to allow a user to select a software program that they wish to run and if the software program is already installed, it will run. If the software program is not installed then it will automatically install and thereafter execute. In this way the user interface can be used by the user as an interface for access to their applications.
  • the user interface can provide means e.g. a link by which a user can access the server in order to for example modify the user payment parameters by for example selecting further software programs that they wish to rent, or modifying payment information.
  • the control means of the present invention can be provided either by software or a combination of software and hardware.
  • the control means can comprise a control module and interface code for interfacing to the software programs.
  • a control module can comprise hardware or software.
  • the hardware can comprise a device for attachment to the user's computer.
  • One such known device is termed a "dongle".
  • the interface code comprises interface codes specific to each software program.
  • each software program requires the rental service provider to provide interface code.
  • the interface code is preferably independent of the software program such that the suppliers of the software program need not be involved in the provision of the rental services since their co-operation in the modification of their code is not required.
  • An example of one type of interface code that can be used comprises code that executes in place of and before the software program.
  • the interface code comprises code for monitoring all of the software programs and for stopping or "killing" any of the software programs when the access control parameters indicate that a user does not have permission to use the software program. It is known in computer operating systems that the operation of programs can be monitored and controlled. The methodology of such a control depend upon the type of operating system. For example, in Microsoft Windows TM it is possible for code to operate as a system service that operates in the background and which can use standard operating system calls to monitor and "kill" software programs.
  • One embodiment of the present invention provides for the monitoring of the usage of the software programs and for storing usage data that is communicated to the server. At the server the usage data can then be stored and compared with the stored user data to compare the actual usage against the paid for rental service. This information can be used for rental service management e.g. to identify potential deviations from allowed use, and to enable the offering of modified rental services based on previous rental and usage behaviour.
  • a second aspect of the present invention provides a software rental system for allowing a user to rent software for use on a computer.
  • Selection means allow for the selection of a plurality of software programs for rental from a library of stored software programs.
  • a user can input payment information for the selected programs and this is stored as user payment parameters.
  • a system communicates with a user's computer to transmit the selected software programs and the user payment parameters to the user's computer for control of the selected software programs.
  • a control program for controlling the selected software programs on a user's computer depends on the user payment parameters being stored and transmitted to the user's computer the first time the user inputs the user payment information i.e. the time they initiate use of the software for rental service. The control program can then automatically install itself on the user's computer to set up the complete software rental system.
  • updated versions of the control program are stored and can be transmitted to the user's computer so that the user computer can be constantly updated with the latest version of the control program.
  • the present invention can be implemented in software on a general purpose computer, or partly in software and partly in dedicated hardware.
  • Software embodying the invention can be provided to a computer using any well known conventional carrier media such as, a transient medium, e.g. an optical signal, an electrical signal, a radio frequency signal, a magnetic signal, or an electromagnetic signal, or a carrier medium such as a hard disc, a floppy disc, CD-ROM, or solid state memory device.
  • a transient medium e.g. an optical signal, an electrical signal, a radio frequency signal, a magnetic signal, or an electromagnetic signal
  • a carrier medium such as a hard disc, a floppy disc, CD-ROM, or solid state memory device.
  • the system can be implemented on any form of computing apparatus including personal computers, personal digital assistance (PDAs), mobile telephones (e.g. Smart phones) or any other digital processing device.
  • PDAs personal digital assistance
  • mobile telephones e.g. Smart phones
  • any other digital processing device e.g. personal computers, personal digital assistance (PDAs), mobile telephones (e.g. Smart phones) or any other digital processing device.
  • the present invention involves implementation over a communications network.
  • a communications network can comprise any known communication network including the Internet, local area networks, wide area networks, WIFI networks, or any other wireless or wired networked system.
  • Figure 1 is a schematic diagram of a user's computer in accordance with one embodiment of the present invention
  • FIG. 2 is a schematic diagram of the content of the permissions file in accordance with an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of the content of the download folder in accordance with an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of the rental service server system in accordance with an embodiment of the present invention.
  • FIGS. 5a, 5b, 5c and 5d illustrate data tables stored in the database in the rental service server in accordance with an embodiment of the present invention
  • Figure 6 is a flow diagram illustrating the process for registration by a user to the rental service in accordance with an embodiment of the present invention
  • Figure 7 is a flow diagram illustrating the installation of the rental application and its operation in accordance with an embodiment of the present invention.
  • Figure 8 is a flow diagram illustrating the operation at the rental service server to allow a user to select additional software programs for rent in accordance with an embodiment of the present invention
  • Figure 9 is a flow diagram illustrating the operating of the interface module on the user's computer in accordance with an embodiment of the present invention.
  • Figure 10 is a flow diagram illustrating the operation of application interface code comprising stub code and DLL code in accordance with an embodiment of the present invention
  • Figure 11a and 1 Ib are flow diagrams illustrating operations at the rental service server in order to update user data and the permissions files based on user payment behaviour in accordance with an embodiment of the present invention
  • Figure 12 is a diagram illustrating an application interface code in accordance with a second embodiment of the present invention.
  • Figure 13 is a diagram illustrating yet another application interface code in accordance with a third embodiment of the present invention.
  • Figure 14 illustrates yet another application interface code in accordance with a fourth embodiment of the present invention.
  • FIG 15 illustrates a further application interface code in accordance with a fifth embodiment of the present invention.
  • An embodiment of the present invention will now be described with reference to Figures 1 to 11.
  • FIG 1 is a schematic diagram illustrating a user's computer 1 connected to the Internet 2.
  • the user's computer 1 is provided with a web browser 3 to enable a user to access the website of the rental service provider in order to subscribe to the rental service.
  • the user's computer 1 is shown as having three applications 4, 5, 6 installed therein. These applications can comprise software programs for performing any conventional function. They can for example comprise a word processing application, a database application, an email client application, a photo-editing application, or a spreadsheet application.
  • Each of the applications in this embodiment has an application interface code in the form of a stub code 4a, 5a, 6a associated therewith.
  • the stub code is incorporated within the executable file (i.e. the file with the file extension .exe). The structure and operation of the stub code will be described in more detail with reference to Figure 10.
  • a rental application 7 which comprises two components, a control module 8 and an interface module 9.
  • the control module 8 is connected to the Internet 2 and it controls the communications to and from the rental service server as will be described in more detail hereinafter.
  • the control module 8 includes a configuration file 10 that stores the unique serial number generated for the user's computer 1 by the rental service server. This will be described in more detail with reference to Figure 7.
  • the interface module 9 includes a graphical user interface menu 11 to enable the user to interact with the rental application in order to access and install the downloaded applications 4, 5, 6.
  • the interface module 9 also includes a decryption algorithm 12 required to decrypt information stored in the permissions file 13.
  • the permissions file 13 is connected to the interface module 9 and the control module 8 and stores information to control access to the applications 4, 5, 6 as will be described in more detail hereinafter with reference to Figure 2.
  • a download folder 14 is provided to store downloaded applications in the form of application installers for the installation of the applications on the user's computer 1.
  • the download folder 14 is connected to the control module 8 so that the control module 8 can control the downloading of the applications as well as the interface module 9, since the interface module 9 allows a user access to select the available applications in the download folder via the GUI menu 11.
  • An application usage file 15 is provided on the user's computer 1 to store data on the usage made by the user of the applications 4, 5, 6.
  • the application usage file 15 is connected to the interface module 9 and the control module 10 so that the interface module 9 can monitor the use of the applications 4, 5, 6 and the control module 8 can transmit the usage data over the Internet 2 to the rental service server.
  • DLL code 16 is provided and connected to the stub code 4a, the permissions file 13 and the control module 8.
  • the DLL code 16 is provided to co-operate with the stub code 4a in order to control operation of the application 4.
  • Figure 2 illustrates the content of the permissions file 13.
  • the permissions file 13 stores three encrypted license keys.
  • Each license key contains the name of the application, the route path of the application i.e. the location of the application on the user's computer 1, whether or not use is allowed of the application, and an expiry date for the application.
  • the expiry date is taken as the date in which the current payment period will expire i.e. the due date for the next billing activity.
  • FIG. 3 schematically illustrates the content of the download folder.
  • the download folder contains install applications for installing each of the applications 4, 5, 6.
  • FIG 4 is a schematic diagram of the rental service server 20 connected to the Internet 2.
  • the rental service server 20 includes an IIS web server 21 connected to the Internet 2 to provide a web front end to enable a user to access the server website.
  • the IIS web server 21 accesses a static web data store 22 to obtain static web pages.
  • Connected to the IIS web server 21 is an application server 23 generating dynamic web pages to be served by the IIS web server 21, and for communicating with the user's computer 1 via the IIS web server 21.
  • a database server 24 is connected to the application server 23 and a database 25. The content of the database 25 is described in more detail hereinafter with reference to Figures 5a, 5b, 5c, 5d.
  • a file store 26 is provided connected to the application server 23 in order to store the files and applications required by users.
  • a file store 26 stores the rental application code as an installer so that the control module 8 and the interface module 9 can be installed separately if required so that when new versions of these are available they can be separately downloaded to the user's computer to update the way the user's computer interfaces to the rental service server 20.
  • the file store 26 also includes the DLL code for download to the user's computer.
  • the user's folders are provided in which are stored files that are specific to each user.
  • the files comprise permissions files and download folders.
  • the download folders contain the application installers to install the application required by the user.
  • the database 25 contains a set of data termed user data that comprises a unique user ID, a user name, the user's contact details, the user's log-on details, the user's payment details, a unique serial number for the user, a unique identification number for the user's computer, usage information indicating the number of simultaneous connections permitted for the user, license keys for software use by the user's computer, an identification for user's folder i.e. an indication of where the user's specific folder is in the file store 26, and an applications ID holding specific information on the applications indicating whether for each application a user is allowed to use the application and the particular expiry date for that application. The expiry date will be based upon the payment details.
  • Figure 5b illustrates a set of data termed application data. This is data specific to each application and comprises a unique application ID, the name of the application and the location of the application on the server.
  • Figure 5c illustrates activity data that comprises all forms of data stored indicating user activity. This includes payment activity that includes the unique user ID, an application ID 5 and 12 monthly entries indicating payment activity dates. Also stored is log-in and log-out activity data.
  • Figure 5d illustrates the agents' subscriber data for agents operating on behalf of many users.
  • the data comprises a unique agent ID, the name of the ID, contact details, the log-on details, and payment details.
  • FIG. 6 is a flow diagram illustrating the process whereby a user registers for the rental service and receives the applications and files necessary for utilisation of the service.
  • a user has accessed the website of the server and entered their registration data including their name, address, payment details and log-on data.
  • a credit check is performed to ensure that the user is credit worthy.
  • a user account is then created in the database 25 (step S3) and a user can then proceed to make selections of the core applications that they wish to rent from the library of available applications (step S4).
  • the application server 23 can then record subscription activity and billing activity in the database 25 (step S5) in order to record the fact that the user subscribed at a particular date and that billing payments are due at particular dates. These dates will form a basis for setting the expiry dates to be used to control the applications by the control module.
  • the application server 23 then creates and stores the permissions file for the user with multiple application keys linked to the user for the core applications as illustrated in Figure 2 (step S6).
  • the application server then creates the download folder in the file store 26 and adds the installer applications for the core applications (step S 7).
  • the application server 23 then proceeds to download the rental application installer, the permissions file and the core applications installed in the download folders to the user's computer over the Internet 2 (step S 6).
  • Figure 7 is a flow diagram illustrating the operation of the user's computer and the server in the installation and operation of the rental application 7 downloaded from the rental service server 20.
  • step SlO the rental application installer code is run to install the rental application 7 on the user's computer 1.
  • This installs the interface module 9, the control module 8, the download folder 14, and the permissions folder 13 and puts the core downloaded applications in the download folder 14 as installation files.
  • step SI l the control module 8 will automatically run in the background as an operating system service
  • step S 13 the control module reads a unique number from the hardware of the user's computer 1. This can comprise the serial number of any hardware components such as the hard disk, network cards etc.
  • step S 14 The server receives this (step S 15) and checks to determine how many connections the user already has to the server (step S 16). It is possible for a user to be allowed more than one connection to the server since a user could be a company with many users. This check is made against the data held in the database for the user and if it is determined that the number of connections allowed has been exceeded (step S 17), access is blocked (step S 18).
  • step S 17 If access is allowed (step S 17), a unique serial number is calculated for the user's computer and this is sent to the user's computer 1 (step S 19).
  • the control module 8 in the user's computer 1 stores the unique serial number in the configuration file 10 (step S20).
  • the control module 8 is now operative and will periodically, e.g. every hour or every 24 hours, monitor the files (step S21) and compare them with the files at the server (step S22).
  • the files comprise the files in the download folder 14, the permissions file 13, the DLL code file, and even the control module file and the interface module file so that updated code for these can be obtained and installed. If there is no difference in the date and time of creation of the files (step S23), the serial number, PC ID and usage data is transmitted to the server (step S24) and the monitoring process waits for the next monitoring period (step S25).
  • the serial number and PC ID is authenticated (step S31) and if it is not authenticated (step S32), the uploaded usage data is ignored (step S33). If it is authenticated, the usage data is stored in the database for the user (step S34).
  • the control module 8 sends the serial number, PC ID and the usage data to the server (step S26) with a request for updated files.
  • the server authenticates the serial number and PC ID (step S27) and if they are not authenticated (step S28) access is blocked (step S 18). If the serial number and PC ID are authenticated (step S28) the application server 23 encrypts the permissions file for security using the PC ID and sends the encrypted file together with the new and updated files to the user's computer 1 (step S29). These files are received and stored by the control module 8 in the user's computer (step S30). The process then returns to step S25 to wait until the next monitoring period occurs.
  • control module 8 keeps the files and applications on the user's computer 1 synchronised with those at the server 20 and thus in accordance with the rental requirements of the user.
  • Figure 8 is a flow diagram illustrating the process for a user to select to rent and download further applications.
  • a user can log onto a web site hosted by the web server 21 where they can enter logon data to access the rental service (step S40).
  • a user can then select new applications for rental from a displayed library of applications (step S41).
  • the selection of the applications can automatically generate billing requirements. These can be confirmed as accepted by the user and then the application server 23 generates subscription activity indicative of the users activities in subscribing to the rental service, and billing activities that comprise 12 monthly billing activities indicative of payment points at which a user's monthly payment is due (step S42).
  • the application server 23 adds the file name for the installer applications for the selected applications to the user's download folder on the server 20 (step S43) so that at the next synchronisation by the control module 8, the applications will be downloaded. Also, a new permissions file for the user is generated with the new data for the application as illustrated in figure 2 (step S44).
  • FIG 9 is a flow diagram illustrating the operation of the interface module 8.
  • the interface module 8 is an application that can appear as an icon on a user's desktop for example in Microsoft Windows TM.
  • a user can select to open the interface module 9 (step S50) whereupon the interface module 8 uses the decryption algorithm 12 to decrypt the keys in the permissions file 13 using the PC ID to obtain a list of the applications available to the user under the rental service (step S51).
  • a menu listing the available applications is displayed (step S 52).
  • a user can select to run an application from this menu (step S53), whereupon the interface module 8 looks at the operating system registry to determine if the application is installed (step S54).
  • the registry keeps track of all installed applications and thus the interface module 9 can use this to identify which applications have been installed. If an application has been installed (step S55) the user selection of the application simply enables the application to be executed (step S56). If it is determined that the application is not installed (step S 55), the interface module 8 looks in the download folder 14 to determine whether the installer file for the application is present (step S57). If the installer application is present (step S58) then the installer application is run to install the application on the user's computer 1 (step S59). If the installer application is not present in the download folder (step S58), the interface module displays a message to the user saying that the download is still in progress (step S60). In this instance, the user has paid for and has permission to access the application, but since the installer application is not yet available in the download folder, the control module and the server have not yet completed synchronisation of the files and hence the installer application download has not yet been completed.
  • the interface module 9 acts as a simple user interface to allow user access to the applications for which they have subscribed.
  • the user interface 9 can be used as a means by which to install rented applications, and a means by which such applications can be executed. Since the applications are installed on the user's computer 1 in the usual manner with a minor modification in order to monitor and control the activation of the applications, as will be described in more detail hereinafter, a user can additionally execute the applications by the usual means e.g. by selection of an icon on Microsoft Windows TM desktop.
  • the interface module is not an essential feature of the invention since it is possible for the applications to be installed by other means. For example, when the user comprises a single user in a company, the IT department of that company may well perform the installation process on behalf of the user and thus the interface module is not required.
  • the interface module 9 in this embodiment can also perform the function of monitoring usage of the applications. Part of the information downloaded from the server as configuration data for each application is details of what the application process is called when it is running.
  • the method by which usage of the applications can be monitored involves standard operating system functions to track operation of the applications by regularly e.g. every 30-60 seconds) polling the operating system's running process list.
  • a log file can be created containing the start and stop notifications and this is stored in the application usage file 15 for upload to the server.
  • custom code can be injected into executable files such as Win 32 portable executable (PE) files (.exe files).
  • PE portable executable
  • the process of injection involves the creation of a new section within the PE file.
  • the customer assembly code is injected into this new section and the PE data about pointers and size flags are changed.
  • the entry point of the executable is modified to start at the newly injected code in the new PE section (stub code 4a).
  • the original entry point of the program is stored and the stub code will jump back to the original entry point if successful execution of the DLL code 16 is completed.
  • the file size of the executable is thus increased slightly.
  • the stub code and the DLL code will now be described with reference to Figure 10.
  • the header points to the stub code (step S70) which then loads the DLL into memory.
  • the DLL file comprises a dynamic link library file written in assembler that executes functions within it. DLL files are commonly used by applications, as is well known in the art.
  • the DLL checks that the control module 8 is currently running (step S72). If the control module 8 is not currently running (step S73) an alert is displayed to the user that the control module must be running in order to access the rented application (step S 74). The execution of the application 4 will then immediately exit (step S75).
  • step S53 the DLL locates and reads the permissions file 13 which contains information regarding the usage of the application allowed by the user's computer as illustrated in Figure 2 (step S76).
  • the permissions file 13 indicates whether usage of the application is allowed or disallowed. If usage is not allowed (step S77) an alert is displayed to the user stating that the user does not have permission to access the application (step S78) and the application immediately terminates (step S75).
  • step S77 If the permissions file 13 indicates that usage of the application is allowed (step S77), the DLL then checks the expiry date in the permissions file 13 to determine whether usage of the application has expired (step S79). If the expiry date has not passed (step S 80) the DLL 16 exits thereby returning control back to the stub code 4a. The stub code then passes control back to the original entry point of the application allowing the application 4 to function as normal (step S84).
  • step S80 it is then determined whether the current date is within a grace period e.g. seven days (step S81). If the current date is within the grace period (step S81) an alert is displayed to the user that their license for the software is about to expire and the user must reconnect their computer to the network in order to update their permissions (step S83). The process then returns to step S84 whereby the DLL exits.
  • the purpose of the alert displayed to the user is to allow the user to work offline although their permissions file may become out of date. The user need only connect in order to update their permissions file and update the expiry date when the alert notification is displayed.
  • the activity date will contain 12 payment points and hence there are 12 potential expiry dates dependent upon whether payment is made or not.
  • a user uses a computer offline over a period where payment is made and thus a new expiry date is entered into the permissions file, when the out of date expiry date on the user's computer is passed, a user will be warned to reconnect to the network to resynchronise their permissions file.
  • the user has not made a payment, there will be no ⁇ synchronisation of the permissions file. It is of course up to the user to ensure that payments for rental of their applications is made.
  • step S81 If the current date is outside the grace period (step S81) an alert is displayed to the user to inform the user that they must reconnect their computer to the network in order to reactivate the application (step S 82) and execution of the DLL is terminated without passing control back to the stub code. Thus execution of the application is prevented (step S75).
  • a setup wrapper when the applications 4, 5, 6 are installed on the user's computer 1 by the interface module 9, when the vendor's original setup program has completed, a setup wrapper then runs to replace the vendor's original executed file with the modified application file containing the stub code.
  • This the applications installed in the download folder contains the vendor's application plus a setup wrapper for the replacement of the original executable with the modified executable.
  • step S90 When billing events are triggered i.e. at payment due dates indicated in the activity data illustrated in Figure 5c (step S90) the server will generate billing reports (step S91).
  • step S92 user data in the database is updated to update the authorised use status and to set new expiry dates in the user data illustrated in Figure 5a (step S93).
  • step S93 the data in the database 25 is updated periodically in accordance with billing events.
  • Figure lib illustrates the process for updating the permissions files at the server.
  • a list of users with updated data is identified (step S95) and the new permissions files are generated for the identified users with content encrypted using the PC ID for the user (step S96).
  • the stub code and DLL code of the first embodiment of the present invention is replaced.
  • the permissions file 51 and the control module 61 are similar to the first embodiment.
  • the executable application 50 comprises a new application.
  • the original application app.exe is renamed during installation as app.rfl .
  • the original executable code is disguised so that the average user is unlikely to be able to identify it and run it without permission.
  • the file app.exe 50 illustrated in Figure 12 is a new code component written to control access to the original application.
  • the stub code and the DLL code of the first embodiment of the present invention is replaced with stub code 62 injected into a DLL file 61 referenced by the application 60.
  • the control module 63 and the permissions file 64 are the same as that described with reference to the first embodiment.
  • the only difference between the first embodiment and this embodiment is the replacement of the DLL code 16 and stub code 4a with the stub code 62.
  • the application app.exe 60 includes an external DLL 61 required for execution of the application.
  • the stub code 62 when the stub code 62 is injected into the DLL code 61, the address mappings in the DLL are re-written so that specific application calls are redirected through the stub code 62.
  • the application 60 calls the DLL, the calls are' routed to the stub code 62 rather than the DLL 61.
  • the stub code 62 then performs the check on the control module 63 and the content of the permissions file 64 as previously described with reference to the first embodiment. If execution of the application is permitted, the stub code 62 passes the call back into the existing DLL 61 for normal execution of the application.
  • control module 71 performs all the control and access functions performed by a control module 8 and a DLL code 16 and the stub code 4a of the first embodiment of the present invention.
  • the control module 71 checks the permissions file 72 to determine whether a user is authorised to access applications and whether use has expired.
  • the control module 71 comprises an executable file which can be hidden on the user's computer by giving it a spurious name such as PrtDrv.exe so as to hide its true purpose.
  • the control module is created as a system service in the Microsoft Windows TM operating system. Such a service operates in the background in the operating system.
  • Control module 71 monitors the list of currently running applications, which is available via the operating system, and checks the permissions file 72 to determine if use is authorised. If the control module 71 detects that an authorised application is operating, it kills it using standard operating system calls.
  • control module all the functionality of the control module is included in a single system service.
  • Figure 15 illustrates a fifth embodiment to the present invention similar to the fourth embodiment of the present invention.
  • the control module 82 operates as a system service performing the functions as described with reference to the first embodiment to the present invention.
  • An application controller 81 comprises a system service performing the functions of the DLL code 16 and stub code 4a of the first embodiment of the present invention.
  • the application controller 81 runs in the background and will monitor the list of currently running applications 80 to 84. It will check to determine that the control module 82 is present and that the application is a permitted application in accordance with the date stored in the permissions file 83. If the application controller 81 detects an unauthorised application it kills it using standard operating system calls. Additionally if it detects that the control module 82 is not running, it can kill any applications that are running which are identified as rental applications. In order to do this, the application controller 81 can be provided with a list of rental applications.
  • control of access in all of the embodiments has been described with reference to a permissions file
  • data parameters indicative of allowed use of applications can be stored as part of controlling code, or in any data location.
  • Downloaded applications are described in the embodiments as being stored in a download folder.
  • the present invention is not limited to the downloading of the software and a separate method can be provided in alternative embodiments for the installation of software which can be obtained by other means.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

La présente invention concerne un système de location de logiciels qui permet de commander l'utilisation de logiciels loués sur l'ordinateur d'un utilisateur. Un module de commande, placé sur l'ordinateur de l'utilisateur, utilise les paramètres de commande d'accès stockés obtenus du serveur sur un réseau pour commander les logiciels. Les paramètres de commande d'accès sont obtenus et régulièrement mis à jour à partir du serveur.
PCT/GB2007/002387 2006-06-28 2007-06-26 Système et procédé de location de logiciels WO2008001074A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP07733380A EP2038829A1 (fr) 2006-06-28 2007-06-26 Système et procédé de location de logiciels

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0612840.9 2006-06-28
GB0612840A GB2439573A (en) 2006-06-28 2006-06-28 Software rental system

Publications (1)

Publication Number Publication Date
WO2008001074A1 true WO2008001074A1 (fr) 2008-01-03

Family

ID=36888244

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2007/002387 WO2008001074A1 (fr) 2006-06-28 2007-06-26 Système et procédé de location de logiciels

Country Status (3)

Country Link
EP (1) EP2038829A1 (fr)
GB (1) GB2439573A (fr)
WO (1) WO2008001074A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152771B2 (en) * 2011-05-31 2015-10-06 Qualcomm Incorporated Apparatus and method of managing a licensable item

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997030575A2 (fr) * 1996-02-26 1997-08-28 Network Engineering Technologies Systeme automatise de gestion de logiciel sous licence
US6049789A (en) * 1998-06-24 2000-04-11 Mentor Graphics Corporation Software pay per use licensing system
EP1178385A2 (fr) * 2000-08-03 2002-02-06 Knowledge Modeling Institute Inc. Procédé et appareil de gestion de licences

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE143511T1 (de) * 1989-04-28 1996-10-15 Softel Inc Verfahren und vorrichtung zur fernsteuerung und - überwachung der anwendung von rechnerprogrammen
AUPO123196A0 (en) * 1996-07-24 1996-08-15 Irgurus Pty Ltd A method and apparatus for enabling the operation of software
US20040117664A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Apparatus for establishing a connectivity platform for digital rights management
JP2001236400A (ja) * 2000-02-23 2001-08-31 Yozan Inc レンタル機及び記録媒体
US7546252B2 (en) * 2000-04-28 2009-06-09 Netflix, Inc. Approach for managing rental items across a plurality of distribution locations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997030575A2 (fr) * 1996-02-26 1997-08-28 Network Engineering Technologies Systeme automatise de gestion de logiciel sous licence
US6049789A (en) * 1998-06-24 2000-04-11 Mentor Graphics Corporation Software pay per use licensing system
EP1178385A2 (fr) * 2000-08-03 2002-02-06 Knowledge Modeling Institute Inc. Procédé et appareil de gestion de licences

Also Published As

Publication number Publication date
EP2038829A1 (fr) 2009-03-25
GB2439573A (en) 2008-01-02
GB0612840D0 (en) 2006-08-09

Similar Documents

Publication Publication Date Title
US20080004886A1 (en) Software rental system and method
EP4093075A1 (fr) Système et procédés de stockage, de récupération, de gestion et de surveillance, d'augmentation et de surveillance d'applications sur des appareils
EP2095254B1 (fr) Rendre inutilisable et verrouiller un dispositif par voie aérienne
CN103890726B (zh) 应用程序安装系统
CA2670841C (fr) Transfert par programme d'applications entre des combines en se basant sur des informations de licence
US8458300B2 (en) Method and system to manage services for multiple managed computer systems
KR100943553B1 (ko) 상주 애플리케이션들을 활성화하기 위한 방법, 소프트웨어및 장치
CA2709437C (fr) Outil de personnalisation d'images de systeme
US20110145932A1 (en) System and Method for Remote Management of Applications Downloaded to a Personal Portable Wireless Appliance
EP2095256A1 (fr) Battements de coeur commandés par serveur
US11503080B2 (en) Remote management of a user device
US20090094044A1 (en) System, method and computer-readable medium for configuring a computer via a network to generate a personalized user experience
WO2008001074A1 (fr) Système et procédé de location de logiciels
US10158531B2 (en) Leveraging and extending mobile operating system MDM protocol
US9544398B2 (en) System and methods to store, retrieve, manage, augment and monitor applications on appliances

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07733380

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007733380

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: RU

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载