(57)【要約】      （修正有）【課題】産業処理システムにおいて、悪意のある又は意図しないコマンドによってもたらされる危険な状況を緩和するためのシステム、方法及び／又はコンピュータ・プログラムを提供する。【解決手段】コンピューティング・デバイスは、産業処理システム内の通信フローを監視し、シミュレーションへの入力として通信フローを用いてシミュレーションを実行する事によって、危険なコマンドを識別する。コンピューティング・デバイスは、危険なコマンドを識別することに基づいて１つ又は複数の緩和コマンドのセットを生成し、産業処理システム内のコンポーネントに出力する事によって危険なコマンドによりもたらされる危険のレベルを低下させる。【選択図】図８
2017091537.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと、
前記コンピューティング・デバイスにより、前記通信フローを監視することに基づいて危険なコマンドを識別することであって、前記危険なコマンドを識別することは、シミュレーションへの入力として前記通信フローを用いて前記シミュレーションを実行することを含む、識別することと、
前記コンピューティング・デバイスにより、前記危険なコマンドを識別することに基づいて、１つ又は複数の緩和コマンドのセットを生成することと、
前記コンピューティング・デバイスにより、前記１つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力することと、
を含み、前記１つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドによりもたらされる危険のレベルを低下させる、方法。
【請求項２】
前記通信フローを監視することは、前記産業処理システムの一部として実装されるマスター計算システム、産業コントローラ、及び物理デバイスの間で送られるコマンド及び前記コマンドへの応答を監視することを含む、請求項１に記載の方法。
【請求項３】
前記危険なコマンドは、複数のコマンドのセットである、請求項１又は請求項２に記載の方法。
【請求項４】
前記１つ又は複数の緩和コマンドのセットを出力することは、前記１つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断することを含む、請求項１から請求項３のいずれか１項に記載の方法。
【請求項５】
前記１つ又は複数の緩和コマンドのセットを出力することは、前記１つ又は複数の緩和コマンドのセットを出力すべき時間又は遅延を判断することを含む、請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記危険なコマンドを識別することは、前記危険なコマンドが、同じタイプの以前のコマンドのデータとは履歴的に異なるデータを含むと判断することを含む、請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
複数の危険なコマンドを識別することと、
前記複数の危険なコマンドの各々と関連付けられた予測される危険のレベルに基づいて、前記複数の危険なコマンドをランク付けすることと、
をさらに含む、請求項１から請求項６のいずれか１項に記載の方法。
【請求項８】
前記危険なコマンド、又は前記危険なコマンドと関連付けられた危険な状況を識別する警告を出力することをさらに含む、請求項１から請求項７のいずれか１項に記載の方法。
【請求項９】
前記１つ又は複数の緩和コマンドのセットを生成することは、前記シミュレーションを用いて候補コマンドの影響を予測することを含み、前記１つ又は複数の緩和コマンドのセットは、前記候補コマンドの前記予測結果に基づく、請求項１から請求項８のいずれか１項に記載の方法。
【請求項１０】
プログラム命令を含むコンピュータ・プログラムであって、前記プログラム命令は、
コンピューティング・デバイスにより実行可能であり、かつ前記コンピューティング・デバイスに、
産業処理システム内のコマンドを観察させ、
１つ又は複数の観察されたコマンドのセットについての危険レベルを、前記１つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断させ、
前記危険レベルが特定の閾値を下回るとき、前記１つ又は複数の観察されたコマンドのセットの妥当性を確認させ、
前記危険レベルが前記閾値に等しいか又はそれを上回るとき、前記１つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断させ、
前記１つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断することに基づいて、１つ又は複数の緩和コマンドのセットを生成させ、
前記１つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力させ、前記１つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドのセットによりもたらされる危険のレベルを低下させる、コンピュータ・プログラム。
【請求項１１】
前記シミュレーション・モデルは、
離散シミュレーション・モデル、
連続的シミュレーション・モデル、
代数シミュレーション・モデル、
確率論的シミュレーション・モデル、
決定論的シミュレーション・モデル、
動的システム・シミュレーション・モデル、
ローカル又は分散型シミュレーション・モデル、
のうちの少なくとも１つを含む、請求項１０に記載のコンピュータ・プログラム。
【請求項１２】
前記１つ又は複数の緩和コマンドのセットを出力することは、前記１つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断することを含む、請求項１０又は請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
前記１つ又は複数の緩和コマンドのセットを出力することは、前記１つ又は複数の緩和コマンドのセットを出力すべき時間又は遅延を判断することを含む、請求項１０から請求項１２のいずれか１項に記載のコンピュータ・プログラム。
【請求項１４】
前記１つ又は複数の観察されるコマンドが前記危険なコマンドのセットであると判断することは、前記１つ又は複数の観察されるコマンドが、同じタイプの以前のコマンドのデータとは履歴的に異なるデータを含むと判断することを含む、請求項１０から請求項１３のいずれか１項に記載のコンピュータ・プログラム。
【請求項１５】
プログラム命令を含むコンピュータ・プログラムであって、前記プログラム命令は、
コンピューティング・デバイスにより実行可能であり、かつ前記コンピューティング・デバイスに、請求項１から請求項９のいずれか１項に記載の方法を実行させる命令を含む、コンピュータ・プログラム。
【請求項１６】
ＣＰＵ、コンピュータ可読メモリ、及びコンピューティング・デバイスと関連付けられたコンピュータ可読ストレージ媒体と、
産業処理システム内のコマンドを観察するためのプログラム命令と、
１つ又は複数の観察されたコマンドのセットについての危険レベルを、前記１つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断するためのプログラム命令と、
前記危険レベルが特定の閾値に等しいか又はそれを上回るとき、前記１つ又は複数の観察されたコマンドのセットが危険なコマンドのセットであると判断するためのプログラム命令と、
前記１つ又は複数の観察されたコマンドのセットが前記危険なコマンドのセットであると判断することに基づいて、１つ又は複数の緩和コマンドのセットを生成するためのプログラム命令と、
前記シミュレーション・モデルを用いて、前記１つ又は複数の緩和コマンドのセットの前記影響を予測するためのプログラム命令と、
前記予測される影響に基づいて、前記１つ又は複数の緩和コマンドのセットを修正するためのプログラム命令と、
前記修正された１つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力するためのプログラム命令と、
を含み、前記修正された１つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドのセットによりもたらされる危険のレベルを低下させ、
前記プログラム命令は、前記コンピュータ可読メモリを介して、前記ＣＰＵによる実行のために前記コンピュータ可読ストレージ媒体上に格納される、システム。
【請求項１７】
前記修正された１つ又は複数の緩和コマンドのセットを出力するための前記プログラム命令は、前記１つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断するためのプログラム命令を含む、請求項１６に記載のシステム。
【請求項１８】
ＣＰＵ、コンピュータ可読メモリを具備するシステムであって、
請求項１から請求項９のいずれか１項に記載の各ステップをコンピューティング・デバイスによる手段として構成した、システム。
【請求項１９】
コンピュータ実装方法であって、
コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと、
前記コンピューティング・デバイスにより、前記通信フローを監視することに基づいて危険なコマンドを識別することと、
前記コンピューティング・デバイスにより、前記危険なコマンドを識別することに基づいて、１つ又は複数の緩和コマンドのセットを生成することと、
前記コンピューティング・デバイスにより、前記１つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力することと、
を含み、前記１つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドによりもたらされる危険のレベルを低下させる、方法。
【請求項２０】
前記通信フローを監視することは、前記産業処理システムの一部として実装されるマスター計算システム、産業コントローラ、及び物理デバイスの間で送られるコマンド及び前記コマンドへの応答を監視することを含む、請求項１９に記載の方法。
【請求項２１】
前記危険なコマンドは、複数のコマンドのセットである、請求項１９又は請求項２０に記載の方法。
【請求項２２】
前記１つ又は複数の緩和コマンドのセットを出力することは、前記１つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断することを含む、請求項１９から請求項２１のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、産業プロセス・システムに関し、より特定的には、産業プロセス・システムにおいて、悪意のある又は意図しないコマンドによってもたらされる危険な状況（hazardous condition）を緩和することに関する。
【背景技術】
【０００２】
今日の大規模な産業プロセスは、マスター計算システム（mastercompute system）から始まり、次に、産業コントローラ（例えば、プログラム可能論理コントローラ（ＰＬＣ）など）と通信し、次いで、マシン制御、環境センサ、電動弁等のような特定のデバイスと通信する、システムの階層により制御される。複雑な産業プロセスの例として、原子力、水力、及び化石燃料発電所の生成、石油採掘及び精製、化学薬品製造、製薬、給水及び水処理システム、洪水制御システム等が挙げられる。マスター計算システムと産業コントローラとの間、及び、産業コントローラと産業コントローラにより制御され、そこから測定値を取得する物理デバイスとの間に、セキュリティは殆ど存在しない。産業処理システムにおける通信の変更、挿入、又は中断は、（例えば、ハッカーにより）比較的容易に達成され、著しい物理的損傷又は損害をもたらすことがある。また、特定のコマンドが、産業処理システム内に意図せずに又は偶発的にインジェクトされることがある。産業処理システムにおける障害の例は、比較的頻繁になっている。例えば、悪意のあるコマンドが、内部ネットワークを通じて又は外部ネットワーク（例えば、クラウド・ネットワーク）を介して産業処理システムにインジェクトされることがある。
【０００３】
現在、コントローラからの個々のコマンドは、それぞれの妥当性に関してチェックされている。一例として、コマンドが、反応容器の温度を２つの予め決められた点の間に設定するか又は予め決められた閾値未満に設定するかを決定するために、チェックが実施される。しかしながら、正当な（個々の）値だけを用いても、複雑なシステム内で軽微な障害及び壊滅的な障害の両方がもたらされることがある。例えば、特定の値は、その全体が利用されるとき、値のセット（その各々は、それ自体としては正当である）が、システム内の１つ又は複数のコンポーネントに適用される。つまり、悪意のあるコマンドさえ、指定されたパラメータの範囲内でコマンドがデバイスを制御することができる（例えば、コマンドが、通常の動作条件又は動作角の範囲内で弁を開閉できる）という点で、「有効」であり得る。しかしながら、有効なコマンドでさえ、コマンドの適用から数時間後に、障害を引き起こす可能性がある。マスター制御システムが、障害の値のセット又はコマンドを送ることはなくても、コントローラ及びその通信ネットワークはハッカー行為をこうむりやすく、結果として通信パケット及び／又は産業コントローラ自身の変更がもたらされる。
【０００４】
この問題は、現在の産業プロセスに影響を及ぼし、障害が死亡及び／又は著しい物的損害を引き起こし得る重要なインフラストラクチャ・システムにおいて特に深刻である。悪意のあるコマンドの影響が、数時間又は数日間、明らかにならないことがある。例えば、毎時、１ポンド毎平方インチ（ＰＳＩ）の上昇による反応容器の圧力制限設定値を較正するためのコマンドは、反応容器が爆発するまで２週間かかり得る。ハッカーがマスター計算システム及び／又は産業コントローラを損なうことがあるので、外部観察及び訂正システムは、産業処理システムに対する悪意のある攻撃の壊滅的な影響を防止することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
産業処理システムにおいて、悪意のある又は意図しないコマンドによってもたらされる危険な状況を緩和するためのシステム、方法及び／又はコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の１つの態様において、コンピュータ実装方法が、コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと；コンピューティング・デバイスにより、通信フローを監視することに基づいて危険なコマンド（hazardous command）を識別することであって、危険なコマンドを識別することは、シミュレーションへの入力として通信フローを用いてシミュレーションを実行することを含む、識別することと；コンピューティング・デバイスにより、危険なコマンドを識別することに基づいて１つ又は複数の緩和コマンドのセットを生成することと；コンピューティング・デバイスにより、１つ又は複数の緩和コマンドのセットを産業処理システム内のコンポーネントに出力することとを含み、１つ又は複数の緩和コマンドのセットを出力することは、危険なコマンドが引き起こす危険のレベルを低下させる。更に別の態様において、通信フローを監視することは、産業処理システムの一部として実装されるマスター計算システム、産業コントローラ、及び物理デバイスの間で送られるコマンド及びコマンドへの応答を監視することを含む。更に別の態様において、１つ又は複数の緩和コマンドのセットを生成することは、シミュレーションを用いて候補コマンドの影響を予測することを含み、１つ又は複数の緩和コマンドのセットは、候補コマンドの予測結果に基づく。
【０００７】
本発明の１つの態様において、プログラム命令がその上に具体化されたコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品がある。プログラム命令は、コンピューティング・デバイスにより実行可能であり、かつコンピューティング・デバイスに、産業処理システム内のコマンドを観察させ、１つ又は複数の観察されたコマンドのセットについての危険レベルを、１つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断させ、危険レベルが特定の閾値を下回るとき、１つ又は複数の観察されたコマンドのセットの妥当性を確認させ、危険レベルが閾値に等しいか又はそれを上回るとき、１つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断させ、１つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断することに基づいて、１つ又は複数の緩和コマンドのセットを生成させ、１つ又は複数の緩和コマンドのセットを産業処理システム内のコンポーネントに出力させ、１つ又は複数の緩和コマンドのセットを出力することは、危険なコマンドのセットによりもたらされる危険レベルを低下させる。更に別の態様において、１つ又は複数の緩和コマンドのセットを出力するとき、プログラム命令は、コンピューティング・デバイスに、１つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断させる。更に別の態様において、１つ又は複数の観察されるコマンドが危険なコマンド・セットであると判断することは、１つ又は複数の観察されるコマンドが同じタイプの以前のコマンドとは履歴的に異なるデータを含むと判断することを含む。
【０００８】
本発明の１つの態様において、システムは、ＣＰＵ、コンピュータ可読メモリ、及びコンピューティング・デバイスと関連付けられたコンピュータ可読ストレージ媒体とを含む。システムはまた、産業処理システム内のコマンドを観察するためのプログラム命令と；１つ又は複数の観察されたコマンドのセットについての危険レベルを、１つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断するためのプログラム命令と；危険レベルが特定の閾値に等しいか又はそれを上回るとき、１つ又は複数の観察されたコマンドのセットが危険なコマンドのセットであると判断するためのプログラム命令と；１つ又は複数の観察されたコマンドのセットが危険なコマンドのセットであると判断することに基づいて、１つ又は複数の緩和コマンドのセットを生成するためのプログラム命令と；シミュレーション・モデルを用いて１つ又は複数の緩和コマンドのセットの影響を予測するためのプログラム命令と；予測される影響に基づいて、１つ又は複数の緩和コマンドのセットを修正するためのプログラム命令と；修正された１つ又は複数の緩和コマンドのセットを産業処理システム内のコンポーネントに出力するためのプログラム命令とを含み、修正された１つ又は複数の緩和コマンドのセットを出力することは、危険なコマンドのセットがもたらす危険レベルを低下させる。プログラム命令は、コンピュータ可読メモリを介して、ＣＰＵによる実行のためにコンピュータ可読ストレージ媒体上に格納される。更に別の態様において、１つ又は複数の緩和コマンドのセットを出力することは、１つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断することを含む。
【０００９】
本発明の１つの態様において、コンピュータ実装方法は、コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと；コンピューティング・デバイスにより、通信フローを監視することに基づいて危険なコマンドを識別することと；コンピューティング・デバイスにより、危険なコマンドを識別することに基づいて、１つ又は複数の緩和コマンドのセットを生成することと；コンピューティング・デバイスにより、１つ又は複数の緩和コマンドのセットを産業処理システム内のコンポーネントに出力することとを含み、１つ又は複数の緩和コマンドのセットを出力することは、危険なコマンドによりもたらされる危険のレベルを低下させる。更に別の対応において、通信フローを監視することは、産業処理システムの一部として実装されるマスター計算システム、産業コントローラ、及び物理デバイスの間で送られるコマンド及びコマンドへの応答を監視することを含む。
【００１０】
本発明は、本発明の例示的な実施形態の限定されない例として示される複数の図面を参照して、以下の詳細な説明に記載される。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態によるクラウド・コンピューティング・ノードを示す。
【図２】本発明の実施形態によるクラウド・コンピューティング環境を示す。
【図３】本発明の実施形態による抽象化モデル層を示す。
【図４】本発明の実施形態による例示的な産業処理システムの概要を示す。
【図５】本発明の実施形態による例示的な環境を示す。
【図６】本発明の実施形態による危険コマンド緩和サーバの例示的なコンポーネントのブロック図を示す。
【図７】本発明の実施形態による産業処理システムにおける危険な状況を緩和するための例示的プロセスの図を示す。
【図８】本発明の実施形態による産業処理システムにおける危険な状況を緩和するための例示的フローチャートを示す。
【発明を実施するための形態】
【００１２】
本発明は、一般に、産業処理システムに関し、より特定的には、産業処理システムにおいて、悪意のある又は意図しないコマンド又は通信フローによってもたらされる危険な状況を緩和させることに関する。本発明の態様は、産業処理システム内で送られる通信フロー（例えば、コマンド又はコマンド応答）を観察し、産業処理システムのシミュレーション・モデルを通じてコマンドを処理し、危険な状況（ごく近い将来又は近い将来に、物理的インフラストラクチャの故障をもたらし得る状態）を識別するためのシステム、及び／又は方法を含む。本発明の態様はさらに、緩和コマンド（mitigating command）を送って、インジェクション・ポイント（インジェクションＴＡＰとも呼ばれる）を通じて以前のコマンドを打ち消すことによって、危険な状況を緩和する。実施形態において、緩和コマンドは、産業処理システムにインジェクトされる悪意のあるコマンド又は意図しないコマンドなどの危険なコマンドの影響を打ち消す。実施形態において、緩和コマンドはまた、内部ネットワーク又は外部ネットワーク（例えば、クラウド・ネットワーク）を介して、悪意あるパーティによりインジェクトされる危険なコマンドの影響も打ち消す。本明細書で説明される場合、「コマンド」という用語は、命令、通信フロー、又は産業処理システム内のコンポーネント間（例えば、マスター・コンピュータ・システム、産業コントローラ及び個々の物理デバイス間）の応答を指すことができる。
【００１３】
本発明の態様によると、システム及び／又は方法は、危険な状況を打ち消す又は緩和するために、インジェクションＴＡＰ緩和コマンドを（例えば、マスター制御装置、産業コントローラ、及び／又はデバイスへ）送るべき、産業処理システム内の場所（例えば、特定のコンポーネント）を決定することができる。さらに、システム及び／又は方法は、危険な状況をもたらすコマンド（例えば、悪意のあるコマンド、偶発的に生成されたコマンド等）の影響を十分に打ち消すために、特定のインジェクションＴＡＰ緩和コマンドを決定することができる。さらに、システム及び／又は方法は、緩和コマンドがいつ所望の効果を有するか、及び緩和コマンドをいつインジェクトするか（例えば、緩和コマンドを時間の経過と共に広めるか、又は全ての緩和コマンドを即座に送るか）を決定することができる。
【００１４】
本発明の態様によると、１つ又は複数の緩和コマンドは、危険な状況をトリガしたデバイスにインジェクト若しくは出力されることも、又はインジェクト若しくは出力されないこともある。代替的な実施形態において、危険な状況の識別をトリガした観察の後に、（例えば、数分間又は数時間など）遅延させて１つ又は複数の緩和コマンドをインジェクトすることができる。実施形態において、１つ又は複数の緩和コマンドのインジェクションは、危険な状況を意図的に完全には緩和しない場合もある。
【００１５】
実施形態において、緩和アクションは、現在の状況又はシステムの状態に基づいて、動的に起こすことができ、単なるｉｆ／ｔｈｅｎ規則構成よりもローバスト（robust）である。例えば、本発明の態様は、侵入防止システム（ＩＰＳ）、データ損失防止（ＤＬＰ）、ウェブ・コンテンツ・フィルタリング（ＷＣＦ）、及びｉｆ／ｔｈｅｎ規則を単に実施する同様の検査及び緩和技術よりもローバストである。本発明の態様は、悪意のあるコマンドによりもたらされる危険な状況の拡散に対してとるべき最良のアクションに基づいて、緩和アクション／コマンドをリアルタイムで実施すること、又は遅延させて緩和アクションを実施することができる。さらに、本発明の実施は、危険な状況の拡散に対する緩和コマンドを決定するために、複数の異なる変数の集合、システム構成、及びシナリオを考慮できるので、本発明の態様は、ｉｆ／ｔｈｅｎ規則の実施よりもローバストである。
【００１６】
説明に役立つ実例として、反応容器上で温度設定を２０℃だけ高めるためにコマンドを観察すると仮定する。本発明の態様によると、コマンドは、シミュレーション・モデルを通じて処理される。シミュレーション・モデルは、コマンドがシステムにインジェクトされてから５時間後に危険な状況又は状態（例えば、爆発又はシステム・コンポーネントへの損傷）をもたらすことを示すと仮定する。この仮定が与えられた場合、シミュレーション・モデルの結果に基づいて、危険な状況が識別され、緩和コマンドのセットが決定される。一例として、緩和コマンドは、温度設定を（例えば、５℃だけ）下げること、一定期間（例えば、１時間）待つこと、温度が特定の閾値（例えば、２３７℃）より高い場合に温度設定を更なる量（例えば、５℃）下げること、特定の量の特定の溶液を反応容器に導入すること（例えば、１，０００ガロンのＨ２ＳＯ４）、及び特定の期間、別のデバイスを（例えば、１５分間、攪拌機を）アクティブにすることを含むことができる。
【００１７】
上記の例に説明されるように、緩和コマンドは、単なるｉｆ／ｔｈｅｎ規則の場合のように、単に温度設定を２０℃だけ下げるためのものではない。上記の例において、温度を下げ（緩和アクションの一部として）、危険なコマンドにより以前に設定されたシステムの温度設定点を無効にする（reverse）ことができる。しかしながら、上記の例に説明されるように、適切な緩和は、単に危険なコマンドを無効にするのではなく、どちらかと言えば、危険なコマンドによりもたらされる危険の影響を低減又は排除するための、種々の他のアクションを含む。
【００１８】
別の例として、危険なコマンドが識別されると仮定する（例えば、１，０００単位のＮＡＣＬを反応容器に加えるためのコマンド）。この例において、温度が１００℃未満の場合、２，０００単位のＨ２Ｏを加えることができるが、温度が１００℃より高い場合、５０単位のＨＣＬを加えることができる。本明細書で説明されるように、シミュレーション・モデルを用いて、緩和コマンドの決定を助けることができる（例えば、シミュレーション・モデルを用いて、危険な状況を識別することに加えて）。上記の例において、１，０００単位のＮＡＣＬを「減算すること」、従って、現在のセキュリティ・プロトコルで使用されるように、単なるｉｆ／ｔｈｅｎ規則が実施されることによって、危険なコマンドを単に無効にすることはできない。有利なことに、本発明の態様は、産業制御システムにおける安全及びセキュリティを改善し、負傷、死亡、物的損壊、正常な活動の中断等を防止し、従来のシステムに対して著しい価値及び利点を与える。
【００１９】
本発明の態様は、産業制御システムにおけるセキュリティの問題に対する技術的解決法を提供する。例えば、本発明の態様は、コマンドからのデータを分析し、異なるタイプのデバイスにより与えられるコマンドを正規化し、正規化されたコマンド・データに対して技術的シミュレーション・モデルを実施して、危険な状況を判断する。本明細書で説明されるように、重み付けアルゴリズムを用いて、コマンドが「危険な」コマンド（例えば、危険な状況をもたらすコマンド）であるかどうかを判断することができる。本発明の態様は、リアルタイム・コマンドを過去のコマンドと比較し、比較に基づいて潜在的な危険なコマンドを識別することによって、コマンド・データを処理する。本発明の態様は、コマンド及びコマンドの予測結果の危険レベルを示す、コマンドのセットについての重み又はスコアを生成する。本発明の態様は、現在の動作状態を識別するデータのセット、システム構成、リアルタイムのコマンドの予測される影響に基づいて、緩和コマンドを決定することによって、技術的解決法を生成する。さらに、本発明の態様は、予測される危険なシナリオを緩和又は拡散し、予測される危険なシナリオに関して現場の人員に警告するために、産業処理システムにおいて緩和コマンドをインジェクトする。本発明の態様は、コマンドを監視し、コマンドの予測される影響を判断することによって、コマンド内のデータの完全性を有効に実証し、又はデータの不適切な変更（例えば、悪意のある攻撃者による又は偶発的変更による）を検出する。例えば、コマンドが危険な結果をもたらす場合、この危険な結果の検出が、積極的に識別され、緩和される。
【００２０】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【００２１】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令が記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って伝搬される電気信号などの、一時的信号自体として解釈されない。
【００２２】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び／又は無線ネットワークなどのネットワークを介して、外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【００２３】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、又は、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化して本発明の態様を実施することにより、コンピュータ可読プログラム命令を実行することができる。
【００２４】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００２５】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を製造するようにすることもできる。
【００２６】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【００２７】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。フローチャート図の各ブロック、及びフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【００２８】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書において挙げられる教示の実装はクラウド・コンピューティング環境に限定されないことが、前もって理解される。それどころか、本発明の実施形態は、現在既知の又は後に開発される他のいずれかのタイプのコンピューティング環境とともに実装することが可能である。
【００２９】
クラウド・コンピューティングは、最小限の管理努力又はサービス・プロバイダとの対話で迅速に供給及び解放することができる構成変更可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス）の共有プールに対するオンデマンドの便利なネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、及び少なくとも４つの展開モデルを含むことができる。
【００３０】
特徴は、以下の通りである。
・オンデマンドのセルフサービス：クラウド・コンシューマは、サーバ時間及びネットワーク・ストレージといったコンピューティング能力を、必要に応じて、人間がサービスのプロバイダとやりとりする必要なく自動的に、一方的に供給することができる。
・広範なネットワーク・アクセス：能力は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、及びＰＤＡ）による使用を促進する標準的な機構を通じてアクセスされる。
・リソースのプール化：プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、複数のコンシューマにサービスを提供するようにプールされ、異なる物理及び仮想リソースは、要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な場所に関する制御又は知識を有していないが、高いレベルの抽象概念（例えば、国、州、又はデータセンタ）で場所を指定できる場合があるという点で、場所独立ということができる。
・迅速な弾力性：能力は、迅速且つ弾力的に、場合によっては自動的に供給して素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとっては、供給するために利用可能な能力は、無制限に見えることが多く、いつでもどんな量でも購入することができる。
・計測されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント）に適した何らかの抽象化のレベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用は、利用されるサービスのプロバイダとコンシューマの両方にとって透明性をもたらすように、監視し、制御し、報告することができる。
【００３１】
サービス・モデルは以下の通りである。
・サービスとしてのソフトウェア（ＳａａＳ）：コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース（例えば、ウェブ・ベースの電子メール）を通じて、種々のクライアント・デバイスからアクセス可能である。限定されたユーザ特有のアプリケーション構成設定を可能な例外として、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション能力をも含む基盤となるクラウド・インフラストラクチャを管理又は制御しない。
・サービスとしてのプラットフォーム（ＰａａＳ）：コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成される、コンシューマが作成又は獲得したアプリケーションを、クラウド・インフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基盤となるクラウド・インフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成を、制御する。
・サービスとしてのインフラストラクチャ（ＩａａＳ）：コンシューマに提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースを供給することであり、ここで、コンシューマは、オペレーティング・システム及びアプリケーションを含むことができる任意のソフトウェアを展開して動作させることができる。コンシューマは、基盤となるクラウド・インフラストラクチャを管理及び制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、及び場合によっては選択されたネットワーク・コンポーネント（例えば、ホストのファイアウォール）の限定的な制御を、制御する。
【００３２】
展開モデルは以下の通りである。
・プライベート・クラウド：クラウド・インフラストラクチャは、ある組織のためだけに稼動される。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
・コミュニティ・クラウド：クラウド・インフラストラクチャは、幾つかの組織によって共有され、関心事項（例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアン上の考慮事項）を共有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
・パブリック・クラウド：クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループが利用できるようにされており、クラウド・サービスを販売する組織によって所有される。
・ハイブリッド・クラウド：クラウド・インフラストラクチャは、固有のエンティティを残しているが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術（例えば、クラウド間の負荷分散のためのクラウド・バースティング）によって結び付けられている２つ又はそれより多いクラウド（プライベート、コミュニティ、又はパブリック）の組み合わせである。
クラウド・コンピューティング環境は、サービス指向であり、ステートレスであること（statelessness）、疎結合性(low coupling)、モジュール性(modularity)、および意味的相互運用性 (semanticinteroperability)に焦点をおいている。クラウド・コンピューティングの中心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００３３】
ここで図１を参照すると、クラウド・コンピューティング・ノードの一例の概略図が、図１に示される。クラウド・コンピューティング・ノード１０は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される本発明の実施形態の使用又は機能の範囲に関していずれかの限定を示唆することを意図するものではない。いずれにせよ、クラウド・コンピューティング・ノード１０は、上述された機能のいずれかを実装及び／又は実施することができる。
【００３４】
クラウド・コンピューティング・ノード１０において、多数の他の汎用又は専用コンピューティング・システム環境若しくは構成で動作可能なコンピュータ・システム／サーバ１２がある。コンピュータ・システム／サーバ１２と共に使用するのに好適であり得る周知のコンピューティング・システム、環境、及び／又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
【００３５】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ１２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境内で実施することができる。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔の両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
【００３６】
図１に示されるように、クラウド・コンピューティング・ノード１０内のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム／サーバ１２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット１６、システム・メモリ２８、及び、システム・メモリ２８を含む種々のシステム・コンポーネントをプロセッサ１６に結合するバス１８を含むことができる。
【００３７】
バス１８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び、種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ（ＰＣＩ）バスを含む。
【００３８】
コンピュータ・システム／サーバ１２は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１２がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不可能媒体の両方とを含む。
【００３９】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０及び／又はキャッシュ・メモリ３２といった、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不可能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不可能の不揮発性磁気媒体（図示されておらず、典型的には「ハード・ドライブ」と呼ばれる）との間の読み出し及び書き込みのために、ストレージ・システム３４を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピィ・ディスク」）との間の読み出し及び書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、各々は、１つ又は複数のデータ媒体インターフェースによってバス１８に接続することができる。以下でさらに示され、説明されるように、メモリ２８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００４０】
限定ではなく例として、メモリ２８内に、プログラム・モジュール４２の組（少なくとも１つ）を有するプログラム／ユーティリティ４０、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを、格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの幾つかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール４２は、一般に、本明細書において説明される本発明の実施形態の機能及び／又は方法を実行する。
【００４１】
コンピュータ・システム／サーバ１２はまた、キーボード、ポインティング・デバイス、ディスプレイ２４などといった１つ又は複数の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つ又は複数のデバイス、及び／又は、コンピュータ・システム／サーバ１２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデムなど）と通信することができる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと、ネットワーク・アダプタ２０を介して通信することができる。示されるように、ネットワーク・アダプタ２０は、コンピュータ・システム／サーバ１２の他のコンポーネントと、バス１８を介して通信する。図示されないが、コンピュータ・システム／サーバ１２とともに他のハードウェア及び／又はソフトウェア・コンポーネントを使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが挙げられる。
【００４２】
ここで図２を参照すると、例示的なクラウド・コンピューティング環境５０が示される。示されるように、クラウド・コンピューティング環境５０は、例えば携帯情報端末（ＰＤＡ）又は携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、及び／又は自動車コンピュータ・システム５４Ｎなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスが通信することができる、１つ又は複数のクラウド・コンピューティング・ノード１０を含む。ノード１０は、互いに通信することができる。これらは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくは上述のハイブリッド・クラウド、又はこれらの組み合わせなどの１つ又は複数のネットワーク内で、物理的又は仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境５０は、インフラストラクチャ、プラットフォーム、及び／又はソフトウェアを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、提供できるようになる。コンピューティング・デバイス５４Ａ−Ｎのタイプは単なる例示であるように意図されており、コンピューティング・ノード１０及びクラウド・コンピューティング環境５０は、あらゆるタイプのコンピュータ化された装置、及び、あらゆるタイプのネットワーク及び／又はネットワーク・アドレス指定可能な接続（例えば、ウェブ・ブラウザを用いて）と通信できることが理解される。
【００４３】
ここで図３を参照すると、クラウド・コンピューティング環境５０によって提供される機能抽象化層のセットが示される。図３に示されるコンポーネント、層、及び機能は単なる例示であるように意図されており、本発明の実施形態はそれらに限定されないことを予め理解されたい。示されるように、以下の層及び対応する機能が提供される。
【００４４】
ハードウェア及びソフトウェア層６０は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例として、メインフレーム６１と、ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ６２と、サーバ６３と、ブレード・サーバ６４と、ストレージ・デバイス６５と、ネットワーク及びネットワーク・コンポーネント６６と、が挙げられる。幾つかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７、及びデータベース・ソフトウェア６８を含む。
【００４５】
仮想化層７０は、仮想エンティティの以下の例、即ち、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーション及びオペレーティング・システム７４、並びに仮想クライアント７５を提供することができる、抽象化層を提供する。
【００４６】
一例においては、管理層８０は、以下で説明される機能を提供することができる。リソース供給（provisioning）は、クラウド・コンピューティング環境内でタスクを行うのに利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定８２は、クラウド・コンピューティング環境内でリソースが用いられる際のコスト追跡と、これらのリソースの消費にかかる課金又は請求とを提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別情報の検証と、データ及び他のリソースの保護とを提供する。ユーザ・ポータル８３は、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８４は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント（ＳＬＡ）計画及び履行８５は、ＳＬＡによって将来の必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【００４７】
ワークロード層９０は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。ワークロード層及びこの層から提供できる機能の例として、マッピング及びナビゲーション９１、ソフトウェア開発及びライフサイクル管理９２、仮想教室教育配信９３、データ分析処理９４、トランザクション処理９５、及び危険緩和コンポーネント９６が含まれる。
【００４８】
再び図１を参照すると、プログラム／ユーティリティ４０が、一般的に、本明細書で説明されるような本発明の実施形態の機能及び／又は方法を実行する１つ又は複数のプログラム・モジュール４２を含むことができる。具体的には、プログラム・モジュール４２は、マスター計算システム及び産業コントローラから出力されたコマンドを監視／観察し、コマンドを正規化及び格納し、正規化したコマンド・データを用いて特定のコマンドについてのシミュレーション・モデルを生成し、シミュレーション・モデルの結果及び／又は過去のコマンドに基づいて危険な状況を識別し、緩和コマンド及び警告を生成し、緩和コマンド及び警告を出力することができる。プログラム・モジュール４２の他の機能が本明細書にさらに説明され、プログラム・モジュール４２は、上述の機能に限定されない。さらに、モジュール４２の一部を、図１〜図３に示されるインフラストラクチャ内に実装することができる。例えば、モジュール４２は、図４の危険緩和コンポーネント９６を表すことができる。
【００４９】
図４は、本発明の態様による例示的な産業処理システム内のコンポーネントの概要を示す。図４に示されるように、産業処理システム２００は、マスター・コンピュータ・システム２１０が産業コントローラ２２０と通信し、次にデバイス２３０と通信する、階層の形に編成される。代替的に、マスター計算システム２１０は、産業コントローラ２２０に関与することなく、デバイス２３０と直接通信することができる。実施形態において、産業処理システム２００は、図４に示されるものより少ない又は異なるように配置された付加的なコンポーネントを含むことができる。
【００５０】
図５は、本発明の態様による例示的な環境を示す。図５に示されるように、環境３００は、マスター計算システム２１０、産業コントローラ２２０、物理デバイス２３０、危険コマンド緩和サーバ２４０、及びネットワーク２６０を含むことができる。実施形態において、環境３００内の１つ又は複数のコンポーネントは、図２のクラウド・コンピューティング環境内の１つ又は複数のコンポーネントに対応し得る。
【００５１】
マスター計算システム２１０は、マスター・コマンドを産業コントローラ２２０に出力する１つ又は複数のコンピューティング・デバイス（例えば、サーバ・デバイス、メインフレーム等）を含むことができる。一例として、マスター・コマンドは、反応チャンバ(reaction chamber)の温度を上げる又は下げるといった、上位の一般的コマンドである。実施形態において、マスター計算システム２１０は、制御コマンドを生成し、産業コントローラ２２０の関与なしに、制御コマンドを物理デバイス２３０に直接出力する。本明細書で説明されるように、マスター計算システム２１０は、危険コマンド緩和サーバ２４０から緩和コマンドを受け取り、緩和コマンドを、産業コントローラ２２０に、及び／又は直接物理デバイス２３０に出力する。
【００５２】
産業コントローラ２２０は、産業コントローラ２２０によるマスター・コマンド出力を解釈し、マスター・コマンドを特定の物理デバイス２３０のための制御コマンドに変換し、制御コマンドを特定の物理デバイス２３０に出力する、１つ又は複数のコンピューティング・デバイスを含むことができる。一例として、マスター計算システム２１０からのマスター・コマンドは、産業コントローラ２２０に、反応容器の温度を上げるように指示する。この状況が与えられた場合、産業コントローラ２２０は、マスター・コマンドを制御コマンドに変換し、１つ又は複数の特定の物理デバイス２３０に指示し、反応容器内の弁を開閉させること、特定の溶液を反応容器に加えること、などが可能である。本明細書で説明されるように産業コントローラ２２０は、危険コマンド緩和サーバ２４０から緩和コマンドを受け取り、緩和コマンドを物理デバイス２３０に出力する。
【００５３】
物理デバイス２３０は、センサ（例えば、温度センサ、流体レベル・センサ、流体組成センサ）、弁制御、サーモスタット、暖房／換気／空調（ＨＶＡＣ）システム、ソレノイド、及び／又はマスター計算システム２１０及び／又は産業コントローラ２２０により直接的又は間接的に制御できるいずれかのタイプのデバイスを含むことができる。物理デバイス２３０は、マスター計算システム２１０、産業コントローラ２２０、及び／又は危険コマンド緩和サーバ２４０から制御コマンドを受け取り、受け取った制御コマンドを実行することができる。
【００５４】
危険コマンド緩和サーバ２４０は、マスター計算システム及び産業コントローラから出力されたコマンドを観察／監視し、コマンドを正規化及び格納し、正規化されたコマンド・データを用いて特定のコマンドについてのシミュレーション・モデルを生成し、シミュレーション・モデルの結果及び／又は履歴コマンドに基づいて危険な状況を識別し、緩和コマンド及び警告を生成し、緩和コマンド及び警告を出力する、１つ又は複数のコンピューティング・デバイスを含むことができる。実施形態において、危険コマンド緩和サーバ２４０は、危険な状況、及び危険な状況の緩和に応じて、緩和コマンドをマスター計算システム２１０、産業コントローラ２２０、及び／又は物理デバイス２３０に出力することができる。実施形態において、危険コマンド緩和サーバ２４０は、警告を、産業処理システムと関連したオペレータ又は経営幹部と関連付けられた管理デバイス２５０に出力することができる。実施形態において、危険コマンド緩和サーバ２４０は、図１のコンピュータ・システム／サーバ１２として実装することができ、本明細書で説明されるプロセスを実施するように構成されたプログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができる。
【００５５】
管理デバイス２５０は、危険コマンド緩和サーバ２４０から警告及び／又は緩和コマンドに関する情報を受け取る１つ又は複数のコンピューティング・デバイスを含むことができる。オペレータ若しくは経営幹部は、次に、警告によって識別される危険な状況の緩和を助けるための適切なアクションをとることにより、警告に従って動作することができる。
【００５６】
ネットワーク２６０は、図２のネットワーク・ノード１０のようなネットワーク・ノードを含むことができる、付加的に又は代替的に、ネットワーク２６０は、１つ又は複数の有線及び／又は無線ネットワークを含むことができる。例えば、ネットワーク２６０は、セルラー・ネットワーク（例えば、第２世代（２Ｇ）ネットワーク、第３世代（３Ｇ）ネットワーク、第４世代（４Ｇ）ネットワーク、第５世代（５Ｇ）ネットワーク、ｌｏｎｇ−ｔｅｒｍ  ｅｖｏｌｕｔｉｏｎ（ＬＴＥ）ネットワーク、ｇｌｏｂａｌ  ｓｙｓｔｅｍ  ｆｏｒ  ｍｏｂｉｌｅ（ＧＳＭ）ネットワーク、符号分割多重アクセス（ｃｏｄｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ、ＣＤＭＡ）ネットワーク、ｅｖｏｌｕｔｉｏｎ−ｄａｔａ  ｏｐｔｉｍａｉｚｅｄ（ＥＶＤＯ）ネットワーク等）、ｐｕｂｌｉｃ  ｌａｎｄ  ｍｏｂｉｌｅ  ｎｅｔｗｏｒｋ（ＰＬＭＮ）、及び／又は別のネットワークを含むことができる。付加的に又は代替的に、ネットワーク２６０は、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋ、ＰＳＴＮ）、アドホック・ネットワーク、管理インターネット・プロトコル（ＩＰ）ネットワーク、仮想プライベート・ネットワーク（ＶＰＮ）、イントラネット、インターネット、光ファイバ・ベースのネットワーク、及び／又はこれらの若しくは他のタイプのネットワークの組み合わせを含むことができる。
【００５７】
環境３００内のデバイス及び／又はネットワークの量は、図５に示されるものに限定されない。実際には、環境３００は、付加的なデバイス及び／又はネットワーク、より少ないデバイス及び／又はネットワーク、異なるデバイス及び／又はネットワーク、又は図５に示されるものとは異なるように構成されたデバイス及び／又はネットワークを含むことができる。また、幾つかの実装において、環境３００のデバイスの１つ又は複数は、環境３００のデバイスの別の１つ又は複数のデバイスにより実施されるものとして説明される１つ又は複数の機能を実施することができる。環境３００のデバイスは、有線接続、無線接続、又は有線接続と無線接続の組み合わせを介して、相互接続することができる。
【００５８】
図６は、本発明の態様による危険コマンド緩和サーバの例示的コンポーネントのブロック図を示す。図６に示されるように、危険コマンド緩和サーバ２４０は、コマンド制御監視モジュール４１０、プロトコル・デコード・モジュール４２０、履歴コマンド・リポジトリ４３０、シミュレーション・モデリング・モジュール４４０、危険コマンド識別モジュール４５０、及び応答生成モジュール４６０を含むことができる。実施形態において、危険コマンド緩和サーバ２４０は、図６に示されるものと比べて付加的なコンポーネント又は少ないコンポーネントを含んでもよい。実施形態において、別個のコンポーネントを統合して、単一のコンピューティング・コンポーネント又はモジュールにすることができる。付加的に又は代替的に、単一のコンポーネントを、複数のコンピューティング・コンポーネント又はモジュールとして実装することができる。
【００５９】
コマンド制御監視モジュール４１０は、産業処理システム内のマスター計算システム２１０及び産業コントローラ２２０によって送られるコマンドを監視（例えば、観察）するプログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができる。例えば、マスター計算システム２１０と産業コントローラ２２０との間の制御チャネル、及び、産業コントローラ２２０と物理デバイス２３０との間の制御チャネルから、監視ＴＡＰ（例えば、接続）が確立される。コマンド制御監視モジュール４１０は、監視されたコマンドを格納及び／又は出力することができる（例えば、プロトコル・デコード・モジュール４２０に）。
【００６０】
プロトコル・デコード・モジュール４２０は、マスター計算システム２１０及び産業コントローラ２２０からのコマンド・データを「正規化する」、プログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができる。例えば、マスター計算システム２１０からのマスター・コマンド及び産業コントローラ２２０からの制御コマンドは、異なる形式、ユニット、コード、プログラミング言語等のものであってもよい。プロトコル・デコード・モジュール４２０は、コマンドを正規化して、シミュレーション・モデリング・モジュール４４０により解釈可能かつ使用可能なデータ形式にすることができる。実施形態において、プロトコル・デコード・モジュール４２０は、正規化されたコマンド・データを履歴コマンド・リポジトリ４３０及び／又はシミュレーション・モデリング・モジュール４４０に出力することができる。
【００６１】
履歴コマンド・リポジトリ４３０は、コマンドが産業処理システムを通じて出力又はインジェクトされるとコマンドを格納するデータ・ストレージ・システム（例えば、図１のストレージ・システム３４）を含むことができる。履歴コマンド・リポジトリ４３０は、必要に応じて、任意の期間、コマンドを格納することができる。
【００６２】
シミュレーション・モデリング・モジュール４４０は、プロトコル・デコード・モジュール４２０から正規化されたコマンド・データを受け取る、プログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができ、マスター計算システム２１０及び／又は産業コントローラ２２０により出力された単一のコマンド又はコマンドのグループについてのシミュレーションを行うことができる。シミュレーションは、コマンドの影響を予測して、コマンドが危険なものであるかどうかを判断する。実施形態において、シミュレーション・モデリング・モジュール４４０は、離散シミュレーション・モデリング(discrete simulation modeling)、連続的モデリング(continuousmodeling)、代数モデリング(algebraic modeling)、確率論的モデリング(stochastic modeling)、決定論的モデリング(deterministicmodeling)、動的システム・シミュレーション・モデリング(dynamic systemsimulation modeling)、ローカル又は分散型モデリング(local ordistributed modeling)、及び／又は他のシミュレーション技術のような、任意の数のシミュレーション技術を使用することができる。説明に役立つ実例として、シミュレーションの結果は、溶液の温度、流体の圧力、及び／又はコマンドの他の影響を予測することができる。シミュレーションの結果は、一定期間にわたる影響（例えば、コマンドが処理された後、数分間、数時間、又は数日間の流体又はチャンバの圧力）を予測することができる。
【００６３】
実施形態において、シミュレーション・モデリング・モジュール４４０はまた、緩和コマンドの影響を予測することもできる。例えば、複数の候補緩和コマンドのセットをシミュレーション・モデリング・モジュール４４０に入力することができ、シミュレーション・モデリング・モジュール４４０は、シミュレーション・モデルを実行して、候補緩和コマンドのセットの影響を予測することができる。シミュレーション・モデリング・モジュール４４０は、シミュレーション・モデルの結果に基づいて、候補緩和コマンドを「有効」なもの又は「有効でない」ものとしてマーク付けすることができる。代替的な実施形態において、シミュレーション・モデリング・モジュール４４０は、危険な状況又は状態の拡散の際に緩和コマンドのセットが有する有効性の度合いを識別する「有効性スコア」を生成することができる。例えば、有効性スコアは、危険な状況を拡散又は緩和するための時間、緩和コマンドを実施する危険レベル等に基づくことができる。結果に基づいて、最良の予測結果を有する候補緩和コマンドのセットを選択し、産業処理システム全体にわたってインジェクトする（例えば、出力する）。
【００６４】
危険コマンド識別モジュール４５０は、シミュレーション・モデリング・モジュール４４０からのシミュレーションの結果及び履歴コマンド・リポジトリ４３０により格納される履歴コマンドに基づいて、コマンドが危険なものであるかどうかを判断する、プログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができる。実施形態において、危険コマンド識別モジュール４５０は、コマンドについての危険スコアを生成することができ、このスコアは、シミュレーションの結果及び／又は履歴コマンドに基づいて重み付けすることができる。例えば、コマンドが、履歴的に、過去の同じ時間に産業処理システムにインジェクトされなかった場合、危険コマンド識別モジュール４５０は、コマンドが以前にインジェクトされていた場合よりも重く重み付けすること又は危険スコアを増加させることができる。
【００６５】
コマンドが履歴的にインジェクトされたときから、特定のコマンドが順番通りでない場合、特定の所定の重み付け又はスコアを割り当てることができる。特定のコマンドが履歴的にインジェクト／観察されたコマンドに対して新しい場合、異なる所定の重み付け又はスコアを割り当てることができる。コマンドのコンテンツが履歴的にインジェクト／観察された典型的なコマンドとは異なる場合、異なる所定の重み付け又はスコアを割り当てることができる。実施形態において、所定の重み付けの任意の組み合わせを用いて、特定のコマンドについての危険スコアを計算することができる。さらに、コマンドについてのシミュレーションの結果を用いて（例えば、履歴コマンドとの比較と組み合わせて）、危険スコアを生成することができる。実施形態において、危険スコアが特定の閾値を上回った場合、メッセージが応答生成モジュール４６０に出力される。実施形態において、応答生成モジュール４６０は、コマンドが観察される度に、コマンドの危険を評価する（例えば、危険スコアを判定する）ことができる。付加的に又は代替的に、危険コマンド識別モジュール４５０は、要求に応じて、定期的な間隔などで、危険スコアを生成し、危険スコアを分析することができる。
【００６６】
応答生成モジュール４６０は、危険なコマンドを識別する危険コマンド識別モジュール４５０からメッセージ又は表示を受け取る、プログラム・モジュール（例えば、図１のプログラム・モジュール４２）を含むことができる。応答生成モジュール４６０は、危険なコマンドの影響を打ち消す又は緩和するために緩和コマンドを生成することができる。実施形態において、応答生成モジュール４６０は、危険なコマンドと関連付けられたシミュレーション・モデルから生じる結果に基づいて、緩和コマンドを生成することができる。例えば、応答生成モジュール４６０は、シミュレーション・モデルからのデータにより識別されるような予測される影響を打ち消すために緩和コマンドを生成することができる。実施形態において、応答生成モジュール４６０は、シミュレーション・モデリング・モジュール４４０と通信して、シミュレーション・モデルを生成し、候補緩和コマンドのセットの影響を予測することができる。
【００６７】
応答生成モジュール４６０は、予測される結果が最も好適な（例えば、危険なコマンドの影響を最も有効に緩和する）候補緩和コマンドのセットを選択することができる。例えば、応答生成モジュール４６０は、危険なコマンドの影響を最も迅速かつ安全に緩和する候補緩和コマンドのセットを選択することができる。代替的な実施形態において、応答生成モジュール４６０は、コスト変数に基づいて、候補緩和コマンドのセットを選択することができる（例えば、コストが最小であり、生じる無駄が最も少なく、最速であり、最も安全なコマンドのセットの組み合わせが選択される）。代替的な実施形態において、応答生成モジュール４６０は、同様のタイプの危険に対して以前に使用された緩和コマンドに基づいて、緩和コマンドを生成することができる。代替的な実施形態において、応答生成モジュール４６０は、特定のタイプの危険に対する所定のコマンドのセットに基づいて、緩和コマンドを生成することができる。
【００６８】
代替的な実施形態において、オペレータは、緩和コマンドのセットを手作業で生成することができ、又は応答生成モジュール４６０により生成された緩和コマンドのセットを修正することができる。実施形態において、緩和コマンドを用いて、特定の時間において特定のデバイスを制御し、危険なコマンドの影響を緩和することができる。緩和コマンドは、遅延、条件付き規則等を含むことができる。緩和コマンドについてのシミュレーションの結果を用いて、緩和コマンドを調整すること（例えば、コマンドの順序、コマンドのコンテンツ、コマンドの遅延等を調整すること）が可能である。
【００６９】
図７は、本発明の態様による産業処理システムにおいて危険な状況を緩和するための例示的なプロセスの図を示す。図７に示されるように、マスター計算システム２１０は、コマンドを産業コントローラ２２０に出力し、危険コマンド緩和サーバ２４０は、観察ＴＡＰ１．１を介して、コマンド及び通信フローを観察する（例えば、監視する）。例えば、プロトコル・デコード・モジュール４２０は、コマンドを監視することができる。コマンドが、インジェクションＴＡＰ（例えば、インジェクションＴＡＰ２．１、２．２及び２．３）を介して、マスター計算システム２１０から産業コントローラ２２０にインジェクトされる。産業コントローラ２２０から物理デバイス２３０へのコマンドは、観察ＴＡＰ３．１、３．２及び３．３を介して、危険コマンド緩和サーバ２４０によって（例えば、プロトコル・デコード・モジュール４２０により）観察される。また、観察ＴＡＰ３．１、３．２及び３．３を介して、物理デバイス２３０から産業コントローラ２２０への、コマンドへの応答（例えば、読み出し値及び/又は他のタイプの応答）が観察される。実施形態において、コマンドへの応答は、温度測定、回転毎分（ｒｏｔａｔｉｏｎ  ｐｅｒ  ｍｉｎｕｔｅ、ＲＰＭ）測定値、及び／又は他のタイプの測定値／読み出し値を含むことができる。産業コントローラ２２０から物理デバイス２３０へのコマンドは、インジェクションＴＡＰ４．１、４．２、４．３、４．４及び４．５を介して、物理デバイス２３０にインジェクトされる。
【００７０】
観察ＴＡＰ１．１、３．１、３．２及び３．３を介したコマンド／応答の監視に基づいて、プロトコル・デコード・モジュール４２０は、コマンドを正規化し、正規化されたコマンド７００を履歴コマンド・リポジトリ４３０及びシミュレーション・モデリング・モジュール４４０に出力することができる。履歴コマンド・リポジトリ４３０は、正規化されたコマンド７００を格納することができる。各コマンドについて（又は一定期間にわたる複数のコマンドのグループについて）、シミュレーション・モデリング・モジュール４４０は、１つ又は複数のシミュレーション・モデルを実行し、予測される影響７１０を危険コマンド識別モジュール４５０に出力することができる。危険コマンド識別モジュール４５０は、シミュレーション・モデリング・モジュール４４０から予測される影響７１０を、そして、履歴コマンド・リポジトリ４３０から履歴コマンド７１５を受け取ることができる。予測される影響７１０及び／又は履歴コマンド７１５に基づいて、危険コマンド識別モジュール４５０は、（例えば、単一のコマンド又はコマンドのグループについての）危険スコア７２０を生成することができる。スコア７２０が閾値を上回る場合、危険コマンド識別モジュール４５０は、識別された危険なコマンド７２５の表示を応答生成モジュール４６０に出力することができる。応答生成モジュール４６０は、緩和コマンド７３０を生成し、緩和コマンドをマスター計算システム２１０、産業コントローラ２２０、及び／又は物理デバイス２３０に出力することができる（例えば、インジェクションＴＡＰ２．０、２．１、２．２、２．３、４．１、４．２、４．３、及び／又は４．４を介して）。例えば、本明細書で説明されるように、緩和コマンド７３０を生成するとき、応答生成モジュール４６０はまた、コマンドをインジェクトするための、産業処理システム内の場所（例えば、コンポーネント）を識別することもできる。実施形態において、応答生成モジュール４６０は、警告７３５（例えば、管理デバイス２５０への）を出力することができる。特定の量のマスター計算システム２１０、産業コントローラ２２０、物理デバイス２３０、観察ＴＡＰ及びインジェクトＴＡＰが、図７に示され、実際には、任意の量及び構成のマスター計算システム２１０、産業コントローラ２２０、物理デバイス２３０、観察ＴＡＰ及びインジェクトＴＡＰを、種々の産業処理システムのために実装することができる。
【００７１】
図８は、本発明の態様による産業処理システムにおいて危険な状況を緩和するための例示的フローチャートを示す。図８のステップは、例えば図５及び図７の環境において実施することができ、図５及び図７に示される要素の参照番号を用いて説明される。上述のように、フローチャートは、本発明の種々の実施形態によるシステム、方法、及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。
【００７２】
図８に示されるように、プロセス８００は、産業処理システム内の通信フローを監視することを含むことができる（ステップ８１０）。例えば、コマンド制御監視モジュール４１０に関して上述されたように、危険コマンド緩和サーバ２４０は、マスター計算システム２１０から産業コントローラ２２０に出力されたコマンド出力、及び産業コントローラ２２０から物理デバイス２３０に出力されたコマンド出力のような通信フローを監視することができる。付加的に又は代替的に、危険コマンド緩和サーバ２４０は、物理デバイス２３０により出力されたコマンドへの応答のような通信フローを監視することができる。実施形態において、危険コマンド緩和サーバ２４０は、（例えば、図７に関して説明されたように）観察ＴＡＰを介して、通信フローを監視することができる。
【００７３】
プロセス８００はまた、通信フロー内のデータを正規化し、格納することを含むこともできる（ステップ８２０）。例えば、プロトコル・デコード・モジュール４２０及び履歴コマンド・リポジトリ４３０に関して上述されたように、危険コマンド緩和サーバ２４０は、マスター計算システム２１０及び産業コントローラ２２０からのコマンド及び応答データを「正規化する」ことができる。例えば、マスター計算システム２１０からのマスター・コマンド及び産業コントローラ２２０からの制御コマンドは、異なる形式、ユニット、コード、プログラミング言語等のものであってもよい。プロトコル・デコード・モジュール４２０は、コマンドを正規化して、シミュレーション・モデリング・モジュール４４０により解釈可能かつ使用可能なデータ形式にする。実施形態において、プロトコル・デコード・モジュール４２０は、正規化されたコマンド・データを、格納のために履歴コマンド・リポジトリ４３０に出力することができる。
【００７４】
プロセス８００はまた、正規化されたコマンド・データを用いて、特定のコマンドについてのシミュレーション・モデルを生成することをさらに含むことができる（ステップ８３０）。例えば、シミュレーション・モデリング・モジュール４４０に関して上述されたように、危険コマンド緩和サーバ２４０は、マスター計算システム２１０及び／又は産業コントローラ２２０により出力された単一のコマンド又はコマンドのグループについてのシミュレーションを行うことができる。シミュレーションは、コマンドが危険であるかどうかを判断するために、コマンド（又はコマンドのグループ）の影響を予測することができる。実施形態において、危険コマンド緩和サーバ２４０は、離散シミュレーション・モデリング、連続的モデリング、代数モデリング、確率論的モデリング、決定論的モデリング、動的システム・シミュレーション・モデリング、ローカル又は分散型モデリング、及び／又は他のシミュレーション技術のような、任意の数のシミュレーション技術を使用することができる。説明に役立つ実例として、シミュレーションの結果は、溶液の温度、流体の圧力、及び／又はコマンドの他の影響を予測することができる。シミュレーションの結果は、一定期間にわたる影響（例えば、コマンドが処理された後、数分間、数時間、又は数日間の流体又はチャンバの圧力）を予測することができる。
【００７５】
プロセス８００はまた、危険なコマンドを識別することをさらに含むこともできる（ステップ８４０）。例えば、危険コマンド識別モジュール４５０に関して上述されたように、危険コマンド緩和サーバ２４０は、シミュレーション・モデリング・モジュール４４０からのシミュレーションの結果及び履歴コマンド・リポジトリ４３０により格納された履歴コマンドに基づいて、コマンドが危険なものであるかどうかを判断することができる（例えば、以前の同様のコマンド又は同じタイプのコマンドのデータとは履歴的に異なるコマンド）。コマンド（又はコマンドのグループ）が所定の閾値を上回る場合、危険コマンド緩和サーバ２４０は、危険な状況又は危険なイベントが差し迫っていると判断する。コマンドのスコア化に関する付加的な詳細及び例が、危険コマンド緩和サーバ２４０に関して上述される。
【００７６】
プロセス８００は、緩和コマンド及び警告を生成することをさらに含むことができる（ステップ８５０）。例えば、応答生成モジュール４６０に関して上述されたように、危険コマンド緩和サーバ２４０は、危険なコマンドの影響を打ち消す又は緩和するために緩和コマンドを生成することができる。実施形態において、危険コマンド緩和サーバ２４０は、危険なコマンドと関連付けられたシミュレーション・モデルから生じる結果に基づいて、緩和コマンドを生成することができる。例えば、危険コマンド緩和サーバ２４０は、シミュレーション・モデルからのデータにより識別されるような予測される影響を打ち消すために緩和コマンドを生成することができる。実施形態において、危険コマンド緩和サーバ２４０は、候補緩和コマンドのセットの影響を予測するために、シミュレーション・モデルを実装することができる。
【００７７】
代替的な実施形態において、危険コマンド緩和サーバ２４０は、以前のシミュレーションから生じる結果に基づいて、シミュレーション・モデルを繰り返し実行することができる。例えば、危険コマンド緩和サーバ２４０は、緩和コマンドのセットを、シミュレーション・モデルへの入力として入力することができる。シミュレーションの結果に基づいて、危険コマンド緩和サーバ２４０は、緩和コマンドのセットを調整し（例えば、改善し）、シミュレーションを再実行することができる。危険コマンド緩和サーバ２４０は、シミュレーションが望ましい結果（例えば、危険な状況を有効に緩和する結果）を予測するまで、シミュレーションの実行を継続することができる。実施形態において、危険コマンド緩和サーバ２４０は、危険な状況（例えば、状況のタイプ、危険な状況に影響を受ける産業処理システムの部分、危険な状況を拡散させるための示唆される緩和コマンド、又は緩和コマンドを判断できなかったという表示等）を示す警告を生成することができる。緩和コマンドの選択及び生成に関する付加的な詳細が、図６の応答生成モジュール４６０に関して上述される。
【００７８】
プロセス８００はまた、緩和コマンド及び警告を出力することを含むこともできる（ステップ８６０）。例えば、応答生成モジュール４６０に関して上述されたように、危険コマンド緩和サーバ２４０は、緩和コマンドを、マスター計算システム２１０、産業コントローラ２２０、及び／又は物理デバイス２３０のような、産業処理システムのコンポーネントに出力することもできる（例えば、図７に関して上述されたようなインジェクトＴＡＰを介して）。上述のように、危険コマンド緩和サーバ２４０は、遅延を有した状態で緩和コマンドを出力することができる（例えば、遅延時、コマンドのインジェクトは、より好適な結果をもたらす）。実施形態において、危険コマンド緩和サーバ２４０は、危険な状況及び／又は危険なコマンドを識別する警告を管理デバイス２５０に出力することができる。
【００７９】
実施形態において、ソリューション・インテグレータ（SolutionIntegrator）などのサービス・プロバイダは、本明細書に記載されているプロセスの実行を提供することができる。この場合、サービス・プロバイダは、１人又は複数の顧客に対して本発明のプロセス・ステップを実行するコンピュータ・インフラストラクチャの作成、維持、配備、サポートなどを行うことができる。これらの顧客は、例えば、技術を使用する任意の企業にすることができる。それと引き替えに、サービス・プロバイダは、購読契約及び／又は料金契約の下で、顧客から支払いを受けること、及び／又は１人又は複数のサード・パーティに対して広告コンテンツを販売したことによる支払いを受けることができる。
【００８０】
さらに付加的な実施形態において、本発明は、ネットワークを介したコンピュータ実装方法を提供する。この場合、コンピュータ・システム／サーバ１２（図１）などのコンピュータ・インフラストラクチャを提供し、本発明のプロセスを実行するための１つ又は複数のシステムの取得（例えば、生成、購入、使用、修正等）を行い、コンピュータ・インフラインストラクチャに配備することができる。この点で、システムの配備は、（１）コンピュータ可読媒体から、コンピュータ・システム／サーバ１２（図１に示されるような）などのコンピュータ・デバイス上にプログラム・コードをインストールすること、（２）１つ又は複数のコンピューティング・デバイスをコンピュータ・インフラストラクチャに追加すること、及び（３）コンピュータ・インフラストラクチャが、本発明のプロセスを実行するのを可能にするように、コンピュータ・インフラストラクチャの１つ又は複数の既存のシステムを組み込む及び／又は修正することのうちの１つ又は複数を含むことができる。
【００８１】
本発明の種々の実施形態の説明は、説明を目的として記載されたが、網羅的であること、又は開示された実施形態に限定することを意図したものではない。当業者には、説明された実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途、若しくは市場で見出される技術に優る技術的改善を最も良く説明するために、又は当業者が本明細書に開示される実施形態を理解するのを可能にするために、選択された。
【符号の説明】
【００８２】
１０：クラウド・コンピューティング・ノード
１２：コンピュータ・システム／サーバ
１６：プロセッサ
１８：バス
２８：システム・メモリ
３４：データ・ストレージ・システム
４２：プログラム・モジュール
５０：クラウド・コンピューティング環境
６０：ハードウェア及びソフトウェア層
７０：仮想化層
８０：管理層
９０：ワークロード層
９６：危険緩和コンポーネント
２００：産業処理システム
２１０：マスター計算システム
２２０：産業コントローラ
２３０：物理デバイス
２４０：危険コマンド緩和サーバ
２５０：管理デバイス
２６０：ネットワーク
３００：環境
４１０：コマンド制御監視モジュール
４２０：プロトコル・デコード・モジュール
４３０：履歴コマンド・リポジトリ
４４０：シミュレーション・モデリング・モジュール
４５０：危険コマンド識別モジュール
４６０：応答生成モジュール
７００：正規化されたコマンド
７１０：予測される影響
７１５：履歴コマンド
７２０：危険スコア
７２５：識別された危険なコマンド
７３０：緩和コマンド
７３５：警告
８００：プロセス
【図１】
2017091537.tif 000003
【図２】
2017091537.tif 000004
【図３】
2017091537.tif 000005
【図４】
2017091537.tif 000006
【図５】
2017091537.tif 000007
【図６】
2017091537.tif 000008
【図７】
2017091537.tif 000009
【図８】
2017091537.tif 000010