(57)【特許請求の範囲】
【請求項１】
第１のプログラムを使用して動作する第２のプログラムを、更新データを用いて更新する情報処理装置であって、
前記第１のプログラム及び前記第２のプログラムが記憶された記憶手段と、
前記記憶手段に記憶されている第１及び第２のプログラムのバージョンを取得する取得手段と、
前記第１のプログラムのバージョンごとに動作可能な前記第２のプログラムのバージョンが示された動作情報と、前記取得手段により取得された前記バージョンとに基づいて、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンの１つを、前記記憶されている第２のプログラムの更新後のバージョンとして設定する設定手段と、
前記記憶されている第２のプログラムを前記更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、前記記憶されている第２のプログラムのバージョン、及び前記動作情報から決定する決定手段と、を備え、
前記決定手段は、
前記記憶されている第２のプログラムのバージョンが前記記憶されている第１のプログラムのバージョンで動作可能なバージョンではない場合、前記第２のプログラムの全体を、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、前記更新するために用いる更新データとして決定し、
前記記憶されている第２のプログラムのバージョンが前記記憶されている第１のプログラムのバージョンで動作可能なバージョンである場合、前記全更新データを含まない、前記第２のプログラムの一部のデータを更新する差分更新データの１つ以上を、前記更新するために用いる更新データとして決定する
ことを特徴とする情報処理装置。
【請求項２】
サーバと通信する通信手段と、
前記決定手段により決定された、前記更新するために用いる更新データを、前記通信手段を介して前記サーバに要求する要求手段と、をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、前記動作情報を前記サーバから前記通信手段を介して取得することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記要求手段は、前記決定手段により決定された前記全更新データが前記サーバに存在しない場合に、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンのうち、当該全更新データにより更新された場合の前記第２のプログラムのバージョンよりも古いバージョンに、前記記憶されている第２のプログラムを更新する全更新データと、当該古いバージョンに更新された前記記憶されている第２のプログラムを当該古いバージョンから前記更新後のバージョンに更新する差分更新データとを要求することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記設定手段は、前記記憶されている第２のプログラムの更新後のバージョンを、前記記憶されている第１のプログラムのバージョンで動作可能な第２のプログラムのバージョンのうちからユーザに選択させることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
第１のプログラムを使用して動作する第２のプログラムを、更新データを用いて更新する情報処理装置であって、
前記第１のプログラム及び前記第２のプログラムが記憶された記憶手段と、
前記記憶手段に記憶されている第１及び第２のプログラムのバージョンを取得する取得手段と、
前記第１のプログラムのバージョンごとに動作可能な前記第２のプログラムのバージョンが示された動作情報と、前記取得手段により取得された前記バージョンとに基づいて、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンの１つを、前記記憶されている第２のプログラムの更新後のバージョンとして設定する設定手段と、
前記記憶されている第２のプログラムを前記更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、前記記憶されている第２のプログラムのバージョン、及び前記動作情報から決定する決定手段と、を備え、
前記決定手段は、
前記記憶されている第２のプログラムを前記更新後のバージョンに更新するために必要となる１以上の差分更新データを利用する場合において、各々の差分更新データによる更新後の前記第２のプログラムのバージョンの全てが、前記第１のプログラムのバージョンで動作可能なバージョンである場合、前記１以上の差分更新データを、前記更新するために用いる更新データとして決定し、
前記１以上の差分更新データのうちの少なくとも一つを利用した更新後の前記第２のプログラムのバージョンが、前記第１のプログラムのバージョンで動作不可能なバージョンである場合、前記第２のプログラムの全体を、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、前記更新するために用いる更新データとして決定する
ことを特徴とする情報処理装置。
【請求項７】
サーバと通信する通信手段と、
前記決定手段により決定された、前記更新するために用いる更新データを、前記通信手段を介して前記サーバに要求する要求手段と、をさらに備えることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記要求手段は、前記決定手段により決定された前記全更新データが前記サーバに存在しない場合に、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンのうち、当該全更新データにより更新された場合の前記第２のプログラムのバージョンよりも古いバージョンに、前記記憶されている第２のプログラムを更新する全更新データと、当該古いバージョンに更新された前記記憶されている第２のプログラムを当該古いバージョンから前記更新後のバージョンに更新する差分更新データとを要求することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
第１のプログラムと、当該第１のプログラムを使用して動作する第２のプログラムが記憶された記憶手段を備え、当該第２のプログラムを、更新データを用いて更新する情報処理装置の制御方法であって、
前記情報処理装置の取得手段が、前記記憶手段に記憶されている第１及び第２のプログラムのバージョンを取得する取得工程と、
前記情報処理装置の設定手段が、前記第１のプログラムのバージョンごとに動作可能な前記第２のプログラムのバージョンが示された動作情報と、前記取得工程において取得された前記バージョンとに基づいて、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンの１つを、前記記憶されている第２のプログラムの更新後のバージョンとして設定する設定工程と、
前記情報処理装置の決定手段が、前記記憶されている第２のプログラムを前記更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、前記記憶されている第２のプログラムのバージョン、及び前記動作情報から決定する決定工程と、を備え、
前記決定手段は前記決定工程において、
前記記憶されている第２のプログラムのバージョンが前記記憶されている第１のプログラムのバージョンで動作可能なバージョンではない場合、前記第２のプログラムの全体を、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、前記更新するために用いる更新データとして決定し、
前記記憶されている第２のプログラムのバージョンが前記記憶されている第１のプログラムのバージョンで動作可能なバージョンである場合、前記全更新データを含まない、前記第２のプログラムの一部のデータを更新する差分更新データの１つ以上を、前記更新するために用いる更新データとして決定する
ことを特徴とする情報処理装置の制御方法。
【請求項１０】
第１のプログラムと、当該第１のプログラムを使用して動作する第２のプログラムが記憶された記憶手段を備え、当該第２のプログラムを、更新データを用いて更新する情報処理装置の制御方法であって、
前記情報処理装置の取得手段が、前記記憶手段に記憶されている第１及び第２のプログラムのバージョンを取得する取得工程と、
前記情報処理装置の設定手段が、前記第１のプログラムのバージョンごとに動作可能な前記第２のプログラムのバージョンが示された動作情報と、前記取得工程において取得された前記バージョンとに基づいて、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンの１つを、前記記憶されている第２のプログラムの更新後のバージョンとして設定する設定工程と、
前記情報処理装置の決定手段が、前記記憶されている第２のプログラムを前記更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、前記記憶されている第２のプログラムのバージョン、及び前記動作情報から決定する決定工程と、を備え、
前記決定手段は前記決定工程において、
前記記憶されている第２のプログラムを前記更新後のバージョンに更新するために必要となる１以上の差分更新データを利用する場合において、各々の差分更新データによる更新後の前記第２のプログラムのバージョンの全てが、前記第１のプログラムのバージョンで動作可能なバージョンである場合、前記１以上の差分更新データを、前記更新するために用いる更新データとして決定し、
前記１以上の差分更新データのうちの少なくとも一つを利用した更新後の前記第２のプログラムのバージョンが、前記第１のプログラムのバージョンで動作不可能なバージョンである場合、前記第２のプログラムの全体を、前記記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、前記更新するために用いる更新データとして決定する
ことを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至８のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項１２】
コンピュータを、請求項１乃至８のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラムを記録した記録媒体。
【請求項１３】
第１のプログラム、及び当該第１のプログラムを使用して動作する第２のプログラムが記憶された情報処理装置と通信する通信手段と、
前記情報処理装置に記憶されている第１及び第２のプログラムのバージョンを、前記通信手段を介して取得する取得手段と、
前記第１のプログラムのバージョンごとに動作可能な前記第２のプログラムのバージョンが示された動作情報と、前記第２のプログラムのバージョンごとに当該バージョンに前記第２のプログラムを更新するために用いる更新データとが記憶された記憶手段と、
前記取得手段により取得された前記バージョンと、前記記憶手段に記憶されている前記動作情報とに基づいて、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンの１つを、前記情報処理装置に記憶されている第２のプログラムの更新後のバージョンとして設定する設定手段と、
前記情報処理装置に記憶されている第２のプログラムを前記更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、前記情報処理装置に記憶されている第２のプログラムのバージョン、及び前記動作情報から決定する決定手段と、
前記決定手段により決定された前記更新するために用いる更新データを、前記通信手段を介して前記情報処理装置に送信する送信手段と、を備え
前記決定手段は、
前記情報処理装置に記憶されている第２のプログラムのバージョンが前記情報処理装置に記憶されている第１のプログラムで動作可能なバージョンではない場合、前記第２のプログラムの全体を、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、前記更新するために用いる更新データとして決定し、
前記情報処理装置に記憶されている第２のプログラムのバージョンが前記情報処理装置に記憶されている第１のプログラムで動作可能なバージョンである場合、前記全更新データを含まない、前記第２のプログラムの一部のデータを更新する差分更新データの１つ以上を、前記更新するために用いる更新データとして決定する
ことを特徴とするサーバ。
【請求項１４】
前記送信手段は、前記決定手段により決定された前記全更新データが前記記憶手段に記憶されていない場合に、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンのうち、当該全更新データにより更新された場合の前記第２のプログラムのバージョンよりも古いバージョンに、前記情報処理装置に記憶されている第２のプログラムを更新する全更新データと、当該古いバージョンに更新された前記情報処理装置に記憶されている第２のプログラムを当該古いバージョンから前記更新後のバージョンに更新する差分更新データとを送信することを特徴とする請求項１３に記載のサーバ。
【請求項１５】
前記設定手段は、前記情報処理装置に記憶されている第２のプログラムの更新後のバージョンを、前記記憶されている第１のプログラムのバージョンで動作可能な第２のプログラムのバージョンのうちからユーザに選択させることを特徴とする請求項１３または１４に記載のサーバ。
【請求項１６】
第１のプログラム、及び当該第１のプログラムを使用して動作する第２のプログラムが記憶された情報処理装置と通信する通信手段と、
前記情報処理装置に記憶されている第１及び第２のプログラムのバージョンを、前記通信手段を介して取得する取得手段と、
前記第１のプログラムのバージョンごとに動作可能な前記第２のプログラムのバージョンが示された動作情報と、前記第２のプログラムのバージョンごとに当該バージョンに前記第２のプログラムを更新するために用いる更新データとが記憶された記憶手段と、
前記取得手段により取得された前記バージョンと、前記記憶手段に記憶されている前記動作情報とに基づいて、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンの１つを、前記情報処理装置に記憶されている第２のプログラムの更新後のバージョンとして設定する設定手段と、
前記情報処理装置に記憶されている第２のプログラムを前記更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、前記情報処理装置に記憶されている第２のプログラムのバージョン、及び前記動作情報から決定する決定手段と、
前記決定手段により決定された前記更新するために用いる更新データを、前記通信手段を介して前記情報処理装置に送信する送信手段と、を備え、
前記決定手段は、
前記情報処理装置に記憶されている第２のプログラムを、前記更新後のバージョンに更新するために必要となる１以上の差分更新データを利用する場合において、各々の差分更新データによる更新後の前記第２のプログラムのバージョンの全てが、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能なバージョンである場合、前記１以上の差分更新データを、前記更新するために用いる更新データとして決定し、
前記１以上の差分更新データのうちの少なくとも一つを利用した更新後の前記第２のプログラムのバージョンが、前記情報処理装置に記憶されている前記第１のプログラムのバージョンで動作不可能なバージョンである場合、前記第２のプログラムの全体を、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、前記更新するために用いる更新データとして決定する
ことを特徴とするサーバ。
【請求項１７】
前記送信手段は、前記決定手段により決定された前記全更新データが前記記憶手段に記憶されていない場合に、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンのうち、当該全更新データにより更新された場合の前記第２のプログラムのバージョンよりも古いバージョンに、前記情報処理装置に記憶されている第２のプログラムを更新する全更新データと、当該古いバージョンに更新された前記情報処理装置に記憶されている第２のプログラムを当該古いバージョンから前記更新後のバージョンに更新する差分更新データとを送信することを特徴とする請求項１６に記載のサーバ。
【請求項１８】
第１のプログラムを使用して動作する第２のプログラムのバージョンごとに当該バージョンに前記第２のプログラムを更新するために用いる更新データと、前記第１のプログラムのバージョンごとに動作可能な前記第２のプログラムのバージョンが示された動作情報とが記憶された記憶手段を備えるサーバの制御方法であって、
前記サーバの通信手段が、前記第１のプログラム及び前記第２のプログラムが記憶された情報処理装置と通信する通信工程と、
前記サーバの取得手段が、前記情報処理装置に記憶されている第１及び第２のプログラムのバージョンを前記通信工程において取得する取得工程と、
前記サーバの設定手段が、前記取得工程において取得された前記バージョンと、前記記憶手段に記憶されている前記動作情報とに基づいて、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンの１つを、前記情報処理装置に記憶されている第２のプログラムの更新後のバージョンとして設定する設定工程と、
前記サーバの決定手段が、前記情報処理装置に記憶されている第２のプログラムを前記更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、前記情報処理装置に記憶されている第２のプログラムのバージョン、及び前記動作情報から決定する決定工程と、
前記サーバの送信手段が、前記決定工程において決定された前記更新するために用いる更新データを、前記通信工程において前記情報処理装置に送信する送信工程と、を備え
前記決定手段は前記決定工程において、
前記情報処理装置に記憶されている第２のプログラムのバージョンが前記情報処理装置に記憶されている第１のプログラムで動作可能なバージョンではない場合、前記第２のプログラムの全体を、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを前記更新するために用いる更新データとして決定し、
前記情報処理装置に記憶されている第２のプログラムのバージョンが前記情報処理装置に記憶されている第１のプログラムで動作可能なバージョンである場合、前記全更新データを含まない、前記第２のプログラムの一部のデータを更新する差分更新データの１つ以上を、前記更新するために用いる更新データとして決定する
ことを特徴とするサーバの制御方法。
【請求項１９】
第１のプログラムを使用して動作する第２のプログラムのバージョンごとに当該バージョンに前記第２のプログラムを更新するために用いる更新データと、前記第１のプログラムのバージョンごとに動作可能な前記第２のプログラムのバージョンが示された動作情報とが記憶された記憶手段を備えるサーバの制御方法であって、
前記サーバの通信手段が、前記第１のプログラム及び前記第２のプログラムが記憶された情報処理装置と通信する通信工程と、
前記サーバの取得手段が、前記情報処理装置に記憶されている第１及び第２のプログラムのバージョンを前記通信工程において取得する取得工程と、
前記サーバの設定手段が、前記取得工程において取得された前記バージョンと、前記記憶手段に記憶されている前記動作情報とに基づいて、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンの１つを、前記情報処理装置に記憶されている第２のプログラムの更新後のバージョンとして設定する設定工程と、
前記サーバの決定手段が、前記情報処理装置に記憶されている第２のプログラムを前記更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、前記情報処理装置に記憶されている第２のプログラムのバージョン、及び前記動作情報から決定する決定工程と、
前記サーバの送信手段が、前記決定工程において決定された前記更新するために用いる更新データを、前記通信工程において前記情報処理装置に送信する送信工程と、を備え
前記決定手段は前記決定工程において、
前記情報処理装置に記憶されている第２のプログラムを、前記更新後のバージョンに更新するために必要となる１以上の差分更新データを利用する場合において、各々の差分更新データによる更新後の前記第２のプログラムのバージョンの全てが、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能なバージョンである場合、前記１以上の差分更新データを、前記更新するために用いる更新データとして決定し、
前記１以上の差分更新データのうちの少なくとも一つを利用した更新後の前記第２のプログラムのバージョンが、前記情報処理装置に記憶されている前記第１のプログラムのバージョンで動作不可能なバージョンである場合、前記第２のプログラムの全体を、前記情報処理装置に記憶されている第１のプログラムのバージョンで動作可能な前記第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、前記更新するために用いる更新データとして決定する
ことを特徴とするサーバの制御方法。
【請求項２０】
コンピュータを、請求項１３乃至１７のいずれか１項に記載のサーバの各手段として機能させるためのプログラム。
【請求項２１】
コンピュータを、請求項１３乃至１７のいずれか１項に記載のサーバの各手段として機能させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの更新データにより、当該プログラムを異なるバージョンに更新する技術に関する。
【背景技術】
【０００２】
ＰＣ等の情報処理装置ではアプリケーション等のプログラムを使用することで、様々な処理を実行することができる。このようなプログラムは、ＣＤ−ＲＯＭ等のプログラムが記録された記録媒体により提供されるか、インターネットを介してサーバからのダウンロードにより入手可能である。
【０００３】
上述したようなプログラムの中にはバージョン管理され、機能修正や新機能の追加等により新たなバージョンへの更新用に更新データが提供されるものがある。このような更新データを用いたプログラムの更新には、次の２通りの方法がある。
【０００４】
更新に係る１つの方法は、プログラムの全体を更新する全更新データを用いて、新たなバージョンのプログラムをインストールする方法である。具体的には、既にインストールされている、更新前のバージョンのプログラムをアンインストールし、更新後のバージョンのプログラムである全更新データを用いてプログラムを再度インストールすることにより、プログラムの全体を更新する。
【０００５】
更新に係るもう１つの方法は、プログラムのデータのうち、変更が生じた一部のデータのみを更新する差分更新データを用いて、新たなバージョンのプログラムに変更する方法である。具体的には、差分更新データは、更新前のバージョンから更新後のバージョンの差分データを更新前のバージョンのプログラムに追加するか、変更が生じたファイルをファイル単位で上書きすることにより、更新後のバージョンのプログラムに更新する。
【０００６】
全更新データを用いる更新方法に比べ、差分更新データを用いる更新方法は、提供される更新データを例えばインターネットを介して取得する際にダウンロードするデータ量を少なくすることができるため、更新に要する時間を短縮することが可能になる。
【０００７】
プログラムの更新は、上述したようなアプリケーション等に限らず、情報処理装置の動作を司るオペレーティングシステム等の基本プログラムにおいても行われる。アプリケーション等のプログラムの中には、基本プログラムとして提供される一部のプログラムを使用して動作するものも存在するため、基本プログラムの更新により当該プログラムが動作しなくなることがある。
【０００８】
特許文献１には、基本プログラム及び当該基本プログラムを使用して動作するプログラムのそれぞれで、自プログラムのバージョンに適合する他のプログラムのバージョンを管理することで、他のプログラムが動作しなくなることを回避する方法が開示されている。具体的には、更新時に更新後の他のプログラムのバージョンが自プログラムのバージョンに適合しないバージョンである場合は、他のプログラムの更新を行わないように制御している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第０４０２９４４８号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１のように自プログラムのバージョンに適合する他のプログラムのバージョンを管理する場合、例えば基本プログラムには多数存在するアプリケーション等のプログラムの適合するバージョンを管理しなければならない。また、適合するバージョンが記憶されていないプログラムは、一方のプログラムの更新後の動作が保証されない。
【００１１】
また、上述したように依存関係の存在するプログラム（依存プログラム）では次のような問題もある。例えばオペレーティングシステム等の基本プログラムの更新により、依存プログラムが動作しなくなり、当該依存プログラムを動作させるために差分更新データにより更新を行う場合を考える。このとき、動作しない依存プログラムへの差分更新データのインストールを試みた場合に、例えばレジストリ更新やＣＯＭ（Component Object Model）登録に失敗することがある。具体的には、動作しない依存プログラムを基本プログラムで動作可能なバージョンまで更新するまでに、複数のバージョンの差分更新データを用いる必要がある場合に、動作しないバージョンを経由するため、更新用のプログラムが動作せずに失敗することがある。
【００１２】
さらに、例えば依存プログラムが、当該依存プログラムの動作に必要なクラスライブラリであって、基本プログラムでも提供されているクラスライブラリを伴ってインストールされる場合を考える。このような場合、基本プログラムの更新が行われた際にクラスライブラリが更新されることがあり、依存プログラムはクラスライブラリの下位互換性がない場合は動作しなくなってしまう。このとき、依存プログラムの差分更新データを用いて更新を行ったとしても、提供するクラスライブラリに変更がない場合は差分更新データにクラスライブラリのデータが含まれないため、依存プログラムは動作しない。
【００１３】
本発明は、上述の問題点に鑑みてなされたものであり、第１のプログラムの更新により動作不可能になった、当該第１のプログラムを使用して動作する第２のプログラムを、適切な更新データを用いて動作可能なバージョンに更新することを目的とする。
【課題を解決するための手段】
【００１４】
前述の目的を達成するために、本発明の情報処理装置は、以下の構成を備える。
第１のプログラムを使用して動作する第２のプログラムを、更新データを用いて更新する情報処理装置であって、第１のプログラム及び第２のプログラムが記憶された記憶手段と、記憶手段に記憶されている第１及び第２のプログラムのバージョンを取得する取得手段と、第１のプログラムのバージョンごとに動作可能な第２のプログラムのバージョンが示された動作情報と、取得手段により取得されたバージョンとに基づいて、記憶されている第１のプログラムのバージョンで動作可能な第２のプログラムのバージョンの１つを、記憶されている第２のプログラムの更新後のバージョンとして設定する設定手段と、記憶されている第２のプログラムを更新後のバージョンに更新するために用いる更新データを、当該更新後のバージョン、記憶されている第２のプログラムのバージョン、及び動作情報から決定する決定手段と、を備え、決定手段は、記憶されている第２のプログラムのバージョンが記憶されている第１のプログラムのバージョンで動作可能なバージョンではない場合、第２のプログラムの全体を、記憶されている第１のプログラムのバージョンで動作可能な第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、更新するために用いる更新データとして決定し、記憶されている第２のプログラムのバージョンが記憶されている第１のプログラムのバージョンで動作可能なバージョンである場合、全更新データを含まない、第２のプログラムの一部のデータを更新する差分更新データの１つ以上を、更新するために用いる更新データとして決定することを特徴とする。
【発明の効果】
【００１５】
このような構成により本発明によれば、第１のプログラムの更新により動作不可能になった、当該第１のプログラムを使用して動作する第２のプログラムを、適切な更新データを用いて動作可能なバージョンに更新することを可能とする。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るサーバ及びＰＣの機能構成を示したブロック図
【図２】実施形態に係るサーバ及びＰＣそれぞれの記録媒体に記録されている情報を示した図
【図３】実施形態に係る動作情報の一例を示した図
【図４】実施形態１に係る依存プログラム更新処理のフローチャート
【図５】実施形態１に係る更新データ決定処理のフローチャート
【図６】実施形態２に係る依存プログラム更新処理のフローチャート
【図７】実施形態２に係る更新データ送信処理のフローチャート
【図８】実施形態２に係る更新データ決定処理のフローチャート
【図９】変形例に係る更新データ決定処理のフローチャート
【発明を実施するための形態】
【００１７】
［実施形態１］
以下、本発明の好適な一実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、情報処理装置の一例としての、オペレーティングシステム（第１のプログラム）を使用して動作する依存プログラム（第２のプログラム）を更新データにより更新することが可能なＰＣに、本発明を適用した例を説明する。しかし、本発明は、第１のプログラムを使用して動作する第２のプログラムを更新データにより更新することが可能な任意の機器に適用可能である。
【００１８】
なお、本実施形態においてＰＣは、依存プログラムを更新する更新データをネットワーク上のサーバから取得するものとして説明するが、本発明の実施はこれに限らない。即ち、依存プログラムの更新データは例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録され、ＰＣの備えるインタフェースを介して当該記録媒体から取得されるものであっても構わない。
【００１９】
また、本明細書において、「全更新データ」とは、依存プログラムの全体またはファイルを更新するデータであり、依存プログラムがいかなるバージョンであっても、特定のバージョンに更新可能なデータを指すものとする。また「差分更新データ」とは、依存プログラムの一部のデータまたはファイルを更新するデータであり、依存プログラムを、特定のバージョンから他の特定のバージョンに更新可能なデータを指すものとする。
【００２０】
＜サーバ１００及びＰＣ２００の構成＞
図１は、本発明の実施形態に係るサーバ１００及びＰＣ２００の機能構成を示すブロック図である。
【００２１】
サーバ１００において、制御部１０１は例えばＣＰＵであり、サーバ１００が備える各ブロックの動作を制御する。具体的には制御部１０１は、サーバ１００が備える各ブロックの動作プログラムをＲＯＭ１０２より読み出し、ＲＡＭ１０３に展開して実行することにより各ブロックの動作を制御する。ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、サーバ１００が備える各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等の情報を記憶する。ＲＡＭ１０３は、書き換え可能な揮発性メモリであり、サーバ１００が備える各ブロックの動作において生成されたデータを一時的に格納する記憶領域として用いられる。
【００２２】
なお、本実施形態ではサーバ１００が備える各ブロックの動作を当該ブロックの動作プログラムにより制御するものとして説明するが、本発明の実施はこれに限らず、各ブロックは当該動作プログラムと同様の処理を行う回路で構成されてもよい。
【００２３】
記録媒体１０４は、例えばサーバ１００に備えられている内蔵メモリや、ＨＤＤやメモリカード等のサーバ１００に着脱可能に接続される記録装置であり、本実施形態では図２（ａ）に示すような情報が記録されているものとする。具体的には記録媒体１０４は、ＰＣ２００で実行されるオペレーティングシステムのバージョンごとに、当該バージョンのオペレーティングシステムで動作可能な依存プログラムのバージョンが示された動作情報を記録している。即ち、図３に示すような、依存プログラムのバージョンごとに、オペレーティングシステムのそれぞれのバージョンで動作可能であるか否かを示した情報が記録されている。また、記録媒体１０４は、ＰＣ２００に記録されている依存プログラムを異なるバージョンの依存プログラムに更新するための、全更新データ及び差分更新データの２種類の更新データが記録されている。更新データは、サーバ１００が提供可能な依存プログラムのバージョンのそれぞれについて、少なくとも差分更新データが記録媒体１０４に記録されており、全更新を行う可能性があるバージョンについては全更新データも提供可能に記録されているものとする。なお、動作情報には依存プログラムのバージョンのそれぞれについて、全更新データが存在するか否かを示す情報が記録されている。
【００２４】
通信部１０５は、サーバ１００が備えるデータ送受信のための通信インタフェースであり、本実施形態ではインターネットを介してＰＣ２００と接続する。通信部１０５は、ＰＣ２００から更新データの要求を受信すると、制御部１０１の制御により、記録媒体１０４に記憶されている更新データのうち、当該要求された更新データをＰＣ２００に送信する。
【００２５】
ＰＣ２００において、ＰＣ制御部２０１は例えばＣＰＵであり、ＰＣ２００が備える各ブロックの動作を制御する。具体的にはＰＣ制御部２０１は、ＰＣ２００が備える各ブロックの動作プログラムをＰＣ−ＲＯＭ２０２より読み出し、ＰＣ−ＲＡＭ２０３に展開して実行することにより各ブロックの動作を制御する。ＰＣ−ＲＯＭ２０２は、書き換え可能な不揮発性メモリであり、ＰＣ２００が備える各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等の情報を記憶する。ＰＣ−ＲＡＭ２０３は、書き換え可能な揮発性メモリであり、ＰＣ２００が備える各ブロックの動作において生成されたデータを一時的に格納する記憶領域として用いられる。
【００２６】
なお、本実施形態ではＰＣ２００が備える各ブロックの動作を当該ブロックの動作プログラムにより制御するものとして説明するが、本発明の実施はこれに限らず、各ブロックは当該動作プログラムと同様の処理を行う回路で構成されてもよい。
【００２７】
ＰＣ記録媒体２０４は、例えばＰＣ２００に備えられている内蔵メモリや、ＨＤＤやメモリカード等のＰＣ２００に着脱可能に接続される記録装置であり、本実施形態では図２（ｂ）に示すような情報が記録されているものとする。ＰＣ記録媒体２０４は、オペレーティングシステム及び依存プログラムのデータ、及び当該オペレーティングシステム及び依存プログラムそれぞれのバージョンを管理するバージョンを記録している。
【００２８】
ＰＣ通信部２０５は、ＰＣ２００が備えるデータ送受信のための通信インタフェースであり、本実施形態ではインターネットを介してサーバ１００と接続する。ＰＣ通信部２０５は、ＰＣ制御部２０１の制御により、ＰＣ記録媒体２０４に記録されている依存プログラムを更新するための更新データが後述するＰＣ更新データ決定部２０８で決定された場合に、当該決定された更新データの要求をサーバ１００に送信する。また、ＰＣ通信部２０５は送信した更新データの要求に応じてサーバ１００から更新データを受信する。
【００２９】
操作入力部２０６は、例えばキーボードやマウス等のＰＣ２００が備える、ユーザからの入力を受け付けるユーザインタフェースであり、ユーザから入力された操作内容を解析し、ＰＣ制御部２０１に伝送する。表示部２０７は、ＰＣ２００が備える、またはＰＣ２００に接続されたＬＣＤ等の表示装置であり、オペレーティングシステム及び依存プログラムのＧＵＩデータ等を表示する。
【００３０】
ＰＣ更新データ決定部２０８は、サーバ１００に要求する、ＰＣ２００に記録されている依存プログラムを更新するための更新データを決定するブロックである。具体的にはＰＣ更新データ決定部２０８は、ＰＣ記録媒体２０４に記録されているオペレーティングシステム及び依存プログラムのバージョンを参照する。そして、ＰＣ更新データ決定部２０８は、ＰＣ２００のオペレーティングシステムのバージョンで動作する依存プログラムのバージョンへの更新データを、現在ＰＣ記録媒体２０４に記録されている依存プログラムのバージョンに応じて決定する。
【００３１】
＜依存プログラム更新処理＞
このような構成をもつ本実施形態のＰＣ２００の依存プログラム更新処理について、図４のフローチャートを用いて具体的な処理を説明する。当該フローチャートに対応する処理は、ＰＣ制御部２０１が、例えばＰＣ記録媒体２０４に記憶されている対応する処理プログラムを読み出し、ＰＣ−ＲＡＭ２０３に展開して実行することにより実現することができる。なお、本依存プログラム更新処理は、例えば当該依存プログラムが起動された際に開始されるものとして説明する。
【００３２】
Ｓ４０１で、ＰＣ制御部２０１は、ＰＣ記録媒体２０４に記録されている依存プログラム及びオペレーティングシステムのバージョンを取得する。具体的にはＰＣ制御部２０１は、ＰＣ記録媒体２０４に記録されている、オペレーティングシステム及び依存プログラムのバージョンを読み出し、それぞれのプログラムのバージョンを取得する。
【００３３】
Ｓ４０２で、ＰＣ制御部２０１は、ＰＣ通信部２０５を介してサーバ１００に、オペレーティングシステムのバージョンごとに、動作する依存プログラムのバージョンが示された動作情報を送信させるための要求コマンドを送信する。そしてＳ４０３で、ＰＣ制御部２０１は、ＰＣ通信部２０５を介して、サーバ１００から動作情報を受信するまで処理を待機する。
【００３４】
サーバ１００から動作情報を受信すると、Ｓ４０４でＰＣ制御部２０１は、受信した動作情報に、ＰＣ２００のオペレーティングシステムのバージョンにおける依存プログラムの動作に関する情報が存在しているかを判断する。即ち、サーバ１００が当該オペレーティングシステムのバージョンに対する更新データを提供可能であるか否かを判断する。ＰＣ制御部２０１は動作情報にＰＣ２００のオペレーティングシステムのバージョンに係る情報が存在している場合は処理をＳ４０６に移し、存在していない場合は処理をＳ４０５に移す。
【００３５】
動作情報にＰＣ２００のオペレーティングシステムのバージョンに係る情報が存在していない場合、Ｓ４０５でＰＣ制御部２０１は、表示部２０７に当該オペレーティングシステムのバージョンに依存プログラムが対応していないことを通知するＧＵＩを表示する。その後、ＰＣ制御部２０１は本依存プログラム更新処理を完了する。
【００３６】
Ｓ４０６でＰＣ制御部２０１は、動作情報を参照し、依存プログラムの更新後のバージョンを決定する。具体的にはＰＣ制御部２０１は、動作情報を参照し、ＰＣ２００のオペレーティングシステムのバージョンで動作する依存プログラムのバージョンのうち、最新のバージョンを更新後のバージョンとして決定する。例えば図３のように動作情報が構成されていた場合、ＰＣ２００のオペレーティングシステムのバージョンが「ｂ」であった場合は、当該バージョンｂで動作する依存プログラムのバージョンのうちの最新のバージョンは、「１．４」に決定される。
【００３７】
なお、本実施形態では、オペレーティングシステムのバージョンで動作する依存プログラムのバージョンのうちの最新のバージョンを、更新後のバージョンとして決定する方法について説明するが、本発明の実施はこれに限らない。即ち、依存プログラムの更新後のバージョンは、ユーザが所望するバージョンであってもよく、例えば本ステップで動作する依存プログラムのバージョンのリストを表示部２０７に表示させてユーザに選択可能としてもよい。
【００３８】
Ｓ４０７で、ＰＣ制御部２０１は、Ｓ４０６で決定された依存プログラムの更新後のバージョンが、現在ＰＣ記録媒体２０４に記録されている依存プログラムのバージョンと異なるか否かを判断する。ＰＣ制御部２０１はＰＣ記録媒体２０４に記録されている依存プログラムのバージョンとＳ４０６で決定された更新後のバージョンが異なる場合は処理をＳ４０９に移し、同一である場合は処理をＳ４０８に移す。
【００３９】
Ｓ４０８で、ＰＣ制御部２０１は本依存プログラム更新処理において更新を行う必要がないため、表示部２０７に依存プログラムの更新が不要であることを通知するＧＵＩを表示させる。そしてＰＣ制御部２０１は、本依存プログラム更新処理を完了する。
【００４０】
Ｓ４０９で、ＰＣ制御部２０１は、サーバ１００に要求する更新データを決定する、更新データ決定処理を実行する。ここで、ＰＣ２００で実行される当該更新データ決定処理について、図５を参照して詳細に説明する。
【００４１】
（更新データ決定処理（ＰＣ））
Ｓ５０１で、ＰＣ制御部２０１は、ＰＣ記録媒体２０４に記憶されているオペレーティングシステム及び依存プログラムのバージョン、サーバ１００から受信した動作情報、及び更新後のバージョンの情報をＰＣ更新データ決定部２０８に入力する。そしてＰＣ更新データ決定部２０８はＰＣ制御部２０１の制御に基づき、動作情報を参照して現在の依存プログラムのバージョンが、ＰＣ２００のオペレーティングシステムのバージョンで動作するバージョンであるか否かを判断する。
【００４２】
即ち、本ステップにおいて、ＰＣ制御部２０１は、現在の依存プログラムのバージョンがＰＣ２００のオペレーティングシステムのバージョンで動作するバージョンであるとＰＣ更新データ決定部２０８により判断された場合は、処理をＳ５０２に移す。またＰＣ制御部２０１は、現在の依存プログラムのバージョンがＰＣ２００のオペレーティングシステムのバージョンで動作しないバージョンであるとＰＣ更新データ決定部２０８により判断された場合は、処理をＳ５０３に移す。
【００４３】
Ｓ５０２で、ＰＣ更新データ決定部２０８はＰＣ制御部２０１の制御に基づき、現在の依存プログラムのバージョンから更新後のバージョンまでの各バージョン間についてサーバ１００が有する差分更新データを、全て要求すると決定する。即ち、現在の依存プログラムのバージョンが、ＰＣ２００のオペレーティングシステムのバージョンで動作が保証されるため、当該依存プログラムの更新は、一部のデータを更新する差分更新データのみで行うことができる。
【００４４】
Ｓ５０３で、ＰＣ更新データ決定部２０８はＰＣ制御部２０１の制御に基づき、更新後のバージョン以下の、ＰＣ２００のオペレーティングシステムのバージョンで動作可能なバージョンのうち、全更新データを提供可能なバージョンが存在するか否かを判断する。具体的にはＰＣ更新データ決定部２０８は動作情報を参照し、更新後のバージョン以下の更新データであって、ＰＣ２００のオペレーティングシステムのバージョンで動作可能なバージョンの全更新データが存在するか否かを判断する。
【００４５】
ＰＣ制御部２０１は、更新後のバージョン以下の、オペレーティングシステムのバージョンで動作可能なバージョンのうち、全更新データを提供可能なバージョンが存在するとＰＣ更新データ決定部２０８により判断された場合は、処理をＳ５０４に移す。またＰＣ制御部２０１は、更新後のバージョン以下の、オペレーティングシステムのバージョンで動作可能なバージョンのうち、全更新データを提供可能なバージョンが存在しないとＰＣ更新データ決定部２０８により判断された場合は、処理をＳ５０５に移す。
【００４６】
Ｓ５０４で、ＰＣ更新データ決定部２０８はＰＣ制御部２０１の制御により、更新後のバージョン以下の全更新データを提供可能な依存プログラムのバージョンのうち、オペレーティングシステムで動作可能な最新のバージョンの全更新データを要求すると決定する。
【００４７】
全更新データは現在の依存プログラムのバージョンに関わらず全体を更新するため、現在の依存プログラムのバージョンがオペレーティングシステムで動作しないバージョンであっても、動作可能なバージョンに１つの全更新データで更新できる。即ち、動作可能なバージョンに依存プログラムを更新した後は、Ｓ５０２と同様に更新後のバージョンまではデータ量の少ない差分更新データのみを用いることで更新可能である。
【００４８】
つまり、本実施形態のようにインターネットを介して更新データをダウンロードする場合は、ダウンロードするデータ量を少なくすることで、依存プログラムの更新処理に係る時間を短縮することができる。このため、本実施形態ではオペレーティングシステムで動作可能なバージョンのうち、更新後のバージョン以下であって、全更新データを提供可能な最も新しいバージョンの全更新データを少なくとも要求することで、更新処理に係る時間を短縮する。
【００４９】
なお、ＰＣ更新データ決定部２０８は、更新後のバージョンへの全更新データが存在しない場合は、サーバ１００に要求する更新データとして、上述したように要求する全更新データから更新後のバージョンまでの間の差分更新データも要求するものとする。即ち、ＰＣ更新データ決定部２０８は、ＰＣ２００のオペレーティングシステムのバージョンで動作可能な、少なくとも１つの全更新データを含む、最小のデータ量で更新後のバージョンに更新可能な更新データの組み合わせを要求すると決定する。しかしながら、本発明の実施はこれに限らず、少なくともオペレーティングシステムのバージョンで動作可能な全更新データを用いて更新することで、依存プログラムが当該オペレーティングシステムで動作しない場合であっても更新可能な効果を奏する。
【００５０】
Ｓ５０５で、ＰＣ制御部２０１は、ＰＣ記録媒体２０４に記録されている依存プログラムを、ＰＣ２００のオペレーティングシステムのバージョンで動作可能なバージョンに更新することができないと判断する。そしてＰＣ制御部２０１は、表示部２０７に依存プログラムの更新が不可能であることを通知するＧＵＩを表示させ、本更新データ決定処理及び依存プログラム更新処理を完了する。
【００５１】
このように更新データ決定処理により、サーバ１００に要求する更新データが決定された後、ＰＣ制御部２０１はＳ４１０で、当該決定された要求する更新データを要求するコマンドを、ＰＣ通信部２０５を介してサーバ１００に送信する。そしてＳ４１１で、ＰＣ制御部２０１は要求した更新データがＰＣ通信部２０５で受信されるまで処理を待機する。
【００５２】
Ｓ４１２で、ＰＣ制御部２０１はＳ４１１で受信した更新データを用いてＰＣ記録媒体２０４に記録されている依存プログラムの更新を行う。具体的にはＰＣ制御部２０１は、受信した更新データのうち、依存プログラムのバージョンが古いものから順に更新データを適用することにより、更新後のバージョンの依存プログラムに更新する。
【００５３】
以上説明したように、本実施形態の情報処理装置は、記憶している第１のプログラムを使用して動作する第２のプログラムを更新する際に次のように処理する。具体的には情報処理装置は、第１のプログラムのバージョンごとに動作可能な第２のプログラムのバージョンが示された動作情報と、第１及び第２のプログラムのバージョンに基づき、更新後のバージョンを設定する。このとき情報処理装置は、記憶されている第２のプログラムのバージョンが、記憶されている第１のプログラムで動作可能なバージョンであるか否かにより更新に用いる更新データを決定する。第２のプログラムが第１のプログラムで動作可能なバージョンではない場合、第２のプログラムの全体を、第１のプログラムで動作可能な第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを更新データとして決定する。また第２のプログラムが第１のプログラムで動作可能なバージョンである場合、全更新データを含まず、第２のプログラムの一部のデータを更新する差分更新データの１つ以上を更新データとして決定する。
【００５４】
このようにすることで、情報処理装置は、第１のプログラムの更新により動作不可能になった、当該第１のプログラムを使用して動作する第２のプログラムを、適切な更新データを用いて動作可能なバージョンに更新することができる。
【００５５】
［実施形態２］
上述した実施形態では、ＰＣ２００に記録されている依存プログラムを、オペレーティングシステムのバージョンで動作可能なバージョンに更新するために必要な更新データを、ＰＣ更新データ決定部２０８で決定して要求する方法について説明した。本実施形態では、当該更新するために必要な更新データを、サーバ１００が備える更新データ決定部１０６にて決定してＰＣ２００に送信する方法について説明する。即ち、ＰＣ２００からサーバ１００に対し、動作情報の送信及び決定した更新データの送信の要求を２回に分けて送信する必要がなく、ＰＣ２００は１回の更新データの要求のみで最適な更新データを受信することができる。
【００５６】
＜サーバ１００及びＰＣ２００の構成＞
本実施形態のサーバ１００及びＰＣ２００の機能構成は、上述した実施形態１と略同一であるが、サーバ１００には更新データ決定部１０６が追加され、ＰＣ２００からはＰＣ更新データ決定部２０８が削除された構成となる。
【００５７】
更新データ決定部１０６は、ＰＣ２００に送信する、ＰＣ２００に記録されている依存プログラムを更新するための更新データを決定するブロックである。具体的には更新データ決定部１０６は、ＰＣ２００のオペレーティングシステム及び依存プログラムのバージョンを取得する。そして、更新データ決定部１０６は、ＰＣ２００のオペレーティングシステムのバージョンで動作する依存プログラムのバージョンへの更新データを、現在ＰＣ２００に記録されている依存プログラムのバージョンに応じて決定する。
【００５８】
＜依存プログラム更新処理＞
このような構成をもつ本実施形態のＰＣ２００の依存プログラム更新処理について、図６のフローチャートを用いて具体的な処理を説明する。当該フローチャートに対応する処理は、ＰＣ制御部２０１が、例えばＰＣ記録媒体２０４に記憶されている対応する処理プログラムを読み出し、ＰＣ−ＲＡＭ２０３に展開して実行することにより実現することができる。なお、本依存プログラム更新処理は、例えば当該依存プログラムが起動された際に開始されるものとして説明する。また、本依存プログラム更新処理において、実施形態１の依存プログラム更新処理と同様の処理を行うブロックに付いては、同一の参照番号を付して説明を省略し、本実施形態に特徴的な処理の説明のみに留めるものとする。
【００５９】
Ｓ６０１で、ＰＣ制御部２０１は、ＰＣ通信部２０５を介してサーバ１００に、Ｓ４０１で取得したバージョンを送信するとともに、依存プログラムの更新データを送信させるための要求コマンドを送信する。そしてＳ６０２で、ＰＣ制御部２０１は、ＰＣ通信部２０５を介してサーバ１００からコマンドを受信するまで処理を待機し、コマンドを受信すると処理をＳ６０３に移す。
【００６０】
Ｓ６０３で、ＰＣ制御部２０１は受信したコマンドが、更新データの送信に係るコマンドである場合は処理をＳ４１２に移す。またＰＣ制御部２０１は、当該更新データの送信以外のコマンドである場合は処理をＳ６０４に移し、当該受信したコマンドに応じた処理を行い、本依存プログラム更新処理を完了する。
【００６１】
＜更新データ送信処理＞
一方、サーバ１００での更新データ決定処理について、図７のフローチャートを用いて具体的な処理を説明する。当該フローチャートに対応する処理は、制御部１０１が、例えばＲＯＭ１０２に記憶されている対応する処理プログラムを読み出し、ＰＣ−ＲＡＭ２０３に展開して実行することにより実現することができる。なお、本更新データ送信処理は、例えば通信部１０５においてＰＣ２００からの更新データの要求コマンドを受信した場合に開始されるものとして説明する。
【００６２】
Ｓ７０１で、制御部１０１は、記録媒体１０４に記録されている動作情報に、受信したバージョンに含まれている、ＰＣ２００のオペレーティングシステムのバージョンにおける依存プログラムの動作に関する情報が存在しているかを判断する。即ち、制御部１０１は、当該オペレーティングシステムのバージョンに対する更新データが記録媒体１０４に記録されているか否かを判断する。制御部１０１は、動作情報にＰＣ２００のオペレーティングシステムのバージョンに係る情報が存在している場合は処理をＳ７０３に移し、存在していない場合は処理をＳ７０２に移す。
【００６３】
動作情報にオペレーティングシステムのバージョンに係る情報が存在していない場合、Ｓ７０２で制御部１０１は、ＰＣ２００に対し通信部１０５を介して当該オペレーティングシステムのバージョンに依存プログラムが対応していないこと示すコマンドを送信する。その後制御部１０１は、本更新データ送信処理を完了する。なお、当該対応していないことを示すコマンドをＰＣ２００が受信すると、ＰＣ制御部２０１は表示部２０７に、依存プログラムがオペレーティングシステムのバージョンに対応していないことを示すＧＵＩデータを表示させればよい。
【００６４】
Ｓ７０３で、制御部１０１は、動作情報を参照し、ＰＣ２００に記録されている依存プログラムの更新後のバージョンを決定する。具体的には制御部１０１は、動作情報を参照し、ＰＣ２００のオペレーティングシステムのバージョンで動作する依存プログラムのバージョンのうち、最新のバージョンを更新後のバージョンとして決定する。
【００６５】
なお、本実施形態では、オペレーティングシステムのバージョンで動作する依存プログラムのバージョンのうちの最新のバージョンを、更新後のバージョンとして決定する方法について説明するが、本発明の実施はこれに限らない。即ち、依存プログラムの更新後のバージョンは、ユーザが所望するバージョンであってもよく、例えば本ステップで動作する依存プログラムのバージョンのリストをＰＣ２００に送信し、表示部２０７に表示させてユーザに選択可能としてもよい。
【００６６】
Ｓ７０４で、制御部１０１は、Ｓ７０３で決定された依存プログラムの更新後のバージョンが、ＰＣ２００に記録されている依存プログラムのバージョンと異なるか否かを判断する。制御部１０１は、ＰＣ２００から受信したバージョンを参照し、ＰＣ２００に記録されている依存プログラムのバージョンとＳ７０３で決定された更新後のバージョンが異なる場合は処理をＳ７０６に移し、同一である場合は処理をＳ７０５に移す。
【００６７】
Ｓ７０５で、制御部１０１は本更新データ送信処理において更新を行う必要がないため、依存プログラムの更新が不要であることを示すコマンドを送信し、本更新データ送信処理を完了する。なお、当該更新が不要であることを示すコマンドをＰＣ２００が受信すると、ＰＣ制御部２０１は、表示部２０７に依存プログラムの更新が不要であることを通知するＧＵＩを表示させればよい。
【００６８】
Ｓ７０６で、制御部１０１は、ＰＣ２００に送信する更新データを決定する、更新データ決定処理を実行する。ここで、サーバ１００で実行される当該更新データ決定処理について、図８を参照して詳細に説明する。
【００６９】
（更新データ決定処理（サーバ））
Ｓ８０１で、制御部１０１は、受信したＰＣ２００に記憶されているオペレーティングシステム及び依存プログラムのバージョン、記録媒体１０４に記録されている動作情報、及び更新後のバージョンの情報を更新データ決定部１０６に入力する。そして更新データ決定部１０６は制御部１０１の制御に基づき、動作情報を参照して現在の依存プログラムのバージョンが、ＰＣ２００のオペレーティングシステムのバージョンで動作するバージョンであるか否かを判断する。
【００７０】
即ち、本ステップにおいて、制御部１０１は、現在の依存プログラムのバージョンがＰＣ２００のオペレーティングシステムのバージョンで動作するバージョンであると更新データ決定部１０６により判断された場合は、処理をＳ８０２に移す。また制御部１０１は、現在の依存プログラムのバージョンがＰＣ２００のオペレーティングシステムのバージョンで動作しないバージョンであると更新データ決定部１０６により判断された場合は、処理をＳ８０３に移す。
【００７１】
Ｓ８０２で、更新データ決定部１０６は制御部１０１の制御に基づき、現在の依存プログラムのバージョンから更新後のバージョンまでの各バージョン間について記録媒体１０４に記録されている差分更新データを、全て送信すると決定する。即ち、現在の依存プログラムのバージョンが、ＰＣ２００のオペレーティングシステムのバージョンで動作が補償されるため、当該依存プログラムの更新は、一部のデータを更新する差分更新データのみで行うことができる。
【００７２】
Ｓ８０３で、更新データ決定部１０６は制御部１０１の制御に基づき、更新後のバージョン以下の、ＰＣ２００のオペレーティングシステムのバージョンで動作可能なバージョンのうち、全更新データを提供可能なバージョンが存在するか否かを判断する。具体的には更新データ決定部１０６は動作情報を参照し、更新後のバージョン以下の更新データであって、ＰＣ２００のオペレーティングシステムのバージョンで動作可能なバージョンの全更新データが存在するか否かを判断する。
【００７３】
制御部１０１は、更新後のバージョン以下の、オペレーティングシステムのバージョンで動作可能なバージョンのうち、全更新データを提供可能なバージョンが存在すると更新データ決定部１０６により判断された場合は、処理をＳ８０４に移す。また制御部１０１は、更新後のバージョン以下の、オペレーティングシステムのバージョンで動作可能なバージョンのうち、全更新データを提供可能なバージョンが存在しないと更新データ決定部１０６により判断された場合は、処理をＳ８０５に移す。
【００７４】
Ｓ８０４で、更新データ決定部１０６は制御部１０１の制御により、更新後のバージョン以下の全更新データを提供可能な依存プログラムのバージョンのうち、オペレーティングシステムで動作可能な最新のバージョンの全更新データを送信すると決定する。
【００７５】
本実施形態のようにインターネットを介して更新データを送信する場合は、送信するデータ量を少なくすることで、依存プログラムの更新データの送信に係る時間を短縮することができる。このため、本実施形態ではオペレーティングシステムで動作可能なバージョンのうち、更新後のバージョン以下であって、全更新データを提供可能な最も新しいバージョンの全更新データを少なくとも送信することで、送信に係る時間を短縮する。
【００７６】
なお、更新データ決定部１０６は、更新後のバージョンへの全更新データが存在しない場合は、サーバ１００に送信する更新データとして、上述したように送信する全更新データから更新後のバージョンまでの間の差分更新データも送信するものとする。即ち、更新データ決定部１０６は、ＰＣ２００のオペレーティングシステムのバージョンで動作可能な、少なくとも１つの全更新データを含む、最小のデータ量で更新後のバージョンに更新可能な更新データの組み合わせを送信すると決定する。しかしながら、本発明の実施はこれに限らず、少なくともオペレーティングシステムのバージョンで動作可能な全更新データを送信して更新させることで、依存プログラムが当該オペレーティングシステムで動作しない場合であっても更新可能な効果を奏する。
【００７７】
Ｓ８０５で、制御部１０１は、ＰＣ２００に記録されている依存プログラムを、ＰＣ２００のオペレーティングシステムのバージョンで動作可能なバージョンに更新することができないと判断する。そして制御部１０１は依存プログラムの更新が不可能であることを示すコマンドを、通信部１０５を介してＰＣ２００に送信し、本更新データ決定処理及び更新データ送信処理を完了する。なお、当該更新が不可能であることを示すコマンドをＰＣ２００が受信すると、ＰＣ制御部２０１は、表示部２０７に依存プログラムの更新が不可能であることを通知するＧＵＩを表示させればよい。
【００７８】
このように更新データ決定処理により、サーバ１００に送信する更新データが決定された後、制御部１０１はＳ７０７で、当該決定された更新データを送信することを示すコマンドとともに当該決定された更新データを、通信部１０５を介してＰＣ２００に送信する。
【００７９】
以上説明したように、本実施形態のサーバは、情報処理装置から第１のプログラムを使用して動作する第２のプログラムの更新するための更新データを要求されると次のように処理する。具体的にはサーバは、第１のプログラムのバージョンごとに動作可能な第２のプログラムのバージョンが示された動作情報と、第１及び第２のプログラムのバージョンに基づき、更新後のバージョンを設定する。このときサーバは、情報処理装置に記憶されている第２のプログラムのバージョンが、情報処理装置に記憶されている第１のプログラムで動作可能なバージョンであるか否かにより、当該情報処理装置に対して送信する更新データを決定する。第２のプログラムが第１のプログラムで動作可能なバージョンではない場合、第２のプログラムの全体を、第１のプログラムで動作可能な第２のプログラムのバージョンに更新する全更新データを含む１つ以上の更新データを、送信する更新データとして決定する。また第２のプログラムが第１のプログラムで動作可能なバージョンである場合、全更新データを含まず、第２のプログラムの一部のデータを更新する差分更新データの１つ以上を送信する更新データとして決定する。
【００８０】
このようにすることで、情報処理装置は、第１のプログラムの更新により動作不可能になった、当該第１のプログラムを使用して動作する第２のプログラムを、サーバから受信した適切な更新データを用いて動作可能なバージョンに更新することができる。
【００８１】
なお、上述した実施形態１及び２では、第１のプログラムがオペレーティングシステムである場合について説明したが、本発明の実施がこれに限られないことは容易に理解されよう。即ち、第１のプログラムは、例えばブラウザ等のアプリケーションやライブラリ等、別のプログラムのプラットホームになり得るプログラムであってよく、第２のプログラムが当該第１のプログラムを利用して動作するものであれば本発明は適用可能である。
【００８２】
［変形例］
上述した実施形態１及び２では、更新データ決定処理において、現在の依存プログラムのバージョンがＰＣ２００のオペレーティングシステムのバージョンで動作するバージョンであるか否かにより、更新データを差分更新データのみとするか、あるいは全更新データを含む更新データとするかを判断する（Ｓ５０１、Ｓ８０１）ものとして説明した。しかしながら、更新データの決定方法はこれに限られなくてよい。
【００８３】
上述したように、全更新データは差分更新データに比べてデータ容量が大きくなり、更新データの送受信に時間を要する。このため、更新データは差分更新データのみで構成された方が、総データ量が小さくなり、更新データの送受信に係る時間を短縮することができると考えられる。
【００８４】
本変形例では、更新データが１以上の差分更新データのみで提供可能か否かを判断することにより、提供する更新データを決定する方法について説明する。
【００８５】
＜更新データ決定処理（ＰＣ）＞
本変形例のＰＣ２００の更新データ決定処理について、図９のフローチャートを用いて具体的な処理を説明する。当該フローチャートに対応する処理は、ＰＣ制御部２０１が、例えばＰＣ記録媒体２０４に記憶されている対応する処理プログラムを読み出し、ＰＣ−ＲＡＭ２０３に展開して実行することにより実現することができる。なお、本変形例の更新データ決定処理において、上述した実施形態１と同様の処理を行うステップについては同一の参照番号を付して説明を省略し、本変形例において特徴的なステップの説明に留める。なお、本変形例ではＰＣ２００の更新データ決定処理について説明するが、本変形は実施形態２のサーバ１００の更新データ決定処理においても同様に適用可能であることは容易に想像されよう。
【００８６】
Ｓ９０１で、ＰＣ制御部２０１は、ＰＣ記録媒体２０４に記憶されているオペレーティングシステム及び依存プログラムのバージョン、サーバ１００から受信した動作情報、及び更新後のバージョンの情報をＰＣ更新データ決定部２０８に入力する。そしてＰＣ更新データ決定部２０８はＰＣ制御部２０１の制御に基づき、動作情報を参照して現在の依存プログラムのバージョンから更新後のバージョンまでの更新に必要な全ての差分更新データの各々について、次の判断を行う。ＰＣ更新データ決定部２０８は、各差分更新データによる更新後の依存プログラムのバージョンが、ＰＣ２００のオペレーティングシステムのバージョンで動作するバージョンあるか否かを判断する。そしてＰＣ制御部２０１は、現在の依存プログラムのバージョンから更新後のバージョンまでの更新に必要な差分更新データの全てが、更新後の依存プログラムのバージョンがＰＣ２００のオペレーティングシステムのバージョンで動作するバージョンであるとＰＣ更新データ決定部２０８により判断された場合は処理をＳ５０２に移す。またＰＣ制御部２０１は、現在の依存プログラムのバージョンから更新後のバージョンまでの更新に必要な差分更新データのいずれかが、更新後の依存プログラムのバージョンがＰＣ２００のオペレーティングシステムのバージョンで動作しないバージョンであるとＰＣ更新データ決定部２０８により判断された場合は処理をＳ５０３に移す。
【００８７】
このようにすることで、例えばＰＣ２００のオペレーティングシステムのバージョンで動作する依存プログラムのバージョンが、「１．１〜１．２」及び「１．４〜１．６」のように、動作不可能なバージョンが一時的にあるような場合であっても、更新データを差分更新データのみで構成するか、あるいは全更新データを含める必要があるかを適切に判断して、更新データを決定することができる。
【００８８】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005800685.tif 000002
【図２】
0005800685.tif 000003
【図３】
0005800685.tif 000004
【図４】
0005800685.tif 000005
【図５】
0005800685.tif 000006
【図６】
0005800685.tif 000007
【図７】
0005800685.tif 000008
【図８】
0005800685.tif 000009
【図９】
0005800685.tif 000010