Installation software using a setting file to automatically determine if a module is installable and the location of the installation

An information processing apparatus, an information processing method, and a storage medium are disclosed which determines whether or not to install program modules by acquiring environment information relevant to the types of the modules so that only those modules judged compatible with the environment of interest may be installed. This makes it possible for users to install only necessary program modules without becoming aware of specific conditions restricting the installation of the modules.

BACKGROUND OF THE INVENTION

The present invention relates to an information processing apparatus, an information processing method, and a storage medium. More particularly, the invention relates to an information processing apparatus, an information processing method, and a storage medium each utilizing an installer for the purpose of installing software.

Today's intensifying competition in software development has given rise to the frequent distribution of updated programs with newly added capabilities. Some of these programs are disclosed by their vendors on wide area networks such as the Internet so that users can readily acquire the latest version of the programs in their possession. In such cases, users download the latest software files free of charge or for a fee from a server on the Internet and install the downloaded files into their computers. This allows the users to make use of the updated software as soon as its latest feature are made available.

To install software into a computer requires storing the programs and data constituting the software in question onto a storage medium (e.g., magnetic recording medium) under control of an operating system (OS) while concurrently setting the environment of the OS. Many programs include a dedicated installer program that deals with the complicated steps of setting the environment of the OS upon software installation.

The installer program is a program which, when run by the computer, causes it to establish various settings preparatory to executing the application software in question. When thus run, the installer program specifically causes the computer to copy program and data files to suitable locations on the storage medium as well as to create folders where appropriate on the medium. The installer program also causes the computer to set the environment of the OS. By having the computer run the installer, the user can let the computer take over diverse tasks such as storing the program and setting the operation environment at the same time.

Most software products do not function on a standalone basis; they almost always cooperate with other programs and hardware elements in carrying out their functions. It follows that updating any given software product must be consistent with the functionality of other related programs. Illustratively, an updated OS may leave some application programs inoperable in its new environment. Furthermore, the licensing agreement of some applications does not allow them to be installed under the renewed OS.

Conventionally, checks on the consistency between the cooperative programs often amounted to a burdensome chore that must be done primarily by users. One way to bypass the trouble was by resorting to an installer prompting the computer to install the software in question and to check inter-program consistency. If the consistency was not attained, a warning was issued.

Conventional installers were distributed on the precondition that they be attached to the software they were supposed to install. That meant getting such an installer to verify program consistency required downloading all files constituting the software to be checked. It took time and trouble to do so. If the user was charged for network and telephone connections on an as-used basis, downloading ultimately unusable software added to the loss on the user's part.

The present invention has been made in view of the above circumstances and provides an information processing apparatus, an information processing method, and a storage medium for determining whether or not to permit software installation prior to acquisition of the software in question.

SUMMARY OF THE INVENTION

According to the first aspect of the present invention, there is provided an information processing apparatus including:

location information acquiring means for acquiring, from a predetermined server, location information defining the location of a server which stores at least one program module; and

program module acquiring means for acquiring the program module by gaining access to the server storing the program module based on the location information.

According to the second aspect of the present invention, there is provided an information processing apparatus including:

location file acquiring means for acquiring, from a predetermined server, a location file defining the location of a server which stores a setting file including location information defining the location of a server storing at least one program module;

setting file acquiring means for acquiring the setting file by gaining access to the server of which the location is defined by the location file; and

program module acquiring means for acquiring the program module by gaining access to the server storing the program module based on the location information.

According to the third aspect of the present invention, there is provided an information processing method including the steps of:

acquiring, from a predetermined server, location information defining the location of a server which stores at least one program module; and

acquiring the program module by gaining access to the server storing the program module based on the location information.

According to the fourth aspect of the present invention, there is provided an information processing method including the steps of:

acquiring, from a predetermined server, a location file defining the location of a server which stores a setting file including location information defining the location of a server storing at least one program module;

acquiring the setting file by gaining access to the server of which the location is defined by the location file; and

acquiring the program module by gaining access to the server storing the program module based on the location information.

According to the fifth aspect of the present invention, there is provided a storage medium which stores, in a computer-readable manner, a software installation support program for causing a computer to carry out the steps of:

acquiring, from a predetermined server, location information defining the location of a server which stores at least one program module; and

acquiring the program module by gaining access to the server storing the program module based on the location information.

According to the sixth aspect of the present invention, there is provided a storage medium which stores, in a computer-readable manner, a software installation support program for causing a computer to carry out the steps of:

acquiring, from a predetermined server, a location file defining the location of a server which stores a setting file including location information defining the location of a server storing at least one program module;

acquiring the setting file by gaining access to the server of which the location is defined by the location file; and

acquiring the program module by gaining access to the server storing the program module based on the location information.

According to the seventh aspect of the present invention, there is provided an information processing apparatus including:

location information acquiring means for acquiring, from a predetermined server, location information defining the location of servers which severally store at least one program module; and

program module acquiring means for acquiring the program modules by gaining access to the servers severally storing the program modules based on the location information.

According to the eighth aspect of the present invention, there is provided an information processing apparatus including:

location file acquiring means for acquiring, from a predetermined server, a location file defining the location of a sever which stores a setting file including location information defining the location of servers which severally store at least one program module;

setting file acquiring means for acquiring the setting file by gaining access to the server of which the location is defined by the location file;

program module acquiring means for acquiring the program modules by gaining access to the servers storing the program modules based on the location information.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Preferred embodiments of this invention will now be described with reference to the accompanying drawings.

FIG. 1is a conceptual diagram illustrating the principle underlying the present invention. InFIG. 1, an installation support system embodying the invention is shown made up of one or multiple server computers2,3,4interconnected via a network1and of a client computer5.

The server computer2has an installation support program2a, a location file2b, and installation support program offering means2c. The installation support program2adefines procedures for installing program modules4ainto the client computer5. The location file2bdefines where a setting file3ais located. The location file2bmay be contained in the installation support program2a. The installation support program offering means2ctransmits the installation support program2aand location file2bto the client computer5in response to the latter's request.

The server computer3has the setting file3aand setting file offering means3b. The setting file3ais composed of data including location information and type information. The setting file offering means3btransmits the setting file3ato the client computer5in response to the latter's request.

The server computer4has a program module4aand program module offering means4b. The program module4ais a program that makes up at least part of a given software product The program module offering means4btransmits the program module4ato the client computer5in response to the latter's request.

The client computer5is broadly made up of installation support program acquiring means5aand installation supporting means5b. The installation support program acquiring means5atransmits acquisition requests to the server computer2to acquire the installation support program2aand location file2bfrom the server computer2.

The installation supporting means5bis a processing function implemented by the client computer5executing the installation support program2a. The installation supporting means5bincludes setting file acquiring means5c, environment information acquiring means5d, determining means5e, module acquiring means5f, and installing means5g.

The setting file acquiring means5ctransmits a setting file acquisition request to the server computer3to acquire the setting from3afrom the latter. The setting file acquiring means5chands the acquired setting file3aover to the environment information acquiring means5d.

Given the setting file3a, the environment information acquiring means5dcarries out environment analysis to acquire environment information. The environment information illustratively includes the type of the OS and version information about program modules which have already been installed and which belong to the same family as the program module to be acquired The environment information acquiring means5dtransfers the acquired environment information to the determining means5e.

The determining means5edetermines the type of the program module4ain reference to the setting file3aacquired by the setting file acquiring means5cThen the determining means5edetermines whether or not to permit installation of the program module4abased on the type of the program module4aand on the environment information acquired by the environment information acquiring means5d.

When the installation of the program module4ais permitted by the determining means5e, the module acquiring means5ftransmits a program module acquisition request to the server computer4over the network1on the basis of the location information in the setting file3aacquired by the setting file acquiring means5c, and receives the program module4afrom the server computer4. The module acquiring means5fhands the received program module4aover to the installing means5g.

The installing means5ginstalls the program module4ainto the client computer5.

The installation support system of the above constitution thus causes the installation support program acquiring means5ato acquire the installation support program2aand location file2bin order to execute the installation support program2aand thereby to start the installation supporting means5b. The location file2breveals where the setting file3ais located, allowing the setting file acquiring means5cto acquire the setting file3a.

The environment information acquiring means5dacquires the environment information relevant to the setting file3aand hands the acquired information over to the determining means5e. In turn, the determining means5edetermines whether or not to permit installation of the program module4a. If the installation of the program module4ais permitted, the module acquiring means5facquires the program module4athat is installed into the client computer5by the installing means5g.

Once the installation support program2ais downloaded to the client computer5, the setting file3aneed only be downloaded thereafter to let the client computer5determine whether or not to permit installation of the program module4a. As a result, the user at the client computer5need not worry about whether or not to install the program module4aanew. This will appreciably reduce the burdens on the user.

