(57)【要約】【課題】ネットワークで接続された複数の計算機のソフトウェアの更新と、その更新失敗時の復旧が、遠隔制御で確実に行えるようにする。【解決手段】ネットワークで接続された複数の更新対象計算機と、更新対象計算機に対してソフトウェアの更新データを配信する配信元計算機とを備えるシステムに適用される。更新対象計算機は、配信された更新データを記憶し、外部からのインストール指示の受信で、更新対象計算機に記憶されたソフトウェアのデータをバックアップ用に記憶する。そして、バックアップ記憶処理後に、配信された更新データにより、ソフトウェアのデータの更新処理を実行し、更新処理の完了後に、複数の更新対象計算機の内のソフトウェアが未更新の少なくとも1台の更新対象計算機に、インストール指示を送信する。【選択図】図１
2020119094.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された複数の更新対象計算機と、前記複数の更新対象計算機に対してソフトウェアの更新データを配信する配信元計算機とを備えるソフトウェア更新システムであり、
前記更新対象計算機は、
当該計算機で実行されるソフトウェアのデータを記憶するソフトウェア記憶部と、
前記配信元計算機から配信された更新データを記憶する更新データ記憶部と、
前記ソフトウェア記憶部が記憶したソフトウェアのデータをバックアップ用に記憶するバックアップデータ記憶部と、
前記配信元計算機または他の前記更新対象計算機からのインストール指示の受信で、前記ソフトウェア記憶部に記憶されたソフトウェアのデータを前記バックアップデータ記憶部にバックアップした後、前記更新データ記憶部に記憶された更新データによる前記ソフトウェア記憶部に記憶されたソフトウェアのデータの更新処理を実行し、更新処理の完了後に、前記複数の更新対象計算機の内のソフトウェアが未更新の少なくとも1台の更新対象計算機に、インストール指示を送信するリモートインストーラと、を備える
ソフトウェア更新システム。
【請求項２】
前記リモートインストーラは、前記ソフトウェア記憶部に記憶された更新後のソフトウェアの起動に要する時間を計測し、計測した時間が規定時間を経過したとき、前記バックアップデータ記憶部に記憶されたバックアップ用のデータにより、前記ソフトウェア記憶部に記憶された更新後のソフトウェアを、更新前のソフトウェアに復元する
請求項１に記載のソフトウェア更新システム。
【請求項３】
前記リモートインストーラは、更新後のソフトウェアの起動に要する時間が、前記規定時間を経過しないとき、動作モードを通常起動状態に変更する
請求項２に記載のソフトウェア更新システム。
【請求項４】
前記リモートインストーラは、システム内の前記更新対象計算機が全て更新済みになったとき、前記インストール指示の送信を行わないようにした
請求項１に記載のソフトウェア更新システム。
【請求項５】
前記配信元計算機は、前記ネットワークで接続された複数台の計算機の中で、指定された範囲の計算機、またはそれぞれの計算機に用意されたソフトウェアのバージョンの計算機を、前記更新対象計算機とする
請求項１に記載のソフトウェア更新システム。
【請求項６】
ネットワークで接続された複数の更新対象計算機と、前記複数の更新対象計算機に対してソフトウェアの更新データを配信する配信元計算機とを備えるソフトウェア更新システムで実行されるソフトウェア更新方法であり、
前記配信元計算機から前記更新対象計算機に配信された更新データを記憶する更新データ記憶処理と、
前記配信元計算機または他の更新対象計算機からのインストール指示の受信で、前記更新対象計算機が記憶したソフトウェアのデータをバックアップ用に記憶するバックアップ記憶処理と、
前記バックアップ記憶処理後に、前記更新データ記憶処理で記憶した更新データにより、前記更新対象計算機に記憶されたソフトウェアのデータの更新処理を実行する更新処理と、
前記更新処理の完了後に、更新処理を完了した前記更新対象計算機が、前記複数の更新対象計算機の内のソフトウェアが未更新の少なくとも1台の更新対象計算機に、インストール指示を送信する更新起動指令送信処理と、を含む
ソフトウェア更新方法。
【請求項７】
外部から配信された更新データを記憶する更新データ記憶手順と、
外部からの更新起動指令の受信で、記憶したソフトウェアのデータをバックアップ用に記憶するバックアップ記憶手順と、
前記バックアップ記憶手順の実行後に、前記更新データ記憶手順で記憶した更新データにより、ソフトウェアのデータの更新を実行する更新手順と、
前記更新手順の完了後に、ソフトウェアが未更新の少なくとも1台の他のコンピュータに、インストール指示を送信するインストール指示送信手順と、をコンピュータに実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア更新システム、ソフトウェア更新方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ダム、上下水道、鉄道などの社会インフラ用の設備や拠点に設置された計算機のソフトウェアの更新作業は、夜間などのシステムが稼働していない間や、限られたメンテナンス時間内に、作業員が出向いて計算機を直接操作して行うのが一般的であった。このような施設や設備に設置された計算機の場合は、規定時間内に新たなソフトウェアのインストール作業を終了させる必要がある。
【０００３】
しかしながら、インストール対象の計算機が遠隔地に多数設置されている場合、遠隔地への移動時間が必要であり、また多数の計算機に対する作業時間が必要となるため、規定時間内での作業完了が困難な場合がある。また、更新後のソフトウェアの不具合などにより、計算機が起動不可となった場合においても、計算機の稼動開始までの限られた時間内に復旧する必要がある。
【０００４】
このような作業員が直接出向いて更新作業を行うことによる問題を解決するために、ネットワーク上に更新状態管理用のサーバを設置して、そのサーバからの遠隔制御で各地の計算機のソフトウェアの更新を行うことが提案されている。
例えば、特許文献１には、インストール状態を管理する装置（更新状態管理用サーバ）にネットワークで接続された計算機（ＰＬＣ）に対するファームウェアのアップデート方法と、ファームウェア更新前のバックアップおよび更新失敗時の復元を行う技術の一例が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１５／０８３２４３号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されるように、更新状態管理用のサーバを用意することで、更新状態管理用のサーバから更新データを各計算機に配信して、リモート操作によりインストールすることが可能になる。
【０００７】
しかしながら、更新状態管理用のサーバを用意すると、それだけシステム構成が複雑化するという問題がある。特に、それぞれの計算機におけるソフトウェアの更新作業は、規定されたメンテナンス時間内に完了させる必要があり、万一、更新に失敗した際には、メンテナンス時間内に、更新前の状態に復元することが必要となる。したがって、更新状態管理用のサーバは、対象計算機の更新作業の進行状態の監視を行って、更新失敗時に元の状態に復元する作業の指示を行う必要がある。このため、更新状態管理用のサーバには、更新用のデータの配信以外の様々な機能が要求され、単なるデータ配信用のサーバでは対応が困難である。
【０００８】
本発明の目的は、更新状態を管理するサーバを設けないで、ネットワークで接続された複数の計算機のソフトウェアの更新と、その更新失敗時の復旧を、遠隔制御で確実に行うことができるソフトウェア更新システム、ソフトウェア更新方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本願は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、ネットワークで接続された複数の更新対象計算機と、複数の更新対象計算機に対してソフトウェアの更新データを配信する配信元計算機とを備えるソフトウェア更新システムに適用される。
そして、更新対象計算機は、この計算機で実行されるソフトウェアのデータを記憶するソフトウェア記憶部と、配信元計算機から配信された更新データを記憶する更新データ記憶部と、ソフトウェア記憶部が記憶したソフトウェアのデータをバックアップ用に記憶するバックアップデータ記憶部と、配信元計算機または他の更新対象計算機からのインストール指示の受信で、ソフトウェア記憶部に記憶されたソフトウェアのデータをバックアップデータ記憶部にバックアップした後、更新データ記憶部に記憶された更新データによるソフトウェア記憶部に記憶されたソフトウェアのデータの更新処理を実行し、更新処理の完了後に、複数の更新対象計算機の内のソフトウェアが未更新の少なくとも1台のインストール指示に、更新起動指令を送信するリモートインストーラと、を備える。
【発明の効果】
【００１０】
本発明によれば、システム内の少なくとも１台の計算機におけるソフトウェアの更新が開始された後、システム内の他の計算機で次々に更新が実行され、最初に配信元計算機が指令を送るだけで、全ての更新対象計算機のソフトウェアが自動的に更新される。さらに、更新後に計算機が起動不可となった場合に、計算機をバックアップデータに基づいて自動的に更新前の状態に復元することができ、更新失敗時のリスクを低減することができる。
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施の形態例による計算機の機能構成の例を示すブロック図である。
【図２】本発明の一実施の形態例によるシステム全体の例を示す構成図である。
【図３】本発明の一実施の形態例による計算機のハードウェア構成の例を示すブロック図である。
【図４】本発明の一実施の形態例によるインストーラ動作モードデータの例を示す図である。
【図５】本発明の一実施の形態例によるリモートインストーラにおける、リモートインストール対象の検索処理を示すフローチャートである。
【図６】本発明の一実施の形態例によるリモートインストーラが、リモートインストール用ＲＡＭディスク経由で起動したときの処理を示すフローチャートである。
【図７】本発明の一実施の形態例によるバックアップ処理の例を示す図である。
【図８】本発明の一実施の形態例による計算機の起動処理の例を示すフローチャートである。
【図９】本発明の一実施の形態例によるウォッチドッグタイマによる監視処理の例を示すフローチャートである。
【図１０】本発明の一実施の形態例による更新データの配信処理とインストール処理の流れの例を示すシーケンス図である。
【図１１】本発明の他の実施の形態例による更新データの配信処理例を示すシーケンス図である。
【図１２】本発明の他の実施の形態例によるインストール処理が実行される状態の例を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施の形態例（以下、「本例」と称する）について、添付図面を参照して詳細に説明する。
【００１３】
［１．計算機とシステムの構成］
図１は、本例のソフトウェア更新システムが備える計算機の構成を示す。
本例のソフトウェア更新システムは、複数（Ｎ台）の計算機２０（１）〜２０（Ｎ）を備える。Ｎは２以上の自然数（整数）である。それぞれの計算機２０（１）〜２０（Ｎ）が実行するソフトウェアを更新する際には、配信元計算機１０からそれぞれの計算機２０（１）〜２０（Ｎ）に更新データが転送される。ここで、更新を行うソフトウェアには、計算機２０（１）〜２０（Ｎ）を作動させるためのＯＳ（operating system）や、ＯＳが起動した環境下で作動するミドルウェアが含まれる。以下の説明では、ＯＳまたはミドルウェアを更新する例について説明する。
【００１４】
まず、各計算機２０（１）〜２０（Ｎ）の構成を説明する前に、システム全体の構成について、図２を参照して説明する。
図２は、計算機２０（１）〜２０（Ｎ）を備えるシステム全体の構成例を示す。
それぞれの計算機２０（１）〜２０（Ｎ）は、それぞれ別の拠点３０（１）〜３０（Ｎ）に設置され、各拠点３０（１）〜３０（Ｎ）に設けられた被制御装置（不図示）の動作を制御すると共に、被制御装置の動作状況を監視する。各拠点３０（１）〜３０（Ｎ）としては、例えばダム、上下水道用の設備、鉄道用の施設などのインフラ設備が考えられる。これらのインフラ設備が設けられる各拠点３０（１）〜３０（Ｎ）は、配信元計算機１０から遠隔地に設置される場合が多くなる。
【００１５】
したがって、各計算機２０（１）〜２０（Ｎ）は、ネットワーク４０を介して配信元計算機１０に接続される。配信元計算機１０は、各計算機２０（１）〜２０（Ｎ）に対して、ソフトウェアの更新データを配信する。
【００１６】
次に、図１を参照して、配信元計算機１０から各計算機２０（１）〜２０（Ｎ）に対して、ソフトウェアの更新データを配信して、各計算機２０（１）〜２０（Ｎ）でソフトウェアの更新処理を行うための構成について説明する。
【００１７】
図１に示すように、配信元計算機１００には、リモートインストーラ１０１が格納されており、配信元計算機１００は、ネットワーク４０（図２）を介して、ＯＳ／ミドルウェア更新対象の計算機２０（１）〜２０（Ｎ）と接続されている。計算機２０（１）〜２０（Ｎ）へのインストールを実施する場合には、作業員がＯＳ／ミドルウェアの更新データを、ＯＳ／ミドルウェア更新データ記憶部１０２に格納する。
なお、配信元計算機１００自身が、ＯＳ／ミドルウェアの更新対象の計算機に含まれる場合もある。つまり、更新対象計算機２０（１）〜２０（Ｎ）の何れかの１台を、配信元計算機１０としてもよい。
【００１８】
計算機２０（１）〜２０（Ｎ）の構成は同じであり、以下の説明では、１台の計算機２０（１）の構成を代表して説明する。
計算機２０（１）は、ブートローダ２０１、通常起動用ＲＡＭディスク２０２、ＯＳ／ミドルウェア記憶部（ソフトウェア記憶部）２０３を備える。ＯＳ／ミドルウェア記憶部２０３には、ＯＳおよびミドルウェアが格納されている。
さらに、計算機２０（１）は、ソフトウェアのリモートインストール用として、インストール用ＲＡＭディスク２０４およびリモートインストーラ２０５を備える。なお、複数の計算機２０（１）〜２０（Ｎ）に格納されるＯＳ／ミドルウェアのバージョンは異なっていてもよい。
【００１９】
計算機２０（１）〜（Ｎ）に対してＯＳ／ミドルウェアの更新を行う場合は、配信元計算機１００のリモートインストーラ１０１を起動する。リモートインストーラ１０１は、計算機２０（１）〜２０（Ｎ）のＯＳ／ミドルウェア記憶部２０３に格納されたバージョンをチェックする。
そして、リモートインストーラ１０１は、配信元計算機１００のＯＳ／ミドルウェア更新データ記憶部１０２に格納されたＯＳ／ミドルウェアの更新データよりも古いバージョンのＯＳ／ミドルウェアがインストールされている計算機を検索する。つまり、更新データよりも古いバージョンのＯＳ／ミドルウェアがインストールされている計算機が、更新対象計算機になる。
【００２０】
ここでは、計算機２０（１）のＯＳ／ミドルウェア記憶部２０３に記憶されているＯＳ／ミドルウェアを更新する場合を説明する。
配信元計算機１００のリモートインストーラ１０１は、ＯＳ／ミドルウェア更新データ記憶部１０２に格納された更新データを、計算機２０（１）に転送する。計算機２０（１）では、転送された更新データは、更新データ記憶処理でＯＳ／ミドルウェア更新データ記憶部２０６に格納される。なお、この更新データの転送は、事前に行ってもよい。事前に更新データを転送する場合の例は後述する（図１１）。
そして、配信元計算機１００のリモートインストーラ１０１は、計算機２０（１）のリモートインストーラ２０５にインストール指示を送り、リモートインストーラ２０５を起動する。
【００２１】
インストール指示を受信した計算機２０（１）のリモートインストーラ２０５は、インストーラ動作モード設定部２０７に「インストール用ＲＡＭディスク起動」の情報を設定し、計算機２０（１）を再起動する。なお、インストーラ動作モード設定部２０７に設定されるインストーラ動作モードデータの構成は、図４で後述する。
【００２２】
計算機２０（１）の再起動時には、ブートローダ２０１が動作し、インストーラ動作モード設定部２０７に設定されたインストーラ動作モードデータを読み込む。ここで、インストーラ動作モード設定部２０７は、「インストール用ＲＡＭディスク起動」の設定内容に従って、インストール用ＲＡＭディスク２０４を起動する。
【００２３】
インストール用ＲＡＭディスク２０４が起動すると、リモートインストーラ２０５が起動する。リモートインストーラ２０５は、計算機２０（１）のＯＳ／ミドルウェア記憶部２０３に格納されたＯＳ／ミドルウェアを、ＯＳ／ミドルウェアバックアップデータ記憶部２０８にバックアップデータとして格納するバックアップ記憶処理を行う。
ＯＳ／ミドルウェアバックアップデータ記憶部２０８へのバックアップが完了すると、リモートインストーラ２０５は、ＯＳ／ミドルウェア更新データ記憶部２０６に記憶された更新データを使用して、ＯＳ／ミドルウェア記憶部２０３に格納されたＯＳ／ミドルウェアを更新する。そして、この更新処理後に、リモートインストーラ２０５は、インストーラ動作モード設定部２０７が設定するインストーラ動作モードデータに、「通常起動用ＲＡＭディスク起動」の情報を設定し、計算機２０（１）を再起動する。
【００２４】
計算機２０（１）の再起動時には、ブートローダ２０１が動作し、インストーラ動作モード設定部２０７のデータを読み込み、「通常起動用ＲＡＭディスク起動」の設定内容に従って、通常起動用ＲＡＭディスク２０２を起動する。この際、ウォッチドッグタイマ（ＷＤＴ）２０９により、ＯＳ／ミドルウェア記憶部２０３に格納されたＯＳ／ミドルウェアが規定時間内に起動するかどうかのチェックを行う。ここでの規定時間は、例えば通常時にＯＳまたはミドルウェアの起動に要する時間に、ある程度の余裕時間を加えた時間とする。
【００２５】
規定時間内にＯＳ／ミドルウェア記憶部２０３に格納された更新後のＯＳ／ミドルウェアが起動した場合には、リモートインストーラ２０５が自動的に起動される。このリモートインストーラ２０５の起動で、ＯＳ／ミドルウェア更新データ記憶部２０６に格納された更新データよりも古いバージョンのＯＳ／ミドルウェアがインストールされた計算機が、他の計算機２０（２）〜２０（Ｎ）から検索される。そして、計算機２０（１）のリモートインストーラ２０５は、検索された１台の該当する計算機（例えば計算機２０（２））に対して、インストール指示を送る。
【００２６】
また、リモートインストーラ２０５は、ＯＳ／ミドルウェアが規定時間内に起動しなかった場合には、計算機２０（１）を再起動する。この再起動時には、リモートインストーラ２０５は、インストール用ＲＡＭディスク２０４を使用して、ＯＳ／ミドルウェアバックアップデータ記憶部２０８に格納されたバックアップデータを使った、ＯＳ／ミドルウェアの復元を行う。
【００２７】
［２．計算機のハードウェア構成］
ここで、図１に示す配信元計算機１０や更新対象計算機（計算機２０（１）〜２０（Ｎ））のハードウェア構成の例について説明する。
図３は、配信元計算機１０や更新対象計算機（計算機２０（１）〜２０（Ｎ））として使用されるコンピュータの構成例を示す。
図３に示すコンピュータ（計算機１０，２０）は、バス１８にそれぞれ接続されたＣＰＵ（Central Processing Unit：中央処理装置）１１、ＲＯＭ（Read Only Memory）１２、およびＲＡＭ（Random Access Memory）１３を備える。さらに、コンピュータは、不揮発性ストレージ１４、ネットワークインタフェース１５、入力装置１６、および表示装置１７を備える。
【００２８】
ＣＰＵ１１は、配信元計算機１０や計算機２０（１）〜２０（Ｎ）が行う機能を実現するソフトウェアのプログラムコードをＲＯＭ１２から読み出して実行する演算処理部である。
ＲＡＭ１３には、演算処理の途中に発生した変数やパラメータ等が一時的に書き込まれる。
不揮発性ストレージ１４としては、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）などの大容量情報記憶媒体が用いられる。不揮発性ストレージ１４には、制御処理を行うプログラムや各種データが格納される。
なお、図１に示す配信元計算機１０や更新対象の計算機２０（１）が備える各記憶部は、ＲＯＭ１２、ＲＡＭ１３、不揮発性ストレージ１４のいずれかを使用して実現される。
【００２９】
ネットワークインタフェース１５には、例えば、ＮＩＣ（Network Interface Card）などが用いられる。ネットワークインタフェース１５は、ＬＡＮ（Local Area Network）、専用線などを介して外部と各種情報の送受信を行う。本例の場合、ネットワーク４０を介した通信が、ネットワークインタフェース１５を使用して行われる。
【００３０】
入力装置１６には、例えば、キーボード、マウスなどが用いられ、作業者が入力装置１６を用いて入力操作を行う。
表示装置１７は、例えば、液晶ディスプレイモニタであり、この表示装置１７によりコンピュータで実行される制御などの結果が表示される。
【００３１】
なお、計算機１０，２０を図３に示すような構成のコンピュータとするのは一例であり、その他の演算処理機能を備えた装置で構成してもよい。例えば、計算機２０（１）〜２０（Ｎ）は、入力装置１６や表示装置１７を備えない計算機としてもよい。また、計算機１０や計算機２０（１）〜２０（Ｎ）が行う機能の一部または全部を、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアによって実現してもよい。
【００３２】
［３．インストーラ動作モード設定部のデータ例］
図４は、インストーラ動作モード設定部２０７に設定されるデータの構成例を示す。
インストーラ動作モードのデータとして、起動対象ＲＡＭディスクの項目Ｍ１００と、動作指定の項目Ｍ１１０との２つのフィールドを有する。
【００３３】
起動対象ＲＡＭディスクの項目Ｍ１００は、ブートローダ２０１が起動するＲＡＭディスクを指定する。起動対象ＲＡＭディスクの項目Ｍ１００として、通常起動Ｍ１０１が指定された場合は、通常起動用ＲＡＭディスク２０２を起動する。また、起動対象ＲＡＭディスクの項目Ｍ１００として、インストールＭ１０２が指定された場合は、インストール用ＲＡＭディスク２０４を起動する。
【００３４】
動作指定の項目Ｍ１１０は、通常起動用ＲＡＭディスク２０２またはインストール用ＲＡＭディスク２０４を起動する際の具体的な動作内容を設定する。
例えば、動作指定の項目Ｍ１１０に「なし」の項目Ｍ１１１が指定された場合は、インストール、復元、ウォッチドッグタイマによる監視等の動作は行わずに、ＯＳ／ミドルウェア記憶部２０３に格納されたＯＳ／ミドルウェアを起動する。
【００３５】
また、動作指定の項目Ｍ１１０に「ＷＤＴ起動」の項目Ｍ１１２が指定された場合は、次に計算機を起動するときにウォッチドッグタイマ２０９による監視を実施する。
動作指定の項目Ｍ１１０に「他計算機検索」の項目Ｍ１１３が指定された場合は、リモートインストーラ２０５を起動し、ＯＳ／ミドルウェアの更新が必要である、他の更新対象計算機を検索する。この検索処理の詳細については、図５で後述する。
【００３６】
また、動作指定の項目Ｍ１１０に「バージョンＸ：復元済み」の項目Ｍ１１４が指定された場合は、この計算機が一度ＯＳ／ミドルウェアの復元を実施済みであることを示す。バージョンＸの「Ｘ」の欄には、更新に失敗したＯＳ／ミドルウェアのバージョンが記録されており、このデータが記録されている計算機は、同一バージョンのＯＳ／ミドルウェアは更新不要と判定される。
【００３７】
動作指定の項目Ｍ１１０に「インストール」の項目Ｍ１１５が指定された場合は、リモートインストーラ２０５を起動し、ＯＳ／ミドルウェア更新データ記憶部２０６に格納された更新データを使用して、ＯＳ／ミドルウェア記憶部２０３が格納したＯＳ／ミドルウェアのデータを更新する。
動作指定の項目Ｍ１１０に「復元」の項目Ｍ１１６が指定された場合には、リモートインストーラ２０５を起動し、バックアップデータ記憶部２０８に格納されたバックアップデータにより、ＯＳ／ミドルウェア記憶部２０３に格納されたＯＳ／ミドルウェアを更新して、インストール前の状態に復元する。
【００３８】
［３．リモートインストール対象の検索処理］
図５は、配信元計算機１０のリモートインストーラ１０１における、インストール対象の計算機の検索処理の例を示すフローチャートである。
配信元計算機１０のリモートインストーラ１０１は、ネットワーク４０で接続された全ての計算機２０（１）〜２０（Ｎ）に対してＯＳ／ミドルウェアのバージョンをチェックし、更新が必要と判断した計算機に対して、ＯＳ／ミドルウェアの更新処理を実施する。図５のフローチャートでは、処理対象の制御機器を、計算機（Ｍ）と記載する。計算機（Ｍ）は、計算機２０（１）〜２０（Ｎ）のいずれかである。
【００３９】
ここでは、１台の計算機に対して更新処理を実施後、処理を終了するが、この更新対象範囲を、複数台の計算機とすることも可能である。すなわち、図５のフローチャートの開始時に、更新対象範囲指定パラメータを受信したとき（ステップＳ１０）、その更新対象範囲指定パラメータで指定された範囲の複数台の計算機から探索処理を行う。
更新対象範囲指定パラメータでの範囲の指定は、例えば図３に示す入力装置１６を使って、更新作業を指示する作業員による入力作業で行う。
【００４０】
なお、図５のフローチャートに示す処理では、配信元計算機１０のリモートインストーラ１０１がインストール対象の計算機の探索処理を行う場合を示すが、各計算機２０（１）〜２０（Ｎ）がインストール対象の計算機の探索処理を行う場合も同様である。
【００４１】
以下、図５のフローチャートに従って、配信元計算機１０のリモートインストーラ１０１における、インストール対象の計算機の検索処理手順について説明する。
まず、リモートインストーラ１０１は、配信元計算機１００のＯＳ／ミドルウェア更新データ記憶部１０２に格納されているＯＳ／ミドルウェアのバージョンを取得する（ステップＳ１１）。続いて、リモートインストーラ１０１は、計算機（Ｍ）で動作中のＯＳ／ミドルウェア３０３のバージョンを取得する（ステップＳ１２）。
【００４２】
次に、リモートインストーラ１０１は、ステップＳ１１で取得したバージョンと、ステップＳ１２で取得したバージョンを比較する（ステップＳ１３）。この比較で、計算機（Ｍ）にインストールされているＯＳ／ミドルウェアのバージョンが古い場合には（ステップＳ１３のＹｅｓ）、リモートインストーラ１０１は、計算機（Ｍ）のＯＳ／ミドルウェアが復元済みか否かを判断する（ステップＳ１４）。
また、ステップＳ１３で、バージョンが同一または新しい場合、もしくはインストール対象外のＯＳである場合には（ステップＳ１３のＮｏ）、リモートインストーラ１０１は、以下に説明するステップＳ１４〜Ｓ１７の処理をスキップする。
【００４３】
そして、ステップＳ１４では、リモートインストーラ１０１は、計算機（Ｍ）のＯＳ／ミドルウェアが復元済みか否かを判断する。ここでは、計算機（Ｍ）のインストーラ動作モード設定部２０７の動作指定Ｍ１１０のデータが、バージョンＸ：復元済みＭ１１４（図４）であり、バージョンＸに記録されたバージョンと、ステップＳ１１で取得したバージョンが同一のとき、この計算機が復元済みと判断する（ステップＳ１４のＹｅｓ）。このステップＳ１４の判断で、計算機が復元済みと判断したとき、リモートインストーラ１０１は、ステップＳ１５〜Ｓ１７の処理をスキップする。
【００４４】
一方、ステップＳ１４で、計算機が復元済みでないと判断したとき（ステップＳ１４のＮｏ）、リモートインストーラ１０１は、ＯＳ／ミドルウェア更新データ記憶部１０２に格納された更新データを、インストール対象の計算機（Ｍ）に転送する（ステップＳ１５）。インストール対象の計算機（Ｍ）側は、転送された更新データを、ＯＳ／ミドルウェア更新データ記憶部３０６に格納する。
なお、各計算機２０（１）〜２０（Ｎ）がインストール対象の計算機の探索処理を行う場合には、ステップＳ１５での更新データの転送は、配信元計算機１０が行う。あるいは、探索処理を行った計算機が、その計算機のＯＳ／ミドルウェア更新データ記憶部１０２に格納された更新データを、探索処理で見つかった他の計算機に転送する。
【００４５】
次に、リモートインストーラ１０１は、起動対象ＲＡＭディスクＭ１００のインストールＭ１０２の動作指定Ｍ１１０の項目に、インストールＭ１１５を設定する（ステップＳ１６）。この設定は、計算機（Ｍ）のインストーラ動作モード設定部２０７で行われる。
そして、リモートインストーラ１０１は、インストールＭ１１５として設定した条件で、計算機（Ｍ）のリモートインストーラ２０５を起動する（ステップＳ１７）。以降、計算機（Ｍ）は、自身のリモートインストーラ２０５の処理に従って動作し、配信元計算機１００のリモートインストーラ１０１の制御下からは外れる。
起動したリモートインストーラ２０５は、リモートインストーラ１０１から指示された日時に更新処理を実行する。
【００４６】
その後、配信元計算機１００のリモートインストーラ１０１は、処理完了の条件を満たすか否かを判断する（ステップＳ１８）。ここでは、下記の条件１、条件２、条件３の何れかの条件に一致する場合は、処理を完了する。
（条件１）計算機２０（１〜Ｎ）のうち一つの計算機（Ｍ）に対するインストールの指示が終了した。
（条件２）インストール範囲指定パラメータで指定された範囲の計算機に対するインストールの指示が終了した。
（条件３）計算機２０（１〜Ｎ）全てのチェックが完了した。
ここで、条件１、条件２、条件３の何れかの条件に一致する場合（ステップＳ１８のＹｅｓ）、リモートインストーラ１０１は処理を終了する。また、条件１、条件２、条件３のいずれにも一致しない場合（ステップＳ１８のＮｏ）、別の計算機（Ｍ＋１）に対して、ステップＳ１１から処理を行う。
【００４７】
［４．計算機内でのインストール処理］
図６は、計算機２０（１）〜２０（Ｎ）に配置されたれたリモートインストーラ２０５によるインストール処理動作の流れのフローチャートである。
まず、リモートインストーラ２０５は、インストーラ動作モード設定部２０７に設定されたデータを読み込み、内容を判断する（ステップＳ２１）。
【００４８】
ここで、リモートインストーラ２０５は、判断した動作指定Ｍ１１０がインストールＭ１１５である場合は、リモートインストーラ２０５は、ステップＳ２２に移行して、インストール処理を行う。また、判断した動作指定Ｍ１１０が復元Ｍ１１６である場合は、リモートインストーラ２０５は、ステップＳ２６に移行して、復元処理を行う。さらに、判断した動作指定Ｍ１１０が他計算機検索Ｍ１１３である場合は、リモートインストーラ２０５は、ステップＳ２８に移行して、インストール対象計算機の検索を実施する。
【００４９】
ステップＳ２１でインストール処理と判断したとき、リモートインストーラ２０５は、ＯＳ／ミドルウェア記憶部２０３に格納されたＯＳ／ミドルウェアのパーティションを、イメージファイルとしてバックアップする（ステップＳ２２）。バックアップ処理の詳細は、図７で後述する。
その後、リモートインストーラ２０５は、ＯＳ／ミドルウェア更新データ記憶部２０６に格納された更新データを読み込み、ＯＳ／ミドルウェア記憶部２０３のデータを更新する（ステップＳ２３）。
【００５０】
次に、リモートインストーラ２０５は、インストーラ動作モード設定部２０７の起動対象ＲＡＭディスクＭ１００を通常起動Ｍ１０１に設定し、動作指定Ｍ１１０としてＷＤＴ起動Ｍ１１２に設定する（ステップＳ２４）。この設定により、計算機の再起動後は更新後のＯＳ／ミドルウェア記憶部２０３に格納されたＯＳ／ミドルウェアで起動し、制限時間内に起動完了するかどうかを、ウォッチドッグタイマ２０９で監視する動作が行われる。ウォッチドッグタイマ２０９による監視動作は後述する（図９）。
そして、リモートインストーラ２０５は、インストールが終了した計算機を再起動する（ステップＳ２５）。
【００５１】
ステップＳ２１で復元処理と判断したとき、リモートインストーラ２０５は、バックアップデータ記憶部２０８に格納されたデータを使用して、ＯＳ／ミドルウェア記憶部２０３が格納したＯＳ／ミドルウェアを、インストール前の状態に復元する（ステップＳ２６）。
その後、リモートインストーラ２０５は、インストーラ動作モード設定部２０７の起動対象ＲＡＭディスクＭ１００の項目を通常起動Ｍ１０１に設定し、動作指定Ｍ１１０をバージョンＸ：復元済みＭ１１４に設定する（ステップＳ２７）。ここで、バージョンＸには、ＯＳ／ミドルウェア更新データ記憶部２０６に記憶された更新データのバージョンが設定される。この設定により、計算機の再起動後はバックアップデータ復元後のＯＳ／ミドルウェア３０３で通常起動すると共に、この計算機はバージョンＸと同一バージョンのＯＳ／ミドルウェアの更新対象にはならない。ステップＳ２７の設定完了後、復元処理が終了した計算機が再起動される（ステップＳ２５）。
【００５２】
ステップＳ２１で他計算機検索と判断したとき、リモートインストーラ２０５は、インストーラ動作モード設定部２０７の動作指定Ｍ１１０を、「なしＭ１１１」に設定する（ステップＳ２８）。そして、リモートインストーラ２０５は、リモートインストール対象検索処理を実施する（ステップＳ２９）。
【００５３】
［５．バックアップ動作および復元動作］
図７は、ＯＳ／ミドルウェアのバックアップ／復元動作を説明する図である。
この例では、ＯＳ／ミドルウェアのデータが格納されたディスク（記憶媒体）４００を用意する。そして、ディスク４００のＯＳ／ミドルウェアが格納されたパーティション４０１のデータを、別のディスク（記憶媒体）４１０内にバックアップファイル４１１として保存する。
【００５４】
このときのバックアップ動作Ａ１では、ＯＳ／ミドルウェアが格納されたパーティション先頭から終端までのデータが読み込まれ、１つのイメージファイルとして出力される。また、復元動作Ａ２では、バックアップファイル４１１を、ＯＳ／ミドルウェアが格納されたパーティション４０１の先頭から終端まで上書きする。
バックアップファイル４１１は、ＯＳ／ミドルウェアが格納されたディスク４００とは別のディスク４１０に格納することで冗長性を確保するために用いられる。
【００５５】
なお、図７に示すように、ＯＳ／ミドルウェアが格納されたディスク４００の、パーティション内にバックアップファイル４０２を作成することで、１つのディスク（記憶媒体）のみで、バックアップを行うようにしてもよい。
【００５６】
［６．計算機起動時の処理］
図８は、計算機２０（１）〜２０（Ｎ）を起動したときの動作を示すフローチャートである。
まず、起動時には、計算機は、インストーラ動作モード設定部２０７の起動対象ＲＡＭディスクＭ１００の指定を判断する（ステップＳ３１）。ここで、起動対象ＲＡＭディスクＭ１００の指定がインストールＭ１０２である場合は、インストール用ＲＡＭディスク２０４を起動後、計算機は、リモートインストーラ２０５を起動する（ステップＳ４２）。リモートインストーラ２０５を起動した後の処理は、図６のフローチャートで既に説明した処理である。
【００５７】
また、ステップＳ３１で、起動対象ＲＡＭディスクＭ１００の指定が通常起動Ｍ１０１である場合は、計算機は、インストーラ動作モード設定部２０７の動作指定内容を判断する（ステップＳ３２）。
ここで、インストーラ動作モード設定部２０７の動作指定Ｍ１１０がＷＤＴ起動Ｍ１１２の場合、インストーラ動作モード設定部２０７の起動対象ＲＡＭディスクＭ１００をインストールＭ１０２とし、動作指定Ｍ１１０を復元Ｍ１１６に設定する（ステップＳ３３）。そして、ウォッチドッグタイマ（ＷＤＴ）２０９を起動する（ステップＳ３４）。そして、通常起動用ＲＡＭディスク２０２を起動する（ステップＳ３５）。
【００５８】
このようにウォッチドッグタイマ２０９を起動することで、ウォッチドッグタイマ２０９によりタイムアウトが検出されて、計算機が再起動した場合は、再度、この図８のフローチャートの先頭から処理が行われる。このウォッチドッグタイマ２０９でのタイムアウトでの再起動時には、ステップＳ３１での判定によりステップＳ４２に進み、復元処理が実行される。
【００５９】
また、ステップＳ３２の判断で、インストーラ動作モード設定部２０７の動作指定Ｍ１１０がＷＤＴ起動Ｍ１１２以外である場合、計算機は、ステップＳ３３およびＳ３４の処理を省略して、ステップＳ３５の処理に移行する。
【００６０】
ステップＳ３３およびＳ３４を経過してステップＳ３５に移行した場合、インストーラ動作モード設定部２０７の起動対象ＲＡＭディスクＭ１００にインストールＭ１０２が指定されている。しかし、計算機は、この指定を無視し、通常起動用ＲＡＭディスク２０２を起動する。
【００６１】
そして、計算機は、ＯＳ／ミドルウェア記憶部２０３が格納したＯＳ／ミドルウェアを起動する（ステップＳ３６）。
次に、計算機は、インストーラ動作モード設定部２０７の動作指定内容を判断する（ステップＳ３７）。ここで、インストーラ動作モード設定部２０７の動作指定Ｍ１１０の指定が復元Ｍ１１６の場合は、ステップＳ３３およびＳ３４を通過しているので、ＯＳ／ミドルウェア３０３の起動処理完了後に、ウォッチドッグタイマ２０９を停止する（ステップＳ３８）。
【００６２】
ステップＳ３８では、ＯＳ／ミドルウェア３０３の起動処理完了後に、ウォッチドッグタイマ２０９を停止する。その後、インストーラ動作モード設定部２０７は、起動対象ＲＡＭディスクＭ１１０を通常起動Ｍ１０１に、動作指定Ｍ１１０を他計算機検索Ｍ１１３に設定する（ステップＳ３９）。この設定により、次のステップＳ４０でのリモートインストーラ起動時に、他計算機検索処理が行われる。
【００６３】
そして、計算機に格納されているリモートインストーラ２０５を起動する（ステップＳ４０）。起動されたリモートインストーラ２０５は、図６で説明した動作を行い、ステップＳ２９にて、図３で説明したインストール対象の検索処理を行う。すなわち、自身の計算機に格納されたＯＳ／ミドルウェア更新データ記憶部２０６の更新データよりも古いＯＳ／ミドルウェアが動作している計算機を検索し、リモートインストーラ２０５を起動する。
【００６４】
その後、インストーラ動作モード設定部２０７の、起動対象ＲＡＭディスクＭ１１０を通常起動Ｍ１０１に設定し、動作指定Ｍ１１０をなしＭ１１１に設定する（ステップＳ４１）。この設定により、以降は常にＯＳ／ミドルウェア記憶部２０３が格納した更新後のＯＳ／ミドルウェアで起動する。
【００６５】
また、ステップＳ３７において、インストーラ動作モード設定部２０７の動作指定内容が復元Ｍ１１６以外の場合は、通常のＯＳ／ミドルウェア起動であり、ＷＤＴの停止等は必要ないため、ステップＳ３８〜Ｓ４１の処理は実施しない。
【００６６】
［７．ウォッチドッグタイマの処理］
図９は、ウォッチドッグタイマ２０９が起動した際の処理を示すフローチャートである。
ウォッチドッグタイマ２０９には、予めＯＳ／ミドルウェアを起動する際の規定時間がセットされており、ウォッチドッグタイマ２０９は、ＯＳ／ミドルウェアの起動を開始してから規定時間が経過したか否かを判断する（ステップＳ５１）。ここで、規定時間が経過していない場合（ステップＳ５１のＮｏ）、ステップＳ５１での規定時間が経過したか否かの判断を繰り返す。
【００６７】
そして、ステップＳ５１で規定時間が経過した場合（ステップＳ５１のＹｅｓ）、ウォッチドッグタイマ２０９は停止する（ステップＳ５２）。そして、インストーラ動作モード設定部２０７は、動作指定内容を復元Ｍ１１６に設定する（ステップＳ５３）。また、ウォッチドッグタイマ２０９が規定時間を経過して復元状態になったことを、配信元計算機１０に通知して、ウォッチドッグタイマ２０９の処理を終了する。
【００６８】
［８．更新データの転送とインストールを行う流れの例］
図１０は、配信元計算機１０から複数台の計算機２０（１）、２０（２）、２０（３）、・・・に更新データを配信してインストールを行う一例を示す。
図１０に示すように、まず配信元計算機１０は、計算機２０（１）のＯＳ／ミドルウェアのバージョンを取得し（ステップＳ１１１）、取得したバージョンが更新対象の古いバージョンであるとき、計算機２０（１）にインストール指示を行う（ステップＳ１１２）。このインストール指示は、図５のフローチャートで説明した処理であり、更新データについても配信元計算機１０から転送される。
【００６９】
このインストール指示を受信した計算機２０（１）のリモートインストーラ２０５は、ＯＳ／ミドルウェア記憶部２０３が格納したＯＳ／ミドルウェアの更新処理を行う（ステップＳ１１３）。計算機２０（１）は、この更新処理の完了後に、ＯＳ／ミドルウェアの起動処理を行う（ステップＳ１１４）。ここでの更新後の起動時には、ウォッチドッグタイマ２０９が起動時間を監視し、規定時間以内に起動したとき、更新に成功したとして、計算機２０（１）が、別の更新対象の計算機の探索処理を行う。ここでは、計算機２０（２）のＯＳ／ミドルウェアのバージョンを取得し（ステップＳ１１５）、取得したバージョンが更新対象の古いバージョンであるとき、計算機２０（２）にインストール指示を行う（ステップＳ１１６）。
【００７０】
このインストール指示が行われる際には、計算機２０（１）から更新データを転送する。あるいは、図１０に破線の矢印で示すように、配信元計算機１０が、計算機２０（２）に更新データを転送してもよい。
【００７１】
インストール指示を受信した計算機２０（２）は、リモートインストーラ２０５が、ＯＳ／ミドルウェアの更新処理を行う（ステップＳ１１７）。計算機２０（２）は、この更新処理の完了後に、ＯＳ／ミドルウェアの起動処理を行う（ステップＳ１１８）。ここでの更新後の起動時にもウォッチドッグタイマ２０９が起動時間を監視し、規定時間以内に起動したとき、更新に成功したとして、計算機２０（２）が、別の更新対象の計算機の探索処理を行う。ここでは、計算機２０（３）のＯＳ／ミドルウェアのバージョンを取得し（ステップＳ１１９）、取得したバージョンが更新対象の古いバージョンであるとき、計算機２０（３）にインストール指示を行う（ステップＳ１２０）。
【００７２】
このインストール指示が行われる際には、計算機２０（２）から更新データを転送する。あるいは、図１０に破線の矢印で示すように、配信元計算機１０が、計算機２０（３）に更新データを転送してもよい。
【００７３】
インストール指示を受信した計算機２０（３）は、リモートインストーラ２０５が、ＯＳ／ミドルウェアの更新処理を行う（ステップＳ１２１）。計算機２０（３）は、この更新処理の完了後に、ＯＳ／ミドルウェアの起動処理を行う（ステップＳ１２２）。ここでの更新後の起動時にもウォッチドッグタイマ２０９が起動時間を監視し、規定時間以内に起動したとき、更新に成功したとして、計算機２０（３）が、さらに別の更新対象の計算機の探索処理を行う。すなわち、計算機２０（３）が、別の計算機のＯＳ／ミドルウェアのバージョンを取得し（ステップＳ１２３）、取得したバージョンが更新対象の古いバージョンであるとき、該当する計算機にインストール指示を行う（ステップＳ１２４）。
以下同様にして、更新対象範囲内で更新が必要な全ての計算機２０（１）〜２０（Ｎ）での更新が順に行われる。
【００７４】
なお、図１０に示す処理の流れは、いずれの計算機２０（１）〜２０（３）でも再起動時に規定時間以内に起動した場合であり、いずれかの計算機２０（１）〜２０（３）で再起動時に規定時間を超えたときには、更新失敗として、その計算機は元の状態に復元される。そして、それ以降の計算機にはインストール指示が送られず、適切な更新ができない新しいバージョンのＯＳ／ミドルウェアへの更新が阻止される。
【００７５】
このようにして、更新対象範囲内の全ての計算機２０（１）〜２０（Ｎ）での更新が、１台ずつ順に外部からの指示で順に実行されるようになる。したがって、例えば各計算機２０（１）〜２０（Ｎ）が遠隔地に設置される状況であっても、それぞれの計算機２０（１）〜２０（Ｎ）に更新作業を行う作業員が出向くことなく、自動的にソフトウェアを更新することができる。
【００７６】
ここで、それぞれの計算機２０（１）〜２０（Ｎ）は、更新完了後の再起動に要する時間を計測して、その時間が規定時間を超えたとき、更新失敗と判断する。そして、該当する計算機は元の状態に復元され、該当しない他の計算機にはインストール指示が送られない。このため、更新データに不備がある場合などに、複数の計算機に対する不適切な更新を阻止することができる。
なお、このような復元が行われた際には、配信元計算機１０に対して、更新の失敗が通知されるため、配信元計算機１０側で各計算機２０（１）〜２０（Ｎ）での更新処理の進行状況を監視することもできる。
【００７７】
［９．更新データの転送とインストールを行う他の例］
図１０に示す例では、更新データの配信とインストールを、１台ずつ繰り返すようにしたが、配信元計算機１０から更新対象計算機２０（１）〜２０（Ｎ）への更新データの配信については、事前に行うようにしてもよい。
図１１および図１２は、この場合の処理例を示す。
図１１は、配信元計算機１０から複数台の計算機２０（１）、２０（２）、２０（３）、・・・に配信元計算機からの更新データを配信する一例を示す。
図１０に示すように、まず配信元計算機１０は、計算機２０（１）のＯＳ／ミドルウェアのバージョンを取得し（ステップＳ２０１）、取得したバージョンが更新対象の古いバージョンであるとき、計算機２０（１）に更新データを転送する（ステップＳ２０２）。
【００７８】
その後、配信元計算機１０は、別の計算機（ここでは計算機２０（２））のＯＳ／ミドルウェアのバージョンを取得する（ステップＳ２０３）。そして、取得したバージョンが更新対象の古いバージョンであるとき、計算機２０（２）に更新データを転送する（ステップＳ２０４）。
【００７９】
さらにその後、配信元計算機１０は、別の計算機（ここでは計算機２０（３））のＯＳ／ミドルウェアのバージョンを取得する（ステップＳ２０５）。そして、取得したバージョンが更新対象の古いバージョンであるとき、計算機２０（３）に更新データを転送する（ステップＳ２０６）。
このようにして、更新対象範囲内で更新が必要な全ての計算機２０（１）〜２０（Ｎ）に対して、更新データを転送して待機する。更新データによるＯＳ／ミドルウェアの更新は、予め決められた更新を実行する日時に実行される。
【００８０】
図１２は、それぞれの計算機２０（１）〜２０（３）で更新が行われる状態を示す。
ここでは、図１１に示す処理で計算機２０（１）〜２０（３）に更新データが転送済みであり、更新を実行する日時になると、配信元計算機１０（あるいは別の外部の機器）から、１台の計算機２０（１）にインストール指示を送る（ステップＳ２１１）。
【００８１】
このインストール指示を受信した計算機２０（１）のリモートインストーラ２０５は、ＯＳ／ミドルウェア記憶部２０３が格納したＯＳ／ミドルウェアの更新処理を行う（ステップＳ２１２）。計算機２０（１）は、この更新処理の完了後に、ＯＳ／ミドルウェアの起動処理を行う（ステップＳ２１３）。ここでの更新後の起動時には、ウォッチドッグタイマ２０９が起動時間を監視し、規定時間以内に起動したとき、更新に成功したとして、計算機２０（１）から別の計算機（ここでは計算機２０（２））に、インストール指示を送る（ステップＳ２１４）。
【００８２】
このインストール指示を受信した計算機２０（２）では、リモートインストーラ２０５が、ＯＳ／ミドルウェアの更新処理を行う（ステップＳ２１５）。計算機２０（２）は、この更新処理の完了後に、ＯＳ／ミドルウェアの起動処理を行う（ステップＳ２１６）。ここでの更新後の起動時にもウォッチドッグタイマ２０９が起動時間を監視し、規定時間以内に起動したとき、更新に成功したとして、計算機２０（２）からさらに別の計算機（ここでは計算機２０（３））に、インストール指示を送る（ステップＳ２１７）。
【００８３】
さらに、インストール指示を受信した計算機２０（３）では、リモートインストーラ２０５が、ＯＳ／ミドルウェアの更新処理を行う（ステップＳ２１８）。計算機２０（３）は、この更新処理の完了後に、ＯＳ／ミドルウェアの起動処理を行う（ステップＳ２１９）。ここでの更新後の起動時にもウォッチドッグタイマ２０９が起動時間を監視し、規定時間以内に起動したとき、更新に成功したとして、計算機２０（３）からさらに別の計算機に、インストール指示を送る（ステップＳ２２０）。
【００８４】
なお、図１２に示す処理の流れは、いずれの計算機２０（１）〜２０（３）でも再起動時に規定時間以内に起動した場合であり、いずれかの計算機２０（１）〜２０（３）で再起動時に規定時間を超えたときには、更新失敗として、その計算機は元の状態に復元される。そして、それ以降の計算機にはインストール指示が送られず、適切な更新ができない新しいバージョンのＯＳ／ミドルウェアへの更新が阻止される。
【００８５】
このように事前に更新データを配信することで、実際に更新作業が行われる際には、更新データの配信に要する時間を省くことができ、それだけ複数台の計算機での更新に要する時間を短縮することができる。
【００８６】
［１０．変形例］
本発明は、上述した実施の形態例に限定されるものではなく、様々な変形例が含まれる。
例えば、上述した実施の形態例では、配信元計算機１０が最初に１台の計算機２０（１）に対して、インストール指示を行うようにし、１台ずつの計算機が、順に更新を行うようにした。これに対して、例えばネットワーク４０で接続された更新対象範囲内のＮ台の計算機を、複数の群に分け、それぞれの群の１台の計算機に対して、配信元計算機１０が同時にインストール指示を行うようにしてもよい。
あるいは、最初の１台の特定の計算機での更新が完了して規定時間以内に再起動できた場合に、その特定の計算機から、他の複数台の計算機に対して、同時または連続してインストール指示を行うようにしてもよい。
【００８７】
また、上述した実施の形態例では、ＯＳまたはミドルウェアを更新する例について説明したが、計算機に実装された様々なソフトウェアの更新に本発明は適用が可能である。
計算機についても、ダム、上下水道用の設備、鉄道用の施設などのインフラ設備が備える計算機を例としたが、本発明は、その他の複数台の計算機を備えた各種システムに適用が可能である。
【００８８】
また、上述した実施の形態例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、図１などの構成図では、制御線や情報線は説明上必要と考えられるものだけを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。また、図５、図６、図８、図９に示すフローチャートにおいて、実施の形態例の処理結果に影響がない範囲で、一部の処理ステップの実行順序を入れ替えたり、一部の処理ステップを同時に実行したりするようにしてもよい。
【００８９】
また、上述した実施の形態例で説明した構成は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラムなどの情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、光ディスク等の記録媒体に置くことができる。
【符号の説明】
【００９０】
１０…配信元計算機、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…不揮発性ストレージ、１５…ネットワークインタフェース、１６…入力装置、１７…表示装置、１８…バス、２０（１）〜２０（Ｎ）…計算機（更新対象計算機）、３０（１）〜３０（Ｎ）…拠点、４０…ネットワーク、１０１…リモートインストーラ、１０２…ＯＳ／ミドルウェア更新データ記憶部、２０１…ブートローダ、２０２…通常起動用ＲＡＭディスク、２０３…ＯＳ／ミドルウェア記憶部、２０４…インストール用ＲＡＭディスク、２０５…リモートインストーラ、２０６…ＯＳ／ミドルウェア更新データ記憶部、２０７…インストーラ動作モード設定部、２０８…ＯＳ／ミドルウェアバックアップデータ記憶部、２０９…ウォッチドッグタイマ
【図１】
2020119094.tif 000003
【図２】
2020119094.tif 000004
【図３】
2020119094.tif 000005
【図４】
2020119094.tif 000006
【図５】
2020119094.tif 000007
【図６】
2020119094.tif 000008
【図７】
2020119094.tif 000009
【図８】
2020119094.tif 000010
【図９】
2020119094.tif 000011
【図１０】
2020119094.tif 000012
【図１１】
2020119094.tif 000013
【図１２】
2020119094.tif 000014