(57)【要約】【課題】低コストで、障害から容易に復旧し、更新プログラム自体も更新できる遠隔更新の技術を提供する。【解決手段】二つの更新プログラムの一方が、応用ソフトウェアと他方の更新プログラムを所定の通信手段経由のダウンロードにより更新する。更新中の電源断などの事故による予期せぬ停止で更新が失敗したり、更新でダウンロードした新しいプログラムに障害があっても、更新処理を行った側の古い更新プログラムが無傷で残るため再度起動時等にこれにより更新をやり直すことができる。更新プログラム自体も更新可能となる。更新プログラムの更新は二段階で行い、すなわち、新しい更新プログラムは、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認する。【選択図】  図１
2005284902.tif 000002
【特許請求の範囲】
【請求項１】
応用ソフトウェアと、二つの更新プログラムと、を用いる端末装置において、
前記更新プログラムは、前記端末装置のコンピュータを制御することにより、前記応用ソフトウェア及び他方の更新プログラムを所定の通信手段経由のダウンロードにより更新する手段を実現する
ことを特徴とする端末装置。
【請求項２】
それぞれ更新プログラムを格納するための二つの記憶領域と、応用ソフトウェアの記憶領域と、を備える端末装置において、
前記二つの記憶領域の少なくとも一方に格納された更新プログラムが、前記端末装置のコンピュータを制御することにより、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて前記応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、所定の通信手段経由でダウンロードし該当する記憶領域に書き込むことで更新する手段を実現し、
起動選択プログラムが、前記端末装置のコンピュータを制御することにより、前記二つの記憶領域のいずれかに格納された更新プログラム又は前記応用ソフトウェアを選択して実行する手段を実現する、
ことを特徴とする端末装置。
【請求項３】
前記新しい更新プログラムは、前記コンピュータを制御することにより、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認する手段を実現する
ことを特徴とする請求項２記載の端末装置。
【請求項４】
前記各記憶領域はコンピュータの補助記憶域上に構成され、
現用の前記更新プログラム及び前記起動選択プログラムは、前記コンピュータを制御することにより、前記新しい更新プログラムを前記補助記憶域から読み出して前記コンピュータの主記憶域上に仮起動させ、
仮起動した新しい更新プログラムは、前記コンピュータを制御することにより、前記通信手段を用いて補助記憶域上の自身のファイルを新しいファイルに更新し、
前記更新に成功すると、前記新しい更新プログラム及び前記起動選択プログラムは、前記コンピュータを制御することにより、その新しいファイルから新しい更新プログラムを正式起動させる
ことを特徴とする請求項２又は３記載の端末装置。
【請求項５】
前記起動選択プログラムは、前記コンピュータを制御することにより、前記二つの記憶領域について起動対象と更新対象を切り換える切換情報と、前記二つの各記憶領域について少なくとも起動許可／更新失敗／初回更新済のいずれかを示す各起動許可設定フラグと、を起動制御情報として用いることによりいずれかの更新プログラムを起動し、
起動されている前記更新プログラムは、前記コンピュータを制御することにより、他方の更新プログラムを更新対象として更新するときは、当該他方の前記起動許可設定フラグを更新失敗にセットし、新しい更新プログラムをダウンロードして該当する前記記憶領域へ書き込み、その成功時は当該他方の前記起動許可設定フラグを初回更新済にセットして前記起動選択プログラムを起動し、
前記起動選択プログラムは、前記コンピュータを制御することにより、起動許可設定フラグが初回更新済の更新プログラムがあるときはその新しい更新プログラムを起動し、ないときは前記切換情報の示す更新プログラムを起動し、
起動された新しい更新プログラムは、前記コンピュータを制御することにより、その更新プログラム自体の起動許可設定フラグを更新失敗にセットし、当該新しい更新プログラムをダウンロードして上書きし、その成功時はその起動許可設定フラグを起動許可にセットし、
起動されている前記更新プログラムは、前記コンピュータを制御することにより、前記応用ソフトウェアを更新するときは、応用ソフトウェアに対応して設けられた更新フラグを未更新にセットし、応用ソフトウェアをダウンロードして該当記憶領域に書き込み、その成功時は更新フラグを更新済にセットし、
起動されている前記更新プログラムは、前記コンピュータを制御することにより、前記更新フラグが更新済の場合に、前記応用ソフトウェアを実行する
ことを特徴とする請求項２から４のいずれか一項に記載の端末装置。
【請求項６】
前記切換情報は、更新プログラムの新しさを示すプログラム番号であり、
前記起動選択プログラムは、前記コンピュータを制御することにより、二つの更新プログラムの起動許可設定フラグがいずれも起動許可である場合、プログラム番号が大きい方の更新プログラムを起動する
ことを特徴とする請求項５記載の端末装置。
【請求項７】
前記更新プログラム又は前記更新プログラムを起動する起動選択プログラムは、端末装置のリブート後に実行するように構成されたことを特徴とする請求項２から６のいずれか一項に記載の端末装置。
【請求項８】
前記いずれかのプログラムが前記コンピュータを制御することにより、
前記更新プログラムの更新失敗を検出した場合に、所定通信先への通知、又は、所定タイミングでの再試行、の少なくともいずれかを、
事前設定、又は、外部からの指令、の少なくともいずれかにしたがって行う手段を
実現することを特徴とする請求項１から７のいずれか一項に記載の端末装置。
【請求項９】
前記コンピュータの書き換え可能不揮発記憶装置に三つのパーティションを設けることによりそれぞれ、前記各更新プログラムのための二つの記憶領域と、前記応用ソフトウェアのための記憶領域を実現し、
前記起動選択プログラムは前記コンピュータを制御することにより、前記更新プログラムを、前記コンピュータの主記憶域上に設けたＲＡＭディスクドライブ上で必要なデータファイルとともに展開し実行する
ことを特徴とする請求項２から８のいずれか一項に記載の端末装置。
【請求項１０】
リブート時を含むブート時に、前記コンピュータのＣＰＵからの指令信号を受けて、ハードウェアデバイスを含む端末装置の全体を所定の初期状態にリセットしたうえ、所定のブートＲＯＭに格納された前記起動選択プログラムを起動するシステムリセット手段を備えたことを特徴とする請求項２から９のいずれかに記載の端末装置。
【請求項１１】
応用ソフトウェアと、二つの更新プログラムと、を用いる端末装置の制御方法において、
前記更新プログラムが、前記端末装置のコンピュータを制御することにより、前記応用ソフトウェア及び他方の更新プログラムを、所定の通信手段経由のダウンロードにより更新する
ことを特徴とする端末装置。
【請求項１２】
それぞれ更新プログラムを格納するための二つの記憶領域と、応用ソフトウェアの記憶領域と、を備える端末装置の制御方法において、
前記二つの記憶領域の少なくとも一方に格納された更新プログラムが、前記端末装置のコンピュータを制御することにより、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて前記応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、所定の通信手段経由でダウンロードし該当する記憶領域に書き込むことで更新し、
起動選択プログラムが、前記端末装置のコンピュータを制御することにより、前記二つの記憶領域のいずれかに格納された更新プログラム又は前記応用ソフトウェアを選択して実行する、
ことを特徴とする端末装置の制御方法。
【請求項１３】
前記新しい更新プログラムが、前記コンピュータを制御することにより、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認する
ことを特徴とする請求項１２記載の端末装置の制御方法。
【請求項１４】
前記各記憶領域はコンピュータの補助記憶域上に構成し、
現用の前記更新プログラム及び前記起動選択プログラムが、前記コンピュータを制御することにより、前記新しい更新プログラムを前記補助記憶域から読み出して前記コンピュータの主記憶域上に仮起動させ、
仮起動した新しい更新プログラムが、前記コンピュータを制御することにより、前記通信手段を用いて補助記憶域上の自身のファイルを新しいファイルに更新し、
前記更新に成功すると、前記新しい更新プログラム及び前記起動選択プログラムが、前記コンピュータを制御することにより、その新しいファイルから新しい更新プログラムを正式起動させる
ことを特徴とする請求項１２又は１３記載の端末装置の制御方法。
【請求項１５】
前記起動選択プログラムが、前記コンピュータを制御することにより、前記二つの記憶領域について起動対象と更新対象を切り換える切換情報と、前記二つの各記憶領域について少なくとも起動許可／更新失敗／初回更新済のいずれかを示す各起動許可設定フラグと、を起動制御情報として用いることによりいずれかの更新プログラムを起動し、
起動されている前記更新プログラムが、前記コンピュータを制御することにより、他方の更新プログラムを更新対象として更新するときは、当該他方の前記起動許可設定フラグを更新失敗にセットし、新しい更新プログラムをダウンロードして該当する前記記憶領域へ書き込み、その成功時は当該他方の前記起動許可設定フラグを初回更新済にセットして前記起動選択プログラムを起動し、
前記起動選択プログラムが、前記コンピュータを制御することにより、起動許可設定フラグが初回更新済の更新プログラムがあるときはその新しい更新プログラムを起動し、ないときは前記切換情報の示す更新プログラムを起動し、
起動された新しい更新プログラムが、前記コンピュータを制御することにより、その更新プログラム自体の起動許可設定フラグを更新失敗にセットし、当該新しい更新プログラムをダウンロードして上書きし、その成功時はその起動許可設定フラグを起動許可にセットし、
起動されている前記更新プログラムが、前記コンピュータを制御することにより、前記応用ソフトウェアを更新するときは、応用ソフトウェアに対応して設けられた更新フラグを未更新にセットし、応用ソフトウェアをダウンロードして該当記憶領域に書き込み、その成功時は更新フラグを更新済にセットし、
起動されている前記更新プログラムが、前記コンピュータを制御することにより、前記更新フラグが更新済の場合に、前記応用ソフトウェアを実行する
ことを特徴とする請求項１２から１４のいずれか一項に記載の端末装置の制御方法。
【請求項１６】
前記切換情報は、更新プログラムの新しさを示すプログラム番号であり、
前記起動選択プログラムは、前記コンピュータを制御することにより、二つの更新プログラムの起動許可設定フラグがいずれも起動許可である場合、プログラム番号が大きい方の更新プログラムを起動する
ことを特徴とする請求項１５記載の端末装置の制御方法。
【請求項１７】
前記更新プログラム又は前記更新プログラムを起動する起動選択プログラムを、端末装置のリブート後に実行することを特徴とする請求項１２から１６のいずれか一項に記載の端末装置の制御方法。
【請求項１８】
前記いずれかのプログラムが前記コンピュータを制御することにより、
前記更新プログラムの更新失敗を検出した場合に、所定通信先への通知、又は、所定タイミングでの再試行、の少なくともいずれかを、
事前設定、又は、外部からの指令、の少なくともいずれかにしたがって行う
ことを特徴とする請求項１１から１７のいずれか一項に記載の端末装置の制御方法。
【請求項１９】
前記コンピュータの書き換え可能不揮発記憶装置に三つのパーティションを設けることによりそれぞれ、前記各更新プログラムのための二つの記憶領域と、前記応用ソフトウェアのための記憶領域を実現し、
前記起動選択プログラムが前記コンピュータを制御することにより、前記更新プログラムを、前記コンピュータの主記憶域上に設けたＲＡＭディスクドライブ上で必要なデータファイルとともに展開し実行する
ことを特徴とする請求項１２から１８のいずれか一項に記載の端末装置の制御方法。
【請求項２０】
リブート時を含むブート時に、前記コンピュータのＣＰＵからの指令信号を受けて、ハードウェアデバイスを含む端末装置の全体を所定の初期状態にリセットしたうえ、所定のブートＲＯＭに格納された前記起動選択プログラムを起動するプロセスを含むことを特徴とする請求項１２から１９のいずれかに記載の端末装置の制御方法。
【請求項２１】
応用ソフトウェアと、二つの更新プログラムにより、端末装置のコンピュータを制御する端末装置の制御プログラムにおいて、
前記更新プログラムは前記コンピュータに、前記応用ソフトウェア及び他方の更新プログラムを、所定の通信手段経由のダウンロードにより更新させる
ことを特徴とする端末装置の制御プログラム。
【請求項２２】
それぞれ更新プログラムを格納するための二つの記憶領域と、応用ソフトウェアの記憶領域と、を備える端末装置のコンピュータを制御する端末装置の制御プログラムにおいて、
前記二つの記憶領域の少なくとも一方に格納された更新プログラムであって前記コンピュータに、予め決められた更新条件が成立したことを判定させ、この判定を受けてその更新条件に応じて前記応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、所定の通信手段経由でダウンロードさせ該当する記憶領域に書き込ませることで更新させる更新プログラムと、
前記コンピュータに、前記二つの記憶領域のいずれかに格納された更新プログラム又は前記応用ソフトウェアを選択して実行する起動選択プログラムと、
を含むことを特徴とする端末装置の制御プログラム。
【請求項２３】
前記新しい更新プログラムは、前記コンピュータに、その更新プログラム自体を前記通信手段経由で更新させることにより正常動作を確認させる
ことを特徴とする請求項２２記載の端末装置の制御プログラム。
【請求項２４】
前記各記憶領域はコンピュータの補助記憶域上に構成し、
現用の前記更新プログラム及び前記起動選択プログラムが、前記コンピュータに、前記新しい更新プログラムを前記補助記憶域から読み出させて前記コンピュータの主記憶域上に仮起動させ、
仮起動した新しい更新プログラムが、前記コンピュータに、前記通信手段を用いて補助記憶域上の自身のファイルを新しいファイルに更新させ、
前記更新に成功すると、前記新しい更新プログラム及び前記起動選択プログラムが、前記コンピュータに、その新しいファイルから新しい更新プログラムを正式起動させる
ことを特徴とする請求項２２又は２３記載の端末装置の制御プログラム。
【請求項２５】
前記起動選択プログラムは、前記コンピュータに、前記二つの記憶領域について起動対象と更新対象を切り換える切換情報と、前記二つの各記憶領域について少なくとも起動許可／更新失敗／初回更新済のいずれかを示す各起動許可設定フラグと、を起動制御情報として用いることによりいずれかの更新プログラムを起動させ、
起動されている前記更新プログラムは、前記コンピュータに、他方の更新プログラムを更新対象として更新させるときは、当該他方の前記起動許可設定フラグを更新失敗にセットさせ、新しい更新プログラムをダウンロードさせて該当する前記記憶領域へ書き込ませ、その成功時は当該他方の前記起動許可設定フラグを初回更新済にセットさせて前記起動選択プログラムを起動させ、
前記起動選択プログラムは、前記コンピュータに、起動許可設定フラグが初回更新済の更新プログラムがあるときはその新しい更新プログラムを起動させ、ないときは前記切換情報の示す更新プログラムを起動させ、
起動された新しい更新プログラムは、前記コンピュータに、その更新プログラム自体の起動許可設定フラグを更新失敗にセットさせ、当該新しい更新プログラムをダウンロードさせて上書きさせ、その成功時はその起動許可設定フラグを起動許可にセットさせ、
起動されている前記更新プログラムは、前記コンピュータに、前記応用ソフトウェアを更新させるときは、応用ソフトウェアに対応して設けられた更新フラグを未更新にセットさせ、応用ソフトウェアをダウンロードさせて該当記憶領域に書き込ませ、その成功時は更新フラグを更新済にセットさせ、
起動されている前記更新プログラムは、前記コンピュータに、前記更新フラグが更新済の場合に、前記応用ソフトウェアを実行させる
ことを特徴とする請求項２２から２４のいずれか一項に記載の端末装置の制御プログラム。
【請求項２６】
前記切換情報は、更新プログラムの新しさを示すプログラム番号であり、
前記起動選択プログラムは、前記コンピュータに、二つの更新プログラムの起動許可設定フラグがいずれも起動許可である場合、プログラム番号が大きい方の更新プログラムを起動させる
ことを特徴とする請求項２５記載の端末装置の制御プログラム。
【請求項２７】
前記コンピュータに、前記更新プログラム又は前記更新プログラムを起動する起動選択プログラムを、端末装置のリブート後に実行させることを特徴とする請求項２２から２６のいずれか一項に記載の端末装置の制御プログラム。
【請求項２８】
前記いずれかのプログラムが前記コンピュータに、前記更新プログラムの更新失敗を検出させ、この検出を受けて、所定通信先への通知、又は、所定タイミングでの再試行、の少なくともいずれかを、
事前設定、又は、外部からの指令、の少なくともいずれかにしたがって行わせる
ことを特徴とする請求項２１から２７のいずれか一項に記載の端末装置の制御プログラム。
【請求項２９】
前記コンピュータの書き換え可能不揮発記憶装置に三つのパーティションを設けることによりそれぞれ、前記各更新プログラムのための二つの記憶領域と、前記応用ソフトウェアのための記憶領域を実現し、
前記起動選択プログラムは前記コンピュータに、前記更新プログラムを、前記コンピュータの主記憶域上に設けたＲＡＭディスクドライブ上で必要なデータファイルとともに展開し実行させる
ことを特徴とする請求項２２から２８のいずれか一項に記載の端末装置の制御プログラム。
【請求項３０】
リブート時を含むブート時に、前記コンピュータのＣＰＵに所定の指令信号を出力させることにより、ハードウェアデバイスを含む端末装置の全体を所定の初期状態にリセットさせたうえ、所定のブートＲＯＭに格納された前記起動選択プログラムを起動させることを特徴とする請求項２２から２９のいずれかに記載の端末装置の制御プログラム。
【請求項３１】
所定の通信手段経由で、所定の端末装置からのダウンロード要求に応じて新しい更新プログラム又は応用ソフトウェアを提供するホスト装置において、
ホスト装置が提供するその更新プログラムは、前記端末装置においてそれぞれ更新プログラムを格納するための二つの記憶領域の少なくとも一方に格納され、前記端末装置のコンピュータを制御することにより、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて前記端末装置の応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、前記所定の通信手段経由でホスト装置からダウンロードし該当する記憶領域に書き込むことで更新する手段を実現するものである
ことを特徴とするホスト装置。
【請求項３２】
前記更新プログラムは、前記新しい更新プログラムとして最初に実行されるとき、前記コンピュータを制御することにより、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認する手段を実現するものである
ことを特徴とする請求項３１記載のホスト装置。
【請求項３３】
請求項１から１０のいずれか一項に記載の端末装置と、
請求項３１又は３２に記載のホスト装置と、
を備えることを特徴とする遠隔更新システム。
【請求項３４】
所定の通信手段経由で、所定の端末装置からのダウンロード要求に応じて新しい更新プログラム又は応用ソフトウェアを、ホスト装置が提供するホスト装置の制御方法において、
ホスト装置が提供するその更新プログラムは、前記端末装置においてそれぞれ更新プログラムを格納するための二つの記憶領域の少なくとも一方に格納され、前記端末装置のコンピュータを制御することにより、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて前記端末装置の応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、前記所定の通信手段経由でホスト装置からダウンロードし該当する記憶領域に書き込むことで更新するものである
ことを特徴とするホスト装置の制御方法。
【請求項３５】
前記更新プログラムは、前記新しい更新プログラムとして最初に実行されるとき、前記コンピュータを制御することにより、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認するものである
ことを特徴とする請求項３４記載のホスト装置の制御方法。
【請求項３６】
請求項１１から２０のいずれか一項に記載の端末装置の制御方法と、
請求項３４又は３５に記載のホスト装置の制御方法と、
を組み合わせることを特徴とする遠隔更新方法。
【請求項３７】
ホスト装置のコンピュータを制御することにより、所定の通信手段経由で、所定の端末装置からのダウンロード要求に応じて新しい更新プログラム又は応用ソフトウェアを、ホスト装置に提供させるホスト装置の制御プログラムにおいて、
ホスト装置が提供するその更新プログラムは、前記端末装置においてそれぞれ更新プログラムを格納するための二つの記憶領域の少なくとも一方に格納され、前記端末装置のコンピュータを制御することにより、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて前記端末装置の応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、前記所定の通信手段経由でホスト装置からダウンロードし該当する記憶領域に書き込むことで更新するものである
ことを特徴とするホスト装置の制御プログラム。
【請求項３８】
前記更新プログラムは、前記新しい更新プログラムとして最初に実行されるとき、前記コンピュータを制御することにより、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認するものである
ことを特徴とする請求項３７記載のホスト装置の制御プログラム。
【請求項３９】
請求項２１から３０のいずれか一項に記載の端末装置の制御プログラムと、
請求項３７又は３８に記載のホスト装置の制御プログラムと、
を組み合わせることを特徴とする遠隔更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種端末装置の制御プログラムについて、低コストで、障害から容易に復旧し、更新プログラム自体も更新できる遠隔更新の技術に関する。
【背景技術】
【０００２】
近年、情報処理及び通信技術の発達に伴い、制御プログラムを使った各種のネットワーク機器等の情報処理装置や自動販売機などの端末装置について、遠隔更新（リモートアップデート）の技術が提案されている。これは、端末装置が、遠隔の運用拠点にあるホスト装置から、新しいプログラムと書き換え指令を通信回線で受信し、制御プログラムを更新するものである。このような遠隔更新により、一部の設定ファイルなどの小さな保守に留まらず、リモート保守のための通信モジュール（例えば、ＴＣＰ／ＩＰモジュールなど）を含む、システムの大部分を書き換えようとする場合、次のリスクがある。
【０００３】
第一は、予期せぬ停止による障害である。すなわち、書き換え途中に停電などによって装置が停止すると、制御プログラムが上書き途中となって破壊され装置が正常に動作しなくなることがあり、遠隔地からは復旧不能になることが多い。
【０００４】
第二は、新しいプログラムの障害で、これは、新たに書き換えた制御プログラムに障害があって装置が正常に動作しなくなる場合である。テスト済みの制御プログラムで書き換えた場合でも、装置やネットワークの設定状態によって発生するような障害の場合、実際の装置に適用してみてはじめて障害が顕在化し、それにより遠隔地からは復旧不能になることがある。
【０００５】
上記のようなリスクに対し、従来では、特許文献１のように、新しいプログラムをフラッシュＲＡＭの予備領域にいったん受信後、そこからメイン領域にコピーすることで、予期せぬ停止による制御プログラムの破壊を避ける提案（「予備領域からのコピー」と呼ぶ）があった。また、特許文献２のように、制御プログラムを二重化して現用と予備用を並存させ、予備用を書き換えて障害が発生すれば現用に戻すことで信頼性を確保する提案（「制御プログラムの二重化」と呼ぶ）もあった。
【特許文献１】特開２００３−１２２５９０
【特許文献２】特開平３−３３９５９
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、予備領域からのコピー（特許文献１）では、予期せぬ停止による障害は回避できるが、メイン領域を上書きするためプログラムを旧バージョンには戻せず、新しいプログラムの障害には対処できなかった。
【０００７】
また、制御プログラムの二重化（特許文献２）には、次のような問題点があった。第一に、ソフトウェアの受信・更新を行う更新プログラム自体は更新対象にできない限界があるため、更新プログラム自体の障害や、ネットワークプロトコルやホスト計算機の変更に対処できなかった。第二に、一般的にソフトウェアが正常に動作するかどうかの判断は非常に困難であるが、特許文献２では、更新されたソフトウェアが正常に動作するか検出する手段が記述されておらず（特に第５図のステップ４−７）、信頼性が不十分であった。第三に、更新対象となるソフトウェア全体の二重化を要するため、ソフトウェアを記録するための記憶装置の大容量化が必須で、コスト高となる問題もあった。
【０００８】
本発明は、上記のような従来技術の課題を解決するもので、その目的は、低コストで、障害から容易に復旧し、更新プログラム自体も更新できる遠隔更新の技術を提供することである。また、本発明の他の目的は、更新される新しい更新プログラムが正常に動作するか確実に検出する遠隔更新の技術を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明の一態様では（請求項１，１１，２１）、端末装置、その制御方法又は制御プログラムのいずれか一つにおいて、応用ソフトウェアと、二つの更新プログラムと、を用いる場合に、前記更新プログラムは、前記端末装置のコンピュータを制御することにより、前記応用ソフトウェア及び他方の更新プログラムを所定の通信手段経由のダウンロードにより更新することを特徴とする。
【００１０】
本発明の他の態様では（請求項２，１２，２２）、それぞれ更新プログラムを格納するための二つの記憶領域と、応用ソフトウェアの記憶領域と、を用いる端末装置、その制御方法又は制御プログラムのいずれか一つにおいて、前記二つの記憶領域の少なくとも一方に格納された更新プログラムが、前記端末装置のコンピュータを制御することにより、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて前記応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、所定の通信手段経由でダウンロードし該当する記憶領域に書き込むことで更新し、起動選択プログラムが、前記端末装置のコンピュータを制御することにより、前記二つの記憶領域のいずれかに格納された更新プログラム又は前記応用ソフトウェアを選択して実行する、ことを特徴とする。
【００１１】
また、本発明をホスト装置、その制御方法又は制御プログラムに関する観点から捉えれば（請求項３１，３４，３７）、ホスト装置のコンピュータを制御することにより、所定の通信手段経由で、所定の端末装置からのダウンロード要求に応じて新しい更新プログラム又は応用ソフトウェアをホスト装置が提供するホスト装置、その制御方法又は制御プログラムのいずれか一つにおいて、ホスト装置が提供するその更新プログラムは、前記端末装置においてそれぞれ更新プログラムを格納するための二つの記憶領域の少なくとも一方に格納され、前記端末装置のコンピュータを制御することにより、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて前記端末装置の応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、前記所定の通信手段経由でホスト装置からダウンロードし該当する記憶領域に書き込むことで更新するものであることを特徴とする。
【００１２】
本発明では、二重化した更新プログラムの一方に、他方の更新と、応用ソフトウェアの更新を行わせるので、更新中の電源断などの事故による予期せぬ停止で更新が失敗したり、更新でダウンロードした新しいプログラムに障害があっても、更新処理を行った側の古い更新プログラムが無傷で残るため再度起動時等にこれにより更新をやり直すことができる。このため、予期せぬ停止やプログラムの障害にも対応可能となり復旧不能が回避できて信頼性が向上し、更新プログラム自体も更新可能となって運用の柔軟性が増し、応用ソフトウェアの二重化のための余分な記憶容量も不要となってコストも低減される。なお、端末装置の工場出荷や据付直後の状態では、少なくとも一つの更新プログラムだけあれば、他方の領域の更新プログラムや応用ソフトウェアは、その更新プログラムが更新と同じ要領で新規ダウンロードし書込みすることで用意することができる。
【００１３】
本発明の他の態様では（請求項３，１３，２３）、さらに、前記新しい更新プログラムは、前記コンピュータを制御することにより、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認することを特徴とする。
【００１４】
また、本発明をホスト装置、その制御方法又は制御プログラムに関する観点で捉えれば（請求項３２，３５，３８）、前記更新プログラムは、前記新しい更新プログラムとして最初に実行されるとき、前記コンピュータを制御することにより、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認するものであることを特徴とする。
【００１５】
また、本発明は、以上のような端末装置とホスト装置と備えたことを特徴とする遠隔更新システム（請求項３３）、以上のような端末装置の制御方法とホスト装置の制御方法とを組み合わせることを特徴とする遠隔更新方法（請求項３６）、以上のような端末装置の制御プログラムとホスト装置の制御プログラムとを組み合わせることを特徴とする遠隔更新プログラム（請求項３９）としても把握可能である。
【００１６】
これらの態様では、さらに、新しい更新プログラムが自分自身を更新することにより、少なくとも自分自身を更新できるだけの正しい動作を容易かつ確実に確認可能となり、この際に更新プログラムの障害が判明しても古い方の更新プログラムにより、後で、障害を修正したものに再度更新し直すことができる。
【００１７】
本発明の他の態様では（請求項４，１４，２４）、さらに、前記各記憶領域はコンピュータの補助記憶域上に構成し、現用の前記更新プログラム及び前記起動選択プログラムが、前記コンピュータを制御することにより、前記新しい更新プログラムを前記補助記憶域から読み出して前記コンピュータの主記憶域上に仮起動させ、仮起動した新しい更新プログラムが、前記コンピュータを制御することにより、前記通信手段を用いて補助記憶域上の自身のファイルを新しいファイルに更新し、前記更新に成功すると、前記新しい更新プログラム及び前記起動選択プログラムが、前記コンピュータを制御することにより、その新しいファイルから新しい更新プログラムを正式起動させることを特徴とする。
【００１８】
これらの態様では、さらに、いったん更新された更新プログラムのファイルをＨＤＤなどの補助記憶域からＲＡＭなどの主記憶域上に、フラグを用いた起動制御情報などで仮起動させるので、補助記憶域上のその更新プログラム自体のファイルを円滑容易に更新でき、かつ、その失敗の場合は現用の更新プログラムに容易に戻ることができる。
【００１９】
本発明の他の態様では（請求項５，１５，２５）、前記起動選択プログラムが、前記コンピュータを制御することにより、前記二つの記憶領域について起動対象と更新対象を切り換える切換情報と、前記二つの各記憶領域について少なくとも起動許可／更新失敗／初回更新済のいずれかを示す各起動許可設定フラグと、を起動制御情報として用いることによりいずれかの更新プログラムを起動し、起動されている前記更新プログラムが、前記コンピュータを制御することにより、他方の更新プログラムを更新対象として更新するときは、当該他方の前記起動許可設定フラグを更新失敗にセットし、新しい更新プログラムをダウンロードして該当する前記記憶領域へ書き込み、その成功時は当該他方の前記起動許可設定フラグを初回更新済にセットして前記起動選択プログラムを起動し、前記起動選択プログラムが、前記コンピュータを制御することにより、起動許可設定フラグが初回更新済の更新プログラムがあるときはその新しい更新プログラムを起動し、ないときは前記切換情報の示す更新プログラムを起動し、起動された新しい更新プログラムが、前記コンピュータを制御することにより、その更新プログラム自体の起動許可設定フラグを更新失敗にセットし、当該新しい更新プログラムをダウンロードして上書きし、その成功時はその起動許可設定フラグを起動許可にセットし、起動されている前記更新プログラムが、前記コンピュータを制御することにより、前記応用ソフトウェアを更新するときは、応用ソフトウェアに対応して設けられた更新フラグを未更新にセットし、応用ソフトウェアをダウンロードして該当記憶領域に書き込み、その成功時は更新フラグを更新済にセットし、起動されている前記更新プログラムが、前記コンピュータを制御することにより、前記更新フラグが更新済の場合に、前記応用ソフトウェアを実行することを特徴とする。
【００２０】
これらの態様では、さらに、切換情報や起動許可設定フラグなどの起動制御情報により、二度の更新により二段階的に行われる更新プログラムの更新を含め、状態に応じた起動対象の選択と起動の制御を簡潔確実なアルゴリズムで容易に実装可能となる。
【００２１】
本発明の他の態様では（請求項６，１６，２６）、さらに、前記切換情報は、更新プログラムの新しさを示すプログラム番号であり、前記起動選択プログラムは、前記コンピュータを制御することにより、二つの更新プログラムの起動許可設定フラグがいずれも起動許可である場合、プログラム番号が大きい方の更新プログラムを起動することを特徴とする。
【００２２】
これらの態様では、それぞれの更新プログラムのプログラム番号を更新ごとにバージョン番号などにしたがって増大させ、それを比較するという単純なアルゴリズムでどちらを起動すべきか確実容易に判定可能となる。なお、他の変形例として、プログラム番号を十分大きな初期値から減少させて小さい方を選択したり、文字コードやアルファベットを用いる例も本発明の範囲に属する。
【００２３】
本発明の他の態様では（請求項７，１７，２７）、前記更新プログラム又は前記更新プログラムを起動する起動選択プログラムを、端末装置のリブート後に実行することを特徴とする。
【００２４】
これらの態様では、ハードウェア設定などの実行履歴がリセットされたシステムのリブート後の状態で、新しい更新プログラムが自分自身を更新して正常動作を確認検証できるので、実行履歴によって発生しなくなる障害があったとしてもそれまでの実行履歴に左右されることなく検証時に確実に検出できる。
【００２５】
本発明の他の態様では（請求項８，１８，２８）、さらに、前記いずれかのプログラムが前記コンピュータを制御することにより、前記更新プログラムの更新失敗を検出した場合に、ホストなど所定通信先への通知、又は、所定タイミングでの再試行、の少なくともいずれかを、事前設定、又は、外部からの指令、の少なくともいずれかにしたがって行うことを特徴とする。
【００２６】
これらの態様では、さらに、更新プログラムの更新失敗を検出すると、ホストなどへ通知したり、何分後、何時間後、何日後などのタイミングで再試行するなどの対処動作を、事前設定された固定動作や条件判断にしたがって、或いは、ホスト装置からの指令や作業員が現場で接続するコントローラからの指令などにしたがって、確実に実行するので、運用管理の柔軟性と信頼性が一層向上する。
【００２７】
本発明の他の態様では（請求項９，１９，２９）、さらに、前記コンピュータの書き換え可能不揮発記憶装置に三つのパーティションを設けることによりそれぞれ、前記各更新プログラムのための二つの記憶領域と、前記応用ソフトウェアのための記憶領域を実現し、前記起動選択プログラムが前記コンピュータを制御することにより、前記更新プログラムを、前記コンピュータの主記憶域上に設けたＲＡＭディスクドライブ上で必要なデータファイルとともに展開し実行することを特徴とする。
【００２８】
これらの態様では、さらに、二つの更新プログラムと応用ソフトウェアの各記憶領域として、書き換え可能不揮発記憶装置などの補助記憶装置に設けた三つのパーティションを用いるので、一部のパーティションに障害が起きても他へ波及せず、生き残ったパーティションの領域にある更新プログラムなどを使って継続稼動、復旧作業などが可能となり、また、パーティションごとに異なるファイルシステムも採用可能となるので、システムの信頼性と柔軟性が一層向上する。また、更新プログラムをＲＡＭディスクドライブ上で実行することにより、更新プログラムは書き換え可能不揮発記憶装置上のファイルシステムがなくても動作でき、ＯＳ上で実行中ファイルの上書きが禁止であっても、支障なく自身を更新して正常動作を確認検証可能となる。
【００２９】
本発明の他の態様では（請求項１０，２０，３０）、さらに、リブート時を含むブート時に、前記コンピュータのＣＰＵからの指令信号を受けて、ハードウェアデバイスを含む端末装置の全体を所定の初期状態にリセットしたうえ、所定のブートＲＯＭに格納された前記起動選択プログラムを起動することを特徴とする。
【００３０】
これらの態様では、さらに、コンピュータのＣＰＵからシステムリセット回路に指令信号を出力することで、ハードウェアの設定やＲＡＭの内容といったシステムの状態が常に一定であることが確実に保証され、更新プログラムの動作がそれまでのプログラムの実行状態に左右されることがなく、たとえば、新しいバージョンの更新プログラムに、行うべきハードウェア設定を行わない障害がある場合も、異常が確実に検出される。
【発明の効果】
【００３１】
以上のように、本発明によれば、低コストで、障害から容易に復旧し、更新プログラム自体も更新できる遠隔更新の技術を提供することが可能となる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の端末装置（「本装置」と呼ぶ）を実施するための最良の実施形態を、図面に沿って説明するが、本発明は、端末装置だけでなく、ホスト装置、両者を含むシステムのほか、これらに対応するそれぞれの方法、プログラムとしても把握可能であり、それぞれ本発明の実現態様である。
【００３３】
〔１．概略〕
本実施形態は、概略としては、二つの更新プログラムの一方が、応用ソフトウェアと他方の更新プログラムを所定の通信手段経由のダウンロードにより更新する。このように、二重化した更新プログラムの一方に、他方の更新と、応用ソフトウェアの更新を行わせることにより、更新中の電源断などの事故による予期せぬ停止で更新が失敗したり、更新でダウンロードした新しいプログラムに障害があっても、更新処理を行った側の古い更新プログラムが無傷で残るため再度起動時等にこれにより更新をやり直すことができる。このため、予期せぬ停止やプログラムの障害にも対応可能となり復旧不能が回避できて信頼性が向上し、更新プログラム自体も更新可能となって運用の柔軟性が増し、応用ソフトウェアの二重化のための余分な記憶容量も不要となってコストも低減される。
【００３４】
また、更新プログラムの更新は二段階で行い、すなわち、新しい更新プログラムは、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認する。このように、新しい更新プログラムが自分自身を更新することにより、少なくとも自分自身を更新できるだけの正しい動作を容易かつ確実に確認可能となり、この際に更新プログラムの障害が判明しても古い方の更新プログラムにより、後で、障害を修正したものに再度更新し直すことができる。
【００３５】
〔２．構成〕
まず、本装置を制御するコンピュータの補助記憶装置である不揮発性記憶装置（その記憶領域を「補助記憶域」と呼ぶ）の構成と、記憶されたプログラムやデータを含む情報を図１に示す。補助記憶域には、起動するプログラムを選択する起動選択プログラムＢを格納するほか、ソフトウェア更新プログラム（単に「更新プログラム」とも呼ぶ）Ｕ（Ｕ１，Ｕ２）を記憶する記憶領域を２個設け、それぞれ領域Ｒ（Ｒ１，Ｒ２）とする。各領域Ｒ１，Ｒ２には、起動を制御するための起動制御情報（単に「制御情報」とも呼ぶ）Ｃ（Ｃ１，Ｃ２）を付加する。なお、プログラムとデータを含むものをソフトウェアと呼ぶが、プログラム領域に埋め込むことが可能なデータもあり、用語としてのプログラムとソフトウェアは厳密に使い分けないものとする。
【００３６】
各起動制御情報Ｃ１，Ｃ２は、それぞれ、プログラム番号Ｎ（Ｎ１，Ｎ２）と、起動許可設定フラグＦ（Ｆ１，Ｆ２）を含む。プログラム番号Ｎ１，Ｎ２は、領域Ｒ１，Ｒ２について起動対象と更新対象を切り換える切換情報で、具体的には更新プログラムの新しさを示す番号である。プログラム番号Ｎ１，Ｎ２は、値の大きい方が新しく、更新プログラムＵ１，Ｕ２が更新し起動選択プログラムＢが読み取って起動制御に利用する。起動許可設定（フラグ）Ｆは、対応する領域Ｒ１又はＲ２の更新プログラムＵ（Ｕ１又はＵ２）の更新状態を示し、「起動不可」「初回更新済」「起動許可」「更新失敗」の４種の状態のいずれかをもつ。
【００３７】
プログラムとデータを含む応用ソフトウェアＡは、ソフトウェアの起動や更新以外の本装置本来の業務目的のため、例えばネットワーク機器におけるルーティング、ファイアウォール、ＶＰＮ、ＶＬＡＮ、ＶｏＩＰ、ＱｏＳ、ＳＮＭＰなどの各機能、自動販売機や情報提供端末における入出力、計算、情報検索、集計や通信による各種報告などの処理実行や制御を行うものである。応用ソフトウェアＡは、同じ補助記憶域上の応用ソフトウェア領域Ｒ０に格納され、応用ソフトウェアＡの更新状態を示す更新フラグＦ０を伴い、更新フラグＦ０は「未更新」「更新済」の２種の状態のいずれかをもつ。
【００３８】
本装置を設置した直後の初期状態としては、更新プログラムＵは二つの記憶領域Ｒ１，Ｒ２の少なくとも一方に格納されていればよく、例えば、領域Ｒ１に更新プログラムＵ１を記録し、その起動制御情報Ｃ１には、プログラム番号Ｎ１として「１」、起動許可設定フラグＦ１として「起動許可」を記録する。領域Ｒ２の起動制御情報Ｃ２には、プログラム番号Ｎ２として「０」と、起動許可設定フラグＦ２として「起動不可」を記録する。
【００３９】
応用ソフトウェア領域Ｒ０については、応用ソフトウェアＡをインストール済みであれば、更新フラグＦ０を「更新済」とする。初期状態で更新フラグを「未更新」としておくと、最初に起動したときに所定のホスト装置から最新版の応用ソフトウェアＡをインストールすることになる。
【００４０】
更新プログラムＵは、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて応用ソフトウェアＡや、二つの記憶領域Ｒ１，Ｒ２の他方に格納すべき新しい更新プログラムＵについて、所定のホスト装置から、ＰＨＳ回線など所定の通信手段経由でダウンロードし該当する記憶領域Ｒに書き込むことで更新するプログラムモジュールである。また、起動選択プログラムＢは、応用ソフトウェアＡを起動するほか、前記通信手段経由の信号によりホスト装置から指示を受けると、二つの記憶領域Ｒ１又はＲ２のいずれかに格納された更新プログラムＵ１又はＵ２や応用ソフトウェアＡを選択して実行するプログラムモジュールである。
【００４１】
〔３．作用〕
上記のように構成し情報を記憶した記憶領域において、各プログラムは本装置のコンピュータを制御することにより、以下に説明するような各機能作用を果たす手段、処理を実現、実行する。その処理手順を、図２のフローチャートに示す。
【００４２】
〔３−１．処理手順の概略〕
まず、図２のフローチャートに示す処理手順の概略を説明する。この処理手順が実現する処理の重要な特徴の一つは、起動されている一方の更新プログラムＵ１又はＵ２による他方の更新は二段階で行い、いったん更新した新しい更新プログラムＵ２又はＵ１をリブート後に補助記憶域から読み出して主記憶域上に仮起動させ、仮起動した新しい更新プログラムＵ２又はＵ１が、通信手段を用いて補助記憶域上の自身のファイルを新しいファイルに更新し、この更新に成功すると、起動制御情報Ｃ２又はＣ１の書き換えとリブートにより、その新しいファイルから新しい更新プログラムＵ２又はＵ１を正式起動させることである。
【００４３】
このような処理に関わる部分を図２から抽出して説明すると、まず、起動されている現用の更新プログラムＵ１又はＵ２が、他方の更新プログラムＵ２又はＵ１を更新対象として更新するときは（ステップ１３１）、当該他方の起動許可設定フラグＦ２又はＦ１を「更新失敗」にセットし（ステップ１４）、新しい更新プログラムＵ２又はＵ１をダウンロードして該当する記憶領域Ｒ２又はＲ１へ書き込み（ステップ１５）、その成功時は（ステップ１６）当該他方の起動許可設定フラグＦ２又はＦ１を「初回更新済」にセットして起動選択プログラムＢを起動する（ステップ１７）。
【００４４】
起動された起動選択プログラムＢは、起動許可設定フラグＦ２又はＦ１が「初回更新済」の更新プログラムＵ２又はＵ１があるときはその新しい更新プログラムＵ２又はＵ１を起動し、その新しい更新プログラムＵ２又はＵ１は、その更新プログラムＵ２又はＵ１自体に対応する起動許可設定フラグＦ２又はＦ１を「更新失敗」にセットし（ステップ４）、当該新しい更新プログラムＵ２又はＵ１をダウンロードして上書きし（ステップ５）、その成功時は（ステップ６）その起動許可設定フラグＦ２又はＦ１を「起動許可」にセットする（ステップ７）。
【００４５】
なお、起動されている更新プログラムＵ１又はＵ２が、応用ソフトウェアＡを更新するときは（ステップ１３２，８）、応用ソフトウェアＡに対応して設けられた更新フラグＦ０を「未更新」にセットし（ステップ９）、応用ソフトウェアＡをダウンロードして該当記憶領域に書き込み（ステップ１０）、その成功時は更新フラグＦ０を「更新済」にセットし（ステップ１１）、更新プログラムＵ１又はＵ２は更新フラグＦ０が「更新済」の場合に（ステップ１１，８）、応用ソフトウェアＡを実行する（ステップ１２）。
【００４６】
以上のようにすれば、切換情報であるプログラム番号Ｎ１，Ｎ２や起動許可設定フラグＦ１，Ｆ２などの起動制御情報Ｃ１，Ｃ２により、二度の更新により二段階的に行われる更新プログラムＵ１，Ｕ２の更新を含め、状態に応じた起動対象の選択と起動の制御を簡潔確実なアルゴリズムで容易に実装可能となる。
【００４７】
なお、本装置はブート（起動、立上り）時に、一方の領域Ｒ１又はＲ２を起動領域としその領域の更新プログラムＵ１又はＵ２を現用更新プログラムとして実行し、他方の領域を更新領域と呼ぶ。以下、図２の処理手順を詳述するが、図２に示す処理の各ステップのうち、領域選択と起動の処理（ステップ１〜２）は起動選択プログラムＢが実行し、通常の稼動（ステップ１２）及び稼動中の更新指示受信（ステップ１３１，１３２）は応用ソフトウェアＡが実行する。それ以外はすべて現用更新プログラムＵ１又はＵ２が実行する。なお、図２中のステップ番号は単に図中で識別するための符号で、実行順とは無関係である。
【００４８】
〔３−２．領域選択と起動〕…ステップ１，２
まず、起動選択プログラムＢは、制御情報Ｃ１，Ｃ２の値によって、起動する領域を選択する（ステップ１）。具体的には、一方の領域Ｒ１又はＲ２の起動許可設定フラグＦ１又はＦ２が「起動許可」か「初回更新済」であれば、この領域Ｒ１又はＲ２を起動に係る起動領域として選択し、起動許可設定フラグＦ１又はＦ２が「起動不可」か「更新失敗」の場合、他方の領域Ｒ２又はＲ１が「起動許可」のはずであるからこの他方の領域Ｒ２又はＲ１を起動領域として選択する。但し、起動選択プログラムＢは、領域Ｒ１と領域Ｒ２の起動許可設定フラグＦ１及びＦ２がいずれも「起動許可」の場合、プログラム番号Ｎ１とＮ２を比較し大きな番号が書き込まれている方を起動領域とする。
【００４９】
このようにすれば、それぞれの更新プログラムＵ１，Ｕ２のプログラム番号Ｎ１，Ｎ２を更新ごとにバージョン番号などにしたがって増大させておき、それを比較するという単純なアルゴリズムでどちらを起動すべきか確実容易に判定可能となる。なお、他の変形例として、プログラム番号Ｎ１，Ｎ２を十分大きな初期値から減少させて小さい方を選択したり、文字コードやアルファベットを用いる例も本発明の範囲に属する。
【００５０】
そして、上記のように選択した領域番号を所定の変数「起動領域」、他方の領域番号を所定の変数「更新領域」に格納したうえ、変数「起動領域」で選択された領域の更新プログラムＵ１又はＵ２を起動する（ステップ２）。変数「起動領域」で指定されている領域が起動領域、変数「更新領域」で指定されている領域が更新領域である。
【００５１】
〔３−３．分岐処理〕…ステップ３１〜３３
起動された更新プログラムＵ１又はＵ２は、領域Ｒ１と領域Ｒ２の制御情報Ｃ１，Ｃ２を読んで次の分岐等の処理を行う（ステップ３１〜３３）。すなわち、更新領域Ｒ２又はＲ１の制御情報Ｃ２又はＣ１（起動許可設定フラグＦ２又はＦ１）が、「更新失敗」であれば（ステップ３１）、更新に失敗したことをホスト装置へ通知し（ステップ３２）、応用ソフトウェアＡの実行や更新に関する処理（ステップ８以降）へジャンプする。起動領域Ｒ１又はＲ２の制御情報Ｃ１又はＣ２（起動許可設定フラグＦ１又はＦ２）が「初回更新済」であれば、更新プログラムＵ１又はＵ２が自分自身を更新する処理（ステップ４以降）へ進み、これらいずれでもない場合には、応用ソフトウェアＡの実行や更新に関する処理（ステップ８以降）へジャンプする。
【００５２】
〔３−４．更新プログラム更新の概略〕
ここで、ステップ４〜７は、更新プログラムＵ２又はＵ１を更新する手順の後半であるから、まず、更新プログラムＵ２又はＵ１を更新する手順を説明する。更新プログラムＵ２又はＵ１の更新は、一方の起動領域Ｒ１又はＲ２で稼動する現用更新プログラムＵ１又はＵ２が他方の更新領域Ｒ２又はＲ１に対して行う。更新プログラムＵ２又はＵ１の更新は二段階からなり、第一段階では更新領域Ｒ２又はＲ１へ更新プログラムＵ２又はＵ１をダウンロードし（ステップ１４〜１７）、リブート後の第二段階では、起動選択プログラムＢが起動領域と更新領域を逆転させ、ダウンロードされたばかりのその更新プログラムＵ２又はＵ１が再ダウンロードなどで自身を更新することで（ステップ４〜７）正常動作を保証する。リブート時点では、新たな更新プログラムＵ２又はＵ１はダウンロード済みだが、自身を更新する前の状態であり、その状態を「初回更新済」と表す。
【００５３】
〔３−５．更新プログラム更新の第一段階〕…ステップ１４〜１７
上記の更新プログラム更新の第一段階として、本装置において、稼動中の応用ソフトウェアＡがホスト装置から更新プログラム更新指示を受信すると（ステップ１３１）、割込みジャンプなどによりその時点の現用更新プログラムＵ１又はＵ２のステップ１４以降へ制御が移る。すなわち、更新プログラムＵ１又はＵ２はまず、更新領域Ｒ２又はＲ１の起動制御情報Ｃ２又はＣ１（起動許可設定フラグＦ２又はＦ１）へ「更新失敗」を書き込む（ステップ１４）。これは、データのダウンロードや書込みの失敗でリブートした後の処理で、更新が失敗したことを判定可能にするためであり、更新プログラム更新の第二段階（ステップ４）及び応用ソフトウェアＡの更新（ステップ９）でも同じ手法を用いる。
【００５４】
続いて、新しい更新プログラムＵ２又はＵ１をホスト装置からダウンロードし、更新領域Ｒ２又はＲ１へ書き込む（ステップ１５）。このダウンロードや書き込みに失敗した場合には（ステップ１６）、リブートして処理手順の最初（ステップ１）へジャンプするが、成功すれば、更新領域Ｒ２又はＲ１の起動制御情報Ｃ２又はＣ１（起動許可設定フラグＦ２又はＦ１）へ「初回更新済」を書き込んだうえ（ステップ１７）、リブートして処理手順の最初（ステップ１）へジャンプする。
【００５５】
〔３−６．更新プログラム更新の第二段階〕…ステップ４〜７
このように「初回更新済」の領域は、すでに説明したように、ブート時に、起動領域として選択され（ステップ１）、「初回更新済」であることが検出されて（ステップ３３）更新プログラム更新の第二段階として、更新プログラム自身による更新の対象となる（ステップ４〜７）。すなわち、起動領域として起動され第二段階を迎えた新しい更新プログラムＵ２又はＵ１は、主記憶域上に設定ファイルなど必要なデータファイルとともに展開、実行される。
【００５６】
そして、新しい更新プログラムＵ２又はＵ１は、まず、自身が存在する起動領域Ｒ２又はＲ１の制御情報Ｃ２又はＣ１（起動許可設定フラグＦ２又はＦ１）に「更新失敗」を書き込んだうえ（ステップ４）、ホスト装置から自身と同じ更新プログラムＵ２又はＵ１をダウンロードし、起動領域Ｒ２又はＲ１へ書き込む（ステップ５）。この場合、メモリなどの主記憶域上で展開・実行されている更新プログラムＵ２又はＵ１が、ディスクなど補助記憶域上の自分自身のファイルを再ダウンロードし上書きすることになる。
【００５７】
更新プログラム自身の更新において、ダウンロードや書き込みに失敗した場合には（ステップ６）、リブートして処理手順の最初（ステップ１）へジャンプするが、更新プログラム自身の更新に成功すれば、起動領域Ｒ２又はＲ１の制御情報Ｃ２又はＣ１（起動許可設定フラグＦ２又はＦ１）に「起動許可」を書き込んだうえ（ステップ７）、応用ソフトウェアＡの実行や更新に関する処理（ステップ８以降）へ進む。
【００５８】
〔３−７．応用ソフトウェアの更新と実行〕…ステップ８〜１２
応用ソフトウェアＡの実行や更新に関する処理（ステップ８以降）ではまず、現用の更新プログラムＵ１又はＵ２は、応用ソフトウェア領域Ｒ０の更新フラグＦ０をチェックし（ステップ８）、「更新済」であれば、応用ソフトウェア領域Ｒ０のプログラムである応用ソフトウェアＡを実行する（ステップ１２）。これが通常の業務状態である。
【００５９】
更新フラグＦ０は「更新済」でなければ、応用ソフトウェア更新の処理（ステップ９以降）へ進むが、この処理はホスト装置から応用ソフトウェア更新指示を受信した場合（ステップ１３２）と同じ処理である。すなわち、通常の業務状態であっても、端末装置において、稼動中の応用ソフトウェアＡがホスト装置から応用ソフトウェア更新指示を受信すると（ステップ１３２）、割込みジャンプなどにより更新プログラムＵ１又はＵ２のステップ９以降へ制御が移る。
【００６０】
この場合、更新プログラムＵ１又はＵ２はまず、応用ソフトウェア領域Ｒ０の更新フラグＦ０へ「未更新」を書き込む（ステップ９）。これは、データのダウンロードや書き込みの失敗でリブートした後の処理（ステップ８）で、更新が未完であることを判定可能にするためである。
【００６１】
続いて、ホスト装置から新しい応用ソフトウェアＡをダウンロードし、応用ソフトウェア領域Ｒ０へ書き込む（ステップ１０）。なお、図示はしないが、更新プログラムの更新におけるステップ６や１６と同様に、このダウンロードや書き込みに失敗した場合にはリブートして処理手順の最初（ステップ１）へジャンプすると、再度、更新フラグＦ０のチェックに到達した際（ステップ８）「未更新」のままなので、応用ソフトウェア更新の処理（ステップ９以降）が繰り返されることになる。
【００６２】
そして、新しい応用ソフトウェアＡのダウンロードと書き込みに成功すれば、応用ソフトウェア領域Ｒ０の更新フラグＦ０へ「更新済」を書き込んだうえ（ステップ１１）、応用ソフトウェア領域Ｒ０の新しいプログラムである応用ソフトウェアＡを実行し（ステップ１２）、通常の業務状態となる。
【００６３】
〔３−８．失敗の判定〕
ダウンロード又は書き込みに失敗したことの判定では（ステップ６，１６）例えば次の場合に失敗と判定する。第一はホスト装置との通信失敗で、例えば、ネットワーク接続ができない、ホスト装置からの接続拒否など、通信プロトコル上で検出される障害による。第二は処理のタイムアウトで、例えば、一定時間以上たっても処理が終了しないことをタイマ等で障害として検出する。その他、書き込みデータのチェックディジット（チェックサムやダイジェスト）の誤り、データが正常に受信されなかったか書き込まれなかったことによる障害、異常な命令実行など更新プログラムＵ１又はＵ２が正常に実行できなかった実行異常などを、それぞれ検出することが考えられる。
【００６４】
〔３−９．更新失敗時の処理〕
更新プログラムＵ２又はＵ１の更新失敗を検出した場合（ステップ６，１６）、ホスト装置など所定通信先への通知（ステップ３２）のほか、所定タイミングでの再試行などの処理を、事前設定や外部からの指令などにしたがって行うようにしてもよい。このように、更新プログラムＵ２又はＵ１の更新失敗を検出したときに、ホストなどへ通知したり（ステップ３２）、何分後、何時間後、何日後などのタイミングで再試行するなどの対処動作を、事前設定された固定動作や条件判断にしたがって、或いは、ホスト装置からの指令や作業員が現場で接続するコントローラからの指令などにしたがって、確実に実行することにより、運用の柔軟性と信頼性が一層向上する。
【００６５】
〔４．効果〕
以上説明したように、本実施形態では、二重化した更新プログラムＵ１，Ｕ２の一方に、他方の更新と、応用ソフトウェアＡの更新を行わせるので、更新中の電源断などの事故による予期せぬ停止で更新が失敗したり、更新でダウンロードした新しいプログラムに障害があっても、更新処理を行った側の古い更新プログラムＵ１又はＵ２が無傷で残るため再度起動時等にこれにより更新をやり直すことができる。このため、予期せぬ停止やプログラムの障害にも対応可能となり復旧不能が回避できて信頼性が向上し、更新プログラムＵ１，Ｕ２自体も更新可能となって運用の柔軟性が増し、応用ソフトウェアＡの二重化のための余分な記憶容量も不要となってコストも低減される。
【００６６】
また、本実施形態では、新しい更新プログラムＵ２又はＵ１が自分自身を更新することにより、少なくとも自分自身を更新できるだけの正しい動作を容易かつ確実に確認可能となり、この際に更新プログラムＵ２又はＵ１の障害が判明しても古い方の更新プログラムＵ１又はＵ２により、後で、障害を修正したものに再度更新し直すことができる。
【００６７】
また、本実施形態では、いったん更新された更新プログラムＵ２又はＵ１のファイルをＨＤＤなどの補助記憶域からＲＡＭなどの主記憶域上に、フラグを用いた起動制御情報などで仮起動させることにより、補助記憶域上のその更新プログラムＵ２又はＵ１自体のファイルを円滑容易に更新でき、かつ、その失敗の場合は直前に現用だった更新プログラムＵ１又はＵ２に容易に戻ることができる。
【００６８】
また、本実施形態では、起動選択プログラムＢが起動領域の選択（ステップ１）で判断対象とする起動制御情報Ｃ１，Ｃ２は、すべて不揮発の補助記憶装置に記録されているので、ステップ６，１６，１７からステップ１へのジャンプは、端末装置のリブートで実行でき、この結果、更新プログラムＵ１，Ｕ２は常に端末装置のリブート後に実行されることになる。このように、本実施形態では、ハードウェア設定などの実行履歴がリセットされたシステムのリブート後の状態で、新しい更新プログラムＵ２又はＵ１が自分自身を更新して正常動作を確認検証できるので、実行履歴によって発生しなくなる障害があったとしてもそれまでの実行履歴に左右されることなく検証時に確実に検出できる。
【００６９】
〔５．実施例〕
上記のような実施形態を実装したシステムの実施例を図３に示す。
〔５−１．実施例の概略〕
本実施例は、概略としては、端末装置Ｔの補助記憶装置である書き換え可能不揮発記憶装置Ｄに三つのパーティションを設け、それぞれ、更新プログラム領域Ｒ１，Ｒ２と、応用ソフトウェア領域Ｒ０とする。また、更新プログラムは、コンピュータの主記憶域であるＲＡＭ６上に設けたＲＡＭディスクドライブ上で必要なデータファイルとともに展開し実行する。また、システムリセット回路７が、リブート時を含むブート時に、コンピュータのＣＰＵ３からの指令信号を受けて、ハードウェアデバイスを含む端末装置Ｔの全体を所定の初期状態にリセットしたうえ、所定のブートＲＯＭ５に格納された起動選択プログラムを起動する。
【００７０】
〔５−２．実施例の構成〕
具体的には、図３に示すように、ホスト装置Ｈと端末装置Ｔは、ネットワークインタフェースＮ及びＰＨＳによるＩＰ接続などを用いた通信ネットワークで接続する。ＣＰＵ３は、端末装置Ｔ全体を制御するプロセッサで、ＴＲＯＮなどのＯＳを適宜用いる。システムバス４は、ＣＰＵ３と端末装置Ｔ内のさまざまなコンポーネントデバイスを接続する。ブート（ＢＯＯＴ）ＲＯＭ５は、端末装置Ｔの起動用プログラムを格納する部分で、書き換えを行わない不揮発記憶装置である。電源オン直後とリセット直後は、このブートＲＯＭ５のプログラムが実行される。
【００７１】
書き換え可能不揮発記憶装置Ｄは、プログラムやデータを記憶する大容量な記憶装置であり、大容量のメモリカード、フラッシュＲＯＭ、ハードディスクドライブなどの媒体で実装することができ、補助記憶域を提供する。ＲＡＭ６はＣＰＵ３の主記憶装置で、主記憶域を提供する。システムリセット回路７はＣＰＵ３からの指示で端末装置をリセットする回路であり、端末装置Ｔをリセットするとプログラムがリブートし、すべての装置を構成するデバイスがリセットされたあと、電源オン直後と同様にブートＲＯＭ５から起動する。
【００７２】
この実施例では、上記実施形態（図１）を構成するプログラムを次のように実装する。すなわち、起動選択プログラム（Ｂ）をブートＲＯＭ５へ書き込む。また、書き換え可能不揮発記憶装置Ｄは、第１〜第３の３個のパーティションに分割し、第１パーティションは更新プログラム領域Ｒ１、第２パーティションは更新プログラム領域Ｒ２、第３パーティションは応用ソフトウェア領域Ｒ０（通常のファイルシステム）として、それぞれのデータを書き込む領域とする。起動選択プログラムは、ブートＲＯＭ５に書き込んで直接実行するオブジェクトとしておく。
【００７３】
更新プログラム（Ｕ１，Ｕ２）は、ＲＡＭ６上に展開して実行するようにビルドし、更新プログラムの実行に必要な設定ファイルなどを圧縮形式にして更新プログラムに含ませる。更新プログラムは、実行時に、そのように圧縮されたファイルをＲＡＭ６上に展開しＲＡＭディスクとして参照する。このようにすることで、更新プログラムは書き換え可能不揮発記憶装置Ｄ上のファイルシステムがなくても動作できる。
【００７４】
〔５−３．実施例の作用〕
このような実施例では、図２に示した処理手順のうち領域選択と起動の処理（ステップ１，２）では、ブートＲＯＭ５上の起動選択プログラムが直接実行され、書き換え可能不揮発記憶装置Ｄのパーティション１と２にある領域１（Ｒ１）あるいは領域２（Ｒ２）からＲＡＭ６上へ更新プログラムを展開する。
【００７５】
図２での分岐処理（ステップ３１〜３３）、更新プログラム更新の第二段階（ステップ４〜７）、応用ソフトウェア（Ａ）の更新（ステップ８〜１１）では、ＲＡＭ６上に展開され実行されている更新プログラム（例えばＵ１）が、書き換え可能不揮発記憶装置Ｄのうち、自身のファイルがある第１パーティション（領域Ｒ１）へホストからダウンロードして更新プログラムＵ１を書き込み、また、第３パーティション（領域Ｒ０）へホスト装置からダウンロードして応用ソフトウェアＡ（プログラムとデータ）を書き込む。
【００７６】
応用ソフトウェアＡの実行（ステップ１２）、ホスト装置からの更新指示の受信（ステップ１３１，１３２）については、第３パーティション（領域Ｒ０）に通常のファイルとして格納された応用プログラムＡの実行による。
【００７７】
また、更新プログラムのダウンロードや書き込みの成功の後や失敗の際（図２のステップ６，１６，１７）、処理手順の最初（ステップ１）へのジャンプは、プログラムからシステムリセット回路７を操作して端末装置Ｔ全体をリブートすることで実行する。このことによって、処理手順がステップ１から実行されるときには、ハードウェアの設定やＲＡＭの内容といったシステムの状態が常に一定であることが保証される。したがって、更新プログラムの動作が、それまでのプログラムの実行状態に左右されることがない。例えば、新しいバージョンの更新プログラムに、行うべきハードウェア設定を行わない障害がある場合に、これによる異常を検出することができる。
【００７８】
〔５−４．実施例の効果〕
以上説明したように、本実施例では、二つの更新プログラムと応用ソフトウェアの各記憶領域として、補助記憶装置である書き換え可能不揮発記憶装置Ｄに設けた三つのパーティション（領域Ｒ０，Ｒ１，Ｒ２）を用いるので、一部のパーティションに障害が起きても他へ波及せず、生き残ったパーティションの領域にある更新プログラム（Ｕ１，Ｕ２）などを使って継続稼動、復旧作業などが可能となり、また、パーティションごとに異なるファイルシステムも採用可能となるので、システムの信頼性と柔軟性が一層向上する。また、更新プログラムをＲＡＭディスクドライブ上で実行することにより、更新プログラムは書き換え可能不揮発記憶装置Ｄ上のファイルシステムがなくても動作でき、ＯＳ上で実行中ファイルの上書きが禁止であっても、支障なく自身を更新して正常動作を確認検証可能となる。
【００７９】
さらに、上記実施例では、コンピュータのＣＰＵ３からシステムリセット回路７に指令信号を出力することで、ハードウェアの設定やＲＡＭ６の内容といったシステムの状態が常に一定であることが確実に保証され、更新プログラムの動作がそれまでのプログラムの実行状態に左右されることがなく、たとえば、新しいバージョンの更新プログラムに、行うべきハードウェア設定を行わない障害がある場合も、異常が確実に検出される。
【００８０】
以上のようにして、上記実施形態及びその実施例により、起動選択プログラム（Ｂ）以外、応用ソフトウェアＡだけでなく更新プログラムＵ１，Ｕ２も含めほぼすべてが更新可能となる。なお、起動選択プログラム自体については、条件に応じいずれかの領域の更新プログラムＵ１，Ｕ２を起動するごく単純な処理しか行わないため更新できなくても支障は少ない。
【００８１】
〔６．他の実施形態〕
本発明は、上記の実施形態や実施例に限定されるものではなく、以下に例示するようなもの及びそれ以外のものを含む他の実施形態も包含するものである。例えば、応用ソフトウェアＡや更新プログラムＵの更新については、ホスト装置からの指示に代え、またはそれと併用し、曜日など所定の時間間隔で端末装置からホスト装置へアクセスしてバージョンアップをチェックし、新バージョンがダウンロード可能であれば更新するようにしてもよい。
【００８２】
また、本発明は、ホスト装置、その制御方法又は制御プログラムに関する観点から捉えれば、ホスト装置のコンピュータを制御することにより、所定の通信手段経由で、所定の端末装置からのダウンロード要求に応じて新しい更新プログラム又は応用ソフトウェアを、ホスト装置が提供するホスト装置、その制御方法又は制御プログラムのいずれか一つにおいて、ホスト装置が提供するその更新プログラムは、前記端末装置においてそれぞれ更新プログラムを格納するための二つの記憶領域の少なくとも一方に格納され、前記端末装置のコンピュータを制御することにより、予め決められた更新条件が成立したことを判定し、この判定を受けてその更新条件に応じて前記端末装置の応用ソフトウェア又は前記二つの記憶領域の他方に格納すべき新しい更新プログラムについて、前記所定の通信手段経由でホスト装置からダウンロードし該当する記憶領域に書き込むことで更新するものであることを特徴とする。
【００８３】
また、本発明は、ホスト装置、その制御方法又は制御プログラムに関する観点で捉えれば、前記更新プログラムは、前記新しい更新プログラムとして最初に実行されるとき、前記コンピュータを制御することにより、その更新プログラム自体を前記通信手段経由で更新することにより正常動作を確認するものであることを特徴とする。
【００８４】
また、本発明は、以上のような端末装置とホスト装置とを備えたことを特徴とする遠隔更新システム、以上のような端末装置の制御方法とホスト装置の制御方法とを組み合わせることを特徴とする遠隔更新方法、以上のような端末装置の制御プログラムとホスト装置の制御プログラムとを組み合わせることを特徴とする遠隔更新プログラムとしても把握可能である。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施形態における端末装置の補助記憶装置の内容を示す図。
【図２】本発明の実施形態における処理手順を示すフローチャート。
【図３】本発明の実施形態に関する実施例の構成を示す図。
【符号の説明】
【００８６】
Ｂ…起動選択プログラム
Ｒ（Ｒ０，Ｒ１，Ｒ２）…領域
Ｕ（Ｕ１，Ｕ２）…更新プログラム
Ａ…応用ソフトウェア
Ｃ（Ｃ１，Ｃ２）…起動制御情報
Ｎ（Ｎ１，Ｎ２）…プログラム番号
Ｆ（Ｆ１，Ｆ２）…起動許可設定フラグ
Ｆ０…更新フラグ
Ｈ…ホスト装置
Ｔ…端末装置
Ｎ…ネットワークインタフェース
Ｄ…書き換え可能不揮発記憶装置
３…ＣＰＵ
４…システムバス
５…ブートＲＯＭ
６…ＲＡＭ
７…システムリセット回路
【図１】
2005284902.tif 000003
【図２】
2005284902.tif 000004
【図３】
2005284902.tif 000005