Only the setting file3aneeds to be downloaded; there is no need to download unnecessary program modules. With the download of superfluous programs thus forestalled, processing is made more efficient. Where the user is charged for network connections on an as-used basis, the user can be spared extra expenditures.

In the setup ofFIG. 1, the installation support program2a, location file2b, setting file3a, and program module4aare stored in distributed fashion by the three server computers2,3,4. Alternatively, the programs and files may be contained in a single server computer. As another alternative, the installation support program2a, location file2b, setting file3a, and program module4amay be recorded on a storage medium such as a CD-ROM (compact disk read-only memory) to be offered to the client computer5.

The above-described installation support system according to the invention may be applied to the installation of diverse kinds of software. The inventive system is particularly advantageous when used to install into the client computer5a plurality of software products (i.e., program modules) developed independently by a plurality of companies. Where program modules have been developed by multiple firms, it is generally difficult for users to verify the latest versions of these products for consistency as needed. If the user's operation environment is altered illustratively by an update of the OS, it takes a lot of time and trouble for the user to check the compatibility of each of the program modules through inquiries to the individual vendors involved. The inventive system allows the user to update with a minimum of effort only those program modules consistent with the current environment of the client computer.

An example in which a plurality of cooperative program modules are developed by different companies is a music data distribution system designed to protect copyrights. For such a system, a plurality of program modules designed to protect copyrights may be integrated while multiple vendors are allowed separately to develop their own user interfaces through which users acquire or copy music data.

Hereunder, the invention may be embodied illustratively as a music data distribution system for distributing music data over a network while protecting copyrights. An example of the technology adopted for copyright protection is OpenMG (registered trademark) offered by Sony Corporation. This embodiment offers separately a content management program for music data copyright protection and a display operation prompting program acting as an interface for managing music data. The content management program and display operation prompting program are each constituted by a plurality of program modules.

In the description that follows, the program modules may be simply called the modules and the server computers as the servers.

FIG. 2is a diagram showing a typical configuration of an installation support system embodying the invention. As shown inFIG. 2, a computer100is connected to a network10constituted by a local area network or by the Internet. In accordance with an installation support program downloaded from a content management program offering server11, the computer100downloads modules constituting a content management program and a display operation prompting program from the content management program offering server11and a display operation prompting program offering server12. Also using the installation support program, the computer100installs into its system the downloaded programs or those stored on a storage medium such as a CD (compact disk). In addition, the computer100compresses, by a predetermined compression method (e.g., ATRAC3 (registered trademark)), music data (called the contents hereunder) that are either received from EMD (electronic music distribution) servers14,15or retrieved from CDs (to be described later), and encrypts the contents illustratively by DES (Data Encryption Standard) for recording purposes.

In conjunction with the contents thus encrypted and stored, the computer100records use condition data denoting use conditions imposed on the corresponding contents. The use condition data may illustratively specify the number of portable devices (PDs, to be described later) that may simultaneously utilize the content corresponding to a given use condition. When a given content is checked out as many times as a content check-out count (to be described later) denoted by the use condition data, the computer100may still reproduce the checked-out content.

Alternatively, the use condition data may indicate the availability of contents to be copied. When a content is copied to portable devices21through23, the computer100may reproduce the recorded content. Constraints may be imposed on the number of times any content is stored into the portable devices21through23. In that case, the capped copy count cannot be increased.

The use condition data may alternatively designate conditions under which contents may be moved from one computer to another. For example, after a content is moved into the portable devices21through23, that content stored in the computer100may no longer be available (either the content is erased or its use conditions are changed so that the content becomes unavailable).

The computer100may move an encrypted and recorded content along with its related data (e.g., music titles or playback conditions) for storage into the portable device21connected through a USB (Universal Serial Bus) cable. In keeping with the storing operation into the portable device21, the computer100updates the use condition data corresponding to the stored content (the update operation is called the check-out). More specifically, whenever any content stored in the computer100is checked out, a check-out count for the content in question (i.e., the maximum number of times the content may be checked out) is decremented by 1. When the checkout count has reached zero, the corresponding content can no longer be checked out.

The computer100may also move the encrypted and recorded content along with its related data for storage into the portable device22inserted into a memory reader/writer in the computer100. In keeping with the storing operation into the portable device22, the computer100updates the use condition data corresponding to the stored content. The computer100may further move the encrypted and recorded content along with its related data for storage into the portable device23connected through a USB cable. In keeping with the storing operation into the portable device23, the computer100updates the use condition data corresponding to the stored content.

At other times, the computer100may cause the portable device21to delete (or render unusable) the content checked out to the latter by the computer100and update simultaneously the use condition data corresponding to the deleted content (the update operation is called the check-in). More specifically, whenever any content is checked in, the computer100increments by 1 the check-out count in the use condition corresponding to the checked-in content.

When the computer100causes the portable device22to delete (or render unusable) the content checked out to the latter, the computer100updates the use condition data corresponding to the deleted content. Likewise, when causing the portable device23to delete (or render unusable) the content checked out to the device, the computer100updates the use condition data applicable to the deleted data.

It should be noted that the computer100cannot check in the content that was checked out by another computer, not shown, to the portable device21. Similarly, the computer100may not check in the content that was checked out by another computer to the portable device22; the computer100cannot likewise check in the content that was checked out by another computer to the portable device23.

The content management program offering server11retains the content management program, setting file, and installation support program. The content management program is made up of a plurality of modules. The setting file contains management information such as version numbers of the modules making up the content management program as well as version numbers of various modules for causing the computer to execute processes in cooperation with the content management program. The setting file is stored in encrypted form in the content management program offering server11.

The installation support program includes a location file indicating where the setting file is located (i.e., repository to which computers on the network gain access). The location file is registered in encrypted form in the installation support program.

The content management program offering server11transmits a content management program installer to the computer100in response to an installation support program acquisition request sent from the computer100over the network10. The content management program offering server11also transmits the content management program in response to a request from the computer100sent over the network10. In the content management program acquisition request, the program to be acquired may be specified in units of modules. In other words, the content management program offering server11transmits to the computer100only those modules of the content management program which are designated in the content management program acquisition request.

The display operation prompting program offering server12retains the display operation prompting program. This is a program that provides user interfaces through which users manage music data by means of the computer100. The display operation prompting program is constituted by one or multiple modules. In response to a request from the computer100sent over the network10, the display operation prompting program offering server11transmits the display operation prompting program to the requesting computer100.

When the computer100starts acquiring contents from EMD servers14,15, an EMD registration server13transmits to the computer100, in response to a request from the computer100, an authentication key necessary for two-way authentication between the computer100and the EMD servers14,15. After the authentication, the EMD registration server13transmits to the computer100a program for connecting to the EMD servers14,15.

The EMD server14supplies the content and its related data (e.g., music title or restrictions on playback) to the computer100over the network10in response to a request from the computer100. The EMD server15also supplies the content and its related data through the network10to the computer100in response to the latter's request.

The content to be supplied by the EMD servers14,15are compressed by the same or different compression methods, and are encrypted by the same or different encryption standards.

A WWW (World Wide Web) server16supplies the content read from a CD (e.g., CD album name or CD vendor name) and content-related data (e.g., music titles or composer names) to the computer100over the network10in response to a request from the computer100. A WWW server17also supplies the content read from a CD and content-related data to the computer100over the network10in response to a request from the computer100.

The portable device21stores the content fed from the computer100(i.e., checked-out content) along with the content-related data (e.g., music titles or restrictions on playback). Based on the content-related data, the portable device21reproduces the stored content for output illustratively to headphones.

For example, if an allowable playback count is stored as a restriction on playback in the content-related data, the portable device21denies any attempt to reproduce the content of interest in excess of that count. If a playback time limit is stored as a restriction on playback in the content-related data, the portable device21denies any attempt to reproduce the content in question past that time limit.

The user may detach from the computer100the portable device21retaining the contents, carry the device around and play back the relevant stored contents such as music data illustratively through headphones.

The portable device22is illustratively a semiconductor memory with technical capabilities of accommodating encrypted contents. An example of the technology for storing encrypted contents is so-called MG (Magic Gate) The portable device22stores the content fed from the computer100together with the content-related data. When inserted into a sound source player (e.g., headphone stereo), not shown, the portable device22lets the player reproduce the stored content in accordance with the content-related data for output illustratively to headphones. The user may detach from the computer100the portable device22retaining the content, carry the device around, and have the stored content reproduced by a suitable sound source player to enjoy the relevant stored content such as music data illustratively through headphones.

The portable device23stores the content fed from the computer100along with the content-related data. The portable device23reproduces the stored content in keeping with the content-related data for output illustratively to headphones. The user may detach from the computer100the portable device23retaining the content, carry the device around, and get the device to reproduce the stored content so as to enjoy the relevant stored content such as music data illustratively through headphones.

