JP2004355389A - リモートアップデートシステム - Google Patents
リモートアップデートシステム Download PDFInfo
- Publication number
- JP2004355389A JP2004355389A JP2003153109A JP2003153109A JP2004355389A JP 2004355389 A JP2004355389 A JP 2004355389A JP 2003153109 A JP2003153109 A JP 2003153109A JP 2003153109 A JP2003153109 A JP 2003153109A JP 2004355389 A JP2004355389 A JP 2004355389A
- Authority
- JP
- Japan
- Prior art keywords
- program
- server
- download
- terminal
- storage unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】複数の端末を同時にネットワークに新たに設置した場合に、個々の端末へのプログラムのダウンロードを行うシステムの管理者の手間を軽減することが可能なリモートアップデートシステムを得ること。
【解決手段】プログラムを格納するサーバ1と、前回の起動状態と終了状態を保存する状態格納部25、サーバ1のネットワーク5上の位置を含むサーバ情報を格納するサーバ情報格納部27、自端末のプログラムを用いた起動手順を含むダウンロード情報を格納するダウンロード情報格納部28、起動時にサーバ情報、ダウンロード情報、前回の起動状態と終了状態に基づいてサーバ1からプログラムをダウンロードして実行するプログラム処理部22、ダウンロードしたプログラムを格納するダウンロードプログラム格納部29、プログラムの起動時と終了時の状態を状態格納部25に格納する状態管理部26を有する端末2と、がネットワーク5を介して接続される。
【選択図】 図1
【解決手段】プログラムを格納するサーバ1と、前回の起動状態と終了状態を保存する状態格納部25、サーバ1のネットワーク5上の位置を含むサーバ情報を格納するサーバ情報格納部27、自端末のプログラムを用いた起動手順を含むダウンロード情報を格納するダウンロード情報格納部28、起動時にサーバ情報、ダウンロード情報、前回の起動状態と終了状態に基づいてサーバ1からプログラムをダウンロードして実行するプログラム処理部22、ダウンロードしたプログラムを格納するダウンロードプログラム格納部29、プログラムの起動時と終了時の状態を状態格納部25に格納する状態管理部26を有する端末2と、がネットワーク5を介して接続される。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、ネットワークに接続されている端末にサーバからプログラムをダウンロードする際に、端末がダウンロードするプログラムを自律的に決定し、ダウンロードしたプログラムに障害が発生した場合には自律的に復旧するリモートアップデートシステムに関するものである。
【0002】
【従来の技術】
最近のネットワークに接続された端末では、システムの修正やバージョンアップ、特性変更など、プログラムの更新をネットワーク経由で適時実施する方法が一般的に使用されている。たとえば、ある端末はリモート操作によってサーバからプログラムをダウンロードし、自端末のプログラムの更新を行う。しかし、サーバからダウンロードしたプログラムに障害が含まれている場合には、プログラムを起動しても正常に動作しないだけでなく、プログラム自体の起動さえもできない状態になり、リモート操作が不可能になってしまうという事態になることも考えられる。
【0003】
このような事態を回避するために、プログラムの障害から自律的に復旧するプログラム障害自律復旧システムが提案されている。このプログラム障害自律復旧システムでは、端末が、現在使用しているプログラムをバックアップメモリに保存した後に、プログラムをダウンロードし、このダウンロードしたプログラムを自動的に実行する。そして、そのプログラムにより障害が発生した場合には、バックアップメモリに保存したプログラムで自立的に再起動するようにしている(たとえば、特許文献1参照)。
【0004】
【特許文献1】
特開平10−105407号公報(第3頁、第1図)
【0005】
【発明が解決しようとする課題】
上記特許文献1に記載されるプログラム障害自律復旧システムでは、システムの管理者がリモートからの操作によって端末にダウンロードするプログラムを指定するようにしている。そのため、複数台の端末を同時にネットワークに新たに設置した場合や新たなプログラムに変更する場合には、個々の端末に対して、システムの管理者がリモートで操作して、ダウンロードを指示しなければならないので、それらの運用準備に手間がかかってしまうという問題点があった。
【0006】
また、ダウンロードしたプログラムに障害が発生した場合に、端末はバックアップメモリから正常に動作していたプログラムをロードして再起動するが、サーバ側では端末がプログラムの実行で障害が発生したことを知ることができないという問題点もあった。
【0007】
この発明は、上記に鑑みてなされたもので、複数台の端末を同時にネットワークに新たに設置した場合に、個々の端末へのプログラムのダウンロードを行うシステムの管理者の手間を軽減することが可能なリモートアップデートシステムを得ることを目的とする。また、端末がダウンロードしたプログラムに障害が発生した場合に、サーバ側で端末がプログラムの実行で障害が発生したことを知ることが可能なリモートアップデートシステムを得ることも目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかるリモートアップデートシステムは、サーバと、前記サーバに格納されるプログラムをダウンロードして実行する1〜複数の端末とが、ネットワークを介して接続されたリモートアップデートシステムであって、前記端末は、前回起動した際の起動状態と終了状態を保存する状態格納手段と、前記サーバのネットワーク上の位置を含むサーバ情報を格納するサーバ情報格納手段と、自端末におけるプログラムを用いた起動手順を含むダウンロード情報を格納するダウンロード情報格納手段と、起動時に前記サーバ情報、前記ダウンロード情報、前記前回起動した際の起動状態と終了状態に基づいて前記サーバからプログラムをダウンロードして実行するプログラム処理手段と、前記プログラム処理手段によってダウンロードされたプログラムを格納するダウンロードプログラム格納手段と、前記プログラムの起動時と終了時の状態を前記状態格納手段に格納する状態管理手段と、を備えることを特徴とする。
【0009】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるがリモートアップデートシステムの好適な実施の形態を詳細に説明する。
【0010】
実施の形態1.
図1は、この発明にかかるリモートアップデートシステムの実施の形態1の概略構成を示すブロック図である。このリモートアップデートシステムは、サーバ1と端末2とが、LAN(Local Area Network)やWAN(Wide Area Network)などのネットワーク5を介して接続されて構成されている。なお、この図1では、端末2はネットワーク5に1台しか接続されていないが、端末2が複数存在しても、それぞれの端末2が以下に説明する同一の動作を行うので、ここでは端末2が1台の場合を例に挙げて説明する。
【0011】
サーバ1は、ネットワーク5に接続された端末2がダウンロードするプログラムを保存するハードウェアであり、端末2のプログラムをアップデートするためのソフトウェアであるプログラムを格納するプログラム格納部11と、このリモートアップデートシステムに属し、ネットワーク5に接続される端末2からのその端末2の状態を示す通知を格納する端末管理データベース12と、端末2から受信した端末2の状態を端末管理データベース12に登録し、管理する端末管理部13と、ネットワーク5に接続して他の端末2などと通信を行う通信部14と、サーバ1全体を制御する制御部15と、を備えて構成される。
【0012】
端末管理部13には、端末のネットワークアドレス、起動日時、起動するプログラム名、起動するプログラムをダウンロードした日時を含む起動状態と、端末のネットワークアドレス、正常終了または異常終了、異常発生プログラム名、異常発生日時を含む終了状態が格納される。
【0013】
端末2は、サーバ1からプログラムをダウンロードし、そのプログラムを実行するハードウェアであり、通信部21、プログラム処理部22、ダウンロードプログラム格納部23、障害監視部24、状態格納部25、状態管理部26、サーバ情報格納部27、ダウンロード情報格納部28、プログラム格納部29および制御部30を備えて構成される。
【0014】
通信部21は、端末2をネットワーク5と接続し、ネットワーク5に接続されたサーバ1などの他のハードウェアと情報の通信を行う機能を有する。プログラム処理部22は、ダウンロード情報格納部28に格納されるダウンロード情報と状態格納部25に格納される自端末2の前回起動時および終了時の状態に応じてサーバ1からプログラムをダウンロードする機能、プログラムのダウンロードが正常に行なわれたかのチェックを行なうチェックサム機能、および、ダウンロードしたプログラムを実行する機能を有する。ダウンロードプログラム格納部23は、プログラム処理部22によってダウンロードされたプログラムを保存する機能を有する。障害監視部24は、プログラム実行中に障害が発生していないかを常に監視し、障害の発生を検出した場合には端末2を再起動する機能を有する。
【0015】
状態格納部25は、前回の終了状態と、前回の起動状態を保存する。前回の終了状態は、端末2が前回どのように終了したか、たとえば正常に終了したか、異常終了したか、を表す情報であり、前回の起動状態は、端末2が前回どのプログラムを使って、どのように起動したかを表す情報である。たとえば、正常に終了した場合には、正常に終了したことを示す項目、終了日時を含む項目からなる情報が前回の終了状態となり、異常終了した場合には、異常発生プログラム名、異常発生日時を含む項目からなる情報が前回の終了状態となる。また、起動するプログラム名、起動日時、起動するプログラムをダウンロードした日時を含む項目からなる情報が前回の起動状態となる。
【0016】
状態管理部26は、プログラムの起動時における端末2の起動状態と、プログラム終了時における端末2の終了状態を状態格納部25に格納するとともに、その内容をサーバ1に通知する機能を有する。
【0017】
サーバ情報格納部27は、プログラムをダウンロードするために使用するサーバ1のネットワーク5上の位置を表すサーバ情報を格納する。ダウンロード情報格納部28は、端末2がどのように起動するべきかを表すダウンロード情報を格納する。たとえば、ダウンロード情報には、サーバからダウンロードするべきプログラムについて、最初にダウンロードするべきプログラム、プログラムを正常にダウンロードできなかった場合にダウンロードするべきプログラム、このプログラムを正常にダウンロードできなかった場合にダウンロードするべきプログラム、・・・というように優先順位付けされたものが格納されるようにしてもよい。このようにダウンロード情報にダウンロードの優先順位情報を追加することによって、端末2が最適なプログラムを自律的に選択してダウンロードし、実行することが可能になる。
【0018】
プログラム格納部29は、ネットワーク5やサーバ1の異常でサーバ1からプログラムをダウンロードすることができない場合に実行されるプログラムを格納する。制御部30は、これらの構成要素を制御する機能を有する。
【0019】
つぎに、このリモートアップデートシステムの動作について説明する。図2は、この発明のリモートアップデートシステムにおける端末のプログラム起動準備の処理手順を示すフローチャートであり、図3は、この発明のリモートアップデートシステムにおけるプログラム起動時の端末の処理手順を示すフローチャートあり、図4は、この発明のリモートアップデートシステムにおける端末のプログラム異常監視の処理手順を示すフローチャートである。
【0020】
最初に、端末2の起動からプログラム起動前までの動作手順について図2のフローチャートを参照して説明する。端末2を起動して、ハードウェアが初期化され、プログラム起動の準備が開始されると、まず、プログラム処理部22は、状態格納部25に保存されている前回の終了状態を読み込み、前回正常に終了したか否かを判定する(ステップS101)。判定の結果、前回正常に終了していた場合(ステップS101でYesの場合)には、プログラム処理部22は、状態格納部25に保存されている前回の起動状態を読み込み、前回と同じプログラムをサーバ1からダウンロードする(ステップS102)。
【0021】
一方、判定の結果、前回正常に終了していなかった場合(ステップS101でNoの場合)には、状態格納部25に保存されている前回の起動状態と、ダウンロード情報格納部28に保存されているダウンロード情報を読み込み、前回の終了時に実行していたプログラムとは異なるプログラムがダウンロード情報に存在するか否かを判定する(ステップS103)。判定の結果、前回の終了時に実行していたプログラムとは異なるプログラムがダウンロード情報に存在しない場合(ステップS103でNoの場合)には、プログラム格納部29に格納されているプログラムを実行するために、サーバ1からプログラムのダウンロードなしで、後述する図3のプログラム起動処理に進み(ステップS108)、プログラム起動準備処理が終了する。また、判定の結果、前回の終了時に実行していたプログラムとは異なるプログラムが存在する場合(ステップS103でYesの場合)には、前回の終了時に実行していたプログラムとは異なるプログラムをサーバ1からダウンロードする(ステップS104)。
【0022】
ステップS102での前回と同じプログラムのダウンロード後、またはステップS104での前回とは異なるプログラムのダウンロード後、プログラム処理部22は、プログラムの保持するチェックサムの確認、および、ネットワーク5の異常の有無を確認し、ダウンロードが正常に完了したか否かを調べる(ステップS105)。ダウンロードが正常に完了した場合(ステップS105でYesの場合)には、プログラム処理部22は、図3に示される正常にダウンロードが終了したプログラムの起動処理を実行し(ステップS108)、プログラム起動準備の処理は完了する。
【0023】
一方、ダウンロードが正常に完了しなかった場合(ステップS105でNoの場合)には、プログラム処理部22は、ダウンロード情報格納部28に保存されているダウンロード情報を読み込み、前回の終了時に実行していたプログラムまたは今回ダウンロードしたプログラムとは異なるプログラムがダウンロード情報に存在するか否かを調べる(ステップS106)。ダウンロード情報に異なるプログラムが存在しない場合(ステップS106でNoの場合)には、プログラムのダウンロードを行わずに、プログラム格納部29に格納されているプログラムについて、図3に示す起動処理が行われ(ステップS108)、プログラム起動準備処理が完了する。また、ダウンロード情報に異なるプログラムが存在する場合(ステップS106でYesの場合)には、その異なるプログラムをダウンロードし(ステップS107)、再びステップS105に戻って、上述した処理を行う。以上の工程によって、プログラム起動の準備処理が終了する。
【0024】
つぎに、プログラム起動時の端末2の動作手順について図3のフローチャートを参照しながら説明する。プログラム起動準備処理が完了したプログラムの起動が開始されると、まず、障害監視部24は、プログラム異常監視の処理を開始する(ステップS201)。これ以降、プログラムが実行されている間、後述する図4の処理によってプログラムの異常が監視される状態となる。
【0025】
つぎに、状態管理部26は、起動日時、起動プログラムなどの起動状態を状態格納部25に前回の起動状態として保存する(ステップS202)。また、状態管理部26は、通信部21を介して、ネットワーク5経由でプログラムをダウンロードしたサーバ1に状態格納部25に格納された起動状態を通知する(ステップS203)。この起動状態の通知には、端末2のネットワークアドレス、起動日時、起動するプログラム名、および起動するプログラムをダウンロードした日時が含まれる。そして、サーバ1の端末管理部13は、受信した起動状態の通知に基づいて端末管理データベース12を更新する。その後、端末2のプログラム処理部22は、上記図2のプログラム起動準備処理で準備したプログラムを起動して実行し(ステップS204)、プログラム起動処理を終了する。
【0026】
つぎに、端末2の起動後におけるプログラムの異常状態を監視する処理手順について、図4のフローチャートを参照しながら説明する。図3のステップS201で示したようにプログラムの実行前にプログラム異常監視処理が開始されると、最初に、障害監視部24が起動され(ステップS301)、障害監視部24はプログラムが正常に実行されているかどうか周期的に監視を行なう(ステップS302およびステップS302でYesの場合)。
【0027】
プログラムの実行に異常がある場合(ステップS302でNoの場合)には、障害監視部24によって端末2が再起動され一度終了した状態となるので、再起動の前に、状態管理部26によって、異常発生プログラム名、異常発生日時など異常終了の状態が、前回の終了状態として、状態格納部25に保存される(ステップS303)。また、状態管理部26は、通信部21を介して、ネットワーク5経由で、プログラムをダウンロードしたサーバ1にプログラムの異常を通知する(ステップS304)。その後、障害監視部24は、端末2を再起動し(ステップS305)、プログラムの異常監視処理が終了する。そして、端末2が再起動されると、図2に示したプログラム起動準備処理から再び実行される。
【0028】
なお、ステップS304でのプログラムの異常の通知には、端末2のネットワークアドレス、起動日時、異常が発生プログラム名(ダウンロードしたファイル名)、ダウンロードした日時、異常発生日時、その他のプログラム異常の詳細が含まれる。そして、サーバ1の端末管理部13は、受信したプログラムの異常通知の内容を端末管理データベース12に保存し、端末管理データベース12の内容を更新する。これによってサーバ1は、端末2のプログラム起動時の起動状態通知と合わせて、常に正確に端末2の状態を把握することができる。
【0029】
なお、上述した説明におけるプログラムに関しては、特に言語や形式に依存するものではなく、直接実行可能なバイナリ形式、仮想マシン上で実行する中間言語形式、コード部分やデータ部分が圧縮されている圧縮バイナリ形式など、どのような形式でも利用可能である。
【0030】
つぎに、図1に示される構成を有するサーバ1と端末2の具体的な構成について説明する。図5は、図1に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。この端末2は、CPU(Central Processing Unit)121と、ROM(Read Only Memory)122と、RAM(Random Access Memory)123と、不揮発性RAM124と、ウォッチドッグタイマ(以下、WDTという)125と、LANに接続するLANインタフェース126とを備える装置によって構成される。
【0031】
ここで、CPU121は制御部30、状態管理部26およびプログラム処理部22に対応し、ROM122はサーバ情報格納部27、ダウンロード情報格納部28およびプログラム格納部29に対応し、RAM123はダウンロードプログラム格納部23に対応し、不揮発性RAM124は状態格納部25に対応し、WDT125は障害監視部24に対応し、LANインタフェース126は通信部21に対応している。
【0032】
また、サーバ1は、CPU101と、ROM102と、RAM103と、LANに接続するLANインタフェース104と、ハードディスクドライブ105と、を備えた構成を有している。ここで、CPU101は制御部15と端末管理部13に対応し、ハードディスクドライブ105は、プログラム格納部11と端末管理データベース12に対応している。また、サーバ1は、表示部、入力部を備えていてもよい。これによって、リモートアップデートシステムの管理者は、端末管理データベース12の内容を表示部に表示させて確認し、入力部を用いてその内容を編集することが可能となる。
【0033】
この実施の形態1によれば、前回起動時にどのプログラムが使用されたかなど前回の起動状態と、正常に終了したかまたは異常に終了したかなどの前回の終了状態を格納する状態格納部25と、プログラムが起動されると常時プログラムの異常を監視する障害監視部24と、プログラムの終了時に状態格納部25に自動的にその終了状態を書き込む状態管理部26を、端末2に備えるように構成したので、端末2は起動時に前回の起動状態と終了状態とダウンロード情報に基づいて起動するプログラムを選択し、サーバ1からダウンロードする場合には、自律的に起動するプログラムをダウンロードすることができる。具体的には、管理者によることなく、前回起動に失敗したり異常終了したりしたプログラムを使用せずに、別のプログラムをダウンロードしたり実行したりして、端末2が長期間に渡って停止することを防ぐことができる。
【0034】
また、端末2が、プログラム起動時に起動日時、起動プログラム名、起動プログラムをダウンロードした日時などをサーバ1に通知する状態管理部26を備えるように構成したので、サーバ1は端末2の最新状態を常に把握できる。さらに、起動状態に加えて状態管理部26は、障害監視部24のプログラムの異常検出によってプログラムが終了される際に、異常の発生日時、異常が発生した端末、異常が発生したプログラムを含む端末2の状態を、サーバ1に通知するように構成したので、サーバ1はプログラムに関するエラー情報を逐次取得することができる。これによって、システムの管理者が、従来のようにリモートから各端末2を個別に操作して異常状態を取得しなければならないという手間を省くことができる。さらにまた、ダウンロードするプログラムにチェックサム機能を備えることによって、異常の原因がプログラムなのかダウンロードの失敗によるものかを容易に区別することもできる。
【0035】
実施の形態2.
図6は、この発明にかかるリモートアップデートシステムの実施の形態2の概略構成を示すブロック図である。このリモートアップデートシステムは、実施の形態1の図1のサーバ1に、ダウンロード情報格納部16を設け、端末2のダウンロード情報格納部28を削除した構成を有している。また、プログラム処理部22は、端末2が起動されると最初にサーバ1のダウンロード情報格納部16に格納されているダウンロード情報をダウンロードする機能を有する。なお、図1と同一の構成要素には同一の符号を付して、その説明を省略している。また、この図6では、端末2はネットワーク5に1台しか接続されていないが、端末2が複数存在してもよい。
【0036】
このように、サーバ1が、端末2が起動すべきプログラムについてのダウンロード情報を保持し、端末2が起動時に毎回サーバ1からダウンロード情報をダウンロードすることによって、たとえば、プログラムの変更が生じた場合でも、各端末2は最新のダウンロード情報に基づいて、新たなプログラムをダウンロードすることが可能となる。これにより、システムの管理者は、それぞれの端末の場所に出向いて、新たなプログラムをダウンロードするように設定する必要がなくなる。その他の動作については、実施の形態1と同様であるので、その説明を省略する。
【0037】
つぎに、図6に示される構成を有するサーバ1と端末2の具体的な構成について説明する。図7は、図6に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。この端末2は、CPU121と、ROM122と、RAM123と、不揮発性RAM124と、WDT125と、LANインタフェース126とを備える装置によって構成される。
【0038】
ここで、CPU121は制御部30、状態管理部26およびプログラム処理部22に対応し、ROM122はサーバ情報格納部27およびプログラム格納部29に対応し、RAM123はダウンロードプログラム格納部23に対応し、不揮発性RAM124は状態格納部25に対応し、WDT125は障害監視部24に対応し、LANインタフェース126は通信部21に対応している。
【0039】
また、サーバ1は、CPU101と、ROM102と、RAM103と、LANインタフェース104と、ハードディスクドライブ105と、を備えた構成を有している。ここで、CPU101は、制御部15および端末管理部13に対応し、ハードディスクドライブ105は、プログラム格納部11、端末管理データベース12およびダウンロード情報格納部16に対応している。さらに、サーバ1は、表示部と入力部を備えていてもよい。これによって、リモートアップデートシステムの管理者は、表示部で端末管理データベース12の内容を確認し、入力部を用いてその内容を編集することが可能となる。
【0040】
この実施の形態2によれば、サーバ1がダウンロード情報格納部16を保持し、端末2が起動時に毎回サーバ1からダウンロード情報をダウンロードするように構成したので、端末2の管理を行う管理者が実際に端末2を設置した場所に出向くことなく、端末2に最新のプログラムをダウンロードするように設定することが可能になる。
【0041】
実施の形態3.
この実施の形態3では、端末2が、端末2に着脱可能な記憶媒体を備え、この記憶媒体にサーバ1からダウンロードしたプログラムを格納して実行する場合について説明する。図8は、この発明にかかるリモートアップデートシステムの実施の形態3の概略構成を示す図である。このリモートアップデートシステムは、実施の形態2の図6の端末2のダウンロードプログラム格納部23、サーバ情報格納部27およびダウンロード情報格納部28aが、持ち運び可能な記憶媒体31によって構成される点が、実施の形態2と異なっている。なお、ダウンロード情報格納部28aは、サーバ1からダウンロードしたダウンロード情報を格納している。
【0042】
端末2のダウンロードプログラム格納部23には、サーバ1のプログラム格納部11からダウンロードされるプログラムが保存され、ダウンロード情報格納部28aには、同じくサーバ1のダウンロード情報格納部16からダウンロードされるダウンロード情報が保存される。このダウンロード情報には、端末2が起動されたときに、ダウンロードプログラム格納部23内のプログラムの存否に関わらず、サーバ1からプログラムをダウンロードするか否かを示す強制フラグが含まれている。より具体的には、強制フラグがオンのときには、ダウンロードプログラム格納部23内のプログラムの有無に関わらずサーバ1からプログラムをダウンロードし、強制フラグがオフのときには、通常の手順に従う。なお、実施の形態2の図6または実施の形態1の図1と同一の構成要素については同一の符号を付して、その説明を省略している。また、この図8では、端末2はネットワーク5に1台しか接続されていないが、端末2が複数存在しても、それぞれの端末2が以下に説明する同一の動作を行うので、ここでは端末2が1台の場合を例に挙げて説明する。
【0043】
つぎに、このリモートアップデートシステムの動作について説明する。図9は、この発明のリモートアップデートシステムにおける端末の起動からダウンロード情報を取得するまでの動作手順を示すフローチャートであり、図10は、この発明のリモートアップデートシステムにおけるプログラム起動準備時の端末の動作手順を示すフローチャートである。
【0044】
最初に、端末2の起動からダウンロード情報を取得するまでの動作手順について説明する。まず、端末2のプログラム処理部22は、サーバ1のダウンロード情報格納部16からダウンロード情報をダウンロードし(ステップS401)、ダウンロード情報のダウンロードが正常に完了したか否かを判定する(ステップS402)。ダウンロード情報のダウンロードが正常に終了した場合(ステップS402でYesの場合)には、ダウンロード情報を持ち運び可能な記憶媒体31中のダウンロード情報格納部28aに保存する(ステップS403)。一方、ダウンロード情報のダウンロードが正常に終了しなかった場合(ステップS402でNoの場合)には、持ち運び可能な記憶媒体31中のダウンロード情報格納部28aにダウンロード情報が存在するか否かを調べる(ステップS404)。
持ち運び可能な記憶媒体31中のダウンロード情報格納部28aにダウンロード情報が存在しない場合(ステップS404でNoの場合)には、プログラム格納部29に格納されているプログラムの起動準備を図10に示す手順にしたがって開始する処理を行い(ステップS405)、ダウンロード情報の取得処理を完了する。
【0045】
ステップS403でサーバ1からのダウンロードが正常に終了した場合、またはステップS404で持ち運び可能な記憶媒体31のダウンロード情報格納部28aにダウンロード情報が存在する場合(ステップS404でYesの場合)には、持ち運び可能な記憶媒体31のダウンロード情報格納部28aに格納されているダウンロード情報を使用して(ステップS406)、図10に示すプログラムの起動準備を開始する処理を行い(ステップS407)、ダウンロード情報の取得処理を完了する。
【0046】
つぎに、プログラム起動準備時の端末2の動作手順について図10のフローチャートを参照しながら説明する。ダウンロード情報の取得処理が終了すると、端末2のプログラム処理部22は、持ち運び可能な記憶媒体31のダウンロード情報格納部28aに保存されているダウンロード情報をロードする(ステップS501)。つぎに、ダウンロード情報に含まれるプログラムの優先順位情報と、状態格納部25に格納されている現在の起動状況から起動するべきプログラムがあるか否かを調べる(ステップS502)。起動するべきプログラムがない場合(ステップS502でNoの場合)には、プログラム格納部29上のプログラムの起動を開始し(ステップS509)、この後、実施の形態1の図3に示したプログラムの起動処理が実行される。
【0047】
一方、起動するべきプログラムである場合(ステップS502でYesの場合)には、プログラム処理部22は、ダウンロード情報に含まれる強制ダウンロードフラグを調べる(ステップS503)。強制ダウンロードフラグがオンの場合(ステップS503でYesの場合)には、持ち運び可能な記憶媒体31のダウンロードプログラム格納部23に保存されているプログラムの有無に関わらず、プログラム処理部22は、サーバ1からプログラムをダウンロードする(ステップS507)。その後、プログラムのダウンロードが正常に完了したか否かを調べる(ステップS508)。正常終了した場合(ステップS508でYesの場合)には、そのプログラムについて、実施の形態1の図3に示したプログラムの起動処理が開始される(ステップS509)。また、正常終了していない場合(ステップS508でNoの場合)には、ステップS502に戻る。
【0048】
また、ステップS503で、強制ダウンロードフラグがオフの場合(ステップS503でNoの場合)には、起動するべきプログラムが前回起動時と同じプログラムか否かを調べる(ステップS504)。起動するべきプログラムと前回起動時のプログラムが同じ場合(ステップS504でYesの場合)には、プログラム処理部22は、前回そのプログラムは正常終了しかた否かを状態格納部25に格納されている前回の終了状態を用いて調べる(ステップS505)。前回正常に終了している場合(ステップS505でYesの場合)には、持ち運び可能な記憶媒体31からプログラムをロードして(ステップS506)、そのプログラムについて、実施の形態1の図3に示したプログラムの起動処理が実行される(ステップS509)。
【0049】
ステップS505で、前回正常に終了していない場合(ステップS505でNoの場合)には、ステップS502に戻り、再度起動するべきプログラムの選択からの処理が行なわれる。また、ステップS504で、起動するべきプログラムと前回起動時のプログラムが異なる場合(ステップS504でNoの場合)には、上述したステップS507以降の処理が実行される。
【0050】
上記のステップS509におけるプログラムの起動開始の処理は、上述した実施の形態1の図3と同様であり、また、プログラムの異常監視の処理は、同じく図4と同様であるので、その説明を省略している。
【0051】
つぎに、図8に示される構成を有するサーバ1と端末2の具体的な構成について説明する。図11は、図8に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。この端末2は、CPU121と、ROM122と、不揮発性RAM124と、WDT125と、LANインタフェース126と、持ち運び可能な記憶媒体127と、を備える装置によって構成される。
【0052】
ここで、CPU121はプログラム処理部22、状態管理部26および制御部30に対応し、ROM122はプログラム格納部29に対応し、不揮発性RAM124は状態格納部25に対応し、WDT125は障害監視部24に対応し、LANインタフェース126は通信部21に対応し、持ち運び可能な記憶媒体127はダウンロードプログラム格納部23、サーバ情報格納部27およびダウンロード情報格納部28aに対応している。なお、持ち運び可能な記憶媒体127として、電源を切っても内容が保持される記憶媒体ならばよく、たとえば、コンパクトフラッシュ(登録商標)メモリやスマートメディアなどのメモリや、書き換え可能なコンパクトディスク、フレキシブルディスク、光磁気ディスクなどを使用することができる。
【0053】
これによって、たとえば、サーバ情報に変更があった場合には、実施の形態1のようにROM122にサーバ情報が格納される構成の端末2では、ROM122内のサーバ情報を編集するための専用の機器などが必要となるが、この実施の形態3のように持ち運び可能な記憶媒体127にサーバ情報を格納することによって、ROM122内のサーバ情報を編集するための専用の機器などが不要になり、パーソナルコンピュータなどの汎用の機器を用いてサーバ情報を編集することが可能になる。
【0054】
また、サーバ1は、CPU101と、ROM102と、RAM103と、LANインタフェース104と、ハードディスクドライブ105と、を備えた構成を有している。ここで、CPU101は端末管理部13と制御部15に対応し、ハードディスクドライブ105は、プログラム格納部11、端末管理データベース12およびダウンロード情報格納部16に対応している。また、サーバ1は、表示部と入力部を備えていてもよい。これによって、リモートアップデートシステムの管理者は、端末管理データベース12の内容を表示部で確認し、入力部を用いてその内容を編集することが可能となる。
【0055】
この実施の形態3によれば、端末2の持ち運び可能な記憶媒体31に、サーバ情報、ダウンロードされたプログラム、ダウンロードされたダウンロード情報を保持させるように構成したので、端末2にサーバ情報を編集するための専用の機器などが不要になり、パーソナルコンピュータなど汎用の機器を用いて編集することが可能になる。
【0056】
また、サーバ1からダウンロードされたプログラムとダウンロード情報を、持ち運び可能な記憶媒体31に格納するようにしたので、端末2の電源を切った場合でもダウンロード情報とプログラムは消去されなくなる。その結果、もし、ネットワーク5またはサーバ1に異常が発生し、起動時にサーバ1に接続できない場合でも、前回起動した時と同じ状態で起動することが可能になる。さらに、一般的に端末2が保持しているROM122と比較して、コンパクトフラッシュ(登録商標)メモリやスマートメディアなどの持ち運び可能な記憶媒体127は大容量であるため、複数のプログラムをダウンロードして格納することも可能になる。
【0057】
さらにまた、ダウンロード情報にダウンロードの優先順位情報を追加することによって端末2が、起動時の状態に応じた最適なプログラムを自動的に選択してダウンロードし、そのプログラムを実行することが可能になる。
【0058】
さらにまた、ダウンロード情報にプログラムの強制的なダウンロードを行なうか否かを示すフラグを追加することによって、端末2のプログラムの開発を行なっている開発者は、作成したプログラムの確認をするたびに、作成したプログラムをダウンロードするようにダウンロード情報を変更することなく、端末2が起動されるたびに開発したプログラムの試験を行なうことができる。また、強制ダウンロードのフラグがオフであって、持ち運び可能な記憶媒体31上に必要なプログラムが存在する場合には、プログラムのダウンロードを行わずにプログラムを起動することができるため、端末2の起動時間が短縮される。
【0059】
実施の形態4.
図12は、この発明にかかるリモートアップデートシステムの実施の形態4の概略構成を示すブロック図である。このリモートアップデートシステムは、上述した実施の形態3の図8において、プログラム格納部29が、ネットワーク5やサーバ1の異常でサーバ1からプログラムをダウンロードすることができない場合に実行されるプログラムを格納する実行プログラム格納部29aと、実行プログラム格納部29aに格納されているプログラムをバックアップするためのバックアッププログラム格納部29bと、を備えて構成され、プログラム格納部29への書き込みを制御する書き込み許可スイッチ32が備えられた構成を有している。
【0060】
バックアッププログラム格納部29bに格納されるプログラムは、実行プログラム格納部29aのプログラムの書き換えを行なう前に、それまで実行プログラム格納部29aに格納されていたプログラムである。
【0061】
書き込み許可スイッチ32は、プログラム格納部29への書き込みを制御するハードウェアスイッチである。実行プログラム格納部29a内のプログラムは、最後の起動手段となるため、誰にでも実行プログラム格納部29a内のプログラムを書き換えるようにするのは非常に危険であるので、鍵が必要なスイッチなどで書き込み許可スイッチを設けるようにしている。これによって、通常は書き込みが行なえないようにし、端末2の存在する場所に所定の鍵を持ったシステムの管理者が行かなければ実行プログラム格納部29aの内容を書き換えられないようにしている。その結果、ネットワーク5の異常やサーバ1の故障が発生した最悪の場合でも、端末2が起動できなくなる状態に陥ることを防ぐことができる。
【0062】
なお、実施の形態3の図8と同一の構成要素には同一の符号を付して、その説明を省略している。また、この図12では、端末2はネットワーク5に1台しか接続されていないが、端末2が複数存在しても、それぞれの端末2が以下に説明する同一の動作を行うので、ここでは端末2が1台の場合を例に挙げて説明する。
【0063】
つぎに、このリモートアップデートシステムにおけるプログラム起動の動作処理について説明する。なお、ダウンロード情報の取得処理は、実施の形態3の図9と同様であり、プログラム起動の準備処理は、同じく図10と同様であるので、その説明を省略している。図13は、リモートアップデートシステムのプログラム起動時の動作処理を示すフローチャートである。
【0064】
図10に示したようにプログラム起動準備処理が完了すると、障害監視部24によってプログラム異常監視処理が開始される(ステップS601)。このプログラム異常監視処理は、上述した実施の形態1の図4と同様であるので、その説明は省略する。つぎに、状態管理部26は、起動状態を前回の起動状態として状態格納部25に保存し(ステップS602)、プログラム格納部29への書き込みが許可されているか否か調べる(ステップS603)。書き込み許可がある場合(ステップS603でYesの場合)には、実行プログラム格納部29aのプログラムを別名でバックアッププログラム格納部29bにバックアップして保存する(ステップS604)。その後、サーバ1から持ち運び可能な記憶媒体31上にダウンロードされたプログラムを実行プログラム格納部29aに書き込む(ステップS605)。一方、ステップS603で、書き込み許可がない場合(ステップS603でNoの場合)には、プログラムバックアップ部への書き込みは行わない。その後、またはステップS605での実行プログラム格納部29aへのプログラムの書きこみ後、状態管理部26は、サーバ1に起動状態を通知し(ステップS606)、プログラムを起動して(ステップS607)、プログラムの内容に沿った処理が以降行われる。以上で、プログラム起動処理が終了する。
【0065】
つぎに、図12に示される構成を有するサーバ1と端末2の具体的な構成について説明する。図14は、図12に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。この端末2は、CPU121と、EEPROM(Electrically Erasable and Programmable ROM)などの書き換え可能なROM122と、不揮発性RAM124と、WDT125と、LANインタフェース126と、持ち運び可能な記憶媒体127と、を備えた装置によって構成される。
【0066】
ここで、CPU121は制御部30、状態管理部26およびプログラム処理部22に対応し、書き換え可能なROM122はプログラム格納部29に対応し、不揮発性RAM124は状態格納部25に対応し、WDT125は障害監視部24に対応し、LANインタフェース126は通信部21に対応し、持ち運び可能な記憶媒体127はダウンロードプログラム格納部23、サーバ情報格納部27およびダウンロード情報格納部28に対応している。なお、書き込み許可スイッチ32は、書き換え可能なROM122に設けられるテストピンなどを用いることができる。
【0067】
また、サーバ1は、CPU101と、ROM102と、RAM103と、LANインタフェース104と、ハードディスクドライブ105と、を備えた構成を有している。ここで、CPU101は端末管理部13と制御部15に対応し、ハードディスクドライブ105は、プログラム格納部11、端末管理データベース12およびダウンロード情報格納部16に対応している。また、サーバ1は、表示部と入力部を備えていてもよい。これによって、リモートアップデートシステムの管理者は、表示部で端末管理データベース12の内容を確認し、入力部を用いてその内容を編集することが可能となる。
【0068】
この実施の形態4によれば、ダウンロードしたプログラムを実行プログラム格納部29aに書き込む前に、それまで実行プログラム格納部29aに書き込まれていたプログラムをバックアッププログラム格納部29bにバックアップすることによって、次回起動時にネットワーク5やサーバ1に異常があってプログラムをダウンロードできない場合や、持ち運び可能な記憶媒体31が挿入されていない場合でも端末2を起動することが可能になる。
【0069】
また、実行プログラム格納部29aに格納されたプログラムが正常に動作しない場合、または、システムの管理者が間違えて、実行プログラム格納部29aに格納されているプログラムを書き換えてしまった場合には、バックアッププログラム格納部29bに格納されているプログラムを実行プログラム格納部29aに戻すことによって、元の正常に動作するプログラムに変更することができるので、端末2が動作しなくなってしまうという状況を回避することができる。
【0070】
さらに、一般的に端末が保持しているROM122と比較して、コンパクトフラッシュ(登録商標)メモリやスマートメディアなどの持ち運び可能な記憶媒体は大容量であるため、複数のプログラムをダウンロードして格納することも可能になる。
【0071】
【発明の効果】
以上説明したように、この発明によれば、前回起動時にどのプログラムが使用されたかなど前回の起動状態と、正常に終了したかまたは異常に終了したかなどの前回の終了状態を格納する状態格納部と、プログラムが起動されると常時プログラムの異常を監視する障害監視部と、異常発生時に状態格納部に自動的にその終了状態を書き込む状態管理部を、端末に備えるように構成したので、端末は起動時に前回の起動状態と終了状態を判断して自律的に起動するプログラムを選択することができる。また、プログラム起動の端末の状態と、プログラムの終了時の端末の状態とを、サーバに通知する状態管理部を端末が備えるように構成したので、サーバは端末の最新状態を常に把握できるとともに、プログラムに関するエラー情報を逐次取得することができる。これによって、システムの管理者が、従来のようにリモートから各端末を個別に操作して異常状態を取得しなければならないという手間を省くことができる。
【図面の簡単な説明】
【図1】この発明によるリモートアップデートシステムの実施の形態1の概略構成を示すブロック図である。
【図2】この発明のリモートアップデートシステムにおける端末の起動からプログラム起動前までの動作手順を示すフローチャートである。
【図3】この発明のリモートアップデートシステムにおけるプログラム起動時の端末の動作手順を示すフローチャートである。
【図4】この発明のリモートアップデートシステムにおける端末の起動後からプログラムの異常状態を監視する処理手順を示すフローチャートである。
【図5】図1に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。
【図6】この発明によるリモートアップデートシステムの実施の形態2の概略構成を示すブロック図である。
【図7】図6に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。
【図8】この発明によるリモートアップデートシステムの実施の形態3の概略構成を示す図である。
【図9】この発明のリモートアップデートシステムにおける端末の起動からダウンロード情報を取得するまでの動作手順を示すフローチャートである。
【図10】この発明のリモートアップデートシステムにおけるプログラム起動準備時の端末の動作手順を示すフローチャートである。
【図11】図8に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。
【図12】この発明によるリモートアップデートシステムの実施の形態4の概略構成を示すブロック図である。
【図13】リモートアップデートシステムのプログラム起動時の動作処理を示すフローチャートである。
【図14】図12に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。
【符号の説明】
1 サーバ、2 端末、5 ネットワーク、11 プログラム格納部、12 端末管理データベース、13 端末管理部、14 通信部、15 制御部、16ダウンロード情報格納部、21 通信部、22 プログラム処理部、23 ダウンロードプログラム格納部、24 障害監視部、25 状態格納部、26 状態管理部、27 サーバ情報格納部、28,28a ダウンロード情報格納部、29 プログラム格納部、29a 実行プログラム格納部、29b バックアッププログラム格納部、30 制御部、31,127 持ち運び可能な記憶媒体、32 書き込み許可スイッチ、101,121 CPU、102,122 ROM、103,123 RAM、104,126 LANインタフェース、105ハードディスクドライブ、124 不揮発性RAM、125 WDT。
【発明の属する技術分野】
この発明は、ネットワークに接続されている端末にサーバからプログラムをダウンロードする際に、端末がダウンロードするプログラムを自律的に決定し、ダウンロードしたプログラムに障害が発生した場合には自律的に復旧するリモートアップデートシステムに関するものである。
【0002】
【従来の技術】
最近のネットワークに接続された端末では、システムの修正やバージョンアップ、特性変更など、プログラムの更新をネットワーク経由で適時実施する方法が一般的に使用されている。たとえば、ある端末はリモート操作によってサーバからプログラムをダウンロードし、自端末のプログラムの更新を行う。しかし、サーバからダウンロードしたプログラムに障害が含まれている場合には、プログラムを起動しても正常に動作しないだけでなく、プログラム自体の起動さえもできない状態になり、リモート操作が不可能になってしまうという事態になることも考えられる。
【0003】
このような事態を回避するために、プログラムの障害から自律的に復旧するプログラム障害自律復旧システムが提案されている。このプログラム障害自律復旧システムでは、端末が、現在使用しているプログラムをバックアップメモリに保存した後に、プログラムをダウンロードし、このダウンロードしたプログラムを自動的に実行する。そして、そのプログラムにより障害が発生した場合には、バックアップメモリに保存したプログラムで自立的に再起動するようにしている(たとえば、特許文献1参照)。
【0004】
【特許文献1】
特開平10−105407号公報(第3頁、第1図)
【0005】
【発明が解決しようとする課題】
上記特許文献1に記載されるプログラム障害自律復旧システムでは、システムの管理者がリモートからの操作によって端末にダウンロードするプログラムを指定するようにしている。そのため、複数台の端末を同時にネットワークに新たに設置した場合や新たなプログラムに変更する場合には、個々の端末に対して、システムの管理者がリモートで操作して、ダウンロードを指示しなければならないので、それらの運用準備に手間がかかってしまうという問題点があった。
【0006】
また、ダウンロードしたプログラムに障害が発生した場合に、端末はバックアップメモリから正常に動作していたプログラムをロードして再起動するが、サーバ側では端末がプログラムの実行で障害が発生したことを知ることができないという問題点もあった。
【0007】
この発明は、上記に鑑みてなされたもので、複数台の端末を同時にネットワークに新たに設置した場合に、個々の端末へのプログラムのダウンロードを行うシステムの管理者の手間を軽減することが可能なリモートアップデートシステムを得ることを目的とする。また、端末がダウンロードしたプログラムに障害が発生した場合に、サーバ側で端末がプログラムの実行で障害が発生したことを知ることが可能なリモートアップデートシステムを得ることも目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかるリモートアップデートシステムは、サーバと、前記サーバに格納されるプログラムをダウンロードして実行する1〜複数の端末とが、ネットワークを介して接続されたリモートアップデートシステムであって、前記端末は、前回起動した際の起動状態と終了状態を保存する状態格納手段と、前記サーバのネットワーク上の位置を含むサーバ情報を格納するサーバ情報格納手段と、自端末におけるプログラムを用いた起動手順を含むダウンロード情報を格納するダウンロード情報格納手段と、起動時に前記サーバ情報、前記ダウンロード情報、前記前回起動した際の起動状態と終了状態に基づいて前記サーバからプログラムをダウンロードして実行するプログラム処理手段と、前記プログラム処理手段によってダウンロードされたプログラムを格納するダウンロードプログラム格納手段と、前記プログラムの起動時と終了時の状態を前記状態格納手段に格納する状態管理手段と、を備えることを特徴とする。
【0009】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるがリモートアップデートシステムの好適な実施の形態を詳細に説明する。
【0010】
実施の形態1.
図1は、この発明にかかるリモートアップデートシステムの実施の形態1の概略構成を示すブロック図である。このリモートアップデートシステムは、サーバ1と端末2とが、LAN(Local Area Network)やWAN(Wide Area Network)などのネットワーク5を介して接続されて構成されている。なお、この図1では、端末2はネットワーク5に1台しか接続されていないが、端末2が複数存在しても、それぞれの端末2が以下に説明する同一の動作を行うので、ここでは端末2が1台の場合を例に挙げて説明する。
【0011】
サーバ1は、ネットワーク5に接続された端末2がダウンロードするプログラムを保存するハードウェアであり、端末2のプログラムをアップデートするためのソフトウェアであるプログラムを格納するプログラム格納部11と、このリモートアップデートシステムに属し、ネットワーク5に接続される端末2からのその端末2の状態を示す通知を格納する端末管理データベース12と、端末2から受信した端末2の状態を端末管理データベース12に登録し、管理する端末管理部13と、ネットワーク5に接続して他の端末2などと通信を行う通信部14と、サーバ1全体を制御する制御部15と、を備えて構成される。
【0012】
端末管理部13には、端末のネットワークアドレス、起動日時、起動するプログラム名、起動するプログラムをダウンロードした日時を含む起動状態と、端末のネットワークアドレス、正常終了または異常終了、異常発生プログラム名、異常発生日時を含む終了状態が格納される。
【0013】
端末2は、サーバ1からプログラムをダウンロードし、そのプログラムを実行するハードウェアであり、通信部21、プログラム処理部22、ダウンロードプログラム格納部23、障害監視部24、状態格納部25、状態管理部26、サーバ情報格納部27、ダウンロード情報格納部28、プログラム格納部29および制御部30を備えて構成される。
【0014】
通信部21は、端末2をネットワーク5と接続し、ネットワーク5に接続されたサーバ1などの他のハードウェアと情報の通信を行う機能を有する。プログラム処理部22は、ダウンロード情報格納部28に格納されるダウンロード情報と状態格納部25に格納される自端末2の前回起動時および終了時の状態に応じてサーバ1からプログラムをダウンロードする機能、プログラムのダウンロードが正常に行なわれたかのチェックを行なうチェックサム機能、および、ダウンロードしたプログラムを実行する機能を有する。ダウンロードプログラム格納部23は、プログラム処理部22によってダウンロードされたプログラムを保存する機能を有する。障害監視部24は、プログラム実行中に障害が発生していないかを常に監視し、障害の発生を検出した場合には端末2を再起動する機能を有する。
【0015】
状態格納部25は、前回の終了状態と、前回の起動状態を保存する。前回の終了状態は、端末2が前回どのように終了したか、たとえば正常に終了したか、異常終了したか、を表す情報であり、前回の起動状態は、端末2が前回どのプログラムを使って、どのように起動したかを表す情報である。たとえば、正常に終了した場合には、正常に終了したことを示す項目、終了日時を含む項目からなる情報が前回の終了状態となり、異常終了した場合には、異常発生プログラム名、異常発生日時を含む項目からなる情報が前回の終了状態となる。また、起動するプログラム名、起動日時、起動するプログラムをダウンロードした日時を含む項目からなる情報が前回の起動状態となる。
【0016】
状態管理部26は、プログラムの起動時における端末2の起動状態と、プログラム終了時における端末2の終了状態を状態格納部25に格納するとともに、その内容をサーバ1に通知する機能を有する。
【0017】
サーバ情報格納部27は、プログラムをダウンロードするために使用するサーバ1のネットワーク5上の位置を表すサーバ情報を格納する。ダウンロード情報格納部28は、端末2がどのように起動するべきかを表すダウンロード情報を格納する。たとえば、ダウンロード情報には、サーバからダウンロードするべきプログラムについて、最初にダウンロードするべきプログラム、プログラムを正常にダウンロードできなかった場合にダウンロードするべきプログラム、このプログラムを正常にダウンロードできなかった場合にダウンロードするべきプログラム、・・・というように優先順位付けされたものが格納されるようにしてもよい。このようにダウンロード情報にダウンロードの優先順位情報を追加することによって、端末2が最適なプログラムを自律的に選択してダウンロードし、実行することが可能になる。
【0018】
プログラム格納部29は、ネットワーク5やサーバ1の異常でサーバ1からプログラムをダウンロードすることができない場合に実行されるプログラムを格納する。制御部30は、これらの構成要素を制御する機能を有する。
【0019】
つぎに、このリモートアップデートシステムの動作について説明する。図2は、この発明のリモートアップデートシステムにおける端末のプログラム起動準備の処理手順を示すフローチャートであり、図3は、この発明のリモートアップデートシステムにおけるプログラム起動時の端末の処理手順を示すフローチャートあり、図4は、この発明のリモートアップデートシステムにおける端末のプログラム異常監視の処理手順を示すフローチャートである。
【0020】
最初に、端末2の起動からプログラム起動前までの動作手順について図2のフローチャートを参照して説明する。端末2を起動して、ハードウェアが初期化され、プログラム起動の準備が開始されると、まず、プログラム処理部22は、状態格納部25に保存されている前回の終了状態を読み込み、前回正常に終了したか否かを判定する(ステップS101)。判定の結果、前回正常に終了していた場合(ステップS101でYesの場合)には、プログラム処理部22は、状態格納部25に保存されている前回の起動状態を読み込み、前回と同じプログラムをサーバ1からダウンロードする(ステップS102)。
【0021】
一方、判定の結果、前回正常に終了していなかった場合(ステップS101でNoの場合)には、状態格納部25に保存されている前回の起動状態と、ダウンロード情報格納部28に保存されているダウンロード情報を読み込み、前回の終了時に実行していたプログラムとは異なるプログラムがダウンロード情報に存在するか否かを判定する(ステップS103)。判定の結果、前回の終了時に実行していたプログラムとは異なるプログラムがダウンロード情報に存在しない場合(ステップS103でNoの場合)には、プログラム格納部29に格納されているプログラムを実行するために、サーバ1からプログラムのダウンロードなしで、後述する図3のプログラム起動処理に進み(ステップS108)、プログラム起動準備処理が終了する。また、判定の結果、前回の終了時に実行していたプログラムとは異なるプログラムが存在する場合(ステップS103でYesの場合)には、前回の終了時に実行していたプログラムとは異なるプログラムをサーバ1からダウンロードする(ステップS104)。
【0022】
ステップS102での前回と同じプログラムのダウンロード後、またはステップS104での前回とは異なるプログラムのダウンロード後、プログラム処理部22は、プログラムの保持するチェックサムの確認、および、ネットワーク5の異常の有無を確認し、ダウンロードが正常に完了したか否かを調べる(ステップS105)。ダウンロードが正常に完了した場合(ステップS105でYesの場合)には、プログラム処理部22は、図3に示される正常にダウンロードが終了したプログラムの起動処理を実行し(ステップS108)、プログラム起動準備の処理は完了する。
【0023】
一方、ダウンロードが正常に完了しなかった場合(ステップS105でNoの場合)には、プログラム処理部22は、ダウンロード情報格納部28に保存されているダウンロード情報を読み込み、前回の終了時に実行していたプログラムまたは今回ダウンロードしたプログラムとは異なるプログラムがダウンロード情報に存在するか否かを調べる(ステップS106)。ダウンロード情報に異なるプログラムが存在しない場合(ステップS106でNoの場合)には、プログラムのダウンロードを行わずに、プログラム格納部29に格納されているプログラムについて、図3に示す起動処理が行われ(ステップS108)、プログラム起動準備処理が完了する。また、ダウンロード情報に異なるプログラムが存在する場合(ステップS106でYesの場合)には、その異なるプログラムをダウンロードし(ステップS107)、再びステップS105に戻って、上述した処理を行う。以上の工程によって、プログラム起動の準備処理が終了する。
【0024】
つぎに、プログラム起動時の端末2の動作手順について図3のフローチャートを参照しながら説明する。プログラム起動準備処理が完了したプログラムの起動が開始されると、まず、障害監視部24は、プログラム異常監視の処理を開始する(ステップS201)。これ以降、プログラムが実行されている間、後述する図4の処理によってプログラムの異常が監視される状態となる。
【0025】
つぎに、状態管理部26は、起動日時、起動プログラムなどの起動状態を状態格納部25に前回の起動状態として保存する(ステップS202)。また、状態管理部26は、通信部21を介して、ネットワーク5経由でプログラムをダウンロードしたサーバ1に状態格納部25に格納された起動状態を通知する(ステップS203)。この起動状態の通知には、端末2のネットワークアドレス、起動日時、起動するプログラム名、および起動するプログラムをダウンロードした日時が含まれる。そして、サーバ1の端末管理部13は、受信した起動状態の通知に基づいて端末管理データベース12を更新する。その後、端末2のプログラム処理部22は、上記図2のプログラム起動準備処理で準備したプログラムを起動して実行し(ステップS204)、プログラム起動処理を終了する。
【0026】
つぎに、端末2の起動後におけるプログラムの異常状態を監視する処理手順について、図4のフローチャートを参照しながら説明する。図3のステップS201で示したようにプログラムの実行前にプログラム異常監視処理が開始されると、最初に、障害監視部24が起動され(ステップS301)、障害監視部24はプログラムが正常に実行されているかどうか周期的に監視を行なう(ステップS302およびステップS302でYesの場合)。
【0027】
プログラムの実行に異常がある場合(ステップS302でNoの場合)には、障害監視部24によって端末2が再起動され一度終了した状態となるので、再起動の前に、状態管理部26によって、異常発生プログラム名、異常発生日時など異常終了の状態が、前回の終了状態として、状態格納部25に保存される(ステップS303)。また、状態管理部26は、通信部21を介して、ネットワーク5経由で、プログラムをダウンロードしたサーバ1にプログラムの異常を通知する(ステップS304)。その後、障害監視部24は、端末2を再起動し(ステップS305)、プログラムの異常監視処理が終了する。そして、端末2が再起動されると、図2に示したプログラム起動準備処理から再び実行される。
【0028】
なお、ステップS304でのプログラムの異常の通知には、端末2のネットワークアドレス、起動日時、異常が発生プログラム名(ダウンロードしたファイル名)、ダウンロードした日時、異常発生日時、その他のプログラム異常の詳細が含まれる。そして、サーバ1の端末管理部13は、受信したプログラムの異常通知の内容を端末管理データベース12に保存し、端末管理データベース12の内容を更新する。これによってサーバ1は、端末2のプログラム起動時の起動状態通知と合わせて、常に正確に端末2の状態を把握することができる。
【0029】
なお、上述した説明におけるプログラムに関しては、特に言語や形式に依存するものではなく、直接実行可能なバイナリ形式、仮想マシン上で実行する中間言語形式、コード部分やデータ部分が圧縮されている圧縮バイナリ形式など、どのような形式でも利用可能である。
【0030】
つぎに、図1に示される構成を有するサーバ1と端末2の具体的な構成について説明する。図5は、図1に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。この端末2は、CPU(Central Processing Unit)121と、ROM(Read Only Memory)122と、RAM(Random Access Memory)123と、不揮発性RAM124と、ウォッチドッグタイマ(以下、WDTという)125と、LANに接続するLANインタフェース126とを備える装置によって構成される。
【0031】
ここで、CPU121は制御部30、状態管理部26およびプログラム処理部22に対応し、ROM122はサーバ情報格納部27、ダウンロード情報格納部28およびプログラム格納部29に対応し、RAM123はダウンロードプログラム格納部23に対応し、不揮発性RAM124は状態格納部25に対応し、WDT125は障害監視部24に対応し、LANインタフェース126は通信部21に対応している。
【0032】
また、サーバ1は、CPU101と、ROM102と、RAM103と、LANに接続するLANインタフェース104と、ハードディスクドライブ105と、を備えた構成を有している。ここで、CPU101は制御部15と端末管理部13に対応し、ハードディスクドライブ105は、プログラム格納部11と端末管理データベース12に対応している。また、サーバ1は、表示部、入力部を備えていてもよい。これによって、リモートアップデートシステムの管理者は、端末管理データベース12の内容を表示部に表示させて確認し、入力部を用いてその内容を編集することが可能となる。
【0033】
この実施の形態1によれば、前回起動時にどのプログラムが使用されたかなど前回の起動状態と、正常に終了したかまたは異常に終了したかなどの前回の終了状態を格納する状態格納部25と、プログラムが起動されると常時プログラムの異常を監視する障害監視部24と、プログラムの終了時に状態格納部25に自動的にその終了状態を書き込む状態管理部26を、端末2に備えるように構成したので、端末2は起動時に前回の起動状態と終了状態とダウンロード情報に基づいて起動するプログラムを選択し、サーバ1からダウンロードする場合には、自律的に起動するプログラムをダウンロードすることができる。具体的には、管理者によることなく、前回起動に失敗したり異常終了したりしたプログラムを使用せずに、別のプログラムをダウンロードしたり実行したりして、端末2が長期間に渡って停止することを防ぐことができる。
【0034】
また、端末2が、プログラム起動時に起動日時、起動プログラム名、起動プログラムをダウンロードした日時などをサーバ1に通知する状態管理部26を備えるように構成したので、サーバ1は端末2の最新状態を常に把握できる。さらに、起動状態に加えて状態管理部26は、障害監視部24のプログラムの異常検出によってプログラムが終了される際に、異常の発生日時、異常が発生した端末、異常が発生したプログラムを含む端末2の状態を、サーバ1に通知するように構成したので、サーバ1はプログラムに関するエラー情報を逐次取得することができる。これによって、システムの管理者が、従来のようにリモートから各端末2を個別に操作して異常状態を取得しなければならないという手間を省くことができる。さらにまた、ダウンロードするプログラムにチェックサム機能を備えることによって、異常の原因がプログラムなのかダウンロードの失敗によるものかを容易に区別することもできる。
【0035】
実施の形態2.
図6は、この発明にかかるリモートアップデートシステムの実施の形態2の概略構成を示すブロック図である。このリモートアップデートシステムは、実施の形態1の図1のサーバ1に、ダウンロード情報格納部16を設け、端末2のダウンロード情報格納部28を削除した構成を有している。また、プログラム処理部22は、端末2が起動されると最初にサーバ1のダウンロード情報格納部16に格納されているダウンロード情報をダウンロードする機能を有する。なお、図1と同一の構成要素には同一の符号を付して、その説明を省略している。また、この図6では、端末2はネットワーク5に1台しか接続されていないが、端末2が複数存在してもよい。
【0036】
このように、サーバ1が、端末2が起動すべきプログラムについてのダウンロード情報を保持し、端末2が起動時に毎回サーバ1からダウンロード情報をダウンロードすることによって、たとえば、プログラムの変更が生じた場合でも、各端末2は最新のダウンロード情報に基づいて、新たなプログラムをダウンロードすることが可能となる。これにより、システムの管理者は、それぞれの端末の場所に出向いて、新たなプログラムをダウンロードするように設定する必要がなくなる。その他の動作については、実施の形態1と同様であるので、その説明を省略する。
【0037】
つぎに、図6に示される構成を有するサーバ1と端末2の具体的な構成について説明する。図7は、図6に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。この端末2は、CPU121と、ROM122と、RAM123と、不揮発性RAM124と、WDT125と、LANインタフェース126とを備える装置によって構成される。
【0038】
ここで、CPU121は制御部30、状態管理部26およびプログラム処理部22に対応し、ROM122はサーバ情報格納部27およびプログラム格納部29に対応し、RAM123はダウンロードプログラム格納部23に対応し、不揮発性RAM124は状態格納部25に対応し、WDT125は障害監視部24に対応し、LANインタフェース126は通信部21に対応している。
【0039】
また、サーバ1は、CPU101と、ROM102と、RAM103と、LANインタフェース104と、ハードディスクドライブ105と、を備えた構成を有している。ここで、CPU101は、制御部15および端末管理部13に対応し、ハードディスクドライブ105は、プログラム格納部11、端末管理データベース12およびダウンロード情報格納部16に対応している。さらに、サーバ1は、表示部と入力部を備えていてもよい。これによって、リモートアップデートシステムの管理者は、表示部で端末管理データベース12の内容を確認し、入力部を用いてその内容を編集することが可能となる。
【0040】
この実施の形態2によれば、サーバ1がダウンロード情報格納部16を保持し、端末2が起動時に毎回サーバ1からダウンロード情報をダウンロードするように構成したので、端末2の管理を行う管理者が実際に端末2を設置した場所に出向くことなく、端末2に最新のプログラムをダウンロードするように設定することが可能になる。
【0041】
実施の形態3.
この実施の形態3では、端末2が、端末2に着脱可能な記憶媒体を備え、この記憶媒体にサーバ1からダウンロードしたプログラムを格納して実行する場合について説明する。図8は、この発明にかかるリモートアップデートシステムの実施の形態3の概略構成を示す図である。このリモートアップデートシステムは、実施の形態2の図6の端末2のダウンロードプログラム格納部23、サーバ情報格納部27およびダウンロード情報格納部28aが、持ち運び可能な記憶媒体31によって構成される点が、実施の形態2と異なっている。なお、ダウンロード情報格納部28aは、サーバ1からダウンロードしたダウンロード情報を格納している。
【0042】
端末2のダウンロードプログラム格納部23には、サーバ1のプログラム格納部11からダウンロードされるプログラムが保存され、ダウンロード情報格納部28aには、同じくサーバ1のダウンロード情報格納部16からダウンロードされるダウンロード情報が保存される。このダウンロード情報には、端末2が起動されたときに、ダウンロードプログラム格納部23内のプログラムの存否に関わらず、サーバ1からプログラムをダウンロードするか否かを示す強制フラグが含まれている。より具体的には、強制フラグがオンのときには、ダウンロードプログラム格納部23内のプログラムの有無に関わらずサーバ1からプログラムをダウンロードし、強制フラグがオフのときには、通常の手順に従う。なお、実施の形態2の図6または実施の形態1の図1と同一の構成要素については同一の符号を付して、その説明を省略している。また、この図8では、端末2はネットワーク5に1台しか接続されていないが、端末2が複数存在しても、それぞれの端末2が以下に説明する同一の動作を行うので、ここでは端末2が1台の場合を例に挙げて説明する。
【0043】
つぎに、このリモートアップデートシステムの動作について説明する。図9は、この発明のリモートアップデートシステムにおける端末の起動からダウンロード情報を取得するまでの動作手順を示すフローチャートであり、図10は、この発明のリモートアップデートシステムにおけるプログラム起動準備時の端末の動作手順を示すフローチャートである。
【0044】
最初に、端末2の起動からダウンロード情報を取得するまでの動作手順について説明する。まず、端末2のプログラム処理部22は、サーバ1のダウンロード情報格納部16からダウンロード情報をダウンロードし(ステップS401)、ダウンロード情報のダウンロードが正常に完了したか否かを判定する(ステップS402)。ダウンロード情報のダウンロードが正常に終了した場合(ステップS402でYesの場合)には、ダウンロード情報を持ち運び可能な記憶媒体31中のダウンロード情報格納部28aに保存する(ステップS403)。一方、ダウンロード情報のダウンロードが正常に終了しなかった場合(ステップS402でNoの場合)には、持ち運び可能な記憶媒体31中のダウンロード情報格納部28aにダウンロード情報が存在するか否かを調べる(ステップS404)。
持ち運び可能な記憶媒体31中のダウンロード情報格納部28aにダウンロード情報が存在しない場合(ステップS404でNoの場合)には、プログラム格納部29に格納されているプログラムの起動準備を図10に示す手順にしたがって開始する処理を行い(ステップS405)、ダウンロード情報の取得処理を完了する。
【0045】
ステップS403でサーバ1からのダウンロードが正常に終了した場合、またはステップS404で持ち運び可能な記憶媒体31のダウンロード情報格納部28aにダウンロード情報が存在する場合(ステップS404でYesの場合)には、持ち運び可能な記憶媒体31のダウンロード情報格納部28aに格納されているダウンロード情報を使用して(ステップS406)、図10に示すプログラムの起動準備を開始する処理を行い(ステップS407)、ダウンロード情報の取得処理を完了する。
【0046】
つぎに、プログラム起動準備時の端末2の動作手順について図10のフローチャートを参照しながら説明する。ダウンロード情報の取得処理が終了すると、端末2のプログラム処理部22は、持ち運び可能な記憶媒体31のダウンロード情報格納部28aに保存されているダウンロード情報をロードする(ステップS501)。つぎに、ダウンロード情報に含まれるプログラムの優先順位情報と、状態格納部25に格納されている現在の起動状況から起動するべきプログラムがあるか否かを調べる(ステップS502)。起動するべきプログラムがない場合(ステップS502でNoの場合)には、プログラム格納部29上のプログラムの起動を開始し(ステップS509)、この後、実施の形態1の図3に示したプログラムの起動処理が実行される。
【0047】
一方、起動するべきプログラムである場合(ステップS502でYesの場合)には、プログラム処理部22は、ダウンロード情報に含まれる強制ダウンロードフラグを調べる(ステップS503)。強制ダウンロードフラグがオンの場合(ステップS503でYesの場合)には、持ち運び可能な記憶媒体31のダウンロードプログラム格納部23に保存されているプログラムの有無に関わらず、プログラム処理部22は、サーバ1からプログラムをダウンロードする(ステップS507)。その後、プログラムのダウンロードが正常に完了したか否かを調べる(ステップS508)。正常終了した場合(ステップS508でYesの場合)には、そのプログラムについて、実施の形態1の図3に示したプログラムの起動処理が開始される(ステップS509)。また、正常終了していない場合(ステップS508でNoの場合)には、ステップS502に戻る。
【0048】
また、ステップS503で、強制ダウンロードフラグがオフの場合(ステップS503でNoの場合)には、起動するべきプログラムが前回起動時と同じプログラムか否かを調べる(ステップS504)。起動するべきプログラムと前回起動時のプログラムが同じ場合(ステップS504でYesの場合)には、プログラム処理部22は、前回そのプログラムは正常終了しかた否かを状態格納部25に格納されている前回の終了状態を用いて調べる(ステップS505)。前回正常に終了している場合(ステップS505でYesの場合)には、持ち運び可能な記憶媒体31からプログラムをロードして(ステップS506)、そのプログラムについて、実施の形態1の図3に示したプログラムの起動処理が実行される(ステップS509)。
【0049】
ステップS505で、前回正常に終了していない場合(ステップS505でNoの場合)には、ステップS502に戻り、再度起動するべきプログラムの選択からの処理が行なわれる。また、ステップS504で、起動するべきプログラムと前回起動時のプログラムが異なる場合(ステップS504でNoの場合)には、上述したステップS507以降の処理が実行される。
【0050】
上記のステップS509におけるプログラムの起動開始の処理は、上述した実施の形態1の図3と同様であり、また、プログラムの異常監視の処理は、同じく図4と同様であるので、その説明を省略している。
【0051】
つぎに、図8に示される構成を有するサーバ1と端末2の具体的な構成について説明する。図11は、図8に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。この端末2は、CPU121と、ROM122と、不揮発性RAM124と、WDT125と、LANインタフェース126と、持ち運び可能な記憶媒体127と、を備える装置によって構成される。
【0052】
ここで、CPU121はプログラム処理部22、状態管理部26および制御部30に対応し、ROM122はプログラム格納部29に対応し、不揮発性RAM124は状態格納部25に対応し、WDT125は障害監視部24に対応し、LANインタフェース126は通信部21に対応し、持ち運び可能な記憶媒体127はダウンロードプログラム格納部23、サーバ情報格納部27およびダウンロード情報格納部28aに対応している。なお、持ち運び可能な記憶媒体127として、電源を切っても内容が保持される記憶媒体ならばよく、たとえば、コンパクトフラッシュ(登録商標)メモリやスマートメディアなどのメモリや、書き換え可能なコンパクトディスク、フレキシブルディスク、光磁気ディスクなどを使用することができる。
【0053】
これによって、たとえば、サーバ情報に変更があった場合には、実施の形態1のようにROM122にサーバ情報が格納される構成の端末2では、ROM122内のサーバ情報を編集するための専用の機器などが必要となるが、この実施の形態3のように持ち運び可能な記憶媒体127にサーバ情報を格納することによって、ROM122内のサーバ情報を編集するための専用の機器などが不要になり、パーソナルコンピュータなどの汎用の機器を用いてサーバ情報を編集することが可能になる。
【0054】
また、サーバ1は、CPU101と、ROM102と、RAM103と、LANインタフェース104と、ハードディスクドライブ105と、を備えた構成を有している。ここで、CPU101は端末管理部13と制御部15に対応し、ハードディスクドライブ105は、プログラム格納部11、端末管理データベース12およびダウンロード情報格納部16に対応している。また、サーバ1は、表示部と入力部を備えていてもよい。これによって、リモートアップデートシステムの管理者は、端末管理データベース12の内容を表示部で確認し、入力部を用いてその内容を編集することが可能となる。
【0055】
この実施の形態3によれば、端末2の持ち運び可能な記憶媒体31に、サーバ情報、ダウンロードされたプログラム、ダウンロードされたダウンロード情報を保持させるように構成したので、端末2にサーバ情報を編集するための専用の機器などが不要になり、パーソナルコンピュータなど汎用の機器を用いて編集することが可能になる。
【0056】
また、サーバ1からダウンロードされたプログラムとダウンロード情報を、持ち運び可能な記憶媒体31に格納するようにしたので、端末2の電源を切った場合でもダウンロード情報とプログラムは消去されなくなる。その結果、もし、ネットワーク5またはサーバ1に異常が発生し、起動時にサーバ1に接続できない場合でも、前回起動した時と同じ状態で起動することが可能になる。さらに、一般的に端末2が保持しているROM122と比較して、コンパクトフラッシュ(登録商標)メモリやスマートメディアなどの持ち運び可能な記憶媒体127は大容量であるため、複数のプログラムをダウンロードして格納することも可能になる。
【0057】
さらにまた、ダウンロード情報にダウンロードの優先順位情報を追加することによって端末2が、起動時の状態に応じた最適なプログラムを自動的に選択してダウンロードし、そのプログラムを実行することが可能になる。
【0058】
さらにまた、ダウンロード情報にプログラムの強制的なダウンロードを行なうか否かを示すフラグを追加することによって、端末2のプログラムの開発を行なっている開発者は、作成したプログラムの確認をするたびに、作成したプログラムをダウンロードするようにダウンロード情報を変更することなく、端末2が起動されるたびに開発したプログラムの試験を行なうことができる。また、強制ダウンロードのフラグがオフであって、持ち運び可能な記憶媒体31上に必要なプログラムが存在する場合には、プログラムのダウンロードを行わずにプログラムを起動することができるため、端末2の起動時間が短縮される。
【0059】
実施の形態4.
図12は、この発明にかかるリモートアップデートシステムの実施の形態4の概略構成を示すブロック図である。このリモートアップデートシステムは、上述した実施の形態3の図8において、プログラム格納部29が、ネットワーク5やサーバ1の異常でサーバ1からプログラムをダウンロードすることができない場合に実行されるプログラムを格納する実行プログラム格納部29aと、実行プログラム格納部29aに格納されているプログラムをバックアップするためのバックアッププログラム格納部29bと、を備えて構成され、プログラム格納部29への書き込みを制御する書き込み許可スイッチ32が備えられた構成を有している。
【0060】
バックアッププログラム格納部29bに格納されるプログラムは、実行プログラム格納部29aのプログラムの書き換えを行なう前に、それまで実行プログラム格納部29aに格納されていたプログラムである。
【0061】
書き込み許可スイッチ32は、プログラム格納部29への書き込みを制御するハードウェアスイッチである。実行プログラム格納部29a内のプログラムは、最後の起動手段となるため、誰にでも実行プログラム格納部29a内のプログラムを書き換えるようにするのは非常に危険であるので、鍵が必要なスイッチなどで書き込み許可スイッチを設けるようにしている。これによって、通常は書き込みが行なえないようにし、端末2の存在する場所に所定の鍵を持ったシステムの管理者が行かなければ実行プログラム格納部29aの内容を書き換えられないようにしている。その結果、ネットワーク5の異常やサーバ1の故障が発生した最悪の場合でも、端末2が起動できなくなる状態に陥ることを防ぐことができる。
【0062】
なお、実施の形態3の図8と同一の構成要素には同一の符号を付して、その説明を省略している。また、この図12では、端末2はネットワーク5に1台しか接続されていないが、端末2が複数存在しても、それぞれの端末2が以下に説明する同一の動作を行うので、ここでは端末2が1台の場合を例に挙げて説明する。
【0063】
つぎに、このリモートアップデートシステムにおけるプログラム起動の動作処理について説明する。なお、ダウンロード情報の取得処理は、実施の形態3の図9と同様であり、プログラム起動の準備処理は、同じく図10と同様であるので、その説明を省略している。図13は、リモートアップデートシステムのプログラム起動時の動作処理を示すフローチャートである。
【0064】
図10に示したようにプログラム起動準備処理が完了すると、障害監視部24によってプログラム異常監視処理が開始される(ステップS601)。このプログラム異常監視処理は、上述した実施の形態1の図4と同様であるので、その説明は省略する。つぎに、状態管理部26は、起動状態を前回の起動状態として状態格納部25に保存し(ステップS602)、プログラム格納部29への書き込みが許可されているか否か調べる(ステップS603)。書き込み許可がある場合(ステップS603でYesの場合)には、実行プログラム格納部29aのプログラムを別名でバックアッププログラム格納部29bにバックアップして保存する(ステップS604)。その後、サーバ1から持ち運び可能な記憶媒体31上にダウンロードされたプログラムを実行プログラム格納部29aに書き込む(ステップS605)。一方、ステップS603で、書き込み許可がない場合(ステップS603でNoの場合)には、プログラムバックアップ部への書き込みは行わない。その後、またはステップS605での実行プログラム格納部29aへのプログラムの書きこみ後、状態管理部26は、サーバ1に起動状態を通知し(ステップS606)、プログラムを起動して(ステップS607)、プログラムの内容に沿った処理が以降行われる。以上で、プログラム起動処理が終了する。
【0065】
つぎに、図12に示される構成を有するサーバ1と端末2の具体的な構成について説明する。図14は、図12に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。この端末2は、CPU121と、EEPROM(Electrically Erasable and Programmable ROM)などの書き換え可能なROM122と、不揮発性RAM124と、WDT125と、LANインタフェース126と、持ち運び可能な記憶媒体127と、を備えた装置によって構成される。
【0066】
ここで、CPU121は制御部30、状態管理部26およびプログラム処理部22に対応し、書き換え可能なROM122はプログラム格納部29に対応し、不揮発性RAM124は状態格納部25に対応し、WDT125は障害監視部24に対応し、LANインタフェース126は通信部21に対応し、持ち運び可能な記憶媒体127はダウンロードプログラム格納部23、サーバ情報格納部27およびダウンロード情報格納部28に対応している。なお、書き込み許可スイッチ32は、書き換え可能なROM122に設けられるテストピンなどを用いることができる。
【0067】
また、サーバ1は、CPU101と、ROM102と、RAM103と、LANインタフェース104と、ハードディスクドライブ105と、を備えた構成を有している。ここで、CPU101は端末管理部13と制御部15に対応し、ハードディスクドライブ105は、プログラム格納部11、端末管理データベース12およびダウンロード情報格納部16に対応している。また、サーバ1は、表示部と入力部を備えていてもよい。これによって、リモートアップデートシステムの管理者は、表示部で端末管理データベース12の内容を確認し、入力部を用いてその内容を編集することが可能となる。
【0068】
この実施の形態4によれば、ダウンロードしたプログラムを実行プログラム格納部29aに書き込む前に、それまで実行プログラム格納部29aに書き込まれていたプログラムをバックアッププログラム格納部29bにバックアップすることによって、次回起動時にネットワーク5やサーバ1に異常があってプログラムをダウンロードできない場合や、持ち運び可能な記憶媒体31が挿入されていない場合でも端末2を起動することが可能になる。
【0069】
また、実行プログラム格納部29aに格納されたプログラムが正常に動作しない場合、または、システムの管理者が間違えて、実行プログラム格納部29aに格納されているプログラムを書き換えてしまった場合には、バックアッププログラム格納部29bに格納されているプログラムを実行プログラム格納部29aに戻すことによって、元の正常に動作するプログラムに変更することができるので、端末2が動作しなくなってしまうという状況を回避することができる。
【0070】
さらに、一般的に端末が保持しているROM122と比較して、コンパクトフラッシュ(登録商標)メモリやスマートメディアなどの持ち運び可能な記憶媒体は大容量であるため、複数のプログラムをダウンロードして格納することも可能になる。
【0071】
【発明の効果】
以上説明したように、この発明によれば、前回起動時にどのプログラムが使用されたかなど前回の起動状態と、正常に終了したかまたは異常に終了したかなどの前回の終了状態を格納する状態格納部と、プログラムが起動されると常時プログラムの異常を監視する障害監視部と、異常発生時に状態格納部に自動的にその終了状態を書き込む状態管理部を、端末に備えるように構成したので、端末は起動時に前回の起動状態と終了状態を判断して自律的に起動するプログラムを選択することができる。また、プログラム起動の端末の状態と、プログラムの終了時の端末の状態とを、サーバに通知する状態管理部を端末が備えるように構成したので、サーバは端末の最新状態を常に把握できるとともに、プログラムに関するエラー情報を逐次取得することができる。これによって、システムの管理者が、従来のようにリモートから各端末を個別に操作して異常状態を取得しなければならないという手間を省くことができる。
【図面の簡単な説明】
【図1】この発明によるリモートアップデートシステムの実施の形態1の概略構成を示すブロック図である。
【図2】この発明のリモートアップデートシステムにおける端末の起動からプログラム起動前までの動作手順を示すフローチャートである。
【図3】この発明のリモートアップデートシステムにおけるプログラム起動時の端末の動作手順を示すフローチャートである。
【図4】この発明のリモートアップデートシステムにおける端末の起動後からプログラムの異常状態を監視する処理手順を示すフローチャートである。
【図5】図1に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。
【図6】この発明によるリモートアップデートシステムの実施の形態2の概略構成を示すブロック図である。
【図7】図6に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。
【図8】この発明によるリモートアップデートシステムの実施の形態3の概略構成を示す図である。
【図9】この発明のリモートアップデートシステムにおける端末の起動からダウンロード情報を取得するまでの動作手順を示すフローチャートである。
【図10】この発明のリモートアップデートシステムにおけるプログラム起動準備時の端末の動作手順を示すフローチャートである。
【図11】図8に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。
【図12】この発明によるリモートアップデートシステムの実施の形態4の概略構成を示すブロック図である。
【図13】リモートアップデートシステムのプログラム起動時の動作処理を示すフローチャートである。
【図14】図12に示されるこの発明のリモートアップデートシステムの具体的構成を示す図である。
【符号の説明】
1 サーバ、2 端末、5 ネットワーク、11 プログラム格納部、12 端末管理データベース、13 端末管理部、14 通信部、15 制御部、16ダウンロード情報格納部、21 通信部、22 プログラム処理部、23 ダウンロードプログラム格納部、24 障害監視部、25 状態格納部、26 状態管理部、27 サーバ情報格納部、28,28a ダウンロード情報格納部、29 プログラム格納部、29a 実行プログラム格納部、29b バックアッププログラム格納部、30 制御部、31,127 持ち運び可能な記憶媒体、32 書き込み許可スイッチ、101,121 CPU、102,122 ROM、103,123 RAM、104,126 LANインタフェース、105ハードディスクドライブ、124 不揮発性RAM、125 WDT。
Claims (13)
- サーバと、前記サーバに格納されるプログラムをダウンロードして実行する1〜複数の端末とが、ネットワークを介して接続されたリモートアップデートシステムであって、
前記端末は、
前回起動した際の起動状態と終了状態を保存する状態格納手段と、
前記サーバのネットワーク上の位置を含むサーバ情報を格納するサーバ情報格納手段と、
自端末におけるプログラムを用いた起動手順を含むダウンロード情報を格納するダウンロード情報格納手段と、
起動時に前記サーバ情報、前記ダウンロード情報、前記前回起動した際の起動状態と終了状態に基づいて前記サーバからプログラムをダウンロードして実行するプログラム処理手段と、
前記プログラム処理手段によってダウンロードされたプログラムを格納するダウンロードプログラム格納手段と、
前記プログラムの起動時と終了時の状態を前記状態格納手段に格納する状態管理手段と、を備えることを特徴とするリモートアップデートシステム。 - サーバと、前記サーバに格納されるプログラムをダウンロードして実行する1〜複数の端末とが、ネットワークを介して接続されたリモートアップデートシステムであって、
前記サーバは、前記端末におけるプログラムを用いた起動手順を含むダウンロード情報を格納するダウンロード情報格納手段を備え、
前記端末は、
前回起動した際の起動状態と終了状態を保存する状態格納手段と、
前記サーバのネットワーク上の位置を含むサーバ情報を格納するサーバ情報格納手段と、
起動時に前記サーバ情報に基づいて前記サーバから前記ダウンロード情報をダウンロードし、このダウンロード情報、前記前回起動した際の起動状態と終了状態に基づいて前記サーバからプログラムをダウンロードして実行するプログラム処理手段と、
前記プログラム処理手段によってダウンロードされたダウンロード情報を格納するダウンロード情報格納手段と、
前記プログラム処理手段によってダウンロードされたプログラムを格納するダウンロードプログラム格納手段と、
起動時の状態と終了時の状態を前記状態格納手段に格納する状態管理手段と、を備えることを特徴とするリモートアップデートシステム。 - 前記端末の前記サーバ情報格納手段、前記ダウンロード情報格納手段および前記ダウンロードプログラム格納手段は、持ち運び可能な記憶媒体によって構成されることを特徴とする請求項2に記載のリモートアップデートシステム。
- 前記サーバは、前記端末のプログラムの起動状態と終了状態を含む情報を格納する端末管理データベースを備え、
前記端末の状態管理手段は、前記プログラムの起動時と終了時の状態を前記サーバに通知する機能をさらに備えることを特徴とする請求項1〜3のいずれか1つに記載のリモートアップデートシステム。 - 前記端末は、前記プログラムの実行時に前記プログラムの異常を監視し、異常を検出した場合に、自端末を再起動する障害監視手段をさらに備えることを特徴とする請求項1〜4のいずれか1つに記載のリモートアップデートシステム。
- 前記端末は、前記ダウンロード情報に基づいた前記サーバからのプログラムのダウンロードがすべて失敗した場合に実行されるプログラムを格納するプログラム格納手段をさらに備えることを特徴とする請求項1〜5のいずれか1つに記載のリモートアップデートシステム。
- 前記サーバに格納されるプログラムは、ダウンロードの成功の可否を判定するためのチェックサム機能を有し、
前記端末の前記プログラム処理手段は、前記プログラムのチェックサム機能を用いて前記サーバから正常にプログラムをダウンロードできたか否かを判定する機能をさらに備えることを特徴とする請求項1〜6のいずれか1つに記載のリモートアップデートシステム。 - 前記ダウンロード情報は、ダウンロードするプログラムの優先順位情報を含むことを特徴とする請求項1〜7のいずれか1つに記載のリモートアップデートシステム。
- 前記端末の前記プログラム処理手段は、前記プログラムが前記サーバから正常にダウンロードされなかった場合に、前記ダウンロード情報に格納されているつぎに優先順位の高いプログラムをダウンロードする機能をさらに備えることを特徴とする請求項8に記載のリモートアップデートシステム。
- 前記ダウンロード情報は、毎回強制的に前記サーバからプログラムをダウンロードするか否かを示す強制ダウンロードフラグを含み、
前記プログラム処理手段は、前記ダウンロード情報の前記強制ダウンロードフラグがオンの場合には、前記サーバからプログラムをダウンロードして実行する機能をさらに備えることを特徴とする請求項1〜9のいずれか1つに記載のリモートアップデートシステム。 - 前記ダウンロードプログラム格納手段に格納されたプログラムを、前記プログラム格納部に書き込む手段をさらに備えることを特徴とする請求項6に記載のリモートアップデートシステム。
- 前記ダウンロードプログラム格納手段に格納されたプログラムを、前記プログラム格納手段へ書き込む場合に、その可否を行う書き込み許可手段をさらに備えることを特徴とする請求項11に記載のリモートアップデートシステム。
- 前記プログラム格納手段に既に格納されているプログラムをバックアップした後に、前記ダウンロードプログラム格納手段に格納されたプログラムを、前記プログラム格納手段への書き込みを行う請求項11または12に記載のリモートアップデートシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003153109A JP2004355389A (ja) | 2003-05-29 | 2003-05-29 | リモートアップデートシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003153109A JP2004355389A (ja) | 2003-05-29 | 2003-05-29 | リモートアップデートシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004355389A true JP2004355389A (ja) | 2004-12-16 |
Family
ID=34048156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003153109A Pending JP2004355389A (ja) | 2003-05-29 | 2003-05-29 | リモートアップデートシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004355389A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011034156A (ja) * | 2009-07-30 | 2011-02-17 | Toshiba Corp | 監視装置用プログラムの書き換え方法 |
JP2012226391A (ja) * | 2011-04-14 | 2012-11-15 | Casio Comput Co Ltd | 更新情報配布装置、更新情報配布配信システム、更新情報配布方法、及びプログラム |
US10338865B2 (en) | 2016-09-29 | 2019-07-02 | Seiko Epson Corporation | Printing apparatus and control method of printing apparatus |
JP2019133610A (ja) * | 2018-02-03 | 2019-08-08 | アレグロスマート株式会社 | データオーケストレーションプラットフォーム管理 |
JP2020119094A (ja) * | 2019-01-21 | 2020-08-06 | 株式会社日立製作所 | ソフトウェア更新システム、ソフトウェア更新方法およびプログラム |
-
2003
- 2003-05-29 JP JP2003153109A patent/JP2004355389A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011034156A (ja) * | 2009-07-30 | 2011-02-17 | Toshiba Corp | 監視装置用プログラムの書き換え方法 |
JP2012226391A (ja) * | 2011-04-14 | 2012-11-15 | Casio Comput Co Ltd | 更新情報配布装置、更新情報配布配信システム、更新情報配布方法、及びプログラム |
US10338865B2 (en) | 2016-09-29 | 2019-07-02 | Seiko Epson Corporation | Printing apparatus and control method of printing apparatus |
JP2019133610A (ja) * | 2018-02-03 | 2019-08-08 | アレグロスマート株式会社 | データオーケストレーションプラットフォーム管理 |
JP7065498B2 (ja) | 2018-02-03 | 2022-05-12 | アレグロスマート株式会社 | データオーケストレーションプラットフォーム管理 |
JP2020119094A (ja) * | 2019-01-21 | 2020-08-06 | 株式会社日立製作所 | ソフトウェア更新システム、ソフトウェア更新方法およびプログラム |
JP7029417B2 (ja) | 2019-01-21 | 2022-03-03 | 株式会社日立製作所 | ソフトウェア更新システム、ソフトウェア更新方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1899814B1 (en) | Firmware update for consumer electronic device | |
JP4482029B2 (ja) | 無線基地局および無線基地局の運用方法 | |
US8930931B2 (en) | Information processing apparatus using updated firmware and system setting method | |
US7739490B2 (en) | Control apparatus, upgrade method and program product of the same | |
CN115718610A (zh) | 一种可靠的单片机应用程序更新的方法 | |
CN110597532A (zh) | 一种数据采集模块及其固件升级方法和存储介质 | |
JP4867186B2 (ja) | 制御装置、方法、プログラム及び記憶媒体 | |
CN113190256B (zh) | 一种升级方法、装置及设备 | |
JPH04167139A (ja) | プログラムダウンロード方式 | |
JP2004355389A (ja) | リモートアップデートシステム | |
JPH10307726A (ja) | 起動エラー時におけるファームウェアリカバリ方式 | |
JP5683088B2 (ja) | 復旧システム、復旧方法及びバックアップ制御システム | |
KR100832269B1 (ko) | 무선 통신 단말의 프로그램 갱신 방법 및 시스템 | |
JP2008009799A (ja) | 画像形成装置 | |
JP2002189609A (ja) | アクシデントに適応したソフトウェア更新方式および方法 | |
JP2023068538A (ja) | 情報処理装置及びその制御方法、並びにプログラム | |
WO2012077604A1 (ja) | 処理装置、プログラム更新方法、およびプログラム | |
JPH10187454A (ja) | Bios書き換え方式 | |
JP4076113B2 (ja) | 電子制御装置 | |
JP2009159383A (ja) | 通信端末装置 | |
JP5508297B2 (ja) | 設定情報参照起動型の制御装置および設定情報管理方法 | |
JP2008198152A (ja) | 冗長構成を有するコンピュータシステム及びコンピュータシステムの系切り換え方法 | |
KR20030043502A (ko) | 디지털 가전기기의 소프트웨어 업그레이드 방법 | |
JP5360311B2 (ja) | ディスクアレイ装置 | |
JP2006202053A (ja) | 電子機器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081202 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090331 |