インストール装置及びインストール方法及びプログラム及び記憶媒体
【課題】複数のソフトウェアを連続的にインストールする場合のインストール処理全体の進捗状況を、利用者に分かりやすく表示できるようにする。
【解決手段】ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取ってその内容に従って処理することにより、複数のソフトウェアを連続してインストールするインストール実行工程と、複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程とを具備する
【解決手段】ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取ってその内容に従って処理することにより、複数のソフトウェアを連続してインストールするインストール実行工程と、複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程とを具備する
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、複数のソフトウェアを連続してインストールする場合における、利用者への情報の提示技術に関するものである。
【背景技術】
【0002】
近年、CD−ROMなどの交換可能なメディアや、インターネットなどのネットワークシステムを用いて、プログラムファイルやデータファイルを配布することは一般的に行われている。その際に、インストーラと呼ばれるプログラムを、配布対象のプログラムに添付して配布することが一般的である。インストーラは、配布されたプログラムを配布先のコンピュータシステムで実行可能にするために、配布先のコンピュータシステムに接続されたハードディスクなどの記憶装置に、配布されたファイルをコピーする。また、オペレーティングシステム上の必要な設定を自動的に行う処理をする機能も有する。
【0003】
一般に、ソフトウェアのインストールに必要となる処理は、ソフトウェアによって少しずつ異なるため、あるソフトウェアを配布する際には、そのソフトウェア専用のインストーラが作成され、ソフトウェアに添付され配布される。このようなインストーラ作成作業の負荷を軽減するために、インストーラ作成ツールと呼ばれるソフトウェアを用いて、インストーラを半自動的に作成することが一般に行われている。例えば、非特許文献1に示したソフトウェアが、このような用途に多く使用されている。
【0004】
また、このようなインストーラを作成する際に、インストーラの実行ファイルと、実際にインストーラが行う処理の内容とを、別のファイルとして用意することも行なわれている。この場合、各ソフトウェア専用のインストーラを作成する際には、インストーラの実行ファイルは変更せず、インストーラの処理内容を記載した、ソフトウェアインストール設定ファイルのみを書き換える。このような方法で、インストーラの作成手順を簡略化することが行われている。例えば、データファイルに、インストールするファイルの情報、および、ソフトウェアが動作するために必要となるオペレーティングシステムが管理するシステムファイルの更新データ等を記載するような発明が、特許文献1に示されている。
【0005】
また、近年、ソフトウェアの大規模化に伴い、ソフトウェアを複数のコンポーネントに分離し、それぞれを独立して開発することが一般的に行われるようになった。このような開発形態においては、すべてのコンポーネントで、開発や市場への配布の日程を同期させる必要がないという利点がある。しかし、この開発形態を効率的に動作させるためには、それぞれのコンポーネントのインストーラについても、独立で開発を進めることが望ましい。
【0006】
例えば、あるソフトウェアAにコンポーネントBおよびコンポーネントCが含まれる場合を例として考える。インストーラが独立していない場合、この例においては、インストーラとして、ソフトウェアAとコンポーネントBとコンポーネントCを同時にインストールするための単一のインストーラを作成する。そのため、コンポーネントCの修正を行う場合には、インストーラを修正する必要があり、そのために、修正を行っていないソフトウェアAとコンポーネントBについても同時に配布する必要があった。
【0007】
このような問題を避けるために一般的に行われている手法では、例えば上記の例において、ソフトウェアAのインストーラと、コンポーネントBのインストーラと、コンポーネントCのインストーラをそれぞれ独立に設けている。その上で、これらの複数のソフトウェアを同時にインストールする必要のある利用者のためには、これらの複数のインストーラを連続して実行するためのマスターインストーラと呼ばれるプログラムを同時に配布するようにしている。
【0008】
また、このような構成は、複数の関連したソフトウェアを同時に配布する場合にも利用することができる。例えば、ソフトウェアをパッケージとしてCD−ROMなどを用いて販売する場合や、特定ハードウェアに同梱されるソフトウェアにおいて、このような場合が発生する。
【0009】
例えば、非特許文献2に記載のソフトウェアは、特定のハードウェアに同梱されているCD−ROMである。そして、このCD−ROMには、そのハードウェアを利用するための、画像管理ソフトウェア、画像パノラマ合成ソフトウェア、ハードウェアのデバイスドライバなどが同梱されている。そして、それらを連続してインストールするためのマスターインストーラも用意されており、利用者はこれを用いることですべてのソフトウェアを連続してインストールすることができる。
【0010】
さらに、上で述べたような、インストーラの実行ファイルと、ソフトウェアインストール設定ファイルとの分離を行う技術を、複数のソフトウェアを連続してインストールするために応用する方法も考えられる。システム内に単一のインストール実行ファイルが存在し、そのインストール実行ファイル、すなわちマスターインストーラが、複数のソフトウェアインストール設定ファイルを連続して読み出し、設定ファイルに従ってインストール処理を実行する構成である。
【0011】
これらのいずれの構成でも、各ソフトウェア間の開発における独立性を高めて効率化を図ることができる。
【特許文献1】特開平10−027090号公報
【特許文献2】特許第03578135号公報
【非特許文献1】MacroVision InstallShieldソフトウェア
【非特許文献2】キヤノン Digital Camera Solution Disk Version 26
【発明の開示】
【発明が解決しようとする課題】
【0012】
上述の、複数のインストーラを連続して起動するシステムにおいては、複数のインストールを連続しておこなっているため、インストール処理全体を完了するまでに時間がかかる。そのため、マスターインストーラでは、利用者に対してインストール処理の進捗状況を利用者に示すことが多い。
【0013】
例えば非特許文献2の場合であれば、各ソフトウェアのインストーラに各々の進捗状況を表示させる、インストール処理全体を統括するマスターインストーラがインストール処理全体の進捗状況を表示していない。そのため、利用者は各ソフトウェアそれぞれのインストール進捗状況を理解することはできても、インストール処理全体としての進捗状況がまったくわからない。
【0014】
このような問題を解決する技術として、特許文献2のような提案がなされている。即ち、インストールする全ドライバ数を進捗状況の100%とし、100%をインストールするドライバの数で分割する。そして実際にインストールが開始されると、インストール済みのドライバの数分だけ進捗状況を100%に近づける。このようにして、ドライバの個数を基準にしてデバイスドライバのインストール処理全体の進捗状況を表す方法を提案している。この提案によって、利用者は、ドライバの個数を基準としてインストール処理全体の進捗状況を知ることができる。
【0015】
しかしながら、この提案にも次のような問題がある。即ち、インストールするソフトウェアのサイズが同じというのはほとんどなく、個数によってインストール処理全体の進捗状況を表現した場合、進捗の度合いがソフトウェア毎に異なり、正確に進捗状況を示せない場合があるというものである。
【0016】
従って、本発明は上述した課題に鑑みてなされたものであり、複数のソフトウェアを連続的にインストールする場合のインストール処理全体の進捗状況を、利用者に分かりやすく表示できるようにすることである。
【課題を解決するための手段】
【0017】
上述した課題を解決し、目的を達成するために、本発明に係わるインストール装置は、ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール装置であって、前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールすることが可能なインストール実行手段と、前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示手段と、を具備することを特徴とする。
【0018】
また、本発明に係わるインストール方法は、ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールするインストール実行工程と、前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程と、を具備することを特徴とする。
【0019】
また、本発明に係わるプログラムは、上記のインストール方法をコンピュータに実行させることを特徴とする。
【0020】
また、本発明に係わる記憶媒体は、上記のプログラムを記憶したことを特徴とする。
【発明の効果】
【0021】
本発明によれば、複数のソフトウェアを連続的にインストールする場合のインストール処理全体の進捗状況を、利用者に分かりやすく表示することが可能となる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の好適な一実施形態について、添付図面を参照して詳細に説明する。
【0023】
図1は、本発明の一実施形態に係わるシステムの構成を示す図である。
【0024】
システム内のコンピュータ101には、ディスプレイ102、光学ディスクドライブ103、ハードディスク104、マウス105が接続されている。交換可能な光ディスク106には、プログラムおよびデータが記録されており、コンピュータ101は、光学ディスクドライブ103に挿入された光ディスク106から読み取ったプログラムを実行する。コンピュータ101は、接続されたディスプレイ102に描画を行い、システムの利用者に対して確認メッセージを表示したり、システムの状況を通知したりする。システムの利用者は、マウス105を使用して、ディスプレイ102に表示された確認メッセージに対して応答できる。コンピュータ101は、プログラムの内容に従って、光ディスク106に記録されているデータをハードディスク104にコピーしたり、ハードディスク104に記録されているデータを書き換えることができる。また、本システムにおいては、光ディスク106は交換可能であり、たとえば別の光ディスク107を用いることもできる。
【0025】
図2は、光ディスク106に記録されているプログラムおよびデータファイルの構成の例を示す図である。
【0026】
光ディスク106内には、光ディスク上に記録されている、唯一の実行ファイルである、インストーラ実行ファイル201、およびインストーラ実行ファイルの動作の詳細を制御するための、インストーラ動作設定ファイル202が存在している。なお、以下では、インストーラ実行ファイル201をマスターインストーラと呼ぶこともある。また、光ディスク106内には、アプリケーションフォルダ203、コンポーネントフォルダ204が存在する。アプリケーションフォルダ203には、フォルダ205が含まれており、コンポーネントフォルダ204には、フォルダ206から209の4つのサブフォルダが含まれている。
【0027】
フォルダ205には、ソフトウェアAのインストールに必要なデータおよび情報が含まれている。具体的には、ソフトウェアインストール設定ファイル210、およびインストール対象となるソフトウェア構成ファイル211が含まれる。フォルダ206からフォルダ208には、それぞれ、ソフトウェアAのコンポーネントD、コンポーネントB、コンポーネントCのインストールに必要なデータおよび情報が含まれる。
【0028】
具体的には、フォルダ206には、ソフトウェアインストール設定ファイル212およびソフトウェア構成ファイル213が含まれる。
【0029】
フォルダ207には、ソフトウェアインストール設定ファイル214およびソフトウェア構成ファイル215が含まれる。
【0030】
フォルダ208には、ソフトウェアインストール設定ファイル216およびソフトウェア構成ファイル217が含まれる。
【0031】
また、フォルダ209には、ソフトウェアAのコンポーネントBが動作するのに必要な、サブコンポーネントEのインストールに必要なデータおよび情報が含まれる。具体的には、フォルダ209には、ソフトウェアインストール設定ファイル218およびソフトウェア構成ファイル219が含まれる。
【0032】
本例の光ディスク106に記録されているインストーラ実行ファイル201を本システム上で実行すると次のようになる。即ち、ソフトウェアA、およびそのコンポーネントB、コンポーネントC、コンポーネントD、また、コンポーネントBのサブコンポーネントEが、ハードディスク104にインストールされる。
【0033】
図3は、本システムにおけるソフトウェアインストール処理の全体の流れを示す図である。
【0034】
まず、ステップS301で、インストーラ実行ファイルの初期化処理を行う。ここでは、インストーラ実行ファイル201が、インストーラ動作設定ファイル202を読み取り、インストール処理の初期化を行う。
【0035】
次に、ステップS302で、ソフトウェア一覧作成処理を行う。インストーラ実行ファイル201は、光ディスク106に記録されている複数のソフトウェアインストール設定ファイルを読み込み、その内容に従って、ソフトウェア一覧を作成する。
【0036】
続いて、ステップS303では、ソフトウェア選択画面の表示を行う。ここでは、前のステップS302で作成したソフトウェア一覧に従って、ソフトウェア選択画面を表示する。システムの利用者は、この画面でインストールするソフトウェアを選択できる。
【0037】
ステップS304では、インストール確認画面を表示する。ここでは、インストール時に必要な使用許諾契約の文面を表示し、同意した利用者のみがインストールを実行できる。
【0038】
ステップS305では、インストール進捗画面の初期化を行う。
【0039】
続いて、ステップS306では、ステップS302で作成したソフトウェア一覧のソフトウェアすべてについて、インストール処理が終了したかどうかをチェックする。すべて終了した場合には、ステップS310に進む。未処理のソフトウェアが存在する場合は、ステップS307に進む。
【0040】
ステップS307では、処理中のソフトウェアが、ソフトウェア選択画面で選択されていたかどうかを取得する。その結果をステップS308で判定し、ソフトウェアが選択されていればステップS309に、選択されていなければステップS306に戻りソフトウェア一覧の次のソフトウェアの処理を行う。
【0041】
ステップS309では、処理中のソフトウェアのソフトウェアインストール設定ファイルを読み込み、その記載内容に従って、ソフトウェア構成ファイルをハードディスク104にコピーし、また、インストール処理内容をログに記録する。
【0042】
ステップS310は、すべてのソフトウェアのインストール処理が完了した場合に実行される。ここでは、前ステップまでの各ソフトウェアのインストール結果に応じて、インストール結果出力画面を表示する。この画面で利用者が完了操作を行えば、本システムにおけるソフトウェアインストール処理は完了である。
【0043】
図4は、本例で光ディスク106に記録されているインストーラ動作設定ファイル202の記載の一部を示す図である。インストーラ動作設定ファイル202には、ファイルセクション401、およびフォルダセクション402が含まれている。フォルダセクション402には、検索対象ファイル名403と、検索対象フォルダリスト404が含まれている。ここで、検索対象ファイルとは、インストーラ実行ファイル201(マスターインストーラ)でインストールすることのできる全てのファイルである。以下で説明するソフトウェア一覧作成処理では、光ディスク106から上記の検索対象ファイルを検索する。これは、光ディスク106には、マスターインストーラでインストールできる複数のソフトウェアファイルのうちの全てが記録されているとは限らないからである。そのため、光ディスク106に記録されているソフトウェアファイルのみの一覧を作成するために上記の検索を行なう。
【0044】
図5は、本システムでのソフトウェアインストール処理のうち、ステップS302でのソフトウェア一覧作成処理の詳細な流れを示す図である。
【0045】
まず、ステップS501で、ソフトウェア一覧に追加するべきソフトウェアインストール設定ファイルを、光ディスク106から検索する。具体的には、インストーラ動作設定ファイル202のファイルセクション401に記載されているすべてのファイルと、フォルダセクション402に記載されている検索対象フォルダリスト404に含まれているフォルダを検索する。検索するものは、検索対象ファイル名403と一致するファイル名のファイルであり、それが光ディスク106から見つかった場合には、それをソフトウェア一覧に追加する。
【0046】
続いて、ステップS502で、ソフトウェア一覧のすべてのソフトウェアインストール設定ファイルに関して、並べ替えキーの取得処理が終了したかどうかを判定する。すべてのソフトウェアについて処理が完了していた場合にはステップS507に進む。まだ終了していないソフトウェアがあった場合には、ステップS503に進み、そのソフトウェアインストール設定ファイルの内容をチェックする。
【0047】
ステップS504では、チェック結果を取得し、そのファイルが存在しない場合や、存在してもファイル形式や内容に問題がある場合には、ステップS506に進みそのソフトウェアをソフトウェア一覧から削除する。特に問題がなかった場合、ステップS505に進み、そのソフトウェアインストール設定ファイルから、ソフトウェア一覧の並び替えに使用する「並べ替えキー」文字列を取得してソフトウェア一覧に記録する。その後、ステップS502に戻り、次のソフトウェアの処理に進む。
【0048】
すべてのソフトウェアの処理が終わった後は、ステップS507で、取得した各ソフトウェアの並べ替えキー文字列を元に、文字列を文字コードで比較して小さいものを前に、大きいものを後にして、ソフトウェア一覧におけるソフトウェアの順序を決定する。そして、ソフトウェア一覧にその順序を記録した後ステップS508に進む。ステップS508以降の処理では、ソフトウェアの処理はここで記録したソフトウェアの順序に従い、順序が小さいものから順に処理が行われる。
【0049】
まず、ステップS508で、ソフトウェア一覧のすべてのソフトウェアについて、親ソフトウェアの検索が終了したかどうかを確認する。終了していれば、ソフトウェア一覧作成処理を完了する。まだ親ソフトウェアの検索を行っていないソフトウェアがあれば、ステップS509に進む。
【0050】
ステップS509からステップS515では、ソフトウェア一覧で、順序がn番目のソフトウェアについて親ソフトウェアの検索を行う。
【0051】
まず、ステップS509では、変数の初期化を行う。n番目のソフトウェアの並べ替えキー文字列を取得し、ループ変数iに1を設定する。続いて、ステップS510では、ループ変数iがnと等しいかどうかを比較する。等しければ、n番目のソフトウェアの親ソフトウェアは見つからなかったため、ステップS514でソフトウェア一覧の親の項目に0を書き込んで、n番目のソフトウェアの親ソフトウェア検索処理を終了し、ステップS508に戻る。ループ変数iがnと等しくない場合、ステップS511で、ソフトウェア一覧で順序がi番目のソフトウェアの並べ替えキー文字列を取得する。続いて、ステップS512で、n番目のソフトウェアのキー文字列が、i番目のソフトウェアのキー文字列に前方一致しているか、すなわち、n番目のソフトウェアのキー文字列の先頭が、i番目のソフトウェアのキー文字列と一致するかどうかを判定する。一致しなかった場合には、ステップS513でループ変数iに1を加えた後ステップS510に戻る。一致した場合には、ステップS514で、ソフトウェア一覧の親の項目にiを書き込んで、n番目のソフトウェアの親ソフトウェア検索処理を終了し、ステップS508に戻る。
【0052】
図6は、図2のフォルダ構成に対して、図4の動作設定ファイル202を使用して、図5のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【0053】
ソフトウェア一覧には、各ソフトウェアのソフトウェアインストール設定ファイルのファイル名リスト601、各ソフトウェアインストール設定ファイルに記載されている並べ替えキーリスト602が含まれる。また、ソフトウェア一覧作成処理を行った結果の並び順リスト603、親ソフトウェアを示す親リスト604も含まれる。ファイル名リスト601には、図2のフォルダ構成に含まれているソフトウェアインストール設定ファイルが含まれている。また、図4の動作設定ファイル202のファイルセクション401に記載されているファイルであっても、実際に図2のフォルダ構成に含まれていないファイルは含まない。
【0054】
並び順リスト603は、並べ替えキー602の値を元に各ソフトウェアの順序を決めたものである。図2のフォルダ構成では、ソフトウェアAが1、ソフトウェアAのコンポーネントBが2、ソフトウェアAのコンポーネントBのサブコンポーネントEが3、ソフトウェアAのコンポーネントCが4、ソフトウェアAのコンポーネントDが5の順になる。また、各ソフトウェアの親リスト604は、ソフトウェアAについては0、それ以外のコンポーネントに関しては1が記録される。ここでの「1」とは、並び順リストの値が1であるソフトウェアAを表している。
【0055】
図7は、本システムでのソフトウェアインストール処理のうち、ステップS303でのソフトウェア選択画面表示処理の詳細な流れを示す図である。
【0056】
最初に、ステップS701で、ソフトウェア一覧の中で親が0になっているソフトウェア、すなわち、自分自身が親であるようなソフトウェアの数nを数える。続いて、ステップS702で、nの値が0であるかどうかを判定する。nが0の場合には、自分自身が親であるようなソフトウェアがソフトウェア一覧に存在しないため、ステップS703でエラーメッセージを出力した後、インストール処理全体を中断する。nが0でない場合は、ステップS704に進む。
【0057】
ステップS704では、nの値が1であるかどうかを判定する。nが1の場合には、自分自身が親であるようなソフトウェアがソフトウェア一覧に一つしか存在しないため、ソフトウェア選択ダイアログを表示する意味がない。そのため、nが1の場合には選択画面表示処理を終了し、次の確認画面表示処理(ステップS304)に進む。
【0058】
nの値が1より大きかった場合には、ステップS705に進み、ソフトウェア選択画面の初期化を行う。続いて、ステップS706から、ソフトウェア一覧に含まれるすべてのソフトウェアについて、ソフトウェア選択画面への表示を行う。
【0059】
ステップS706では、すべてのソフトウェアの処理が終了したかどうか判定し、すべて終了している場合には選択画面表示処理を終了する。未処理のソフトウェアがある場合には、ステップS707で、ソフトウェア一覧に記録されているソフトウェアインストール設定ファイルから、ソフトウェアのインストール時に利用者に表示するための情報を取得する。本実施形態においては、ソフトウェア名称、ソフトウェアのバージョン番号、ソフトウェアを表すアイコン、ソフトウェアの詳細な説明文、および、ソフトウェアのインストールに必要なディスク容量の情報を取得する。
【0060】
続いて、ステップS708で、ソフトウェア一覧に記録されている親の情報が0になっているかどうかを取得する。親に0以外の情報が記載されていた場合、ステップS712に進む。親が0であった場合、すなわち親ソフトウェアが存在しない場合には、ステップS709に進む。
【0061】
ステップS709では、表示されているソフトウェア選択画面に、新しいソフトウェアの行を末尾に追加する。続いて、ステップS710で、ステップS709で追加したソフトウェアの行の先頭に、チェックボックスを表示する。ステップS711では、ステップS707で取得した各種情報のうち、ソフトウェアのインストール時に必要なディスク容量の情報を除いた情報を、ステップS709で追加したソフトウェアの行に描画する。
【0062】
ステップS712では、ソフトウェア容量の描画をソフトウェア選択画面内に行う。具体的には、ソフトウェア選択画面内の最終ソフトウェア行の末尾に記載のあるソフトウェアごとのディスク容量に、現在処理中のソフトウェアのディスク容量を加算して、描画を更新する。更新が終わったら、ステップS706に戻る。
【0063】
図2のフォルダ構成の光ディスクでは、図6に示すとおり、親が0になっているソフトウェアはソフトウェアAの1つのみである。この場合、図7の処理を行うと、ステップS703の処理の結果、ソフトウェア選択画面表示処理では何の表示も行わず、次の確認画面表示処理に進むことになる。
【0064】
図8に、別の光ディスク107におけるフォルダ構成の図を示す。
【0065】
この光ディスク107の構成は、光ディスク106の構成に、いくつかのフォルダやファイルを追加したものである。インストーラ実行ファイル201、インストーラ動作設定ファイル202、アプリケーションフォルダ203、コンポーネントフォルダ204、フォルダ205から209は、光ディスク106と全く同一である。また、ソフトウェアインストール設定ファイル210、212、214、216、218、ソフトウェア構成ファイル211、213、215、217、219に関しても、光ディスク106と全く同一である。
【0066】
光ディスク107では、それに加えて、アプリケーションフォルダ203内に、ソフトウェアFのインストールに必要なデータおよび情報が含まれているフォルダ801が含まれている。その中には、ソフトウェアインストール設定ファイル802、およびインストール対象となるソフトウェア構成ファイル803が含まれる。また、コンポーネントフォルダ204内に、ソフトウェアFの動作に必要なコンポーネントGのインストールに必要なデータおよび情報が含まれているフォルダ804が含まれている。その中には、ソフトウェアインストール設定ファイル805、およびインストール対象となるソフトウェア構成ファイル806が含まれる。
【0067】
また、追加ソフトウェアを収録するための追加アプリケーションフォルダ807が、アプリケーションフォルダ203およびコンポーネントフォルダ204と同じ階層に存在している。そして、その中には、ソフトウェアHのインストールに必要なデータおよび情報が含まれているフォルダ808が含まれている。フォルダ808の中には、ソフトウェアインストール設定ファイル809、ソフトウェア構成ファイル810に加えて、外部インストーラ実行ファイル811、および外部インストーラ構成ファイル812が含まれる。
【0068】
図9は、ソフトウェアインストール設定ファイルの例として、ソフトウェアインストール設定ファイル210を示す図である。
【0069】
ソフトウェアインストール設定ファイル210はテキストファイルである。そして、一般セクション901、並べ替えセクション902、情報セクション903、インストール先指定セクション904、プログレス情報セクション905、ファイルセクション906から構成されている。
【0070】
一般セクション901には、インストーラのタイプが記載されている。ソフトウェアインストール設定ファイル210においては、通常のインストーラであることを示すために、タイプとして「NORMAL」が指定されている。
【0071】
並べ替えセクション902には、ソフトウェア一覧作成処理で使用される、並べ替えキーが記載されている。ソフトウェアインストール設定ファイル210では「SoftA」が指定されている。
【0072】
情報セクション903には、ソフトウェア選択画面で表示するためのソフトウェアの情報が記載されている。このセクションには、ソフトウェア名称907、ソフトウェアのバージョン番号908、ソフトウェアを表すアイコンの光ディスク上での位置909、ソフトウェアの詳細な説明文910が記載されている。また、ソフトウェアのディスク容量911、ソフトウェア説明画像の光ディスク上での位置912も記載されている。
【0073】
インストール先指定セクション904には、ソフトウェアをインストールする先のハードディスク104上の位置が指定されている。
【0074】
プログレス情報セクション905には、インストール進捗画面表示の際に用いられる情報が記載されている。具体的には、プログレスバーの分割に用いるためのソフトウェアのインストール量とその単位が記載されている。また、各ソフトウェアのインストール中、ファイルコピーごとにプログレスバーを進めるために使用される、ファイルごとのインストール量で用いる基準となるファイルインストール単位が記載されている。ソフトウェアインストール設定ファイル210では、ソフトウェアのインストール量はサイズを用いる記載がされており、ソフトウェアAのインストール量としては、100が指定されている。また、ファイルごとのインストール量については、インストール時間を基準として用いる記載がされている。
【0075】
ファイルセクション906には、インストールされるファイルの一覧が記載されている。各ファイル項目は、コピー先ファイル名913、ソフトウェア構成ファイル圧縮ファイル名914、コピー元ファイル名915、および、ファイルのインストール量916が記載されている。
【0076】
図10は、ソフトウェアインストール設定ファイルの別の例として、ソフトウェアインストール設定ファイル216を示す図である。
【0077】
ソフトウェアインストール設定ファイル216も、図9のソフトウェアインストール設定ファイル210と同様にテキストファイルである。同じように一般セクション1001、並べ替えセクション1002、情報セクション1003、インストール先指定セクション1004、プログレス情報セクション1005、ファイルセクション1006から構成されている。
【0078】
一般セクション1001に記載されているインストーラのタイプは、「NORMAL」である。
【0079】
並べ替えセクション1002には、「SoftA−CompD」が指定されている。
【0080】
情報セクション1003には、ソフトウェア名称1007、ソフトウェアのバージョン番号1008、ソフトウェアを表すアイコンの光ディスク上での位置1009、ソフトウェアの詳細な説明文1010が記載されている。また、ソフトウェアのディスク容量1011、ソフトウェア説明画像の光ディスク上での位置1012も記載されている。
【0081】
インストール先指定セクション1004には、ソフトウェアをインストールする先のハードディスク104上の位置が指定されている。
【0082】
プログレス情報セクション1005の記載に関しては、図9のソフトウェアインストール設定ファイル210とは異なり、ソフトウェアのインストール量とその単位については省略されている。また、ファイルごとのインストール量については、サイズを基準として用いる記載がされている。
【0083】
ファイルセクション1006の各ファイル項目には、コピー先ファイル名1013、ソフトウェア構成ファイル圧縮ファイル名1014、コピー元ファイル名1015、および、ファイルのインストール量1016が記載されている。ただし、ファイルのインストール量1016に関しては、記載を省略していることを示す値0が記載されている。
【0084】
図11は、ソフトウェアインストール設定ファイルのさらに別の例として、ソフトウェアインストール設定ファイル809を示す図である。
【0085】
ソフトウェアインストール設定ファイル809も、図9のソフトウェアインストール設定ファイル210と同様にテキストファイルである。同じように一般セクション1101、並べ替えセクション1102、情報セクション1103、プログレス情報セクション1104を含んでいるが、インストール先指定セクションおよびファイルセクションは含まれない。また、外部ソフトウェアセクション1105が含まれている。
【0086】
一般セクション1101には、外部インストーラを起動するタイプであることを示す、「EXTERNAL」が記載されている。
【0087】
並べ替えセクション1102には、「SoftH」が指定されている。
【0088】
情報セクション1103には、ソフトウェア名称1106、ソフトウェアのバージョン番号1107、ソフトウェアを表すアイコンの光ディスク上での位置1108、ソフトウェアの詳細な説明文1109が記載されている。また、ソフトウェアのディスク容量1110、ソフトウェア説明画像の光ディスク上での位置1111も記載されている。
【0089】
プログレス情報セクション1104の記載に関しては、ソフトウェアのインストール量とその単位が記載されている。
【0090】
外部ソフトウェアセクション1105には、起動する外部ソフトウェアの、光ディスク上での位置が記載されている。
【0091】
図12は、図8のフォルダ構成に対して、図4の動作設定ファイル202を使用して、図5のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【0092】
ソフトウェア一覧には、各ソフトウェアのソフトウェアインストール設定ファイルのファイル名リスト1201、各ソフトウェアインストール設定ファイルに記載されている並べ替えキーリスト1202が含まれる。また、ソフトウェア一覧作成処理を行った結果の並び順リスト1203、親ソフトウェアを示す親リスト1204も含まれる。
【0093】
ファイル名リスト1201には、図8のフォルダ構成に含まれているソフトウェアインストール設定ファイルが含まれている。並び順リスト1203は、並べ替えキーリスト1202の値を元に決定されている。そして、ソフトウェアAが1、ソフトウェアAのコンポーネントBが2、ソフトウェアAのコンポーネントBのサブコンポーネントEが3、ソフトウェアAのコンポーネントCが4、ソフトウェアAのコンポーネントDが5の順になる。また、ソフトウェアFが6、ソフトウェアFのコンポーネントGが7、ソフトウェアHが8の順になる。親リスト1204では、親ソフトウェアを持たないソフトウェアA、ソフトウェアF、ソフトウェアHでは0が記録される。ソフトウェアAを親として持つコンポーネントB、コンポーネントC、コンポーネントD、コンポーネントEでは1が、ソフトウェアFを親として持つコンポーネントGには6が記録される。
【0094】
図13は、図12のソフトウェア一覧を用いて、図7の処理を行った結果表示されるソフトウェア選択画面を示す図である。
【0095】
ソフトウェア選択画面は、チェックボックス領域1301、ソフトウェアアイコン領域1302、ソフトウェア名称領域1303、ソフトウェアバージョン番号領域1304を備える。また、ソフトウェア説明文領域1305、ソフトウェアディスク容量領域1306も備える。
【0096】
この選択画面に表示されるソフトウェア名称は、ソフトウェア一覧で親ソフトウェアが存在しないソフトウェアのみであり、図12のソフトウェア一覧では、ソフトウェアA、ソフトウェアF、ソフトウェアHの3項目が表示される。
【0097】
チェックボックス領域1301には、図7のステップS710で各ソフトウェアに対応するチェックボックスが描画される。ソフトウェアアイコン領域1302、ソフトウェア名称領域1303、ソフトウェアバージョン番号領域1304、ソフトウェア説明文領域1305は、次のように描画される。即ち、図7のステップS711の処理で、各ソフトウェアのソフトウェアインストール設定ファイルから読み出した情報を用いて描画される。
【0098】
ソフトウェアディスク容量領域1306には、次のような容量が表示される。即ち、各列のソフトウェア自身のソフトウェアインストール設定ファイルから読み出した必要ディスク容量の値に加えて、そのソフトウェアを親としているすべてのソフトウェアの必要ディスク容量を図7のステップS712の処理内で加算したものが表示される。具体的には、ソフトウェアディスク容量領域1306内の、ソフトウェアA列のディスク容量領域1307には、次のような値が表示される。即ち、ソフトウェアA自身のディスク容量に加えて、ソフトウェアAを親とするソフトウェア、つまり、コンポーネントB、C、D、Eのディスク容量を加算した値が表示される。同様に、ソフトウェアF列のディスク容量領域1308には、ソフトウェアF自身のディスク容量に加えて、ソフトウェアFを親とするコンポーネントGのディスク容量を加算した値が表示される。ソフトウェアH列のディスク容量領域1309には、ソフトウェアHを親として持っているソフトウェアは存在しないため、ソフトウェアHのディスク容量がそのまま表示される。
【0099】
図14は、ステップS305におけるインストール進捗画面の初期化処理の詳細な流れを示す図である。
【0100】
インストール進捗画面の初期化処理では、最初に全ソフトウェアのインストール量の計算を行い、その後、インストール進捗画面上のプログレスバーを、インストール量に従って分割する。
【0101】
最初に、ステップS1401で、全てのソフトウェアのインストール量の取得が終わったかどうかを調べ、全て終了している場合には、ステップS1406に進む。まだ取得が終わっていないソフトウェアがある場合には、ステップS1402に進む。
【0102】
ステップS1402では、処理中のソフトウェアが、あるいは処理中のソフトウェアに親が存在する場合には親のソフトウェアが、ソフトウェア選択画面において選択されているかを調べる。いずれかの場合で処理中のソフトウェアが選択されている場合には、ステップS1403に進む。処理中のソフトウェアが選択されていない場合には、そのソフトウェアのインストール量は0とみなし、ステップS1401で次のソフトウェアのインストール量取得に進む。
【0103】
ステップS1403では、ソフトウェアインストール設定ファイルから、そのソフトウェアのインストール量の取得を試みる。ステップS1404では、ソフトウェアのインストール量の取得に成功したかどうかを判定し、成功した場合には、ステップS1401で次のソフトウェアのインストール量取得に進む。失敗した場合、つまり、ソフトウェアインストール設定ファイルにソフトウェアのインストール量の記載が存在しない場合には、ステップS1405に進む。そして、ソフトウェアインストール設定ファイルに記載されているソフトウェア構成ファイルのそれぞれについてインストール量を取得し、全てのファイルのインストール量を合計したものを、ソフトウェアのインストール量とみなす。その後、ステップS1401で次のソフトウェアのインストール量取得に進む。
【0104】
ステップS1406では、これまで取得してきた各ソフトウェアのインストール量を全て合計することで、全ソフトウェアのインストール量合計を求める。
【0105】
続いて、ステップS1407で、インストール進捗画面上のプログレスバーの100%を全ソフトウェアのインストール量合計とし、プログレスバーを各ソフトウェアのインストール量に従って分割する。さらに、ステップS1408で、この時点での時刻を記憶する。この時刻は、推定残り時間を計算するための、インストール経過時間を計算するために用いられる。以上が終了したら、インストール進捗画面の初期化処理を終了する。
【0106】
図15は、図13のソフトウェア選択画面で、全てのソフトウェアを選択した後、図14で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【0107】
画面内には、ソフトウェア説明画像表示領域1501、プログレスバー1502、残りソフトウェア数表示領域1503、推定残り時間表示領域1504が存在する。ソフトウェア説明画像表示領域1501は、ソフトウェアのインストール中に、ソフトウェアの内容を説明するための画像が表示される領域であるが、初期化直後ではこの領域は空白になっている。
【0108】
プログレスバー1502は、領域1505から領域1512までの8つの領域に分割されている。これらの領域は、それぞれ図8のフォルダ構成に含まれる8つのソフトウェア、すなわちソフトウェアA、コンポーネントB、コンポーネントE、コンポーネントC、コンポーネントD、ソフトウェアF、コンポーネントG、ソフトウェアHに対応する領域である。この例では、それぞれの領域に、40%、12%、4%、12%、12%、8%、4%、8%、合計100%が割り当てられている。残りソフトウェア数表示領域1503は、ソフトウェアのインストール中に、残りソフトウェア数を表示するための領域であるが、初期化直後ではこの領域には、プログレスバーの分割数、この例では「8」と表示される。推定残り時間表示領域1504は、ソフトウェアのインストール中に、推定されるインストール残り時間を表示するための領域であるが、初期化直後ではこの領域には「初期化中」と表示される。
【0109】
さらに、図16は、図13のソフトウェア選択画面で、ソフトウェアAの選択を解除した後、図14で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【0110】
画面の構成は図15の例とほとんど同じであり、ソフトウェア説明画像表示領域1601、プログレスバー1602、残りソフトウェア数表示領域1603、推定残り時間表示領域1604が存在する。異なる点として、プログレスバー1602は、3つの領域1605、1606、1607に分割されている。これらの領域は、それぞれ、ソフトウェアF、コンポーネントG、ソフトウェアHに対応する領域である。この例では、それぞれの領域に、40%、20%、40%、合計100%が割り当てられている。図13のソフトウェア選択画面で、ソフトウェアAの選択を解除しているため、ソフトウェアA、およびそのコンポーネントB、C、D、Eについては、インストール量が0であると計算される。そのため、プログレスバーでは0%の領域が割り当てられている。つまり、領域が割り当てられていない。
【0111】
次に、図17A、図17Bは、ステップS309における、インストール実行処理の詳細な流れを示す図である。
【0112】
最初に、ステップS1701で、ソフトウェア進捗画面内の、ソフトウェア説明画像表示領域の初期化を行う。具体的には、ソフトウェアインストール設定ファイルに記載されているソフトウェア説明画像を読み込み、画面内のソフトウェア説明画像表示領域に表示する。
【0113】
次に、ステップS1702で、ソフトウェアインストール設定ファイルに記載されているインストーラのタイプが、外部インストーラを起動するタイプのものであるかどうかを判定する。外部インストーラを起動するタイプのものである場合、ステップS1703で、ソフトウェアインストール設定ファイルで指定された外部ソフトウェアを起動し、その終了を待つ。その後、ステップS1705で残りソフトウェア数を1減算して更新し、そのソフトウェアのインストール処理を終了して、次のソフトウェアのインストール処理に進む。
【0114】
ソフトウェアインストール設定ファイルに記載されているインストーラのタイプが、外部インストーラを起動するタイプのものでない場合は、ステップS1704に進む。ステップS1704では、ソフトウェアインストール設定ファイル内の、全てのファイルのインストール処理が終了したかどうか調べる。もし全て終了していれば、ステップS1705で、インストール進捗画面上の残りソフトウェア数表示領域の値を1減算して更新し、そのソフトウェアのインストール処理を終了して、次のソフトウェアのインストール処理に進む。まだ全てのファイルのインストール処理が終了していない場合には、ステップS1706でソフトウェアインストール設定ファイルから、次のファイルインストール指示を読み取る。
【0115】
次に、ステップS1707で、読み取ったファイルインストール指示に記載されているコピー元ファイルを、光ディスク106あるいは107上のソフトウェア構成ファイルからハードディスク104上の一時作業用フォルダにコピーする。
【0116】
続いて、ステップS1708で、読み取ったファイルインストール指示に記載されているコピー先のファイルの存在をチェックする。コピー先ファイルが存在しない場合には、ステップS1710で、一時作業用フォルダにコピーしたコピー元ファイルを、コピー先ファイルにコピーして、ステップS1711に進む。
【0117】
コピー先ファイルが存在する場合には、ステップS1709で、一時作業用フォルダにコピーしたコピー元ファイルと、存在しているコピー先ファイルの新旧を比較する。コピー元ファイルの方が新しい場合には、ステップS1710で、一時作業用フォルダにコピーしたコピー元ファイルを、コピー先ファイルにコピーして、ステップS1711に進む。コピー先ファイルの方が新しい場合には、ファイルのコピーは行わずそのままステップS1711に進む。
【0118】
ステップS1711では、オペレーティングシステムが持っている、ファイルの参照カウントデータベースに対して、コピー先ファイルの参照カウントを1加算する。
【0119】
次に、ステップS1712では、ステップS1707で一時作業用フォルダにコピーしていたコピー元ファイルを削除する。
【0120】
続いて、ステップS1713では、インストール中のソフトウェアが、ソフトウェア一覧の中で親を持っているかどうかを調べる。親を持たない場合には、ステップS1714で、オペレーティングシステムに対して、インストール中のソフトウェアのインストールログに、コピー先ファイルをインストールしたことを追記するように指示を出した後、ステップS1716に進む。
【0121】
親を持っている場合には、ステップS1715で、オペレーティングシステムに対して、親ソフトウェアのインストールログに、コピー先ファイルをインストールしたことを追記するように指示を出した後、ステップS1716に進む。
【0122】
ステップS1716では、読み取ったファイルインストール指示に、ファイルのインストール量が記載されているかどうかを調べる。ファイルのインストール量が記載されている場合は、ステップS1719でそのファイルのインストール量を取得する。また、ステップS1721でそのソフトウェアに含まれる全てのファイルのインストール量の合計を求め、それをソフトウェアのインストール量としてステップS1723の計算で使用する。
【0123】
ステップS1716の判定で、読み取ったファイルインストール指示に、ファイルのインストール量が記載されていなかった場合は、ステップS1717に進む。
【0124】
ステップS1717では、ソフトウェアインストール設定ファイルに記載されているファイルインストール単位がファイルサイズであるかどうかを確認する。ファイルサイズである場合、ソフトウェアインストール設定ファイルに、ファイルのインストール量が含まれていなくても、代わりにファイルのサイズをインストール量として用いる処理を行う。具体的には、ステップS1718でファイルサイズを取得してファイルインストール量とし、ステップS1721でそのソフトウェアに含まれる全てのファイルのインストール量の合計を求める。それをソフトウェアのインストール量としてステップS1723の計算で使用する。
【0125】
ステップS1717の判定で、ソフトウェアインストール設定ファイルに記載されているファイルインストール単位がファイルサイズ以外であった場合は、ステップS1720に進む。ステップS1720でそのファイルのインストール量を1とし、ステップS1722でソフトウェアに含まれるファイル数をソフトウェアのインストール量として、ステップS1723の計算で使用する。
【0126】
ステップS1723では、そのファイルをコピーした際に進めるプログレスバーの量を計算する。具体的には、図14のインストール進捗画面初期化処理で分割した、そのソフトウェアに対応する領域の、これまでのステップで計算してきた(ファイルのインストール量÷ソフトウェアのインストール量)の割合を計算する。
【0127】
続いて、ステップS1724で、ステップS1723で計算した分だけプログレスバーを進める。
【0128】
ステップS1724の処理が終了したら、ステップS1725で、現在のプログレスバーの位置が、全体の5%未満かどうかを調べる。5%未満であった場合には、ステップS1727で、インストール進捗画面の推定残り時間表示領域に「計算中」と表示を行い、ステップS1704に戻る。
【0129】
5%以上であった場合には、ステップS1726で、インストール進捗画面の推定残り時間表示領域に推定残り時間を表示する。具体的には、インストール進捗画面の初期化処理を行った時刻と、現在時刻から、インストール開始後の経過時刻Tを求め、現在のプログレスバーの割合P%から、T×(100−P)÷Pを推定残り時間として表示する。その後、ステップS1704に戻る。
【0130】
以下に、図17A、図17Bの処理に従ってインストールを行う際の、インストール中のプログレスバーの進捗について、ソフトウェア選択ダイアログですべてのソフトウェアを選択した後のソフトウェアAのインストールを例に挙げて説明する。
【0131】
ソフトウェアAのソフトウェアインストール設定ファイル210は、図9で説明を行っている。
【0132】
ソフトウェアAは、図12に示したように、ソフトウェア一覧では最初の項目となるので、ソフトウェアAのインストール処理の開始前には、ソフトウェア進捗画面は図15の状態になっている。ここで、まず図9のファイルセクション906の先頭に記載されているファイルMainExecFile.exeの処理を開始する。
【0133】
ステップS1714までのファイルコピー処理が終了した後、ステップS1716に進む。ソフトウェアインストール設定ファイル210においては、ファイルMainExecFile.exeのインストール量について記載があるため、ステップS1719でファイルのインストール量(4)を取得する。
【0134】
続いて、ステップS1721で、ソフトウェアに含まれるすべてのファイルのインストール量の合計(4+1=5)を求める。その後、ステップS1723で、ファイルMainExecFile.exeをコピーした際のプログレス進行量を計算する。図15で示したように、本実施形態の場合、ソフトウェアAに割り当てられているプログレスバー領域は40%である。その中で、(ファイルのインストール量÷ソフトウェアのインストール量)、つまり、4÷5=0.8の割合でプログレスバーを進めるため、ステップS1724では、40%×0.8=32%だけ、プログレスバーが進むことになる。ここまでのファイルコピーにT=32秒かかった場合、ステップS1726では、インストール進捗画面の推定残り時間表示領域に、32×(100−32)÷32=68秒を推定残り時間として表示することになる。この時点での、インストール進捗画面の表示を図18に示す。
【0135】
同様に、コンポーネントDの処理についても説明する。
【0136】
コンポーネントDのソフトウェアインストール設定ファイル216は、図10で説明を行っている。
【0137】
図19は、コンポーネントDのインストールを開始した際の、ステップS1701時点での画面である。コンポーネントDは、図12に示したように、ソフトウェア一覧では5番目の項目となるので、プログレスバーは4番目のソフトウェアまでが終了した、68%の状態となっている。
【0138】
ここで、まず図10のファイルセクション1006の先頭に記載されているファイルComponentDMain.dllの処理を開始する。ステップS1714までのファイルコピー処理が終了した後、ステップS1716に進む。ソフトウェアインストール設定ファイル216においては、ファイルComponentDMain.dllのインストール量については0となっており、記載がない。そのため、ステップS1717に進む。ファイルインストール単位についてはサイズになっているため、ステップS1718で、ファイルComponentDMain.dllのファイルサイズを取得する。また、ステップS1721では、ファイルセクション1006に記載されている全てのファイルのファイルサイズを取得し、それを合計してソフトウェアのインストール量とする。その後、ステップS1723で、ファイルComponentDMain.dllをコピーした際のプログレス進行量を計算する。ここでは、ComponentDMain.dllが20MB、CompShare.libが10MBであるとする。図15で示したように、本実施形態の場合、コンポーネントDに割り当てられているプログレスバー領域は12%である。その中で、(ファイルのインストール量÷ソフトウェアのインストール量)、つまり、20÷30=0.67の割合でプログレスバーを進めるため、ステップS1724では、12%×0.67=8%だけ、プログレスバーが進み、76%に進むことになる。また、ここまでのファイルコピーにT=38秒かかった場合、ステップS1726では、インストール進捗画面の推定残り時間表示領域に、38×(100−76)÷76=12秒を推定残り時間として表示することになる。この時点での、インストール進捗画面の表示を図20に示す。
【0139】
尚、インストール中のコンポーネントに相当するプログレスバー領域の点滅や色を変えたりする事で進行中を明示したり、各コンポーネント毎にプログレスバー領域の色を変える事は、利用者にとって分かりやすい表示の実現に有効である事は言うまでもない。
【0140】
図21は、インストール処理において使用される、オペレーティングシステムが持っているファイルの参照カウントデータベースの内部構造を示す図である。
【0141】
データベースの各レコードには、ファイル名フィールド2101と、そのファイル名に対応する参照カウントフィールド2102が存在する。インストーラからの要求で、あるファイルに対する参照カウントの加算が要求された場合、そのファイルのレコードがすでに存在すれば、その参照カウントフィールドの値に1が追加される。また、レコードが存在しないファイルに対して参照カウントの加算が要求された場合には、新規にレコードが作成され、その参照カウントフィールドには1が設定される。同様に、あるファイルに対する参照カウントフィールドの減算が要求されたときには、そのファイルのレコードから値が減算される。減算の結果、参照カウントフィールドが0以下になった場合には、自動的にそのレコードは削除される。
【0142】
本実施形態においては、参照カウントデータベースはオペレーティングシステムの機能を利用して実現するものとしたが、他の手段を用いて参照カウントの計算を行っても、同様の効果を得ることは可能である。また、参照カウントは、複数のソフトウェアが共通で使用するファイルを誤ってアンインストールすることがないように導入した仕組みであり、同様の効果が得られるものであれば、参照カウントの使用に限定するものではない。
【0143】
図22は、図14のインストール処理の結果作成されたインストールログの一部を抜粋した図である。
【0144】
インストールログには、インストーラがインストールしたファイルが、どのソフトウェアが何というファイルをどういう順番でインストールしたかが記録されている。本実施形態においては、インストールログはテキストファイルであり、テキストファイル内には、各ソフトウェアごとにセクションを分け、インストールされたファイルが時系列の順に並んで記載される。例えば、図22のセクション2201には、ソフトウェアA、またはソフトウェアAを親とする他のソフトウェアをインストールしたファイルの一覧が記録されている。同様に、セクション2202には、ソフトウェアF、またはソフトウェアFを親とする他のソフトウェアをインストールしたファイルの一覧が記録されている。
【0145】
それぞれのセクションは、セクション名とファイル一覧から構成され、たとえばセクション2201は、タイトル2203およびファイル一覧2204から構成されている。ファイル一覧2204には、ソフトウェアA、またはソフトウェアAを親とする他のソフトウェアをインストールしたファイルの一覧がインストールした順に記録されている。
【0146】
図23は、本実施形態におけるアンインストール処理を行う際の動作の詳細な流れを示す図である。
【0147】
最初に、ステップS2301でアンインストール処理の初期化処理を行う。具体的には、ソフトウェアのアンインストール処理を行う際には、アンインストールを行うプログラム、アンインストーラに対して、アンインストールを行うソフトウェアの識別子が渡されるため、その識別子を取得する。
【0148】
続いて、ステップS2302で、アンインストールを実行するかどうか、利用者に確認するメッセージを表示して入力を求める。利用者がキャンセルを入力した場合には、そのまま何も行わずにアンインストール処理を終了する。利用者がOKを入力した場合、アンインストール処理を開始するため、ステップS2303に進む。
【0149】
ステップS2303では、アンインストール対象となるソフトウェアのインストールログのうち、最新のものを取得する。ステップS2304では、アンインストールログから、ソフトウェアのインストールログが取得できたかどうか判定を行い、ログが取得できなかった場合、すなわち、そのソフトウェアのインストールログが空になった場合には、ステップS2310に進む。インストールログが取得できた場合には、ステップS2305で、対象ファイルの参照カウント数を参照カウントデータベースに問い合わせる。
【0150】
次のステップS2306では、返ってきた値が1であるかを確認し、1であった場合にはステップS2307で対象ファイルを削除した後、ステップS2308に進む。また、参照カウントデータベースから返ってきた値が1より大きかった場合には、ファイルを削除せずにステップS2308に進む。
【0151】
ステップS2308では、対象ファイルの参照カウントを1減算する。続くステップS2309では、インストールログから、処理を行ったインストールログを削除し、その後、ステップS2303に戻る。
【0152】
ステップS2310では、利用者に対して、アンインストール処理が完了したことを示すメッセージを表示する。メッセージ表示が終了したら、アンインストール処理を終了する。
【0153】
(他の実施形態)
また、各実施形態の目的は、次のような方法によっても達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、本発明には次のような場合も含まれる。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【0154】
さらに、次のような場合も本発明に含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【0155】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる。
【0156】
なお、本発明の更なる特徴としては、前記記憶媒体は図1に示した光ディスク106、107や、カード型といった形状で、交換や配布が可能な記憶媒体でも実現可能なことである。
【図面の簡単な説明】
【0157】
【図1】本発明の一実施形態に係わるシステムの構成を示す図である。
【図2】光ディスク106に記録されているプログラムおよびデータファイルの構成の例を示す図である。
【図3】一実施形態のシステムにおけるソフトウェアインストール処理全体の流れ図である。
【図4】一実施形態で光ディスク106に記録されているインストーラ動作設定ファイル202の記載の一部を示す図である。
【図5】一実施形態のシステムでのソフトウェアインストール処理のうち、ステップS302でのソフトウェア一覧作成処理の詳細な流れ図である。
【図6】図2のフォルダ構成に対して、図4の動作設定ファイル202を使用して、図5のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【図7】一実施形態のシステムでのソフトウェアインストール処理のうち、ステップS303でのソフトウェア選択画面表示処理の詳細な流れ図である。
【図8】別の光ディスク107におけるフォルダ構成を示す図である。
【図9】ソフトウェアインストール設定ファイルの例として、ソフトウェアインストール設定ファイル210を示す図である。
【図10】ソフトウェアインストール設定ファイルの別の例として、ソフトウェアインストール設定ファイル216を示す図である。
【図11】ソフトウェアインストール設定ファイルのさらに別の例として、ソフトウェアインストール設定ファイル809を示す図である。
【図12】図8のフォルダ構成に対して、図4の動作設定ファイル202を使用して、図5のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【図13】図12のソフトウェア一覧を用いて、図7の処理を行った結果表示されるソフトウェア選択画面を示す図である。
【図14】ステップS305におけるインストール進捗画面の初期化処理の詳細な流れ図である。
【図15】図13のソフトウェア選択画面で、全てのソフトウェアを選択した後、図14で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【図16】図13のソフトウェア選択画面で、ソフトウェアAの選択を解除した後、図14で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【図17A】ステップS309における、インストール実行処理の詳細な流れ図である。
【図17B】ステップS309における、インストール実行処理の詳細な流れ図である。
【図18】図17の処理に従ってインストールを行う際の、ソフトウェアAのインストール中のインストール進捗画面を示す図である。
【図19】コンポーネントDのインストールを開始した際の、ステップS1701時点でのインストール進捗画面を示す図である。
【図20】図17の処理に従ってインストールを行う際の、コンポーネントDのインストール中のインストール進捗画面を示す図である。
【図21】インストール処理において使用される、オペレーティングシステムが持っているファイルの参照カウントデータベースの内部構造を示す図である。
【図22】図14のインストール処理の結果作成されたインストールログの一部を抜粋した図である。
【図23】一実施形態におけるアンインストール処理を行う際の動作の詳細な流れ図である。
【図24】非特許文献2に記載のソフトウェアにおけるソフトウェア選択画面を示す図である。
【技術分野】
【0001】
本発明は、コンピュータに、複数のソフトウェアを連続してインストールする場合における、利用者への情報の提示技術に関するものである。
【背景技術】
【0002】
近年、CD−ROMなどの交換可能なメディアや、インターネットなどのネットワークシステムを用いて、プログラムファイルやデータファイルを配布することは一般的に行われている。その際に、インストーラと呼ばれるプログラムを、配布対象のプログラムに添付して配布することが一般的である。インストーラは、配布されたプログラムを配布先のコンピュータシステムで実行可能にするために、配布先のコンピュータシステムに接続されたハードディスクなどの記憶装置に、配布されたファイルをコピーする。また、オペレーティングシステム上の必要な設定を自動的に行う処理をする機能も有する。
【0003】
一般に、ソフトウェアのインストールに必要となる処理は、ソフトウェアによって少しずつ異なるため、あるソフトウェアを配布する際には、そのソフトウェア専用のインストーラが作成され、ソフトウェアに添付され配布される。このようなインストーラ作成作業の負荷を軽減するために、インストーラ作成ツールと呼ばれるソフトウェアを用いて、インストーラを半自動的に作成することが一般に行われている。例えば、非特許文献1に示したソフトウェアが、このような用途に多く使用されている。
【0004】
また、このようなインストーラを作成する際に、インストーラの実行ファイルと、実際にインストーラが行う処理の内容とを、別のファイルとして用意することも行なわれている。この場合、各ソフトウェア専用のインストーラを作成する際には、インストーラの実行ファイルは変更せず、インストーラの処理内容を記載した、ソフトウェアインストール設定ファイルのみを書き換える。このような方法で、インストーラの作成手順を簡略化することが行われている。例えば、データファイルに、インストールするファイルの情報、および、ソフトウェアが動作するために必要となるオペレーティングシステムが管理するシステムファイルの更新データ等を記載するような発明が、特許文献1に示されている。
【0005】
また、近年、ソフトウェアの大規模化に伴い、ソフトウェアを複数のコンポーネントに分離し、それぞれを独立して開発することが一般的に行われるようになった。このような開発形態においては、すべてのコンポーネントで、開発や市場への配布の日程を同期させる必要がないという利点がある。しかし、この開発形態を効率的に動作させるためには、それぞれのコンポーネントのインストーラについても、独立で開発を進めることが望ましい。
【0006】
例えば、あるソフトウェアAにコンポーネントBおよびコンポーネントCが含まれる場合を例として考える。インストーラが独立していない場合、この例においては、インストーラとして、ソフトウェアAとコンポーネントBとコンポーネントCを同時にインストールするための単一のインストーラを作成する。そのため、コンポーネントCの修正を行う場合には、インストーラを修正する必要があり、そのために、修正を行っていないソフトウェアAとコンポーネントBについても同時に配布する必要があった。
【0007】
このような問題を避けるために一般的に行われている手法では、例えば上記の例において、ソフトウェアAのインストーラと、コンポーネントBのインストーラと、コンポーネントCのインストーラをそれぞれ独立に設けている。その上で、これらの複数のソフトウェアを同時にインストールする必要のある利用者のためには、これらの複数のインストーラを連続して実行するためのマスターインストーラと呼ばれるプログラムを同時に配布するようにしている。
【0008】
また、このような構成は、複数の関連したソフトウェアを同時に配布する場合にも利用することができる。例えば、ソフトウェアをパッケージとしてCD−ROMなどを用いて販売する場合や、特定ハードウェアに同梱されるソフトウェアにおいて、このような場合が発生する。
【0009】
例えば、非特許文献2に記載のソフトウェアは、特定のハードウェアに同梱されているCD−ROMである。そして、このCD−ROMには、そのハードウェアを利用するための、画像管理ソフトウェア、画像パノラマ合成ソフトウェア、ハードウェアのデバイスドライバなどが同梱されている。そして、それらを連続してインストールするためのマスターインストーラも用意されており、利用者はこれを用いることですべてのソフトウェアを連続してインストールすることができる。
【0010】
さらに、上で述べたような、インストーラの実行ファイルと、ソフトウェアインストール設定ファイルとの分離を行う技術を、複数のソフトウェアを連続してインストールするために応用する方法も考えられる。システム内に単一のインストール実行ファイルが存在し、そのインストール実行ファイル、すなわちマスターインストーラが、複数のソフトウェアインストール設定ファイルを連続して読み出し、設定ファイルに従ってインストール処理を実行する構成である。
【0011】
これらのいずれの構成でも、各ソフトウェア間の開発における独立性を高めて効率化を図ることができる。
【特許文献1】特開平10−027090号公報
【特許文献2】特許第03578135号公報
【非特許文献1】MacroVision InstallShieldソフトウェア
【非特許文献2】キヤノン Digital Camera Solution Disk Version 26
【発明の開示】
【発明が解決しようとする課題】
【0012】
上述の、複数のインストーラを連続して起動するシステムにおいては、複数のインストールを連続しておこなっているため、インストール処理全体を完了するまでに時間がかかる。そのため、マスターインストーラでは、利用者に対してインストール処理の進捗状況を利用者に示すことが多い。
【0013】
例えば非特許文献2の場合であれば、各ソフトウェアのインストーラに各々の進捗状況を表示させる、インストール処理全体を統括するマスターインストーラがインストール処理全体の進捗状況を表示していない。そのため、利用者は各ソフトウェアそれぞれのインストール進捗状況を理解することはできても、インストール処理全体としての進捗状況がまったくわからない。
【0014】
このような問題を解決する技術として、特許文献2のような提案がなされている。即ち、インストールする全ドライバ数を進捗状況の100%とし、100%をインストールするドライバの数で分割する。そして実際にインストールが開始されると、インストール済みのドライバの数分だけ進捗状況を100%に近づける。このようにして、ドライバの個数を基準にしてデバイスドライバのインストール処理全体の進捗状況を表す方法を提案している。この提案によって、利用者は、ドライバの個数を基準としてインストール処理全体の進捗状況を知ることができる。
【0015】
しかしながら、この提案にも次のような問題がある。即ち、インストールするソフトウェアのサイズが同じというのはほとんどなく、個数によってインストール処理全体の進捗状況を表現した場合、進捗の度合いがソフトウェア毎に異なり、正確に進捗状況を示せない場合があるというものである。
【0016】
従って、本発明は上述した課題に鑑みてなされたものであり、複数のソフトウェアを連続的にインストールする場合のインストール処理全体の進捗状況を、利用者に分かりやすく表示できるようにすることである。
【課題を解決するための手段】
【0017】
上述した課題を解決し、目的を達成するために、本発明に係わるインストール装置は、ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール装置であって、前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールすることが可能なインストール実行手段と、前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示手段と、を具備することを特徴とする。
【0018】
また、本発明に係わるインストール方法は、ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールするインストール実行工程と、前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程と、を具備することを特徴とする。
【0019】
また、本発明に係わるプログラムは、上記のインストール方法をコンピュータに実行させることを特徴とする。
【0020】
また、本発明に係わる記憶媒体は、上記のプログラムを記憶したことを特徴とする。
【発明の効果】
【0021】
本発明によれば、複数のソフトウェアを連続的にインストールする場合のインストール処理全体の進捗状況を、利用者に分かりやすく表示することが可能となる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の好適な一実施形態について、添付図面を参照して詳細に説明する。
【0023】
図1は、本発明の一実施形態に係わるシステムの構成を示す図である。
【0024】
システム内のコンピュータ101には、ディスプレイ102、光学ディスクドライブ103、ハードディスク104、マウス105が接続されている。交換可能な光ディスク106には、プログラムおよびデータが記録されており、コンピュータ101は、光学ディスクドライブ103に挿入された光ディスク106から読み取ったプログラムを実行する。コンピュータ101は、接続されたディスプレイ102に描画を行い、システムの利用者に対して確認メッセージを表示したり、システムの状況を通知したりする。システムの利用者は、マウス105を使用して、ディスプレイ102に表示された確認メッセージに対して応答できる。コンピュータ101は、プログラムの内容に従って、光ディスク106に記録されているデータをハードディスク104にコピーしたり、ハードディスク104に記録されているデータを書き換えることができる。また、本システムにおいては、光ディスク106は交換可能であり、たとえば別の光ディスク107を用いることもできる。
【0025】
図2は、光ディスク106に記録されているプログラムおよびデータファイルの構成の例を示す図である。
【0026】
光ディスク106内には、光ディスク上に記録されている、唯一の実行ファイルである、インストーラ実行ファイル201、およびインストーラ実行ファイルの動作の詳細を制御するための、インストーラ動作設定ファイル202が存在している。なお、以下では、インストーラ実行ファイル201をマスターインストーラと呼ぶこともある。また、光ディスク106内には、アプリケーションフォルダ203、コンポーネントフォルダ204が存在する。アプリケーションフォルダ203には、フォルダ205が含まれており、コンポーネントフォルダ204には、フォルダ206から209の4つのサブフォルダが含まれている。
【0027】
フォルダ205には、ソフトウェアAのインストールに必要なデータおよび情報が含まれている。具体的には、ソフトウェアインストール設定ファイル210、およびインストール対象となるソフトウェア構成ファイル211が含まれる。フォルダ206からフォルダ208には、それぞれ、ソフトウェアAのコンポーネントD、コンポーネントB、コンポーネントCのインストールに必要なデータおよび情報が含まれる。
【0028】
具体的には、フォルダ206には、ソフトウェアインストール設定ファイル212およびソフトウェア構成ファイル213が含まれる。
【0029】
フォルダ207には、ソフトウェアインストール設定ファイル214およびソフトウェア構成ファイル215が含まれる。
【0030】
フォルダ208には、ソフトウェアインストール設定ファイル216およびソフトウェア構成ファイル217が含まれる。
【0031】
また、フォルダ209には、ソフトウェアAのコンポーネントBが動作するのに必要な、サブコンポーネントEのインストールに必要なデータおよび情報が含まれる。具体的には、フォルダ209には、ソフトウェアインストール設定ファイル218およびソフトウェア構成ファイル219が含まれる。
【0032】
本例の光ディスク106に記録されているインストーラ実行ファイル201を本システム上で実行すると次のようになる。即ち、ソフトウェアA、およびそのコンポーネントB、コンポーネントC、コンポーネントD、また、コンポーネントBのサブコンポーネントEが、ハードディスク104にインストールされる。
【0033】
図3は、本システムにおけるソフトウェアインストール処理の全体の流れを示す図である。
【0034】
まず、ステップS301で、インストーラ実行ファイルの初期化処理を行う。ここでは、インストーラ実行ファイル201が、インストーラ動作設定ファイル202を読み取り、インストール処理の初期化を行う。
【0035】
次に、ステップS302で、ソフトウェア一覧作成処理を行う。インストーラ実行ファイル201は、光ディスク106に記録されている複数のソフトウェアインストール設定ファイルを読み込み、その内容に従って、ソフトウェア一覧を作成する。
【0036】
続いて、ステップS303では、ソフトウェア選択画面の表示を行う。ここでは、前のステップS302で作成したソフトウェア一覧に従って、ソフトウェア選択画面を表示する。システムの利用者は、この画面でインストールするソフトウェアを選択できる。
【0037】
ステップS304では、インストール確認画面を表示する。ここでは、インストール時に必要な使用許諾契約の文面を表示し、同意した利用者のみがインストールを実行できる。
【0038】
ステップS305では、インストール進捗画面の初期化を行う。
【0039】
続いて、ステップS306では、ステップS302で作成したソフトウェア一覧のソフトウェアすべてについて、インストール処理が終了したかどうかをチェックする。すべて終了した場合には、ステップS310に進む。未処理のソフトウェアが存在する場合は、ステップS307に進む。
【0040】
ステップS307では、処理中のソフトウェアが、ソフトウェア選択画面で選択されていたかどうかを取得する。その結果をステップS308で判定し、ソフトウェアが選択されていればステップS309に、選択されていなければステップS306に戻りソフトウェア一覧の次のソフトウェアの処理を行う。
【0041】
ステップS309では、処理中のソフトウェアのソフトウェアインストール設定ファイルを読み込み、その記載内容に従って、ソフトウェア構成ファイルをハードディスク104にコピーし、また、インストール処理内容をログに記録する。
【0042】
ステップS310は、すべてのソフトウェアのインストール処理が完了した場合に実行される。ここでは、前ステップまでの各ソフトウェアのインストール結果に応じて、インストール結果出力画面を表示する。この画面で利用者が完了操作を行えば、本システムにおけるソフトウェアインストール処理は完了である。
【0043】
図4は、本例で光ディスク106に記録されているインストーラ動作設定ファイル202の記載の一部を示す図である。インストーラ動作設定ファイル202には、ファイルセクション401、およびフォルダセクション402が含まれている。フォルダセクション402には、検索対象ファイル名403と、検索対象フォルダリスト404が含まれている。ここで、検索対象ファイルとは、インストーラ実行ファイル201(マスターインストーラ)でインストールすることのできる全てのファイルである。以下で説明するソフトウェア一覧作成処理では、光ディスク106から上記の検索対象ファイルを検索する。これは、光ディスク106には、マスターインストーラでインストールできる複数のソフトウェアファイルのうちの全てが記録されているとは限らないからである。そのため、光ディスク106に記録されているソフトウェアファイルのみの一覧を作成するために上記の検索を行なう。
【0044】
図5は、本システムでのソフトウェアインストール処理のうち、ステップS302でのソフトウェア一覧作成処理の詳細な流れを示す図である。
【0045】
まず、ステップS501で、ソフトウェア一覧に追加するべきソフトウェアインストール設定ファイルを、光ディスク106から検索する。具体的には、インストーラ動作設定ファイル202のファイルセクション401に記載されているすべてのファイルと、フォルダセクション402に記載されている検索対象フォルダリスト404に含まれているフォルダを検索する。検索するものは、検索対象ファイル名403と一致するファイル名のファイルであり、それが光ディスク106から見つかった場合には、それをソフトウェア一覧に追加する。
【0046】
続いて、ステップS502で、ソフトウェア一覧のすべてのソフトウェアインストール設定ファイルに関して、並べ替えキーの取得処理が終了したかどうかを判定する。すべてのソフトウェアについて処理が完了していた場合にはステップS507に進む。まだ終了していないソフトウェアがあった場合には、ステップS503に進み、そのソフトウェアインストール設定ファイルの内容をチェックする。
【0047】
ステップS504では、チェック結果を取得し、そのファイルが存在しない場合や、存在してもファイル形式や内容に問題がある場合には、ステップS506に進みそのソフトウェアをソフトウェア一覧から削除する。特に問題がなかった場合、ステップS505に進み、そのソフトウェアインストール設定ファイルから、ソフトウェア一覧の並び替えに使用する「並べ替えキー」文字列を取得してソフトウェア一覧に記録する。その後、ステップS502に戻り、次のソフトウェアの処理に進む。
【0048】
すべてのソフトウェアの処理が終わった後は、ステップS507で、取得した各ソフトウェアの並べ替えキー文字列を元に、文字列を文字コードで比較して小さいものを前に、大きいものを後にして、ソフトウェア一覧におけるソフトウェアの順序を決定する。そして、ソフトウェア一覧にその順序を記録した後ステップS508に進む。ステップS508以降の処理では、ソフトウェアの処理はここで記録したソフトウェアの順序に従い、順序が小さいものから順に処理が行われる。
【0049】
まず、ステップS508で、ソフトウェア一覧のすべてのソフトウェアについて、親ソフトウェアの検索が終了したかどうかを確認する。終了していれば、ソフトウェア一覧作成処理を完了する。まだ親ソフトウェアの検索を行っていないソフトウェアがあれば、ステップS509に進む。
【0050】
ステップS509からステップS515では、ソフトウェア一覧で、順序がn番目のソフトウェアについて親ソフトウェアの検索を行う。
【0051】
まず、ステップS509では、変数の初期化を行う。n番目のソフトウェアの並べ替えキー文字列を取得し、ループ変数iに1を設定する。続いて、ステップS510では、ループ変数iがnと等しいかどうかを比較する。等しければ、n番目のソフトウェアの親ソフトウェアは見つからなかったため、ステップS514でソフトウェア一覧の親の項目に0を書き込んで、n番目のソフトウェアの親ソフトウェア検索処理を終了し、ステップS508に戻る。ループ変数iがnと等しくない場合、ステップS511で、ソフトウェア一覧で順序がi番目のソフトウェアの並べ替えキー文字列を取得する。続いて、ステップS512で、n番目のソフトウェアのキー文字列が、i番目のソフトウェアのキー文字列に前方一致しているか、すなわち、n番目のソフトウェアのキー文字列の先頭が、i番目のソフトウェアのキー文字列と一致するかどうかを判定する。一致しなかった場合には、ステップS513でループ変数iに1を加えた後ステップS510に戻る。一致した場合には、ステップS514で、ソフトウェア一覧の親の項目にiを書き込んで、n番目のソフトウェアの親ソフトウェア検索処理を終了し、ステップS508に戻る。
【0052】
図6は、図2のフォルダ構成に対して、図4の動作設定ファイル202を使用して、図5のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【0053】
ソフトウェア一覧には、各ソフトウェアのソフトウェアインストール設定ファイルのファイル名リスト601、各ソフトウェアインストール設定ファイルに記載されている並べ替えキーリスト602が含まれる。また、ソフトウェア一覧作成処理を行った結果の並び順リスト603、親ソフトウェアを示す親リスト604も含まれる。ファイル名リスト601には、図2のフォルダ構成に含まれているソフトウェアインストール設定ファイルが含まれている。また、図4の動作設定ファイル202のファイルセクション401に記載されているファイルであっても、実際に図2のフォルダ構成に含まれていないファイルは含まない。
【0054】
並び順リスト603は、並べ替えキー602の値を元に各ソフトウェアの順序を決めたものである。図2のフォルダ構成では、ソフトウェアAが1、ソフトウェアAのコンポーネントBが2、ソフトウェアAのコンポーネントBのサブコンポーネントEが3、ソフトウェアAのコンポーネントCが4、ソフトウェアAのコンポーネントDが5の順になる。また、各ソフトウェアの親リスト604は、ソフトウェアAについては0、それ以外のコンポーネントに関しては1が記録される。ここでの「1」とは、並び順リストの値が1であるソフトウェアAを表している。
【0055】
図7は、本システムでのソフトウェアインストール処理のうち、ステップS303でのソフトウェア選択画面表示処理の詳細な流れを示す図である。
【0056】
最初に、ステップS701で、ソフトウェア一覧の中で親が0になっているソフトウェア、すなわち、自分自身が親であるようなソフトウェアの数nを数える。続いて、ステップS702で、nの値が0であるかどうかを判定する。nが0の場合には、自分自身が親であるようなソフトウェアがソフトウェア一覧に存在しないため、ステップS703でエラーメッセージを出力した後、インストール処理全体を中断する。nが0でない場合は、ステップS704に進む。
【0057】
ステップS704では、nの値が1であるかどうかを判定する。nが1の場合には、自分自身が親であるようなソフトウェアがソフトウェア一覧に一つしか存在しないため、ソフトウェア選択ダイアログを表示する意味がない。そのため、nが1の場合には選択画面表示処理を終了し、次の確認画面表示処理(ステップS304)に進む。
【0058】
nの値が1より大きかった場合には、ステップS705に進み、ソフトウェア選択画面の初期化を行う。続いて、ステップS706から、ソフトウェア一覧に含まれるすべてのソフトウェアについて、ソフトウェア選択画面への表示を行う。
【0059】
ステップS706では、すべてのソフトウェアの処理が終了したかどうか判定し、すべて終了している場合には選択画面表示処理を終了する。未処理のソフトウェアがある場合には、ステップS707で、ソフトウェア一覧に記録されているソフトウェアインストール設定ファイルから、ソフトウェアのインストール時に利用者に表示するための情報を取得する。本実施形態においては、ソフトウェア名称、ソフトウェアのバージョン番号、ソフトウェアを表すアイコン、ソフトウェアの詳細な説明文、および、ソフトウェアのインストールに必要なディスク容量の情報を取得する。
【0060】
続いて、ステップS708で、ソフトウェア一覧に記録されている親の情報が0になっているかどうかを取得する。親に0以外の情報が記載されていた場合、ステップS712に進む。親が0であった場合、すなわち親ソフトウェアが存在しない場合には、ステップS709に進む。
【0061】
ステップS709では、表示されているソフトウェア選択画面に、新しいソフトウェアの行を末尾に追加する。続いて、ステップS710で、ステップS709で追加したソフトウェアの行の先頭に、チェックボックスを表示する。ステップS711では、ステップS707で取得した各種情報のうち、ソフトウェアのインストール時に必要なディスク容量の情報を除いた情報を、ステップS709で追加したソフトウェアの行に描画する。
【0062】
ステップS712では、ソフトウェア容量の描画をソフトウェア選択画面内に行う。具体的には、ソフトウェア選択画面内の最終ソフトウェア行の末尾に記載のあるソフトウェアごとのディスク容量に、現在処理中のソフトウェアのディスク容量を加算して、描画を更新する。更新が終わったら、ステップS706に戻る。
【0063】
図2のフォルダ構成の光ディスクでは、図6に示すとおり、親が0になっているソフトウェアはソフトウェアAの1つのみである。この場合、図7の処理を行うと、ステップS703の処理の結果、ソフトウェア選択画面表示処理では何の表示も行わず、次の確認画面表示処理に進むことになる。
【0064】
図8に、別の光ディスク107におけるフォルダ構成の図を示す。
【0065】
この光ディスク107の構成は、光ディスク106の構成に、いくつかのフォルダやファイルを追加したものである。インストーラ実行ファイル201、インストーラ動作設定ファイル202、アプリケーションフォルダ203、コンポーネントフォルダ204、フォルダ205から209は、光ディスク106と全く同一である。また、ソフトウェアインストール設定ファイル210、212、214、216、218、ソフトウェア構成ファイル211、213、215、217、219に関しても、光ディスク106と全く同一である。
【0066】
光ディスク107では、それに加えて、アプリケーションフォルダ203内に、ソフトウェアFのインストールに必要なデータおよび情報が含まれているフォルダ801が含まれている。その中には、ソフトウェアインストール設定ファイル802、およびインストール対象となるソフトウェア構成ファイル803が含まれる。また、コンポーネントフォルダ204内に、ソフトウェアFの動作に必要なコンポーネントGのインストールに必要なデータおよび情報が含まれているフォルダ804が含まれている。その中には、ソフトウェアインストール設定ファイル805、およびインストール対象となるソフトウェア構成ファイル806が含まれる。
【0067】
また、追加ソフトウェアを収録するための追加アプリケーションフォルダ807が、アプリケーションフォルダ203およびコンポーネントフォルダ204と同じ階層に存在している。そして、その中には、ソフトウェアHのインストールに必要なデータおよび情報が含まれているフォルダ808が含まれている。フォルダ808の中には、ソフトウェアインストール設定ファイル809、ソフトウェア構成ファイル810に加えて、外部インストーラ実行ファイル811、および外部インストーラ構成ファイル812が含まれる。
【0068】
図9は、ソフトウェアインストール設定ファイルの例として、ソフトウェアインストール設定ファイル210を示す図である。
【0069】
ソフトウェアインストール設定ファイル210はテキストファイルである。そして、一般セクション901、並べ替えセクション902、情報セクション903、インストール先指定セクション904、プログレス情報セクション905、ファイルセクション906から構成されている。
【0070】
一般セクション901には、インストーラのタイプが記載されている。ソフトウェアインストール設定ファイル210においては、通常のインストーラであることを示すために、タイプとして「NORMAL」が指定されている。
【0071】
並べ替えセクション902には、ソフトウェア一覧作成処理で使用される、並べ替えキーが記載されている。ソフトウェアインストール設定ファイル210では「SoftA」が指定されている。
【0072】
情報セクション903には、ソフトウェア選択画面で表示するためのソフトウェアの情報が記載されている。このセクションには、ソフトウェア名称907、ソフトウェアのバージョン番号908、ソフトウェアを表すアイコンの光ディスク上での位置909、ソフトウェアの詳細な説明文910が記載されている。また、ソフトウェアのディスク容量911、ソフトウェア説明画像の光ディスク上での位置912も記載されている。
【0073】
インストール先指定セクション904には、ソフトウェアをインストールする先のハードディスク104上の位置が指定されている。
【0074】
プログレス情報セクション905には、インストール進捗画面表示の際に用いられる情報が記載されている。具体的には、プログレスバーの分割に用いるためのソフトウェアのインストール量とその単位が記載されている。また、各ソフトウェアのインストール中、ファイルコピーごとにプログレスバーを進めるために使用される、ファイルごとのインストール量で用いる基準となるファイルインストール単位が記載されている。ソフトウェアインストール設定ファイル210では、ソフトウェアのインストール量はサイズを用いる記載がされており、ソフトウェアAのインストール量としては、100が指定されている。また、ファイルごとのインストール量については、インストール時間を基準として用いる記載がされている。
【0075】
ファイルセクション906には、インストールされるファイルの一覧が記載されている。各ファイル項目は、コピー先ファイル名913、ソフトウェア構成ファイル圧縮ファイル名914、コピー元ファイル名915、および、ファイルのインストール量916が記載されている。
【0076】
図10は、ソフトウェアインストール設定ファイルの別の例として、ソフトウェアインストール設定ファイル216を示す図である。
【0077】
ソフトウェアインストール設定ファイル216も、図9のソフトウェアインストール設定ファイル210と同様にテキストファイルである。同じように一般セクション1001、並べ替えセクション1002、情報セクション1003、インストール先指定セクション1004、プログレス情報セクション1005、ファイルセクション1006から構成されている。
【0078】
一般セクション1001に記載されているインストーラのタイプは、「NORMAL」である。
【0079】
並べ替えセクション1002には、「SoftA−CompD」が指定されている。
【0080】
情報セクション1003には、ソフトウェア名称1007、ソフトウェアのバージョン番号1008、ソフトウェアを表すアイコンの光ディスク上での位置1009、ソフトウェアの詳細な説明文1010が記載されている。また、ソフトウェアのディスク容量1011、ソフトウェア説明画像の光ディスク上での位置1012も記載されている。
【0081】
インストール先指定セクション1004には、ソフトウェアをインストールする先のハードディスク104上の位置が指定されている。
【0082】
プログレス情報セクション1005の記載に関しては、図9のソフトウェアインストール設定ファイル210とは異なり、ソフトウェアのインストール量とその単位については省略されている。また、ファイルごとのインストール量については、サイズを基準として用いる記載がされている。
【0083】
ファイルセクション1006の各ファイル項目には、コピー先ファイル名1013、ソフトウェア構成ファイル圧縮ファイル名1014、コピー元ファイル名1015、および、ファイルのインストール量1016が記載されている。ただし、ファイルのインストール量1016に関しては、記載を省略していることを示す値0が記載されている。
【0084】
図11は、ソフトウェアインストール設定ファイルのさらに別の例として、ソフトウェアインストール設定ファイル809を示す図である。
【0085】
ソフトウェアインストール設定ファイル809も、図9のソフトウェアインストール設定ファイル210と同様にテキストファイルである。同じように一般セクション1101、並べ替えセクション1102、情報セクション1103、プログレス情報セクション1104を含んでいるが、インストール先指定セクションおよびファイルセクションは含まれない。また、外部ソフトウェアセクション1105が含まれている。
【0086】
一般セクション1101には、外部インストーラを起動するタイプであることを示す、「EXTERNAL」が記載されている。
【0087】
並べ替えセクション1102には、「SoftH」が指定されている。
【0088】
情報セクション1103には、ソフトウェア名称1106、ソフトウェアのバージョン番号1107、ソフトウェアを表すアイコンの光ディスク上での位置1108、ソフトウェアの詳細な説明文1109が記載されている。また、ソフトウェアのディスク容量1110、ソフトウェア説明画像の光ディスク上での位置1111も記載されている。
【0089】
プログレス情報セクション1104の記載に関しては、ソフトウェアのインストール量とその単位が記載されている。
【0090】
外部ソフトウェアセクション1105には、起動する外部ソフトウェアの、光ディスク上での位置が記載されている。
【0091】
図12は、図8のフォルダ構成に対して、図4の動作設定ファイル202を使用して、図5のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【0092】
ソフトウェア一覧には、各ソフトウェアのソフトウェアインストール設定ファイルのファイル名リスト1201、各ソフトウェアインストール設定ファイルに記載されている並べ替えキーリスト1202が含まれる。また、ソフトウェア一覧作成処理を行った結果の並び順リスト1203、親ソフトウェアを示す親リスト1204も含まれる。
【0093】
ファイル名リスト1201には、図8のフォルダ構成に含まれているソフトウェアインストール設定ファイルが含まれている。並び順リスト1203は、並べ替えキーリスト1202の値を元に決定されている。そして、ソフトウェアAが1、ソフトウェアAのコンポーネントBが2、ソフトウェアAのコンポーネントBのサブコンポーネントEが3、ソフトウェアAのコンポーネントCが4、ソフトウェアAのコンポーネントDが5の順になる。また、ソフトウェアFが6、ソフトウェアFのコンポーネントGが7、ソフトウェアHが8の順になる。親リスト1204では、親ソフトウェアを持たないソフトウェアA、ソフトウェアF、ソフトウェアHでは0が記録される。ソフトウェアAを親として持つコンポーネントB、コンポーネントC、コンポーネントD、コンポーネントEでは1が、ソフトウェアFを親として持つコンポーネントGには6が記録される。
【0094】
図13は、図12のソフトウェア一覧を用いて、図7の処理を行った結果表示されるソフトウェア選択画面を示す図である。
【0095】
ソフトウェア選択画面は、チェックボックス領域1301、ソフトウェアアイコン領域1302、ソフトウェア名称領域1303、ソフトウェアバージョン番号領域1304を備える。また、ソフトウェア説明文領域1305、ソフトウェアディスク容量領域1306も備える。
【0096】
この選択画面に表示されるソフトウェア名称は、ソフトウェア一覧で親ソフトウェアが存在しないソフトウェアのみであり、図12のソフトウェア一覧では、ソフトウェアA、ソフトウェアF、ソフトウェアHの3項目が表示される。
【0097】
チェックボックス領域1301には、図7のステップS710で各ソフトウェアに対応するチェックボックスが描画される。ソフトウェアアイコン領域1302、ソフトウェア名称領域1303、ソフトウェアバージョン番号領域1304、ソフトウェア説明文領域1305は、次のように描画される。即ち、図7のステップS711の処理で、各ソフトウェアのソフトウェアインストール設定ファイルから読み出した情報を用いて描画される。
【0098】
ソフトウェアディスク容量領域1306には、次のような容量が表示される。即ち、各列のソフトウェア自身のソフトウェアインストール設定ファイルから読み出した必要ディスク容量の値に加えて、そのソフトウェアを親としているすべてのソフトウェアの必要ディスク容量を図7のステップS712の処理内で加算したものが表示される。具体的には、ソフトウェアディスク容量領域1306内の、ソフトウェアA列のディスク容量領域1307には、次のような値が表示される。即ち、ソフトウェアA自身のディスク容量に加えて、ソフトウェアAを親とするソフトウェア、つまり、コンポーネントB、C、D、Eのディスク容量を加算した値が表示される。同様に、ソフトウェアF列のディスク容量領域1308には、ソフトウェアF自身のディスク容量に加えて、ソフトウェアFを親とするコンポーネントGのディスク容量を加算した値が表示される。ソフトウェアH列のディスク容量領域1309には、ソフトウェアHを親として持っているソフトウェアは存在しないため、ソフトウェアHのディスク容量がそのまま表示される。
【0099】
図14は、ステップS305におけるインストール進捗画面の初期化処理の詳細な流れを示す図である。
【0100】
インストール進捗画面の初期化処理では、最初に全ソフトウェアのインストール量の計算を行い、その後、インストール進捗画面上のプログレスバーを、インストール量に従って分割する。
【0101】
最初に、ステップS1401で、全てのソフトウェアのインストール量の取得が終わったかどうかを調べ、全て終了している場合には、ステップS1406に進む。まだ取得が終わっていないソフトウェアがある場合には、ステップS1402に進む。
【0102】
ステップS1402では、処理中のソフトウェアが、あるいは処理中のソフトウェアに親が存在する場合には親のソフトウェアが、ソフトウェア選択画面において選択されているかを調べる。いずれかの場合で処理中のソフトウェアが選択されている場合には、ステップS1403に進む。処理中のソフトウェアが選択されていない場合には、そのソフトウェアのインストール量は0とみなし、ステップS1401で次のソフトウェアのインストール量取得に進む。
【0103】
ステップS1403では、ソフトウェアインストール設定ファイルから、そのソフトウェアのインストール量の取得を試みる。ステップS1404では、ソフトウェアのインストール量の取得に成功したかどうかを判定し、成功した場合には、ステップS1401で次のソフトウェアのインストール量取得に進む。失敗した場合、つまり、ソフトウェアインストール設定ファイルにソフトウェアのインストール量の記載が存在しない場合には、ステップS1405に進む。そして、ソフトウェアインストール設定ファイルに記載されているソフトウェア構成ファイルのそれぞれについてインストール量を取得し、全てのファイルのインストール量を合計したものを、ソフトウェアのインストール量とみなす。その後、ステップS1401で次のソフトウェアのインストール量取得に進む。
【0104】
ステップS1406では、これまで取得してきた各ソフトウェアのインストール量を全て合計することで、全ソフトウェアのインストール量合計を求める。
【0105】
続いて、ステップS1407で、インストール進捗画面上のプログレスバーの100%を全ソフトウェアのインストール量合計とし、プログレスバーを各ソフトウェアのインストール量に従って分割する。さらに、ステップS1408で、この時点での時刻を記憶する。この時刻は、推定残り時間を計算するための、インストール経過時間を計算するために用いられる。以上が終了したら、インストール進捗画面の初期化処理を終了する。
【0106】
図15は、図13のソフトウェア選択画面で、全てのソフトウェアを選択した後、図14で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【0107】
画面内には、ソフトウェア説明画像表示領域1501、プログレスバー1502、残りソフトウェア数表示領域1503、推定残り時間表示領域1504が存在する。ソフトウェア説明画像表示領域1501は、ソフトウェアのインストール中に、ソフトウェアの内容を説明するための画像が表示される領域であるが、初期化直後ではこの領域は空白になっている。
【0108】
プログレスバー1502は、領域1505から領域1512までの8つの領域に分割されている。これらの領域は、それぞれ図8のフォルダ構成に含まれる8つのソフトウェア、すなわちソフトウェアA、コンポーネントB、コンポーネントE、コンポーネントC、コンポーネントD、ソフトウェアF、コンポーネントG、ソフトウェアHに対応する領域である。この例では、それぞれの領域に、40%、12%、4%、12%、12%、8%、4%、8%、合計100%が割り当てられている。残りソフトウェア数表示領域1503は、ソフトウェアのインストール中に、残りソフトウェア数を表示するための領域であるが、初期化直後ではこの領域には、プログレスバーの分割数、この例では「8」と表示される。推定残り時間表示領域1504は、ソフトウェアのインストール中に、推定されるインストール残り時間を表示するための領域であるが、初期化直後ではこの領域には「初期化中」と表示される。
【0109】
さらに、図16は、図13のソフトウェア選択画面で、ソフトウェアAの選択を解除した後、図14で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【0110】
画面の構成は図15の例とほとんど同じであり、ソフトウェア説明画像表示領域1601、プログレスバー1602、残りソフトウェア数表示領域1603、推定残り時間表示領域1604が存在する。異なる点として、プログレスバー1602は、3つの領域1605、1606、1607に分割されている。これらの領域は、それぞれ、ソフトウェアF、コンポーネントG、ソフトウェアHに対応する領域である。この例では、それぞれの領域に、40%、20%、40%、合計100%が割り当てられている。図13のソフトウェア選択画面で、ソフトウェアAの選択を解除しているため、ソフトウェアA、およびそのコンポーネントB、C、D、Eについては、インストール量が0であると計算される。そのため、プログレスバーでは0%の領域が割り当てられている。つまり、領域が割り当てられていない。
【0111】
次に、図17A、図17Bは、ステップS309における、インストール実行処理の詳細な流れを示す図である。
【0112】
最初に、ステップS1701で、ソフトウェア進捗画面内の、ソフトウェア説明画像表示領域の初期化を行う。具体的には、ソフトウェアインストール設定ファイルに記載されているソフトウェア説明画像を読み込み、画面内のソフトウェア説明画像表示領域に表示する。
【0113】
次に、ステップS1702で、ソフトウェアインストール設定ファイルに記載されているインストーラのタイプが、外部インストーラを起動するタイプのものであるかどうかを判定する。外部インストーラを起動するタイプのものである場合、ステップS1703で、ソフトウェアインストール設定ファイルで指定された外部ソフトウェアを起動し、その終了を待つ。その後、ステップS1705で残りソフトウェア数を1減算して更新し、そのソフトウェアのインストール処理を終了して、次のソフトウェアのインストール処理に進む。
【0114】
ソフトウェアインストール設定ファイルに記載されているインストーラのタイプが、外部インストーラを起動するタイプのものでない場合は、ステップS1704に進む。ステップS1704では、ソフトウェアインストール設定ファイル内の、全てのファイルのインストール処理が終了したかどうか調べる。もし全て終了していれば、ステップS1705で、インストール進捗画面上の残りソフトウェア数表示領域の値を1減算して更新し、そのソフトウェアのインストール処理を終了して、次のソフトウェアのインストール処理に進む。まだ全てのファイルのインストール処理が終了していない場合には、ステップS1706でソフトウェアインストール設定ファイルから、次のファイルインストール指示を読み取る。
【0115】
次に、ステップS1707で、読み取ったファイルインストール指示に記載されているコピー元ファイルを、光ディスク106あるいは107上のソフトウェア構成ファイルからハードディスク104上の一時作業用フォルダにコピーする。
【0116】
続いて、ステップS1708で、読み取ったファイルインストール指示に記載されているコピー先のファイルの存在をチェックする。コピー先ファイルが存在しない場合には、ステップS1710で、一時作業用フォルダにコピーしたコピー元ファイルを、コピー先ファイルにコピーして、ステップS1711に進む。
【0117】
コピー先ファイルが存在する場合には、ステップS1709で、一時作業用フォルダにコピーしたコピー元ファイルと、存在しているコピー先ファイルの新旧を比較する。コピー元ファイルの方が新しい場合には、ステップS1710で、一時作業用フォルダにコピーしたコピー元ファイルを、コピー先ファイルにコピーして、ステップS1711に進む。コピー先ファイルの方が新しい場合には、ファイルのコピーは行わずそのままステップS1711に進む。
【0118】
ステップS1711では、オペレーティングシステムが持っている、ファイルの参照カウントデータベースに対して、コピー先ファイルの参照カウントを1加算する。
【0119】
次に、ステップS1712では、ステップS1707で一時作業用フォルダにコピーしていたコピー元ファイルを削除する。
【0120】
続いて、ステップS1713では、インストール中のソフトウェアが、ソフトウェア一覧の中で親を持っているかどうかを調べる。親を持たない場合には、ステップS1714で、オペレーティングシステムに対して、インストール中のソフトウェアのインストールログに、コピー先ファイルをインストールしたことを追記するように指示を出した後、ステップS1716に進む。
【0121】
親を持っている場合には、ステップS1715で、オペレーティングシステムに対して、親ソフトウェアのインストールログに、コピー先ファイルをインストールしたことを追記するように指示を出した後、ステップS1716に進む。
【0122】
ステップS1716では、読み取ったファイルインストール指示に、ファイルのインストール量が記載されているかどうかを調べる。ファイルのインストール量が記載されている場合は、ステップS1719でそのファイルのインストール量を取得する。また、ステップS1721でそのソフトウェアに含まれる全てのファイルのインストール量の合計を求め、それをソフトウェアのインストール量としてステップS1723の計算で使用する。
【0123】
ステップS1716の判定で、読み取ったファイルインストール指示に、ファイルのインストール量が記載されていなかった場合は、ステップS1717に進む。
【0124】
ステップS1717では、ソフトウェアインストール設定ファイルに記載されているファイルインストール単位がファイルサイズであるかどうかを確認する。ファイルサイズである場合、ソフトウェアインストール設定ファイルに、ファイルのインストール量が含まれていなくても、代わりにファイルのサイズをインストール量として用いる処理を行う。具体的には、ステップS1718でファイルサイズを取得してファイルインストール量とし、ステップS1721でそのソフトウェアに含まれる全てのファイルのインストール量の合計を求める。それをソフトウェアのインストール量としてステップS1723の計算で使用する。
【0125】
ステップS1717の判定で、ソフトウェアインストール設定ファイルに記載されているファイルインストール単位がファイルサイズ以外であった場合は、ステップS1720に進む。ステップS1720でそのファイルのインストール量を1とし、ステップS1722でソフトウェアに含まれるファイル数をソフトウェアのインストール量として、ステップS1723の計算で使用する。
【0126】
ステップS1723では、そのファイルをコピーした際に進めるプログレスバーの量を計算する。具体的には、図14のインストール進捗画面初期化処理で分割した、そのソフトウェアに対応する領域の、これまでのステップで計算してきた(ファイルのインストール量÷ソフトウェアのインストール量)の割合を計算する。
【0127】
続いて、ステップS1724で、ステップS1723で計算した分だけプログレスバーを進める。
【0128】
ステップS1724の処理が終了したら、ステップS1725で、現在のプログレスバーの位置が、全体の5%未満かどうかを調べる。5%未満であった場合には、ステップS1727で、インストール進捗画面の推定残り時間表示領域に「計算中」と表示を行い、ステップS1704に戻る。
【0129】
5%以上であった場合には、ステップS1726で、インストール進捗画面の推定残り時間表示領域に推定残り時間を表示する。具体的には、インストール進捗画面の初期化処理を行った時刻と、現在時刻から、インストール開始後の経過時刻Tを求め、現在のプログレスバーの割合P%から、T×(100−P)÷Pを推定残り時間として表示する。その後、ステップS1704に戻る。
【0130】
以下に、図17A、図17Bの処理に従ってインストールを行う際の、インストール中のプログレスバーの進捗について、ソフトウェア選択ダイアログですべてのソフトウェアを選択した後のソフトウェアAのインストールを例に挙げて説明する。
【0131】
ソフトウェアAのソフトウェアインストール設定ファイル210は、図9で説明を行っている。
【0132】
ソフトウェアAは、図12に示したように、ソフトウェア一覧では最初の項目となるので、ソフトウェアAのインストール処理の開始前には、ソフトウェア進捗画面は図15の状態になっている。ここで、まず図9のファイルセクション906の先頭に記載されているファイルMainExecFile.exeの処理を開始する。
【0133】
ステップS1714までのファイルコピー処理が終了した後、ステップS1716に進む。ソフトウェアインストール設定ファイル210においては、ファイルMainExecFile.exeのインストール量について記載があるため、ステップS1719でファイルのインストール量(4)を取得する。
【0134】
続いて、ステップS1721で、ソフトウェアに含まれるすべてのファイルのインストール量の合計(4+1=5)を求める。その後、ステップS1723で、ファイルMainExecFile.exeをコピーした際のプログレス進行量を計算する。図15で示したように、本実施形態の場合、ソフトウェアAに割り当てられているプログレスバー領域は40%である。その中で、(ファイルのインストール量÷ソフトウェアのインストール量)、つまり、4÷5=0.8の割合でプログレスバーを進めるため、ステップS1724では、40%×0.8=32%だけ、プログレスバーが進むことになる。ここまでのファイルコピーにT=32秒かかった場合、ステップS1726では、インストール進捗画面の推定残り時間表示領域に、32×(100−32)÷32=68秒を推定残り時間として表示することになる。この時点での、インストール進捗画面の表示を図18に示す。
【0135】
同様に、コンポーネントDの処理についても説明する。
【0136】
コンポーネントDのソフトウェアインストール設定ファイル216は、図10で説明を行っている。
【0137】
図19は、コンポーネントDのインストールを開始した際の、ステップS1701時点での画面である。コンポーネントDは、図12に示したように、ソフトウェア一覧では5番目の項目となるので、プログレスバーは4番目のソフトウェアまでが終了した、68%の状態となっている。
【0138】
ここで、まず図10のファイルセクション1006の先頭に記載されているファイルComponentDMain.dllの処理を開始する。ステップS1714までのファイルコピー処理が終了した後、ステップS1716に進む。ソフトウェアインストール設定ファイル216においては、ファイルComponentDMain.dllのインストール量については0となっており、記載がない。そのため、ステップS1717に進む。ファイルインストール単位についてはサイズになっているため、ステップS1718で、ファイルComponentDMain.dllのファイルサイズを取得する。また、ステップS1721では、ファイルセクション1006に記載されている全てのファイルのファイルサイズを取得し、それを合計してソフトウェアのインストール量とする。その後、ステップS1723で、ファイルComponentDMain.dllをコピーした際のプログレス進行量を計算する。ここでは、ComponentDMain.dllが20MB、CompShare.libが10MBであるとする。図15で示したように、本実施形態の場合、コンポーネントDに割り当てられているプログレスバー領域は12%である。その中で、(ファイルのインストール量÷ソフトウェアのインストール量)、つまり、20÷30=0.67の割合でプログレスバーを進めるため、ステップS1724では、12%×0.67=8%だけ、プログレスバーが進み、76%に進むことになる。また、ここまでのファイルコピーにT=38秒かかった場合、ステップS1726では、インストール進捗画面の推定残り時間表示領域に、38×(100−76)÷76=12秒を推定残り時間として表示することになる。この時点での、インストール進捗画面の表示を図20に示す。
【0139】
尚、インストール中のコンポーネントに相当するプログレスバー領域の点滅や色を変えたりする事で進行中を明示したり、各コンポーネント毎にプログレスバー領域の色を変える事は、利用者にとって分かりやすい表示の実現に有効である事は言うまでもない。
【0140】
図21は、インストール処理において使用される、オペレーティングシステムが持っているファイルの参照カウントデータベースの内部構造を示す図である。
【0141】
データベースの各レコードには、ファイル名フィールド2101と、そのファイル名に対応する参照カウントフィールド2102が存在する。インストーラからの要求で、あるファイルに対する参照カウントの加算が要求された場合、そのファイルのレコードがすでに存在すれば、その参照カウントフィールドの値に1が追加される。また、レコードが存在しないファイルに対して参照カウントの加算が要求された場合には、新規にレコードが作成され、その参照カウントフィールドには1が設定される。同様に、あるファイルに対する参照カウントフィールドの減算が要求されたときには、そのファイルのレコードから値が減算される。減算の結果、参照カウントフィールドが0以下になった場合には、自動的にそのレコードは削除される。
【0142】
本実施形態においては、参照カウントデータベースはオペレーティングシステムの機能を利用して実現するものとしたが、他の手段を用いて参照カウントの計算を行っても、同様の効果を得ることは可能である。また、参照カウントは、複数のソフトウェアが共通で使用するファイルを誤ってアンインストールすることがないように導入した仕組みであり、同様の効果が得られるものであれば、参照カウントの使用に限定するものではない。
【0143】
図22は、図14のインストール処理の結果作成されたインストールログの一部を抜粋した図である。
【0144】
インストールログには、インストーラがインストールしたファイルが、どのソフトウェアが何というファイルをどういう順番でインストールしたかが記録されている。本実施形態においては、インストールログはテキストファイルであり、テキストファイル内には、各ソフトウェアごとにセクションを分け、インストールされたファイルが時系列の順に並んで記載される。例えば、図22のセクション2201には、ソフトウェアA、またはソフトウェアAを親とする他のソフトウェアをインストールしたファイルの一覧が記録されている。同様に、セクション2202には、ソフトウェアF、またはソフトウェアFを親とする他のソフトウェアをインストールしたファイルの一覧が記録されている。
【0145】
それぞれのセクションは、セクション名とファイル一覧から構成され、たとえばセクション2201は、タイトル2203およびファイル一覧2204から構成されている。ファイル一覧2204には、ソフトウェアA、またはソフトウェアAを親とする他のソフトウェアをインストールしたファイルの一覧がインストールした順に記録されている。
【0146】
図23は、本実施形態におけるアンインストール処理を行う際の動作の詳細な流れを示す図である。
【0147】
最初に、ステップS2301でアンインストール処理の初期化処理を行う。具体的には、ソフトウェアのアンインストール処理を行う際には、アンインストールを行うプログラム、アンインストーラに対して、アンインストールを行うソフトウェアの識別子が渡されるため、その識別子を取得する。
【0148】
続いて、ステップS2302で、アンインストールを実行するかどうか、利用者に確認するメッセージを表示して入力を求める。利用者がキャンセルを入力した場合には、そのまま何も行わずにアンインストール処理を終了する。利用者がOKを入力した場合、アンインストール処理を開始するため、ステップS2303に進む。
【0149】
ステップS2303では、アンインストール対象となるソフトウェアのインストールログのうち、最新のものを取得する。ステップS2304では、アンインストールログから、ソフトウェアのインストールログが取得できたかどうか判定を行い、ログが取得できなかった場合、すなわち、そのソフトウェアのインストールログが空になった場合には、ステップS2310に進む。インストールログが取得できた場合には、ステップS2305で、対象ファイルの参照カウント数を参照カウントデータベースに問い合わせる。
【0150】
次のステップS2306では、返ってきた値が1であるかを確認し、1であった場合にはステップS2307で対象ファイルを削除した後、ステップS2308に進む。また、参照カウントデータベースから返ってきた値が1より大きかった場合には、ファイルを削除せずにステップS2308に進む。
【0151】
ステップS2308では、対象ファイルの参照カウントを1減算する。続くステップS2309では、インストールログから、処理を行ったインストールログを削除し、その後、ステップS2303に戻る。
【0152】
ステップS2310では、利用者に対して、アンインストール処理が完了したことを示すメッセージを表示する。メッセージ表示が終了したら、アンインストール処理を終了する。
【0153】
(他の実施形態)
また、各実施形態の目的は、次のような方法によっても達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、本発明には次のような場合も含まれる。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【0154】
さらに、次のような場合も本発明に含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【0155】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる。
【0156】
なお、本発明の更なる特徴としては、前記記憶媒体は図1に示した光ディスク106、107や、カード型といった形状で、交換や配布が可能な記憶媒体でも実現可能なことである。
【図面の簡単な説明】
【0157】
【図1】本発明の一実施形態に係わるシステムの構成を示す図である。
【図2】光ディスク106に記録されているプログラムおよびデータファイルの構成の例を示す図である。
【図3】一実施形態のシステムにおけるソフトウェアインストール処理全体の流れ図である。
【図4】一実施形態で光ディスク106に記録されているインストーラ動作設定ファイル202の記載の一部を示す図である。
【図5】一実施形態のシステムでのソフトウェアインストール処理のうち、ステップS302でのソフトウェア一覧作成処理の詳細な流れ図である。
【図6】図2のフォルダ構成に対して、図4の動作設定ファイル202を使用して、図5のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【図7】一実施形態のシステムでのソフトウェアインストール処理のうち、ステップS303でのソフトウェア選択画面表示処理の詳細な流れ図である。
【図8】別の光ディスク107におけるフォルダ構成を示す図である。
【図9】ソフトウェアインストール設定ファイルの例として、ソフトウェアインストール設定ファイル210を示す図である。
【図10】ソフトウェアインストール設定ファイルの別の例として、ソフトウェアインストール設定ファイル216を示す図である。
【図11】ソフトウェアインストール設定ファイルのさらに別の例として、ソフトウェアインストール設定ファイル809を示す図である。
【図12】図8のフォルダ構成に対して、図4の動作設定ファイル202を使用して、図5のソフトウェア一覧作成処理を行った結果作成された、ソフトウェア一覧の例を示す図である。
【図13】図12のソフトウェア一覧を用いて、図7の処理を行った結果表示されるソフトウェア選択画面を示す図である。
【図14】ステップS305におけるインストール進捗画面の初期化処理の詳細な流れ図である。
【図15】図13のソフトウェア選択画面で、全てのソフトウェアを選択した後、図14で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【図16】図13のソフトウェア選択画面で、ソフトウェアAの選択を解除した後、図14で説明したインストール進捗画面の初期化処理を行った場合の、インストール進捗画面の例を示す図である。
【図17A】ステップS309における、インストール実行処理の詳細な流れ図である。
【図17B】ステップS309における、インストール実行処理の詳細な流れ図である。
【図18】図17の処理に従ってインストールを行う際の、ソフトウェアAのインストール中のインストール進捗画面を示す図である。
【図19】コンポーネントDのインストールを開始した際の、ステップS1701時点でのインストール進捗画面を示す図である。
【図20】図17の処理に従ってインストールを行う際の、コンポーネントDのインストール中のインストール進捗画面を示す図である。
【図21】インストール処理において使用される、オペレーティングシステムが持っているファイルの参照カウントデータベースの内部構造を示す図である。
【図22】図14のインストール処理の結果作成されたインストールログの一部を抜粋した図である。
【図23】一実施形態におけるアンインストール処理を行う際の動作の詳細な流れ図である。
【図24】非特許文献2に記載のソフトウェアにおけるソフトウェア選択画面を示す図である。
【特許請求の範囲】
【請求項1】
ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール装置であって、
前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールすることが可能なインストール実行手段と、
前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示手段と、
を具備することを特徴とするインストール装置。
【請求項2】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアのファイル容量を用いることを特徴とする請求項1に記載のインストール装置。
【請求項3】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアのインストール時間を用いることを特徴とする請求項1に記載のインストール装置。
【請求項4】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアが有するファイル数を用いることを特徴とする請求項1に記載のインストール装置。
【請求項5】
インストール全体の進捗状況を表す100%を各ソフトウェアに配分するために使用するインストール量の基準と、配分された各ソフトウェアごとの進捗状況を表示するために使用するインストール量の基準が異なることを特徴とする請求項2乃至4のいずれか1項に記載のインストール装置。
【請求項6】
前記表示手段に進捗状況を表示するために使用される各ソフトウェアのインストール量が、各ソフトウェアのインストール設定ファイルに記載されていることを特徴とする請求項1に記載のインストール装置。
【請求項7】
インストール開始からの経過時間を計測する計時手段と、インストール量の合計に対するインストール済みインストール量の割合に基づいて、インストール完了までに必要な時間を予測する終了時間予測手段と、前記終了時間予測手段における予測結果を表示する第2の表示手段とをさらに具備することを特徴とする請求項1に記載のインストール装置。
【請求項8】
前記インストール量の合計に対する前記インストール済みインストール量の割合が、予め定められた値に達するまでは、前記第2の表示手段に前記予測結果を表示しないことを特徴とする請求項7に記載のインストール装置。
【請求項9】
ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、
前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールするインストール実行工程と、
前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程と、
を具備することを特徴とするインストール方法。
【請求項10】
請求項9に記載のインストール方法をコンピュータに実行させることを特徴とするプログラム。
【請求項11】
請求項10に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項12】
前記記憶媒体は、形状がディスクもしくはカード型で、交換、配布が可能な記憶媒体であることを特徴とする請求項11に記載の記憶媒体。
【請求項1】
ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール装置であって、
前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールすることが可能なインストール実行手段と、
前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示手段と、
を具備することを特徴とするインストール装置。
【請求項2】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアのファイル容量を用いることを特徴とする請求項1に記載のインストール装置。
【請求項3】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアのインストール時間を用いることを特徴とする請求項1に記載のインストール装置。
【請求項4】
前記複数のソフトウェアの各インストール設定ファイルから読み出される各ソフトウェアのインストール量の基準として、各ソフトウェアが有するファイル数を用いることを特徴とする請求項1に記載のインストール装置。
【請求項5】
インストール全体の進捗状況を表す100%を各ソフトウェアに配分するために使用するインストール量の基準と、配分された各ソフトウェアごとの進捗状況を表示するために使用するインストール量の基準が異なることを特徴とする請求項2乃至4のいずれか1項に記載のインストール装置。
【請求項6】
前記表示手段に進捗状況を表示するために使用される各ソフトウェアのインストール量が、各ソフトウェアのインストール設定ファイルに記載されていることを特徴とする請求項1に記載のインストール装置。
【請求項7】
インストール開始からの経過時間を計測する計時手段と、インストール量の合計に対するインストール済みインストール量の割合に基づいて、インストール完了までに必要な時間を予測する終了時間予測手段と、前記終了時間予測手段における予測結果を表示する第2の表示手段とをさらに具備することを特徴とする請求項1に記載のインストール装置。
【請求項8】
前記インストール量の合計に対する前記インストール済みインストール量の割合が、予め定められた値に達するまでは、前記第2の表示手段に前記予測結果を表示しないことを特徴とする請求項7に記載のインストール装置。
【請求項9】
ソフトウェアをインストールするための処理内容が記載されたインストール設定ファイルをそれぞれ有する複数のソフトウェアを、コンピュータにインストールするインストール方法であって、
前記複数のソフトウェアのインストール設定ファイルの内容を連続的に読み取って該内容に従って処理することにより、前記複数のソフトウェアを連続してインストールするインストール実行工程と、
前記複数のソフトウェアの各インストール設定ファイルから読み出した各ソフトウェアのインストール量を合計し、該インストール量の合計をインストール処理全体の進捗状況の100%として扱い、各ソフトウェアのインストールの進捗状況を全体の一部として表示する表示工程と、
を具備することを特徴とするインストール方法。
【請求項10】
請求項9に記載のインストール方法をコンピュータに実行させることを特徴とするプログラム。
【請求項11】
請求項10に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項12】
前記記憶媒体は、形状がディスクもしくはカード型で、交換、配布が可能な記憶媒体であることを特徴とする請求項11に記載の記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17A】
【図17B】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17A】
【図17B】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2007−213344(P2007−213344A)
【公開日】平成19年8月23日(2007.8.23)
【国際特許分類】
【出願番号】特願2006−32920(P2006−32920)
【出願日】平成18年2月9日(2006.2.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成19年8月23日(2007.8.23)
【国際特許分類】
【出願日】平成18年2月9日(2006.2.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]