In the description that follows, the portable devices21through23are represented generically by the portable device21where there is no need to distinguish the devices individually.

FIG. 3is a block diagram depicting a typical structure of the computer100. A CPU (central processing unit)111runs the OS and various application programs (e.g., installer programs). A ROM (read-only memory)112generally accommodates basically fixed data as part of programs and operation parameters used by the CPU111. A RAM (random-access memory)113stores programs executed by the CPU111and parameters varied as needed during the program execution. The CPU111, ROM112and RAM113are interconnected by a host bus114constituted illustratively by a CPU bus.

The host bus114is connected via a bridge115to an external bus116such as a PCI (Peripheral Component Interconnect/Interface) bus.

A keyboard118is operated by the user to enter various commands into the CPU111. A mouse119is manipulated by the user to select or point to what is being displayed on a display120. The display120may illustratively be a liquid crystal display or a CRT (cathode ray tube) that allows diverse kinds of information to appear in text or as images. A hard disk drive (HDD)121drives hard disks to and from which programs and data are written and read for execution by the CPU111.

A drive122may be loaded with an optical disk31. The optical disk31may be a DVD (digital versatile disk), a DVD-RAM (random access memory), a CD-ROM, a CD-R (recordable)/RW (rewritable), or a music CD. The drive122reads data or programs from the loaded optical disk31and feeds the retrieved data or programs to the RAM113that is connected through an interface117, the external bus116, the bridge115, and the host bus114.

A memory reader/writer123may be loaded with a semiconductor memory32such as the portable device22. The memory reader/writer123reads data or programs from the loaded semiconductor memory32and supplies the retrieved data or programs to the RAM113connected via the interface117, external bus116, bridge115, and host bus114.

A USB (Universal Serial Bus) port124is connected illustratively with the portable device21through a suitable cable. The USB port124outputs to the portable device21the data (e.g., those including contents or commands to the portable device21) fed from the hard disk drive121, CPU111or RAM113through the interface117, external bus116, bridge115or host bus114.

A USB port125is connected illustratively with the portable device23through a suitable cable. The USB port125outputs to the portable device23the data (e.g., those including contents or commands to the portable device23) fed from the hard disk drive121, CPU111or RAM113through the interface117, external bus116, bridge115or host bus114.

Speakers126output sound relevant to the content of interest based on the data or sound signals fed from the interface117.

The keyboard118, mouse119, display120, hard disk drive121, drive122, memory reader/writer123, USB port124and125, and speakers126are connected to the interface117. In turn, the interface117is connected to the CPU111through the external bus116, bridge115, and host bus114.

A communication interface127is connected to the network10and transmits data in packets over the network10, the data having being fed from the CPU111or from the hard disk drive121(e.g., registration request or content transmission request) and packetized by a predetermined method. Furthermore, the communication interface127outputs, through the network10, to the CPU111, RAM113or hard disk drive121the packetized data (e.g., authentication key, contents, etc.).

The communication interface127connects to the CPU111through the external bus116, bridge115, and host bus114.

When the computer100of the above-described hardware structure carries out the programs stored on the hard disk drive121, the features specific to the invention are implemented by the computer100.

FIG. 4is a block diagram indicating a typical functional structure provided by the computer100. The functions shown inFIG. 4are implemented specifically by the CPU111executing the relevant programs. The functions of the OS controlling the computer100as a whole are omitted fromFIG. 4. It should be noted that the OS of the computer100has the ability to carry out instructions described in a reboot-executed instruction file154, in addition to the usual capabilities of the OS such as file management functions for the hard disk drive121and memory management functions for the RAM113.

Of the component functions shown inFIG. 4, those except for the functions of an installation support program acquisition unit131and a storage unit150are implemented by the computer100executing relevant modules153installed. Illustratively, the function of a content management unit134is implemented by the computer100carrying out the modules constituting the content management program. Likewise, the function of a display operation prompting unit135is implemented by the computer100executing the modules making up the display operation prompting program.

As described, the computer100implements the functions of the installation support program acquisition unit131, an installation support unit132, content management unit134, and display operation prompting unit135, as well as the functions of a recording unit136, a content purchase processing unit137, a purchasing driver138, and device drivers139,140.

The installation support program acquisition unit131has the ability to communicate with the content management program offering server11through the network10. In response to the user's input operation through the keyboard118or mouse119, the installation support program acquisition unit131acquires the installation support program from the content management program offering server11.

Illustratively, where the installation support program is to be acquired through the network10, the installation support program acquisition unit131first transmits an installation support program acquisition request to the content management program offering server11and downloads the installation support program in return. The installation support program acquisition unit131stores the downloaded installation support program into the storage unit150.

The installation support program acquisition unit131may alternatively acquire the installation support program from the optical disk31loaded in the drive122in response to the input operation by the user through the keyboard118or mouse119. If the installation support program is to be acquired from the optical disk31such as a CD-ROM, the installation support program131first gains access to the optical disk31through the drive122and retrieves the installation support program from the optical disk31. The installation support program131stores the retrieved installation support program into the storage unit150.

The function of the installation support unit132is implemented by the computer100executing the installation support program acquired by the installation support program acquisition unit131. Other functions are then carried out by the installation support unit132when the unit is activated.

The installation support unit132performs processing to get the content management program installed into the computer100. The installation support unit132is started by the computer100executing the installation support program acquired by the installation support program acquisition unit131.

More specifically, the installation support unit132references the contents of the location file in response to the user's input operation through the keyboard118or mouse119and acquires a setting file152from the location indicated by the location file. Where the setting file152is to be acquired over the network10, the installation support unit132transmits a setting file acquisition request to the content management program offering server11and downloads the setting file152in return. If the setting file152is to be acquired from the optical disk31, the installation support unit132accesses the optical disk31via the drive122and reads out the setting file152from the optical disk31. Where to acquire the setting file152is determined by referring to the location file (included in the installation support program). The installation support unit132stores the setting file152thus acquired into the storage unit150.

The installation support unit132compares the contents of the setting file152(i.e., latest version numbers of the modules involved) with the operation environment of the computer100(version numbers of the modules already installed), and creates a list of the modules to be installed (installable module list) accordingly. The installation support unit132causes the display120to display the installable module list thus created so that the user viewing the list may select modules to be installed.

The installation support unit132acquires modules for reproducing or managing music data in response to the user's input operation through the keyboard118or mouse119. Where the modules153are to be acquired via the network10, the installation support unit132transmits a module acquisition request to the content management program offering server11and display operation prompting program offering server12, and downloads the relevant modules therefrom. If the modules153are to be acquired from the optical disk31, the installation support unit132accesses the optical disk31through the drive122and reads out the modules153from the optical disk31. The installation support unit132stores the downloaded or retrieved modules153into the storage unit150before installing the modules into the computer100.

Some modules153may include a dedicated installer. Where a module153having a dedicated installer is to be installed, the installation support unit132first starts the dedicated installer which in turn installs the module in question.

Other modules153may include the modules of the most recent versions constituting the installation support program. In that case, the installation support unit132writes to a reboot-executed instruction file154an instruction for installing the latest modules of the installation support program.

The content management unit134is a function implemented when those of the installed modules153which are designed for content management are started. The content management modules are illustratively described in the form of shuffled or encrypted instructions so that their processes are hidden from the outside and shielded against interpretation (e.g., so that the instructions cannot be identified even if the user reads out the content management unit134). Details of the content management unit134will be discussed later.

The display operation prompting unit135causes a content list to appear on the display120, accepts content processing requests made by the user through the keyboard118or mouse119, and forwards the processing requests to the content management unit134. The display operation prompting unit135is commonly called “Jukebox.”

During content registration processing, the display operation prompting unit135transmits a previously stored ID of the content management unit134to the EMD registration server13over the network10, receives an authentication key and an EMD selection unit134afrom the EMD registration server13, and supplies the received authentication key and EMD selection unit134ato the content management unit134. Details of the display operation prompting unit135will be discussed later.

The recording unit136causes a predetermined window image to appear and, based on the operations made through the keyboard118or mouse119, retrieves data such as recording times of contents from the optical disk31(i.e., CD) loaded in the drive122.

In keeping with the recording times of contents read from the CD, the recording unit136requests the WWW server16or17over the network10to transmit the data corresponding to the CD (e.g., album name or artist name) or the data relevant to the contents recorded on the CD (e.g., music titles). The recording unit136thus receives from the WWW server16or17the data corresponding to the CD or relevant to the contents recorded on the CD.

The recording unit136supplies the display operation prompting unit135with the received data which correspond to the CD or are relevant to the contents recorded on the CD.

