(57)【要約】【課題】プログラム更新処理を実行した直後に新プログラムの動作検証を行うプログラム遠隔更新システムを提供することにより、システムの信頼性を確保すると共に、検証処理の柔軟性を向上することを目的とする。【解決手段】ホスト１００（配信用コンピュータ）がサービス提供処理を実行する新モジュール３０５ｂを配信し、端末３００が制御プログラム３０５の旧モジュール３０５ａをホスト１００により配信された新モジュール３０５ｂに更新し、更新した新モジュール３０５ｂの動作検証処理を実行し、動作検証処理でエラーを検出した時にエラー対処処理を実行する。【選択図】        図５
2004326287.tif 000002
【特許請求の範囲】
【請求項１】
サービス提供処理を実行する新モジュールを含む転送ファイルを配信する配信用コンピュータと、
サービス提供処理を実行するモジュールにより構成された制御プログラムと、前記制御プログラムの前記モジュールを前記配信用コンピュータにより配信された前記転送ファイルの前記新モジュールに更新するプログラム更新実行手段と、前記プログラム更新実行手段により更新された前記新モジュールの動作検証処理を実行する後検証モジュールと、前記動作検証処理でエラーを検出した時にエラー対処処理を実行する対処モジュールとを有する端末と、
を備えたことを特徴とするプログラム遠隔更新システム。
【請求項２】
前記端末は、更新モジュール識別子と前記後検証モジュールへのポインタと前記対処モジュールへのポインタとにより構成されたエントリが複数登録された後検証プラグインテーブルと、前記後検証プラグインテーブルから前記新モジュールと一致する更新モジュール識別子が確認された時に前記後検証モジュールへのポインタから前記後検証モジュールを呼出し前記動作検証処理を実行させ、又前記動作検証処理でエラーを検出した時に前記対処モジュールへのポインタから前記対処モジュールを呼出し前記エラー対処処理を実行させる後検証手段と、を備えたことを特徴とする請求項１記載のプログラム遠隔更新システム。
【請求項３】
前記端末は、システム再起動後に前記動作検証処理の実行を指示する後検証実行フラグが記憶された記憶手段を備え、
前記後検証手段は、システム再起動後に前記記憶手段に前記後検証実行フラグが記憶されている時には、前記後検証モジュールへのポインタから前記後検証モジュールを呼出し前記動作検証処理を実行させ、又前記動作検証処理でエラーを検出した時には、前記対処モジュールへのポインタから前記対処モジュールを呼出し前記エラー対処処理を実行させることを特徴とする請求項２記載のプログラム遠隔更新システム。
【請求項４】
前記後検証プラグインテーブルは、前記エントリに後検証条件識別子が付加され、
前記後検証手段は、前記後検証プラグインテーブルから前記新モジュールと一致する後検証条件識別子が確認された時に前記後検証モジュールへのポインタから前記後検証モジュールを呼出し前記動作検証処理を実行させることを特徴とする請求項３記載のプログラム遠隔更新システム。
【請求項５】
前記配信用コンピュータは、前記後検証モジュールと前記対処モジュールとを添付した前記転送ファイルを配信し、
前記端末は、前記配信用コンピュータにより配信された前記転送ファイルの前記後検証モジュールと前記対処モジュールとを登録すると共に、前記後検証モジュールと前記対処モジュールとの登録先アドレス情報を前記後検証プラグインテーブルの前記後検証モジュールへのポインタと前記対処モジュールへのポインタとにそれぞれ設定する後検証プラグインテーブル管理手段を備えたことを特徴とする請求項４記載のプログラム遠隔更新システム。
【請求項６】
前記端末は、前記新モジュールの正当性検証処理を実行する前検証モジュールと、更新モジュール識別子と前記前検証モジュールへのポインタとにより構成されたエントリが複数登録された前検証プラグインテーブルと、前記前検証プラグインテーブルから前記新モジュールと一致する更新モジュール識別子が確認された時に前記前検証モジュールへのポインタから前検証モジュールを呼出し前記正当性検証処理を実行させる前検証手段と、を備えたことを特徴とする請求項５記載のプログラム遠隔更新システム。
【請求項７】
前記配信用コンピュータは、前記前検証モジュールを添付した前記転送ファイルを配信し、
前記端末は、前記配信用コンピュータにより配信された前記転送ファイルの前記前検証モジュールを登録すると共に、前記前検証モジュールの登録先アドレス情報を前記前検証プラグインテーブルの前記前検証モジュールへのポインタに設定する前検証プラグインテーブル管理手段を備えたことを特徴とする請求項６記載のプログラム遠隔更新システム。
【請求項８】
前記配信用コンピュータは、前記新モジュールと前記新モジュールに対応する前記後検証モジュールと前記対処モジュールとによる複数の組、または前記新モジュールと前記新モジュールに対応する前記前検証モジュールとによる複数の組からなる一覧情報を保持する検証モジュールデータベースと、前記検証モジュールデータベースから前記新モジュールに対応する前記後検証モジュールと前記対処モジュールとによる組、または前記新モジュールに対応する前記前検証モジュールを集積する検証モジュール集積手段とを備え、前記検証モジュール集積手段により集積された前記新モジュールに対応する前記後検証モジュールと前記対処モジュールとによる組、または前記新モジュールに対応する前記前検証モジュールを前記転送ファイルに含め前記端末に配信することを特徴とする請求項７記載のプログラム遠隔更新システム。
【請求項９】
前記端末は、前記後検証モジュールと前記前検証モジュールとによる検証モジュールが格納された検証モジュールデータベースと、前記配信用コンピュータにより配信された前記新モジュールに対応する前記検証モジュールを前記検証モジュールデータベースからロードし、前記後検証プラグインテーブルと前記前検証プラグインテーブルに前記検証モジュールのエントリを登録する検証モジュールロード手段と、前記プログラム更新実行手段による前記新モジュールへの更新が終了すると、前検証プラグインテーブルと前記後検証プラグインテーブルに設定された前記検証モジュールをアンロードする検証モジュールアンロード手段と、を備えたことを特徴とする請求項７記載のプログラム遠隔更新システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵ、主メモリやフラッシュメモリ等の不揮発性の記憶装置、一つ以上の外部通信インタフェースから構成される組込み機器（以下、端末と呼ぶ）と、該端末用の制御プログラムを生成・配信するホストと、両者を接続する通信ネットワークと、から構成されるプログラム遠隔更新システムに関するものである。
【０００２】
【従来の技術】
これまで、端末用の制御プログラムはＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の不揮発性の記憶媒体に格納され、製品出荷後その構成は固定のものとされてきた。しかし、近年端末ソフトウェアのオープン化やネットワーク化が進展し、様々な情報処理技術が採用されており、その規模や複雑さが増している。このため、携帯電話のように製品出荷後にソフトウェア不具合が発見される事例もあり、通信ネットワークを介して改修ソフトウェアの更新を行うことで、端末の品質向上とソフトウェア保守の効率化を図ることが求められている。
【０００３】
また、情報処理技術の進歩に追随するため、共通ソフトウェアを新しいものに進化させていくことで、端末の付加価値向上を図ることも求められていくと予想される。このように、製品出荷後に制御プログラムの部分更新を行い、その構成を変更するプログラム遠隔更新システムの必要性が増してきている。これまでに、ＢＳデジタル放送受信機やインターネット電話におけるソフトウェア・ダウンロード・サービスの実用化の例がある。
【０００４】
プログラム遠隔更新システムでは、プログラム更新実行の結果、端末の品質が低下することや、最悪の場合自力での復旧が困難となる事態を避けることが特に重要となる。このため、従来のプログラム遠隔更新システムには、端末側で受信した新プログラムの正当性をチェックしたり、更新実行に伴って新プログラムの正常動作をチェックするものがある（特許文献１）。
【０００５】
次に、特許文献１の従来のプログラム遠隔更新システムについて説明する。
図２４は、従来のプログラム検証システムの構成図である。本システムは、例えばコンビニエンス・ストア内に設置される情報端末によるマルチメディア情報提供サービスに適用される。情報提供装置２０は無線通信路５１または優先通信路５２を介して、音楽や映画、ゲームソフトウェア等のマルチメディア情報をネットワークサーバ３０に配信する。店舗内に設置されるネットワークサーバ３０では、ブラウザ等の出力処理プログラムが動作しており、専用線で接続されたクライアント端末６０にマルチメディア情報を出力する。また、クライアント端末６０は、ユーザ操作によりマルチメディア情報の提供サービスを受け付ける。
【０００６】
次に検証動作について説明する。ネットワークサーバ３０で動作している出力処理プログラムを更新または追加する場合、情報提供装置２０内の記憶装置２３に格納されている新しい出力処理プログラムと動作確認用サンプルデータを送信装置２１から送信する。ネットワークサーバ３０では、受信装置３１でこれを受信し、新しい出力処理プログラムがインストールされる。該出力処理プログラムは該サンプルデータを用いて実行され、その動作結果が記憶装置３３に格納される。全てのサンプルデータについて動作結果が得られると、その結果情報はネットワーク送受信装置３５から情報提供装置２０に返信される。
【０００７】
情報提供装置２０では、インターネット送受信装置２４でこれを受信する。そして、情報制御装置２２において、記憶装置２３に格納された解析プログラムを用いて結果情報が解析される。この解析結果から、新しい出力処理プログラムの動作が正常かどうかを、メンテナンス技術者が判断する。正常と判断された場合は、記憶装置２３に格納されたマルチメディア情報が送信装置２１から送信される。ネットワークサーバ３０では、受信装置３１でこれを受信し、新しい出力処理プログラムによるマルチメディア情報提供サービスの運用を再開する。一方、先の解析結果から、異常と判断された場合は、メンテナンス技術者によって出力処理プログラムの修正が行われる。
【０００８】
その後、再び新しい出力処理プログラムと動作確認用サンプルデータを送信装置２１から送信する。ネットワークサーバ３０では、受信装置３１でこれを受信し、修正された出力処理プログラムが再インストールされる。先ほどと同様に動作確認が行われ、正常と判断されるまで出力処理プログラムの修正が繰り返される。
【０００９】
以上のように、ネットワークサーバ３０で動作している出力処理プログラムを更新または追加する場合、情報提供装置２０では新しい出力処理プログラムと合わせて動作確認用サンプルデータを送信し、ネットワークサーバ３０では該サンプルデータを用いて新しい出力処理プログラムを実行するため、新しい出力処理プログラムの修正内容に応じた動作確認用サンプルデータを添付することができる。また、該サンプルデータによる動作結果を情報提供装置２０に返信し、解析プログラムによる結果情報の解析と技術者による判定を行うため、店舗に赴いてクライアント端末６０を操作する必要がなく、保守コストを削減することができる。
【００１０】
【特許文献１】
特開２００１−２５６２０１号公報
【００１１】
【発明が解決しようとする課題】
従来のプログラム検証システムでは、新しい出力処理プログラムと合わせて動作確認用サンプルデータを送信することで、新しい出力処理プログラムの修正内容に応じた動作確認用サンプルデータを添付することができるものの、出力処理プログラムの更新または追加処理を行う際に、毎回必ず動作確認用サンプルデータを添付しなければならないため、送信する総ファイルサイズが大きくなる。また、動作確認に対する検証処理を情報提供装置２０側で行うことで、クライアント端末６０で操作する必要はなくなるものの、技術者による判定を含むため、サービスの運用停止時間が長くなる。さらに、動作結果が正常と判断されるまで出力処理プログラムの修正が繰り返されるが、その間動作不良部分を含む出力処理プログラムがインストールされた状態のままであり、ネットワークサーバ３０の動作信頼性が低下するという問題点があった。
【００１２】
本発明は上記のような問題点を解決するためになされたもので、更新処理を実行する前に不適合プログラムを排除するための正当性検証を行う前検証手段と、更新処理を実行した直後に新プログラムの動作検証を行う後検証手段を設け、特に各検証手段における検証処理（内容）を登録するテーブルをプラグイン構造にすることで、端末の種別やプログラム構成に合わせて検証処理を柔軟に変更できるようにする。さらに、後検証の登録テーブルでは、各動作検証処理に対応するエラー対処処理を定義、登録できるようにし、動作検証の結果エラーを検出した場合、自動的にエラー対処処理を実行するようにする。エラー対処処理の一例として旧プログラムへの復元実行が考えられる。これにより、プログラム遠隔更新システムの信頼性を確保すると共に、検証処理の柔軟性を向上することを目的とする。
【００１３】
【課題を解決するための手段】
この発明に係るプログラム遠隔更新システムは、サービス提供処理を実行する新モジュールを含む転送ファイルを配信する配信用コンピュータと、
サービス提供処理を実行するモジュールにより構成された制御プログラムと、前記制御プログラムの前記モジュールを前記配信用コンピュータにより配信された前記転送ファイルの前記新モジュールに更新するプログラム更新実行手段と、前記プログラム更新実行手段により更新された前記新モジュールの動作検証処理を実行する後検証モジュールと、前記動作検証処理でエラーを検出した時にエラー対処処理を実行する対処モジュールとを有する端末と、を備えたものである。
【００１４】
【発明の実施の形態】
実施の形態１．
図１は、本発明の実施の形態１のプログラム遠隔更新システムの構成図である。
図において、１００は配信用コンピュータであるホスト、１０１はＣＰＵ、１０２は記憶装置、１０３は外部通信インタフェース、１０４は主メモリ、１０５は端末用の新モジュールの生成と配信処理を行う配信マネージャ、１０６は端末用の制御プログラムを生成するプログラム生成手段、１０７は新モジュールにヘッダ情報を付加して転送ファイルを生成する転送ファイル生成手段、１０８は転送ファイルを更新対象の端末へ配信する転送ファイル配信手段である。
【００１５】
２００はホストと端末を接続する通信ネットワークであり、例えば有線通信ではインターネットや専用回線で用いられるＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワーク、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等の通信規格に基づくローカル・ネットワークを、無線通信では携帯電話網を利用したネットワーク、放送機器や車載機器で用いられる衛星通信ネットワーク、無線ＬＡＮやＢｌｕｅｔｏｏｔｈ（登録商標）等の通信規格に基づくローカル・ネットワークを想定する。
【００１６】
３００はプログラム更新対象となる組込み機器である端末、３０１は外部通信インタフェース、３０２は記憶装置、３０３はＣＰＵ、３０４は主メモリ、３０５は端末サービスを提供する制御プログラム、３０５ａは制御プログラムを構成する機能単位であり現在実行中の旧モジュール、３０５ｂは旧モジュールを改変した新モジュールである。ここで、旧モジュール３０５ａ、新モジュール３０５ｂは、制御プログラム３０５中の個々の部分プログラムであり、それぞれ旧部分プログラム、新部分プログラムを示すものである。
【００１７】
３０６は新モジュールの更新処理を行う更新マネージャ、３０７は通信ネットワークを介して送信される転送ファイルの受信処理を行う転送ファイル受信手段、３０８は転送ファイル内から新モジュールを取り出し予約領域に配置するプログラム配置手段、３０９は制御プログラム内の旧モジュールから新モジュールへの更新処理を行うプログラム更新実行手段、３１０は後検証プラグインテーブルに登録されている後検証モジュールの起動と検証エラーを検出した時に対応する対処モジュールの起動を行う後検証手段、３１１は新モジュールの動作検証処理を行う後検証モジュール、３１２は動作検証の結果エラーを検出した時のエラー対処処理を行う対処モジュール、３１３は後検証モジュールと対処モジュールの登録、変更、および削除が可能なプラグイン構造を持つ後検証プラグインテーブルである。ここで、後検証モジュール３１１と対処モジュール３１２は主メモリ３０４上に記憶されているものである。
【００１８】
４００は、端末３００と基本構成は同じであるが、型番・搭載ハードウェア資源量・搭載しているプログラムの構成やバージョン等がそれぞれ異なる可能性のある端末群である。
【００１９】
図２は、後検証プラグインテーブル３１３の構成図である。
図において、３１３ａは更新モジュール識別子、３１３ｂは後検証モジュールの登録、変更、削除を行うための後検証モジュールへのポインタ、３１３ｃは対処モジュールの登録、変更、削除を行うための対処モジュールへのポインタ、３１３ｄは前記三つ組から構成される後検証プラグインテーブル・エントリである。
ここで、後検証モジュールへのポインタ３１３ｂは後検証モジュール３１１の配置アドレスを、対処モジュールへのポインタ３１３ｃは対処モジュール３１２の配置アドレスを示すものである。
【００２０】
ここで、後検証プラグインテーブル３１３は、更新モジュール識別子３１３ａと、この更新モジュール識別子３１３ａに対応し、後検証モジュール３１１にアクセスし主メモリ３０４上に記憶された後検証モジュール３１１を呼び出すことができる後検証モジュールへのポインタ３１３ｂと、この更新モジュール識別子３１３ａに対応し、対処モジュール３１２にアクセスし主メモリ３０４上に記憶された対処モジュール３１２を呼び出すことができる後検証モジュールへのポインタ３１３ｂと、の三つ組から構成された後検証プラグインテーブル・エントリ３１３ｄが複数登録されているものである。
なお、本実施の形態１では、製品出荷時に後検証モジュールと対処モジュールの登録が確定しているものとする。
【００２１】
図３は、転送ファイルのヘッダの構成図である。
図において、３１４は転送ファイルのヘッダ、３１４ａは転送ファイルであることを示すマジックナンバ、３１４ｂは更新モジュール識別子情報、３１４ｃは新モジュール３０５ｂのバージョン情報、３１４ｄは新モジュール３０５ｂのサイズ情報、３１４ｅは新モジュール３０５ｂの予約配置アドレス情報、３１４ｆは転送ファイルのヘッダのサイズである。
【００２２】
次に動作について説明する。
図４は、ホスト１００側の配信マネージャ１０５と端末３００側の更新マネージャ３０６と間の処理シーケンスを示す図である。
図を用いて、プログラム遠隔更新の処理内容を説明する。まずホスト１００側で端末３００用の制御プログラム３０５の障害改修や機能追加等の理由により、新モジュール３０５ｂを生成した場合、通常ローカル環境で機能試験を実施する。その結果、新モジュール３０５ｂがリリース可能と判断されたら、配信マネージャ１０５はステップＳ１で、端末３００や端末群４００に対してプログラム更新要求を発行する。この時、新モジュール３０５ｂの識別子とサイズ情報を送付する。
【００２３】
端末３００側の更新マネージャ３０６はステップＳ２で、プログラム配置手段３０８を通じて新モジュール３０５ｂの配置可能領域を予約し、予約配置アドレス情報を返信する。この時、さらに端末資源構成情報やプログラム管理情報も返信する。再び、配信マネージャ１０５ではステップＳ３で、返信された情報に照らして新モジュール３０５ｂの配信要否（または可否）を判定する。判定の結果、配信しない端末３００に対しては、以後何も行われない。
【００２４】
次に、ステップＳ４でプログラム生成手段１０６において、制御プログラム３０５が新たに生成される。この制御プログラム３０５の生成においては、ホスト１００の記憶装置１０２に格納されている制御プログラム３０５を構成する既存モジュール群と、先に返信された予約配置アドレス情報から、新モジュール３０５ｂのアドレス解決処理が行なわれ、このアドレス解決処理がされることにより制御プログラム３０５の生成が行なわれる。
【００２５】
ステップＳ５で転送ファイル生成手段１０７において、新たに生成された制御プログラム３０５から、アドレス解決済みの新モジュール３０５ｂを抜き出し、ヘッダ３１４を付加して転送ファイルを生成する。ヘッダ３１４内には、新モジュール３０５ｂのバージョン情報３１４ｃ、サイズ３１４ｄ、予約配置アドレス３１４ｅ等の情報を設定する。ステップＳ６で転送ファイル配信手段１０８が、配信対象の端末３００や端末群４００に対して、転送ファイルを配信する。
【００２６】
端末３００側の更新マネージャ３０６はステップＳ７で、転送ファイルの受信、配置と、更新実行を行う。更新マネージャ３０６によるこの部分の処理については、このあとで説明する。ステップＳ８で、更新処理が正常終了したか、更新処理途中でのエラー発生または新モジュール３０５ｂの動作不良により更新処理が異常終了したかの処理結果の通知を行う。最後に、配信マネージャ１０５はステップＳ９で、配信履歴を記録して、一連の処理を終了する。
【００２７】
図５は、更新マネージャ３０６の処理手順を示すフローチャートである。
図を用いて、更新マネージャ３０６の処理を説明する。本処理は図４のステップＳ７の詳細に関するものである。
更新マネージャ３０６は、ステップＳ１０で配信マネージャ１０５からのプログラム更新要求を待って休止しており、ホスト１００側の配信マネージャ１０５からプログラム更新要求があると、起床して応答する。ステップＳ１１で転送ファイル受信手段３０７がホスト１００側の配信マネージャ１０５が配信した転送ファイルを受信する。ステップＳ１２で転送ファイル受信手段３０７が転送ファイルのヘッダ３１４から新モジュール３０５ｂのバージョン情報３１４ｃをチェックする。
【００２８】
ステップＳ１３でプログラム配置手段３０８において、ヘッダ３１４の予約配置アドレス情報３１４ｅに従って新モジュール３０５ｂをメモリ配置する。ここで、新モジュール３０５ｂは主メモリ３０４上の空き領域にメモリ配置される。ステップＳ１４でプログラム更新実行手段３０９において、制御プログラム３０５の旧モジュール３０５ａから新モジュール３０５ｂへリンクを切り替えることにより旧モジュール３０５ａから新モジュール３０５ｂへの更新を行う。
【００２９】
その後、ステップＳ１５で後検証手段３１０において、新モジュール３０５ｂと一致する後検証プラグインテーブル・エントリ３１３ｄ内の更新モジュール識別子３１３ａを検索する。一致する後検証プラグインテーブル・エントリ３１３ｄが見つかったら、ステップＳ１６で、後検証モジュールへのポインタ３１３ｂから、登録されている後検証モジュール３１１を呼出し、後検証モジュール３１１に動作検証処理を実行させる。即ち、ステップＳ１６で、後検証手段３１０が後検証モジュールへのポインタ３１３ｂにアクセスし、主メモリ上に記憶されている後検証モジュール３１１を呼出し、後検証モジュール３１１に動作検証処理を実行させる。
【００３０】
後検証モジュール３１１の動作検証処理の内容としては、例えば特定のデータ値のチェックや特定の引数値での関数呼出しに対する戻り値のチェック等が考えられる。ステップＳ１７で、後検証モジュール３１１の実行結果を判定し、正常の場合は再びステップＳ１５に戻り、更新モジュール識別子３１３ａの一致するエントリがなくなるまで動作検証処理を順に行う。
【００３１】
一方、ステップＳ１７でエラーを検出した場合、ステップＳ１８で、対処モジュールへのポインタ３１３ｃから、登録されている対処モジュール３１２を呼出し、対処モジュール３１２にエラー対処処理を実行させる。
対処モジュール３１２の処理内容としては、例えばプログラム更新実行手段３０９に対する旧モジュール３０５ａへの復元要求の発行やエラーの黙認（無視）等が考えられる。最後に、動作検証の結果が正常の場合も異常終了の場合も、ステップＳ１９で更新処理の結果通知を行い、再びステップＳ１０で次回のプログラム更新要求を待って休止する。
【００３２】
以上のように本実施の形態によれば、端末３００側に後検証プラグインテーブル３１３と後検証手段３１０を設けて、新モジュール３０５ｂに対する動作検証を行うための汎用的な機構を提供しているので、異なるソフトウェア・プラットホームへの適用が容易（他のＯＳへの移植が容易）であると共に、更新した新モジュールの動作検証処理を実行するのでプログラム更新を行なうプログラム遠隔更新システムの信頼性を確保することができる。
【００３３】
また、特に、後検証プラグインテーブル３１３に関して、後検証モジュール３１１とエラー検出時の対処モジュール３１２をそれぞれ登録、変更、削除できる構造にしているので、製品出荷時に端末３００の種別や更新モジュール毎に動作検証項目を選択的に設定でき、検証処理の柔軟性の向上とユーザ負担の軽減を図ることができる。さらに、後検証モジュール３１１と対処モジュール３１２が連動して動作するので、端末３００のサービス停止時間を短くできると共に、品質の低下を抑えることができる。
【００３４】
実施の形態２．
実施の形態１ではプログラム更新実行手段３０９において新モジュール３０５ｂの更新を行った直後に、後検証手段３１０において動作検証を行なうようにした動的更新方式を対象としたものであるが、本実施の形態ではシステム再起動を伴う静的更新方式を対象とし、新たにシステム再起動後に動作検証を行うことを指示する後検証実行フラグを追加し、システム再起動を挟んで後検証手段３１０における動作検証を行う場合について説明する。ここで、動的更新方式とはシステムを再起動することなしに新モジュールの更新、新モジュールの動作検証をしたものであり、静的更新方式とはシステム再起動後に動作検証を行うものである。
【００３５】
図６は、実施の形態２における端末３００の構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図において、３１５はシステム再起動後に動作検証の実行を指示する後検証実行フラグである。
【００３６】
次に動作について説明する。
図７は、実施の形態２における更新マネージャ３０６の処理手順を示すフローチャートである。
図を用いて、システム再起動を挟んだ更新マネージャ３０６の処理を説明する。端末３００側においてシステムが起動し、更新マネージャ３０６が動作を開始すると、まずステップＳ２０で後検証実行フラグ３１５が設定されているかチェックする。通常は設定されていないので、ステップＳ１０で配信マネージャ１０５からのプログラム更新要求を待って休止する。そして、ホスト１００側の配信マネージャ１０５からプログラム更新要求があると、起床して応答する。
【００３７】
ステップＳ１１で転送ファイル受信手段において、ホスト１００側の配信マネージャ１０５が配信した転送ファイルを受信する。ステップＳ１２で転送ファイルのヘッダ３１４から新モジュール３０５ｂのバージョン情報３１４ｃをチェックする。ステップＳ１３でプログラム配置手段３０８において、ヘッダ３１４の予約配置アドレス３１４ｄに従って新モジュール３０５ｂをメモリ配置すると共に、記憶装置３０２に配置する。ステップＳ１４でプログラム更新実行手段３０９において、制御プログラム３０５の旧モジュール３０５ａから新モジュール３０５ｂへリンクを切り替えることにより更新を行う。
【００３８】
ステップＳ２１で、記憶手段である記憶装置３０２に後検証実行フラグ３１５を設定し、システム再起動後もこの設定状態が記憶保存されるようにする。ステップＳ２２で、システム再起動が実行され、システムが再起動すると、再び更新マネージャ３０６が動作を開始し、ステップＳ２０で後検証手段３１０が記憶装置３０２に後検証実行フラグ３１５が設定されているかチェックする。
【００３９】
ステップＳ２０で後検証実行フラグ３１５が設定されている時は、ステップＳ１５で後検証手段３１０において、新モジュール３０５ｂと一致する更新モジュール識別子３１３ａを検索する。一致する後検証プラグインテーブル・エントリ３１３ｄが見つかったら、ステップＳ１６で、後検証モジュールへのポインタ３１３ｂから、登録されている後検証モジュール３１１を呼出し、後検証モジュール３１１に動作検証処理を実行させる。
【００４０】
ステップＳ１７で、後検証モジュール３１１の実行結果を判定し、正常の場合は再びステップＳ１５に戻り、更新モジュール識別子３１３ａの一致するエントリがなくなるまで動作検証処理を順に行う。一方、ステップＳ１７でエラーを検出した場合、ステップＳ１８で、対処モジュールへのポインタ３１３ｃから、登録されている対処モジュール３１２を呼出し、対処モジュール３１２にエラー対処処理を実行させる。
動作検証の結果が正常の場合も異常終了の場合も、ステップＳ１９で更新処理の結果通知を行う。最後に、ステップＳ２３で後検証実行フラグ３１５の設定をクリアし、再びステップＳ１０で次回のプログラム更新要求を待って休止する。
【００４１】
以上のように本実施の形態によれば、端末３００側の記憶装置３０２上に後検証実行フラグ３１５を設けて、新モジュール３０５ｂの更新処理を行ったあと、後検証実行フラグ３１５を設定してからシステム再起動し、システム再起動後に後検証実行フラグ３１５の設定を検出して新モジュール３０５ｂの動作検証を行うようにしているので、新モジュール３０５ｂの更新を反映するためにシステム再起動を伴う静的更新方式の場合であっても、プログラム遠隔更新システムの信頼性を確保することができる。
【００４２】
実施の形態３．
本実施の形態では、後検証プラグインテーブル・エントリ３１３ｄ内に新たに後検証条件識別子を設けて、後検証手段３１０で、更新モジュール識別子３１３ａに加え、後検証条件識別子と一致する後検証プラグインテーブル・エントリ３１３ｄを検索する場合について説明する。
【００４３】
図８は、実施の形態３の後検証プラグインテーブル３１３の構成図であり、図２と同一符号は同一又は相当部分を示し説明を省略する。
図において、３１３ｅは更新モジュールに関する動作検証内容を識別する後検証条件識別子である。例えば、更新モジュール内の外部インタフェース関数毎に識別子を定義したり、動作検証内容の種別に応じてグルーピングして識別子を定義することが考えられる。
【００４４】
次に動作について説明する。
図９は、更新マネージャ３０６の処理手順を示すフローチャートである。
図を用いて、更新マネージャ３０６の処理を説明する。更新マネージャ３０６はステップＳ１０で配信マネージャ１０５からのプログラム更新要求を待って休止しており、ホスト１００側の配信マネージャ１０５からプログラム更新要求があると、起床して応答する。
【００４５】
ステップＳ１１で転送ファイル受信手段において、ホスト１００側の配信マネージャ１０５が配信した転送ファイルを受信する。ステップＳ１２で転送ファイルのヘッダ３１４から新モジュール３０５ｂのバージョン情報３１４ｃをチェックする。ステップＳ１３でプログラム配置手段３０８において、ヘッダ３１４の予約配置アドレス３１４ｄに従って新モジュール３０５ｂをメモリ配置すると共に、記憶装置３０２に配置する。ステップＳ１４でプログラム更新実行手段３０９において、制御プログラム３０５の旧モジュール３０５ａから新モジュール３０５ｂへリンクを切り替えることにより更新を行う。
【００４６】
その後、ステップＳ２４で後検証手段３１０において、転送ファイルのヘッダ３１４から新モジュール３０５ｂと一致する後検証プラグインテーブル・エントリ３１３ｄ内の更新モジュール識別子３１３ａを検索した上で、さらに後検証条件識別子３１３ｅを検索する。両条件に一致する後検証プラグインテーブル・エントリ３１３ｄが見つかったら、ステップＳ１６で、後検証モジュールへのポインタ３１３ｂから、登録されている後検証モジュール３１１を呼出し、後検証モジュール３１１に動作検証処理を実行させる。
【００４７】
後検証モジュール３１１の処理内容としては、例えば特定のデータ値のチェックや特定の引数値での関数呼出しに対する戻り値のチェック等が考えられる。ステップＳ１７で、後検証モジュール３１１の実行結果を判定し、正常の場合は再びステップＳ１５に戻り、更新モジュール識別子３１３ａの一致するエントリがなくなるまで動作検証処理を順に行う。
【００４８】
一方、ステップＳ１７でエラーを検出した場合、ステップＳ１８で、対処モジュールへのポインタ３１３ｃから、登録されている対処モジュール３１２を呼出し実行する。最後に、動作検証の結果が正常の場合も異常終了の場合も、ステップＳ１９で更新処理の結果通知を行い、再びステップＳ１０で次回のプログラム更新要求を待って休止する。
【００４９】
以上のように本実施の形態によれば、後検証プラグインテーブル・エントリ３１３ｄ内に更新モジュール識別子３１３ａに加え後検証条件識別子３１３ｅを設けて、この識別子に一致する動作検証だけを選択して実行する、即ち後検証プラグインテーブル・エントリ３１３ｄ内に後検証条件識別子３１３ｅが設けられているエントリの後検証モジュールへのポインタ３１３ｂの後検証モジュール３１１に動作検証処理を実行するようにしているので、今回の改変内容に関連する動作検証項目だけを検証するなど絞り込みを行うことができ、検証処理の効率性を向上することができる。
【００５０】
実施の形態４．
本実施の形態では、製品出荷後にホスト１００側の配信マネージャ１０５から新モジュール３０５ｂの配信とは別に、転送ファイル内に後検証モジュール３１１および対処モジュール３１２を添付して配信し、更新マネージャ３０６内に新たに後検証プラグインテーブル管理手段を設けて、後検証モジュール３１１および対処モジュール３１２の追加、変更、削除を行う場合について説明する。
【００５１】
図１０は、実施の形態４における端末３００の主メモリ３０４の構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図において、３１６は後検証プラグインテーブル３１３への後検証モジュール３１１および対処モジュール３１２の追加、変更、削除を行う後検証プラグインテーブル管理手段である。
【００５２】
図１１は、実施の形態４における転送ファイルのヘッダ３１４の構成図であり、図３と同一符号は同一部分を示し説明を省略する。
図において、３１４ｇは転送ファイルに含まれるモジュール構成を示す添付モジュール構成フラグ、３１４ｈは後検証モジュールセットの添付数、３１４ｉは後検証モジュール＃１の識別子、３１４ｊは後検証モジュール＃１のサイズ、３１４ｋは後検証モジュール＃１の予約配置アドレス、３１４ｌは対処モジュール＃１の識別子、３１４ｍは対処モジュール＃１のサイズ、３１４ｎは対処モジュール＃１の予約配置アドレス、３１４ｏは前記六つ組から構成される後検証モジュールセットである。
【００５３】
次に動作について説明する。
図１２は、実施の形態４における更新マネージャ３０６の処理手順を示すフローチャートである。
図を用いて、更新マネージャ３０６の処理を説明する。更新マネージャ３０６はステップＳ１０で配信マネージャ１０５からのプログラム更新要求を待って休止しており、ホスト１００側の配信マネージャ１０５からプログラム更新要求があると、起床して応答する。
【００５４】
ステップＳ１１で転送ファイル受信手段において、ホスト１００側の配信マネージャ１０５が配信した転送ファイルを受信する。ステップＳ２５で、転送ファイルのヘッダ３１４内の添付モジュール構成フラグ３１４ｇを参照して、転送ファイル内に後検証モジュールセット３１４ｏが添付されているかチェックする。もし添付されていないなら、以降は実施の形態１と同じであり、ステップＳ１２へ進む。
また、ステップＳ２６で後検証モジュールセット３１４ｏが添付されているなら、ステップＳ２７で後検証プラグインテーブル管理手段３１６において、ヘッダ３１４内の後検証モジュールセットの添付数３１４ｈが最後のエントリに至るまでの間、後検証モジュールセット３１４ｏの情報に基づき、後検証モジュール３１１および対処モジュール３１２の登録処理を行う。
【００５５】
また、ステップＳ２７で後検証プラグインテーブル管理手段３１６において、後検証モジュール３１１および対処モジュール３１２をそれぞれ予約配置アドレス３１４ｋおよび同３１４ｎにメモリ配置すると共に、記憶装置３０２に配置したあと、それぞれの予約配置アドレス情報を後検証プラグインテーブル３１３の後検証モジュールへのポインタ３１３ｂおよび対処モジュールへのポインタ３１３ｃに設定する。
【００５６】
なお、端末３００側のシステムプログラムに動的リンク手段が装備されている場合は、ステップＳ２７で後検証プラグインテーブル管理手段３１６において、動的リンク手段を介して決定された再配置アドレスを、後検証プラグインテーブル３１３の後検証モジュールへのポインタ３１３ｂおよび対処モジュールへのポインタ３１３ｃに設定する。
【００５７】
次に、ステップＳ２７で、最後の後検証モジュールセット３１４ｏに対する登録処理が終了したら、ステップＳ２８で、再びヘッダ３１４内の添付モジュール構成フラグ３１４ｇを参照して、転送ファイル内に新モジュール３０５ｂが添付されているかチェックする。もし添付されていないなら、ステップＳ１９で更新処理の結果通知を行い、今回の処理は終了する。また、新モジュール３０５ｂが添付されているなら、以降は実施の形態１と同じであり、ステップＳ１２へ進む。ステップＳ１２以降については、省略する。
【００５８】
以上のように本実施の形態によれば、転送ファイル内に後検証モジュール３１１および対処モジュール３１２を添付して配信し、更新マネージャ３０６内に新たに後検証プラグインテーブル管理手段３１６を設けて、後検証モジュール３１１および対処モジュール３１２の追加、変更、削除を行うようにしているので、制御プログラム３０５の構成や機能の変更に合わせて動作検証内容を常に最適な状態に維持することができ、プログラム遠隔更新システムの信頼性を向上することができる。
【００５９】
実施の形態５．
本実施の形態では、新たに前検証手段と前検証プラグインテーブルを設けて、転送ファイルを受信した直後に、新モジュール３０５ｂの正当性検証処理を行う場合について説明する。
【００６０】
図１３は、実施の形態５における端末３００の主メモリ３０４の構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図において、３１７は前検証プラグインテーブルに登録されている前検証モジュールの起動を行う前検証手段、３１８は新モジュールの正当性検証処理を行う前検証モジュール、３１９は前検証モジュールの登録、変更、および削除が可能なプラグイン構造を持つ前検証プラグインテーブルである。
【００６１】
図１４は、前検証プラグインテーブル３１９の構成図である。
図において、３１９ａは更新モジュール識別子、３１９ｂは前検証モジュールの登録、変更、削除を行うための前検証モジュールへのポインタ、３１９ｃは前記二つ組から構成される前検証プラグインテーブル・エントリである。なお、本実施の形態５では、製品出荷時に前検証モジュールの登録が確定しているものとする。
【００６２】
次に動作について説明する。
図１５は、実施の形態５における更新マネージャ３０６の処理手順を示すフローチャートである。
図を用いて、更新マネージャ３０６の処理を説明する。更新マネージャ３０６はステップＳ１０で配信マネージャ１０５からのプログラム更新要求を待って休止しており、ホスト１００側の配信マネージャ１０５からプログラム更新要求があると、起床して応答する。
【００６３】
ステップＳ１１で転送ファイル受信手段において、ホスト１００側の配信マネージャ１０５が配信した転送ファイルを受信する。ステップＳ２９で前検証手段において、新モジュール３０５ｂと一致する更新モジュール識別子３１３ａと一致する前検証プラグインテーブル・エントリ３１９ｃ内の更新モジュール識別子３１９ａを検索する。
【００６４】
一致する前検証プラグインテーブル・エントリ３１９ｃが見つかったら、ステップＳ３０で、前検証モジュールへのポインタ３１９ｂに登録されている前検証モジュール３１８を呼出し、前検証モジュール３１８に正当性検証処理を実行させる。ステップＳ３１で、前検証モジュール３１８の実行結果を判定し、正常の場合は再びステップＳ２９に戻り、更新モジュール識別子３１９ａの一致するエントリがなくなるまで正当性検証処理を順に行う。
【００６５】
一方、ステップＳ３１でエラーを検出した場合、ステップＳ１９へ進み、更新処理の結果通知を行い、再びステップＳ１０で次回のプログラム更新要求を待って休止する。また、ステップＳ２９で、最後の正当性検証まで正常結果を得た場合、以降は実施の形態１と同じであり、ステップＳ１３へ進む。ステップＳ１３以降については、省略する。
【００６６】
以上のように本実施の形態によれば、端末３００側に前検証プラグインテーブル３１９と前検証手段３１７を設けて、新モジュール３０５ｂに対する正当性検証を行うための汎用的な機構を提供しているので、異なるソフトウェア・プラットホームへの適用が容易であると共に、更新前に更新モジュールの動作検証処理を実行するのでプログラム更新を行なうプログラム遠隔更新システムの信頼性を確保することができる。
【００６７】
また、前検証プラグインテーブル３１９に関して、前検証モジュール３１８を登録、変更、削除できる構造にしているので、製品出荷時に端末３００の種別や更新モジュール毎に正当性検証項目を設定でき、検証処理の柔軟性の向上とユーザ負担の軽減を図ることができる。
【００６８】
実施の形態６．
本実施の形態では、製品出荷後にホスト１００側の配信マネージャ１０５から新モジュール３０５ｂの配信とは別に、転送ファイル内に前検証モジュール３１８を添付して配信し、更新マネージャ３０６内に新たに前検証プラグインテーブル管理手段を設けて、前検証モジュール３１８の追加、変更、削除を行う場合について説明する。
【００６９】
図１６は、実施の形態６における端末３００の主メモリ３０４の構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図において、３２０は前検証プラグインテーブル３１９への前検証モジュール３１８の追加、変更、削除を行う前検証プラグインテーブル管理手段である。
【００７０】
図１７は、実施の形態６における転送ファイルのヘッダ３１４の構成図であり、図３と同一符号は同一又は相当部分を示し説明を省略する。
図において、３１４ｐは前検証モジュールセットの添付数、３１４ｑは前検証モジュール＃１の識別子、３１４ｒは前検証モジュール＃１のサイズ、３１４ｓは前検証モジュール＃１の予約配置アドレス、３１４ｔは前記三つ組から構成される前検証モジュールセットである。
【００７１】
次に動作について説明する。
図１８は、実施の形態６における更新マネージャ３０６の処理手順を示すフローチャートである。
図を用いて、更新マネージャ３０６の処理を説明する。更新マネージャ３０６はステップＳ１０で配信マネージャ１０５からのプログラム更新要求を待って休止しており、ホスト１００側の配信マネージャ１０５からプログラム更新要求があると、起床して応答する。
【００７２】
ステップＳ１１で転送ファイル受信手段において、ホスト１００側の配信マネージャ１０５が配信した転送ファイルを受信する。ステップＳ２５で、転送ファイルのヘッダ３１４内の添付モジュール構成フラグ３１４ｇを参照して、転送ファイル内に前検証モジュールセット３１４ｔが添付されているかチェックする。もし添付されていないなら、以降は実施の形態５と同じであり、ステップＳ２９へ進む。
また前検証モジュールセット３１４ｔが添付されているなら、ステップＳ３２で前検証プラグインテーブル管理手段３２０において、ヘッダ３１４内の前検証モジュールセットの添付数３１４ｐが最後のエントリに至るまでの間、前検証モジュールセット３１４ｔの情報に基づき、前検証モジュール３１２の登録処理を行う。
【００７３】
ステップＳ３３で前検証プラグインテーブル管理手段３２０において、前検証モジュール３１８を予約配置アドレス３１４ｓにメモリ配置すると共に、記憶装置３０２に配置したあと、予約配置アドレス情報を前検証プラグインテーブル３１９の前検証モジュールへのポインタ３１９ｂに設定する。なお、端末３００側のシステムプログラムに動的リンク手段が装備されている場合は、ステップＳ３３で前検証プラグインテーブル管理手段３２０において、動的リンク手段を介して決定された再配置アドレスを、前検証プラグインテーブル３１９の前検証モジュールへのポインタ３１９ｂに設定する。
【００７４】
次に、ステップＳ３２で、最後の前検証モジュールセット３１４ｔに対する登録処理が終了したら、ステップＳ３４で、再びヘッダ３１４内の添付モジュール構成フラグ３１４ｇを参照して、転送ファイル内に新モジュール３０５ｂが添付されているかチェックする。もし添付されてないなら、ステップＳ１９で更新処理の結果通知を行い、今回の処理は終了する。また、新モジュール３０５ｂが添付されているなら、以降は実施の形態５と同じであり、ステップＳ２９へ進む。ステップＳ２９以降については、省略する。
【００７５】
以上のように本実施の形態によれば、転送ファイル内に前検証モジュール３１８を添付して配信し、更新マネージャ３０６内に新たに前検証プラグインテーブル管理手段３２０を設けて、前検証モジュール３１８の追加、変更、削除を行うようにしているので、制御プログラム３０５の構成や機能の変更に合わせて正当性検証内容を常に最適な状態に維持することができ、プログラム遠隔更新システムの信頼性を向上することができる。
【００７６】
実施の形態７．
本実施の形態では、新たにホスト１００側の配信マネージャ１０５に検証モジュール・ベータベース管理手段と検証モジュール集積手段を設けて、新モジュール３０５ｂと新モジュール３０５ｂに対応する後検証モジュール３１１と対処モジュール３１２とによる組、または新モジュール３０５ｂと新モジュール３０５ｂに対応する前検証モジュール３１８とによる組を自動的に集積して、転送ファイルを生成する場合について説明する。
【００７７】
図１９は、実施の形態７におけるホスト１００の構成図であり、図１と同一符号は同一又は相当部分を示し説明を省略する。
図において、１０９は新モジュール３０５ｂと新モジュール３０５ｂに対応する後検証モジュール３１１と対処モジュール３１２とによる複数の組、または新モジュール３０５ｂと新モジュール３０５ｂに対応する前検証モジュール３１８とによる複数の組を管理するための検証モジュール・データベース管理手段、１１０は新モジュール３０５ｂに対応する後検証モジュール３１１と対処モジュール３１２とによる組、または新モジュール３０５ｂに対応する前検証モジュール３１８を集積する前検証モジュール集積手段、１１１は新モジュール３０５ｂと新モジュール３０５ｂに対応する後検証モジュール３１１と対処モジュール３１２とによる複数の組、または新モジュール３０５ｂと新モジュール３０５ｂに対応する前検証モジュール３１８とによる複数の組からなる一覧情報を保持する検証モジュール・データベースである。
【００７８】
図２０は、検証モジュール・データベース１１１の構成図である。
図において、１１１ａは更新モジュール識別子、１１１ｂは更新モジュール・バージョン番号、１１１ｃは更新モジュールのバージョン毎に対応する前検証モジュール識別子の一覧、１１１ｄは更新モジュールのバージョン毎に対応する後検証モジュール識別子の一覧、１１１ｅは前記四つ組から構成される検証モジュール・データベース・エントリである。
【００７９】
次に動作について説明する。
図２１は、実施の形態７における配信マネージャ１０５の処理手順を示すフローチャートである。
図を用いて、配信マネージャ１０５の処理を説明する。ホスト１００側で端末３００用の制御プログラム３０５の障害改修や機能追加等の理由により、新モジュール３０５ｂを生成した場合、通常ローカル環境で機能試験を実施する。この時の機能試験の一部は後検証モジュール３１１とし、またこの時のバージョン情報の組合せ等の動作条件は前検証モジュール３１８とし、プログラム開発者は、検証モジュール・データベース管理手段１０９を通じて、前検証モジュール識別子の一覧１１１ｃまたは後検証モジュール識別子の一覧１１１ｄに登録する。
【００８０】
ローカル環境での機能試験の結果、新モジュール３０５ｂがリリース可能と判断されたら、配信マネージャ１０５はステップＳ１で、端末３００や端末群４００に対してプログラム配信要求を発行する。この時、新モジュール３０５ｂの識別子とサイズ情報を送付する。ステップＳ３で、端末３００側の更新マネージャ３０６からの応答により、予約配置アドレス情報のほか、端末資源構成情報やプログラム管理情報を受信する。ステップＳ３で、返信された情報に照らして新モジュール３０５ｂの配信要否（または可否）を判定する。判定の結果、配信しない端末３００に対しては、以後何も行われない。
【００８１】
次に、ステップＳ３５で検証モジュール集積手段１１０において、検証モジュール・データベース１１１から新モジュール３０５ｂに合致する更新モジュール識別子１１１ａおよび更新モジュール・バージョン番号１１１ｂのエントリを検索し、前検証モジュール識別子の一覧１１１ｃまたは後検証モジュール識別子の一覧１１１ｄから対応するモジュール群を集積する。次に、ステップＳ４でプログラム生成手段１０６において、ホスト１００の記憶装置１０２に格納されている制御プログラム３０５を構成する既存モジュール群と、先に返信された予約配置アドレス情報から、新モジュール３０５ｂのアドレス解決処理を行う。ステップＳ５で転送ファイル生成手段１０７において、新たに生成された制御プログラム３０５から、アドレス解決済みの新モジュール３０５ｂを抜き出し、ヘッダ３１４を付加して転送ファイルを生成する。
【００８２】
さらに、転送ファイル内には、集積した後検証モジュール３１１と対処モジュール３１２の組または前検証モジュール３１８を含め、ヘッダ３１４内の添付モジュール構成フラグ３１４ｇにその旨を設定する。ステップＳ６で転送ファイル配信手段１０８において、配信対象の端末３００や端末群４００に対して、転送ファイルを配信する。最後に、配信マネージャ１０５はステップＳ９で、更新マネージャ３０６からの結果通知を受けて、配信履歴を記録して、一連の処理を終了する。
【００８３】
以上のように本実施の形態によれば、ホスト１００側に検証モジュール・データベース１１１と検証モジュール・データベース管理手段１０９と検証モジュール集積手段１１０を設けて、新モジュール３０５ｂに対応する後検証モジュール３１１と対処モジュール３１２とによる組、または新モジュール３０５ｂに対応する前検証モジュール３１８を自動的に集積して、転送ファイルを生成するようにしているので、転送ファイルに検証モジュールを添付する際の誤り混入を防ぎ、ユーザの負担を軽減することができ、プログラム遠隔更新システムの安全性を向上することができる。
【００８４】
実施の形態８．
本実施の形態では、新たに端末３００側の更新マネージャ３０６に検証モジュールロード手段と検証モジュールアンロード手段を設けて、ホスト１００側の配信マネージャ１０５から転送ファイルを受信した時に記憶装置３０２内の検証モジュールをロードし、更新処理が終了したあとに検証モジュールをアンロードする場合について説明する。
【００８５】
図２２は、実施の形態８における端末３００の構成図であり、図１３と同一符号は同一又は相当部分を示し説明を省略する。
図において、３２１は記憶装置３０２に格納されている後検証モジュール３１１と前検証モジュール３１８とによる検証モジュールをロードし前検証プラグインテーブル３１９および後検証プラグインテーブル３１３のエントリ内に検証モジュールの配置情報を登録するための検証モジュールロード手段、３２２は前検証プラグインテーブル３１９および後検証プラグインテーブル３１３に登録されている検証モジュールをアンロードするための検証モジュールアンロード手段、３２３は新モジュール３０５ｂの更新モジュール識別子に対応する後検証モジュール３１１と対処モジュール３１２の組または前検証モジュール３１８の一覧を保持する検証モジュール・データベースである。
なお、検証モジュール・データベース３２３内の構成は、図２０に示したホスト１００側の検証モジュール・データベース１１１と同様とする。
【００８６】
次に動作について説明する。
図２３は、実施の形態８における更新マネージャ３０６の処理手順を示すフローチャートである。
図を用いて、更新マネージャ３０６の処理を説明する。更新マネージャ３０６はステップＳ１０で配信マネージャ１０５からのプログラム更新要求を待って休止しており、ホスト１００側の配信マネージャ１０５からプログラム更新要求があると、起床して応答する。
【００８７】
ステップＳ１１で転送ファイル受信手段において、ホスト１００側の配信マネージャ１０５が配信した転送ファイルを受信する。ステップＳ３６で検証モジュールロード手段３２１において、転送ファイル・ヘッダ３１４内の更新モジュール識別子３１４ｂをキーとして、記憶装置３０２内の検証モジュール・データベース３２３を検索し、一致するエントリが見つかったら、検証モジュールをロードし、前検証プラグインテーブル３１９および後検証プラグインテーブル３１３のエントリ内に検証モジュールの配置情報を登録する。
【００８８】
ステップＳ２９以降の処理は、実施の形態５と同じであり、新モジュール３０５ｂに対する前検証、メモリ配置、更新実行、および後検証までを行う。最後に、ステップＳ１９で更新処理の結果通知を行ったあと、ステップＳ３７で検証モジュールアンロード手段３２２において、前検証プラグインテーブル３１９および後検証プラグインテーブル３１３に登録されている検証モジュールへのポインタをクリアし、検証モジュールをメモリ上から削除する。そして、再びステップＳ１０で次回のプログラム更新要求を待って休止する。
【００８９】
以上のように本実施の形態によれば、端末３００側に検証モジュール・データベース３２３と検証モジュールロード手段３２１と検証モジュールアンロード手段３２２を設けて、転送ファイルを受信した時に検証モジュール・データベース３２３を検索し、更新モジュール識別子３１４ｂに合致する検証モジュールをロードし、また更新処理が終了したあとに該検証モジュールをアンロードするようにしているので、プログラム更新要求がない時は更新モジュールをメモリ配置する必要がなく、端末３００側のメモリ資源の使用量を低く抑えることができる。
【００９０】
【発明の効果】
この発明は、以上説明したように、配信用コンピュータがサービス提供処理を実行する新モジュールを配信し、端末が制御プログラムのモジュールを配信用コンピュータにより配信された新モジュールに更新し、更新した新モジュールの動作検証処理を実行し、動作検証処理でエラーを検出した時にエラー対処処理を実行することにより、プログラム更新を行なうプログラム遠隔更新システムの信頼性を確保することができる。
【図面の簡単な説明】
【図１】実施の形態１のプログラム遠隔更新システムの構成図。
【図２】実施の形態１における後検証プラグインテーブル３１３の構成図。
【図３】実施の形態１における転送ファイルのヘッダの構成図。
【図４】実施の形態１における配信マネージャ１０５と更新マネージャ３０６と間の処理シーケンスを示す図。
【図５】実施の形態１における更新マネージャ３０６の処理手順を示すフローチャート。
【図６】実施の形態２における端末３００の構成図。
【図７】実施の形態２における更新マネージャ３０６の処理手順を示すフローチャート。
【図８】実施の形態３における後検証プラグインテーブル３１３の構成図。
【図９】実施の形態３における更新マネージャ３０６の処理手順を示すフローチャート。
【図１０】実施の形態４における端末３００の主メモリ３０４の構成図。
【図１１】実施の形態４における転送ファイルのヘッダ３１４の構成図。
【図１２】実施の形態４における更新マネージャ３０６の処理手順を示すフローチャート。
【図１３】実施の形態５における端末３００の主メモリ３０４の構成図。
【図１４】実施の形態５における前検証プラグインテーブル３１９の構成図。
【図１５】実施の形態５における更新マネージャ３０６の処理手順を示すフローチャート。
【図１６】実施の形態６における端末３００の主メモリ３０４の構成図。
【図１７】実施の形態６における転送ファイルのヘッダ３１４の構成図。
【図１８】実施の形態６における更新マネージャ３０６の処理手順を示すフローチャート。
【図１９】実施の形態７におけるホスト１００の構成図。
【図２０】実施の形態７における検証モジュール・データベース１１１の構成図。
【図２１】実施の形態７における配信マネージャ１０５の処理手順を示すフローチャート。
【図２２】実施の形態８における端末３００の構成図。
【図２３】実施の形態８における更新マネージャ３０６の処理手順を示すフローチャート。
【図２４】従来のプログラム検証システムの構成図。
【符号の説明】
１００  ホスト（配信ホスト）、１０１  ＣＰＵ、１０２  記憶装置、１０３外部通信インタフェース、１０４  主メモリ、１０５、１０６  プログラム生成手段、１０７  転送ファイル生成手段、１０８  転送ファイル配信手段、２００  通信ネットワーク、３００  端末、３０１  外部通信インタフェース、３０２  記憶装置、３０３  ＣＰＵ、３０４  主メモリ、３０５  制御プログラム、３０５ａ  旧モジュール、３０５ｂ  新モジュール、３０６  更新マネージャ、３０７  転送ファイル受信手段、３０８  プログラム配置手段、３０９  プログラム更新実行手段、３１０  後検証手段、３１１  後検証モジュール、３１２  対処モジュール、３１３  後検証プラグインテーブル。
【図１】
2004326287.tif 000003
【図２】
2004326287.tif 000004
【図３】
2004326287.tif 000005
【図４】
2004326287.tif 000006
【図５】
2004326287.tif 000007
【図６】
2004326287.tif 000008
【図７】
2004326287.tif 000009
【図８】
2004326287.tif 000010
【図９】
2004326287.tif 000011
【図１０】
2004326287.tif 000012
【図１１】
2004326287.tif 000013
【図１２】
2004326287.tif 000014
【図１３】
2004326287.tif 000015
【図１４】
2004326287.tif 000016
【図１５】
2004326287.tif 000017
【図１６】
2004326287.tif 000018
【図１７】
2004326287.tif 000019
【図１８】
2004326287.tif 000020
【図１９】
2004326287.tif 000021
【図２０】
2004326287.tif 000022
【図２１】
2004326287.tif 000023
【図２２】
2004326287.tif 000024
【図２３】
2004326287.tif 000025
【図２４】
2004326287.tif 000026