(57)【要約】【課題】コンポーネントの組み合わせ、及びコンポーネントが実行された環境にインストールされているかどうかに関わらず、単一の更新プログラムによってソフトウェアの更新を可能にする。【解決手段】コンポーネントの追加及び削除が可能なソフトウェアを更新するに際し、次のような手法を講ずる。即ち、当該ソフトウェアの更新が実行された環境において、指定されたソフトウェアまたはコンポーネントのインストールが検出された場合に、ソフトウェアまたはコンポーネントのインストールを行う。或いは、指定されたハードウェアの接続が検出された場合に、ソフトウェアまたはコンポーネントのインストールを行う。【選択図】図５
2008299725.tif 000002
【特許請求の範囲】
【請求項１】
コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法であって、
当該ソフトウェア更新方法が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出工程と、
指定されたハードウェアの接続を検出するハードウェア検出工程と、
前記インストール検出工程により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出工程により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール工程とを備えたことを特徴とするソフトウェア更新方法。
【請求項２】
操作手段からの操作に応じて、前記インストール工程によるインストールを行うか否かを制御する工程を有することを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項３】
当該ソフトウェア更新方法が実行された環境から、過去に接続されたハードウェアの情報を読み取る履歴読み取り工程と、
前記履歴読み取り工程で読み取った履歴の中から、前記指定されたハードウェアが過去に接続された履歴を検出する検出工程とを備え、
前記検出工程により、前記指定されたハードウェアが過去に接続されたことが検出されたときに、前記インストール工程によりソフトウェアまたはコンポーネントのインストールを行うことを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項４】
指定された記録媒体に、前記指定されたソフトウェアまたはコンポーネントが含まれているかを検出する媒体検出工程を備え、
前記媒体検出工程により、前記指定されたソフトウェアまたはコンポーネントが検出された場合に、該ソフトウェアまたはコンポーネントのインストールを前記インストール工程で行うことを特徴とする請求項１に記載のソフトウェア更新方法。
【請求項５】
コンポーネントの追加及び削除が可能なソフトウェアを更新する手段を有する情報処理装置であって、
当該ソフトウェアの更新が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出手段と、
指定されたハードウェアの接続を検出するハードウェア検出手段と、
前記インストール検出手段により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出手段により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール手段とを備えたことを特徴とする情報処理装置。
【請求項６】
コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法をコンピュータに実行させるプログラムであって、
前記ソフトウェア更新方法は、
当該ソフトウェア更新方法が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出工程と、
指定されたハードウェアの接続を検出するハードウェア検出工程と、
前記インストール検出工程により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出工程により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール工程とを備えたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法、ソフトウェア更新方法を実施するための情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、ソフトウェアを、コンポーネントと呼ばれるソフトウェアの機能単位ごとに分割し、利用者に応じて、組み合わせるコンポーネントを変更して配布するような場合があった。
【０００３】
例えば、同じ名称を持つソフトウェアでも、ソフトウェアの販売価格に応じてコンポーネントの組み合わせを変更して提供する場合がある。その他には、ソフトウェアをハードウェアに同梱して販売する際に、ハードウェアに固有の機能を使用するためのコンポーネントを同梱する場合がある。ハードウェア固有の機能を持ったコンポーネントは、そのハードウェアに同梱するソフトウェアには組み合わせても、他のハードウェアに同梱するソフトウェアには組み合わせないことがある。
【０００４】
このような、コンポーネントの組み合わせの変更は、インストーラの機能の一部として行われることが多い。コンポーネントとは、所定のファイルやオペレーティングシステム上の設定の組み合わせで構成されている。特定の利用者に対してあるコンポーネントを提供しない場合には、インストーラからそのコンポーネントに関連するファイルなどを取り除いてからインストーラを実行すると、コンポーネントを含まない形でソフトウェアが提供される。或いは、インストーラには全てのコンポーネントを含んでいるが、プロダクトキーなどと呼ばれる暗号キーによって、利用者に適したコンポーネントのみをインストールさせる方法もある（特許文献１参照）。
【０００５】
これとは別に、ソフトウェアに対する更新プログラムを、インターネットなどで利用者に配布することが一般に行われている。このような更新プログラムは、それ自身は無料で配布されているが、更新対象プログラムを所有している利用者だけが利用できるような仕組みになっている場合がほとんどである。この場合、代金を支払ったことのある利用者だけが、最新版のソフトウェアを利用できる。
【０００６】
利用者によってコンポーネントの組み合わせを変更して配布するようなソフトウェアについても、更新プログラムを提供する場合がある。その際に、利用者が所有していないソフトウェア及びコンポーネントについては、更新を行わないようにしたいという要求がある。なぜなら、利用者が所有していないコンポーネントを更新してしまうと、利用者の混乱を招く場合がある。また、少ない代金しか支払っていない利用者が、本来は高い代金が必要なコンポーネントを使えるようになってしまうと、金銭的な被害も発生するからである。
【０００７】
このような更新プログラムの実現方法としては、従来は以下のような方法が存在した。
【０００８】
まず第一の方法として、コンポーネントの組み合わせごとに個別に更新プログラムを提供する方法である。この方法では、更新プログラムの起動時に、更新プログラムを利用可能な利用者であるかどうかを確認すればよい。後は更新プログラムをそのまま実行して更新を行えば、利用者が所有していないコンポーネントを更新してしまう恐れはない。更新プログラムを利用可能な利用者であるかを確認する方法としては、ハードディスクの内容や、ソフトウェアを配布したＣＤ−ＲＯＭなどの記録媒体、またはプロダクトキーなどの情報を用いる方法がある。
【０００９】
また、第二の方法として、更新プログラムには全てのソフトウェア及びコンポーネントを含めておき、更新プログラム起動時に、必要なソフトウェア及びコンポーネントのみを取り出して更新する方法がある。
【００１０】
特許文献２では、インストーラ起動時に、環境情報を取得して環境情報に応じたコンポーネントのインストールのみを行う手法が開示されている。ここで、この環境情報に、前バージョンのソフトウェアの有無を含めることで、この手法が前バージョンからのアップデートに使用できることは明白である。具体的には、各コンポーネントのインストール前に、環境情報として、そのコンポーネントの旧バージョンがインストールされているかどうかを示す情報を取得し、旧バージョンがインストールされている場合のみ、コンポーネントの更新を行えばよい。
【００１１】
また、特許文献１では、インストーラ実行中に、利用者から入力されたプロダクトキーに応じて、利用可能なコンポーネントのみをインストールする手法が開示されている。この手法も、同様に、更新プログラムに適用可能である。具体的には、更新プログラムの実行中に、前バージョンのプロダクトキーを入力し、更新プログラムでは、各コンポーネントのインストール前に、そのプロダクトキーで利用可能なコンポーネントのみを更新すればよい。
【００１２】
更に、特許文献３では、インストーラが情報処理システムを構成するハードウェアが持つの機能構成要因を読み取り、ハードウェアに適応したソフトウェアのみをインストールする方法が開示されている。この方法も更新プログラムに適用可能である。具体的には、更新プログラムの実行中に、ハードウェアを更新プログラムが動作している情報処理システムと接続し、更新プログラムでは、各ソフトウェアのインストール前に、そのハードウェアで利用可能なソフトウェアのみを更新すればよい。
【特許文献１】特開２００５−１００４０１号公報
【特許文献２】特開２００２−３１８６９２号公報
【特許文献３】特開平５−１７３７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記従来例では、以下のような問題点があった。
【００１４】
（１）第一の方法として記載した、コンポーネントの組み合わせごとに個別に更新プログラムを提供する方法では、提供が必要になる更新プログラムの数が、コンポーネントの組み合わせが増えるごとに増加してしまう。そのため、更新プログラムを提供するための労力が大きくなり、提供が難しくなるという問題があった。また、更新プログラムを利用する利用者の側から見ても、複数の更新プログラムから、自分が利用可能な更新プログラムを選択する必要があり、更新プログラムの適用が難しくなるという問題があった。
【００１５】
（２）第二の方法として記載した方法のうち、更新プログラムの起動時に、環境情報を取得して環境情報に応じたコンポーネントのみ更新を行う手法（上記特許文献２）についても、問題がある。この更新プログラムの動作には、ソフトウェアの旧バージョンを一旦インストールしておく必要がある。このことは、例えば、旧バージョンのソフトウェアがインストールできないオペレーティングシステムにおいて、新バージョンのソフトウェアでは、インストールできるように更新された場合に問題になる。利用者は、更新プログラムを使って新バージョンのソフトウェアに更新するためには、旧バージョンのソフトウェアを一旦インストールしておく必要があるが、そのオペレーティングシステム上では旧バージョンのソフトウェアをインストールできない。そのため、この更新プログラムを使ったソフトウェアの更新は不可能となってしまう。
【００１６】
（３）第二の方法として記載した方法のうち、更新プログラム実行中に、利用者から入力されたプロダクトキーに応じて、利用可能なコンポーネントのみを更新する手法（上記特許文献１）についても問題がある。なぜなら、この方法は、旧バージョンのインストール時にプロダクトキーを提供していなかった場合には、利用できないからである。
【００１７】
（４）さらに、第二の方法として記載した方法のうち、更新プログラムの動作中に、情報処理システムに接続されたハードウェアに適応したソフトウェアのみを更新する手法（特許文献３）についても問題がある。なぜなら、この方法はハードウェアと同梱されず、初めからソフトウェア単体で利用者の手元に届くソフトウェアの場合には、利用できないからである。
【００１８】
（５）また、第一の方法及び、第二の方法の後半で記述した方法に共通の問題点として、ソフトウェアが、提供した時点と異なったコンポーネントの組み合わせで使用されているときに利用できないという問題がある。
【００１９】
本発明は上記従来の問題点に鑑み、コンポーネントの追加や削除が可能なソフトウェアを更新するに際し、次のような目的を有するソフトウェア更新方法、情報処理装置、及びプログラムを提供する。即ち、コンポーネントの組み合わせ、及びコンポーネントが実行された環境にインストールされているかどうかに関わらず、単一の更新プログラムによってソフトウェアの更新を可能にすることを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するため、本発明のソフトウェア更新方法は、コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法であって、当該ソフトウェア更新方法が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出工程と、指定されたハードウェアの接続を検出するハードウェア検出工程と、前記インストール検出工程により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出工程により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール工程とを備えたことを特徴とする。
【００２１】
また、本発明の情報処理装置は、コンポーネントの追加及び削除が可能なソフトウェアを更新する手段を有する情報処理装置であって、当該ソフトウェアの更新が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出手段と、指定されたハードウェアの接続を検出するハードウェア検出手段と、前記インストール検出手段により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出手段により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール手段とを備えたことを特徴とする。
【００２２】
また、本発明のプログラムは、コンポーネントの追加及び削除が可能なソフトウェアを更新するソフトウェア更新方法をコンピュータに実行させるプログラムであって、前記ソフトウェア更新方法は、当該ソフトウェア更新方法が実行された環境において指定されたソフトウェアまたはコンポーネントがインストールされているかどうかを検出するインストール検出工程と、指定されたハードウェアの接続を検出するハードウェア検出工程と、前記インストール検出工程により、前記指定されたソフトウェアまたはコンポーネントのインストールが検出された場合、或いは前記ハードウェア検出工程により、前記指定されたハードウェアの接続が検出された場合にのみ、ソフトウェアまたはコンポーネントのインストールを行うインストール工程とを備えたことを特徴とする。
【発明の効果】
【００２３】
本発明によれば、コンポーネントの追加や削除が可能なソフトウェアを更新するに際し、次のような効果を奏する。即ち、コンポーネントの組み合わせ、及びコンポーネントが実行された環境にインストールされているかどうかに関わらず、単一の更新プログラムによって、ソフトウェアの更新が可能になる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００２５】
＜システムの構成＞
図１は、本発明の実施の形態に係るソフトウェア更新方法を実施するための情報処理システムの構成図である。
【００２６】
このシステム内では、クライアント２０とサーバ２１がインターネット２２を介して接続されている。クライアント２０は、ＣＰＵやＲＯＭ、ＲＡＭから成る制御部を有するコンピュータ２０１を備えている。ＲＯＭは、制御プログラムを格納し、ＣＰＵはその制御プログラムを含む各種プログラム（本実施の形態に係る更新プログラムも含む）を実行する。ＲＡＭはＣＰＵのワークエリアとして機能する。
【００２７】
コンピュータ２０１には、ディスプレイ２０２、光ディスクドライブ２０３、ハードディスクドライブ２０４、マウス２０５及びデジタルカメラ２０６が接続されている。
【００２８】
サーバ２１は、コンピュータ２１１と、それに接続されているハードディスク２１２から構成されている。
【００２９】
システムの利用者は、クライアント２０の光ディスクドライブ２０３に、様々な種類の光ディスク、例えば光ディスク２３及び２４を挿入し、光ディスクに含まれているソフトウェアをインストールすることができる。また、クライアント２０を操作することで、インターネット２２を経由して、サーバ２１から更新プログラム２５をダウンロードして実行することもできる。
【００３０】
＜ソフトウェアの構成＞
図２（ａ），（ｂ）は、光ディスクに記憶されているソフトウェアの構成を示す模式図であり、同図（ａ）は、光ディスク２３に記憶されているソフトウェアの構成を示し、同図（ｂ）は、光ディスク２４に含まれているソフトウェアの構成を示す。
【００３１】
図２（ａ）に示すように、光ディスク２３には、基本ソフトウェア３０１、及びインターネットコンポーネント３０２が記憶されている。インターネットコンポーネント３０２は、基本ソフトウェア３０１に対してインターネット接続機能を追加するための部品である。但し、それだけでは動作せず、基本ソフトウェア３０１と組み合わせることで、利用者に対してインターネット接続機能を提供する。
【００３２】
本実施の形態では、光ディスク２３に記憶されている基本ソフトウェア３０１及びインターネットコンポーネント３０２は、最新バージョンより古いものであると想定する。光ディスク２３を、クライアント２０の光ディスクドライブ２０３に挿入すると、基本ソフトウェア３０１とインターネットコンポーネント３０２がインストールされる。
【００３３】
同様に、光ディスク２４には、図２（ｂ）に示すように、基本ソフトウェア３０１及び印刷コンポーネント４０３が含まれている。基本ソフトウェア３０１は、光ディスク２３に含まれているものと全く同一である。印刷コンポーネント４０３は、基本ソフトウェア３０１に対して印刷機能を追加するための部品である。但し、それだけでは動作せず、基本ソフトウェア３０１と組み合わせることで、利用者に対して印刷機能を提供するのはインターネットコンポーネント３０２と同じである。同様に、光ディスク２４に記憶されている基本ソフトウェア３０１及び印刷コンポーネント４０３は、最新バージョンより古いものであると想定する。
【００３４】
光ディスク２４を、クライアント２０の光ディスクドライブ２０３に挿入すると、基本ソフトウェア３０１と印刷コンポーネント４０３がインストールされる。また、光ディスク２３を用いて基本ソフトウェア３０１とインターネットコンポーネント３０２をインストールした環境に、光ディスク２４を使ってインストールを行うと、次のようになる。即ち、その環境に、基本ソフトウェア３０１、インターネットコンポーネント３０２、及び印刷コンポーネント４０３がインストールされる。
【００３５】
同様に、光ディスク２４を用いて基本ソフトウェア３０１と印刷コンポーネント４０３をインストールした環境に、光ディスク２３を使ってインストールを行うと、次のようになる。即ち、その環境に、基本ソフトウェア３０１、インターネットコンポーネント３０２、印刷コンポーネント４０３がインストールされる。
【００３６】
＜更新プログラムの構成＞
図３は、本実施の形態に係る更新プログラム２５の構成を示す模式図である。
【００３７】
更新プログラム２５には、図３に示すように次のようなソフトウェアが含まれている。
【００３８】
・更新プログラムの動作を制御するための制御用データ１０１
・ＨＤＤ２０４に記録されているデータから、特定のソフトウェアまたはコンポーネントがインストールされているかを検出するインストール検出部１０２
・光ディスクドライブ２０３に挿入された光ディスクに、特定のソフトウェアまたはコンポーネントが含まれているかを検出する媒体検出部１０３
・指定のデジタルカメラ２０６がコンピュータ２０１に接続されているかを検出するハードウェア検出部１１１
・指定されたソフトウェアまたはコンポーネントを、更新プログラム２５から取り出し、ＨＤＤ２０４に記録するための取り出し部１０４
・取り出し部１０４で取り出されたソフトウェアまたはコンポーネントを使って、インストールを実行するためのインストール実行部１０５
・基本ソフトウェアのインストール用データ１０６
・インターネットコンポーネントインストール用データ１０７
・印刷コンポーネントインストール用データ１０８
各インストール用データ１０６、１０７、１０８はそれぞれ、最新バージョンの、基本ソフトウェア、インターネットコンポーネント、印刷コンポーネントをインストールするためのものである。これらは、光ディスク２３、２４に記憶されている基本ソフトウェア、インターネットコンポーネント、及び印刷コンポーネントより、新しいバージョンである。また、各インストール用データ１０６、１０７、１０８には、地域を限定するための情報を付加することができる。本実施の形態においては、インターネットコンポーネントインストール用データ１０７に、アメリカ地域限定情報１０９、日本地域限定情報１１０が付加されている。
【００３９】
＜更新プログラムに含まれる制御用データ＞
図４は、更新プログラム２５の内部に含まれる制御用データ１０１の一例を示したデータ図である。
【００４０】
本実施の形態では、制御用データ１０１の内容はテキストファイルとなっている。テキストファイルは、制御用データをセクションごとに分離するためのセクションタイトル行と、制御用データの名前及び値を記載するためのデータ行から構成されている。セクションタイトル行は、行頭と行末が括弧“［］”で囲われていることで区別できる。
【００４１】
図４に示す例の制御用データは、１行目の［ＳｏｆｔｗａｒｅＡ］、７行目の［ＣｏｍｐｏｎｅｎｔＡ１］、１３行目の［ＣｏｍｐｏｎｅｎｔＡ２］の３行によって、３つのセクション５０１、５０２、５０３に分離されている。それぞれのセクションは、基本ソフトウェア、インターネットコンポーネント、印刷コンポーネントに対する、更新プログラム２５の動作を示している。また、それぞれのセクションは、次の各データ行から構成されている。
【００４２】
・インストール検出部１０２が使用するための「ＳｅａｒｃｈＲｅｇｉｓｔｒｙ」データ行
・媒体検出部１０３が使用するための「ＳｅａｒｃｈＦｉｌｅ」データ行
・取り出し部１０４が使用するための「ＥｘｔｒａｃｔＦｏｌｄｅｒ」データ行
・ハードウェア検出部１１１が使用するための「ＣａｍｅｒａＮａｍｅ」データ行
＜更新プログラム２５の動作＞
図５に、更新プログラム２５の動作の流れを示すフローチャートである。
【００４３】
最初にステップＳ６０１で、更新プログラムの動作を制御するための制御用データ１０１を更新プログラム２５から読み出す。次にステップＳ６０２で、基本ソフトウェアが存在するかどうかを検出する。検出方法については、後で図６を用いて説明する。
【００４４】
続いてステップＳ６０３で、ステップＳ６０２で検出した結果、ソフトウェアが存在したかどうかを調べ、存在していればステップＳ６０４に進む。存在していなければ、更新プログラム２５の処理全体を終了する。
【００４５】
ステップＳ６０４では、取り出し部１０４が、制御用データ１０１の、ＥｘｔｒａｃｔＦｏｌｄｅｒデータ行を用いて、更新プログラム２５から基本ソフトウェアのインストール用データ１０６を取り出し、ＨＤＤ２０４に書き込む。その後のステップＳ６０５では、制御用データ１０１に記載されている全ソフトウェア及びコンポーネントについて、存在するか否かの検出を行ったかを確認する。全てのソフトウェア及びコンポーネントの処理が終われば、ステップＳ６０９に進む。終わっていなければ、ステップＳ６０６に進む。
【００４６】
ステップＳ６０６では、存在するか否かの検出をまだ行っていないコンポーネントのうち、最初のものについて存在するか否かを検出する。検出方法については、後で図６を用いて説明する。続いてステップＳ６０７で、ステップＳ６０６で検出した結果、コンポーネントが存在したかどうかを調べ、存在していればステップＳ６０８に進む。存在していなければ、ステップＳ６０５に戻り、次のコンポーネントの検出を続ける。
【００４７】
ステップＳ６０８では、取り出し部１０４が、制御用データ１０１の、ＥｘｔｒａｃｔＦｏｌｄｅｒデータ行を用いて、更新プログラム２５から、検出されたコンポーネントのインストール用データを取り出してＨＤＤ２０４に書き込む。その後、ステップＳ６０５に戻り、次のコンポーネントの検出を続ける。
【００４８】
ステップＳ６０９では、これまで取り出されたインストール用データを用いて、インストール実行部１０５がソフトウェア及びコンポーネントの更新処理を行う。更新処理が終わったら、更新プログラムの処理全体を終了する。
【００４９】
＜ソフトウェア及びコンポーネントの検出処理＞
図６は、ソフトウェア及びコンポーネントの検出処理のフローを示すフローチャートである。このフローは、図５で、基本ソフトウェアの検出と（ステップＳ６０２）、コンポーネントの検出（ステップＳ６０６）を行う際の共通の処理について説明するものである。
【００５０】
まず最初に、ステップＳ７０１からの、インストール検出部でのインストール検出処理を行う。ステップＳ７０１で、指定されたソフトウェアまたはコンポーネントの存在を示すレジストリキーの名称を取得する。具体的には、制御用データ１０１から、指定されたソフトウェアまたはコンポーネントのセクションの、ＳｅａｒｃｈＲｅｇｉｓｔｒｙデータ行の内容を取得する。
【００５１】
続いて、ステップＳ７０２で、取得したレジストリキーが存在するかどうかを確認する。ステップＳ７０３では、ステップＳ７０２での確認の結果、レジストリキーが存在していれば、指定されたソフトウェアまたはコンポーネントが存在したとして、検出処理を終了する。レジストリキーが存在していなければ、ステップＳ７０４でディスプレイ２０２にダイアログを表示し、デジタルカメラ２０６の接続か、或いは光ディスクの挿入を促す。ステップＳ７０５で光ディスクの挿入が検出されると、ステップＳ７０６からの、媒体検出部による媒体検出処理に進む。
【００５２】
ステップＳ７０６では、指定されたソフトウェアまたはコンポーネントの存在を示す、媒体上でのファイル名を取得する。具体的には、制御用データ１０１から、指定されたソフトウェアまたはコンポーネントのセクションの、ＳｅａｒｃｈＦｉｌｅデータ行の内容を取得する。ステップＳ７０７では、挿入された光ディスクに、ステップＳ７０６で取得したファイル名のファイルが存在するかどうかを確認する。ステップＳ７０８では、ステップＳ７０７での確認の結果、ファイルが存在していれば、指定されたソフトウェアまたはコンポーネントが存在したとして、検出処理を終了する。ファイルが存在しなければ、指定されたソフトウェアまたはコンポーネントが存在しなかったとして、検出処理を終了する。
【００５３】
ステップＳ７０５で光ディスクの確認ができない場合、ステップＳ７０９に進みデジタルカメラ２０６の接続を確認する。デジタルカメラの接続が確認できない場合、検出処理を終了する。接続を確認できた場合、ステップＳ７１０で、指定されたデジタルカメラの名前を用意する。具体的には、制御用データ１０１から、指定されたソフトウェアまたはコンポーネントのセクションの、ＣａｍｅｒａＮａｍｅデータ行を取得する。
【００５４】
ステップＳ７１１では、接続されたデジタルカメラ２０６に、ステップＳ７１０で取得したデジタルカメラ名を持っているかを確認する。つまり、過去に接続されたハードウェアの情報を読み取る履歴読み取りを行う。ステップＳ７１２では、ステップＳ７１１での確認結果、デジタルカメラ名が同じ場合、指定されたソフトウェアまたはコンポーネントが存在したとして、検出処理を終了する。デジタルカメラ名が異なる場合、指定されたソフトウェアまたはコンポーネントが存在しなかったとして、検出処理を終了する。
【００５５】
図７は、図６のステップＳ７０４で表示する確認ダイアログを示す画面図である。
【００５６】
ソフトウェア名テキスト８０１には、検出対象のソフトウェア名称が表示される。デジタルカメラ名テキスト８０２には、検出対象のデジタルカメラ名称が表示される。検索開始ボタン８０３をクリックすると、コンピュータ２０１に接続された光ディスクドライブ２０３に光ディスクが挿入されていれば、その光ディスクに対して、ソフトウェア名テキスト８０１のソフトウェアの検索が開始される。検索開始ボタン８０３がクリックされても光ディスクが挿入されていない場合、コンピュータ２０１に接続されたデジタルカメラ２０６から情報を取得する。そして、そのデジタルカメラ２０６がデジタルカメラ名テキスト８０２と同じ名前を持っているかを調査する。なお、この実施の形態では、先に光ディスクを検索し、その後でデジタルカメラを調査しているが、順番はどちらが先でも構わない。
【００５７】
なお、コンピュータ２０１に接続されたデジタルカメラ２０６の名前取得に、コンピュータ２０１が記録しているハードウェア接続情報を利用すると好適である。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ(登録商標)  ＸＰ  Ｐｒｏｆｅｓｓｉｏｎａｌ  Ｅｄｉｔｉｏｎ(登録商標)では、イメージスキャナやデジタルカメラでＰＴＰに対応した機器をコンピュータと接続する。なお、ＰＴＰは、Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌの略語である。すると、以下のようなレジストリキーのＦｒｉｅｎｄｌｙ  Ｎａｍｅに、接続したイメージングデバイスの名前が記録される。
【００５８】
・レジストリキーＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ￥Ｓｙｓｔｅｍ￥ＣｕｒｒｅｎｔＣｏｎｔｒｏｌＳｅｔ￥ＣＯＮＴＲＯＬ￥Ｃｌａｓｓ￥｛６ＢＤＤ１ＦＣ６−８１０Ｆ−１１Ｄ０−ＢＥＣ７−０８００２ＢＥ２０９２Ｆ｝￥ＤｅｖｉｃｅＩＤ
ＤｅｖｉｃｅＩＤキーは、コンピュータに接続されたイメージングデバイスを一意に識別する値であり、コンピュータがイメージングデバイスごとに重複しない値を付ける。ハードウェア検出部１１１は、上記のレジストリキーから全てのイメージングデバイスのＦｒｉｅｎｄｌｙ  Ｎａｍｅを取得することができ。そのため、その中からＣａｍｅｒａＮａｍｅデータ行で指定したカメラ名を持つデジタルカメラが接続されているかを判断する。
【００５９】
上記レジストリキーは、イメージングデバイスとコンピュータの接続が解消されても、つまり切断されても消えないレジストリキーである。そのため、ハードウェア検出部１１１が動作している最中にコンピュータとＣａｍｅｒａＮａｍｅデータ行で指定したカメラ名を持つデジタルカメラとの接続が行われなくても、次のような判断をする。即ち、上記のレジストリキーのＦｒｉｅｎｄｌｙ  ＮａｍｅからＣａｍｅｒａＮａｍｅデータ行で指定したカメラ名を取得できれば、指定されたソフトウェアまたはコンポーネントが存在したと判断する。
【００６０】
＜インストール実行部の処理＞
図８は、図５のステップＳ６０９で行われる、インストール実行部１０５の処理のフローチャートである。
【００６１】
インストール実行部１０５では、まず最初にステップＳ９０１で、利用者に地域を選択させるためのダイアログを表示する。選択された地域は、インストール実行部１０５のこれ以降の処理で使用される。次に、ステップＳ９０２で、インストール実行部１０５でインストールされる可能性のあるソフトウェア及びコンポーネントの一覧を取得する。具体的には、制御用データ１０１からセクション名の一覧を取得する。
【００６２】
続いてステップＳ９０３で、制御用データ１０１に記載されているソフトウェア及びコンポーネントの全てについて処理が終わったかどうかを確認し、全ての処理が終わっていればインストール処理全体を終了する。処理が終わっていない場合には、ステップＳ９０４に進む。
【００６３】
ステップＳ９０４では、現在処理の対象となっているソフトウェアまたはコンポーネントについて、図５の処理において取り出し部１０４によってＨＤＤ２０４に取り出されているかどうかを確認する。取り出されていなければ、ステップＳ９０３に戻り、次のソフトウェアまたはコンポーネントの処理を続ける。
【００６４】
現在処理の対象となっているソフトウェアまたはコンポーネントが取り出されていれば、ステップＳ９０５で、そのコンポーネントに地域限定情報が付加されているかどうかを確認する。付加されていなければ、ステップＳ９０７からの、ソフトウェアまたはコンポーネントの更新処理に進む。地域限定情報が付加されている場合、最初のステップＳ９０１で選択された地域でそのソフトウェアまたはコンポーネントが利用できるかどうかを、ステップＳ９０６で確認する。その結果、利用できない場合には、ステップＳ９０３に戻り、次のソフトウェアまたはコンポーネントの処理を続ける。利用できる場合には、ステップＳ９０７に進む。
【００６５】
ステップＳ９０７からは、ソフトウェアまたはコンポーネントの更新処理を行う。まず、ステップＳ９０７で、現在処理を行っているソフトウェアまたはコンポーネントがコンピュータ上にインストールされているかどうかを検出する。この処理は、インストール検出部１０２が、制御用データ１０１に記載されているＳｅａｒｃｈＲｅｇｉｓｔｒｙデータ行を用いて行う。ソフトウェアが検出されなければ、ステップＳ９１１に進む。検出された場合には、ステップＳ９０８で、インストールされていることが検出されたソフトウェアのバージョン情報を取得する。
【００６６】
次にステップＳ９０９で、インストールされているソフトウェアのバージョンと、図５の処理において取り出し部１０４によってＨＤＤ２０４に取り出されているソフトウェアのバージョンとを比較する。インストールされているソフトウェアのバージョンが、取り出したソフトウェアのバージョンと同一であるか、取り出したソフトウェアより新しい場合には、何も行わずにステップＳ９０３に戻り、次のソフトウェアまたはコンポーネントの処理を続ける。取り出したソフトウェアの方が新しい場合には、ステップＳ９１０で、インストールされているソフトウェアのアンインストールを行った後、ステップＳ９１１に進む。
【００６７】
ステップＳ９１１では、取り出したソフトウェアのインストール処理を行った後、ステップＳ９０３に戻り、次のソフトウェアまたはコンポーネントの処理を続ける。
【００６８】
図９は、図８のステップＳ９０１で表示される地域選択ダイアログの一例を示す画面図である。
【００６９】
図９に示すように、このダイアログには、地域リスト１００１と、ＯＫボタン１００２が存在する。利用者は、地域リスト１００１に表示されている地域から、１つの項目を選択した後ＯＫボタン１００２をクリックすることで、インストール実行部１０５に対して地域を伝えることができる。
【００７０】
＜光ディスク２３をインストールした後の更新動作＞
次に、光ディスク２３をインストールしたコンピュータ環境を、本実施の形態の更新プログラム２５を用いて、図５の処理を行って更新する場合の動作を説明する。
【００７１】
光ディスク２３からは、基本ソフトウェア３０１とインターネットコンポーネント３０２がインストールされる。そのため、ステップＳ６０２で基本ソフトウェアの存在が検出され、ステップＳ６０４で更新プログラム２５から基本ソフトウェアインストール用データ１０６が取り出される。
【００７２】
続いて、ステップＳ６０５からの処理では、まず最初にインターネットコンポーネントの存在を検出する。光ディスク２３からのインストール後には、インターネットコンポーネントが検出されるため、ステップＳ６０８でインターネットコンポーネントインストール用データ１０７が取り出される。
【００７３】
続いて、印刷コンポーネントの存在を検出するが、光ディスク２３からのインストール後には検出されないため、図７の光ディスク確認ダイアログが表示される。ここで、光ディスク２３を入れたまま検索開始ボタン８０３をクリックすると、光ディスク２３には印刷コンポーネントが含まれないため、印刷コンポーネントインストール用データ１０８は取り出されない。
【００７４】
結果として、基本ソフトウェアインストール用データ１０６と、インターネットコンポーネントインストール用データ１０７が取り出された状態で、ステップＳ６０９のインストール処理が行われる。
【００７５】
図８で説明しているインストール処理においては、まず図９の地域選択ダイアログが表示される。その後、制御用データ１０１に記載されている基本ソフトウェア、インターネットコンポーネント、印刷コンポーネントの３つについて、ステップＳ９０３からＳ９１１までの処理が行われる。
【００７６】
最初に、基本ソフトウェアに対しては、図５の処理で取り出されているためステップＳ９０５に進む。基本ソフトウェアは地域限定でないため、そのままステップＳ９０７に進む。ステップＳ９０７で、基本ソフトウェア３０１が既にインストールされているのが検出される。そのため、ステップＳ９０８、Ｓ９０９で、基本ソフトウェア３０１と、更新プログラム２５から取り出された基本ソフトウェアインストール用データ１０６とのバージョン比較を行う。
【００７７】
最初に説明したとおり、光ディスク２３に含まれる基本ソフトウェア３０１は最新バージョンより古いものであり、更新プログラム２５に含まれているのは最新バージョンである。そのため、ステップＳ９１０で古いバージョンの基本ソフトウェア３０１をアンインストールした後、基本ソフトウェアインストール用データ１０６を使って最新バージョンがインストールされる。結果として、基本ソフトウェアは最新バージョンに更新される。
【００７８】
同様に、インターネットコンポーネントについても処理が行われるが、インターネットコンポーネントインストール用データ１０７には、アメリカ地域限定情報１０９、日本地域限定情報１１０が付加されている。そのため、ステップＳ９０６では、図９の地域選択ダイアログで選ばれた地域と一致しているかどうかが確認される。つまり、インストールされているインターネットコンポーネント３０２は、図９の地域選択ダイアログで、日本またはアメリカを選んだ場合のみ、インターネットコンポーネントインストール用データ１０７を使って更新される。
【００７９】
＜更新動作の他の例＞
これまでは、光ディスク２３をインストールした後での更新プログラム２５の例を説明してきたが、他の例についても説明する。例えば、光ディスク２４を持っており、インストールを行っていない状況で更新プログラム２５を実行した場合、基本ソフトウェア、インターネットコンポーネント、印刷コンポーネントのそれぞれの検出処理で図７の確認ダイアログが表示される。ここで、それぞれ光ディスク２４入れて検索開始ボタン８０３をクリックすると、更新プログラム２５から、基本ソフトウェアインストール用データ１０６と、印刷コンポーネントインストール用データ１０８が取り出され、更新される。
【００８０】
また、光ディスク２３と光ディスク２４の両方をインストールした状態では、インストール用データ１０６、１０８の他、インターネットコンポーネントインストール用データ１０７も取り出され、更新される。
【００８１】
続いて、光ディスクを持っていないが、ＣａｍｅｒａＮａｍｅデータ行で指定されたカメラ名のデジタルカメラを持っており、インストールを行っていない状況で更新プログラムを実行した場合、次のようになる。即ち、基本ソフトウェア、インターネットコンポーネント、印刷コンポーネント、それぞれの検出処理で確認ダイアログが表示される。ここで、ＣａｍｅｒａＮａｍｅデータ行で指定されたカメラ名のデジタルカメラ２０６をコンピュータ２０１に接続し、検索開始ボタン８０３をクリックする。すると、更新プログラム２５から、基本ソフトウェアインストール用データ１０６と、インターネットコンポーネントインストール用データ１０７と、印刷コンポーネントインストール用データ１０８が取り出され、インストールされる。
【００８２】
さらに、更新プログラムの実行前に、ＣａｍｅｒａＮａｍｅデータ行で指定されたカメラ名のデジタルカメラ２０６をコンピュータ２０１と接続していれば、次のような処理を行うことができる。即ち、検索開始ボタン８０３の押下時には、前述したレジストリキーのＦｒｉｅｎｄｌｙ  ＮａｍｅからＣａｍｅｒａＮａｍｅデータ行で指定されたカメラ名を見つけ出すことができる。そして、更新プログラム２５から、基本ソフトウェアインストール用データ１０６と、インターネットコンポーネントインストール用データ１０７と、印刷コンポーネントインストール用データ１０８が取り出され、インストールされる。
【００８３】
＜本実施の形態に係る利点＞
組み合わせるコンポーネントを利用者ごとに切り替えて配布するようなソフトウェアに対する更新プログラムとして、従来では次のようなものがあった。即ち、インストールされているソフトウェア構成に応じてインストール内容を切り替える更新プログラムか、インストール時にユーザの権利を確認するための入力を要求するような更新プログラムしかなかった。この場合、実行前にソフトウェアのインストールが必要であったり、インストールしたいソフトウェア・コンポーネント構成ごとに別の更新プログラムを用意する必要があった。
【００８４】
そこで、本実施の形態では、各ソフトウェア・コンポーネントがインストールされているかを確認し、インストールされていない場合には配布メディア内に存在するかを確認するようにした。さらに、デジタルカメラとコンピュータの接続を確認するようにした。これにより、ソフトウェア及びコンポーネントがインストールされている、いないに関わらず対応可能な単一の更新プログラムを提供することができるようになる。要するに本実施の形態は、次のような利点を有する。
【００８５】
（１）コンポーネントの組み合わせ、及びコンポーネントが実行された環境に、更新対象のソフトウェアがインストールされているかどうかに関わらず、単一の更新プログラムによって、当該ソフトウェアの更新が可能である。
【００８６】
（２）複数の記録媒体によって、異なる組み合わせのコンポーネントを所有している利用者であっても、単一の更新プログラムによって、ソフトウェアの更新が可能である。
【００８７】
（３）コンポーネントの組み合わせ、及びコンポーネントが、実行された環境にインストールされているかどうかに係らず、制御用データ１０１で指定したデジタルカメラとコンピュータとを接続することで、ソフトウェアのインストールが可能である。
【００８８】
（４）取り出したコンポーネントであっても、利用者の選択によっては、更新しないことも可能である。
【００８９】
（５）指定されたハードウェアが接続中でなくても、コンポーネントのインストールが可能となる。
【００９０】
（６）記録媒体に記録された未インストールのソフトウェアまたはコンポーネントさえあれば、ソフトウェアまたはコンポーネントをインストールが可能になる。
【００９１】
なお、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【００９２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９３】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００９４】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９５】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【００９６】
【図１】実施の形態に係るソフトウェア更新方法を実施するための情報処理システムの構成図である。
【図２】光ディスクに記憶されているソフトウェアの構成を示す模式図である。
【図３】実施の形態に係る更新プログラムの構成を示す模式図である。
【図４】更新プログラムの内部に含まれる制御用データの一例を示したデータ図である。
【図５】更新プログラムの動作の流れを示すフローチャートである。
【図６】ソフトウェア及びコンポーネントの検出処理のフローを示すフローチャートである。
【図７】図６のステップＳ７０４で表示する確認ダイアログを示す画面図である。
【図８】図５のステップＳ６０９で行われる、インストール実行部の処理のフローチャートである。
【図９】図８のステップＳ９０１で表示される地域選択ダイアログの一例を示す画面図である。
【符号の説明】
【００９７】
２０  クライアント
２１  サーバ
２５  更新プログラム
２０１  コンピュータ
２０３  光ディスクドライブ
２０４  ハードディスクドライブ
２０６  デジタルカメラ
【図１】
2008299725.tif 000003
【図２】
2008299725.tif 000004
【図３】
2008299725.tif 000005
【図４】
2008299725.tif 000006
【図５】
2008299725.tif 000007
【図６】
2008299725.tif 000008
【図７】
2008299725.tif 000009
【図８】
2008299725.tif 000010
【図９】
2008299725.tif 000011