Furthermore, upon input of a recording command, the recording unit136reads out the contents from the optical disk31(CD) loaded in the drive122and outputs the retrieved contents to the content management unit134.

The content purchase processing unit137requests the EMD server14over the network10to transmit relevant contents while receiving contents from the EMD server15. Upon receipt of the contents from the EMD server15, the purchasing driver138carries out charge processing.

The purchasing driver138is a function implemented by use of what is known as a plug-in program (module). The module of the purchasing driver138is installed together with the modules of the content management unit134; that module is either supplied from the EMD registration server13over the network10or read from a suitable CD. When installed in the computer100, the purchasing driver138sends and receives data to and from the content management unit134through an appropriate interface furnished by the content management unit134.

The purchasing driver138requests the EMD server15over the network10to transmit predetermined contents and receives the requested contents from the EMD server15. Upon receipt of the contents from the EMD server15, the purchasing driver138carries out charge processing.

In response to requests from the content management unit134, the device driver139sends processing requests and data to the portable device21. In addition, the device driver139receives data from the portable device21and hands the received data over to the content management unit134.

The device driver140transmits processing requests and data to the portable device23in response to requests from the content management unit134. Furthermore, the device driver140receives data from the portable device23and hands the received data over to the content management unit134.

The storage unit150is constituted by storage regions of the RAM113and hard disk drive121. As such, the storage unit150accommodates the setting file152, multiple modules153, reboot-executed instruction file154, and a content database155. The setting file152stored in encrypted form in the content management program offering server11is placed into the RAM113after being decrypted but will not be stored onto the hard disk drive121once decrypted. The reboot-executed instruction file154contains the instructions that are executed only once by the computer100next time the OS is rebooted. After carrying out all instructions in the reboot-executed instruction file154, the computer100deletes the contents of the reboot-executed instruction file154.

FIG. 5is a block diagram sketching a typical functional structure of the installation support unit132. The installation support unit132is made up of a download unit132a, a decryption unit132b, a user environment analysis unit132c, an installable module determination unit132d, an installation unit132e, and an inter-installer communication interface132f.

The decryption unit132bdecrypts a location file141athat is included in encrypted form in the installation support program. After the decryption, the decryption unit132btransfers to the download unit132ainformation indicating the location of the setting file152which is recorded in the location file141a.

Upon receipt of the setting file152in encrypted form from the download unit132a, the decryption unit132bdecrypts the received setting file152. The decryption unit132bhands the decrypted setting file152over to the user environment analysis unit132cand installable module determination unit132d.

When receiving information denoting the location of the setting file152from the decryption unit132b, the download unit132agains access to the content management program offering server11over the network10and downloads the setting file152from the content management program offering server11.

On receiving location information (i.e., about where the modules to be downloaded are located) from the installable module determination unit132d, the download unit132adownloads the relevant modules accordingly from the content management program offering server11and display operation prompting program offering server12. The download unit132athen hands the downloaded modules over to the installation unit132e.

The user environment analysis unit132canalyzes the contents of the setting file152received from the decryption unit132bin order to determine whether or not the computer100contains previously installed programs whose information such as version number information is defined in the setting file152. If the computer100is judged to have such programs installed therein, the user environment analysis unit132cchecks the version numbers of these programs. Thereafter the user environment analysis unit132ctransfers to the installable module determination unit132dthe version number information about the programs already installed in the computer100.

The installable module determination unit132dcreates an installable program list based on the setting file152from the decryption unit132bas well as on the version number information about the programs sent from the user environment analysis unit132c. More specifically, the installable module determination unit132dcompares the version numbers of the programs defined in the setting file152with the version numbers from the user environment analysis unit132cof the programs already installed in the computer100. If the comparison reveals any program that is later in version than its existing counterpart, the installable module determination unit132dadds information about that program to the installable program list.

Furthermore, the installable module determination unit132dcauses the contents of the created installable program list to appear on the display120so that the user viewing the list may be able to select the programs to be installed. When the target programs to be installed are selected by the user's input operation, the installable module determination unit132dtransfers to the download unit132ainformation about the selected programs.

Upon receipt of modules from the download unit132a, the installation unit132einstalls the received modules into the computer100. The modules thus installed are stored into the storage unit150as the modules153executable by the computer100.

When installing the installation support program of an updated version, the installation unit132einserts into the reboot-executed instruction file154necessary instructions for installing the updated installation support program.

If the modules to be installed are those constituting the display operation prompting program, the installation unit132erequests the inter-installer communication interface132fto start a display operation prompting unit installer133.

The inter-installer communication interface132fcommunicates with the display operation prompting unit installer133. More specifically, the inter-installer communication interface132fcauses the installation support unit132to start installing the modules in response to a starting request from the display operation prompting unit installer133. Responding to a request from the installation unit132e, the inter-installer communication interface132factivates the requested display operation prompting unit installer133.

In addition, the inter-installer communication interface132freceives information about processing status from the other components of the installation support unit132(download unit132a, decryption unit132b, user environment analysis unit132c, installable module determination unit132d, and installation unit132e), and hands the received information over to the display operation prompting unit installer133.

FIG. 6is a diagram presenting a typical data structure of the setting file152. The setting file152contains module information152aabout each of the modules registered in the content management program offering server11and display operation prompting program offering server12. The module information152aincludes a common name, an application type, a sub-application type, remarks, an application name, a location, a version number, a sub-version number, and a must-installed flag about the module in question.

The common name is a name commonly attributed to the module of interest, such as an “Installer” or “Any Jukebox.” The “Installer” is a common name of the installation support program, and “Any Jukebox” is a common name attributed to the display operation prompting program.

The application type is an identifier identifying the type of the module. The application type designates different ways the module in question is handled by the user environment analysis unit132c, installable module determination unit132d, and installation unit132e. Illustratively, the user environment analysis unit132cdetermines how to acquire the version number information about the existing program depending on the application type. Where the application type indicates an “Installer” (installation support program), the installable module determination unit132dalways regards the latest version of the corresponding module as the module to be installed.

If the application type indicates “Installer,” then the installation unit132eedits the reboot-executed instruction file154; if the application type denotes a display operation prompting program installer, the installation unit132estarts the corresponding display operation prompting unit installer133; if the application type indicates any other type, the installation unit132einstalls the applicable module.

The sub-application type provides information for allowing the module in question to be classified into a more detailed category.

The remarks carry information that is specifically needed for installing the module in question.

The application name denotes a proper name given to the module.

The location provides location information defining where the module in question is located. If the module is retained in the display operation prompting program offering server12, then a URL (Uniform Resource Locator) of the module is furnished by the location information. Where the module is offered on a storage medium such as a CD, the location information denotes a relative path from the location where the installation support program is recorded, to the location where the module is recorded (i.e., relative locational relationship in the directory structure).

The version number indicates information about the version number of the module stored in the designated module location.

The sub-version number is information which denotes the best-suited version number of the module to be installed depending on the different environment of the computer100. Where the sub-version number is provided, the designated module location accommodates a module that integrates a plurality of versions. The sub-version number is described in a format such as “version2000=0.0.0.2263” (the value 2000 indicates the type of the OS), which identifies the version number of the OS (or type of the OS) under which to install the module in question.

The must-installed flag is a flag that indicates whether or not installation of the module is indispensable. Illustratively, the module must always be installed if the must-installed flag is set to “1,” and may or may not be installed if the flag is set to “0.”The module whose installation is mandatory cannot be left out discretionally by the user's input operation.

FIG. 7is a table listing a typical classification of each module. With this embodiment, the modules are classified into the application type and sub-application type. In the example ofFIG. 7, the application type indicating an installer proper is set for “−1,” the application type indicating a driver program is set for “0,” the application type indicating a plug-in program is set for “1,” the application type indicating a content management program is set for “2,” and the application type indicating a display operation prompting program is set for “3.”

The sub-application type for the installer proper is “don't care.” As its wording implies, this sub-application type has no meaning. The sub-application types for the driver program are “ami,” “cbi,” “falcon” and “vmc.” These sub-application types are identifiers that identify the specifications of drivers and the types of the devices to be controlled.

In this example, the sub-application type determines under which OS each driver program can be installed in consideration of the licensing agreement in effect. The installation support program may be arranged to contain information defined such as to designate corresponding relations between each driver program on the one hand, and the type and version number of the OS under which the driver program in question can be installed on the other hand.

The sub-application types for the plug-in program, content management program, and display operation prompting program are “don't care.”

