(57)【要約】【課題】複雑なオンライン更新処理を実現する。【解決手段】配信サーバには、それぞれが所定の版数（更新版数３３）へと更新させる為の配信情報ファイル３１を複数有する配信情報パッケージ３０が予め登録されている。各配信ファイル３１は比較順位３２により順位付けされている。任意の装置からその保持プログラムの版数の通知がある毎に、この版数と更新版数３３との一致／不一致や順位に基づいて、適用する配信情報ファイル３１を決定して、これを用いて装置のプログラムを更新させる。更新後の装置から更に現在の版数の通知があることで、新たに適用する配信情報ファイル３１を決定して、これを用いて装置のプログラムを更に更新させる。【選択図】      図３
2010061204.tif 000002
【特許請求の範囲】
【請求項１】
任意のプログラムを保持・実行する複数の処理端末と配信サーバがネットワークに接続され、該配信サーバが各処理端末のプログラムをオンラインで更新させるシステムであって、
前記各処理端末は、自端末が現在保持するプログラムの版数情報を前記配信サーバに通知する版数通知手段を備え、
前記配信サーバは、
それぞれに順位が与えられた複数の配信情報ファイルを有し、各配信情報ファイルには前記処理端末のプログラムを所定の更新版数へと更新させる為のプログラムモジュールが格納されており、最終的な更新版数へと更新させる為のプログラムモジュールが格納されている配信情報ファイルの前記順位が最も高い順位となっている配信情報記憶手段と、
前記版数通知手段からの版数情報を受信すると、その更新版数が該版数情報と一致する配信情報ファイルがある場合には該配信情報ファイルより前記順位が１つ高い配信情報ファイルを適用し、その更新版数が該版数情報と一致する配信情報ファイルが無い場合には前記順位が最も低い配信情報ファイルを適用して、該適用する配信情報ファイルのプログラムモジュールを前記版数情報通知元の処理端末へ配信するプログラムモジュール選択・配信手段とを有し、
前記各処理端末は、該配信されたプログラムモジュールを用いて自端末のプログラムを更新する更新手段を更に有し、
前記版数通知手段は、該更新手段によるプログラム更新後、該更新後のプログラムの版数情報を前記配信サーバに通知することを特徴とするプログラム配信システム。
【請求項２】
前記配信情報ファイルとして、前記プログラムモジュールが無く削除命令が格納された、前記更新版数が“プログラム無し”となっている配信情報ファイルも存在し、プログラムモジュール選択・配信手段は、この配信情報ファイルが適用された場合には前記削除命令を前記処理端末へ配信し、
該削除命令を受信した処理端末は、自端末の保持プログラムを削除すると共に前記版数通知手段によって前記版数情報として“プログラム無し”を通知することを特徴とする請求項１記載のプログラム配信システム。
【請求項３】
前記各配信情報ファイルには、それぞれが所定の版数に対応して該版数から前記更新版数へとプログラム更新させる為の複数のプログラムモジュールが格納されており、
前記プログラムモジュール選択・配信手段は、前記適用する配信情報ファイルの複数のプログラムモジュールのうち、前記版数通知手段から通知された版数に対応するプログラムモジュールを選択して処理端末へ配信することを特徴とする請求項１または２記載のプログラム配信システム。
【請求項４】
前記各プログラムモジュールに対応付けて処理種別が登録されており、前記プログラムモジュール選択・配信手段は、前記プログラムモジュール配信の際に該プログラムモジュールに対応する処理種別も送信し、
前記処理端末は、前記配信されたプログラムモジュールを用いた自端末のプログラム更新処理を、受信した処理種別に応じて行うことを特徴とする請求項１〜３の何れかに記載のプログラム配信システム。
【請求項５】
前記処理端末は、前記処理種別に応じて、前記配信されたプログラムモジュールを自端末の保持プログラムに対する差分としてマージする処理、あるいは前記配信されたプログラムモジュールを新規登録プログラムとして自端末の保持プログラムと置き換える処理を行うことを特徴とする請求項４記載のプログラム配信システム。
【請求項６】
任意のプログラムを保持・実行する複数の処理端末と配信サーバがネットワークに接続され、該配信サーバが各処理端末のプログラムをオンラインで更新させるシステムにおける前記配信サーバであって、
それぞれに順位が与えられた複数の配信情報ファイルを有し、各配信情報ファイルには前記処理端末のプログラムを所定の更新版数へと更新させる為のプログラムモジュールが格納されており、最終的な更新版数へと更新させる為のプログラムモジュールが格納されている配信情報ファイルの前記順位が最も高い順位となっている配信情報記憶手段と、
任意の前記処理端末からその端末が保持するプログラムの版数情報が通知されてくると、その更新版数が該版数情報と一致する配信情報ファイルがある場合には該配信情報ファイルより前記順位が１つ高い配信情報ファイルを適用し、その更新版数が該版数情報と一致する配信情報ファイルが無い場合には前記順位が最も低い配信情報ファイルを適用して、該適用する配信情報ファイルのプログラムモジュールを前記版数情報通知元の処理端末へ配信するプログラムモジュール選択・配信手段と、
を有することを特徴とする配信サーバ。
【請求項７】
任意のプログラムを保持・実行する複数の処理端末と配信サーバがネットワークに接続され、該配信サーバが各処理端末のプログラムをオンラインで更新させるシステムにおける前記配信サーバのコンピュータを、
それぞれに順位が与えられた複数の配信情報ファイルを有し、各配信情報ファイルには前記処理端末のプログラムを所定の更新版数へと更新させる為のプログラムモジュールが格納されており、最終的な更新版数へと更新させる為のプログラムモジュールが格納されている配信情報ファイルの前記順位が最も高い順位となっている配信情報記憶手段と、
任意の前記処理端末からその端末が保持するプログラムの版数情報が通知されてくると、その更新版数が該版数情報と一致する配信情報ファイルがある場合には該配信情報ファイルより前記順位が１つ高い配信情報ファイルを適用し、その更新版数が該版数情報と一致する配信情報ファイルが無い場合には前記順位が最も低い配信情報ファイルを適用して、該適用する配信情報ファイルのプログラムモジュールを前記版数情報通知元の処理端末へ配信するプログラムモジュール選択・配信手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク接続されている装置のプログラムの更新をオンラインで行う場合における、プログラムモジュールの配信、更新方法に関するものである。
【背景技術】
【０００２】
ネットワークに接続された装置のプログラムをオンラインで更新する手法としては、例えば特許文献１，２等に記載の方法が知られている。
これらの従来手法では、配信元サーバ（集中管理センタ等）は、配信対象の装置から通知される当該装置のプログラムの各プログラム部品毎の版数と、自己が管理する最新の各プログラムの各プログラム部品毎の版数とを比較して一致／不一致を判定する。そして、版数が不一致となるプログラム部品のみを配信する事で、更新の自動化ならびに更新時間やネットワーク負荷の低減を実現している。
【特許文献１】特開２００６−１９０１７９号公報
【特許文献２】特開２００６−９２２７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、プログラム構成内容が複雑化の一途をたどる近年、装置に登録されているプログラムと、最新のプログラムとの差分を配信するだけでは、正しく更新できない場面が多々出てきている。
【０００４】
例えば、ある版数にプログラムを更新する場面において、
最初に、プログラムの基本部であるメジャー版数の更新を行ってから、パッチや修正モジュール等の様なマイナー版数の更新を行う必要がある場合や、
大掛かりなプログラム変更を行うために、既存のプログラムを全て削除してから、最新のプログラムを新規登録しなければならない場合、
さらには、装置が保有するメモリリソース等の都合から、一度に全ての更新プログラムを受け入れる事が困難であり、複数回に分けて配信しなければならない場合など、
その必要性はさまざまである。
【０００５】
例えばこれらは、
一般的なコンピュータ上で動作する、OSやアプリケーションソフトウェア等の場合においては、予め複数のプログラム( インストールメディアやダウンロードモジュール等)を準備し、定められた手順に沿って更新を行う等により、対応する事が可能であるが、ネットワーク接続された複数台の装置に対して、同様の手段を用いる事は、極めて困難である。
【０００６】
本発明の課題は、任意のプログラムを保持・実行する複数の処理端末と配信サーバがネットワークに接続され、該配信サーバが各処理端末のプログラムをオンラインで更新させるシステムに関して、各処理端末のプログラムを所定の版数へと更新させたい場合に、一旦何らかの途中状態へと更新させる必要がある場合でも、段階的にその都度必要なプログラムモジュールを配信して更新させて最終的に所定の版数へと更新させることができるプログラム配信システム、その配信サーバ、プログラム等を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のプログラム配信システムは、任意のプログラムを保持・実行する複数の処理端末と配信サーバがネットワークに接続され、該配信サーバが各処理端末のプログラムをオンラインで更新させるシステムであって、前記各処理端末は、自端末が現在保持するプログラムの版数情報を前記配信サーバに通知する版数通知手段を備え、前記配信サーバは、それぞれに順位が与えられた複数の配信情報ファイルを有し、各配信情報ファイルには前記処理端末のプログラムを所定の更新版数へと更新させる為のプログラムモジュールが格納されており、最終的な更新版数へと更新させる為のプログラムモジュールが格納されている配信情報ファイルの前記順位が最も高い順位となっている配信情報記憶手段と、前記版数通知手段からの版数情報を受信すると、その更新版数が該版数情報と一致する配信情報ファイルがある場合には該配信情報ファイルより前記順位が１つ高い配信情報ファイルを適用し、その更新版数が該版数情報と一致する配信情報ファイルが無い場合には前記順位が最も低い配信情報ファイルを適用して、該適用する配信情報ファイルのプログラムモジュールを前記版数情報通知元の処理端末へ配信するプログラムモジュール選択・配信手段とを有し、前記各処理端末は、該配信されたプログラムモジュールを用いて自端末のプログラムを更新する更新手段を更に有し、前記版数通知手段は、該更新手段によるプログラム更新後、該更新後のプログラムの版数情報を前記配信サーバに通知する。
【０００８】
例えば、各処理端末のプログラムを版数ａに更新させたいが、版数ａへの更新は版数ｂからしか行えないような場合、版数ｂから版数ａへ更新させる為のプログラムモジュールが格納されている配信情報ファイル（更新版数が版数ａ）を、順位が最も高いものとし、任意の版数から版数ｂへ更新させる為のプログラムモジュールが格納されている配信情報ファイル（更新版数が版数ｂ）を先に適用させて一旦版数ｂへ更新させる。これより、処理端末から今度は版数ｂが通知されてくるので、今度は順位が最も高い配信情報ファイルが適用されて、版数ａへ更新させることができる。
【０００９】
単に複数回に分けて配信するだけで済むような単純なケースではなく、何らかの条件を満たしつつ複数回配信する必要がある場合でも、その都度適切な配信情報ファイルを適用する制御を行いつつ段階的に複数回の配信を行うことで対応可能となる。
【００１０】
また、例えば、前記配信情報ファイルとして、前記プログラムモジュールが無く削除命令が格納された、前記更新版数が“プログラム無し”となっている配信情報ファイルも存在し、プログラムモジュール選択・配信手段は、この配信情報ファイルが適用された場合には前記削除命令を前記処理端末へ配信し、該削除命令を受信した処理端末は、自端末の保持プログラムを削除すると共に前記版数通知手段によって前記版数情報として“プログラム無し”を通知する。
【００１１】
所定の版数に更新させる為には処理端末のプログラムを全削除しておく必要がある場合にも対応可能となる。
また、例えば、前記各配信情報ファイルには、それぞれが所定の版数に対応して該版数から前記更新版数へとプログラム更新させる為の複数のプログラムモジュールが格納されており、前記プログラムモジュール選択・配信手段は、前記適用する配信情報ファイルの複数のプログラムモジュールのうち、前記版数通知手段から通知された版数に対応するプログラムモジュールを選択して処理端末へ配信するようにしてもよい。
【発明の効果】
【００１２】
本発明のプログラム配信システム、その配信サーバ、プログラム等によれば、任意のプログラムを保持・実行する複数の処理端末と配信サーバがネットワークに接続され、該配信サーバが各処理端末のプログラムをオンラインで更新させるシステムに関して、各処理端末のプログラムを所定の版数へと更新させたい場合に、一旦何らかの途中状態へと更新させる必要がある場合でも、段階的にその都度必要なプログラムモジュールを配信して更新させて最終的に所定の版数へと更新させることができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例のプログラム配信システム全体の概略構成図である。
図示のプログラム配信システムは、何らかのコンピュータ処理端末である複数の装置２０と、これら各装置２０に対してネットワーク１を介してプログラム等を配信する配信サーバ１０とが、ネットワーク１に接続された構成となっている。
【００１４】
図２は、上記図１に示した配信サーバ１０、装置２０の構成・機能ブロック図である。
まず、装置２０は、通信部２１、プログラムメモリ２２、版数通知部２３、配信情報処理部２４等の各種構成／機能部を有する。
【００１５】
通信部２１はネットワーク１に接続しており、通信部２１を介して配信サーバ１０との通信を行う。プログラムメモリ２２には任意のプログラムが格納されている。装置２０は、例えば定期的に配信サーバ１０に対して配信要求を送るが、その際に、版数通知部２３は、プログラムメモリ２２に格納されたプログラムの版数（バージョン情報等）を、通信部２１を介して、配信サーバ１０へ通知する。
【００１６】
上記要求に対して配信サーバ１０が送信してくる配信情報（プログラムモジュールや処理種別等）は、通信部２１を介して配信情報処理部２４が受信する。そして、配信情報処理部２４は、この配信情報に基いて、プログラムメモリ２２に格納されている既存プログラムに対する更新や削除、追加等の各種処理を実行する。
【００１７】
配信サーバ１０は、通信部１１、配信情報記憶装置１２、版数比較部１３、配信情報送信部１４、配信情報登録部１５等の各種構成／機能部を有する。
配信情報記憶装置１２には、配信情報パッケージ（プログラムモジュール群等）が格納されている。この配信情報パッケージの詳細については、後に図３を参照して説明する。登録者等は、予め作成した任意の配信情報パッケージを、配信情報登録部１５を介して配信情報記憶装置１２に格納しておく。
【００１８】
任意の装置２０からの配信要求を受信すると、これに伴って上記版数通知部２３から通知される当該要求元の装置２０が現在保持するプログラムの版数情報に基づいて、版数比較部１３が、上記配信情報パッケージ３０に含まれる複数の配信情報のなかから、どの配信情報を配信するべきかを判定・決定する。そして、配信情報送信部１４は、版数比較部１３によって決定された配信情報を、通信部１１を介して要求元の装置２０へ配信する。
【００１９】
上記版数比較部１３は、以下に説明する図３に示す配信情報パッケージ３０において、まず複数の配信情報ファイル３１のなかから適用すべき配信情報ファイル３１を判定し、更にこの判定した配信情報ファイル３１中の複数の個別情報４０（各配信情報）の中から該当する個別情報４０を判定し、この判定した個別情報４０を上記要求元の装置２０へ配信すべき配信情報として決定する。
【００２０】
配信サーバ１０、装置２０のハードウェア構成は、特に図示しないが、配信サーバ１０は汎用コンピュータの構成でよく、例えばＣＰＵの演算プロセッサ、ハードディスク等の記憶装置、メモリ、キーボード等の入力装置、ディスプレイ、通信インタフェース等を有している。また、ハードディスク等の記憶装置は、上記配信情報記憶装置１２として機能する以外にも、上記版数比較部１３、配信情報送信部１４、配信情報登録部１５等の各種機能部の機能を実現させる為の所定のアプリケーションプログラムが記憶されているものである。そして、上記ＣＰＵは、このアプリケーションプログラムを読出し・実行することにより、上記版数比較部１３、配信情報送信部１４、配信情報登録部１５等の各種機能部の機能を実現する。特にＣＰＵは、所定のアプリケーションプログラムを読出し・実行することにより、後述する図４の処理を実現するものである。
【００２１】
また、登録者等は、上記配信情報登録部１５による配信情報の登録作業を行う際には、上記ディスプレイに表示される不図示の登録画面に従って上記キーボード等を操作することになる。
【００２２】
また、装置２０は、例えばＩＣカード・リーダ／ライタやＡＴＭや自動販売機等の何らかの特定の処理を実行するコンピュータ処理端末であり、例えばＣＰＵ／ＭＰＵ、メモリ、通信インタフェース等を有している。このメモリとしては、上記プログラムメモリ２２以外に、上記版数通知部２３、配信情報処理部２４等の各種機能部の機能を実現させる為の所定のアプリケーションプログラムを記憶するメモリがある。上記ＣＰＵ／ＭＰＵは、この所定のアプリケーションプログラムを読出し・実行することにより、上記版数通知部２３、配信情報処理部２４等の各種機能部の機能を実現する。すなわち、自己が現在保持するプログラムの版数を配信サーバ１０へ通知する機能や（これは後述するように配信不要通知を受けるまで繰り返す）、配信サーバ１０から配信される配信情報に基づいて自己のプログラムを更新（バージョンアップや削除等）する処理機能を実現する。
【００２３】
ここで、図３を参照して、本例における配信情報について説明しておく。
図３は、本例の配信情報のデータ構成図である。
本実施例の場合、ある版数のプログラムを任意の版数に更新するために必要な情報を１個の配信情報（ここでは図示の「個別情報」４０という）とし、同じ版数に更新するための複数個の個別情報４０を１つの配信情報ファイル３１にまとめている。
【００２４】
例えば、版数をVER2.0に更新する為の配信情報ファイル３１には、
VER1.0→VER2.0の更新プログラム
VER1.1→VER2.0の更新プログラム
VER1.2→VER2.0の更新プログラム
・・・等をそれぞれ１個の配信情報（個別情報４０）とし、これら全体を１個の配信情報ファイル３１にまとめている。
【００２５】
また複数回の配信が必要な場合には、配信情報ファイル３１をそれぞれの配信毎に作成して１個の配信情報パッケージ３０としてまとめ、これを配信情報記憶装置１２に登録しておく。
【００２６】
例えば一例としては、上記の“版数をVER2.0に更新する為の配信情報ファイル３１”に加えて更に“版数をVER2.0からVER3.0に更新する為の配信情報ファイル３１”を作成して、これらを１個の配信情報パッケージ３０としてまとめるものである。これは、最終的にはVER.2.1に更新させる為の配信情報パッケージ３０である。これは、例えば「VER2.0以前のバージョン（VER1.1等）からVER3.0に更新することは出来ず、それ故に一旦VER2.0に更新させる必要がある場合」等に特に有効なものとなる。これについては、後に具体例を示して詳しく説明する。
【００２７】
ここで、配信情報ファイル３１のデータ構成について説明する。
図３に示すように、１つの配信情報パッケージ３０には基本的に複数の配信情報ファイル３１が含まれており、各配信情報ファイル３１は、共通ヘッダ部と各個別情報４０（図示の例では個別情報ａ〜個別情報ｎ）より成る。共通ヘッダ部には、比較順位３２と更新版数３３が定義されている。
【００２８】
比較順位３２は、複数個ある配信情報ファイル３１それぞれに対して、一意の値が定義される。例えば、最後に適用すべき配信情報ファイル３１に対して”01”を与え、以降順番にインクリメントした値を定義する。尚、比較順位３２”01”は、最も順位が高いものというものとする。これより、比較順位３２の値が最も大きいものを、最も順位が低いものというものとする。また、尚、上記最後に適用すべき配信情報ファイル３１とは、最終的に更新させるべき版数へと更新させる為の配信情報ファイル３１であり、本例ではVER.2.1に更新させる為のものとなる。
【００２９】
また、更新版数３３は、その配信情報ファイル３１に格納されている配信情報（個別情報４０）によって更新されるプログラム版数を示している。上記の通り、１つの配信情報ファイル３１に格納されている全ての個別情報４０は、同じ版数のプログラムへとバージョンアップ等させる為のプログラムモジュール等であり、例えば上記一例（VER1.0→VER2.0、VER1.1→VER2.0、VER1.2→VER2.0）の場合には更新版数３３は“２．０”となる。
【００３０】
配信情報ファイル３１に格納されている各個別情報４０は、適用版数４１、処理種別４２、プログラムモジュール４３等から成る。適用版数４１は、当該個別情報４０がどの版数のプログラムを上記更新版数３３のプログラムへと更新させる為の情報であるのかを示すものである。例えば上記一例では、個別情報４０は３つ存在し、これら各個別情報４０の適用版数４１は、VER1.0、VER1.1、VER1.2の何れかとなる。そして、要求元の装置２０が通知してきた版数が例えば“VER1.1”であったならば、適用版数４１が“VER1.1”の個別情報を、要求元の装置２０へ配信することになる。
【００３１】
プログラムモジュール４３は、その版数が適用版数４１であるプログラムを更新版数３３のプログラムへと更新させる為のプログラム部品等である。例えば上記一例では、要求元の装置２０が現在保持するVER1.1のプログラムをVER2.0のプログラムへとバージョンアップさせる為のプログラム部品（例えば後述する“差分”）となる。
【００３２】
処理種別４２は、例えば“追加”、“新規”、“削除”の何れかである。すなわち、プログラムモジュール４３が適用版数４１のプログラムに対する追加(差分)なのか新規(全件)なのかを示す、あるいは既存プログラムを削除させる指示を示す処理種別が定義される。尚、後述する一例では、処理種別４２が“削除”の場合にはプログラムモジュール４３は無いものとするが（削除を指示するだけである）、この例に限るものではなく、例えば削除指示と共にプログラム全体（全件）を配信して新規登録させるようにしてもよい。
【００３３】
ここで、各配信情報ファイル３１毎の個別情報４０は、その“更新版数”３３に更新するための対象版数の個数分、定義可能であるが（例えば上記一例では、“更新版数”＝２．０に対して、VER1.0、VER1.1、VER1.2対応の３つの個別情報４０が定義される）、この例に限るものではない。
【００３４】
例えば、VER1.X→VER2.0の更新を行う場合（Ｘ；任意の整数）、比較的変更内容が少ない版数のみを追加(差分)で定義し、ある版数以前のものは、全て新規(全件)と定義する事もできる。例えば以下に一例を示す。この例の場合、例えばver.1.0〜ver.１．９の１０の版数に対して、４つの個別情報４０が定義される。
例)    適用版数41    処理種別42    プログラムモジュール43の内容
VER1.9         追加        VER2.0とVER1.9の差分
VER1.8         追加        VER2.0とVER1.8の差分
VER1.7         追加        VER2.0とVER1.7の差分
VER1.*         新規        VER2.0の内容全部( 全件)
この例の場合、VER1.6以前の版数のプログラムを保持している装置２０に対しては、全件を“新規”登録として処理される。
【００３５】
尚、処理種別４２が“追加”の場合、上記の通り更新版数３３のプログラムと適用版数４１のプログラムとの差分のみが、要求元の装置２０へ配信されることになるので、配信するプログラムの容量を必要最小限度に留められる、という効果も得られる。
【００３６】
図４は、配信サーバ１０の版数比較部１３の処理フローチャート図である。これは、比較順位３２と更新版数３３を用いた配信順序の判定方法を示すものである。
図示の処理は、任意の装置２０が上記版数通知部２３によって自身のプログラム版数を通知してきたら開始される。
【００３７】
そして、概略的には以下に説明する処理を実行する。
すなわち、配信情報パッケージ３０内に登録された複数個の配信情報ファイル３１に対して、比較順位３２が示す順位に従って、最も順位が高いものから順番に、その更新版数３３と装置２０が通知してきた版数との比較を行って一致するものを探索する。そして、一致した配信情報ファイル３１より順位が１つ高い配信情報ファイル３１を適用する。版数一致するファイル３１が、最も順位が高いファイルであった場合には、配信不要通知を装置２０へ通知する。もし、版数一致するファイル３１が存在しない場合には、最も順位が低い配信情報ファイル３１を適用する。そして、適用した配信情報ファイル３１を用いて、装置２０に対するプログラムモジュール配信等の処理を行う。上記配信不要通知を送信しない限り、配信後に再び装置２０が自己のプログラム版数を通知してくるので、再び図４の処理を行う。これを繰り返すことで、何らかの途中状態を経たうえで最終的には上記最後に適用すべき配信情報ファイル３１が適用されて、最終的に所定の版数（本例ではVER.2.1）へと更新させることができる。
【００３８】
以下、更に詳細に図４の処理について説明する。
上記要求元の装置２０からの自己のプログラム版数の通知を受けると、まず、配信情報パッケージ３０内に登録された複数個の配信情報ファイル３１のうち、最後に適用すべき配信情報ファイル３１（上記の一例では比較順位３２が一番小さい値(“01”)すなわち最も順位が高いもの）を参照して、その更新版数３３と、装置２０が通知してきた版数との比較を行って、一致／不一致を判定する（ステップＳ１１）。ここでもし版数が一致した場合（ステップＳ１１，ＹＥＳ）、その装置２０はプログラム更新が全て完了していると判断し、配信不要通知を装置２０へ送信して（ステップＳ１２）、本処理を終了する。
【００３９】
一方、版数不一致の場合には（ステップＳ１１，ＮＯ）、比較順位３２が二番目に小さい値(“02”；すなわち２番目に順位が高い)の配信情報ファイル３１を参照して、その更新版数３３と、装置２０が通知してきた版数との比較を行い、一致／不一致を判定する（ステップＳ１３）。
【００４０】
版数が一致した場合には(ステップＳ１３、ＹＥＳ)、その装置２０は比較順位=”02”の配信情報によるプログラム更新までは完了しているが、それより１つ順位が高い比較順位=“01”の配信情報によるプログラム更新は完了していないと判断し（ここでは、最も最後に適用すべき配信情報ファイル３１のみが未配信であることになる）、比較順位=“01”の配信情報ファイル３１を適用するものと判定する。そして、当該適用するファイル３１において該当する個別情報４０を選択して配信する為の処理を行う。
【００４１】
すなわち、装置２０が通知してきた版数と、適用するファイル３１（ここでは比較順位=“01”の配信情報ファイル３１）内の各個別情報４０の適用版数４１とを比較して、版数一致する個別情報４０を配信すべきものと決定する。これより、配信情報送信部１４によって、当該決定された個別情報４０が装置２０に配信されることになる。図示の例では、例えば、装置２０が通知してきた版数が、個別情報ａの適用版数４１と一致する場合には（ステップＳ２１，ＹＥＳ）個別情報ａを配信させ（ステップＳ２２）、個別情報ｂの適用版数４１と一致する場合には（ステップＳ２３，ＹＥＳ）個別情報ｂを配信させる（ステップＳ２４）等することになる。尚、個別情報ｂとは、特に図示していないが例えば図３に示す個別情報ａの次に格納されている個別情報４０である。
【００４２】
版数が不一致の場合には(ステップＳ１３、ＮＯ)、更に、比較順位=“03”以降の配信情報ファイル３１について上記と同様の処理を行う。すなわち、比較順位を＋１インクリメントしながら、その更新版数３３が装置２０が通知してきた版数と一致するか否かを判定する。そして、一致すると判定された配信情報ファイル３１の１つ上の順位の配信情報ファイル３１を適用して、当該適用するファイル３１内の個別情報４０のうち該当するものを装置２０へ配信させる。
【００４３】
但し、最後まで一致と判定されなかった場合（更新版数３３が通知版数と一致する配信情報ファイル３１が１つも無い場合）、すなわち比較順位３２が最も大きい値（図示の例では“ｎ”；換言すれば順位が最下位）の配信情報ファイル３１に関しても版数不一致となった場合には（ステップＳ１５，ＮＯ）、この比較順位＝“ｎ”の配信情報ファイル３１を適用して、当該ファイル３１内の個別情報４０のうち該当するものを装置２０へ配信させる（ステップＳ３２）。尚、ステップＳ１５の判定が“一致”（ＹＥＳ）である場合には、１つ上の順位である比較順位＝“ｎ−１”の配信情報ファイル３１を適用して、当該適用ファイル３１内の個別情報４０のうち該当するものを装置２０へ配信させる（ステップＳ３１）。
【００４４】
一方、各装置２０は、配信された個別情報４０を用いて自己のプログラムを更新する。そして、更新完了後、版数通知部２３が再び版数を配信サーバ１０へ通知する。この版数は、更新後の版数となる。この版数通知は、ステップＳ１２による配信不要通知を受信するまで、個別情報４０が配信されて更新が行われる毎に実行する。ステップＳ１２による配信不要通知を受信したら、更新処理は全て完了したものと判定する。よって、その後は版数通知は行わない。
【００４５】
上記図４の処理に関して、以下、図５、図６に示す２つの具体例を挙げて説明する。
まず、図５に示す具体例１について説明する。
まず、図５の例における各バージョン間の関係（遷移条件等）について図５（ａ）に示す。
【００４６】
図５（ａ）に示すように、この例では、VER2.1への更新は、VER2.0からしか行えない。これは、図示の例では、VER2.1とVER2.0との差分をVER2.0へ“追加”する形で、VER2.1へのバージョンアップが行われる。よって、VER2.0以前のバージョン（ここでは、VER1.0のみとするが、この例に限らず、更にVER1.1等があってもよい）のプログラムを保持している状態、あるいはプログラム未登録状態の装置２０は、これらの状態から直接VER2.1へバージョンアップすることは出来ない。
【００４７】
この為、例えばVER1.0状態の装置２０に対しては、まず、VER2.0とVER1.0との差分を配信してVER.10に追加（マージ）させる形でVER2.0へと更新させたうえで、上記のようにVER2.1へのバージョンアップを行う必要がある。また、プログラム未登録状態である装置２０に対しては、まず、VER2.0プログラム（全件）を配信して“新規”登録させたうえで、上記のようにVER2.1へのバージョンアップを行う必要がある。上記図４の処理を実行することでこの様な処理を実現させる為の配信情報パッケージ３０の設定内容を、図５（ｂ）に示す。
【００４８】
図５（ｂ）に示すように、上記処理を実現させる為の配信情報ファイル３１は、以下の2つが定義される
配信情報ファイル31-1  ；  「VER2.1 ← VER2.0」(追加)
配信情報ファイル31-2  ；  「VER2.0 ← VER1.0」(追加)、および「VER2.0 ←プログラム無し」( 新規)  
すなわち、図５（ｂ）に示すように、まず、配信情報ファイル31-1は最終的なバージョン（最新バージョン等）であるVER2.1へ更新させる為のプログラムモジュールファイルであるので、その比較順位３２は“01”であり、更新版数３３はVER2.1となっている。この例ではファイル３１は２つなので、配信情報ファイル31-2の比較順位は“02”となる。また、上述したことから、配信情報ファイル31-2は、VER2.0へ更新させる為のプログラムモジュールファイルであるので、その更新版数３３はVER2.0となっている。
【００４９】
また、上述したことから、配信情報ファイル31-1の個別情報４０は、その適用版数４１がVER2.0である１つのみであり、その処理種別４２は“追加”であり、プログラムモジュール４３としてVER2.1とVER2.0との差分としてのプログラムモジュール１が格納されている。
【００５０】
同様に、上述したことから、配信情報ファイル31-2の個別情報４０は、その適用版数４１がVER1.0と“VER−”の２つある（尚、“VER−”はプログラム無しを意味する）。VER1.0の個別情報４０は、その処理種別４２は“追加”であり、プログラムモジュール４３としてVER1.0とVER2.0との差分としてのプログラムモジュール２が格納されている。“VER−”の個別情報４０は、その処理種別４２は“新規”であり、プログラムモジュール４３としてVER2.0のプログラム全部（全件）であるプログラムモジュール３が格納されている。
【００５１】
上述した設定内容の配信情報パッケージ３０を用いて図４の処理を実行すると、以下に説明するようになる。尚、図４には示していないが、ステップＳ１１、Ｓ１３、Ｓ１４等の更新版数３３との一致／不一致判定処理の際には、その比較順位３２が最大値ｎ（この例では“２”となる）であるか否かを判定し、最大値である場合にはステップＳ１５の処理を適用する。図５に示す例では、比較順位“02”が最大値であるので、ステップＳ１５の処理を適用することになり、もし“版数不一致”となった場合には、比較順位“02”のファイルすなわち配信情報ファイル31-2を適用することになる。
【００５２】
まず、概略的には、図４の処理は、要求元の装置２０から通知された版数に応じて以下の（１）〜（３）の何れかの処理を行うことになり、要求元の装置２０の初期状況（保持するプログラムの版数や保持プログラムの有無）が何であれ、最終的にはVER2.1に更新されることになる。
（１）“プログラム無し”を通知して来た場合は、配信情報ファイル31-2の“新規（全件）”のプログラムモジュール３等（これを含む配信情報４０；以下同様）を配信。
（２）VER1.0を通知して来た場合は、配信情報ファイル31-2の“追加（差分）”のプログラムモジュール２等を配信。
（３）VER2.0を通知して来た場合は、配信情報ファイル31-1の“追加（差分）” のプログラムモジュール１等を配信。
【００５３】
以下、更に詳細に説明する。
まず、最初の一例として、既にVER2.0のプログラムを保持している装置２０からの配信要求があった場合には、版数通知部２３によってVER2.0が通知されてくるので、ステップＳ１１の処理では比較順位３２が“01”である配信情報ファイル31-1の更新版数３２＝“VER2.1”と比較することになり“不一致”と判定されることになる（ステップＳ１１，ＮＯ）。これにより、ステップＳ１３の処理に移行するが、これは上記の通りｎ＝２としてステップＳ１５の処理を実行することになる。よって、もし“不一致”と判定された場合には、比較順位３２が“02”である配信情報ファイル31-2が適用されることになるが、ここでは上記の通り通知された版数はVER2.0であり、比較順位３２が“02”である配信情報ファイル31-2の更新版数３２＝“VER2.0”と比較することにより“一致”と判定されるので、１つ上の順位の（比較順位“01”の）ファイル３１である配信情報ファイル31-1が適用されることになる。
【００５４】
そして、配信情報ファイル31-1の個別情報４０は図示の通り１つであり、この個別情報４０の適用版数４１はVER2.0であるので、通知された版数VER2.0と一致することから、この個別情報４０が配信すべきものと決定されて配信されることになる。
【００５５】
これより、要求元の装置２０は、配信された個別情報４０を用いて、そのプログラムモジュール１を自己が保持するプログラムに追加する処理（統合する処理；マージ処理）を行うことで、自己のプログラムをVER2.1へと更新する。そして、更新完了したら、再び、版数通知部２３が自己のプログラムの版数を配信サーバ１０へ通知するが、このときにはVER2.1が通知されることになる。よって、この通知を受けた配信サーバ１０の版数比較部１３が、再び図４の処理を実行すると、ステップＳ１１の判定がＹＥＳとなることから、配信不要通知を送信することになり、これよりプログラム更新処理は終了する。
【００５６】
また、例えば、既にVER1.0のプログラムを保持している装置２０からの配信要求があった場合には、版数通知部２３によってVER1.0が通知されてくるので、ステップＳ１１の判定結果は不一致（ＮＯ）となり、続くステップＳ１５の処理（ｎ＝２とする）の判定結果も不一致（ＮＯ）となるので、上記ステップＳ３２の処理を実行することになり、比較順位３２が“02”である配信情報ファイル31-2が適用されることになる。そして、配信情報ファイル31-2内の複数の個別情報４０のうち、その適用版数４１がVER1.0の個別情報４０が配信されることになる。これより、要求元の装置２０では、自己の既存のプログラム（VER1.0）に、配信された個別情報４０のプログラムモジュール２を追加することで、自己のプログラムをVER2.0へと更新する。
【００５７】
更新完了後、版数通知部２３によって今度はVER2.0が通知されることになり、配信サーバ１０は再び図４の処理を実行することになるが、VER2.0通知時の処理については既に上述してあるので、ここでは説明しない。その後、版数通知部２３によって今度はVER2.1が通知されることになり、配信サーバ１０がステップＳ１２の配信不要通知を返信することで、一連のプログラム更新処理は完了する。
【００５８】
また、例えば、プログラム未登録の装置２０からの配信要求があった場合には、上記VER1.0の場合と同様にして配信情報ファイル31-2が適用されることになる。そして、配信情報ファイル31-2内の複数の個別情報４０のうち、その適用版数４１が“VER−”の個別情報４０が配信されることになる。これより、要求元の装置２０では、配信された個別情報４０のプログラムモジュール３を新規登録することにより、VER2.0のプログラムを保持している状態となる。その後の処理については、上記VER1.0の場合と同様であるので、説明は省略する。
【００５９】
図５（ｃ）に、プログラム未登録の装置２０を最新のVER2.1のプログラム保持状態へ更新させる場合の装置２０−配信サーバ１０間の通信シーケンスを示す。これは、既に説明した通りであるが、図示のように、まず、プログラム未登録の装置２０は、プログラム無し（“VER−”）の通知を伴う配信要求を配信サーバ１０に送信し、これに応じて配信サーバ１０はプログラムモジュール３を含む個別情報４０を配信する。これより、装置２０は、プログラムモジュール３を新規登録することで、VER2.0のプログラムを保持している状態となる。
【００６０】
続いて、装置２０は、今度は版数VER2.0の通知を伴う配信要求を配信サーバ１０に送信し、これに応じて配信サーバ１０は今度はプログラムモジュール１を含む個別情報４０を配信する。これより、装置２０は、プログラムモジュール１を既存プログラム（VER2.0）に追加（マージ）する処理を行うことで、自己のプログラムをVER2.1へと更新することになり、VER2.1のプログラムを保持している状態となる。
【００６１】
そして更に、装置２０は、今度は版数VER2.1の通知を伴う配信要求を配信サーバ１０に送信し、これに応じて配信サーバ１０は今度は配信不要通知を返信し、これによって一連のプログラム更新処理は終了する。
【００６２】
以上説明した例のように、複数の装置２０に対してネットワークを介してオンラインでプログラム更新するシステムにおいて、配信サーバ１０は、各装置の状況（版数やプログラム登録済み／未登録）に応じて複数種類のプログラムモジュールを選択的・段階的に複数回配信する必要がある場合でも、自動的に、適切なプログラムモジュールを適切な順序で配信することができ、問題なくプログラム更新を行うことができる。
【００６３】
次に、図６に示す具体例２について説明する。
まず、図６の例における各バージョン間の関係（遷移条件等）について図６（ａ）に示す。
【００６４】
図６（ａ）に示すように、この例ではまず上記図５の例と同様に、VER2.1への更新は、VER2.0からしか行えない。更に、VER2.0以前のバージョン（ここでは、VER1.0のみとするが、この例に限らず、更にVER1.1等があってもよい）のプログラムを保持している状態からVER2.0へバージョンアップすることは出来ない。つまり、VER2.0へ更新する場合には、まずVER1.0等の既存プログラムを削除してから、VER2.0への更新処理を行う必要がある。勿論、最初からプログラム無しの状態であれば、そのまま、VER2.0への更新処理を行えばよい。
【００６５】
上記図４の処理を実行することで図６（ａ）に示す遷移条件を満たしつつVER2.1への更新を実現させる為の配信情報パッケージ３０の設定内容を、図６（ｂ）に示す。
図６（ｂ）に示すように、この例における配信情報ファイル３１は、以下の3つが定義される。
【００６６】
配信情報ファイル31-3  ；「VER2.1 ← VER2.0」( 追加 )
配信情報ファイル31-4  ；「VER2.0 ← プログラム無し」( 新規 )
配信情報ファイル31-5  ；「プログラム無し ← VER1.0」( 削除指示)
これより、まず、配信情報ファイル31-3は、図示の通り、比較順位３２が“01”、更新版数３３がVER2.1であり、その個別情報４０は１つであり、その適用版数４１はVER2.0、処理種別４２は追加（差分）となっており、VER2.1とVER2.0の差分であるプログラムモジュール４が格納されている。
【００６７】
配信情報ファイル31-4は、比較順位３２が“02”、更新版数３３がVER2.0であり、その個別情報４０は１つであり、その適用版数４１は“VER−”、処理種別４２は新規（全件）となっており、VER2.0のプログラム全部（全件）であるプログラムモジュール５が格納されている。
【００６８】
配信情報ファイル31-5は、比較順位３２が“03”、更新版数３３が“VER−”であり、その個別情報４０は１つであり、その適用版数４１は“VER1.0”、処理種別４２は削除となっている。これは、装置２０の既存プログラムの削除を指示するだけであるので、プログラムモジュール４３は無い。
【００６９】
まず、概略的には、図４の処理は、要求元の装置２０から通知される版数に応じて以下の（１）〜（３）の何れかの処理を行うことになり、要求元の装置２０の初期状況（保持するプログラムの版数や保持プログラムの有無）が何であれ、最終的にはVER2.1に更新されることになる。
（１）VER1.0を通知して来た場合は、通知元の装置２０の保持プログラム（VER1.0）の削除指令。
（２）“プログラム無し”を通知して来た場合は、配信情報ファイル31-4の“新規（全件）”のプログラムモジュール５等を配信。
（３）VER2.0を通知して来た場合は、配信情報ファイル31-3の“追加（差分）” のプログラムモジュール４等を配信。
【００７０】
以下、更に詳細に説明する。
尚、既に図５の説明で述べたことから、本例では、比較順位“03”が最大値ｎであるので、この場合にはｎ＝３としてステップＳ１５の処理を行うことになる。
【００７１】
まず、最初の一例として、既にVER2.0のプログラムを保持している装置２０からの配信要求があった場合には、その版数通知部２３によってVER2.0が通知されてくるので、ステップＳ１１の判定がＮＯでステップＳ１３の判定がＹＥＳとなり、比較順位３２＝“01”の配信情報ファイル31-3が適用されることになる。これより、上記プログラムモジュール４を含む個別情報４０を、要求元の装置２０へ配信することになる。
【００７２】
これにより、要求元の装置２０では自己のプログラムをVER2.1に更新して、今度はVER2.1が通知されてくることになるので、ステップＳ１１の判定はＹＥＳとなり、配信不要通知を送信して（ステップＳ１２）、一連のプログラム更新処理は終了する。
【００７３】
また、例えば、プログラム未登録の装置２０からの配信要求があった場合には、“プログラム無し（VER−）”が通知されてくるので、ステップＳ１１，Ｓ１３の判定はＮＯとなり、ステップＳ１５の判定はＹＥＳとなるので、ステップＳ３１の処理が実行され、比較順位ｎ−１の（本例では上記の通りｎ＝３であるので、比較順位“02”の）配信情報ファイル31-4が適用されることになる。これより、上記プログラムモジュール５を含む個別情報４０を、要求元の装置２０へ配信することになる。
【００７４】
これにより、要求元の装置２０では自己のプログラムをVER2.0に更新して、今度はVER2.0が通知されてくることになる。VER2.0が通知された場合の処理は既に述べたので、ここでは説明しない。その後、VER2.1が通知されてきて配信不要通知を返信して処理を終了する。
【００７５】
また、例えば、既にVER1.0のプログラムを保持している装置２０からの配信要求があった場合には、版数通知部２３によってVER1.0が通知されてくるので、ステップＳ１１，Ｓ１３の判定はＮＯとなり、ステップＳ１５の判定もＮＯとなるので、ステップＳ３２の処理が実行され、比較順位ｎの（本例では上記の通りｎ＝３であるので、比較順位“03”の）配信情報ファイル31-5が適用されることになる。これより、配信情報ファイル31-5における図示の適用版数４１＝VER1.0、処理種別４２＝“削除”の個別情報４０、すなわちVER1.0のプログラムの削除を指示する情報が、要求元の装置２０へ配信される。
【００７６】
これに応じて、要求元の装置２０は、自己が保持するVER1.0のプログラムを削除する処理を行う。これにより、この装置２０はプログラム無しの状態となるので、この装置２０から今度は“プログラム無し（VER−）”が通知されてくることになる。“プログラム無し（VER−）”が通知された場合の処理は、既に述べたので、ここでは説明しない。また、これによって更に今度はVER2.0が通知されてくるが、VER2.0が通知された場合の処理も既に述べたので、ここでは説明しない。その後、VER2.1が通知されてきて配信不要通知を返信して処理を終了する。
【００７７】
図６（ｃ）に、VER1.0のプログラムを保持している装置２０を最新のVER2.1のプログラム保持状態へ更新させる場合の装置２０−配信サーバ１０間の通信シーケンスを示す。これは、既に説明した通りであるが、図示のように、まず、この装置２０は、VER1.0の通知を伴う配信要求を配信サーバ１０に送信し、これに応じて配信サーバ１０は配信情報ファイル31-5の個別情報４０（削除指示）を要求元の装置２０へ配信する。これは、上記の通り、装置２０は、自己が保持するプログラム（VER1.0）を削除し、プログラム無しの状態となる。
【００７８】
よって、装置２０は、今度はプログラム無し（“VER−”）の通知を伴う配信要求を配信サーバ１０に送信し、これに応じて配信サーバ１０はプログラムモジュール５を含む個別情報４０を配信する。これより、装置２０は、プログラムモジュール５を新規登録することで、VER2.0のプログラムを保持している状態となる。
【００７９】
続いて、装置２０は、今度は版数VER2.0の通知を伴う配信要求を配信サーバ１０に送信し、これに応じて配信サーバ１０は今度はプログラムモジュール４を含む個別情報４０を配信する。これより、装置２０は、プログラムモジュール４を既存プログラム（VER2.0）に追加する処理を行うことで、自己のプログラムをVER2.1へと更新することになる。
【００８０】
そして更に、装置２０は、今度は版数VER2.1の通知を伴う配信要求を配信サーバ１０に送信し、これに応じて配信サーバ１０は今度は配信不要通知を返信し、これによって一連のプログラム更新処理は終了する。
【００８１】
尚、上記プログラムモジュール４はプログラムモジュール１と同じであり、プログラムモジュール５はプログラムモジュール３と同じであると考えてよい。
以上説明したように、本手法では、任意のプログラムを保持・実行する複数の処理端末と配信サーバがネットワークに接続され、該配信サーバが各処理端末のプログラムをオンラインで更新させるシステムに関して、各処理端末のプログラムを所定の版数（上記の例では更新版数VER.2.1）へと更新させたい場合に、一旦何らかの途中状態へと更新させる必要がある場合でも、段階的にその都度必要な配信情報を配信して更新させて最終的に所定の更新版数へと更新させることができる。
【００８２】
単に複数回に分けて配信するだけで済むような単純なケースではなく、何らかの条件を満たしつつ複数回配信する必要がある場合でも、その都度適切な配信情報ファイルを適用する制御を行いつつ段階的に複数回の配信を行うことで対応可能となる。
【００８３】
段階的なプログラム更新の過程において発生し得る幾つかの途中状態を定義し、各途中状態に移行するために必要な配信情報(プログラムモジュール群)を格納・管理し、プログラム更新すべき装置２０の状況（保持プログラムの版数やプログラムの有無等）に応じて適用する途中状態を判定して、装置２０をこの途中状態へ移行させる為の配信情報（個別情報）を当該装置２０に配信することで途中状態へと移行させる。そして、この様な途中状態を経て最終的な状態（例えば最新バージョンのプログラムへ更新した状態）へと移行させる。上記途中状態とは、例えば上述したように、最終的な状態や他の途中状態へと移行させる為に必要な特定の状態（上記の例ではVER2.0やプログラム無しの状態等）へと装置２０のプログラム格納状態を更新した状態等である。
【００８４】
このようにして、ネットワーク接続された複数の装置２０に対するプログラム更新を行う場合において、各装置毎に必要かつ最適な配信順序および配信内容の制御を行う事が可能となる。
【図面の簡単な説明】
【００８５】
【図１】本例のプログラム配信システム全体の概略構成図である。
【図２】配信サーバ、装置の構成・機能ブロック図である。
【図３】本例の配信情報のデータ構成図である。
【図４】配信サーバ（その版数比較部）の処理フローチャート図である。
【図５】具体例（その１）であり、（ａ）は版数の遷移、（ｂ）は配信情報パッケージの内容、（ｃ）は通信シーケンスの一例である。
【図６】具体例（その２）であり、（ａ）は版数の遷移、（ｂ）は配信情報パッケージの内容、（ｃ）は通信シーケンスの一例である。
【符号の説明】
【００８６】
１  ネットワーク
１０  配信サーバ
１１  通信部
１２  配信情報記憶装置
１３  版数比較部
１４  配信情報送信部
１５  配信情報登録部
２０  装置
２１  通信部
２２  プログラムメモリ
２３  版数通知部
２４  配信情報処理部
３０  配信情報パッケージ
３１  配信情報ファイル
３２  比較順位
３３  更新版数
４０  個別情報
４１  適用版数
４２  処理種別
４３  プログラムモジュール
【図３】
2010061204.tif 000003
【図４】
2010061204.tif 000004
【図１】
2010061204.tif 000005
【図２】
2010061204.tif 000006
【図５】
2010061204.tif 000007
【図６】
2010061204.tif 000008