SYSTEM AND METHOD FOR OBTAINING DIGITAL INFORMATION VIA COMMUNICATIONS NETWORK
BACKGROUND OF THE INVENTION
Field of the Invention
This invention relates to the field of communication within a communications network. In particular, the invention relates to obtain digital information from a compact disk formatted data via a communications network. Description of the Related Art
Computer software increasingly involves large amounts of data for the code of the computer software and for the supporting data structures, such as images, audio, or other information. Such computer software and its associated data allows for the creation of multimedia presentations. Such presentations may include images, video, audio, and may be supported by complex computer software. One example of such multimedia software is a computer game. The computer game may include graphics, video clips, audio, and may allow for complex interaction with the user.
In order to support such multimedia applications, data storage is needed. Such data storage allows for the storage of the computer code, graphics, and other multimedia elements. One form of storage that has been used for such multimedia applications is the compact disk ROM (CD ROM). Such a storage medium allows for storage of relatively large amounts of data, as compared to certain kinds of conventional media, such as the floppy disk. A large amount of software is available via the CD ROM medium. A CD ROM is a physical product that requires transportation and handling.
Graphical computer software programs, such as computer games, often involve a large amount of storage for graphical images. Thus, such programs may be distributed on CD ROMs as CD ROM titles. It would be desirable to obtain a system and method that overcomes the deficiencies of the prior art.
SUMMARY OF THE INVENTION
The embodiment of the invention is directed to a method of data processing for a computer software program. Data is read from a CD ROM and stored onto a first storage device coupled to the Internet. At least a portion of the data stored on the first storage device is accessed via the Internet from a computer coupled to the Internet. On the computer system, a portion of the data is used. The portion of the data is stored in the second storage device locally coupled to the computer system. If data from the portion of the data is needed again on the computer system, the data from the storage device locally coupled to the computer system is used on the computer system.
The CD ROM may conform to various standards. For example the CD ROM may conform to an ISO 9660 standard. The CD ROM may conform to a Yellow Book standard. The CD ROM may conform to other standards. And the system may be compatible with such standards. An embodiment in the invention is directed to the method of operating the computer system that includes receiving at a computer system coupled to the Internet a user selection of a computer software program from among a set of computer software programs. The computer software programs are associated with data from respective CD ROM. The data is stored on the first storage device coupled to the Internet remotely from computer system. A bandwith for communication between the computer system and the first storage device is detected. Based on the bandwith and the selected computer software program, a portion of the data from the first storage device may be stored onto a storage device locally coupled to the computer system before running the selected computer software program, and then the selected computer software program is run. Alternatively, based on the bandwith and the selected computer software program, the selected computer software program is started without storing the data from the first storage device onto the storage device locally coupled. According to one embodiment of the invention, the selected computer software program is run without storing a portion of the data onto the storage device locally coupled only if bandwith is sufficient for performance of the selected computer software program equivalent to the performance of the selected
computer software program if the computer software program and associated data were stored locally to the computer system.
An embodiment in the invention is directed to a system including a first computer system coupled to a network and a second computer system coupled to the network and coupled locally to a storage device including an image or a CD ROM. The first computer system includes computer readable code designed to read a locally stored CD ROM via a CD ROM driver. The first computer system also includes computer readable code that emulates a CD ROM driver and causes communication to be made with the second computer system to obtain information from the storage device including the image of the CD ROM. Thus, a CD ROM drive is emulated on the first computer system. The system includes computer code that determines a bandwith for transmission between the first computer system and the second computer system and, if the bandwith is not high enough to allow real time emulation of the CD ROM of a CD ROM drive causes at least a portion of this image of the CD ROM to be downloaded to a storage device coupled locally to the first computer system.
Another embodiment of the invention is directed to a system for playing games. The system includes a first server coupled to a computer network. The first server includes a list of computer games. A second server coupled to the computer network includes a storage device including images of CD ROMs corresponding to at least some of the games on the list of computer games. A client computer coupled to the computer network includes computer readable code that allows a user to select a game from among the games in the list of computer games. Computer readable code obtains access to an image of a computer game among the images of the CD ROMs on the storage device included by the second server. The code stores at least a portion of the image onto a storage device locally coupled to the client computer and causes the game to run at least partially in response to the portion of the image stored on the storage device locally coupled to the client computer.
BRIEF DESCRIPTION OF THE FIGURES
Fig. 1 illustrates a system for obtaining digital information via a communications network, according to an embodiment of the invention.
Fig. 2 illustrates a flow diagram for a user interface for selecting, installing, and playing titles, according to an embodiment of the invention.
Fig. 3 illustrates a flow diagram for a user interface for ordering titles, according to an embodiment of the invention.
DETAILED DESCRIPTION The following is a description of embodiments of the invention. The embodiments shown help to illustrate the invention. However, it is not intended that the invention be limited to the precise embodiments shown. One embodiment of the system enables a computer user on a high speed network to play a CD ROM title as if the user were using the CD ROM into the user's local machine. A server, remotely located from the user's machine, stores images of CD ROM titles on a hard disk or hard disks. The user's computer is the client, and has a software program that emulates a CD ROM driver. The software program then communicates to the remotely located server through a computer network to obtain data from the CD ROM images. The computer program located on the user's machine thus emulates a CD ROM driver to the operating system or the application. Thus, the user may be able to use the title as if the title were loaded from a CD ROM drive coupled locally to the user's machine. According to one embodiment of the invention, the computer network is an IP network, and the computer program that emulates the CD ROM driver communicates to the server through TCP/IP.
In one embodiment of the invention, the user first visits a web site. The web site may, according to one embodiment of the invention, be the same server on which images of the CD ROM titles are stored. According to another embodiment of the invention, the web site is a different server from the server on which the images of the CD ROM titles are stored. Software associated with the web site determines the identity of the user and performs authentication. A password may be required and other account information may be verified or obtained. Payment may be required and/or obtained. According to one embodiment of the invention, images of CD ROMs are stored in various servers. The software associated with the web site determines which server from which the user should obtain access to the CD ROM the user desires,
based on the identity and location of the user. The user's computer system includes a browser with a plug-in, which provides access to the web site and server containing images of the CD ROMs. When the user selects a CD ROM title to play, the plug-in is given enough information to tell the user's software program that emulates a device driver to which server it should connect and which image it should load. Next, provided that there is sufficient bandwidth, the software that emulates the driver emulates a CD ROM driver with the selected remotely located CD ROM image. The user can play the CD ROM title as originally intended by the CD ROM's manufacturer. A CD ROM title may require a particular communications bandwidth.
According to one embodiment of the invention, the system may selectively download onto the user's computer part or all of the CD ROM title the user wishes to play. If the bandwidth is not sufficient to emulate local play of the title, then a portion or all of the image of the CD ROM is downloaded to a storage device, such as a hard drive, locally coupled to the user's computer. Then, when the user plays the title, it may run at the proper speed. For copy protection or usage tracking, an active connection may still be required between the server and the user's computer in order to allow for play of the title. Additionally, as the title is emulated via communication between the server and the device that emulates a CD ROM driver, data from the image may be stored on a storage device locally coupled to the user's computer. Such data may include graphics, computer code, or other data. When this data is later again needed by the title application running on the user's machine, it is accessed from the local storage device rather than the remote server in order to preserve bandwidth and the communication between the user's computer and the remote server.
According to one embodiment of the invention, if the system detects that the bandwith is such that the image of the CD ROM should be downloaded onto the user's computer system, the user is presented with the option to order the CD ROM. If the user selects to order the CD ROM, then an image of the CD ROM is copied to the user's hard drive. This copying may take place at an off peak time, such as a time when there is a low load on the server that is storing the CD ROM images. Such time may depend on the particular usage patterns of
the CD ROM images by the users. For example, if the CD ROM images correspond to computer games, and these computer games are typically played between 4:00 p.m. or 5:00 p.m. and 10:00 p.m., 11 :00 p.m., or midnight, then the downloading of the CD ROM image would take place after this time of high usage. For example downloading may take place between midnight and 8:00 a.m., or between midnight and 4:00 p.m. or at other time ranges to avoid times of high system load. If bandwith is sufficient for emulation of the CD ROM without copying the CD ROM on to the user's computer system, then the user may be presented with a play button. When the user clicks the play button, the title plays immediately on the user's machine.
According to one embodiment to the invention, as a graphical computer program, such as a game title, is being played data from the remotely located CD ROM image, the accessed data is stored on the user's system. Later, when this data is needed again, it is accessed from the local storage device on which it is stored. An advantage of such an approach is that communications bandwith between the user's system and the remote server is conserved. For example, if the graphical computer software program displays the same screen that the program has displayed before, the computer program that emulates the CD ROM drive accesses the screen from the user's storage device, such as the hard drive, rather than from the remote server. Data not previously accessed may be accessed over the network, and data already accessed is accessed via the storage device locally coupled to the user's computer.
A space may be reserved on the user's storage device for such storage of data from the remote server. As this storage space becomes full, some of the older data may be replaced by newer data. The determination as to which older data may be replaced may be made by a variety of methods. For example, the least recently used data may be replaced with the newer data form the remote server. According to one embodiment of the invention, the user may select the amount of storage space to be utilized for such local caching of data received from the remote server. The user may make this determination via a window in a user interface. The user interface may refer to such storage space as shelf space.
Fig. 1 illustrates a system for obtaining digital information via a communications network, according to an embodiment of the invention. Fig. 1 includes a web/key server 110, data server 140, client machine 120, and the Internet 150. The web/key server 110 helps to serve web pages provides a CD key file 122. The web/key server 1 10 also provides web/key server administration web pages 112. Data server 140 provides data server administration web pages 143 and CD ROM 155 data to the client machine's 120 virtual CD ROM driver 126. The CD key file 122 is a file with a MIME type that associates it with a plug in 123. The CD key file 122 allows the driver 126 to request from data server 140 a specific title to run.
A user interacting with client machine 120 is presented with a selection of titles by web/key server 110 via Internet 150. The client machine 120 then obtains access to an image of the selected title via data server 140 via Internet 150. A driver 126 on client machine 120 emulates a driver of a CD ROM drive so that software on client machine 120, which may be designed to operate with a local CD ROM drive via a CD ROM driver program, may access the remote data, even though the remote data is not stored completely at the client machine 120.
Web/key server 1 10 provides a user interface and allows for user selection of titles. Web/key server 110 includes a web server 111 which provides an interface to Internet 150. Web server 11 1 provides a web type interface to web/key server 110. Admin web pages 112 allow web server 1 1 1 to act as an interface for administrative functions to web/key server 110. Admin CGI code 113 controls the operation of the administrative interface. This administrative interface allows for functions such as addition and removal of CD ROM titles, control of user accounts, additions of users, billing, and other functions. One of such functions or a subset of such functions may be provided, depending on the needs of the particular system. For example, if a set of data servers is used, such data servers may be added or removed via Admin CGI code 113.
CD table 114 provides a list of CD ROM images supported by the system. CD table 114 may be updated as new titles are added to the system and as old titles are removed from the system. CD table 114 may indicate which
server holds any particular CD ROM image. CD table 114 may also include additional information regarding the CD ROM titles such as cost, technical requirements for playing, or other information. User table 115 includes a list of users and may also support other information, such as billing, authorization, and account status for users. Server table 116 provides a list of various servers on which the CD ROM images are stored. Such servers may be located a various geographic locations. Thus server table 116 may help to find a server located close to the user.
User web pages 117 provide a user interface, for example, for an individual who wishes to play a game title. User CGI code including key server 118 control the user interface for such a user. User CGI code including key server 118 allows user to select a CD ROM title from among at least a portion of CD ROM titles listed in CD table 114. User CGI code including key server 1 18 uses user table 115 to determine authentication of a user, and authorization of a user to obtain access to a particular CD ROM titles. When a user has selected a particular CD ROM title and has obtained authorization to play the title, a CD Key file 1 19 is provided via user CGI code including key server 118.
The user, via client machine 120, is able to make a selection of a title and obtain authorization to play the title from web key server 1 10. Web browser 121 provides a user interface for user on client machine 120. Web browser 121 makes HTTP requests 151 via Internet 150 to web server 111 located on web/key server 1 10. In response, HTML and CD Key files 152 are provided. Web browser 121 then obtains CD Key file 122.
A plugin 123 on client machine 120 is associated with web browser 121. This plugin 123 causes browser 121 to request that the media remote driver 126 obtain access to the selected title from data server 140. Plugin 123 unlocks the selected data from the CD data table 145 on data server 140 provided that the CD Key file 122 has been obtained for the selected title. Media remote driver 126 has an interface which may be accessed by title app/OS 124. This interface may emulate and interface of a device driver, such as a CD ROM device driver. Thus, title app/OS 124 may have been designed to access a local CD ROM drive, and with media remote driver 126 title app/OS 124 is able to access remotely stored data instead of only a local CD ROM drive. Plugin 123
provides an IP address, CD ID, and user ID 127 to driver 126. As data is received from data server 140, such data is cached in local storage, such as cache (shelf space) 125, which may comprise a hard drive. Thus, CD data 130 is stored to cache 125 and is also available for later use. For example, if title app/OS 124 needs a particular CD data, read request 128 is made. If the CD data has already been requested, such CD data may be located on cache 125, and is obtained from cache 125. If such CD data has not been already requested, or if it has already been overwritten on cache 125, the data is obtained remotely from data server 140. Thus title apps/OS 124 makes read requests 128 to driver 126 and receives CD data 129. Driver 126 makes CD load requests 153 and CD read requests 154 to data server 140 and in response, CD data 155 is delivered.
Data server 140 includes the images of CD ROMs and provides data from these images to client machines. A set of data servers may be used in a system, and such data servers may be located in geographic areas likely to be close to prospective users. CD data server 141 provides and IP interface through which driver 126 can communicate via Internet 150. CD data server 141 is coupled to CD data table 145, which includes a list of the CD ROM images stored in on data server 140. CD data files (ISO) 146 are files stored on a storage device on data server 140. These files correspond to CD ROM images and are typically stored in a 9660 ISO format. Each CD ROM image is stored on a local storage device as a separate file. Such file may be decompressed and encrypted, or may be compressed or may be encrypted. Thus driver 126 is able to obtain access to a selected CD ROM image from among CD data files 146 via CD data server 141. Such access may take the form of access of selected files of the CD ROM image, selected blocks of the CD ROM image, or may take the form of a complete download of all files or of all blocks of the CD ROM image so the title may be operated locally. CD data table 145 provides information regarding location of a CD image within CD data files 146 that are stored on a storage device, such as hard drive. Data of the CD ROM images may be compressed and stored on the storage device on data server 140. Such data is compressed at the block level, according to an embodiment of the invention.
Web server 142 provides web access for administration of data server 140. Admin web pages 143 provide the various web pages that the administrator would see in administering data server 140. Admin CGI code 144 controls the admin web pages 143 and the user interface for administration. An administrator, by way of such admin CGI code, 144 may cause additional CD images to be added to CD data files 146. Data files may be added or removed as needed.
Driver 126 may make block level requests to CD data server 141. A block is an atomic chunk of data that is written or read as a whole typically in response to a request by an operating system or application to a driver. Thus, driver 126 may receive block level requests from title apps/OS 124 and respond with blocks of data 129 to title app/OS 124. Driver 126 may anticipate blocks that will be requested, other than those that were specifically requested by title apps/OS 124. For example, if blocks 15 and 16 are requested, then block 17 and 18 may also be accessed. Driver 126 may also make other predictions of blocks that are needed in the future. For example, probabilities may be determined of blocks that will be read next based on blocks that were read last based on past patterns of block usage.
Various portions of data may be accessed from local storage on client machine 120 and other portions may be accessed from data server 140. For example, title apps/OS 124 may request blocks 0-64 of a CD ROM image, and blocks 0-8 and 32-64 may be stored in cache 125, but not blocks 9-31. Driver 126 requests blocks 9-31 from data server 140 and combines those blocks with blocks 0-8 and 32-64, which are stored on local storage device cache 125. Fig. 2 illustrates a flow diagram for a user interface for selecting, installing, and playing titles, according to an embodiment of the invention. A user interacts with the systems and is able to register as a user and select titles to play or order. User begins with a welcome/user login interface 210. If the user decides to enter, a determination is made as to whether the user is registered (block 211). If the user is not registered a user, registration interface is provided (block 212). If the user decides not to register, the user is returned to the welcome/user login (block 210). If the user registers then the system proceeds to block 213 where determination is made as to whether the appropriate plugin
has been installed. If the user is already registered, then proceed directly to block 213 (block 211). If the plugin has not been installed, then proceed to install the plugin (block 214), which includes appropriate user interface screens and downloading of the appropriate plugin software. Then the system reboots, at the option of the user. After rebooting, return to welcome/user login 210. After the plugin is installed, proceed to menu 215.
From menu 215 user may uninstall (block 216), modify shelf space (block 216), receive answers to common questions (block 218), receive information regarding contacting the service provider (block 219), or play a selected title (block 225). If the user decides to uninstall the system, the system is uninstalled, and then the user has the option to restart the computer (block 220). If the user does not restart the computer, a reminder is provided to exit the browser (block 222). If the user decides to restart the computer, then return to the desktop (block 224). If the user decides to play a title, appropriate portions of the title are loaded (block 225). Most of the title may be left on a remote server, unless the user is required to order the title. Next the title is played (block 226). After playing the title, a survey is presented (block 227).
According to one embodiment of the invention, a background application, other than driver 126, allows a user to order a title. Such background application requests all or a portion of the CD ROM image from data server 140 to be copied on to a local storage device on client machine 120.
Fig. 3 illustrates a flow diagram for a user interface for ordering titles, according to an embodiment of the invention. A user has first logged on to the system and then is presented with a menu (block 310). If the user has selected a title, and the bandwith is not sufficient for playing the title without loading the title, then the user is presented with the option to order the title. The user may have previously determined an amount of local storage to be designated for storage of such titles. Such local storage may be designated as shelf space in the user interface. If the shelf space is not large enough for the selected title (block 311), then the user is presented with a message that the maximum shelf space is insufficient (block 313). The user may then decide to increase the size of the shelf space. If the shelf space is large enough for the selected title (block 311),
then a determination is made as to whether the current shelf space is large enough (block 311). The current shelf space is the portion among the space allocated for storage of titles that is not being occupied by titles currently stored on the local storage device. If the current shelf space is not large enough (block 312), then a message is presented to the user that the shelf space is full (block 315). The user may cancel the order of this title and return to menu (block 316). Alternately, the user may select to remove items from the shelf, and then a determination is made as to whether enough shelf space would be freed by such removal (block 317). Such a determination may be made, according to one embodiment of the invention, without actually removing the respective items from the shelf space so that the user may decide whether the user wants to proceed to remove additional items from the shelf space before actually having them removed. If the shelf space that would be freed is insufficient, a message is presented to the user (block 318). The user may select O.K., to actually remove the selected item from the shelf, or cancel. If enough shelf space is freed (block 317), then the user is presented with a message that the title has been removed and the order of the new selected titled is confirmed (block 319). If the after the determination that enough current shelf spaced existed (block 312), it was determined that enough current shelf space would exist with the renewal of existing titles, then the user is presented with a confirmation that the title can be ordered (block 314). The user can then select O.K. or cancel to order or not order the title. Then the user is returned to menu 310.
CD ROMs may take a variety of formats. For example, one format is the 9660 ISO. The system may store data in a format compatible with this standard. Alternatively, the system may store data in formats compatible with derivatives of the standard. Other standards are set forth in the standards book such as the Red Book. The system may store data in a format compatible with this standard. The Red Book provides a physical format for audio CDs. According to one embodiment of the invention, the CD format is according to the Yellow Book. The Yellow Book provides a standard for a physical format for data CDs. Another format that embodiments of the invention may utilize is the Orange Book standard. The Orange Book sets forth a physical format standard for recordable CDs. Another standard that an embodiment of the
invention may use as the White Book standard. This standard is utilized for video CDs. Other formats with which embodiments of the invention may be compatible are the CD extra (occasionally used to refer to laser disc format) and the extended architecture, which is a bridge between Yellow Book and CD-i. According to one standard, 2048 bytes of data are provided with error correction. According to another standard, 2324 bytes of data are provided without error correction for video/audio. The system may be compatible with a Rock Ridge format. The Rock Ridge format provides extensions allowing for long file names and Unix style symlinks. Another standard with which that an embodiment of the invention may be compatible is CD-RFS. CD-RFS standard provides an incremental packet-writing file system. Another standard with which an embodiment of the invention may be compatible is the CD-UDF standard, which provides and incremental packet-writing file system.
The foregoing description of various embodiments of the invention has been presented for purposes of illustration and description. It is not intended to limit the invention to the precise forms disclosed.