FIG. 8is a diagram portraying a typical functional structure of the display operation prompting unit installer133. The display operation prompting unit135includes an inter-installer communication interface133aand an installation unit133b. The inter-installer communication interface133acommunicates with the installation support unit132. More specifically, the inter-installer communication interface133acauses the display operation prompting unit installer133to start installing the modules153in response to a starting request from the installation support unit132. Responding to a request from the installation unit133b, the inter-installer communication interface133aoutputs a starting request to the installation support unit132. In addition, the inter-installer communication interface133areceives information about installation status from the installation support unit132and hands the received information over to the installation unit133b.

The installation unit133binstalls the display operation prompting program in response to the user's input operation or a request from the inter-installer communication interface133a. Upon receipt of information from the inter-installer communication interface133aabout the status of the installation performed by the installation support unit132, the installation unit133bcauses the display120to indicate messages reflecting the received information.

The installation unit133bmay request the installation support unit132to install part or all of the display operation prompting program. In that case, the installation unit133bcauses the inter-installer communication interface133ato output a request to start the installation support unit132.

FIG. 9is a block diagram picturing a typical functional structure of the content management unit134. The content management unit134includes an EMD selection unit134a, a check-in/check-out management unit134b, an encryption method conversion unit134c, a compression method conversion unit134d, an encryption unit134e, a use condition conversion unit134f, a signature management unit134g, an authentication unit134h, a decryption unit134i, and a PD-dedicated driver134j.

When the content management unit134is installed into the computer100, the EMD selection unit134ais not included in the content management unit134but is received from the EMD registration server13over the network10during an EMD registration process. The EMD selection unit134aselects connection either to the EMD server14or to the EMD server15, allowing the content purchase processing unit137or purchasing driver138to communicate with the selected EMD server14or15(e.g., for the purchase of content or for downloading of content).

Based on the check-in or check-out setting in effect and on a use condition file retained in the content database155, the check-in/check-out management unit134bchecks out contents from content files within the content database155to any of the portable devices21through23or checks in contents from these portable devices21through23.

Following the check-in or check-out process, the check-in/check-out management unit134bupdates use condition data in the use condition file recorded in the content database155.

The encryption method conversion unit134cconverts the encryption method of incoming contents to that of existing contents in the content files stored by the content database155, the incoming contents being received by the content purchase processing unit137from the EMD server14over the network10or received by the purchasing driver138from the EMD server15via the network10.

When checking out any existing content to any one of the portable devices21through23, the encryption method conversion unit134cencrypts the content in question by an encryption method compatible with the selected portable device.

The compression method conversion unit134dconverts the compression method of incoming contents to that of existing contents in the content files stored by the content database155, the incoming contents being received by the content purchase processing unit137from the EMD server14over the network10or received by the purchasing driver138from the EMD server15via the network10.

Upon checking out any existing content to any one of the portable devices21through23, the compression method conversion unit134dcompresses the content of interest by a compression method compatible with the portable device in question.

The encryption unit134econverts (unencrypted) contents, retrieved illustratively from a CD and supplied from the recording unit136, by the encryption method of existing contents in the content files stored by the content database155.

The use condition conversion unit134fconverts incoming content use condition data (so-called usage rule) to the format of existing content use condition data in the use condition data file stored by the content database155, the incoming content use condition data being received by the content purchase processing unit137from the EMD server14over the network10or received by the purchasing driver138from the EMD server15via the network10.

Upon checking out any existing content to any one of the portable devices21through23, the use condition conversion unit134fconverts the relevant use condition data into those compatible with the portable device being selected.

Before performing a check-in or check-out process, the signature management unit134gchecks for falsified use condition data based on the signatures included in the use condition data in the use condition file retained by the content database155. Following the check-in or check-out process, the signature management unit134gupdates the signatures in the use condition data in accordance with any updates in the use condition data in the use condition file stored by the content database155.

The authentication unit134hcarries out two-way authentication between the content management unit134and the content purchase processing unit137, as well as between the content management unit134and the purchasing driver138. Furthermore, the authentication unit134hretains authentication keys for use in the two-way authentication between the EMD server14and the content purchase processing unit137as well as between the EMD server15and the purchasing driver138.

The authentication keys to be utilized by the authentication unit134hupon two-way authentication are not stored in the unit134hwhen the content management unit134is installed into the computer100. These keys are fed from the EMD registration server13and stored into the authentication unit134honly after registration is normally carried out by the display operation prompting unit135.

The decryption unit134idecrypts contents when they are to be reproduced by the computer100from content files in the content database155.

When a given content is to be checked out to the portable device22or a content is to be checked in therefrom, the PD-dedicated driver134jsupplies the content in question to the portable device22or sends relevant commands to the device22so that the latter will carry out necessary processing.

When a given content is to be checked out to the portable device21or a content is to be checked in therefrom, the PD-dedicated driver134jsupplies the content in question to the device driver139or sends relevant commands to the device driver139so that the latter will perform necessary processing.

When a given content is to be checked out to the portable device23or a content is to be checked in therefrom, the PD-dedicated driver134jsupplies the content in question to the device driver140or sends relevant commands to the device driver140so that the latter will execute necessary processing.

FIG. 10is a diagram showing a typical functional structure of the display operation prompting unit135. This display operation prompting unit135causes predetermined window images to appear on the display120based on a filtering data file135a, a display data file135b, image files135cthrough135d, or a historical data file135e. In keeping with the operations performed through the keyboard118or mouse119, the display operation prompting unit135causes the content management unit134to perform processes such as the check-in or check-out process.

The filtering data file135a, recorded on the hard disk drive121, contains data that are used to assign weights to the contents in the content files retained by the content database155.

The display data file135b, stored on the hard disk drive121, contains data corresponding to the contents in the content files retained by the content database155.

The image files135cthrough135d, stored on the hard disk drive121, contains images that correspond either to the content files in the content database155or to packages.

The historical data file135e, recorded on the hard disk drive121, contains such historical data as the number of times each of the contents in the content files in the content database155was checked out or checked in, and the dates on which the check-in or check-out processes were carried out.

FIG. 11is a diagram depicting a typical internal structure of the content database155. The content database155stores contents into any one of content files15511through1551N (on the hard disk drive121), the contents being supplied from the content management unit134after getting compressed and encrypted by suitable methods. The content database155also stores use condition data into any one of use condition files15521through1552N (on the hard disk drive121) corresponding to the content files15511through1551N respectively, the use condition data being associated with the contents stored in the content files15511through1551N respectively.

Alternatively, the content database155may store as records the content files15511through1551N or the use condition files15521through1552N.

Illustratively, the use condition data corresponding to the contents stored in the content files15511through1551N are stored in the use condition files15521through1552N respectively.

The computer100of the above-described structure permits installation of programs for protecting copyrights of music data or the like and the display operation prompting program for manipulating the music data while protecting the copyrights associated with the data. Described below are procedures for installing the modules constituting such programs.

FIG. 12is the first half of a flowchart of steps constituting a module installation procedure. Each of the steps inFIG. 12is described below in order of the step numbers shown assigned. This procedure is executed by the computer100starting the installation support unit132based on the installation support program acquired through the installation support program acquisition unit131.

In step S11ofFIG. 12, the user environment analysis unit132cin the installation support unit132determines whether or not the free space of the hard disk drive121is almost exhausted. A hard disk drive121devoid of free space applies when a memory shortage has caused the OS to issue a warning or when a necessary memory swap space cannot be secured. If the hard disk drive121is judged nearly exhausted, step S12is reached. If the hard disk drive121still has available space, then step S13is reached.

In step S12, the user environment analysis unit132cin the installation support unit132causes a message to appear on the display120indicating a hard disk capacity shortage, and terminates the processing.

In step S13, the user environment analysis unit132cin the installation support unit132determines whether or not the current version number of the OS running on the computer100is older than a predetermined version number. If the version number of the OS is judged to be too old, step S14is reached; otherwise step S15is reached.

In step S14, the user environment analysis unit132cin the installation support unit132displays on the display120the environment in which the modules constituting the copyright management program and others can operate and the current environment of the computer100(e.g., version number of the OS), and terminates the processing.

In step S15, the installable module determination unit132djudges whether or not installation is to take place via the network10. The judgment is made illustratively on the user's input operation designating the location of the modules. Where installable modules are located on a locally connected device being scanned (e.g., hard disk drive121or CD-ROM loaded in the drive122), the installation may be judged to take place from that local device. If the installation is not judged to occur via the network10, step S16is reached; if the installation is to be carried out through the network10, then step S17is reached.

In step S16, the installation support unit132performs a module selection process on the local device. The process involves determining the modules to be installed from the local device, as will be described later in more detail. Step S16is followed by step S18ofFIG. 13(as shown continued through termination (A)).

In step S17, the installation support unit132performs a module selection process over the network10. The process involves determining the modules to be installed via the network10, as will be described later in more detail. Step S17is followed by step S18ofFIG. 13(as shown continued through termination (A)).

