WO2000055740A1 - Software distribution, execution and upgrading - Google Patents

Software distribution, execution and upgrading Download PDF

Info

Publication number
WO2000055740A1
WO2000055740A1 PCT/SG1999/000037 SG9900037W WO0055740A1 WO 2000055740 A1 WO2000055740 A1 WO 2000055740A1 SG 9900037 W SG9900037 W SG 9900037W WO 0055740 A1 WO0055740 A1 WO 0055740A1
Authority
WO
WIPO (PCT)
Prior art keywords
files
software
user
computer
file
Prior art date
Application number
PCT/SG1999/000037
Other languages
French (fr)
Other versions
WO2000055740A8 (en
Inventor
Sridharan Rangarajan
Feng Lin
Hwee Hwa Pang
Original Assignee
Kent Ridge Digital Labs
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 Kent Ridge Digital Labs filed Critical Kent Ridge Digital Labs
Priority to EP99919739A priority Critical patent/EP1163592A1/en
Priority to PCT/SG1999/000037 priority patent/WO2000055740A1/en
Priority to SG9903604A priority patent/SG104254A1/en
Priority to US09/478,716 priority patent/US6629143B1/en
Priority to US09/525,590 priority patent/US6804718B1/en
Publication of WO2000055740A1 publication Critical patent/WO2000055740A1/en
Publication of WO2000055740A8 publication Critical patent/WO2000055740A8/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Definitions

  • SOFTWARE DISTRIBUTION, EXECUTION AND UPGRADING This invention relates to methods for distribution, execution and upgrading of software. It relates particularly but not exclusively to methods for executing and distributing software over a communication network such as a local area network, a wide area network, a virtual private network, or the Internet.
  • Most current application software consists of a large number of different files. Such software is typically distributed on one or more CD-ROMs.
  • the software is installed on a user's computer by running a set-up or installation program, which writes different files to different directories or folders on storage media (such as a hard disk) on the user's computer.
  • the software application When the software application is executed, it makes file requests to the various different files as they are needed.
  • the file requests are typically made to a particular file directory location on the user's computer, and the software may cease to operate properly if a file is not found in the expected location.
  • the file requests are made to a CD-ROM drive on the user's computer, and the software may cease to operate properly if the correct CD-ROM is not present in the drive.
  • Disadvantages of software distribution using CD-ROMs or other physical distribution media include the costs of creating the CD-ROMs, the effort and expense involved in creating printed manuals and packaging, and the time delays and transportation logistics involved in physically delivering the media to the user.
  • Different users have different configurations of computers and different requirements for software functionality. Accordingly, different users require slightly different (sometimes significantly different) versions of the same software, and in order to achieve this the software manufacturer typically includes ail possible variations on the distribution media, with the user selecting the applicable components during installation. From the user's point of view, there is the inconvenience of receiving more materials than may be required. Typically, a user never finds a use for all of the software which is received, and the functionality of the software far exceeds what is required.
  • CD-ROMs After a while, superseded CD-ROMs take up useful space.
  • the user may have to pay for and install the whole of a software package when all that was required was a small part of it, and the user may have preferred to pay a lesser amount for software which takes up less data storage space on the user's computer.
  • a user who uses the software only occasionally has to pay the same amount as a person who uses the software frequently.
  • this method of delivery of software includes many of the disadvantages of conventional physical delivery. It is still usually necessary for the user to download more files than are actually required for the user's particular configuration, and this can be problematic in view of the time costs typically associated with connecting to the Internet. There is no means for charging the user only for the parts of the software which are actually useful to the user, or for charging the user on the basis of the frequency with which the software is used. Moreover, once a complete archive of the relevant software has been downloaded by the user, it is relatively easy for the user to make and distribute unauthorised copies, so piracy issues arise.
  • a further problem associated with conventional software distribution methods relates to the manner in which the user decides whether the software is suitable for the user's purposes. It is typically very difficult for a user to decide whether software is suitable merely from reading advertising material, and the suitability can in many cases only be verified some time after the user has purchased the software and gone through the effort necessary to learn how to use it. This can result in a user purchasing unsuitable software.
  • One answer to this problem is provided by cut-down "demonstration" versions of the software which may be distributed at low cost or free of charge via physical media (such as on CD-ROMs sold with computer magazines) or over the Internet.
  • a typical local area network involves a number of client computers connected to one or more file servers.
  • Networking software located on a client computer and the file server enables the client computer to gain access to files on the file server as if the files were located on a disk drive on the client computer. From the client computer's point of view, the file server simply appears to be one or more additional file volumes on the client computer.
  • each computer can be configured to allow the other computers in the network to have access to part or all of its disk volumes.
  • An advantage of client-server networking and peer-to-peer networking is that it is not necessary for each computer in the network to have a complete copy of all the files of the software application; shared files need only be present on one computer. Accordingly, computer storage media space is not wasted, and upgrading can be a simpler process.
  • this type of networking can typically only be achieved within an organisation which has the same networking software on all computers. Efficiencies can be gained in distributing software within an organisation, but not between organisations or to individuals which are not part of the organisation.
  • US Patent 5,752,005 describes a foreign file system establishing method which uses a native file system virtual device driver.
  • a computer has a native file system which provides various native function routines.
  • a virtual driver communicates with the native file system and intercepts some of the function routines, transferring them to a particular location on another (“foreign") computer. This allows the computer to gain some of the advantages of client-server networking, but it is necessary for the device driver to emulate the foreign file system.
  • An object of the present invention is to provide new methods of distributing, executing and upgrading software which overcome some or all of the difficulties described above.
  • a method of distributing software over a communication network including the steps of: (a) making the software available on a file server attached to the network;
  • the communication network may be any suitable form of communication network. Suitable communication networks include the Internet, a local area network, a wide area network, and a virtual private network. It is currently envisaged that the invention will be used most extensively in the context of distribution of software over the Internet. It will be seen that one of the advantages of this aspect of the invention is that a user downloads only the files which are required by the user.
  • the file server may be any suitable type of file server. Suitable types of file servers, with particular reference to Internet applications, include an FTP server, and HTTP server and a Gopher server.
  • the method of this aspect of the invention may further include the steps of: (h) monitoring the number of times that files are requested and/or the particular files requested by the user's computer from the server; and (i) requiring the owner of the user's computer to make payments based on the number of times that files are requested and/or the particular files requested.
  • the software may optionally require that a key be entered.
  • One of the advantages of the first aspect of the invention is that it can allow distribution of currently available software without any modification of the file requests made by that software. This is because file requests are intercepted. If the file is already on the user's computer, the file request is directed to that file. If the file is not on the user's computer, the file is downloaded from the file server and then accessed on the user's computer.
  • Currently available software might make numerous file requests to the local CD-ROM drive, because the software has been programmed with the assumption that the software is being installed from a local CD-ROM. All of these requests are monitored and converted into file download requests directed to the file server or redirected to downloaded files located on the user's computer.
  • a method of executing computer application software on a user's computer which is connected to a communication network including the steps of: (a) providing on the user's computer a version of the software which does not include all the files necessary for complete operation of the software;
  • the communication network and the file server may have the same features as described above in relation to the first aspect of the invention.
  • the step of deleting one or more of the downloaded files may be done at any suitable time, including:
  • the method of this aspect of the invention may further include the steps of: (i) monitoring the number of times that files are requested and/or the particular files requested by the user's computer from the server; and (j) requiring the owner of the user's computer to make payments based on the number of times that files are requested and/or the particular files requested.
  • this method requires the user's computer to make contact with the file server at regular intervals in order to replace deleted files, and this facilitates the pay-per-use type of charging.
  • This method is also useful for overcoming the purchasing barrier - allowing users to try the actual software first before buying it. There is no need for the software to be a cut-down version.
  • a method of automatically upgrading software on a user's computer over a communication network including the steps of:
  • the communication network and the file server may have the same features as described above in relation to the first aspect of the invention.
  • the step of ascertaining that the software on the user's computer is an older version than the upgrade software may occur at any suitable time, including: (i) each time the software on the user's computer is executed;
  • an upgrade agent may be downloaded from the file server to the user's computer.
  • the upgrade agent performs the function of monitoring file requests made by the software to identify file requests which relate to files which have been upgraded in the upgrade software.
  • FIG. 1 is a block diagram showing schematically the software components in a conventional networking system.
  • Figure 2 is a block diagram showing schematically the software components in a networking system according to the present invention.
  • Figure 3 is a schematic diagram of the components in a preferred embodiment of the present invention.
  • FIG. 1 there is shown the components in conventional directory mounting/mapping products such as NFS, SMB and NetWare.
  • application software runs on top of an operating system.
  • the application software communicates with the operating system through various application program interfaces (APIs). Included within the operating system are a native file system, which includes a multiplicity of function routines, and network drivers.
  • the operating system also includes a file system and network drivers.
  • This request then passes to the network driver on the host machine, which passes the request to the network driver on the remote machine, which in turn passes it to the file system on the remote machine to access the file.
  • the response is sent back through the same communication chain.
  • the native file system invokes special drivers called network redirectors, which co-operate with their counterparts on the remote machine to make the directories and files visible to the native file system.
  • the present invention enables software to be installed and run on a host machine, without requiring the underlying files to be physically available on any of the local storage drives. Instead, every file request from the software is trapped by an installable monitor, which dynamically downloads the target file from a remote file server to a local storage medium if the file has not already been downloaded. The installable monitor thereafter directs the native file system to operate on the downloaded file in order to satisfy the file request. Even requests for a file at an absolute path on a specific drive (e.g. the CD-ROM drive) are redirected to the downloaded file, which is likely to reside at a different path on a different drive. The downloaded file can optionally be removed when the software closes the file, or when the software terminates. Consequently, a host machine can run application software without having a physical medium containing all the underlying files.
  • an installable monitor dynamically downloads the target file from a remote file server to a local storage medium if the file has not already been downloaded.
  • the installable monitor thereafter directs the native file system
  • the file server is a standard FTP server using the FTP communication protocol.
  • the communication network is the Internet.
  • the user's computer has Windows 95 as its operating system
  • the FTP server has Solaris as its operating system.
  • Windows 95 as its operating system
  • Solaris as its operating system.
  • the installable monitor on the user's computer has two components: a virtual device driver (VxD) inside the operating system kernel, and a Windows application at the user level, which includes an FTP client (the user mode application).
  • VxD virtual device driver
  • the VxD is implemented in such a way that it layers itself on top of the native file system. It is implemented as a hook that gets installed below the installable file system (IFS) manager interface.
  • IFS installable file system
  • a hook is a programming device that alters program flow away from its original intent. Consequently, for selected program flow threads progressing through the IFS manager interface, program flow is routed to the VxD rather than to the native file system as originally intended. The VxD is then free to either satisfy the request and return program flow back to the requesting thread or modify the request before directing it to the native file system.
  • the native file system may include function routines directed towards file rights, file locking, file transaction tracking and the like. These are of little importance to the installable monitor of the invention, and hence hooks are omitted for such functions.
  • the selected functions for which hooks are implemented in the preferred embodiment are indicated in the following table:
  • hooking may be implemented any number of different ways, as will be known to those skilled in the art.
  • published information describing the operating system may indicate the definition of the IFS manager interface for various function routines supported by the native file system. To the extent that published information is lacking, hook locations may be determined empirically.
  • the VxD blocks the execution of the request inside the kernel, determines the path name of the request issued by the CD application and translates it into the equivalent remote path name on the CD drive attached to the file server. This remote path name is then passed back to the user mode application using known event notification mechanisms.
  • the user mode application then translates the request into an FTP request and forwards it to the FTP server.
  • the user mode application waits for a response from the FTP server and, once the file has been downloaded onto the user's machine, it saves the file to another location on the user's machine's local storage media. Confirmation of the download is passed to the VxD, together with the location of the local copy of the file.
  • the VxD redirects the native file system to satisfy the request made by the application using the local copy, and the application continues as normal.
  • the application itself is unaware that its files and data are being accessed on-line rather than on a local CD-ROM. After the application finishes execution, or closes the file, or after a pre-determined number of uses or after a pre-determined number of days, (these options may be configurable) one or more or all of the downloaded files are deleted from the user's machine.
  • Typical applications for this embodiment include games traditionally distributed via CD-ROM disks.
  • the start-up program corresponds to the game application that is launched on the user's machine.
  • these applications store their data in the form of movie files on the CD-ROM disk. These are downloaded on demand by the installable monitor on the user's computer, while the user continues to play the game.

Abstract

A method of distributing software over a communication network includes the steps of: making the software available on a file server attached to the network; providing and executing an installation application on a user's computer attached to the network; monitoring file requests made by the installation application; identifying file requests which relate to files which are not present on the user's computer; downloading the identified files from the file server; storing the downloaded files in storage media on the user's computer; and directing the file requests for the identified files, and any future file requests for those files, to the downloaded versions of those files. Similar methods are provided for executing software over a network and upgrading software over a network.

Description

SOFTWARE DISTRIBUTION, EXECUTION AND UPGRADING This invention relates to methods for distribution, execution and upgrading of software. It relates particularly but not exclusively to methods for executing and distributing software over a communication network such as a local area network, a wide area network, a virtual private network, or the Internet.
Most current application software consists of a large number of different files. Such software is typically distributed on one or more CD-ROMs. The software is installed on a user's computer by running a set-up or installation program, which writes different files to different directories or folders on storage media (such as a hard disk) on the user's computer. When the software application is executed, it makes file requests to the various different files as they are needed. The file requests are typically made to a particular file directory location on the user's computer, and the software may cease to operate properly if a file is not found in the expected location. For some software, the file requests are made to a CD-ROM drive on the user's computer, and the software may cease to operate properly if the correct CD-ROM is not present in the drive.
Disadvantages of software distribution using CD-ROMs or other physical distribution media include the costs of creating the CD-ROMs, the effort and expense involved in creating printed manuals and packaging, and the time delays and transportation logistics involved in physically delivering the media to the user. Different users have different configurations of computers and different requirements for software functionality. Accordingly, different users require slightly different (sometimes significantly different) versions of the same software, and in order to achieve this the software manufacturer typically includes ail possible variations on the distribution media, with the user selecting the applicable components during installation. From the user's point of view, there is the inconvenience of receiving more materials than may be required. Typically, a user never finds a use for all of the software which is received, and the functionality of the software far exceeds what is required. After a while, superseded CD-ROMs take up useful space. The user may have to pay for and install the whole of a software package when all that was required was a small part of it, and the user may have preferred to pay a lesser amount for software which takes up less data storage space on the user's computer. Moreover, a user who uses the software only occasionally has to pay the same amount as a person who uses the software frequently.
It is becoming increasingly common to distribute software over the Internet. This is typically done by collecting all the files for a software application together into a compressed archive, making the archive available on an FTP or Web server on the Internet, and downloading the archive from the FTP or Web server onto the user's computer. The user then runs an installation program which decompresses the archive to extract the files, and then writes different files to different directories on the hard disk of the user's computer in much the same way as the installation program on a CD-ROM operates.
Apart from the issues of wastage and delivery of physical media, this method of delivery of software includes many of the disadvantages of conventional physical delivery. It is still usually necessary for the user to download more files than are actually required for the user's particular configuration, and this can be problematic in view of the time costs typically associated with connecting to the Internet. There is no means for charging the user only for the parts of the software which are actually useful to the user, or for charging the user on the basis of the frequency with which the software is used. Moreover, once a complete archive of the relevant software has been downloaded by the user, it is relatively easy for the user to make and distribute unauthorised copies, so piracy issues arise.
A further problem associated with conventional software distribution methods relates to the manner in which the user decides whether the software is suitable for the user's purposes. It is typically very difficult for a user to decide whether software is suitable merely from reading advertising material, and the suitability can in many cases only be verified some time after the user has purchased the software and gone through the effort necessary to learn how to use it. This can result in a user purchasing unsuitable software. One answer to this problem is provided by cut-down "demonstration" versions of the software which may be distributed at low cost or free of charge via physical media (such as on CD-ROMs sold with computer magazines) or over the Internet. However, because it is usually necessary for a user to invest a significant amount of time in installation and learning how to use a new software application, there is often a reluctance to spend the time necessary to install and learn how to use a cut-down software product which will never in itself be useful. Another type of software distribution is involved in client-server networking, typically in the context of local area networks. A typical local area network involves a number of client computers connected to one or more file servers. Networking software located on a client computer and the file server enables the client computer to gain access to files on the file server as if the files were located on a disk drive on the client computer. From the client computer's point of view, the file server simply appears to be one or more additional file volumes on the client computer. As a result, it is possible to run client-server software applications, in which some of the files are located on the client computer and some are located on the file server. In peer-to-peer networking, a similar result is achieved in a system where each computer can be configured to allow the other computers in the network to have access to part or all of its disk volumes.
An advantage of client-server networking and peer-to-peer networking is that it is not necessary for each computer in the network to have a complete copy of all the files of the software application; shared files need only be present on one computer. Accordingly, computer storage media space is not wasted, and upgrading can be a simpler process. However, this type of networking can typically only be achieved within an organisation which has the same networking software on all computers. Efficiencies can be gained in distributing software within an organisation, but not between organisations or to individuals which are not part of the organisation.
US Patent 5,752,005 describes a foreign file system establishing method which uses a native file system virtual device driver. A computer has a native file system which provides various native function routines. A virtual driver communicates with the native file system and intercepts some of the function routines, transferring them to a particular location on another ("foreign") computer. This allows the computer to gain some of the advantages of client-server networking, but it is necessary for the device driver to emulate the foreign file system. An object of the present invention is to provide new methods of distributing, executing and upgrading software which overcome some or all of the difficulties described above.
According to a first aspect of the invention, there is provided a method of distributing software over a communication network including the steps of: (a) making the software available on a file server attached to the network;
(b) providing and executing an installation application on a user's computer attached to the network;
(c) monitoring file requests made by the installation application; (d) identifying file requests which relate to files which are not present on the user's computer;
(e) downloading the identified files from the file server;
(f) storing the downloaded files in storage media on the user's computer; and
(g) directing the file requests for the identified files, and any future file requests for those files, to the downloaded versions of those files.
The communication network may be any suitable form of communication network. Suitable communication networks include the Internet, a local area network, a wide area network, and a virtual private network. It is currently envisaged that the invention will be used most extensively in the context of distribution of software over the Internet. It will be seen that one of the advantages of this aspect of the invention is that a user downloads only the files which are required by the user.
The file server may be any suitable type of file server. Suitable types of file servers, with particular reference to Internet applications, include an FTP server, and HTTP server and a Gopher server.
The method of this aspect of the invention may further include the steps of: (h) monitoring the number of times that files are requested and/or the particular files requested by the user's computer from the server; and (i) requiring the owner of the user's computer to make payments based on the number of times that files are requested and/or the particular files requested.
These steps enable the software manufacturer to charge a differential price to users based on the amount of the software which the user actually uses and/or on the frequency of use. Accordingly, a person who uses only a small part of the software or who uses it only occasionally can be charged a smaller fee, whereas a person who uses more extensive parts of the software or uses it frequently can be charged a higher fee.
During the installation process, the software may optionally require that a key be entered. One of the advantages of the first aspect of the invention is that it can allow distribution of currently available software without any modification of the file requests made by that software. This is because file requests are intercepted. If the file is already on the user's computer, the file request is directed to that file. If the file is not on the user's computer, the file is downloaded from the file server and then accessed on the user's computer. Currently available software might make numerous file requests to the local CD-ROM drive, because the software has been programmed with the assumption that the software is being installed from a local CD-ROM. All of these requests are monitored and converted into file download requests directed to the file server or redirected to downloaded files located on the user's computer.
According to a second aspect of the invention, there is provided a method of executing computer application software on a user's computer which is connected to a communication network including the steps of: (a) providing on the user's computer a version of the software which does not include all the files necessary for complete operation of the software;
(b) making the missing files available on a file server attached to the network;
(c) executing the software on the user's computer;
(d) monitoring file requests made by the software; (e) identifying file requests which relate to files which are not present on the user's computer;
(f) downloading the identified files from the file server and storing them in volatile or non-volatile storage media on the user's computer;
(g) directing the file requests for the identified files to the downloaded versions of those files; and
(h) deleting one or more of the downloaded files from the user's computer.
The communication network and the file server may have the same features as described above in relation to the first aspect of the invention.
The step of deleting one or more of the downloaded files may be done at any suitable time, including:
(i) as the files are closed by the software;
(ii) when execution of the software terminates;
(iii) after a pre-determined time or number of days has elapsed; and/or
(\ ) after the software has been executed a pre-determined number of times. The method of this aspect of the invention may further include the steps of: (i) monitoring the number of times that files are requested and/or the particular files requested by the user's computer from the server; and (j) requiring the owner of the user's computer to make payments based on the number of times that files are requested and/or the particular files requested.
It will be seen that this method requires the user's computer to make contact with the file server at regular intervals in order to replace deleted files, and this facilitates the pay-per-use type of charging. This method is also useful for overcoming the purchasing barrier - allowing users to try the actual software first before buying it. There is no need for the software to be a cut-down version.
According to a third aspect of the invention, there is provided a method of automatically upgrading software on a user's computer over a communication network including the steps of:
(a) making the upgrade software available on a file server attached to the network;
(b) ascertaining that the software on the user's computer is an older version than the upgrade software;
(c) executing the software on the user's computer and monitoring file requests made by the software; (d) identifying file requests which relate to files which have been upgraded in the upgrade software;
(e) downloading the identified files from the file server;
(f) storing the downloaded files in storage media on the user's computer; and
(g) directing the file requests for the identified files, and any future file requests for those files, to the downloaded versions of those files.
The communication network and the file server may have the same features as described above in relation to the first aspect of the invention.
The step of ascertaining that the software on the user's computer is an older version than the upgrade software may occur at any suitable time, including: (i) each time the software on the user's computer is executed;
(ii) after the software on the user's computer has been executed a predetermined number of times; or
(iii) after a predetermined period of time. When it is ascertained that the software on the user's computer is an older version than the upgrade software, an upgrade agent may be downloaded from the file server to the user's computer. The upgrade agent performs the function of monitoring file requests made by the software to identify file requests which relate to files which have been upgraded in the upgrade software.
The invention will hereinafter be described in greater detail by reference to the attached drawings which show an example form of the invention. It is to be understood that the particularity of those drawings does not supersede the generality of the preceding description of the invention. Figure 1 is a block diagram showing schematically the software components in a conventional networking system.
Figure 2 is a block diagram showing schematically the software components in a networking system according to the present invention.
Figure 3 is a schematic diagram of the components in a preferred embodiment of the present invention.
Referring firstly to Figure 1 , there is shown the components in conventional directory mounting/mapping products such as NFS, SMB and NetWare. On the host machine, application software runs on top of an operating system. The application software communicates with the operating system through various application program interfaces (APIs). Included within the operating system are a native file system, which includes a multiplicity of function routines, and network drivers. On the remote computer, the operating system also includes a file system and network drivers. When the application software on the host machine accesses a file on the remote machine, it does so by making a request to the file system on the host machine. This request then passes to the network driver on the host machine, which passes the request to the network driver on the remote machine, which in turn passes it to the file system on the remote machine to access the file. The response is sent back through the same communication chain. There is no trapping of file requests made from the application software before they reach the native file system. Instead, the native file system invokes special drivers called network redirectors, which co-operate with their counterparts on the remote machine to make the directories and files visible to the native file system.
Referring now to Figure 2, the present invention enables software to be installed and run on a host machine, without requiring the underlying files to be physically available on any of the local storage drives. Instead, every file request from the software is trapped by an installable monitor, which dynamically downloads the target file from a remote file server to a local storage medium if the file has not already been downloaded. The installable monitor thereafter directs the native file system to operate on the downloaded file in order to satisfy the file request. Even requests for a file at an absolute path on a specific drive (e.g. the CD-ROM drive) are redirected to the downloaded file, which is likely to reside at a different path on a different drive. The downloaded file can optionally be removed when the software closes the file, or when the software terminates. Consequently, a host machine can run application software without having a physical medium containing all the underlying files.
In a preferred embodiment as illustrated in Figure 3, the file server is a standard FTP server using the FTP communication protocol. The communication network is the Internet. The user's computer has Windows 95 as its operating system, and the FTP server has Solaris as its operating system. However, those skilled in the art should appreciate that different operating systems have similar features and functions, so that the present invention is not limited to use only in connection with these operating systems.
The installable monitor on the user's computer has two components: a virtual device driver (VxD) inside the operating system kernel, and a Windows application at the user level, which includes an FTP client (the user mode application). The VxD is implemented in such a way that it layers itself on top of the native file system. It is implemented as a hook that gets installed below the installable file system (IFS) manager interface. A hook is a programming device that alters program flow away from its original intent. Consequently, for selected program flow threads progressing through the IFS manager interface, program flow is routed to the VxD rather than to the native file system as originally intended. The VxD is then free to either satisfy the request and return program flow back to the requesting thread or modify the request before directing it to the native file system.
The native file system may include function routines directed towards file rights, file locking, file transaction tracking and the like. These are of little importance to the installable monitor of the invention, and hence hooks are omitted for such functions. The selected functions for which hooks are implemented in the preferred embodiment are indicated in the following table:
Figure imgf000011_0001
The precise processes and program flow used in hooking these function routines are unimportant for the purposes of the present invention. Such hooking may be implemented any number of different ways, as will be known to those skilled in the art. For example, published information describing the operating system may indicate the definition of the IFS manager interface for various function routines supported by the native file system. To the extent that published information is lacking, hook locations may be determined empirically.
For each function routine that is hooked, the VxD blocks the execution of the request inside the kernel, determines the path name of the request issued by the CD application and translates it into the equivalent remote path name on the CD drive attached to the file server. This remote path name is then passed back to the user mode application using known event notification mechanisms. The user mode application then translates the request into an FTP request and forwards it to the FTP server. The user mode application waits for a response from the FTP server and, once the file has been downloaded onto the user's machine, it saves the file to another location on the user's machine's local storage media. Confirmation of the download is passed to the VxD, together with the location of the local copy of the file. The VxD then redirects the native file system to satisfy the request made by the application using the local copy, and the application continues as normal. The application itself is unaware that its files and data are being accessed on-line rather than on a local CD-ROM. After the application finishes execution, or closes the file, or after a pre-determined number of uses or after a pre-determined number of days, (these options may be configurable) one or more or all of the downloaded files are deleted from the user's machine.
Typical applications for this embodiment include games traditionally distributed via CD-ROM disks. The start-up program corresponds to the game application that is launched on the user's machine. Typically these applications store their data in the form of movie files on the CD-ROM disk. These are downloaded on demand by the installable monitor on the user's computer, while the user continues to play the game.
It is to be understood that various alterations, modifications and additions can be made to the parts previously described without departing from the ambit of the invention.

Claims

Claims:
1 . A method of distributing software over a communication network including the steps of: (a) making the software available on a file server attached to the network;
(b) providing and executing an installation application on a user's computer attached to the network;
(c) monitoring file requests made by the installation application;
(d) identifying file requests which relate to files which are not present on the user's computer;
(e) downloading the identified files from the file server;
(f) storing the downloaded files in storage media on the user's computer; and
(g) directing the file requests for the identified files, and any future file requests for those files, to the downloaded versions of those files.
2. A method according to claim 1 further including the steps of:
(h) monitoring the number of times that files are requested and/or the particular files requested by the user's computer from the server; and (i) requiring the owner of the user's computer to make payments based on the number of times that files are requested and/or the particular files requested.
3. A method according to claim 1 wherein the software requires a key to be entered during installation.
4. A method according to claim 1 wherein the communication network is the Internet.
5. A method according to claim 1 wherein the communication network is a local area network or a private wide area network.
6. A method according to claim 1 wherein the file server is:
(i) an FTP server;
(ii) an HTTP server; or
(iiif a Gopher server.
7. A method of executing computer application software on a user's computer which is connected to a communication network including the steps of:
(a) providing on the user's computer a version of the software which does not include all the files necessary for complete operation of the software;
(b) making the missing files available on a file server attached to the network;
(c) executing the software on the user's computer;
(d) monitoring file requests made by the software;
(e) identifying file requests which relate to files which are not present on the user's computer;
(f) downloading the identified files from the file server and storing them in volatile or non-volatile storage media on the user's computer;
(g) directing the file requests for the identified files to the downloaded versions of those files; and (h) deleting one or more of the downloaded files from the user's computer.
8. A method according to claim 7 wherein the step of deleting one or more of the downloaded files is done:
(i) as the files are closed by the software; (ii) when execution of the software terminates;
(iii) after a pre-determined time or number of days has elapsed; and/or
(iii) after the software has been executed a pre-determined number of times.
9. A method according to claim 7 further including the steps of: (i) monitoring the number of times that files are requested and/or the particular files requested by the user's computer from the server; and (j) requiring the owner of the user's computer to make payments based on the number of times that files are requested and/or the particular files requested.
10. A method according to claim 7 wherein the communication network is the Internet.
1 1 . A method according to claim 7 wherein the communication network is a local area network or a private wide area network.
12. A method according to claim 7 wherein the file server is: (i) an FTP server;
(ii) an HTTP server; or (iii) a Gopher server.
13. A method of automatically upgrading software on a user's computer over a communication network including the steps of:
(a) making the upgrade software available on a file server attached to the network;
(b) ascertaining that the software on the user's computer is an older version than the upgrade software;
(c) executing the software on the user's computer and monitoring file requests made by the software; (d) identifying file requests which relate to files which have been upgraded in the upgrade software;
(e) downloading the identified files from the file server;
(f) storing the downloaded files in storage media on the user's computer; and
(g) directing the file requests for the identified files, and any future file requests for those files, to the downloaded versions of those files.
14. A method according to claim 13 wherein the step of ascertaining that the software on the user's computer is an older version than the upgrade software occurs: (i) each time the software on the user's computer is executed;
(ii) after the software on the user's computer has been executed a predetermined number of times; or
(iii) after a predetermined period of time.
15. A method according to claim 13 wherein, when it is ascertained that the software on the user's computer is an older version than the upgrade software, an upgrade agent is downloaded from the file server to the user's computer and the upgrade agent performs the function of monitoring file requests made by the software to identify file requests which relate to files which have been upgraded in the upgrade software.
16. A method according to claim 13 wherein the communication network is the Internet.
17. A method according to claim 13 wherein the communication network is a local area network or a private wide area network.
18. A method according to claim 13 wherein the file server is:
(i) an FTP server;
(ii) an HTTP server; or
(iii) a Gopher server.
PCT/SG1999/000037 1999-03-18 1999-03-18 Software distribution, execution and upgrading WO2000055740A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP99919739A EP1163592A1 (en) 1999-03-18 1999-03-18 Software distribution, execution and upgrading
PCT/SG1999/000037 WO2000055740A1 (en) 1999-03-18 1999-03-18 Software distribution, execution and upgrading
SG9903604A SG104254A1 (en) 1999-03-18 1999-07-24 A computing system and method for migrating a mobile computing environment
US09/478,716 US6629143B1 (en) 1999-03-18 2000-01-06 Mobile computing system and method for a network
US09/525,590 US6804718B1 (en) 1999-03-18 2000-03-15 Computing system and method for migrating a mobile computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG1999/000037 WO2000055740A1 (en) 1999-03-18 1999-03-18 Software distribution, execution and upgrading

Publications (2)

Publication Number Publication Date
WO2000055740A1 true WO2000055740A1 (en) 2000-09-21
WO2000055740A8 WO2000055740A8 (en) 2001-03-01

Family

ID=20430202

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG1999/000037 WO2000055740A1 (en) 1999-03-18 1999-03-18 Software distribution, execution and upgrading

Country Status (2)

Country Link
EP (1) EP1163592A1 (en)
WO (1) WO2000055740A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2370236A (en) * 2000-12-19 2002-06-26 Nokia Mobile Phones Ltd A method of modifying games content
EP1219332A2 (en) * 2000-12-27 2002-07-03 Pioneer Corporation Network game system and network game providing method
WO2003019324A2 (en) * 2001-08-28 2003-03-06 Kent Ridge Digital Labs A method and system for propagating points of presence over a computer network
WO2004006094A1 (en) * 2002-07-08 2004-01-15 Siemens Aktiengesellschaft Method for updating services in communication networks
WO2003027972A3 (en) * 2001-09-24 2004-01-22 Siemens Energy & Automat Method for providing engineering tool services
US8108687B2 (en) * 2001-12-12 2012-01-31 Valve Corporation Method and system for granting access to system and content

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421009A (en) * 1993-12-22 1995-05-30 Hewlett-Packard Company Method of remotely installing software directly from a central computer
WO1996024231A1 (en) * 1995-01-30 1996-08-08 Telefonaktiebolaget Lm Ericsson (Publ) Flexible downloading of software
JPH10269078A (en) * 1997-01-21 1998-10-09 Toshiba Corp Software distribution method, server device and client device
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US5881236A (en) * 1996-04-26 1999-03-09 Hewlett-Packard Company System for installation of software on a remote computer system over a network using checksums and password protection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421009A (en) * 1993-12-22 1995-05-30 Hewlett-Packard Company Method of remotely installing software directly from a central computer
WO1996024231A1 (en) * 1995-01-30 1996-08-08 Telefonaktiebolaget Lm Ericsson (Publ) Flexible downloading of software
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US5881236A (en) * 1996-04-26 1999-03-09 Hewlett-Packard Company System for installation of software on a remote computer system over a network using checksums and password protection
JPH10269078A (en) * 1997-01-21 1998-10-09 Toshiba Corp Software distribution method, server device and client device

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2370236A (en) * 2000-12-19 2002-06-26 Nokia Mobile Phones Ltd A method of modifying games content
EP1219332A2 (en) * 2000-12-27 2002-07-03 Pioneer Corporation Network game system and network game providing method
EP1219332A3 (en) * 2000-12-27 2003-10-08 Pioneer Corporation Network game system and network game providing method
US7231447B2 (en) 2000-12-27 2007-06-12 Pioneer Corporation Network game system and method for providing continued network games
WO2003019324A2 (en) * 2001-08-28 2003-03-06 Kent Ridge Digital Labs A method and system for propagating points of presence over a computer network
WO2003019324A3 (en) * 2001-08-28 2004-07-15 Kent Ridge Digital Labs A method and system for propagating points of presence over a computer network
WO2003027972A3 (en) * 2001-09-24 2004-01-22 Siemens Energy & Automat Method for providing engineering tool services
US7257620B2 (en) 2001-09-24 2007-08-14 Siemens Energy & Automation, Inc. Method for providing engineering tool services
US8108687B2 (en) * 2001-12-12 2012-01-31 Valve Corporation Method and system for granting access to system and content
WO2004006094A1 (en) * 2002-07-08 2004-01-15 Siemens Aktiengesellschaft Method for updating services in communication networks
CN100350385C (en) * 2002-07-08 2007-11-21 西门子公司 Method for updating services in communication networks
US9270762B2 (en) * 2002-07-08 2016-02-23 Siemens Aktiengesellschaft Method for updating services in communication networks

Also Published As

Publication number Publication date
WO2000055740A8 (en) 2001-03-01
EP1163592A1 (en) 2001-12-19

Similar Documents

Publication Publication Date Title
US6928444B2 (en) Automatic backup/recovery process
US6049663A (en) Method and facility for uninstalling a computer program package
US6049671A (en) Method for identifying and obtaining computer software from a network computer
US6199204B1 (en) Distribution of software updates via a computer network
US6202207B1 (en) Method and a mechanism for synchronized updating of interoperating software
US7496931B2 (en) Portable memory storage devices containing public context application layers
US6760708B1 (en) Method and system for migrating stored data to a build-to-order computing system
US7565650B2 (en) Method, apparatus and computer program product for deploying software via post-load images
US7093246B2 (en) Automated updates of software and systems
US5845077A (en) Method and system for identifying and obtaining computer software from a remote computer
US7054937B1 (en) Computer network and connection method for connecting a personal computer and a content delivery system using a disk drive which includes a network address and server-contacting program
US7519963B1 (en) Layered computing systems and methods with location exclusions
US7620956B2 (en) Portable memory storage devices with application layers
US7565517B1 (en) Retargeting a captured image to new hardware while in a pre-boot environment
US20070266027A1 (en) Maintaining commonly named client-specific file content in hard disk drive emulation
US20030088515A1 (en) Installing and controlling trial software
US20020095672A1 (en) Efficient data transfer during computing system manufacturing and installation
WO2007073546A2 (en) Installing an application from one peer to another including configuration settings
WO2003107183A1 (en) Systems and methods for the creation of software packages using layered systems
JP2001508575A (en) Software Update Manager
KR20000076612A (en) System and method for installing personal computer software
US20050108708A1 (en) Method to install software via a network and network apparatus thereof
US7673148B2 (en) Versioning component for applications
EP1163592A1 (en) Software distribution, execution and upgrading
US7343560B1 (en) Method and system for generating dynamic images

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 09478716

Country of ref document: US

AK Designated states

Kind code of ref document: A1

Designated state(s): JP SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: C1

Designated state(s): JP SG US

AL Designated countries for regional patents

Kind code of ref document: C1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

CFP Corrected version of a pamphlet front page
CR1 Correction of entry in section i
WWE Wipo information: entry into national phase

Ref document number: 1999919739

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09936850

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1999919739

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1999919739

Country of ref document: EP