説明

ソフトウェア更新方法、情報処理装置、及びプログラム

【課題】コンポーネントの組み合わせ、及びコンポーネントが実行された環境にインストールされているかどうかに関わらず、単一の更新プログラムによってソフトウェアの更新を可能にする。
【解決手段】コンポーネントの追加及び削除が可能なソフトウェアを更新するに際し、次のような手法を講ずる。即ち、当該ソフトウェアの更新が実行された環境において、指定されたソフトウェアまたはコンポーネントのインストールが検出された場合に、ソフトウェアまたはコンポーネントのインストールを行う。或いは、指定されたハードウェアの接続が検出された場合に、ソフトウェアまたはコンポーネントのインストールを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法、ソフトウェア更新方法を実施するための情報処理装置及びプログラムに関する。
【背景技術】
【0002】
従来、ソフトウェアを、コンポーネントと呼ばれるソフトウェアの機能単位ごとに分割し、利用者に応じて、組み合わせるコンポーネントを変更して配布するような場合があった。
【0003】
例えば、同じ名称を持つソフトウェアでも、ソフトウェアの販売価格に応じてコンポーネントの組み合わせを変更して提供する場合がある。その他には、ソフトウェアをハードウェアに同梱して販売する際に、ハードウェアに固有の機能を使用するためのコンポーネントを同梱する場合がある。ハードウェア固有の機能を持ったコンポーネントは、そのハードウェアに同梱するソフトウェアには組み合わせても、他のハードウェアに同梱するソフトウェアには組み合わせないことがある。
【0004】
このような、コンポーネントの組み合わせの変更は、インストーラの機能の一部として行われることが多い。コンポーネントとは、所定のファイルやオペレーティングシステム上の設定の組み合わせで構成されている。特定の利用者に対してあるコンポーネントを提供しない場合には、インストーラからそのコンポーネントに関連するファイルなどを取り除いてからインストーラを実行すると、コンポーネントを含まない形でソフトウェアが提供される。或いは、インストーラには全てのコンポーネントを含んでいるが、プロダクトキーなどと呼ばれる暗号キーによって、利用者に適したコンポーネントのみをインストールさせる方法もある(特許文献1参照)。
【0005】
これとは別に、ソフトウェアに対する更新プログラムを、インターネットなどで利用者に配布することが一般に行われている。このような更新プログラムは、それ自身は無料で配布されているが、更新対象プログラムを所有している利用者だけが利用できるような仕組みになっている場合がほとんどである。この場合、代金を支払ったことのある利用者だけが、最新版のソフトウェアを利用できる。
【0006】
利用者によってコンポーネントの組み合わせを変更して配布するようなソフトウェアについても、更新プログラムを提供する場合がある。その際に、利用者が所有していないソフトウェア及びコンポーネントについては、更新を行わないようにしたいという要求がある。なぜなら、利用者が所有していないコンポーネントを更新してしまうと、利用者の混乱を招く場合がある。また、少ない代金しか支払っていない利用者が、本来は高い代金が必要なコンポーネントを使えるようになってしまうと、金銭的な被害も発生するからである。
【0007】
このような更新プログラムの実現方法としては、従来は以下のような方法が存在した。
【0008】
まず第一の方法として、コンポーネントの組み合わせごとに個別に更新プログラムを提供する方法である。この方法では、更新プログラムの起動時に、更新プログラムを利用可能な利用者であるかどうかを確認すればよい。後は更新プログラムをそのまま実行して更新を行えば、利用者が所有していないコンポーネントを更新してしまう恐れはない。更新プログラムを利用可能な利用者であるかを確認する方法としては、ハードディスクの内容や、ソフトウェアを配布したCD−ROMなどの記録媒体、またはプロダクトキーなどの情報を用いる方法がある。
【0009】
また、第二の方法として、更新プログラムには全てのソフトウェア及びコンポーネントを含めておき、更新プログラム起動時に、必要なソフトウェア及びコンポーネントのみを取り出して更新する方法がある。
【0010】
特許文献2では、インストーラ起動時に、環境情報を取得して環境情報に応じたコンポーネントのインストールのみを行う手法が開示されている。ここで、この環境情報に、前バージョンのソフトウェアの有無を含めることで、この手法が前バージョンからのアップデートに使用できることは明白である。具体的には、各コンポーネントのインストール前に、環境情報として、そのコンポーネントの旧バージョンがインストールされているかどうかを示す情報を取得し、旧バージョンがインストールされている場合のみ、コンポーネントの更新を行えばよい。
【0011】
また、特許文献1では、インストーラ実行中に、利用者から入力されたプロダクトキーに応じて、利用可能なコンポーネントのみをインストールする手法が開示されている。この手法も、同様に、更新プログラムに適用可能である。具体的には、更新プログラムの実行中に、前バージョンのプロダクトキーを入力し、更新プログラムでは、各コンポーネントのインストール前に、そのプロダクトキーで利用可能なコンポーネントのみを更新すればよい。
【0012】
更に、特許文献3では、インストーラが情報処理システムを構成するハードウェアが持つの機能構成要因を読み取り、ハードウェアに適応したソフトウェアのみをインストールする方法が開示されている。この方法も更新プログラムに適用可能である。具体的には、更新プログラムの実行中に、ハードウェアを更新プログラムが動作している情報処理システムと接続し、更新プログラムでは、各ソフトウェアのインストール前に、そのハードウェアで利用可能なソフトウェアのみを更新すればよい。
【特許文献1】特開2005−100401号公報
【特許文献2】特開2002−318692号公報
【特許文献3】特開平5−173764号公報
【発明の開示】
【発明が解決しようとする課題】
【0013】
しかしながら、上記従来例では、以下のような問題点があった。
【0014】
(1)第一の方法として記載した、コンポーネントの組み合わせごとに個別に更新プログラムを提供する方法では、提供が必要になる更新プログラムの数が、コンポーネントの組み合わせが増えるごとに増加してしまう。そのため、更新プログラムを提供するための労力が大きくなり、提供が難しくなるという問題があった。また、更新プログラムを利用する利用者の側から見ても、複数の更新プログラムから、自分が利用可能な更新プログラムを選択する必要があり、更新プログラムの適用が難しくなるという問題があった。
【0015】
(2)第二の方法として記載した方法のうち、更新プログラムの起動時に、環境情報を取得して環境情報に応じたコンポーネントのみ更新を行う手法(上記特許文献2)についても、問題がある。この更新プログラムの動作には、ソフトウェアの旧バージョンを一旦インストールしておく必要がある。このことは、例えば、旧バージョンのソフトウェアがインストールできないオペレーティングシステムにおいて、新バージョンのソフトウェアでは、インストールできるように更新された場合に問題になる。利用者は、更新プログラムを使って新バージョンのソフトウェアに更新するためには、旧バージョンのソフトウェアを一旦インストールしておく必要があるが、そのオペレーティングシステム上では旧バージョンのソフトウェアをインストールできない。そのため、この更新プログラムを使ったソフトウェアの更新は不可能となってしまう。
【0016】
(3)第二の方法として記載した方法のうち、更新プログラム実行中に、利用者から入力されたプロダクトキーに応じて、利用可能なコンポーネントのみを更新する手法(上記特許文献1)についても問題がある。なぜなら、この方法は、旧バージョンのインストール時にプロダクトキーを提供していなかった場合には、利用できないからである。
【0017】
(4)さらに、第二の方法として記載した方法のうち、更新プログラムの動作中に、情報処理システムに接続されたハードウェアに適応したソフトウェアのみを更新する手法(特許文献3)についても問題がある。なぜなら、この方法はハードウェアと同梱されず、初めからソフトウェア単体で利用者の手元に届くソフトウェアの場合には、利用できないからである。
【0018】
(5)また、第一の方法及び、第二の方法の後半で記述した方法に共通の問題点として、ソフトウェアが、提供した時点と異なったコンポーネントの組み合わせで使用されているときに利用できないという問題がある。
【0019】
本発明は上記従来の問題点に鑑み、コンポーネントの追加や削除が可能なソフトウェアを更新するに際し、次のような目的を有するソフトウェア更新方法、情報処理装置、及びプログラムを提供する。即ち、コンポーネントの組み合わせ、及びコンポーネントが実行された環境にインストールされているかどうかに関わらず、単一の更新プログラムによってソフトウェアの更新を可能にすることを目的とする。
【課題を解決するための手段】
【0020】
上記目的を達成するため、本発明のソフトウェア更新方法は、コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法であって、当該ソフトウェア更新方法が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出工程と、指定されたハードウェアの接続を検出するハードウェア検出工程と、前記インストール検出工程により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出工程により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール工程とを備えたことを特徴とする。
【0021】
また、本発明の情報処理装置は、コンポーネントの追加及び削除が可能なソフトウェアを更新する手段を有する情報処理装置であって、当該ソフトウェアの更新が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出手段と、指定されたハードウェアの接続を検出するハードウェア検出手段と、前記インストール検出手段により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出手段により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール手段とを備えたことを特徴とする。
【0022】
また、本発明のプログラムは、コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法をコンピュータに実行させるプログラムであって、前記ソフトウェア更新方法は、当該ソフトウェア更新方法が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出工程と、指定されたハードウェアの接続を検出するハードウェア検出工程と、前記インストール検出工程により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出工程により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール工程とを備えたことを特徴とする。
【発明の効果】
【0023】
本発明によれば、コンポーネントの追加や削除が可能なソフトウェアを更新するに際し、次のような効果を奏する。即ち、コンポーネントの組み合わせ、及びコンポーネントが実行された環境にインストールされているかどうかに関わらず、単一の更新プログラムによって、ソフトウェアの更新が可能になる。
【発明を実施するための最良の形態】
【0024】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【0025】
<システムの構成>
図1は、本発明の実施の形態に係るソフトウェア更新方法を実施するための情報処理システムの構成図である。
【0026】
このシステム内では、クライアント20とサーバ21がインターネット22を介して接続されている。クライアント20は、CPUやROM、RAMから成る制御部を有するコンピュータ201を備えている。ROMは、制御プログラムを格納し、CPUはその制御プログラムを含む各種プログラム(本実施の形態に係る更新プログラムも含む)を実行する。RAMはCPUのワークエリアとして機能する。
【0027】
コンピュータ201には、ディスプレイ202、光ディスクドライブ203、ハードディスクドライブ204、マウス205及びデジタルカメラ206が接続されている。
【0028】
サーバ21は、コンピュータ211と、それに接続されているハードディスク212から構成されている。
【0029】
システムの利用者は、クライアント20の光ディスクドライブ203に、様々な種類の光ディスク、例えば光ディスク23及び24を挿入し、光ディスクに含まれているソフトウェアをインストールすることができる。また、クライアント20を操作することで、インターネット22を経由して、サーバ21から更新プログラム25をダウンロードして実行することもできる。
【0030】
<ソフトウェアの構成>
図2(a),(b)は、光ディスクに記憶されているソフトウェアの構成を示す模式図であり、同図(a)は、光ディスク23に記憶されているソフトウェアの構成を示し、同図(b)は、光ディスク24に含まれているソフトウェアの構成を示す。
【0031】
図2(a)に示すように、光ディスク23には、基本ソフトウェア301、及びインターネットコンポーネント302が記憶されている。インターネットコンポーネント302は、基本ソフトウェア301に対してインターネット接続機能を追加するための部品である。但し、それだけでは動作せず、基本ソフトウェア301と組み合わせることで、利用者に対してインターネット接続機能を提供する。
【0032】
本実施の形態では、光ディスク23に記憶されている基本ソフトウェア301及びインターネットコンポーネント302は、最新バージョンより古いものであると想定する。光ディスク23を、クライアント20の光ディスクドライブ203に挿入すると、基本ソフトウェア301とインターネットコンポーネント302がインストールされる。
【0033】
同様に、光ディスク24には、図2(b)に示すように、基本ソフトウェア301及び印刷コンポーネント403が含まれている。基本ソフトウェア301は、光ディスク23に含まれているものと全く同一である。印刷コンポーネント403は、基本ソフトウェア301に対して印刷機能を追加するための部品である。但し、それだけでは動作せず、基本ソフトウェア301と組み合わせることで、利用者に対して印刷機能を提供するのはインターネットコンポーネント302と同じである。同様に、光ディスク24に記憶されている基本ソフトウェア301及び印刷コンポーネント403は、最新バージョンより古いものであると想定する。
【0034】
光ディスク24を、クライアント20の光ディスクドライブ203に挿入すると、基本ソフトウェア301と印刷コンポーネント403がインストールされる。また、光ディスク23を用いて基本ソフトウェア301とインターネットコンポーネント302をインストールした環境に、光ディスク24を使ってインストールを行うと、次のようになる。即ち、その環境に、基本ソフトウェア301、インターネットコンポーネント302、及び印刷コンポーネント403がインストールされる。
【0035】
同様に、光ディスク24を用いて基本ソフトウェア301と印刷コンポーネント403をインストールした環境に、光ディスク23を使ってインストールを行うと、次のようになる。即ち、その環境に、基本ソフトウェア301、インターネットコンポーネント302、印刷コンポーネント403がインストールされる。
【0036】
<更新プログラムの構成>
図3は、本実施の形態に係る更新プログラム25の構成を示す模式図である。
【0037】
更新プログラム25には、図3に示すように次のようなソフトウェアが含まれている。
【0038】
・更新プログラムの動作を制御するための制御用データ101
・HDD204に記録されているデータから、特定のソフトウェアまたはコンポーネントがインストールされているかを検出するインストール検出部102
・光ディスクドライブ203に挿入された光ディスクに、特定のソフトウェアまたはコンポーネントが含まれているかを検出する媒体検出部103
・指定のデジタルカメラ206がコンピュータ201に接続されているかを検出するハードウェア検出部111
・指定されたソフトウェアまたはコンポーネントを、更新プログラム25から取り出し、HDD204に記録するための取り出し部104
・取り出し部104で取り出されたソフトウェアまたはコンポーネントを使って、インストールを実行するためのインストール実行部105
・基本ソフトウェアのインストール用データ106
・インターネットコンポーネントインストール用データ107
・印刷コンポーネントインストール用データ108
各インストール用データ106、107、108はそれぞれ、最新バージョンの、基本ソフトウェア、インターネットコンポーネント、印刷コンポーネントをインストールするためのものである。これらは、光ディスク23、24に記憶されている基本ソフトウェア、インターネットコンポーネント、及び印刷コンポーネントより、新しいバージョンである。また、各インストール用データ106、107、108には、地域を限定するための情報を付加することができる。本実施の形態においては、インターネットコンポーネントインストール用データ107に、アメリカ地域限定情報109、日本地域限定情報110が付加されている。
【0039】
<更新プログラムに含まれる制御用データ>
図4は、更新プログラム25の内部に含まれる制御用データ101の一例を示したデータ図である。
【0040】
本実施の形態では、制御用データ101の内容はテキストファイルとなっている。テキストファイルは、制御用データをセクションごとに分離するためのセクションタイトル行と、制御用データの名前及び値を記載するためのデータ行から構成されている。セクションタイトル行は、行頭と行末が括弧“[]”で囲われていることで区別できる。
【0041】
図4に示す例の制御用データは、1行目の[SoftwareA]、7行目の[ComponentA1]、13行目の[ComponentA2]の3行によって、3つのセクション501、502、503に分離されている。それぞれのセクションは、基本ソフトウェア、インターネットコンポーネント、印刷コンポーネントに対する、更新プログラム25の動作を示している。また、それぞれのセクションは、次の各データ行から構成されている。
【0042】
・インストール検出部102が使用するための「SearchRegistry」データ行
・媒体検出部103が使用するための「SearchFile」データ行
・取り出し部104が使用するための「ExtractFolder」データ行
・ハードウェア検出部111が使用するための「CameraName」データ行
<更新プログラム25の動作>
図5に、更新プログラム25の動作の流れを示すフローチャートである。
【0043】
最初にステップS601で、更新プログラムの動作を制御するための制御用データ101を更新プログラム25から読み出す。次にステップS602で、基本ソフトウェアが存在するかどうかを検出する。検出方法については、後で図6を用いて説明する。
【0044】
続いてステップS603で、ステップS602で検出した結果、ソフトウェアが存在したかどうかを調べ、存在していればステップS604に進む。存在していなければ、更新プログラム25の処理全体を終了する。
【0045】
ステップS604では、取り出し部104が、制御用データ101の、ExtractFolderデータ行を用いて、更新プログラム25から基本ソフトウェアのインストール用データ106を取り出し、HDD204に書き込む。その後のステップS605では、制御用データ101に記載されている全ソフトウェア及びコンポーネントについて、存在するか否かの検出を行ったかを確認する。全てのソフトウェア及びコンポーネントの処理が終われば、ステップS609に進む。終わっていなければ、ステップS606に進む。
【0046】
ステップS606では、存在するか否かの検出をまだ行っていないコンポーネントのうち、最初のものについて存在するか否かを検出する。検出方法については、後で図6を用いて説明する。続いてステップS607で、ステップS606で検出した結果、コンポーネントが存在したかどうかを調べ、存在していればステップS608に進む。存在していなければ、ステップS605に戻り、次のコンポーネントの検出を続ける。
【0047】
ステップS608では、取り出し部104が、制御用データ101の、ExtractFolderデータ行を用いて、更新プログラム25から、検出されたコンポーネントのインストール用データを取り出してHDD204に書き込む。その後、ステップS605に戻り、次のコンポーネントの検出を続ける。
【0048】
ステップS609では、これまで取り出されたインストール用データを用いて、インストール実行部105がソフトウェア及びコンポーネントの更新処理を行う。更新処理が終わったら、更新プログラムの処理全体を終了する。
【0049】
<ソフトウェア及びコンポーネントの検出処理>
図6は、ソフトウェア及びコンポーネントの検出処理のフローを示すフローチャートである。このフローは、図5で、基本ソフトウェアの検出と(ステップS602)、コンポーネントの検出(ステップS606)を行う際の共通の処理について説明するものである。
【0050】
まず最初に、ステップS701からの、インストール検出部でのインストール検出処理を行う。ステップS701で、指定されたソフトウェアまたはコンポーネントの存在を示すレジストリキーの名称を取得する。具体的には、制御用データ101から、指定されたソフトウェアまたはコンポーネントのセクションの、SearchRegistryデータ行の内容を取得する。
【0051】
続いて、ステップS702で、取得したレジストリキーが存在するかどうかを確認する。ステップS703では、ステップS702での確認の結果、レジストリキーが存在していれば、指定されたソフトウェアまたはコンポーネントが存在したとして、検出処理を終了する。レジストリキーが存在していなければ、ステップS704でディスプレイ202にダイアログを表示し、デジタルカメラ206の接続か、或いは光ディスクの挿入を促す。ステップS705で光ディスクの挿入が検出されると、ステップS706からの、媒体検出部による媒体検出処理に進む。
【0052】
ステップS706では、指定されたソフトウェアまたはコンポーネントの存在を示す、媒体上でのファイル名を取得する。具体的には、制御用データ101から、指定されたソフトウェアまたはコンポーネントのセクションの、SearchFileデータ行の内容を取得する。ステップS707では、挿入された光ディスクに、ステップS706で取得したファイル名のファイルが存在するかどうかを確認する。ステップS708では、ステップS707での確認の結果、ファイルが存在していれば、指定されたソフトウェアまたはコンポーネントが存在したとして、検出処理を終了する。ファイルが存在しなければ、指定されたソフトウェアまたはコンポーネントが存在しなかったとして、検出処理を終了する。
【0053】
ステップS705で光ディスクの確認ができない場合、ステップS709に進みデジタルカメラ206の接続を確認する。デジタルカメラの接続が確認できない場合、検出処理を終了する。接続を確認できた場合、ステップS710で、指定されたデジタルカメラの名前を用意する。具体的には、制御用データ101から、指定されたソフトウェアまたはコンポーネントのセクションの、CameraNameデータ行を取得する。
【0054】
ステップS711では、接続されたデジタルカメラ206に、ステップS710で取得したデジタルカメラ名を持っているかを確認する。つまり、過去に接続されたハードウェアの情報を読み取る履歴読み取りを行う。ステップS712では、ステップS711での確認結果、デジタルカメラ名が同じ場合、指定されたソフトウェアまたはコンポーネントが存在したとして、検出処理を終了する。デジタルカメラ名が異なる場合、指定されたソフトウェアまたはコンポーネントが存在しなかったとして、検出処理を終了する。
【0055】
図7は、図6のステップS704で表示する確認ダイアログを示す画面図である。
【0056】
ソフトウェア名テキスト801には、検出対象のソフトウェア名称が表示される。デジタルカメラ名テキスト802には、検出対象のデジタルカメラ名称が表示される。検索開始ボタン803をクリックすると、コンピュータ201に接続された光ディスクドライブ203に光ディスクが挿入されていれば、その光ディスクに対して、ソフトウェア名テキスト801のソフトウェアの検索が開始される。検索開始ボタン803がクリックされても光ディスクが挿入されていない場合、コンピュータ201に接続されたデジタルカメラ206から情報を取得する。そして、そのデジタルカメラ206がデジタルカメラ名テキスト802と同じ名前を持っているかを調査する。なお、この実施の形態では、先に光ディスクを検索し、その後でデジタルカメラを調査しているが、順番はどちらが先でも構わない。
【0057】
なお、コンピュータ201に接続されたデジタルカメラ206の名前取得に、コンピュータ201が記録しているハードウェア接続情報を利用すると好適である。例えば、Microsoft社のWindows(登録商標) XP Professional Edition(登録商標)では、イメージスキャナやデジタルカメラでPTPに対応した機器をコンピュータと接続する。なお、PTPは、Picture Transfer Protocolの略語である。すると、以下のようなレジストリキーのFriendly Nameに、接続したイメージングデバイスの名前が記録される。
【0058】
・レジストリキーHKEY_LOCAL_MACHINE¥System¥CurrentControlSet¥CONTROL¥Class¥{6BDD1FC6−810F−11D0−BEC7−08002BE2092F}¥DeviceID
DeviceIDキーは、コンピュータに接続されたイメージングデバイスを一意に識別する値であり、コンピュータがイメージングデバイスごとに重複しない値を付ける。ハードウェア検出部111は、上記のレジストリキーから全てのイメージングデバイスのFriendly Nameを取得することができ。そのため、その中からCameraNameデータ行で指定したカメラ名を持つデジタルカメラが接続されているかを判断する。
【0059】
上記レジストリキーは、イメージングデバイスとコンピュータの接続が解消されても、つまり切断されても消えないレジストリキーである。そのため、ハードウェア検出部111が動作している最中にコンピュータとCameraNameデータ行で指定したカメラ名を持つデジタルカメラとの接続が行われなくても、次のような判断をする。即ち、上記のレジストリキーのFriendly NameからCameraNameデータ行で指定したカメラ名を取得できれば、指定されたソフトウェアまたはコンポーネントが存在したと判断する。
【0060】
<インストール実行部の処理>
図8は、図5のステップS609で行われる、インストール実行部105の処理のフローチャートである。
【0061】
インストール実行部105では、まず最初にステップS901で、利用者に地域を選択させるためのダイアログを表示する。選択された地域は、インストール実行部105のこれ以降の処理で使用される。次に、ステップS902で、インストール実行部105でインストールされる可能性のあるソフトウェア及びコンポーネントの一覧を取得する。具体的には、制御用データ101からセクション名の一覧を取得する。
【0062】
続いてステップS903で、制御用データ101に記載されているソフトウェア及びコンポーネントの全てについて処理が終わったかどうかを確認し、全ての処理が終わっていればインストール処理全体を終了する。処理が終わっていない場合には、ステップS904に進む。
【0063】
ステップS904では、現在処理の対象となっているソフトウェアまたはコンポーネントについて、図5の処理において取り出し部104によってHDD204に取り出されているかどうかを確認する。取り出されていなければ、ステップS903に戻り、次のソフトウェアまたはコンポーネントの処理を続ける。
【0064】
現在処理の対象となっているソフトウェアまたはコンポーネントが取り出されていれば、ステップS905で、そのコンポーネントに地域限定情報が付加されているかどうかを確認する。付加されていなければ、ステップS907からの、ソフトウェアまたはコンポーネントの更新処理に進む。地域限定情報が付加されている場合、最初のステップS901で選択された地域でそのソフトウェアまたはコンポーネントが利用できるかどうかを、ステップS906で確認する。その結果、利用できない場合には、ステップS903に戻り、次のソフトウェアまたはコンポーネントの処理を続ける。利用できる場合には、ステップS907に進む。
【0065】
ステップS907からは、ソフトウェアまたはコンポーネントの更新処理を行う。まず、ステップS907で、現在処理を行っているソフトウェアまたはコンポーネントがコンピュータ上にインストールされているかどうかを検出する。この処理は、インストール検出部102が、制御用データ101に記載されているSearchRegistryデータ行を用いて行う。ソフトウェアが検出されなければ、ステップS911に進む。検出された場合には、ステップS908で、インストールされていることが検出されたソフトウェアのバージョン情報を取得する。
【0066】
次にステップS909で、インストールされているソフトウェアのバージョンと、図5の処理において取り出し部104によってHDD204に取り出されているソフトウェアのバージョンとを比較する。インストールされているソフトウェアのバージョンが、取り出したソフトウェアのバージョンと同一であるか、取り出したソフトウェアより新しい場合には、何も行わずにステップS903に戻り、次のソフトウェアまたはコンポーネントの処理を続ける。取り出したソフトウェアの方が新しい場合には、ステップS910で、インストールされているソフトウェアのアンインストールを行った後、ステップS911に進む。
【0067】
ステップS911では、取り出したソフトウェアのインストール処理を行った後、ステップS903に戻り、次のソフトウェアまたはコンポーネントの処理を続ける。
【0068】
図9は、図8のステップS901で表示される地域選択ダイアログの一例を示す画面図である。
【0069】
図9に示すように、このダイアログには、地域リスト1001と、OKボタン1002が存在する。利用者は、地域リスト1001に表示されている地域から、1つの項目を選択した後OKボタン1002をクリックすることで、インストール実行部105に対して地域を伝えることができる。
【0070】
<光ディスク23をインストールした後の更新動作>
次に、光ディスク23をインストールしたコンピュータ環境を、本実施の形態の更新プログラム25を用いて、図5の処理を行って更新する場合の動作を説明する。
【0071】
光ディスク23からは、基本ソフトウェア301とインターネットコンポーネント302がインストールされる。そのため、ステップS602で基本ソフトウェアの存在が検出され、ステップS604で更新プログラム25から基本ソフトウェアインストール用データ106が取り出される。
【0072】
続いて、ステップS605からの処理では、まず最初にインターネットコンポーネントの存在を検出する。光ディスク23からのインストール後には、インターネットコンポーネントが検出されるため、ステップS608でインターネットコンポーネントインストール用データ107が取り出される。
【0073】
続いて、印刷コンポーネントの存在を検出するが、光ディスク23からのインストール後には検出されないため、図7の光ディスク確認ダイアログが表示される。ここで、光ディスク23を入れたまま検索開始ボタン803をクリックすると、光ディスク23には印刷コンポーネントが含まれないため、印刷コンポーネントインストール用データ108は取り出されない。
【0074】
結果として、基本ソフトウェアインストール用データ106と、インターネットコンポーネントインストール用データ107が取り出された状態で、ステップS609のインストール処理が行われる。
【0075】
図8で説明しているインストール処理においては、まず図9の地域選択ダイアログが表示される。その後、制御用データ101に記載されている基本ソフトウェア、インターネットコンポーネント、印刷コンポーネントの3つについて、ステップS903からS911までの処理が行われる。
【0076】
最初に、基本ソフトウェアに対しては、図5の処理で取り出されているためステップS905に進む。基本ソフトウェアは地域限定でないため、そのままステップS907に進む。ステップS907で、基本ソフトウェア301が既にインストールされているのが検出される。そのため、ステップS908、S909で、基本ソフトウェア301と、更新プログラム25から取り出された基本ソフトウェアインストール用データ106とのバージョン比較を行う。
【0077】
最初に説明したとおり、光ディスク23に含まれる基本ソフトウェア301は最新バージョンより古いものであり、更新プログラム25に含まれているのは最新バージョンである。そのため、ステップS910で古いバージョンの基本ソフトウェア301をアンインストールした後、基本ソフトウェアインストール用データ106を使って最新バージョンがインストールされる。結果として、基本ソフトウェアは最新バージョンに更新される。
【0078】
同様に、インターネットコンポーネントについても処理が行われるが、インターネットコンポーネントインストール用データ107には、アメリカ地域限定情報109、日本地域限定情報110が付加されている。そのため、ステップS906では、図9の地域選択ダイアログで選ばれた地域と一致しているかどうかが確認される。つまり、インストールされているインターネットコンポーネント302は、図9の地域選択ダイアログで、日本またはアメリカを選んだ場合のみ、インターネットコンポーネントインストール用データ107を使って更新される。
【0079】
<更新動作の他の例>
これまでは、光ディスク23をインストールした後での更新プログラム25の例を説明してきたが、他の例についても説明する。例えば、光ディスク24を持っており、インストールを行っていない状況で更新プログラム25を実行した場合、基本ソフトウェア、インターネットコンポーネント、印刷コンポーネントのそれぞれの検出処理で図7の確認ダイアログが表示される。ここで、それぞれ光ディスク24入れて検索開始ボタン803をクリックすると、更新プログラム25から、基本ソフトウェアインストール用データ106と、印刷コンポーネントインストール用データ108が取り出され、更新される。
【0080】
また、光ディスク23と光ディスク24の両方をインストールした状態では、インストール用データ106、108の他、インターネットコンポーネントインストール用データ107も取り出され、更新される。
【0081】
続いて、光ディスクを持っていないが、CameraNameデータ行で指定されたカメラ名のデジタルカメラを持っており、インストールを行っていない状況で更新プログラムを実行した場合、次のようになる。即ち、基本ソフトウェア、インターネットコンポーネント、印刷コンポーネント、それぞれの検出処理で確認ダイアログが表示される。ここで、CameraNameデータ行で指定されたカメラ名のデジタルカメラ206をコンピュータ201に接続し、検索開始ボタン803をクリックする。すると、更新プログラム25から、基本ソフトウェアインストール用データ106と、インターネットコンポーネントインストール用データ107と、印刷コンポーネントインストール用データ108が取り出され、インストールされる。
【0082】
さらに、更新プログラムの実行前に、CameraNameデータ行で指定されたカメラ名のデジタルカメラ206をコンピュータ201と接続していれば、次のような処理を行うことができる。即ち、検索開始ボタン803の押下時には、前述したレジストリキーのFriendly NameからCameraNameデータ行で指定されたカメラ名を見つけ出すことができる。そして、更新プログラム25から、基本ソフトウェアインストール用データ106と、インターネットコンポーネントインストール用データ107と、印刷コンポーネントインストール用データ108が取り出され、インストールされる。
【0083】
<本実施の形態に係る利点>
組み合わせるコンポーネントを利用者ごとに切り替えて配布するようなソフトウェアに対する更新プログラムとして、従来では次のようなものがあった。即ち、インストールされているソフトウェア構成に応じてインストール内容を切り替える更新プログラムか、インストール時にユーザの権利を確認するための入力を要求するような更新プログラムしかなかった。この場合、実行前にソフトウェアのインストールが必要であったり、インストールしたいソフトウェア・コンポーネント構成ごとに別の更新プログラムを用意する必要があった。
【0084】
そこで、本実施の形態では、各ソフトウェア・コンポーネントがインストールされているかを確認し、インストールされていない場合には配布メディア内に存在するかを確認するようにした。さらに、デジタルカメラとコンピュータの接続を確認するようにした。これにより、ソフトウェア及びコンポーネントがインストールされている、いないに関わらず対応可能な単一の更新プログラムを提供することができるようになる。要するに本実施の形態は、次のような利点を有する。
【0085】
(1)コンポーネントの組み合わせ、及びコンポーネントが実行された環境に、更新対象のソフトウェアがインストールされているかどうかに関わらず、単一の更新プログラムによって、当該ソフトウェアの更新が可能である。
【0086】
(2)複数の記録媒体によって、異なる組み合わせのコンポーネントを所有している利用者であっても、単一の更新プログラムによって、ソフトウェアの更新が可能である。
【0087】
(3)コンポーネントの組み合わせ、及びコンポーネントが、実行された環境にインストールされているかどうかに係らず、制御用データ101で指定したデジタルカメラとコンピュータとを接続することで、ソフトウェアのインストールが可能である。
【0088】
(4)取り出したコンポーネントであっても、利用者の選択によっては、更新しないことも可能である。
【0089】
(5)指定されたハードウェアが接続中でなくても、コンポーネントのインストールが可能となる。
【0090】
(6)記録媒体に記録された未インストールのソフトウェアまたはコンポーネントさえあれば、ソフトウェアまたはコンポーネントをインストールが可能になる。
【0091】
なお、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。
【0092】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0093】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【0094】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0095】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【0096】
【図1】実施の形態に係るソフトウェア更新方法を実施するための情報処理システムの構成図である。
【図2】光ディスクに記憶されているソフトウェアの構成を示す模式図である。
【図3】実施の形態に係る更新プログラムの構成を示す模式図である。
【図4】更新プログラムの内部に含まれる制御用データの一例を示したデータ図である。
【図5】更新プログラムの動作の流れを示すフローチャートである。
【図6】ソフトウェア及びコンポーネントの検出処理のフローを示すフローチャートである。
【図7】図6のステップS704で表示する確認ダイアログを示す画面図である。
【図8】図5のステップS609で行われる、インストール実行部の処理のフローチャートである。
【図9】図8のステップS901で表示される地域選択ダイアログの一例を示す画面図である。
【符号の説明】
【0097】
20 クライアント
21 サーバ
25 更新プログラム
201 コンピュータ
203 光ディスクドライブ
204 ハードディスクドライブ
206 デジタルカメラ

