(57)【要約】【課題】複数のソフトウェアを連続的にインストールする場合のインストール処理全体の進捗状況を、利用者に分かりやすく表示できるようにする。【解決手段】ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取ってその内容に従って処理することにより、複数のソフトウェアを連続してインストールするインストール実行工程と、複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、インストール量の合計をインストール処理全体の進捗状況の１００％として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程とを具備する【選択図】図１８
2007213344.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール装置であって、
前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールすることが可能なインストール実行手段と、
前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の１００％として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示手段と、
を具備することを特徴とするインストール装置。
【請求項２】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアのファイル容量を用いることを特徴とする請求項１に記載のインストール装置。
【請求項３】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアのインストール時間を用いることを特徴とする請求項１に記載のインストール装置。
【請求項４】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアが有するファイル数を用いることを特徴とする請求項１に記載のインストール装置。
【請求項５】
インストール全体の進捗状況を表す１００％を各ソフトウェアに配分するために使用するインストール量の基準と、配分された各ソフトウェアごとの進捗状況を表示するために使用するインストール量の基準が異なることを特徴とする請求項２乃至４のいずれか１項に記載のインストール装置。
【請求項６】
前記表示手段に進捗状況を表示するために使用される各ソフトウェアのインストール量が、各ソフトウェアのインストール設定ファイルに記載されていることを特徴とする請求項１に記載のインストール装置。
【請求項７】
インストール開始からの経過時間を計測する計時手段と、インストール量の合計に対するインストール済みインストール量の割合に基づいて、インストール完了までに必要な時間を予測する終了時間予測手段と、前記終了時間予測手段における予測結果を表示する第２の表示手段とをさらに具備することを特徴とする請求項１に記載のインストール装置。
【請求項８】
前記インストール量の合計に対する前記インストール済みインストール量の割合が、予め定められた値に達するまでは、前記第２の表示手段に前記予測結果を表示しないことを特徴とする請求項７に記載のインストール装置。
【請求項９】
ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、
前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールするインストール実行工程と、
前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の１００％として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程と、
を具備することを特徴とするインストール方法。
【請求項１０】
請求項９に記載のインストール方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１１】
請求項１０に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記記憶媒体は、形状がディスクもしくはカード型で、交換、配布が可能な記憶媒体であることを特徴とする請求項１１に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに、複数のソフトウェアを連続してインストールする場合における、利用者への情報の提示技術に関するものである。
【背景技術】
【０００２】
近年、ＣＤ−ＲＯＭなどの交換可能なメディアや、インターネットなどのネットワークシステムを用いて、プログラムファイルやデータファイルを配布することは一般的に行われている。その際に、インストーラと呼ばれるプログラムを、配布対象のプログラムに添付して配布することが一般的である。インストーラは、配布されたプログラムを配布先のコンピュータシステムで実行可能にするために、配布先のコンピュータシステムに接続されたハードディスクなどの記憶装置に、配布されたファイルをコピーする。また、オペレーティングシステム上の必要な設定を自動的に行う処理をする機能も有する。
【０００３】
一般に、ソフトウェアのインストールに必要となる処理は、ソフトウェアによって少しずつ異なるため、あるソフトウェアを配布する際には、そのソフトウェア専用のインストーラが作成され、ソフトウェアに添付され配布される。このようなインストーラ作成作業の負荷を軽減するために、インストーラ作成ツールと呼ばれるソフトウェアを用いて、インストーラを半自動的に作成することが一般に行われている。例えば、非特許文献１に示したソフトウェアが、このような用途に多く使用されている。
【０００４】
また、このようなインストーラを作成する際に、インストーラの実行ファイルと、実際にインストーラが行う処理の内容とを、別のファイルとして用意することも行なわれている。この場合、各ソフトウェア専用のインストーラを作成する際には、インストーラの実行ファイルは変更せず、インストーラの処理内容を記載した、ソフトウェアインストール設定ファイルのみを書き換える。このような方法で、インストーラの作成手順を簡略化することが行われている。例えば、データファイルに、インストールするファイルの情報、および、ソフトウェアが動作するために必要となるオペレーティングシステムが管理するシステムファイルの更新データ等を記載するような発明が、特許文献１に示されている。
【０００５】
また、近年、ソフトウェアの大規模化に伴い、ソフトウェアを複数のコンポーネントに分離し、それぞれを独立して開発することが一般的に行われるようになった。このような開発形態においては、すべてのコンポーネントで、開発や市場への配布の日程を同期させる必要がないという利点がある。しかし、この開発形態を効率的に動作させるためには、それぞれのコンポーネントのインストーラについても、独立で開発を進めることが望ましい。
【０００６】
例えば、あるソフトウェアＡにコンポーネントＢおよびコンポーネントＣが含まれる場合を例として考える。インストーラが独立していない場合、この例においては、インストーラとして、ソフトウェアＡとコンポーネントＢとコンポーネントＣを同時にインストールするための単一のインストーラを作成する。そのため、コンポーネントＣの修正を行う場合には、インストーラを修正する必要があり、そのために、修正を行っていないソフトウェアＡとコンポーネントＢについても同時に配布する必要があった。
【０００７】
このような問題を避けるために一般的に行われている手法では、例えば上記の例において、ソフトウェアＡのインストーラと、コンポーネントＢのインストーラと、コンポーネントＣのインストーラをそれぞれ独立に設けている。その上で、これらの複数のソフトウェアを同時にインストールする必要のある利用者のためには、これらの複数のインストーラを連続して実行するためのマスターインストーラと呼ばれるプログラムを同時に配布するようにしている。
【０００８】
また、このような構成は、複数の関連したソフトウェアを同時に配布する場合にも利用することができる。例えば、ソフトウェアをパッケージとしてＣＤ−ＲＯＭなどを用いて販売する場合や、特定ハードウェアに同梱されるソフトウェアにおいて、このような場合が発生する。
【０００９】
例えば、非特許文献２に記載のソフトウェアは、特定のハードウェアに同梱されているＣＤ−ＲＯＭである。そして、このＣＤ−ＲＯＭには、そのハードウェアを利用するための、画像管理ソフトウェア、画像パノラマ合成ソフトウェア、ハードウェアのデバイスドライバなどが同梱されている。そして、それらを連続してインストールするためのマスターインストーラも用意されており、利用者はこれを用いることですべてのソフトウェアを連続してインストールすることができる。
【００１０】
さらに、上で述べたような、インストーラの実行ファイルと、ソフトウェアインストール設定ファイルとの分離を行う技術を、複数のソフトウェアを連続してインストールするために応用する方法も考えられる。システム内に単一のインストール実行ファイルが存在し、そのインストール実行ファイル、すなわちマスターインストーラが、複数のソフトウェアインストール設定ファイルを連続して読み出し、設定ファイルに従ってインストール処理を実行する構成である。
【００１１】
これらのいずれの構成でも、各ソフトウェア間の開発における独立性を高めて効率化を図ることができる。
【特許文献１】特開平１０−０２７０９０号公報
【特許文献２】特許第０３５７８１３５号公報
【非特許文献１】ＭａｃｒｏＶｉｓｉｏｎ  ＩｎｓｔａｌｌＳｈｉｅｌｄソフトウェア
【非特許文献２】キヤノン  Ｄｉｇｉｔａｌ  Ｃａｍｅｒａ  Ｓｏｌｕｔｉｏｎ  Ｄｉｓｋ  Ｖｅｒｓｉｏｎ  ２６
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述の、複数のインストーラを連続して起動するシステムにおいては、複数のインストールを連続しておこなっているため、インストール処理全体を完了するまでに時間がかかる。そのため、マスターインストーラでは、利用者に対してインストール処理の進捗状況を利用者に示すことが多い。
【００１３】
例えば非特許文献２の場合であれば、各ソフトウェアのインストーラに各々の進捗状況を表示させる、インストール処理全体を統括するマスターインストーラがインストール処理全体の進捗状況を表示していない。そのため、利用者は各ソフトウェアそれぞれのインストール進捗状況を理解することはできても、インストール処理全体としての進捗状況がまったくわからない。
【００１４】
このような問題を解決する技術として、特許文献２のような提案がなされている。即ち、インストールする全ドライバ数を進捗状況の１００％とし、１００％をインストールするドライバの数で分割する。そして実際にインストールが開始されると、インストール済みのドライバの数分だけ進捗状況を１００％に近づける。このようにして、ドライバの個数を基準にしてデバイスドライバのインストール処理全体の進捗状況を表す方法を提案している。この提案によって、利用者は、ドライバの個数を基準としてインストール処理全体の進捗状況を知ることができる。
【００１５】
しかしながら、この提案にも次のような問題がある。即ち、インストールするソフトウェアのサイズが同じというのはほとんどなく、個数によってインストール処理全体の進捗状況を表現した場合、進捗の度合いがソフトウェア毎に異なり、正確に進捗状況を示せない場合があるというものである。
【００１６】
従って、本発明は上述した課題に鑑みてなされたものであり、複数のソフトウェアを連続的にインストールする場合のインストール処理全体の進捗状況を、利用者に分かりやすく表示できるようにすることである。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するために、本発明に係わるインストール装置は、ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール装置であって、前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールすることが可能なインストール実行手段と、前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の１００％として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示手段と、を具備することを特徴とする。
【００１８】
また、本発明に係わるインストール方法は、ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールするインストール実行工程と、前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の１００％として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程と、を具備することを特徴とする。
【００１９】
また、本発明に係わるプログラムは、上記のインストール方法をコンピュータに実行させることを特徴とする。
【００２０】
また、本発明に係わる記憶媒体は、上記のプログラムを記憶したことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、複数のソフトウェアを連続的にインストールする場合のインストール処理全体の進捗状況を、利用者に分かりやすく表示することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の好適な一実施形態について、添付図面を参照して詳細に説明する。
【００２３】
図１は、本発明の一実施形態に係わるシステムの構成を示す図である。
【００２４】
システム内のコンピュータ１０１には、ディスプレイ１０２、光学ディスクドライブ１０３、ハードディスク１０４、マウス１０５が接続されている。交換可能な光ディスク１０６には、プログラムおよびデータが記録されており、コンピュータ１０１は、光学ディスクドライブ１０３に挿入された光ディスク１０６から読み取ったプログラムを実行する。コンピュータ１０１は、接続されたディスプレイ１０２に描画を行い、システムの利用者に対して確認メッセージを表示したり、システムの状況を通知したりする。システムの利用者は、マウス１０５を使用して、ディスプレイ１０２に表示された確認メッセージに対して応答できる。コンピュータ１０１は、プログラムの内容に従って、光ディスク１０６に記録されているデータをハードディスク１０４にコピーしたり、ハードディスク１０４に記録されているデータを書き換えることができる。また、本システムにおいては、光ディスク１０６は交換可能であり、たとえば別の光ディスク１０７を用いることもできる。
【００２５】
図２は、光ディスク１０６に記録されているプログラムおよびデータファイルの構成の例を示す図である。
【００２６】
光ディスク１０６内には、光ディスク上に記録されている、唯一の実行ファイルである、インストーラ実行ファイル２０１、およびインストーラ実行ファイルの動作の詳細を制御するための、インストーラ動作設定ファイル２０２が存在している。なお、以下では、インストーラ実行ファイル２０１をマスターインストーラと呼ぶこともある。また、光ディスク１０６内には、アプリケーションフォルダ２０３、コンポーネントフォルダ２０４が存在する。アプリケーションフォルダ２０３には、フォルダ２０５が含まれており、コンポーネントフォルダ２０４には、フォルダ２０６から２０９の４つのサブフォルダが含まれている。
【００２７】
フォルダ２０５には、ソフトウェアＡのインストールに必要なデータおよび情報が含まれている。具体的には、ソフトウェアインストール設定ファイル２１０、およびインストール対象となるソフトウェア構成ファイル２１１が含まれる。フォルダ２０６からフォルダ２０８には、それぞれ、ソフトウェアＡのコンポーネントＤ、コンポーネントＢ、コンポーネントＣのインストールに必要なデータおよび情報が含まれる。
【００２８】
具体的には、フォルダ２０６には、ソフトウェアインストール設定ファイル２１２およびソフトウェア構成ファイル２１３が含まれる。
【００２９】
フォルダ２０７には、ソフトウェアインストール設定ファイル２１４およびソフトウェア構成ファイル２１５が含まれる。
【００３０】
フォルダ２０８には、ソフトウェアインストール設定ファイル２１６およびソフトウェア構成ファイル２１７が含まれる。
【００３１】
また、フォルダ２０９には、ソフトウェアＡのコンポーネントＢが動作するのに必要な、サブコンポーネントＥのインストールに必要なデータおよび情報が含まれる。具体的には、フォルダ２０９には、ソフトウェアインストール設定ファイル２１８およびソフトウェア構成ファイル２１９が含まれる。
【００３２】
本例の光ディスク１０６に記録されているインストーラ実行ファイル２０１を本システム上で実行すると次のようになる。即ち、ソフトウェアＡ、およびそのコンポーネントＢ、コンポーネントＣ、コンポーネントＤ、また、コンポーネントＢのサブコンポーネントＥが、ハードディスク１０４にインストールされる。
【００３３】
図３は、本システムにおけるソフトウェアインストール処理の全体の流れを示す図である。
【００３４】
まず、ステップＳ３０１で、インストーラ実行ファイルの初期化処理を行う。ここでは、インストーラ実行ファイル２０１が、インストーラ動作設定ファイル２０２を読み取り、インストール処理の初期化を行う。
【００３５】
次に、ステップＳ３０２で、ソフトウェア一覧作成処理を行う。インストーラ実行ファイル２０１は、光ディスク１０６に記録されている複数のソフトウェアインストール設定ファイルを読み込み、その内容に従って、ソフトウェア一覧を作成する。
【００３６】
続いて、ステップＳ３０３では、ソフトウェア選択画面の表示を行う。ここでは、前のステップＳ３０２で作成したソフトウェア一覧に従って、ソフトウェア選択画面を表示する。システムの利用者は、この画面でインストールするソフトウェアを選択できる。
【００３７】
ステップＳ３０４では、インストール確認画面を表示する。ここでは、インストール時に必要な使用許諾契約の文面を表示し、同意した利用者のみがインストールを実行できる。
【００３８】
ステップＳ３０５では、インストール進捗画面の初期化を行う。
【００３９】
続いて、ステップＳ３０６では、ステップＳ３０２で作成したソフトウェア一覧のソフトウェアすべてについて、インストール処理が終了したかどうかをチェックする。すべて終了した場合には、ステップＳ３１０に進む。未処理のソフトウェアが存在する場合は、ステップＳ３０７に進む。
【００４０】
ステップＳ３０７では、処理中のソフトウェアが、ソフトウェア選択画面で選択されていたかどうかを取得する。その結果をステップＳ３０８で判定し、ソフトウェアが選択されていればステップＳ３０９に、選択されていなければステップＳ３０６に戻りソフトウェア一覧の次のソフトウェアの処理を行う。
【００４１】
ステップＳ３０９では、処理中のソフトウェアのソフトウェアインストール設定ファイルを読み込み、その記載内容に従って、ソフトウェア構成ファイルをハードディスク１０４にコピーし、また、インストール処理内容をログに記録する。
【００４２】
ステップＳ３１０は、すべてのソフトウェアのインストール処理が完了した場合に実行される。ここでは、前ステップまでの各ソフトウェアのインストール結果に応じて、インストール結果出力画面を表示する。この画面で利用者が完了操作を行えば、本システムにおけるソフトウェアインストール処理は完了である。
【００４３】
図４は、本例で光ディスク１０６に記録されているインストーラ動作設定ファイル２０２の記載の一部を示す図である。インストーラ動作設定ファイル２０２には、ファイルセクション４０１、およびフォルダセクション４０２が含まれている。フォルダセクション４０２には、検索対象ファイル名４０３と、検索対象フォルダリスト４０４が含まれている。ここで、検索対象ファイルとは、インストーラ実行ファイル２０１（マスターインストーラ）でインストールすることのできる全てのファイルである。以下で説明するソフトウェア一覧作成処理では、光ディスク１０６から上記の検索対象ファイルを検索する。これは、光ディスク１０６には、マスターインストーラでインストールできる複数のソフトウェアファイルのうちの全てが記録されているとは限らないからである。そのため、光ディスク１０６に記録されているソフトウェアファイルのみの一覧を作成するために上記の検索を行なう。
【００４４】
図５は、本システムでのソフトウェアインストール処理のうち、ステップＳ３０２でのソフトウェア一覧作成処理の詳細な流れを示す図である。
【００４５】
まず、ステップＳ５０１で、ソフトウェア一覧に追加するべきソフトウェアインストール設定ファイルを、光ディスク１０６から検索する。具体的には、インストーラ動作設定ファイル２０２のファイルセクション４０１に記載されているすべてのファイルと、フォルダセクション４０２に記載されている検索対象フォルダリスト４０４に含まれているフォルダを検索する。検索するものは、検索対象ファイル名４０３と一致するファイル名のファイルであり、それが光ディスク１０６から見つかった場合には、それをソフトウェア一覧に追加する。
【００４６】
続いて、ステップＳ５０２で、ソフトウェア一覧のすべてのソフトウェアインストール設定ファイルに関して、並べ替えキーの取得処理が終了したかどうかを判定する。すべてのソフトウェアについて処理が完了していた場合にはステップＳ５０７に進む。まだ終了していないソフトウェアがあった場合には、ステップＳ５０３に進み、そのソフトウェアインストール設定ファイルの内容をチェックする。
【００４７】
ステップＳ５０４では、チェック結果を取得し、そのファイルが存在しない場合や、存在してもファイル形式や内容に問題がある場合には、ステップＳ５０６に進みそのソフトウェアをソフトウェア一覧から削除する。特に問題がなかった場合、ステップＳ５０５に進み、そのソフトウェアインストール設定ファイルから、ソフトウェア一覧の並び替えに使用する「並べ替えキー」文字列を取得してソフトウェア一覧に記録する。その後、ステップＳ５０２に戻り、次のソフトウェアの処理に進む。
【００４８】
すべてのソフトウェアの処理が終わった後は、ステップＳ５０７で、取得した各ソフトウェアの並べ替えキー文字列を元に、文字列を文字コードで比較して小さいものを前に、大きいものを後にして、ソフトウェア一覧におけるソフトウェアの順序を決定する。そして、ソフトウェア一覧にその順序を記録した後ステップＳ５０８に進む。ステップＳ５０８以降の処理では、ソフトウェアの処理はここで記録したソフトウェアの順序に従い、順序が小さいものから順に処理が行われる。
【００４９】
まず、ステップＳ５０８で、ソフトウェア一覧のすべてのソフトウェアについて、親ソフトウェアの検索が終了したかどうかを確認する。終了していれば、ソフトウェア一覧作成処理を完了する。まだ親ソフトウェアの検索を行っていないソフトウェアがあれば、ステップＳ５０９に進む。
【００５０】
ステップＳ５０９からステップＳ５１５では、ソフトウェア一覧で、順序がｎ番目のソフトウェアについて親ソフトウェアの検索を行う。
【００５１】
まず、ステップＳ５０９では、変数の初期化を行う。ｎ番目のソフトウェアの並べ替えキー文字列を取得し、ループ変数ｉに１を設定する。続いて、ステップＳ５１０では、ループ変数ｉがｎと等しいかどうかを比較する。等しければ、ｎ番目のソフトウェアの親ソフトウェアは見つからなかったため、ステップＳ５１４でソフトウェア一覧の親の項目に０を書き込んで、ｎ番目のソフトウェアの親ソフトウェア検索処理を終了し、ステップＳ５０８に戻る。ループ変数ｉがｎと等しくない場合、ステップＳ５１１で、ソフトウェア一覧で順序がｉ番目のソフトウェアの並べ替えキー文字列を取得する。続いて、ステップＳ５１２で、ｎ番目のソフトウェアのキー文字列が、ｉ番目のソフトウェアのキー文字列に前方一致しているか、すなわち、ｎ番目のソフトウェアのキー文字列の先頭が、ｉ番目のソフトウェアのキー文字列と一致するかどうかを判定する。一致しなかった場合には、ステップＳ５１３でループ変数ｉに１を加えた後ステップＳ５１０に戻る。一致した場合には、ステップＳ５１４で、ソフトウェア一覧の親の項目にｉを書き込んで、ｎ番目のソフトウェアの親ソフトウェア検索処理を終了し、ステップＳ５０８に戻る。
【００５２】
図６は、図２のフォルダ構成に対して、図４の動作設定ファイル２０２を使用して、図５のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【００５３】
ソフトウェア一覧には、各ソフトウェアのソフトウェアインストール設定ファイルのファイル名リスト６０１、各ソフトウェアインストール設定ファイルに記載されている並べ替えキーリスト６０２が含まれる。また、ソフトウェア一覧作成処理を行った結果の並び順リスト６０３、親ソフトウェアを示す親リスト６０４も含まれる。ファイル名リスト６０１には、図２のフォルダ構成に含まれているソフトウェアインストール設定ファイルが含まれている。また、図４の動作設定ファイル２０２のファイルセクション４０１に記載されているファイルであっても、実際に図２のフォルダ構成に含まれていないファイルは含まない。
【００５４】
並び順リスト６０３は、並べ替えキー６０２の値を元に各ソフトウェアの順序を決めたものである。図２のフォルダ構成では、ソフトウェアＡが１、ソフトウェアＡのコンポーネントＢが２、ソフトウェアＡのコンポーネントＢのサブコンポーネントＥが３、ソフトウェアＡのコンポーネントＣが４、ソフトウェアＡのコンポーネントＤが５の順になる。また、各ソフトウェアの親リスト６０４は、ソフトウェアＡについては０、それ以外のコンポーネントに関しては１が記録される。ここでの「１」とは、並び順リストの値が１であるソフトウェアＡを表している。
【００５５】
図７は、本システムでのソフトウェアインストール処理のうち、ステップＳ３０３でのソフトウェア選択画面表示処理の詳細な流れを示す図である。
【００５６】
最初に、ステップＳ７０１で、ソフトウェア一覧の中で親が０になっているソフトウェア、すなわち、自分自身が親であるようなソフトウェアの数ｎを数える。続いて、ステップＳ７０２で、ｎの値が０であるかどうかを判定する。ｎが０の場合には、自分自身が親であるようなソフトウェアがソフトウェア一覧に存在しないため、ステップＳ７０３でエラーメッセージを出力した後、インストール処理全体を中断する。ｎが０でない場合は、ステップＳ７０４に進む。
【００５７】
ステップＳ７０４では、ｎの値が１であるかどうかを判定する。ｎが１の場合には、自分自身が親であるようなソフトウェアがソフトウェア一覧に一つしか存在しないため、ソフトウェア選択ダイアログを表示する意味がない。そのため、ｎが１の場合には選択画面表示処理を終了し、次の確認画面表示処理（ステップＳ３０４）に進む。
【００５８】
ｎの値が１より大きかった場合には、ステップＳ７０５に進み、ソフトウェア選択画面の初期化を行う。続いて、ステップＳ７０６から、ソフトウェア一覧に含まれるすべてのソフトウェアについて、ソフトウェア選択画面への表示を行う。
【００５９】
ステップＳ７０６では、すべてのソフトウェアの処理が終了したかどうか判定し、すべて終了している場合には選択画面表示処理を終了する。未処理のソフトウェアがある場合には、ステップＳ７０７で、ソフトウェア一覧に記録されているソフトウェアインストール設定ファイルから、ソフトウェアのインストール時に利用者に表示するための情報を取得する。本実施形態においては、ソフトウェア名称、ソフトウェアのバージョン番号、ソフトウェアを表すアイコン、ソフトウェアの詳細な説明文、および、ソフトウェアのインストールに必要なディスク容量の情報を取得する。
【００６０】
続いて、ステップＳ７０８で、ソフトウェア一覧に記録されている親の情報が０になっているかどうかを取得する。親に０以外の情報が記載されていた場合、ステップＳ７１２に進む。親が０であった場合、すなわち親ソフトウェアが存在しない場合には、ステップＳ７０９に進む。
【００６１】
ステップＳ７０９では、表示されているソフトウェア選択画面に、新しいソフトウェアの行を末尾に追加する。続いて、ステップＳ７１０で、ステップＳ７０９で追加したソフトウェアの行の先頭に、チェックボックスを表示する。ステップＳ７１１では、ステップＳ７０７で取得した各種情報のうち、ソフトウェアのインストール時に必要なディスク容量の情報を除いた情報を、ステップＳ７０９で追加したソフトウェアの行に描画する。
【００６２】
ステップＳ７１２では、ソフトウェア容量の描画をソフトウェア選択画面内に行う。具体的には、ソフトウェア選択画面内の最終ソフトウェア行の末尾に記載のあるソフトウェアごとのディスク容量に、現在処理中のソフトウェアのディスク容量を加算して、描画を更新する。更新が終わったら、ステップＳ７０６に戻る。
【００６３】
図２のフォルダ構成の光ディスクでは、図６に示すとおり、親が０になっているソフトウェアはソフトウェアＡの１つのみである。この場合、図７の処理を行うと、ステップＳ７０３の処理の結果、ソフトウェア選択画面表示処理では何の表示も行わず、次の確認画面表示処理に進むことになる。
【００６４】
図８に、別の光ディスク１０７におけるフォルダ構成の図を示す。
【００６５】
この光ディスク１０７の構成は、光ディスク１０６の構成に、いくつかのフォルダやファイルを追加したものである。インストーラ実行ファイル２０１、インストーラ動作設定ファイル２０２、アプリケーションフォルダ２０３、コンポーネントフォルダ２０４、フォルダ２０５から２０９は、光ディスク１０６と全く同一である。また、ソフトウェアインストール設定ファイル２１０、２１２、２１４、２１６、２１８、ソフトウェア構成ファイル２１１、２１３、２１５、２１７、２１９に関しても、光ディスク１０６と全く同一である。
【００６６】
光ディスク１０７では、それに加えて、アプリケーションフォルダ２０３内に、ソフトウェアＦのインストールに必要なデータおよび情報が含まれているフォルダ８０１が含まれている。その中には、ソフトウェアインストール設定ファイル８０２、およびインストール対象となるソフトウェア構成ファイル８０３が含まれる。また、コンポーネントフォルダ２０４内に、ソフトウェアＦの動作に必要なコンポーネントＧのインストールに必要なデータおよび情報が含まれているフォルダ８０４が含まれている。その中には、ソフトウェアインストール設定ファイル８０５、およびインストール対象となるソフトウェア構成ファイル８０６が含まれる。
【００６７】
また、追加ソフトウェアを収録するための追加アプリケーションフォルダ８０７が、アプリケーションフォルダ２０３およびコンポーネントフォルダ２０４と同じ階層に存在している。そして、その中には、ソフトウェアＨのインストールに必要なデータおよび情報が含まれているフォルダ８０８が含まれている。フォルダ８０８の中には、ソフトウェアインストール設定ファイル８０９、ソフトウェア構成ファイル８１０に加えて、外部インストーラ実行ファイル８１１、および外部インストーラ構成ファイル８１２が含まれる。
【００６８】
図９は、ソフトウェアインストール設定ファイルの例として、ソフトウェアインストール設定ファイル２１０を示す図である。
【００６９】
ソフトウェアインストール設定ファイル２１０はテキストファイルである。そして、一般セクション９０１、並べ替えセクション９０２、情報セクション９０３、インストール先指定セクション９０４、プログレス情報セクション９０５、ファイルセクション９０６から構成されている。
【００７０】
一般セクション９０１には、インストーラのタイプが記載されている。ソフトウェアインストール設定ファイル２１０においては、通常のインストーラであることを示すために、タイプとして「ＮＯＲＭＡＬ」が指定されている。
【００７１】
並べ替えセクション９０２には、ソフトウェア一覧作成処理で使用される、並べ替えキーが記載されている。ソフトウェアインストール設定ファイル２１０では「ＳｏｆｔＡ」が指定されている。
【００７２】
情報セクション９０３には、ソフトウェア選択画面で表示するためのソフトウェアの情報が記載されている。このセクションには、ソフトウェア名称９０７、ソフトウェアのバージョン番号９０８、ソフトウェアを表すアイコンの光ディスク上での位置９０９、ソフトウェアの詳細な説明文９１０が記載されている。また、ソフトウェアのディスク容量９１１、ソフトウェア説明画像の光ディスク上での位置９１２も記載されている。
【００７３】
インストール先指定セクション９０４には、ソフトウェアをインストールする先のハードディスク１０４上の位置が指定されている。
【００７４】
プログレス情報セクション９０５には、インストール進捗画面表示の際に用いられる情報が記載されている。具体的には、プログレスバーの分割に用いるためのソフトウェアのインストール量とその単位が記載されている。また、各ソフトウェアのインストール中、ファイルコピーごとにプログレスバーを進めるために使用される、ファイルごとのインストール量で用いる基準となるファイルインストール単位が記載されている。ソフトウェアインストール設定ファイル２１０では、ソフトウェアのインストール量はサイズを用いる記載がされており、ソフトウェアＡのインストール量としては、１００が指定されている。また、ファイルごとのインストール量については、インストール時間を基準として用いる記載がされている。
【００７５】
ファイルセクション９０６には、インストールされるファイルの一覧が記載されている。各ファイル項目は、コピー先ファイル名９１３、ソフトウェア構成ファイル圧縮ファイル名９１４、コピー元ファイル名９１５、および、ファイルのインストール量９１６が記載されている。
【００７６】
図１０は、ソフトウェアインストール設定ファイルの別の例として、ソフトウェアインストール設定ファイル２１６を示す図である。
【００７７】
ソフトウェアインストール設定ファイル２１６も、図９のソフトウェアインストール設定ファイル２１０と同様にテキストファイルである。同じように一般セクション１００１、並べ替えセクション１００２、情報セクション１００３、インストール先指定セクション１００４、プログレス情報セクション１００５、ファイルセクション１００６から構成されている。
【００７８】
一般セクション１００１に記載されているインストーラのタイプは、「ＮＯＲＭＡＬ」である。
【００７９】
並べ替えセクション１００２には、「ＳｏｆｔＡ−ＣｏｍｐＤ」が指定されている。
【００８０】
情報セクション１００３には、ソフトウェア名称１００７、ソフトウェアのバージョン番号１００８、ソフトウェアを表すアイコンの光ディスク上での位置１００９、ソフトウェアの詳細な説明文１０１０が記載されている。また、ソフトウェアのディスク容量１０１１、ソフトウェア説明画像の光ディスク上での位置１０１２も記載されている。
【００８１】
インストール先指定セクション１００４には、ソフトウェアをインストールする先のハードディスク１０４上の位置が指定されている。
【００８２】
プログレス情報セクション１００５の記載に関しては、図９のソフトウェアインストール設定ファイル２１０とは異なり、ソフトウェアのインストール量とその単位については省略されている。また、ファイルごとのインストール量については、サイズを基準として用いる記載がされている。
【００８３】
ファイルセクション１００６の各ファイル項目には、コピー先ファイル名１０１３、ソフトウェア構成ファイル圧縮ファイル名１０１４、コピー元ファイル名１０１５、および、ファイルのインストール量１０１６が記載されている。ただし、ファイルのインストール量１０１６に関しては、記載を省略していることを示す値０が記載されている。
【００８４】
図１１は、ソフトウェアインストール設定ファイルのさらに別の例として、ソフトウェアインストール設定ファイル８０９を示す図である。
【００８５】
ソフトウェアインストール設定ファイル８０９も、図９のソフトウェアインストール設定ファイル２１０と同様にテキストファイルである。同じように一般セクション１１０１、並べ替えセクション１１０２、情報セクション１１０３、プログレス情報セクション１１０４を含んでいるが、インストール先指定セクションおよびファイルセクションは含まれない。また、外部ソフトウェアセクション１１０５が含まれている。
【００８６】
一般セクション１１０１には、外部インストーラを起動するタイプであることを示す、「ＥＸＴＥＲＮＡＬ」が記載されている。
【００８７】
並べ替えセクション１１０２には、「ＳｏｆｔＨ」が指定されている。
【００８８】
情報セクション１１０３には、ソフトウェア名称１１０６、ソフトウェアのバージョン番号１１０７、ソフトウェアを表すアイコンの光ディスク上での位置１１０８、ソフトウェアの詳細な説明文１１０９が記載されている。また、ソフトウェアのディスク容量１１１０、ソフトウェア説明画像の光ディスク上での位置１１１１も記載されている。
【００８９】
プログレス情報セクション１１０４の記載に関しては、ソフトウェアのインストール量とその単位が記載されている。
【００９０】
外部ソフトウェアセクション１１０５には、起動する外部ソフトウェアの、光ディスク上での位置が記載されている。
【００９１】
図１２は、図８のフォルダ構成に対して、図４の動作設定ファイル２０２を使用して、図５のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【００９２】
ソフトウェア一覧には、各ソフトウェアのソフトウェアインストール設定ファイルのファイル名リスト１２０１、各ソフトウェアインストール設定ファイルに記載されている並べ替えキーリスト１２０２が含まれる。また、ソフトウェア一覧作成処理を行った結果の並び順リスト１２０３、親ソフトウェアを示す親リスト１２０４も含まれる。
【００９３】
ファイル名リスト１２０１には、図８のフォルダ構成に含まれているソフトウェアインストール設定ファイルが含まれている。並び順リスト１２０３は、並べ替えキーリスト１２０２の値を元に決定されている。そして、ソフトウェアＡが１、ソフトウェアＡのコンポーネントＢが２、ソフトウェアＡのコンポーネントＢのサブコンポーネントＥが３、ソフトウェアＡのコンポーネントＣが４、ソフトウェアＡのコンポーネントＤが５の順になる。また、ソフトウェアＦが６、ソフトウェアＦのコンポーネントＧが７、ソフトウェアＨが８の順になる。親リスト１２０４では、親ソフトウェアを持たないソフトウェアＡ、ソフトウェアＦ、ソフトウェアＨでは０が記録される。ソフトウェアＡを親として持つコンポーネントＢ、コンポーネントＣ、コンポーネントＤ、コンポーネントＥでは１が、ソフトウェアＦを親として持つコンポーネントＧには６が記録される。
【００９４】
図１３は、図１２のソフトウェア一覧を用いて、図７の処理を行った結果表示されるソフトウェア選択画面を示す図である。
【００９５】
ソフトウェア選択画面は、チェックボックス領域１３０１、ソフトウェアアイコン領域１３０２、ソフトウェア名称領域１３０３、ソフトウェアバージョン番号領域１３０４を備える。また、ソフトウェア説明文領域１３０５、ソフトウェアディスク容量領域１３０６も備える。
【００９６】
この選択画面に表示されるソフトウェア名称は、ソフトウェア一覧で親ソフトウェアが存在しないソフトウェアのみであり、図１２のソフトウェア一覧では、ソフトウェアＡ、ソフトウェアＦ、ソフトウェアＨの３項目が表示される。
【００９７】
チェックボックス領域１３０１には、図７のステップＳ７１０で各ソフトウェアに対応するチェックボックスが描画される。ソフトウェアアイコン領域１３０２、ソフトウェア名称領域１３０３、ソフトウェアバージョン番号領域１３０４、ソフトウェア説明文領域１３０５は、次のように描画される。即ち、図７のステップＳ７１１の処理で、各ソフトウェアのソフトウェアインストール設定ファイルから読み出した情報を用いて描画される。
【００９８】
ソフトウェアディスク容量領域１３０６には、次のような容量が表示される。即ち、各列のソフトウェア自身のソフトウェアインストール設定ファイルから読み出した必要ディスク容量の値に加えて、そのソフトウェアを親としているすべてのソフトウェアの必要ディスク容量を図７のステップＳ７１２の処理内で加算したものが表示される。具体的には、ソフトウェアディスク容量領域１３０６内の、ソフトウェアＡ列のディスク容量領域１３０７には、次のような値が表示される。即ち、ソフトウェアＡ自身のディスク容量に加えて、ソフトウェアＡを親とするソフトウェア、つまり、コンポーネントＢ、Ｃ、Ｄ、Ｅのディスク容量を加算した値が表示される。同様に、ソフトウェアＦ列のディスク容量領域１３０８には、ソフトウェアＦ自身のディスク容量に加えて、ソフトウェアＦを親とするコンポーネントＧのディスク容量を加算した値が表示される。ソフトウェアＨ列のディスク容量領域１３０９には、ソフトウェアＨを親として持っているソフトウェアは存在しないため、ソフトウェアＨのディスク容量がそのまま表示される。
【００９９】
図１４は、ステップＳ３０５におけるインストール進捗画面の初期化処理の詳細な流れを示す図である。
【０１００】
インストール進捗画面の初期化処理では、最初に全ソフトウェアのインストール量の計算を行い、その後、インストール進捗画面上のプログレスバーを、インストール量に従って分割する。
【０１０１】
最初に、ステップＳ１４０１で、全てのソフトウェアのインストール量の取得が終わったかどうかを調べ、全て終了している場合には、ステップＳ１４０６に進む。まだ取得が終わっていないソフトウェアがある場合には、ステップＳ１４０２に進む。
【０１０２】
ステップＳ１４０２では、処理中のソフトウェアが、あるいは処理中のソフトウェアに親が存在する場合には親のソフトウェアが、ソフトウェア選択画面において選択されているかを調べる。いずれかの場合で処理中のソフトウェアが選択されている場合には、ステップＳ１４０３に進む。処理中のソフトウェアが選択されていない場合には、そのソフトウェアのインストール量は０とみなし、ステップＳ１４０１で次のソフトウェアのインストール量取得に進む。
【０１０３】
ステップＳ１４０３では、ソフトウェアインストール設定ファイルから、そのソフトウェアのインストール量の取得を試みる。ステップＳ１４０４では、ソフトウェアのインストール量の取得に成功したかどうかを判定し、成功した場合には、ステップＳ１４０１で次のソフトウェアのインストール量取得に進む。失敗した場合、つまり、ソフトウェアインストール設定ファイルにソフトウェアのインストール量の記載が存在しない場合には、ステップＳ１４０５に進む。そして、ソフトウェアインストール設定ファイルに記載されているソフトウェア構成ファイルのそれぞれについてインストール量を取得し、全てのファイルのインストール量を合計したものを、ソフトウェアのインストール量とみなす。その後、ステップＳ１４０１で次のソフトウェアのインストール量取得に進む。
【０１０４】
ステップＳ１４０６では、これまで取得してきた各ソフトウェアのインストール量を全て合計することで、全ソフトウェアのインストール量合計を求める。
【０１０５】
続いて、ステップＳ１４０７で、インストール進捗画面上のプログレスバーの１００％を全ソフトウェアのインストール量合計とし、プログレスバーを各ソフトウェアのインストール量に従って分割する。さらに、ステップＳ１４０８で、この時点での時刻を記憶する。この時刻は、推定残り時間を計算するための、インストール経過時間を計算するために用いられる。以上が終了したら、インストール進捗画面の初期化処理を終了する。
【０１０６】
図１５は、図１３のソフトウェア選択画面で、全てのソフトウェアを選択した後、図１４で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【０１０７】
画面内には、ソフトウェア説明画像表示領域１５０１、プログレスバー１５０２、残りソフトウェア数表示領域１５０３、推定残り時間表示領域１５０４が存在する。ソフトウェア説明画像表示領域１５０１は、ソフトウェアのインストール中に、ソフトウェアの内容を説明するための画像が表示される領域であるが、初期化直後ではこの領域は空白になっている。
【０１０８】
プログレスバー１５０２は、領域１５０５から領域１５１２までの８つの領域に分割されている。これらの領域は、それぞれ図８のフォルダ構成に含まれる８つのソフトウェア、すなわちソフトウェアＡ、コンポーネントＢ、コンポーネントＥ、コンポーネントＣ、コンポーネントＤ、ソフトウェアＦ、コンポーネントＧ、ソフトウェアＨに対応する領域である。この例では、それぞれの領域に、４０％、１２％、４％、１２％、１２％、８％、４％、８％、合計１００％が割り当てられている。残りソフトウェア数表示領域１５０３は、ソフトウェアのインストール中に、残りソフトウェア数を表示するための領域であるが、初期化直後ではこの領域には、プログレスバーの分割数、この例では「８」と表示される。推定残り時間表示領域１５０４は、ソフトウェアのインストール中に、推定されるインストール残り時間を表示するための領域であるが、初期化直後ではこの領域には「初期化中」と表示される。
【０１０９】
さらに、図１６は、図１３のソフトウェア選択画面で、ソフトウェアＡの選択を解除した後、図１４で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【０１１０】
画面の構成は図１５の例とほとんど同じであり、ソフトウェア説明画像表示領域１６０１、プログレスバー１６０２、残りソフトウェア数表示領域１６０３、推定残り時間表示領域１６０４が存在する。異なる点として、プログレスバー１６０２は、３つの領域１６０５、１６０６、１６０７に分割されている。これらの領域は、それぞれ、ソフトウェアＦ、コンポーネントＧ、ソフトウェアＨに対応する領域である。この例では、それぞれの領域に、４０％、２０％、４０％、合計１００％が割り当てられている。図１３のソフトウェア選択画面で、ソフトウェアＡの選択を解除しているため、ソフトウェアＡ、およびそのコンポーネントＢ、Ｃ、Ｄ、Ｅについては、インストール量が０であると計算される。そのため、プログレスバーでは０％の領域が割り当てられている。つまり、領域が割り当てられていない。
【０１１１】
次に、図１７Ａ、図１７Ｂは、ステップＳ３０９における、インストール実行処理の詳細な流れを示す図である。
【０１１２】
最初に、ステップＳ１７０１で、ソフトウェア進捗画面内の、ソフトウェア説明画像表示領域の初期化を行う。具体的には、ソフトウェアインストール設定ファイルに記載されているソフトウェア説明画像を読み込み、画面内のソフトウェア説明画像表示領域に表示する。
【０１１３】
次に、ステップＳ１７０２で、ソフトウェアインストール設定ファイルに記載されているインストーラのタイプが、外部インストーラを起動するタイプのものであるかどうかを判定する。外部インストーラを起動するタイプのものである場合、ステップＳ１７０３で、ソフトウェアインストール設定ファイルで指定された外部ソフトウェアを起動し、その終了を待つ。その後、ステップＳ１７０５で残りソフトウェア数を１減算して更新し、そのソフトウェアのインストール処理を終了して、次のソフトウェアのインストール処理に進む。
【０１１４】
ソフトウェアインストール設定ファイルに記載されているインストーラのタイプが、外部インストーラを起動するタイプのものでない場合は、ステップＳ１７０４に進む。ステップＳ１７０４では、ソフトウェアインストール設定ファイル内の、全てのファイルのインストール処理が終了したかどうか調べる。もし全て終了していれば、ステップＳ１７０５で、インストール進捗画面上の残りソフトウェア数表示領域の値を１減算して更新し、そのソフトウェアのインストール処理を終了して、次のソフトウェアのインストール処理に進む。まだ全てのファイルのインストール処理が終了していない場合には、ステップＳ１７０６でソフトウェアインストール設定ファイルから、次のファイルインストール指示を読み取る。
【０１１５】
次に、ステップＳ１７０７で、読み取ったファイルインストール指示に記載されているコピー元ファイルを、光ディスク１０６あるいは１０７上のソフトウェア構成ファイルからハードディスク１０４上の一時作業用フォルダにコピーする。
【０１１６】
続いて、ステップＳ１７０８で、読み取ったファイルインストール指示に記載されているコピー先のファイルの存在をチェックする。コピー先ファイルが存在しない場合には、ステップＳ１７１０で、一時作業用フォルダにコピーしたコピー元ファイルを、コピー先ファイルにコピーして、ステップＳ１７１１に進む。
【０１１７】
コピー先ファイルが存在する場合には、ステップＳ１７０９で、一時作業用フォルダにコピーしたコピー元ファイルと、存在しているコピー先ファイルの新旧を比較する。コピー元ファイルの方が新しい場合には、ステップＳ１７１０で、一時作業用フォルダにコピーしたコピー元ファイルを、コピー先ファイルにコピーして、ステップＳ１７１１に進む。コピー先ファイルの方が新しい場合には、ファイルのコピーは行わずそのままステップＳ１７１１に進む。
【０１１８】
ステップＳ１７１１では、オペレーティングシステムが持っている、ファイルの参照カウントデータベースに対して、コピー先ファイルの参照カウントを１加算する。
【０１１９】
次に、ステップＳ１７１２では、ステップＳ１７０７で一時作業用フォルダにコピーしていたコピー元ファイルを削除する。
【０１２０】
続いて、ステップＳ１７１３では、インストール中のソフトウェアが、ソフトウェア一覧の中で親を持っているかどうかを調べる。親を持たない場合には、ステップＳ１７１４で、オペレーティングシステムに対して、インストール中のソフトウェアのインストールログに、コピー先ファイルをインストールしたことを追記するように指示を出した後、ステップＳ１７１６に進む。
【０１２１】
親を持っている場合には、ステップＳ１７１５で、オペレーティングシステムに対して、親ソフトウェアのインストールログに、コピー先ファイルをインストールしたことを追記するように指示を出した後、ステップＳ１７１６に進む。
【０１２２】
ステップＳ１７１６では、読み取ったファイルインストール指示に、ファイルのインストール量が記載されているかどうかを調べる。ファイルのインストール量が記載されている場合は、ステップＳ１７１９でそのファイルのインストール量を取得する。また、ステップＳ１７２１でそのソフトウェアに含まれる全てのファイルのインストール量の合計を求め、それをソフトウェアのインストール量としてステップＳ１７２３の計算で使用する。
【０１２３】
ステップＳ１７１６の判定で、読み取ったファイルインストール指示に、ファイルのインストール量が記載されていなかった場合は、ステップＳ１７１７に進む。
【０１２４】
ステップＳ１７１７では、ソフトウェアインストール設定ファイルに記載されているファイルインストール単位がファイルサイズであるかどうかを確認する。ファイルサイズである場合、ソフトウェアインストール設定ファイルに、ファイルのインストール量が含まれていなくても、代わりにファイルのサイズをインストール量として用いる処理を行う。具体的には、ステップＳ１７１８でファイルサイズを取得してファイルインストール量とし、ステップＳ１７２１でそのソフトウェアに含まれる全てのファイルのインストール量の合計を求める。それをソフトウェアのインストール量としてステップＳ１７２３の計算で使用する。
【０１２５】
ステップＳ１７１７の判定で、ソフトウェアインストール設定ファイルに記載されているファイルインストール単位がファイルサイズ以外であった場合は、ステップＳ１７２０に進む。ステップＳ１７２０でそのファイルのインストール量を１とし、ステップＳ１７２２でソフトウェアに含まれるファイル数をソフトウェアのインストール量として、ステップＳ１７２３の計算で使用する。
【０１２６】
ステップＳ１７２３では、そのファイルをコピーした際に進めるプログレスバーの量を計算する。具体的には、図１４のインストール進捗画面初期化処理で分割した、そのソフトウェアに対応する領域の、これまでのステップで計算してきた（ファイルのインストール量÷ソフトウェアのインストール量）の割合を計算する。
【０１２７】
続いて、ステップＳ１７２４で、ステップＳ１７２３で計算した分だけプログレスバーを進める。
【０１２８】
ステップＳ１７２４の処理が終了したら、ステップＳ１７２５で、現在のプログレスバーの位置が、全体の５％未満かどうかを調べる。５％未満であった場合には、ステップＳ１７２７で、インストール進捗画面の推定残り時間表示領域に「計算中」と表示を行い、ステップＳ１７０４に戻る。
【０１２９】
５％以上であった場合には、ステップＳ１７２６で、インストール進捗画面の推定残り時間表示領域に推定残り時間を表示する。具体的には、インストール進捗画面の初期化処理を行った時刻と、現在時刻から、インストール開始後の経過時刻Ｔを求め、現在のプログレスバーの割合Ｐ％から、Ｔ×（１００−Ｐ）÷Ｐを推定残り時間として表示する。その後、ステップＳ１７０４に戻る。
【０１３０】
以下に、図１７Ａ、図１７Ｂの処理に従ってインストールを行う際の、インストール中のプログレスバーの進捗について、ソフトウェア選択ダイアログですべてのソフトウェアを選択した後のソフトウェアＡのインストールを例に挙げて説明する。
【０１３１】
ソフトウェアＡのソフトウェアインストール設定ファイル２１０は、図９で説明を行っている。
【０１３２】
ソフトウェアＡは、図１２に示したように、ソフトウェア一覧では最初の項目となるので、ソフトウェアＡのインストール処理の開始前には、ソフトウェア進捗画面は図１５の状態になっている。ここで、まず図９のファイルセクション９０６の先頭に記載されているファイルＭａｉｎＥｘｅｃＦｉｌｅ．ｅｘｅの処理を開始する。
【０１３３】
ステップＳ１７１４までのファイルコピー処理が終了した後、ステップＳ１７１６に進む。ソフトウェアインストール設定ファイル２１０においては、ファイルＭａｉｎＥｘｅｃＦｉｌｅ．ｅｘｅのインストール量について記載があるため、ステップＳ１７１９でファイルのインストール量（４）を取得する。
【０１３４】
続いて、ステップＳ１７２１で、ソフトウェアに含まれるすべてのファイルのインストール量の合計（４＋１＝５）を求める。その後、ステップＳ１７２３で、ファイルＭａｉｎＥｘｅｃＦｉｌｅ．ｅｘｅをコピーした際のプログレス進行量を計算する。図１５で示したように、本実施形態の場合、ソフトウェアＡに割り当てられているプログレスバー領域は４０％である。その中で、（ファイルのインストール量÷ソフトウェアのインストール量）、つまり、４÷５＝０．８の割合でプログレスバーを進めるため、ステップＳ１７２４では、４０％×０．８＝３２％だけ、プログレスバーが進むことになる。ここまでのファイルコピーにＴ＝３２秒かかった場合、ステップＳ１７２６では、インストール進捗画面の推定残り時間表示領域に、３２×（１００−３２）÷３２＝６８秒を推定残り時間として表示することになる。この時点での、インストール進捗画面の表示を図１８に示す。
【０１３５】
同様に、コンポーネントＤの処理についても説明する。
【０１３６】
コンポーネントＤのソフトウェアインストール設定ファイル２１６は、図１０で説明を行っている。
【０１３７】
図１９は、コンポーネントＤのインストールを開始した際の、ステップＳ１７０１時点での画面である。コンポーネントＤは、図１２に示したように、ソフトウェア一覧では５番目の項目となるので、プログレスバーは４番目のソフトウェアまでが終了した、６８％の状態となっている。
【０１３８】
ここで、まず図１０のファイルセクション１００６の先頭に記載されているファイルＣｏｍｐｏｎｅｎｔＤＭａｉｎ．ｄｌｌの処理を開始する。ステップＳ１７１４までのファイルコピー処理が終了した後、ステップＳ１７１６に進む。ソフトウェアインストール設定ファイル２１６においては、ファイルＣｏｍｐｏｎｅｎｔＤＭａｉｎ．ｄｌｌのインストール量については０となっており、記載がない。そのため、ステップＳ１７１７に進む。ファイルインストール単位についてはサイズになっているため、ステップＳ１７１８で、ファイルＣｏｍｐｏｎｅｎｔＤＭａｉｎ．ｄｌｌのファイルサイズを取得する。また、ステップＳ１７２１では、ファイルセクション１００６に記載されている全てのファイルのファイルサイズを取得し、それを合計してソフトウェアのインストール量とする。その後、ステップＳ１７２３で、ファイルＣｏｍｐｏｎｅｎｔＤＭａｉｎ．ｄｌｌをコピーした際のプログレス進行量を計算する。ここでは、ＣｏｍｐｏｎｅｎｔＤＭａｉｎ．ｄｌｌが２０ＭＢ、ＣｏｍｐＳｈａｒｅ．ｌｉｂが１０ＭＢであるとする。図１５で示したように、本実施形態の場合、コンポーネントＤに割り当てられているプログレスバー領域は１２％である。その中で、（ファイルのインストール量÷ソフトウェアのインストール量）、つまり、２０÷３０＝０．６７の割合でプログレスバーを進めるため、ステップＳ１７２４では、１２％×０．６７＝８％だけ、プログレスバーが進み、７６％に進むことになる。また、ここまでのファイルコピーにＴ＝３８秒かかった場合、ステップＳ１７２６では、インストール進捗画面の推定残り時間表示領域に、３８×（１００−７６）÷７６＝１２秒を推定残り時間として表示することになる。この時点での、インストール進捗画面の表示を図２０に示す。
【０１３９】
尚、インストール中のコンポーネントに相当するプログレスバー領域の点滅や色を変えたりする事で進行中を明示したり、各コンポーネント毎にプログレスバー領域の色を変える事は、利用者にとって分かりやすい表示の実現に有効である事は言うまでもない。
【０１４０】
図２１は、インストール処理において使用される、オペレーティングシステムが持っているファイルの参照カウントデータベースの内部構造を示す図である。
【０１４１】
データベースの各レコードには、ファイル名フィールド２１０１と、そのファイル名に対応する参照カウントフィールド２１０２が存在する。インストーラからの要求で、あるファイルに対する参照カウントの加算が要求された場合、そのファイルのレコードがすでに存在すれば、その参照カウントフィールドの値に１が追加される。また、レコードが存在しないファイルに対して参照カウントの加算が要求された場合には、新規にレコードが作成され、その参照カウントフィールドには１が設定される。同様に、あるファイルに対する参照カウントフィールドの減算が要求されたときには、そのファイルのレコードから値が減算される。減算の結果、参照カウントフィールドが０以下になった場合には、自動的にそのレコードは削除される。
【０１４２】
本実施形態においては、参照カウントデータベースはオペレーティングシステムの機能を利用して実現するものとしたが、他の手段を用いて参照カウントの計算を行っても、同様の効果を得ることは可能である。また、参照カウントは、複数のソフトウェアが共通で使用するファイルを誤ってアンインストールすることがないように導入した仕組みであり、同様の効果が得られるものであれば、参照カウントの使用に限定するものではない。
【０１４３】
図２２は、図１４のインストール処理の結果作成されたインストールログの一部を抜粋した図である。
【０１４４】
インストールログには、インストーラがインストールしたファイルが、どのソフトウェアが何というファイルをどういう順番でインストールしたかが記録されている。本実施形態においては、インストールログはテキストファイルであり、テキストファイル内には、各ソフトウェアごとにセクションを分け、インストールされたファイルが時系列の順に並んで記載される。例えば、図２２のセクション２２０１には、ソフトウェアＡ、またはソフトウェアＡを親とする他のソフトウェアをインストールしたファイルの一覧が記録されている。同様に、セクション２２０２には、ソフトウェアＦ、またはソフトウェアＦを親とする他のソフトウェアをインストールしたファイルの一覧が記録されている。
【０１４５】
それぞれのセクションは、セクション名とファイル一覧から構成され、たとえばセクション２２０１は、タイトル２２０３およびファイル一覧２２０４から構成されている。ファイル一覧２２０４には、ソフトウェアＡ、またはソフトウェアＡを親とする他のソフトウェアをインストールしたファイルの一覧がインストールした順に記録されている。
【０１４６】
図２３は、本実施形態におけるアンインストール処理を行う際の動作の詳細な流れを示す図である。
【０１４７】
最初に、ステップＳ２３０１でアンインストール処理の初期化処理を行う。具体的には、ソフトウェアのアンインストール処理を行う際には、アンインストールを行うプログラム、アンインストーラに対して、アンインストールを行うソフトウェアの識別子が渡されるため、その識別子を取得する。
【０１４８】
続いて、ステップＳ２３０２で、アンインストールを実行するかどうか、利用者に確認するメッセージを表示して入力を求める。利用者がキャンセルを入力した場合には、そのまま何も行わずにアンインストール処理を終了する。利用者がＯＫを入力した場合、アンインストール処理を開始するため、ステップＳ２３０３に進む。
【０１４９】
ステップＳ２３０３では、アンインストール対象となるソフトウェアのインストールログのうち、最新のものを取得する。ステップＳ２３０４では、アンインストールログから、ソフトウェアのインストールログが取得できたかどうか判定を行い、ログが取得できなかった場合、すなわち、そのソフトウェアのインストールログが空になった場合には、ステップＳ２３１０に進む。インストールログが取得できた場合には、ステップＳ２３０５で、対象ファイルの参照カウント数を参照カウントデータベースに問い合わせる。
【０１５０】
次のステップＳ２３０６では、返ってきた値が１であるかを確認し、１であった場合にはステップＳ２３０７で対象ファイルを削除した後、ステップＳ２３０８に進む。また、参照カウントデータベースから返ってきた値が１より大きかった場合には、ファイルを削除せずにステップＳ２３０８に進む。
【０１５１】
ステップＳ２３０８では、対象ファイルの参照カウントを１減算する。続くステップＳ２３０９では、インストールログから、処理を行ったインストールログを削除し、その後、ステップＳ２３０３に戻る。
【０１５２】
ステップＳ２３１０では、利用者に対して、アンインストール処理が完了したことを示すメッセージを表示する。メッセージ表示が終了したら、アンインストール処理を終了する。
【０１５３】
（他の実施形態）
また、各実施形態の目的は、次のような方法によっても達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、本発明には次のような場合も含まれる。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【０１５４】
さらに、次のような場合も本発明に含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【０１５５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる。
【０１５６】
なお、本発明の更なる特徴としては、前記記憶媒体は図１に示した光ディスク１０６、１０７や、カード型といった形状で、交換や配布が可能な記憶媒体でも実現可能なことである。
【図面の簡単な説明】
【０１５７】
【図１】本発明の一実施形態に係わるシステムの構成を示す図である。
【図２】光ディスク１０６に記録されているプログラムおよびデータファイルの構成の例を示す図である。
【図３】一実施形態のシステムにおけるソフトウェアインストール処理全体の流れ図である。
【図４】一実施形態で光ディスク１０６に記録されているインストーラ動作設定ファイル２０２の記載の一部を示す図である。
【図５】一実施形態のシステムでのソフトウェアインストール処理のうち、ステップＳ３０２でのソフトウェア一覧作成処理の詳細な流れ図である。
【図６】図２のフォルダ構成に対して、図４の動作設定ファイル２０２を使用して、図５のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【図７】一実施形態のシステムでのソフトウェアインストール処理のうち、ステップＳ３０３でのソフトウェア選択画面表示処理の詳細な流れ図である。
【図８】別の光ディスク１０７におけるフォルダ構成を示す図である。
【図９】ソフトウェアインストール設定ファイルの例として、ソフトウェアインストール設定ファイル２１０を示す図である。
【図１０】ソフトウェアインストール設定ファイルの別の例として、ソフトウェアインストール設定ファイル２１６を示す図である。
【図１１】ソフトウェアインストール設定ファイルのさらに別の例として、ソフトウェアインストール設定ファイル８０９を示す図である。
【図１２】図８のフォルダ構成に対して、図４の動作設定ファイル２０２を使用して、図５のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【図１３】図１２のソフトウェア一覧を用いて、図７の処理を行った結果表示されるソフトウェア選択画面を示す図である。
【図１４】ステップＳ３０５におけるインストール進捗画面の初期化処理の詳細な流れ図である。
【図１５】図１３のソフトウェア選択画面で、全てのソフトウェアを選択した後、図１４で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【図１６】図１３のソフトウェア選択画面で、ソフトウェアＡの選択を解除した後、図１４で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【図１７Ａ】ステップＳ３０９における、インストール実行処理の詳細な流れ図である。
【図１７Ｂ】ステップＳ３０９における、インストール実行処理の詳細な流れ図である。
【図１８】図１７の処理に従ってインストールを行う際の、ソフトウェアＡのインストール中のインストール進捗画面を示す図である。
【図１９】コンポーネントＤのインストールを開始した際の、ステップＳ１７０１時点でのインストール進捗画面を示す図である。
【図２０】図１７の処理に従ってインストールを行う際の、コンポーネントＤのインストール中のインストール進捗画面を示す図である。
【図２１】インストール処理において使用される、オペレーティングシステムが持っているファイルの参照カウントデータベースの内部構造を示す図である。
【図２２】図１４のインストール処理の結果作成されたインストールログの一部を抜粋した図である。
【図２３】一実施形態におけるアンインストール処理を行う際の動作の詳細な流れ図である。
【図２４】非特許文献２に記載のソフトウェアにおけるソフトウェア選択画面を示す図である。
【図１】
2007213344.tif 000003
【図２】
2007213344.tif 000004
【図３】
2007213344.tif 000005
【図４】
2007213344.tif 000006
【図５】
2007213344.tif 000007
【図６】
2007213344.tif 000008
【図７】
2007213344.tif 000009
【図８】
2007213344.tif 000010
【図９】
2007213344.tif 000011
【図１０】
2007213344.tif 000012
【図１１】
2007213344.tif 000013
【図１２】
2007213344.tif 000014
【図１３】
2007213344.tif 000015
【図１４】
2007213344.tif 000016
【図１５】
2007213344.tif 000017
【図１６】
2007213344.tif 000018
【図１７Ａ】
2007213344.tif 000019
【図１７Ｂ】
2007213344.tif 000020
【図１８】
2007213344.tif 000021
【図１９】
2007213344.tif 000022
【図２０】
2007213344.tif 000023
【図２１】
2007213344.tif 000024
【図２２】
2007213344.tif 000025
【図２３】
2007213344.tif 000026
【図２４】
2007213344.tif 000027