FIG. 13is the second half of the flowchart of steps constituting the module installation procedure. Each of the steps inFIG. 13is described below in order of the step numbers shown assigned.

In step S18, the installation unit132ein the installation support unit132determines whether or not the installation support unit132itself is to be updated.

That is, the installation support unit132determines whether or not the installation support program is included in the modules selected to be installed in step S16or S17. If the installation support program is found included in the modules to be installed, then the installation support unit132judges that it is going to update itself. If the installation support program is not judged included in the modules to be installed, the installation support unit132determines that it is not going to update itself.

If the installation support unit132is going to update itself, step S19is reached; otherwise step S20is reached.

In step S19, the installation unit132ein the installation support unit132sets reboot-executed installation instructions for the OS. More specifically, the installation support unit132edits the reboot-executed instruction file154by adding necessary instructions to the reboot-executed instruction file154. The instructions to be added include those for deleting the old installation support program and copying the updated modules of the new installation support program to the location where the old program was stored (i.e., in the same directory of the directory structure).

In step S20, the installation unit132ein the installation support unit132installs basic modules. The basic modules are the modules other than those making up the installation support program and the display operation prompting program.

In step S21, the installation unit132ein the installation support unit132determines whether or not to install the modules constituting the display operation prompting unit135.

More specifically, the installation support unit132judges whether or not the modules making up the display operation prompting unit135are included in the modules selected to be installed in step S16or17. If the modules of the display operation prompting unit135are found included in the modules selected to be installed, the installation support unit132determines that the display operation prompting unit135are to be installed. If the modules of the display operation prompting unit135are not found among the modules selected to be installed, the installation support unit132determines that the display operation prompting unit135will not be installed.

If the modules constituting the display operation prompting unit135are to be installed, step S22is reached; if these modules are not to be installed, then step S24is reached.

In step S22, the installation unit132ein the installation support unit132causes a message to appear on the display120indicating that the display operation prompting unit installer133is going to be started.

In step S23, the installation unit132ein the installation support unit132activates the display operation prompting unit installer133. Thereafter the installer133starts installing the modules making up the display operation prompting unit135. When installation of the modules is completed, the processing is terminated.

In step S24, the installation unit132ein the installation support unit132gives an installation end message on the display120.

In step S25, the installation unit132ein the installation support unit132issues a reboot instruction to the OS and terminates the processing. Upon receipt of the reboot instruction, the computer100executes a reboot process.

The necessary modules are installed into the computer100in the manner described above. If the procedures inFIGS. 12 and 13are carried out at the request of the display operation prompting unit installer133, the result of the processing is reported to the installer133.

FIG. 14is a flowchart of steps constituting a typical process to select modules to be installed through a local device. Each of the steps inFIG. 14is described below in order of the step numbers shown assigned.

In step S31ofFIG. 14, the installable module determination unit132din the installation support unit132displays on the display120a greeting message for installation of modules from a local device.

In step S32, the installable module determination unit132din the installation support unit132creates an installable module list. Details of this process will be described later.

In step S33, the installable module determination unit132din the installation support unit132causes an installable module selection screen to appear on the display120.

In step S34, the installable module determination unit132din the installation support unit132determines whether or not any installable modules have been selected by the user. If such modules are judged to have been selected, step S35is reached; otherwise step S34is repeated.

In step S35, the installable module determination unit132din the installation support unit132judges whether or not the hard disk drive121has enough free space. More specifically, the installation support unit132calculates the necessary disk capacity for installing all modules selected by the user, and checks to see if the hard disk drive121has at least the calculated capacity. If the hard disk drive121is judged to have a sufficient free space, then the current process of selecting modules to be installed through the local device is terminated, and step S18ofFIG. 13is reached. If the available space is not sufficient, then step S33is reached and installable modules are again selected by the user.

FIG. 15is the first half a flowchart of steps constituting a typical process to select modules to be installed via a network. Each of the steps inFIG. 15is described below in order of the step numbers shown assigned.

In step S41ofFIG. 15, the download unit132ain the installation support unit132displays on the display120a greeting message indicating that installation is to take place via the network10.

In step S42, the download unit132ain the installation support unit132displays on the display120a message confirming that the computer is going to connect with another server via the network10In step S43, the decryption unit132bin the installation support unit132decrypts the location file141adefining where the setting file152is located.

In step S44, the download unit132ain the installation support unit132attempts to establish connection via the network10with the server at the location defined by the location file141a(e.g., content management program offering server11).

In step S45, the download unit132ain the installation support unit132judges whether or not connection with the server is successfully established. If the connection is judged successful, step S46is reached; if the connection is judged to have failed, step S47is reached.

In step S46, the installation support unit132performs a process to create an installable module list. Details of the process will be described later. Step S46is followed by step S48inFIG. 16through termination B as indicated.

In step S47, the download unit132ain the installation support unit132causes a message to appear on the display120indicating a failed connection, and terminates the processing.

FIG. 16is the second half of the flowchart of steps constituting the process to select modules to be installed via the network. Each of the steps inFIG. 16is described below in order of the step numbers shown assigned.

In step S48, the installable module determination unit132din the installation support unit132displays an installable module selection screen on the display120.

In step S49, the installable module determination unit132din the installation support unit132judges whether or not any installable modules have been selected by the user's input operations. If installable modules are judged to have been selected, step S50is reached; if no such modules are selected, step S49is repeated.

In step S50, the installable module determination unit132din the installation support unit132judges whether or not the hard disk drive121has enough free space. More specifically, the installation support unit132calculates the necessary disk capacity for installing all modules selected by the user, and checks to see if the hard disk drive121has at least the calculated capacity. If the hard disk drive121is judged to have the sufficient free space, step S51is reached. If the available space is not sufficient, then step S48is reached and installable modules are again selected by the user.

In step S51, the installable module determination unit132din the installation support unit132transfers to the download unit132aa list of user-selected modules and must-installed modules (the list is called a download list). The download unit132ashows the download list on the screen of the display120.

In step S52, the download unit132ain the installation support unit132refers to the setting file to find out the locations of the modules registered in the file, and starts downloading the modules from the servers corresponding to the located modules. Download of each module is performed in the background (i.e., as a task different from the tasks that are carried out primarily by the user).

In step S53, the download unit132ain the installation support unit132displays a download screen on the display120indicating that downloading is underway.

In step S54, the download unit132ain the installation support unit132judges whether or not a download cancel command is issued by the user's operation. If the cancel command is not issued, step S55is reached; if the cancel command is judged issued, step S57is reached.

In step S55, the download unit132ain the installation support unit132determines whether or not downloading is completed. If the download is judged completed, step S56is reached; if the download has yet to be completed, step S54is reached again.

In step S56, the download unit132ain the installation support unit132causes a download complete screen to appear on the display120indicating that the download has been completed. Step S56is followed by step S18inFIG. 13.

In step S57, the download unit132ain the installation support unit132displays on the display120a cancel confirmation screen so as to ascertain whether the cancel command is indeed issued by the user.

In step S58, the download unit132ain the installation support unit132checks to see whether or not the user has confirmed the cancel command on the cancel confirmation screen. If the user is judged to have performed the operation confirming the cancellation, step S59is reached. If the user is found to have annulled the cancellation on the cancel confirmation screen, then step S54is reached again.

In step S59, the download unit132ain the installation support unit132halts the download and terminates the processing.

FIG. 17is a flowchart of steps constituting a typical process to create an installable module list. Each of the steps inFIG. 17is described below in order of the step numbers shown assigned.

In step S71, the download unit132ain the installation support unit132downloads the setting file from the applicable server. The download unit132ahands the downloaded setting file over to the decryption unit132b.

In step S72, the decryption unit132bin the installation support unit132decrypts the setting file.

In step S73, the installable module determination unit132din the installation support unit132selects any one of unselected module information items from the setting file and analyzes the application type of the selected module information.

In step S74, the installable module determination unit132din the installation support unit132acquires environment information about the computer100. The environment information includes not only the version numbers of the currently installed modules but also the version numbers of the other modules (those of the OS, device drivers, etc.) working in cooperation with these modules.

In step S75, the installable module determination unit132din the installation support unit132compares the environment information acquired in step S74with the module information selected in step S73, and judges whether or not the module in question is incompatible.

The module is judged incompatible illustratively when a licensing agreement between the OS vendor and the provider of the module in question does not allow that module to be installed under a specific version of the OS. Judging whether or not the licensing agreement involved is satisfied to let the module operate under the OS is one precondition for allowing the module to be installed.