【特許請求の範囲】
【請求項1】
コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法であって、
当該ソフトウェア更新方法が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出工程と、
指定されたハードウェアの接続を検出するハードウェア検出工程と、
前記インストール検出工程により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出工程により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール工程とを備えたことを特徴とするソフトウェア更新方法。
【請求項2】
操作手段からの操作に応じて、前記インストール工程によるインストールを行うか否かを制御する工程を有することを特徴とする請求項1に記載のソフトウェア更新方法。
【請求項3】
当該ソフトウェア更新方法が実行された環境から、過去に接続されたハードウェアの情報を読み取る履歴読み取り工程と、
前記履歴読み取り工程で読み取った履歴の中から、前記指定されたハードウェアが過去に接続された履歴を検出する検出工程とを備え、
前記検出工程により、前記指定されたハードウェアが過去に接続されたことが検出されたときに、前記インストール工程によりソフトウェアまたはコンポーネントのインストールを行うことを特徴とする請求項1に記載のソフトウェア更新方法。
【請求項4】
指定された記録媒体に、前記指定されたソフトウェアまたはコンポーネントが含まれているかを検出する媒体検出工程を備え、
前記媒体検出工程により、前記指定されたソフトウェアまたはコンポーネントが検出された場合に、該ソフトウェアまたはコンポーネントのインストールを前記インストール工程で行うことを特徴とする請求項1に記載のソフトウェア更新方法。
【請求項5】
コンポーネントの追加及び削除が可能なソフトウェアを更新する手段を有する情報処理装置であって、
当該ソフトウェアの更新が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出手段と、
指定されたハードウェアの接続を検出するハードウェア検出手段と、
前記インストール検出手段により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出手段により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール手段とを備えたことを特徴とする情報処理装置。
【請求項6】
コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法をコンピュータに実行させるプログラムであって、
前記ソフトウェア更新方法は、
当該ソフトウェア更新方法が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出工程と、
指定されたハードウェアの接続を検出するハードウェア検出工程と、
前記インストール検出工程により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出工程により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール工程とを備えたことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate