(57)【特許請求の範囲】
【請求項１】
ネットワークで接続された複数の産業制御システム間の通信を制御する通信制御システムであって、
２以上の産業制御システム間の通信を中継する通信中継装置と、
前記複数の産業制御システムを監視する監視部と、
前記監視部が少なくとも１つの前記産業制御システムの異常を検知したことに応じて、異常が検知された前記産業制御システムと他の前記産業制御システムとの間の通信を、前記通信中継装置を介して行わせるように切り換える制御部と、
を備える通信制御システム。
【請求項２】
前記通信中継装置は、異常が検知された前記産業制御システムと他の前記産業制御システムとの間の通信を制限する請求項１に記載の通信制御システム。
【請求項３】
前記通信中継装置は、他の前記産業制御システムから異常が検知された前記産業制御システムへのサービス要求およびデータの少なくとも一方を間引きすることにより前記通信を制限する請求項２に記載の通信制御システム。
【請求項４】
前記通信中継装置は、前記他の産業制御システムからのサービス要求を、前記複数の産業制御システムのうち当該サービス要求を受け付ける代替の前記産業制御システムへとルーティングさせることにより前記通信を制限する請求項２に記載の通信制御システム。
【請求項５】
前記制御部は、前記監視部の監視結果に基づいて異常が検知された前記産業制御システムに対する対応レベルを更に決定し、
前記通信中継装置は、前記対応レベルに応じて、異常が検知された前記産業制御システムと他の前記産業制御システムとの間の通信を遮断することにより前記通信を制限する請求項２から４のいずれか一項に記載の通信制御システム。
【請求項６】
前記制御部は、前記対応レベルに応じて、異常が検知された前記産業制御システムをシャットダウンする請求項５に記載の通信制御システム。
【請求項７】
前記ネットワークに接続され、仮想マシンを実行するサーバ装置を更に備え、
前記制御部は、少なくとも１つの前記産業制御システムの異常を検知したことに応じて、前記サーバ装置上で実行される前記仮想マシンを前記通信中継装置として割り当てる請求項１から６のいずれか一項に記載の通信制御システム。
【請求項８】
前記制御部は、異常が検知された前記産業制御システムを含み前記通信中継装置をゲートウェイとするネットワークゾーンを生成する請求項１から７の何れか一項に記載の通信制御システム。
【請求項９】
異常が検知された前記産業制御システムが正常に戻ったことに応じて、前記制御部は、正常に戻った前記産業制御システムと他の前記産業制御システムの間の通信を、前記通信中継装置を介さずに行わせるように切り換える請求項１から８の何れか一項に記載の通信制御システム。
【請求項１０】
複数の産業制御システムと、
前記複数の産業制御システムを接続するネットワークと、
２以上の産業制御システム間の通信を中継する通信中継装置と、
前記複数の産業制御システムを監視する監視部と、
前記監視部が少なくとも１つの前記産業制御システムの異常を検知したことに応じて、異常が検知された前記産業制御システムと他の前記産業制御システムの間の通信を、前記通信中継装置を介して行わせるように切り換える制御部と、
を備えるシステム。
【請求項１１】
ネットワークで接続された複数の産業制御システム間の通信を制御する通信制御方法であって、
前記複数の産業制御システムを監視し、
２以上の産業制御システム間の通信を中継する通信中継装置を配置し、
少なくとも１つの前記産業制御システムの異常を検知したことに応じて、異常が検知された前記産業制御システムと他の前記産業制御システムとの間の通信を、前記通信中継装置を介して行わせるように切り換える
通信制御方法。
【請求項１２】
請求項１から９の何れか１項に記載の通信制御システムに備えられる前記制御部として機能する装置。
【請求項１３】
請求項１から９の何れか１項に記載の通信制御システムに備えられる前記制御部として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の産業制御システム間の通信を制御するシステムに関する。
【背景技術】
【０００２】
工業システムおよびインフラストラクチャシステムの管理および制御をする産業制御システム（ＩＣＳ）が知られている（例えば、非特許文献１参照）。従来、産業制御システムは、外部ネットワークとは接続されず、固有のプロトコルで動作するものが多かった。
【０００３】
非特許文献１  "ＳＣＡＤＡ"、［online］、ウィキペディア、［２０１１年３月３０日検索］、インターネット〈URL：http://ja.wikipedia.org/wiki/SCADA〉
特許文献１  特表２００７−５０６３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、近年、産業制御システムは、インターネットプロトコル等の一般的な通信プロトコルにより接続され、また、企業内システムおよび外部ネットワーク等と接続されたシステムも多くなってきた。このような産業制御システムは、外部からの悪意のある攻撃があった場合、制御対象の機器が攻撃者により制御されないように、制御対象の機器を早急にシャットダウンする等の処置をとらなければならない。
【０００５】
しかし、産業制御システムは、制御対象によっては技術的な要因または社会要請の検知から短時間にシャットダウンできない場合もある。従って、産業制御システムでは、外部からの悪意のある攻撃等により異常を検出した場合において、制御対象等に応じた適切な処置をとる必要があった。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の態様においては、ネットワークで接続された複数の産業制御システム間の通信を制御する通信制御システムであって、２以上の産業制御システム間の通信を中継する通信中継装置と、前記複数の産業制御システムを監視する監視部と、前記監視部が少なくとも１つの前記産業制御システムの異常を検知したことに応じて、異常が検知された前記産業制御システムと他の前記産業制御システムとの間の通信を、前記通信中継装置を介して行わせるように切り換える制御部と、を備える通信制御システムを提供する。さらに、このような通信制御システムに関するシステム、装置およびプログラムを提供する。
【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係るコンピューティングシステム１０の機能構成を示す。
【図２】本実施形態に係る制御部３４における処理フローを示す。
【図３】一部の産業制御システム２０に異常が生じた状態における、コンピューティングシステム１０の機能構成を示す。
【図４】通信中継装置３０がネットワーク２２に配置された状態における、コンピューティングシステム１０の機能構成を示す。
【図５】通信中継装置３０が通信をリルーティングしている状態における、コンピューティングシステム１０の機能構成を示す。
【図６】通信中継装置３０が通信をカリングしている状態における、コンピューティングシステム１０の機能構成を示す。
【図７】通信中継装置３０が通信をディスコネクトしている状態における、コンピューティングシステム１０の機能構成を示す。
【図８】異常がある産業制御システム２０をシャットダウンしている状態における、コンピューティングシステム１０の機能構成を示す。
【図９】対応レベルを段階的に高くしながら、異常を検知した産業制御システム２０を正常に復旧させるためのプランを実行する一例を示す。
【図１０】本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、本実施形態に係るコンピューティングシステム１０の機能構成を示す。本実施形態に係るコンピューティングシステム１０は、複数の産業制御システム（ＩＣＳ）２０と、ネットワーク２２と、通信中継装置３０と、監視部３２と、制御部３４とを備える。
【００１１】
産業制御システム２０は、一例として、工業システムおよびインフラストラクチャ（交通およびエネルギ等）システム等の各オブジェクトの管理および制御をするシステムである。産業制御システム２０は、一例として、オフィス内または家庭内のネットワークに接続された様々なデバイス（例えば電話機およびコピー機、等々）を管理するシステムであってもよい。また、産業制御システム２０は、企業等内のネットワークに接続された複数のコンピュータを管理するシステムであってもよいし、データセンタ等のネットワークに接続された多数のサーバを管理するシステムであってもよい。
【００１２】
また、複数の産業制御システム２０のそれぞれは、一つの大きな産業制御システム内における一部分のシステムであってもよい。例えば、複数の産業制御システム２０のそれぞれは、都市全体を管理する産業制御システムを構成する部分的な管理システム（例えば、ビル管理システム、工場管理システム、水道管理システム、および電気管理システム等）であってもよい。
【００１３】
複数の産業制御システム２０のそれぞれは、一例として、複数の情報処理装置４０および中間サーバ４２等を備える。複数の情報処理装置４０のそれぞれは、プログラムを実行して、データ処理および機器の制御等を行う。複数の情報処理装置４０のそれぞれは、コンピュータであってもよいし、機器に組み込まれたデータ処理ユニットであってもよい。複数の情報処理装置４０のそれぞれは、一例として、機器を制御するＰＬＣ（Programmable Logic Controller）であってもよい。
【００１４】
中間サーバ４２は、一例として、当該産業制御システム２０内の情報処理装置４０を制御および管理する。また、中間サーバ４２は、一例として、ネットワーク２２を介して行われる他の産業制御システム２０との間の通信を制御する。
【００１５】
ネットワーク２２は、複数の産業制御システム２０を接続する。例えば、ネットワーク２２は、複数の産業制御システム２０間でやり取りされるデータを、インターネット等のプロトコルにより伝送する。
【００１６】
通信中継装置３０は、２以上の産業制御システム２０間の通信を中継する。より具体的には、通信中継装置３０は、何れかの産業制御システム２０で異常が検知された場合において、異常が検知された産業制御システム２０と他の産業制御システム２０との間の通信を中継する。そして、通信中継装置３０は、何れの産業制御システム２０においても異常が検知されていない場合には、２以上の産業制御システム２０間の通信を中継しない。
【００１７】
本実施形態においては、コンピューティングシステム１０は、ネットワーク２２に接続され、仮想マシンを配置および実行するサーバ装置を更に備える。そして、本実施形態においては、通信中継装置３０は、サーバ装置が実行する仮想マシンにより動的に実現される。
【００１８】
より具体的には、仮想マシンにより実現された通信中継装置３０は、何れの産業制御システム２０においても異常が検知されていない場合においては、ネットワーク２２上には配置されていない。しかし、仮想マシンにより実現された通信中継装置３０は、何れかの産業制御システム２０で異常が検知された場合において、適切なソフトウェアのロードおよび設定がされ、異常が検知された産業制御システム２０におけるゲートウェイとしてネットワーク２２上にプロビジョニングされる。これにより、仮想マシンにより実現された通信中継装置３０は、何れかの産業制御システム２０で異常が検知された場合において、ネットワーク２２上に配置される。
【００１９】
そして、仮想マシンにより実現された通信中継装置３０は、異常が検知された産業制御システム２０が正常となった場合、設定の解除等がされ、ネットワーク２２上からデプロビジョニングされる。これにより、仮想マシンにより実現された通信中継装置３０は、何れの産業制御システム２０においても異常が検知されていない場合において、実行を停止してネットワーク２２上から取り外される。
【００２０】
なお、サーバのプロビジョニングについては、例えば、仮想サーバを提供するサービス（"IBM Smart Business クラウド・サービス"、［online］、ＩＢＭホームページ、［２０１１年３月２８日検索］、インターネット〈URL：http://www-935.ibm.com/services/jp/index.wss/summary/its/k311218v05196i57〉）等の技術を用いて実現することができる。
【００２１】
監視部３２は、複数の産業制御システム２０を監視する。より詳しくは、監視部３２は、当該コンピューティングシステム１０に備えられる複数の産業制御システム２０において、異常が発生したかどうかを検知する。
【００２２】
制御部３４は、監視部３２が少なくとも１つの産業制御システム２０の異常を検知したことに応じて、異常が検知された産業制御システム２０と他の産業制御システム２０の間の通信を、通信中継装置３０を介して行わせるように切り換える。これにより、通信中継装置３０は、通信中継装置３０を異常が検知された産業制御システム２０のゲートウェイとして機能させることができる。
【００２３】
そして、制御部３４は、異常が検知された産業制御システム２０が正常に戻ったことに応じて、制御部３４は、正常に戻った産業制御システム２０と他の産業制御システム２０の間の通信を、通信中継装置３０を介さずに行わせるように切り換える。これにより、通信中継装置３０は、正常に戻った産業制御システム２０のゲートウェイとして機能していた通信中継装置３０をネットワーク２２上から取り外すことができる。
【００２４】
図２は、本実施形態に係る制御部３４における処理フローを示す。まず、ステップＳ１１において、制御部３４は、監視部３２によって何れかの産業制御システム２０において異常が検知されたか否かを判断する。
【００２５】
異常が検知されなければ、即ち、全ての産業制御システム２０が正常であれば、制御部３４は、処理を待機する（Ｓ１１のＮｏ）。何れかの産業制御システム２０において異常が検知された場合、制御部３４は、処理をステップＳ１２に進める（Ｓ１１のＹｅｓ）。
【００２６】
続いて、ステップＳ１２において、制御部３４は、検知した異常の内容、異常の箇所および異常のレベル等に応じて、産業制御システム２０を復旧するための処理のプランを生成する。制御部３４は、一例として、複数のプランを予め記憶しておき、検知した異常の内容、異常の箇所および異常のレベル等に応じて、予め記憶した複数のプランのうち適切なプランを選択する。
【００２７】
本実施形態においては、制御部３４は、リルーティング、カリング、ディスコネクトおよびシャットダウンのうち何れか一つの処理またはこれらを組み合わせた処理を実行するプランを生成する。リルーティング、カリング、ディスコネクトおよびシャットダウンの処理については、詳細を後述する。
【００２８】
続いて、ステップＳ１３において、制御部３４は、通信中継装置３０をプロビジョニングによりネットワーク２２上に配置して、異常が検知された産業制御システム２０のゲートウェイとして機能させる。即ち、制御部３４は、仮想マシンにより実現された通信中継装置３０に、産業制御システム２０のゲートウェイとして機能させるためのソフトウェアのロードおよび設定を行い、ロードしたソフトウェアを実行させる。
【００２９】
続いて、ステップＳ１４において、制御部３４は、異常が検知された産業制御システム２０から他の産業制御システム２０へと転送されるパケットが全て通信中継装置３０を経由するように、異常が検知された産業制御システム２０内に設けられたルータ等の設定を変更する。制御部３４は、一例として、異常が検知された産業制御システム２０内に設けられたルータに対して、異常が検知された産業制御システム２０から外部へと出力されるパケットのヘッダに、中継ポイントとして通信中継装置３０のアドレスを書き込むように設定する。
【００３０】
さらに、制御部３４は、他の産業制御システム２０から異常が検知された産業制御システム２０へと転送されるパケットが全て通信中継装置３０を経由するように、他の産業制御システム２０のそれぞれ内に設けられたルータ等の設定を変更する。制御部３４は、一例として、他の産業制御システム２０のそれぞれ内に設けられたルータに対して、異常が検知された産業制御システム２０が宛て先として指定されているパケットの中継ポイントを通信中継装置３０とするように、ルーティングテーブルを設定する。
【００３１】
これにより、制御部３４は、異常が検知された産業制御システム２０を含むゾーン内の情報処理装置４０に対して入出力される全てのデータを、ネットワーク２２上に配置した通信中継装置３０を経由させることができる。即ち、制御部３４は、異常が検知された産業制御システム２０を含み通信中継装置３０をゲートウェイとするネットワークゾーンを生成することができる。
【００３２】
続いて、ステップＳ１５において、制御部３４は、通信中継装置３０に対して、ステップＳ１２において生成したプランを実行させる。本実施形態においては、制御部３４は、通信中継装置３０に対して、リルーティング（Ｓ２１）、カリング（Ｓ２２）、ディスコネクト（Ｓ２３）およびシャットダウン（Ｓ２４）の何れか、または、これらの組み合わせを実行させる。
【００３３】
更に、ステップＳ１５においてプランが実行されている間において、制御部３４は、異常が検知された産業制御システム２０を正常状態に復旧するための他の処理を実行してもよい。例えば、制御部３４は、異常の原因が不正なソフトウェア（マルウェア）によるものであれば、マルウェアの検出および排除の処理を実行する。また、例えば、制御部３４は、異常の原因が機器の故障等であれば、故障を管理者へと通知して、故障した機器の修理および交換がされるのを待機してもよい。
【００３４】
続いて、ステップＳ１６において、制御部３４は、検知されていた異常が治癒して正常となったかどうかを判断する。異常が治癒していない場合には（Ｓ１６のＮｏ）、制御部３４は、ステップＳ１５のプランの実行を継続する。
【００３５】
正常となった場合には（Ｓ１６のＹｅｓ）、制御部３４は、ステップＳ１７において、ステップＳ１４で変更したデータのルーティングを元に戻す。より詳しくは、制御部３４は、異常が検知された産業制御システム２０から他の産業制御システム２０へと転送されるパケットが、通信中継装置３０を経由しないように、異常が検知された産業制御システム２０内に設けられたルータ等の設定を元に戻す。また、制御部３４は、他の産業制御システム２０から異常が検知された産業制御システム２０へと転送されるパケットが通信中継装置３０を経由しないように、他の産業制御システム２０のそれぞれに設けられたルータ等の設定を元に戻す。
【００３６】
続いて、ステップＳ１８において、制御部３４は、ネットワーク２２上に配置した通信中継装置３０を、ネットワーク２２上から取り外す。即ち、制御部３４は、仮想マシンにより実現された通信中継装置３０の実行を停止させて、ネットワーク２２上に通信中継装置３０が存在しないように通信中継装置３０の設定を解除する。
【００３７】
このようなコンピューティングシステム１０によれば、異常が検知された産業制御システム２０と他の産業制御システム２０との間に通信中継装置３０を動的に配置してネットワーク的に分離することができる。これにより、コンピューティングシステム１０によれば、異常が検知された産業制御システム２０以外の産業制御システム２０に対する影響を少なくしながら、異常が検出された産業制御システム２０を適切な手順で復旧することができる。
【００３８】
図３は、一部の産業制御システム２０に異常が生じた状態における、コンピューティングシステム１０の機能構成を示す。監視部３２は、一例として、産業制御システム２０に入出力されるデータの流量が予め定められた値以上に増加したことを異常として検知する。より具体的には、例えば、監視部３２は、ある一の産業制御システム２０が、他の産業制御システム２０から過剰なサービス要求を受けた場合、過剰なサービス要求を受けた一の産業制御システム２０が異常であると検知する。また、反対に、監視部３２は、過剰なサービス要求を発生する産業制御システム２０を異常であると検知してもよい。
【００３９】
また、監視部３２は、一例として、ある一の産業制御システム２０の応答速度が著しく低下したり、サーバの温度が上昇したりした場合に、産業制御システム２０が異常であると検知してもよい。また、監視部３２は、一例として、産業制御システム２０にマルウェアが存在している場合に、異常として検知してもよい。そして、監視部３２は、このような異常を検知した場合、異常を検知した旨および異常の内容等を制御部３４に通知する。
【００４０】
図４は、通信中継装置３０がネットワーク２２に配置された状態における、コンピューティングシステム１０の機能構成を示す。通信中継装置３０は、何れかの産業制御システム２０で異常が検知された場合において、制御部３４による制御によって、ネットワーク２２における指定されたアドレスにプロビジョニングされる。そして、通信中継装置３０は、異常が検知された産業制御システム２０のゲートウェイとして機能する。
【００４１】
即ち、通信中継装置３０は、他の産業制御システム２０から出力されたデータを一旦取得し、取得したデータを異常が検知された産業制御システム２０へと転送する。また、通信中継装置３０は、異常が検知された産業制御システム２０から出力されたデータを一旦取得し、取得したデータを他の産業制御システム２０へと転送する。従って、通信中継装置３０は、他の産業制御システム２０から異常が検知された産業制御システム２０へと過剰なサービス要求が発生された場合には、他の産業制御システム２０からの過剰なサービス要求を中継して異常が検知された産業制御システム２０へと転送することができる。
【００４２】
図５は、通信中継装置３０が通信をリルーティングしている状態における、コンピューティングシステム１０の機能構成を示す。制御部３４は、産業制御システム２０に異常が検知された場合、一例として、通信中継装置３０にリルーティングを実行させる。リルーティングの実行において、通信中継装置３０は、他の産業制御システム２０からのサービス要求を、複数の産業制御システム２０のうち当該サービス要求を受け付ける代替の産業制御システム２０へとルーティングさせる。
【００４３】
この場合、通信中継装置３０は、一例として、他の産業制御システム２０から異常が検知された産業制御システム２０へと与えられるサービス要求またはデータを、異常が検出された産業制御システム２０と同様のサービスを提供する他の産業制御システム２０へと転送する。また、この場合において、通信中継装置３０は、一例として、特定の一の産業制御システム２０から異常が検知された産業制御システム２０へと大量のサービス要求またはデータが与えられている場合には、異常が検知された産業制御システム２０へと与えられる全てのサービス要求およびデータのうちのその特定の一の産業制御システム２０から発生された大量のサービス要求およびデータの一方を選択して、代替の産業制御システム２０へと転送してもよい。
【００４４】
これにより、制御部３４は、異常が検知された産業制御システム２０の処理負荷を軽減させることができる。そして、制御部３４は、異常が検知された産業制御システム２０の動作を正常に戻すことができる。
【００４５】
図６は、通信中継装置３０が通信をカリングしている状態における、コンピューティングシステム１０の機能構成を示す。制御部３４は、産業制御システム２０に異常が検知された場合、一例として、通信中継装置３０にカリングを実行させる。カリングの実行において、通信中継装置３０は、異常が検知された産業制御システム２０と他の産業制御システム２０との間の通信を制限する。
【００４６】
より詳しくは、通信中継装置３０は、他の産業制御システム２０から異常が検知された産業制御システム２０へのサービス要求およびデータの少なくとも一方を間引きする。また、この場合において、通信中継装置３０は、一例として、特定の一の産業制御システム２０から異常が検知された産業制御システム２０へと大量のサービス要求またはデータが与えられている場合には、異常が検知された産業制御システム２０へと与えられる全てのサービス要求およびデータのうちのその特定の一の産業制御システム２０から発生された大量のサービス要求およびデータの一方を選択して、間引きしてもよい。
【００４７】
これにより、制御部３４は、異常が検知された産業制御システム２０の処理負荷を軽減させることができる。そして、制御部３４は、異常が検知された産業制御システム２０の動作を正常に戻すことができる。
【００４８】
また、通信中継装置３０は、一例として、逆方向のサービス要求およびデータの少なくとも一方を間引きしてもよい。即ち、通信中継装置３０は、異常が検知された産業制御システム２０から他の産業制御システム２０へのサービス要求およびデータの少なくとも一方を間引いてもよい。これにより、制御部３４は、異常が検知された産業制御システム２０からサービス要求またはデータが与えられる産業制御システム２０の処理負荷を軽減させることができる。そして、制御部３４は、異常が検知された産業制御システム２０からサービス要求またはデータが与えられる産業制御システム２０の動作を正常に戻すことができる。
【００４９】
図７は、通信中継装置３０が通信をディスコネクトしている状態における、コンピューティングシステム１０の機能構成を示す。制御部３４は、産業制御システム２０に異常が検知された場合、一例として、通信中継装置３０にディスコネクトを実行させる。ディスコネクトの実行において、通信中継装置３０は、異常が検知された産業制御システム２０と他の産業制御システム２０との間の通信を遮断する。
【００５０】
この場合、通信中継装置３０は、一例として、他の産業制御システム２０から異常が検知された産業制御システム２０へと与えられるサービス要求またはデータを、異常が検知された産業制御システム２０へと転送せずに破棄する。また、通信中継装置３０は、一例として、特定の一の産業制御システム２０から異常が検知された産業制御システム２０へと大量のサービス要求またはデータが与えられている場合には、異常が検知された産業制御システム２０へと与えられる全てのサービス要求およびデータのうちのその特定の一の産業制御システム２０から発生された大量のサービス要求およびデータの一方を選択して、破棄してもよい。また、この場合、通信中継装置３０は、一例として、サービス要求が破棄されたことをシステム既存の仕組みを用いて通知してもよい。
【００５１】
これにより、制御部３４は、異常が検知された産業制御システム２０の処理負荷を軽減させることができる。そして、制御部３４は、異常が検知された産業制御システム２０の動作を正常に戻すことができる。
【００５２】
また、通信中継装置３０は、一例として、逆方向のサービス要求およびデータの少なくとも一方を、転送せずに破棄してもよい。即ち、通信中継装置３０は、一例として、異常が検知された産業制御システム２０から他の産業制御システム２０へのサービス要求およびデータの少なくとも一方を破棄してもよい。これにより、制御部３４は、異常が検知された産業制御システム２０からサービス要求またはデータが与えられる産業制御システム２０の処理負荷を軽減させることができる。そして、制御部３４は、異常が検知された産業制御システム２０からサービス要求またはデータが与えられる産業制御システム２０の動作を正常に戻すことができる。
【００５３】
図８は、異常がある産業制御システム２０をシャットダウンしている状態における、コンピューティングシステム１０の機能構成を示す。制御部３４は、産業制御システム２０に異常が検知された場合、一例として、異常が検知された産業制御システム２０をシャットダウンする。
【００５４】
即ち、通信中継装置３０は、異常が検知された産業制御システム２０の動作を全て停止させる。そして、通信中継装置３０は、シャットダウンした後、異常が検知された産業制御システム２０を再起動して動作を開始させる。これにより、制御部３４は、異常が検知された産業制御システム２０の動作を正常に戻すことができる。
【００５５】
図９は、対応レベルを段階的に高くしながら、異常を検知した産業制御システム２０を正常に復旧させるためのプランを実行する一例を示す。本実施形態においては、異常が発生した産業制御システム２０を正常状態に復旧させるための処理には、当該処理がシステム全体に与える影響度等に応じて対応レベルが設定されている。
【００５６】
例えば、産業制御システム２０を正常に復旧させることができる確率は低いが、実行によってシステムに与える影響が少ない処理は、対応レベルが低く設定される。また、例えば、産業制御システム２０を正常に復旧させることができる確率は高いが、実行によってシステムに与える影響が大きい処理は、対応レベルが高く設定される。例えば、本実施形態においては、最も対応レベルが一番低いのがリルーティング、２番目に低いのがカリング、３番目に低いのがディスコネクト、そして最も対応レベルが高いのがシャットダウンとなる。
【００５７】
そこで、制御部３４は、監視部３２の監視結果に基づいて異常が検知された産業制御システム２０に対する対応レベルを更に決定する。制御部３４は、一例として、検知した異常の内容および深刻度等に応じて、対応レベルを決定する。そして、制御部３４は、決定した対応レベルに応じた処理を通信中継装置３０に実行させる。また、産業制御システム２０の種類によっては、例えば社会インフラストラクチャに関わる産業制御システム２０では、何らかの障害が発生したからといって、高い対応レベルを即時に実行することができない場合がある。このような場合、制御部３４は、システムを最低限稼働させながら復旧を行うように対応レベルを選定する。
【００５８】
また、制御部３４は、最初は対応レベルが低い処理を実行し、産業制御システム２０が正常な状態に復旧しない場合には、対応レベルを段階的に高くして処理を実行してもよい。例えば、制御部３４は、何れかの産業制御システム２０において異常が検知された場合、まず、通信中継装置３０にリルーティングを実行させる（ステップＳ１１）。リルーティングは、異常が検知された産業制御システム２０が処理すべきサービスを異常が検知されていない産業制御システム２０が代行するので、システムに与える影響が少ない。
【００５９】
次に、リルーティングの実行によっても産業制御システム２０が正常な状態に復旧しない場合、制御部３４は、通信中継装置３０にカリングを実行させる（ステップＳ１２）。カリングは、サービスおよびデータの一部が破棄されるので、システムに与える影響はリルーティングより大きいが、通信量は減少するので、産業制御システム２０が正常な状態に復旧する確率はリルーティングより高くなる。
【００６０】
次に、カリングの実行によっても産業制御システム２０が正常な状態に復旧しない場合、制御部３４は、通信中継装置３０にディスコネクトを実行させる（ステップＳ１３）。ディスコネクトは、サービスおよびデータの全てが破棄されるので、システムに与える影響はカリングより大きいが、システム全体での通信量はカリングよりも減少するので、産業制御システム２０が正常な状態に復旧する確率はカリングより高くなる。
【００６１】
次に、ディスコネクトの実行によっても産業制御システム２０が正常な状態に復旧しない場合、制御部３４は、産業制御システム２０をシャットダウンさせる（ステップＳ１４）。シャットダウンは、再起動するまでに時間がかかり機器の制御もできなくなるのでシステムに与える影響は非常に大きいが、異常な産業制御システム２０を再起動させるので正常な状態に復旧する確率は非常に高くなる。
【００６２】
制御部３４は、このように対応レベルに応じて処理のプランを段階的に変えていくことにより、当該コンピューティングシステム１０の動作により影響を与えないようなプランから徐々に実行することができる。従って、通信中継装置３０は、深刻度の小さい異常に対して過剰な復旧プランを実行することなく、発生した異常に応じた適切なレベルの復旧プランを実行させることができる。
【００６３】
図１０は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００６４】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６５】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００６６】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６７】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６８】
コンピュータ１９００にインストールされ、コンピュータ１９００をコンピューティングシステム１０として機能させるプログラムは、監視モジュールと、制御モジュールと、通信中継モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、コンピューティングシステム１０としてそれぞれ機能させる。
【００６９】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である監視部３２、制御部３４および通信中継装置３０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のコンピューティングシステム１０が構築される。
【００７０】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００７１】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００７２】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００７３】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００７４】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００７５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７６】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７７】
１０  コンピューティングシステム
２０  産業制御システム
２２  ネットワーク
３０  通信中継装置
３２  監視部
３４  制御部
４０  情報処理装置
４２  中間サーバ
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＣＤ−ＲＯＭドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＣＤ−ＲＯＭ
【図１】
0005754704.tif 000002
【図２】
0005754704.tif 000003
【図３】
0005754704.tif 000004
【図４】
0005754704.tif 000005
【図５】
0005754704.tif 000006
【図６】
0005754704.tif 000007
【図７】
0005754704.tif 000008
【図８】
0005754704.tif 000009
【図９】
0005754704.tif 000010
【図１０】
0005754704.tif 000011