Some licenses prohibit distribution of the modules over the network or otherwise restrict the routes of module distribution. With such eventualities taken into account, the installable module determination unit132dfinds out the route through which each module has been acquired and judges whether or not that route is admissible under the licensing agreement in effect. The route of module acquisition is determined illustratively by referring to the description of locations in the setting file. If URLs are used to describe module locations in the file, the corresponding modules are judged to have been acquired via the network10. If relative paths of the directory structure are described as module locations, that means the modules have been acquired from a storage medium such as a CD-ROM.

Information denoting what kinds of cases involve incompatible modules is defined illustratively within the installation support program. Alternatively, such information is included in the “Remarks” fields of the module information152ain the setting file so that the information may be downloaded together with the setting file.

If the module corresponding to the module information selected in step S73is judged to be an incompatible module, step S79is reached. If the module represented by the module information selected in step S73turns out to be a compatible module, step S76is reached.

In step S76, the installable module determination unit132din the installation support unit132determines whether or not an old-version module is in use. If the old-version module is found to be used, step S77is reached; if the old-version module is not in use, step S79is reached.

In step S77, the installable module determination unit132din the installation support unit132judges whether or not the module in question is a resident module in the computer100. The resident module is a module whose environment information describes it as resident in the computer and which is actually stored at a specific location of the computer. A non-resident module, by contrast, is a module whose environment information describes it as resident in the computer but which is not actually stored at any specific location of the computer.

If the module is found to be a resident module, step S78is reached. If the module is judged non-resident, then step S79is reached.

In step S78, the installable module determination unit132din the installation support unit132adds the module information selected in step S73to the downloadable module list.

In step S79, the installable module determination unit132din the installation support unit132determines whether or not the module information selected in step S73is the last module information (i.e., unselected module information no longer exists). If the selected module information is judged to be the last module information, step S33inFIG. 14is reached. If the module information is other than the last module information, step S73is reached again.

As described above, of the installable modules constituting the content management program and display operation prompting program, those that are considered indispensable and those selected by the user are installed into the computer100.

Where the modules defining the workings of the installation support unit132itself (i.e., installation support program) are to be updated, the actual installation is carried out when the computer100is rebooted. What takes place upon reboot is described below.

FIG. 18is a flowchart of steps constituting a typical reboot process of the computer100. Each of the steps inFIG. 18is described below in order of the step numbers shown assigned. It should be noted that the process ofFIG. 18is a process that is carried out when the computer100is started up or fed with power.

In step S81, the computer100is initialized using the programs stored in the ROM112. Initialization of the computer100illustratively involves setting initial values to the registers of the CPU111and resetting the host bus114and external bus116.

In step S82, the computer100performs a ROM-based system check that typically involves verifying the storage capacity of the RAM113and detecting the hard disk drive121being connected.

In step S83, the computer100starts the OS. An IPL (initial program loader), located illustratively in a specific region on the hard disk drive121, is loaded by the computer100from there into the RAM113. The computer100then loads the main body of the OS from the hard disk drive121in accordance with the IPL, whereby the OS is started.

When programs constituting part of the OS are loaded into the RAM113so that further processes will be performed by these loaded programs of the OS, the following steps are carried out:

In step S84, the OS establishes the user environment in accordance with the instructions described in the reboot-executed instruction file154. If the reboot-executed instruction file154contains instructions designating installation of the installation support program, then the OS installs the installation support program. Illustratively, the OS deletes the old installation support program from a specific location and copies from somewhere else the modules making up the new installation support program to that location where the old program was stored.

In step S85, the OS deletes the contents of the reboot-executed instruction file. That is, the instructions contained in the reboot-executed instruction file are executed only once and will not be carried out next time the OS is rebooted.

In step S86, the OS displays an initial screen on the display120upon completion of the reboot and terminates the processing.

In this manner, the installation support program is installed by the OS at the time of its reboot.

What follows is a description of how the above-described system typically installs “OpenMG” (registered trademark) which is a computer management program with capabilities to protect copyrights of music data, and “Jukebox,” a display operation prompting program for music data. Examples of the setting file and typical display screens in effect upon program installation are explained below.

FIGS. 19A and 19Bshow descriptive examples of setting files.FIG. 19Ais a diagram of a setting file152bdescribed for acquiring modules via a network, andFIG. 19Bis a diagram of a setting file152cdescribed for acquiring modules from a CD-ROM.

The setting file152bfor module acquisition over the network describes module information about an installer of a computer management program called [OpenMG Installer], module information about a computer management program called [OpenMG Core], and module information about a display operation prompting program called [Any Jukebox]. The setting file152cfor module acquisition from a CD-ROM describes module information about the display operation prompting program [Any Jukebox].

The setting files152band152cshown inFIGS. 19A and 19Bare text-format files. In these examples, the common name of module information involved is described in parentheses. The parenthesized description comes at the top of the information about the module in question.

The application type is indicated as “app type=,” sub-application type as “sub app type=,” application name as “app name=,” location as “repository=,” version number as “version=,” and must-installed flag as “must=.”

The setting file152bfor module acquisition over the network has its location descriptions paired with a URL each. The setting file152cfor module acquisition from the CD-ROM contains relative paths making up a location description.

Typical transitions of display screens will now be described by referring toFIGS. 20 through 25.

FIG. 20is a view of a typical initial screen510displayed upon startup of the installation support program. The initial screen510inFIG. 20appears when modules are to be downloaded over the network (e.g., the Internet).

The initial screen510includes a greeting message display area511, a Next button512, and a Cancel button513. The greeting message display area511indicates greetings such as a welcome message and messages informing the user that modules (called components here) are to be downloaded over the Internet. The Next button512is pushed for transition to the next screen. In this example, pushing the Next button512causes a network connection confirmation screen to appear on the display120. The Cancel button513is pushed in order to cancel execution of the installation support unit. Specifically, pushing the Cancel button513halts execution of the installation support unit and causes the initial screen510to disappear from the display120.

FIG. 21is a view of a typical network connection confirmation screen520. The network connection confirmation screen520includes a connection confirmation message display area521, a Back button522, a Next button523, and a Cancel button524. The connection confirmation message display area521indicates a message saying that connection with the network is about to be established.

The Back button522is pushed in order to go back to the preceding screen. In this case, pushing the Back button522brings the initial screen510ofFIG. 20back onto the display120. The Next button523is pushed for transition to the next screen. Pushing the Next button523here causes an installable module selection screen to appear on the display120. The Cancel button524is pushed in order to cancel execution of the installation support unit and causes the network connection confirmation screen520to disappear from the display120.

FIG. 22is a view of a typical installable module selection screen530. This screen530includes an installable module selection area531, a Back button532, a Next button533, and a Cancel button534.

The installable module selection area531displays the names of the modules contained in the installable module list. In the installable module selection area531, each module name is furnished with a check box. The user may pick the check boxes of the modules desired to be installed using a mouse or the like. Each check box thus designated is given a check mark indicating that the corresponding module has been selected for installation.

The Back button532is pushed in order to go back to the preceding screen. In this case, pushing the Back button532brings the network connection confirmation screen520ofFIG. 21back onto the display120. The Next button533is pushed for transition to the next screen. Pushing the Next button533here causes a downloadable module list display screen to appear on the display120. The Cancel button534is pushed in order to cancel execution of the installation support unit. In this example, pushing the Cancel button534halts execution of the installation support unit and causes the installable module selection screen530to disappear from the display120.

FIG. 23is a view of a typical downloadable module list display screen540. The downloadable module list display screen540includes a downloadable module list display area541, a Back button542, a Next button543, and a Cancel button544.

The downloadable module list display area541shows the names of the modules selected on the installable module selection screen530.

The Back button542is pushed in order to return to the preceding screen. In this example, pushing the Back button542brings the installable module selection screen530ofFIG. 22back onto the display120. The Next button543is pushed for transition to the next screen. Pushing the Next button543here causes a download screen to appear on the display120. The Cancel button544is pushed in order to cancel execution of the installation support unit. Pushing the Cancel button544here halts execution of the installation support unit and causes the downloadable module list display screen540to disappear from the display120.

FIG. 24is a view of a typical download screen550. The download screen550includes a module download progress status display area551, a download processing progress status display area552, and a Cancel button553.

The module download progress status display area551, appearing for each module, displays in indicator fashion the name of the module currently being downloaded along with the download progress status of that module. By means of a darkened portion in the indicator, the module download progress status display area551shows the percentage of the already downloaded data as part of the whole module in question.

The download processing progress status display area552displays in indicator fashion the progress status of all target modules being downloaded. By means of a darkened portion in the indicator, the download processing progress status display area552shows the percentage of the already downloaded modules as part of all modules being targeted for download.

The Cancel button553is pushed in order to cancel execution of the installation support unit. Pushing the Cancel button553here halts execution of the installation support unit and causes the download screen550to disappear from the display120.

When all target modules have been downloaded, the display120shows a download complete screen, not shown, followed by the installation of the downloaded modules. If installation of the display operation prompting program is not carried out, the display screen120indicates the installation complete screen.

FIG. 25is a view of a typical installation complete screen560. The installation complete screen560includes an installation complete message display area561and an OK button562. The installation complete message display area561displays two messages: one indicating that the installation process has been normally terminated, the other urging the user to restart the computer100. The OK button562is pushed in order to terminate the processing of the installation support unit132and to restart the computer100. Specifically, pushing the OK button562closes the installation complete screen560on the display120and restarts the computer100.

The modules constituting the display operation prompting unit135may be supplied either by the vendor offering the installation support program in question or by different vendors.

FIG. 26is a schematic view showing a first example of a display screen given by the display operation prompting unit135. This is a typical display screen600of the display operation prompting unit135based on the display operation prompting program provided by the vendor that offers the installation support program.

The screen600includes a menu bar610, a music data operation prompting area620, an album display selection box630, an album display area640, and a music display area650.

The menu bar610has such menu items as “File” and “Edit” for inputting a command. When any one of the menu items is selected by use of the mouse or like means, a pull-down menu containing commands is displayed. The user selects desired commands from the pull-down menu, causing the computer100to execute the processes corresponding to the selected commands.

The music data operation prompting area620includes various buttons such as one for designating the reproduction of music data. Also included are a button for recording data from CDs and buttons for controlling currently selected music data as desired. The buttons for music data control include a stop button for stopping playback, a play button for starting and temporarily halting playback, a backward feed button for regaining the top of the currently playing piece of music, a forward feed button for reaching the top of the piece of music immediately following the currently playing music, a rewind button for rewinding the currently playing piece of music, and a fast-forward button for fast-forwarding the currently playing piece of music.

The album display selection box630permits selection of the title of an album or the kind of music to be displayed. For example, the album display selection box630allows the user to select the title or the kind of a desired album or music from such sources as user-edited original albums and “my-select” albums each containing user-selected pieces of music picked up from different albums. It is also possible for the user to specify a search condition in the album display selection box630so that only the titles of albums or the kinds of music meeting that condition may be displayed.

The album display area640displays a list of albums selected in the album display selection box630.

The music display area650shows the titles of the pieces of music contained in the currently selected album. In the music display area650, each piece of music is shown furnished with various items of information: the remaining number of times (No.) the music in question can be checked out, title of the music, the name of the performing artist, genre name of the music, playing time, and date of registration.

FIG. 27is a schematic view indicating a second example of the display screen given by the display operation prompting unit135. This is a typical display screen700of the display operation prompting unit135based on the display operation prompting program provided by a vendor other than that which offers the installation support program.

The screen700includes a menu bar710, a music data operation prompting area720, a music data I/O prompting area730, an album information display area740, and a music display area750.

The menu bar710has such menu items as “File” and “Edit.” When any one of the menu items is selected by use of the mouse or like means, a pull-down menu containing commands is displayed. The user selects desired commands from the pull-down menu, causing the computer100to execute the processes corresponding to the selected commands.

The music data operation prompting area720includes various buttons for controlling the currently selected music data as desired. The buttons for music data control include a stop button for stopping playback, a play button for starting and temporarily halting playback, a backward feed button for regaining the top of the currently playing piece of music, and a forward feed button for reaching the top of the piece of music immediately following the currently playing music.

The music data I/O prompting area730includes a recording button for recording music data from CDs, a button for displaying an album list, and a button for acquiring music data. When any one of the buttons in the music data I/O prompting area730is selected by use of the mouse or like means, the computer100carries out the process corresponding to the selected button.

The album information display area740displays such items of information as the name of the artist whose album is being selected, the title of the selected album, and the genre of the album.

The music display area750indicates the titles of the pieces of music contained in the currently selected album.

As described, the embodiment above of the invention allows the user utilizing the computer100to download the installation support program into the computer100so that the computer100may execute the downloaded program to start up the installation support unit132. Once the installation support unit132is started, the computer100can determine whether or not to install a plurality of modules153. Because the main bodies of the modules153have yet to be downloaded when the necessity or the compatibility of the installation is determined, it is possible to avoid downloading unnecessary or incompatible programs.

The above-described embodiment permits acquisition of information about the environment compatible with the types of modules. That is, relevant environment information can be acquired about various kinds of modules such as device drivers and plug-in components.

The embodiment above also allows the installation support program to upgrade itself. When thus upgraded, the installation support program can consistently address the modules of new application types every time they appear on the market.

The above-described embodiment allows the installation support unit132and the display operation prompting unit installer133to communicate with each other. This makes it possible for the display operation prompting unit installer133to start up the installation support unit132so that the installation support unit132may report the result of its processing to the display operation prompting unit installer133. That means the vendor that has created the display operation prompting modules may request the installation support unit132to install at the same time the modules for the content management unit134As a result, creation of the modules constituting the display operation prompting unit installer133is made much easier.

If the relevant must-installed flags are set in the setting file, the installer distributed by the vendor that offers the display operation prompting unit program always installs the display operation prompting unit program.

The embodiment above distributes the location file and setting file in encrypted form so that users are unable to know where the program modules are located. The decrypted location file and setting file are placed temporarily in the RAM113and then discarded once they have been used; these files are not stored on the hard disk drive121. That means modules cannot be obtained without recourse to the installation support unit132. This prevents users from installing at their own discretion any modules that are not allowed to be installed under the licensing agreement in effect or other restrictions in force.

Because the location file defines where the setting file is located, it is possible easily to change the storage location of the setting file. In other words, if the storage location of the setting file has been changed, the location file need only be modified in contents accordingly. Should the encryption of the location file be decrypted somehow, the locations of the modules involved can still be kept concealed by immediately changing the location of the setting file.

The embodiment of the invention has version numbers and sub-version numbers included in the setting file. This makes it possible to install under a specific OS the modules in versions different from those for other OSs. The modules to be downloaded have a plurality of their versions integrated therein, so that each client computer may install the modules in those versions that are compatible with the type or the version of the OS in use.

In the embodiment above, the display operation prompting unit installer133alone was shown calling up the installation support unit132. However, this is not limitative of the invention. Alternatively, other suitable applications (e.g., display operation prompting unit135) may invoke the installation support unit132.

A startup object (i.e., argument) may be attached to a startup instruction for calling up the installation support unit132. The attached object causes the installation support unit132to execute a specific type of control. Illustratively, an option “/a” attached to the startup instruction causes the installation support unit132to download all downloadable modules. That is, the option checks (i.e., turns on) the check boxes of all modules in the installable module selection screen530shown inFIG. 22.

An option “/moreboot” attached to the startup instruction keeps the installation support unit132from displaying an installation complete screen (such as one shown inFIG. 25) upon completion of the installation and prevents restarting of the computer100.

The processing functions described above are implemented by server and client computers. In such cases, server programs describing the processes of the functions implemented by the server computer are provided, together with client programs (such as the installation support program) describing the details of the functions implemented by each client computer. Executing the server programs allows each server computer to implement its processing functions shown performed by the above-described embodiment. Carrying out the client programs permits each client computer to implement its processing functions attributed to the computer100in the above-described embodiment.

The server and client programs describing the contents to be processed may be recorded on computer-readable storage media such as magnetic storage devices, optical disks, magneto-optical storage media, and semiconductor memories. The magnetic storage devices include hard disk drives, flexible disks (FD), and magnetic tapes. The optical disks include DVDs, DVD-RAMs, CD-ROMs, and CD-R/RWs. The magneto-optical storage media include MOs (magneto-optical disks).

To distribute the server and client programs typically involves marketing portable storage media such as DVDs and CD-ROMs carrying the programs. It is also possible for the client programs to be stored on a storage device of the server computer so that the programs may be transferred from the server computer to client computers over a network.

The server computer executing the server programs has these programs loaded into its storage device illustratively from a portable storage medium. Thereafter the server computer retrieves the server programs from its storage device and carries out processing in accordance with the programs. Alternatively, the server computer may read the server programs directly from the portable storage medium and execute processing based on the programs thus acquired.

Each client computer performing the client programs has these program loaded into its storage device illustratively from a portable storage medium or from the server computer through program transfer. Thereafter the client computer retrieves the client programs from its storage device to carry out processing in accordance with the retrieved programs. Alternatively, the client computer may read the client programs directly from a portable storage medium and perform processing based on the programs thus obtained. As another alternative, the client computer may execute the process corresponding to each client program whenever the program is transferred from the server computer.

As described and according to the invention, whether or not to install program modules is determined by acquiring environment information relevant to the types of these modules so that only the modules judged compatible with the environment of interest are allowed to be installed. This makes it possible for users to install only necessary program modules without becoming aware of specific conditions restricting the installation of the modules.