特許第6847402号(P6847402)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
特許6847402危険な状況を検出し、緩和するための産業システムにおける通信フローの監視
<>
  • 特許6847402-危険な状況を検出し、緩和するための産業システムにおける通信フローの監視 図000002
  • 特許6847402-危険な状況を検出し、緩和するための産業システムにおける通信フローの監視 図000003
  • 特許6847402-危険な状況を検出し、緩和するための産業システムにおける通信フローの監視 図000004
  • 特許6847402-危険な状況を検出し、緩和するための産業システムにおける通信フローの監視 図000005
  • 特許6847402-危険な状況を検出し、緩和するための産業システムにおける通信フローの監視 図000006
  • 特許6847402-危険な状況を検出し、緩和するための産業システムにおける通信フローの監視 図000007
  • 特許6847402-危険な状況を検出し、緩和するための産業システムにおける通信フローの監視 図000008
  • 特許6847402-危険な状況を検出し、緩和するための産業システムにおける通信フローの監視 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6847402
(24)【登録日】2021年3月5日
(45)【発行日】2021年3月24日
(54)【発明の名称】危険な状況を検出し、緩和するための産業システムにおける通信フローの監視
(51)【国際特許分類】
   G06F 11/07 20060101AFI20210315BHJP
   G06F 11/34 20060101ALI20210315BHJP
   G06F 21/55 20130101ALI20210315BHJP
   G05B 23/02 20060101ALI20210315BHJP
【FI】
   G06F11/07 193
   G06F11/34 157
   G06F11/07 140A
   G06F21/55
   G05B23/02 302J
【請求項の数】22
【全頁数】28
(21)【出願番号】特願2016-217985(P2016-217985)
(22)【出願日】2016年11月8日
(65)【公開番号】特開2017-91537(P2017-91537A)
(43)【公開日】2017年5月25日
【審査請求日】2019年4月19日
(31)【優先権主張番号】14/940441
(32)【優先日】2015年11月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】チャールズ・エス・リンガフェルト
(72)【発明者】
【氏名】アンドリュー・アール・ジョーンズ
(72)【発明者】
【氏名】グレゴリー・ジェイ・ボス
(72)【発明者】
【氏名】ジョン・イー・ムーア
(72)【発明者】
【氏名】ケビン・シー・マコーネル
【審査官】 多賀 実
(56)【参考文献】
【文献】 特開2013−016000(JP,A)
【文献】 特開昭62−212708(JP,A)
【文献】 特開2013−109608(JP,A)
【文献】 特開2015−201086(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/28−11/36
G06F 21/00−21/88
G05B 19/05
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと、
前記コンピューティング・デバイスにより、前記通信フローを監視することに基づいて個々は有効であるが危険なコマンドを識別することであって、前記危険なコマンドを識別することは、シミュレーションへの入力として前記通信フローを用いて前記シミュレーションを実行することを含む、識別することと、
前記コンピューティング・デバイスにより、前記危険なコマンドを識別することに基づいて、前記危険なコマンドの適用により将来もたらされる影響を緩和する1つ又は複数の緩和コマンドのセットを、前記産業処理システムの状態に応じて動的に生成することと、
前記コンピューティング・デバイスにより、前記1つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力することと、
を含み、前記1つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドによりもたらされる危険のレベルを低下させる、方法。
【請求項2】
前記通信フローを監視することは、前記産業処理システムの一部として実装されるマスター計算システム、産業コントローラ、及び物理デバイスの間で送られるコマンド及び前記コマンドへの応答を監視することを含む、請求項1に記載の方法。
【請求項3】
前記危険なコマンドは、複数のコマンドのセットである、請求項1又は請求項2に記載の方法。
【請求項4】
前記1つ又は複数の緩和コマンドのセットを出力することは、前記1つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断することを含む、請求項1から請求項3のいずれか1項に記載の方法。
【請求項5】
前記危険なコマンドを識別することは、前記危険なコマンドが、同じタイプの以前のコマンドのデータとは履歴的に異なるデータを含むと判断することを含む、請求項1から請求項のいずれか1項に記載の方法。
【請求項6】
複数の危険なコマンドを識別することと、
前記複数の危険なコマンドの各々と関連付けられた予測される危険のレベルに基づいて、前記複数の危険なコマンドをランク付けすることと、
をさらに含む、請求項1から請求項のいずれか1項に記載の方法。
【請求項7】
前記危険なコマンド、又は前記危険なコマンドと関連付けられた危険な状況を識別する警告を出力することをさらに含む、請求項1から請求項のいずれか1項に記載の方法。
【請求項8】
コンピュータ実装方法であって、
コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと、
前記コンピューティング・デバイスにより、前記通信フローを監視することに基づいて危険なコマンドを識別することであって、前記危険なコマンドを識別することは、シミュレーションへの入力として前記通信フローを用いて前記シミュレーションを実行することを含む、識別することと、
前記コンピューティング・デバイスにより、前記危険なコマンドを識別することに基づいて、1つ又は複数の緩和コマンドのセットを生成することと、
前記コンピューティング・デバイスにより、前記1つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力することと、
を含み、前記1つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドによりもたらされる危険のレベルを低下させ、前記1つ又は複数の緩和コマンドのセットを出力することは、前記1つ又は複数の緩和コマンドのセットを出力すべき時間又は遅延を判断することを含む方法。
【請求項9】
コンピュータ実装方法であって、
コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと、
前記コンピューティング・デバイスにより、前記通信フローを監視することに基づいて危険なコマンドを識別することであって、前記危険なコマンドを識別することは、シミュレーションへの入力として前記通信フローを用いて前記シミュレーションを実行することを含む、識別することと、
前記コンピューティング・デバイスにより、前記危険なコマンドを識別することに基づいて、1つ又は複数の緩和コマンドのセットを生成することと、
前記コンピューティング・デバイスにより、前記1つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力することと、
を含み、前記1つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドによりもたらされる危険のレベルを低下させ、前記1つ又は複数の緩和コマンドのセットを生成することは、前記シミュレーションを用いて候補コマンドの影響を予測することを含み、前記1つ又は複数の緩和コマンドのセットは、前記候補コマンドの前記予測結果に基づく方法。
【請求項10】
プログラム命令を含むコンピュータ・プログラムであって、前記プログラム命令は、
コンピューティング・デバイスにより実行可能であり、かつ前記コンピューティング・デバイスに、
産業処理システム内のコマンドを観察させ、
個々は有効である1つ又は複数の観察されたコマンドのセットについての危険レベルを、前記1つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断させ、
前記危険レベルが特定の閾値を下回るとき、前記1つ又は複数の観察されたコマンドのセットの妥当性を確認させ、
前記危険レベルが前記閾値に等しいか又はそれを上回るとき、前記1つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断させ、
前記1つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断することに基づいて、前記危険なコマンドのセットの適用により将来もたらされる影響を緩和する1つ又は複数の緩和コマンドのセットを、前記産業処理システムの状態に応じて動的に生成させ、
前記1つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力させ、前記1つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドのセットによりもたらされる危険のレベルを低下させる、コンピュータ・プログラム。
【請求項11】
前記シミュレーション・モデルは、
離散シミュレーション・モデル、
連続的シミュレーション・モデル、
代数シミュレーション・モデル、
確率論的シミュレーション・モデル、
決定論的シミュレーション・モデル、
動的システム・シミュレーション・モデル、
ローカル又は分散型シミュレーション・モデル、のうちの少なくとも1つを含む、請求項10に記載のコンピュータ・プログラム。
【請求項12】
前記1つ又は複数の緩和コマンドのセットを出力することは、前記1つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断することを含む、請求項10又は請求項11に記載のコンピュータ・プログラム。
【請求項13】
前記1つ又は複数の観察されるコマンドが前記危険なコマンドのセットであると判断することは、前記1つ又は複数の観察されるコマンドが、同じタイプの以前のコマンドのデータとは履歴的に異なるデータを含むと判断することを含む、請求項10から請求項12のいずれか1項に記載のコンピュータ・プログラム。
【請求項14】
プログラム命令を含むコンピュータ・プログラムであって、前記プログラム命令は、
コンピューティング・デバイスにより実行可能であり、かつ前記コンピューティング・デバイスに、
産業処理システム内のコマンドを観察させ、
1つ又は複数の観察されたコマンドのセットについての危険レベルを、前記1つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断させ、
前記危険レベルが特定の閾値を下回るとき、前記1つ又は複数の観察されたコマンドのセットの妥当性を確認させ、
前記危険レベルが前記閾値に等しいか又はそれを上回るとき、前記1つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断させ、
前記1つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断することに基づいて、1つ又は複数の緩和コマンドのセットを生成させ、
前記1つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力させ、前記1つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドのセットによりもたらされる危険のレベルを低下させ、前記1つ又は複数の緩和コマンドのセットを出力することは、前記1つ又は複数の緩和コマンドのセットを出力すべき時間又は遅延を判断することを含むコンピュータ・プログラム。
【請求項15】
プログラム命令を含むコンピュータ・プログラムであって、前記プログラム命令は、
コンピューティング・デバイスにより実行可能であり、かつ前記コンピューティング・デバイスに、請求項1から請求項9のいずれか1項に記載の方法を実行させる命令を含む、コンピュータ・プログラム。
【請求項16】
CPU、コンピュータ可読メモリ、及びコンピューティング・デバイスと関連付けられたコンピュータ可読ストレージ媒体と、
産業処理システム内のコマンドを観察するためのプログラム命令と、
1つ又は複数の観察されたコマンドのセットについての危険レベルを、前記1つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断するためのプログラム命令と、
前記危険レベルが特定の閾値に等しいか又はそれを上回るとき、前記1つ又は複数の観察されたコマンドのセットが危険なコマンドのセットであると判断するためのプログラム命令と、
前記1つ又は複数の観察されたコマンドのセットが前記危険なコマンドのセットであると判断することに基づいて、1つ又は複数の緩和コマンドのセットを生成するためのプログラム命令と、
前記シミュレーション・モデルを用いて、前記1つ又は複数の緩和コマンドのセットの前記影響を予測するためのプログラム命令と、
前記予測される影響に基づいて、前記1つ又は複数の緩和コマンドのセットを修正するためのプログラム命令と、
前記修正された1つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力するためのプログラム命令と、
を含み、前記修正された1つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドのセットによりもたらされる危険のレベルを低下させ、
前記プログラム命令は、前記コンピュータ可読メモリを介して、前記CPUによる実行のために前記コンピュータ可読ストレージ媒体上に格納される、システム。
【請求項17】
前記修正された1つ又は複数の緩和コマンドのセットを出力するための前記プログラム命令は、前記1つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断するためのプログラム命令を含む、請求項16に記載のシステム。
【請求項18】
CPU、コンピュータ可読メモリを具備するシステムであって、請求項1から請求項9のいずれか1項に記載の各ステップをコンピューティング・デバイスによる手段として構成した、システム。
【請求項19】
コンピュータ実装方法であって、
コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと、
前記コンピューティング・デバイスにより、前記通信フローを監視することに基づいて個々は有効であるが危険なコマンドを識別することと、
前記コンピューティング・デバイスにより、前記危険なコマンドを識別することに基づいて、前記危険なコマンドの適用により将来もたらされる影響を緩和する1つ又は複数の緩和コマンドのセットを、前記産業処理システムの状態に応じて動的に生成することと、
前記コンピューティング・デバイスにより、前記1つ又は複数の緩和コマンドのセットを前記産業処理システム内のコンポーネントに出力することと、
を含み、前記1つ又は複数の緩和コマンドのセットを出力することは、前記危険なコマンドによりもたらされる危険のレベルを低下させる、方法。
【請求項20】
前記通信フローを監視することは、前記産業処理システムの一部として実装されるマスター計算システム、産業コントローラ、及び物理デバイスの間で送られるコマンド及び前記コマンドへの応答を監視することを含む、請求項19に記載の方法。
【請求項21】
前記危険なコマンドは、複数のコマンドのセットである、請求項19又は請求項20に記載の方法。
【請求項22】
前記1つ又は複数の緩和コマンドのセットを出力することは、前記1つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断することを含む、請求項19から請求項21のいずれか1項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、産業プロセス・システムに関し、より特定的には、産業プロセス・システムにおいて、悪意のある又は意図しないコマンドによってもたらされる危険な状況(hazardous condition)を緩和することに関する。
【背景技術】
【0002】
今日の大規模な産業プロセスは、マスター計算システム(mastercompute system)から始まり、次に、産業コントローラ(例えば、プログラム可能論理コントローラ(PLC)など)と通信し、次いで、マシン制御、環境センサ、電動弁等のような特定のデバイスと通信する、システムの階層により制御される。複雑な産業プロセスの例として、原子力、水力、及び化石燃料発電所の生成、石油採掘及び精製、化学薬品製造、製薬、給水及び水処理システム、洪水制御システム等が挙げられる。マスター計算システムと産業コントローラとの間、及び、産業コントローラと産業コントローラにより制御され、そこから測定値を取得する物理デバイスとの間に、セキュリティは殆ど存在しない。産業処理システムにおける通信の変更、挿入、又は中断は、(例えば、ハッカーにより)比較的容易に達成され、著しい物理的損傷又は損害をもたらすことがある。また、特定のコマンドが、産業処理システム内に意図せずに又は偶発的にインジェクトされることがある。産業処理システムにおける障害の例は、比較的頻繁になっている。例えば、悪意のあるコマンドが、内部ネットワークを通じて又は外部ネットワーク(例えば、クラウド・ネットワーク)を介して産業処理システムにインジェクトされることがある。
【0003】
現在、コントローラからの個々のコマンドは、それぞれの妥当性に関してチェックされている。一例として、コマンドが、反応容器の温度を2つの予め決められた点の間に設定するか又は予め決められた閾値未満に設定するかを決定するために、チェックが実施される。しかしながら、正当な(個々の)値だけを用いても、複雑なシステム内で軽微な障害及び壊滅的な障害の両方がもたらされることがある。例えば、特定の値は、その全体が利用されるとき、値のセット(その各々は、それ自体としては正当である)が、システム内の1つ又は複数のコンポーネントに適用される。つまり、悪意のあるコマンドさえ、指定されたパラメータの範囲内でコマンドがデバイスを制御することができる(例えば、コマンドが、通常の動作条件又は動作角の範囲内で弁を開閉できる)という点で、「有効」であり得る。しかしながら、有効なコマンドでさえ、コマンドの適用から数時間後に、障害を引き起こす可能性がある。マスター制御システムが、障害の値のセット又はコマンドを送ることはなくても、コントローラ及びその通信ネットワークはハッカー行為をこうむりやすく、結果として通信パケット及び/又は産業コントローラ自身の変更がもたらされる。
【0004】
この問題は、現在の産業プロセスに影響を及ぼし、障害が死亡及び/又は著しい物的損害を引き起こし得る重要なインフラストラクチャ・システムにおいて特に深刻である。悪意のあるコマンドの影響が、数時間又は数日間、明らかにならないことがある。例えば、毎時、1ポンド毎平方インチ(PSI)の上昇による反応容器の圧力制限設定値を較正するためのコマンドは、反応容器が爆発するまで2週間かかり得る。ハッカーがマスター計算システム及び/又は産業コントローラを損なうことがあるので、外部観察及び訂正システムは、産業処理システムに対する悪意のある攻撃の壊滅的な影響を防止することができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
産業処理システムにおいて、悪意のある又は意図しないコマンドによってもたらされる危険な状況を緩和するためのシステム、方法及び/又はコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【0006】
本発明の1つの態様において、コンピュータ実装方法が、コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと;コンピューティング・デバイスにより、通信フローを監視することに基づいて危険なコマンド(hazardous command)を識別することであって、危険なコマンドを識別することは、シミュレーションへの入力として通信フローを用いてシミュレーションを実行することを含む、識別することと;コンピューティング・デバイスにより、危険なコマンドを識別することに基づいて1つ又は複数の緩和コマンドのセットを生成することと;コンピューティング・デバイスにより、1つ又は複数の緩和コマンドのセットを産業処理システム内のコンポーネントに出力することとを含み、1つ又は複数の緩和コマンドのセットを出力することは、危険なコマンドが引き起こす危険のレベルを低下させる。更に別の態様において、通信フローを監視することは、産業処理システムの一部として実装されるマスター計算システム、産業コントローラ、及び物理デバイスの間で送られるコマンド及びコマンドへの応答を監視することを含む。更に別の態様において、1つ又は複数の緩和コマンドのセットを生成することは、シミュレーションを用いて候補コマンドの影響を予測することを含み、1つ又は複数の緩和コマンドのセットは、候補コマンドの予測結果に基づく。
【0007】
本発明の1つの態様において、プログラム命令がその上に具体化されたコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品がある。プログラム命令は、コンピューティング・デバイスにより実行可能であり、かつコンピューティング・デバイスに、産業処理システム内のコマンドを観察させ、1つ又は複数の観察されたコマンドのセットについての危険レベルを、1つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断させ、危険レベルが特定の閾値を下回るとき、1つ又は複数の観察されたコマンドのセットの妥当性を確認させ、危険レベルが閾値に等しいか又はそれを上回るとき、1つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断させ、1つ又は複数の観察されたコマンドが危険なコマンドのセットであると判断することに基づいて、1つ又は複数の緩和コマンドのセットを生成させ、1つ又は複数の緩和コマンドのセットを産業処理システム内のコンポーネントに出力させ、1つ又は複数の緩和コマンドのセットを出力することは、危険なコマンドのセットによりもたらされる危険レベルを低下させる。更に別の態様において、1つ又は複数の緩和コマンドのセットを出力するとき、プログラム命令は、コンピューティング・デバイスに、1つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断させる。更に別の態様において、1つ又は複数の観察されるコマンドが危険なコマンド・セットであると判断することは、1つ又は複数の観察されるコマンドが同じタイプの以前のコマンドとは履歴的に異なるデータを含むと判断することを含む。
【0008】
本発明の1つの態様において、システムは、CPU、コンピュータ可読メモリ、及びコンピューティング・デバイスと関連付けられたコンピュータ可読ストレージ媒体とを含む。システムはまた、産業処理システム内のコマンドを観察するためのプログラム命令と;1つ又は複数の観察されたコマンドのセットについての危険レベルを、1つ又は複数の観察されたコマンドのセットの影響を予測するシミュレーション・モデルを用いて判断するためのプログラム命令と;危険レベルが特定の閾値に等しいか又はそれを上回るとき、1つ又は複数の観察されたコマンドのセットが危険なコマンドのセットであると判断するためのプログラム命令と;1つ又は複数の観察されたコマンドのセットが危険なコマンドのセットであると判断することに基づいて、1つ又は複数の緩和コマンドのセットを生成するためのプログラム命令と;シミュレーション・モデルを用いて1つ又は複数の緩和コマンドのセットの影響を予測するためのプログラム命令と;予測される影響に基づいて、1つ又は複数の緩和コマンドのセットを修正するためのプログラム命令と;修正された1つ又は複数の緩和コマンドのセットを産業処理システム内のコンポーネントに出力するためのプログラム命令とを含み、修正された1つ又は複数の緩和コマンドのセットを出力することは、危険なコマンドのセットがもたらす危険レベルを低下させる。プログラム命令は、コンピュータ可読メモリを介して、CPUによる実行のためにコンピュータ可読ストレージ媒体上に格納される。更に別の態様において、1つ又は複数の緩和コマンドのセットを出力することは、1つ又は複数の緩和コマンドのセットを出力すべき特定のコンポーネントを判断することを含む。
【0009】
本発明の1つの態様において、コンピュータ実装方法は、コンピューティング・デバイスにより、産業処理システム内の通信フローを監視することと;コンピューティング・デバイスにより、通信フローを監視することに基づいて危険なコマンドを識別することと;コンピューティング・デバイスにより、危険なコマンドを識別することに基づいて、1つ又は複数の緩和コマンドのセットを生成することと;コンピューティング・デバイスにより、1つ又は複数の緩和コマンドのセットを産業処理システム内のコンポーネントに出力することとを含み、1つ又は複数の緩和コマンドのセットを出力することは、危険なコマンドによりもたらされる危険のレベルを低下させる。更に別の対応において、通信フローを監視することは、産業処理システムの一部として実装されるマスター計算システム、産業コントローラ、及び物理デバイスの間で送られるコマンド及びコマンドへの応答を監視することを含む。
【0010】
本発明は、本発明の例示的な実施形態の限定されない例として示される複数の図面を参照して、以下の詳細な説明に記載される。
【図面の簡単な説明】
【0011】
図1】本発明の実施形態によるクラウド・コンピューティング・ノードを示す。
図2】本発明の実施形態によるクラウド・コンピューティング環境を示す。
図3】本発明の実施形態による抽象化モデル層を示す。
図4】本発明の実施形態による例示的な産業処理システムの概要を示す。
図5】本発明の実施形態による例示的な環境を示す。
図6】本発明の実施形態による危険コマンド緩和サーバの例示的なコンポーネントのブロック図を示す。
図7】本発明の実施形態による産業処理システムにおける危険な状況を緩和するための例示的プロセスの図を示す。
図8】本発明の実施形態による産業処理システムにおける危険な状況を緩和するための例示的フローチャートを示す。
【発明を実施するための形態】
【0012】
本発明は、一般に、産業処理システムに関し、より特定的には、産業処理システムにおいて、悪意のある又は意図しないコマンド又は通信フローによってもたらされる危険な状況を緩和させることに関する。本発明の態様は、産業処理システム内で送られる通信フロー(例えば、コマンド又はコマンド応答)を観察し、産業処理システムのシミュレーション・モデルを通じてコマンドを処理し、危険な状況(ごく近い将来又は近い将来に、物理的インフラストラクチャの故障をもたらし得る状態)を識別するためのシステム、及び/又は方法を含む。本発明の態様はさらに、緩和コマンド(mitigating command)を送って、インジェクション・ポイント(インジェクションTAPとも呼ばれる)を通じて以前のコマンドを打ち消すことによって、危険な状況を緩和する。実施形態において、緩和コマンドは、産業処理システムにインジェクトされる悪意のあるコマンド又は意図しないコマンドなどの危険なコマンドの影響を打ち消す。実施形態において、緩和コマンドはまた、内部ネットワーク又は外部ネットワーク(例えば、クラウド・ネットワーク)を介して、悪意あるパーティによりインジェクトされる危険なコマンドの影響も打ち消す。本明細書で説明される場合、「コマンド」という用語は、命令、通信フロー、又は産業処理システム内のコンポーネント間(例えば、マスター・コンピュータ・システム、産業コントローラ及び個々の物理デバイス間)の応答を指すことができる。
【0013】
本発明の態様によると、システム及び/又は方法は、危険な状況を打ち消す又は緩和するために、インジェクションTAP緩和コマンドを(例えば、マスター制御装置、産業コントローラ、及び/又はデバイスへ)送るべき、産業処理システム内の場所(例えば、特定のコンポーネント)を決定することができる。さらに、システム及び/又は方法は、危険な状況をもたらすコマンド(例えば、悪意のあるコマンド、偶発的に生成されたコマンド等)の影響を十分に打ち消すために、特定のインジェクションTAP緩和コマンドを決定することができる。さらに、システム及び/又は方法は、緩和コマンドがいつ所望の効果を有するか、及び緩和コマンドをいつインジェクトするか(例えば、緩和コマンドを時間の経過と共に広めるか、又は全ての緩和コマンドを即座に送るか)を決定することができる。
【0014】
本発明の態様によると、1つ又は複数の緩和コマンドは、危険な状況をトリガしたデバイスにインジェクト若しくは出力されることも、又はインジェクト若しくは出力されないこともある。代替的な実施形態において、危険な状況の識別をトリガした観察の後に、(例えば、数分間又は数時間など)遅延させて1つ又は複数の緩和コマンドをインジェクトすることができる。実施形態において、1つ又は複数の緩和コマンドのインジェクションは、危険な状況を意図的に完全には緩和しない場合もある。
【0015】
実施形態において、緩和アクションは、現在の状況又はシステムの状態に基づいて、動的に起こすことができ、単なるif/then規則構成よりもローバスト(robust)である。例えば、本発明の態様は、侵入防止システム(IPS)、データ損失防止(DLP)、ウェブ・コンテンツ・フィルタリング(WCF)、及びif/then規則を単に実施する同様の検査及び緩和技術よりもローバストである。本発明の態様は、悪意のあるコマンドによりもたらされる危険な状況の拡散に対してとるべき最良のアクションに基づいて、緩和アクション/コマンドをリアルタイムで実施すること、又は遅延させて緩和アクションを実施することができる。さらに、本発明の実施は、危険な状況の拡散に対する緩和コマンドを決定するために、複数の異なる変数の集合、システム構成、及びシナリオを考慮できるので、本発明の態様は、if/then規則の実施よりもローバストである。
【0016】
説明に役立つ実例として、反応容器上で温度設定を20℃だけ高めるためにコマンドを観察すると仮定する。本発明の態様によると、コマンドは、シミュレーション・モデルを通じて処理される。シミュレーション・モデルは、コマンドがシステムにインジェクトされてから5時間後に危険な状況又は状態(例えば、爆発又はシステム・コンポーネントへの損傷)をもたらすことを示すと仮定する。この仮定が与えられた場合、シミュレーション・モデルの結果に基づいて、危険な状況が識別され、緩和コマンドのセットが決定される。一例として、緩和コマンドは、温度設定を(例えば、5℃だけ)下げること、一定期間(例えば、1時間)待つこと、温度が特定の閾値(例えば、237℃)より高い場合に温度設定を更なる量(例えば、5℃)下げること、特定の量の特定の溶液を反応容器に導入すること(例えば、1,000ガロンのHSO)、及び特定の期間、別のデバイスを(例えば、15分間、攪拌機を)アクティブにすることを含むことができる。
【0017】
上記の例に説明されるように、緩和コマンドは、単なるif/then規則の場合のように、単に温度設定を20℃だけ下げるためのものではない。上記の例において、温度を下げ(緩和アクションの一部として)、危険なコマンドにより以前に設定されたシステムの温度設定点を無効にする(reverse)ことができる。しかしながら、上記の例に説明されるように、適切な緩和は、単に危険なコマンドを無効にするのではなく、どちらかと言えば、危険なコマンドによりもたらされる危険の影響を低減又は排除するための、種々の他のアクションを含む。
【0018】
別の例として、危険なコマンドが識別されると仮定する(例えば、1,000単位のNACLを反応容器に加えるためのコマンド)。この例において、温度が100℃未満の場合、2,000単位のHOを加えることができるが、温度が100℃より高い場合、50単位のHCLを加えることができる。本明細書で説明されるように、シミュレーション・モデルを用いて、緩和コマンドの決定を助けることができる(例えば、シミュレーション・モデルを用いて、危険な状況を識別することに加えて)。上記の例において、1,000単位のNACLを「減算すること」、従って、現在のセキュリティ・プロトコルで使用されるように、単なるif/then規則が実施されることによって、危険なコマンドを単に無効にすることはできない。有利なことに、本発明の態様は、産業制御システムにおける安全及びセキュリティを改善し、負傷、死亡、物的損壊、正常な活動の中断等を防止し、従来のシステムに対して著しい価値及び利点を与える。
【0019】
本発明の態様は、産業制御システムにおけるセキュリティの問題に対する技術的解決法を提供する。例えば、本発明の態様は、コマンドからのデータを分析し、異なるタイプのデバイスにより与えられるコマンドを正規化し、正規化されたコマンド・データに対して技術的シミュレーション・モデルを実施して、危険な状況を判断する。本明細書で説明されるように、重み付けアルゴリズムを用いて、コマンドが「危険な」コマンド(例えば、危険な状況をもたらすコマンド)であるかどうかを判断することができる。本発明の態様は、リアルタイム・コマンドを過去のコマンドと比較し、比較に基づいて潜在的な危険なコマンドを識別することによって、コマンド・データを処理する。本発明の態様は、コマンド及びコマンドの予測結果の危険レベルを示す、コマンドのセットについての重み又はスコアを生成する。本発明の態様は、現在の動作状態を識別するデータのセット、システム構成、リアルタイムのコマンドの予測される影響に基づいて、緩和コマンドを決定することによって、技術的解決法を生成する。さらに、本発明の態様は、予測される危険なシナリオを緩和又は拡散し、予測される危険なシナリオに関して現場の人員に警告するために、産業処理システムにおいて緩和コマンドをインジェクトする。本発明の態様は、コマンドを監視し、コマンドの予測される影響を判断することによって、コマンド内のデータの完全性を有効に実証し、又はデータの不適切な変更(例えば、悪意のある攻撃者による又は偶発的変更による)を検出する。例えば、コマンドが危険な結果をもたらす場合、この危険な結果の検出が、積極的に識別され、緩和される。
【0020】
本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
【0021】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令が記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って伝搬される電気信号などの、一時的信号自体として解釈されない。
【0022】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び/又は無線ネットワークなどのネットワークを介して、外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【0023】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、又は、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化して本発明の態様を実施することにより、コンピュータ可読プログラム命令を実行することができる。
【0024】
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0025】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることもできる。
【0026】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
【0027】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。フローチャート図の各ブロック、及びフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【0028】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書において挙げられる教示の実装はクラウド・コンピューティング環境に限定されないことが、前もって理解される。それどころか、本発明の実施形態は、現在既知の又は後に開発される他のいずれかのタイプのコンピューティング環境とともに実装することが可能である。
【0029】
クラウド・コンピューティングは、最小限の管理努力又はサービス・プロバイダとの対話で迅速に供給及び解放することができる構成変更可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールに対するオンデマンドの便利なネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つの展開モデルを含むことができる。
【0030】
特徴は、以下の通りである。
・オンデマンドのセルフサービス:クラウド・コンシューマは、サーバ時間及びネットワーク・ストレージといったコンピューティング能力を、必要に応じて、人間がサービスのプロバイダとやりとりする必要なく自動的に、一方的に供給することができる。
・広範なネットワーク・アクセス:能力は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
・リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、複数のコンシューマにサービスを提供するようにプールされ、異なる物理及び仮想リソースは、要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な場所に関する制御又は知識を有していないが、高いレベルの抽象概念(例えば、国、州、又はデータセンタ)で場所を指定できる場合があるという点で、場所独立ということができる。
・迅速な弾力性:能力は、迅速且つ弾力的に、場合によっては自動的に供給して素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとっては、供給するために利用可能な能力は、無制限に見えることが多く、いつでもどんな量でも購入することができる。
・計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化のレベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用は、利用されるサービスのプロバイダとコンシューマの両方にとって透明性をもたらすように、監視し、制御し、報告することができる。
【0031】
サービス・モデルは以下の通りである。
・サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通じて、種々のクライアント・デバイスからアクセス可能である。限定されたユーザ特有のアプリケーション構成設定を可能な例外として、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション能力をも含む基盤となるクラウド・インフラストラクチャを管理又は制御しない。
・サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成される、コンシューマが作成又は獲得したアプリケーションを、クラウド・インフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基盤となるクラウド・インフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成を、制御する。
・サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースを供給することであり、ここで、コンシューマは、オペレーティング・システム及びアプリケーションを含むことができる任意のソフトウェアを展開して動作させることができる。コンシューマは、基盤となるクラウド・インフラストラクチャを管理及び制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、及び場合によっては選択されたネットワーク・コンポーネント(例えば、ホストのファイアウォール)の限定的な制御を、制御する。
【0032】
展開モデルは以下の通りである。
・プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに稼動される。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
・コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアン上の考慮事項)を共有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
・パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループが利用できるようにされており、クラウド・サービスを販売する組織によって所有される。
・ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティを残しているが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられている2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の組み合わせである。
クラウド・コンピューティング環境は、サービス指向であり、ステートレスであること(statelessness)、疎結合性(low coupling)、モジュール性(modularity)、および意味的相互運用性 (semanticinteroperability)に焦点をおいている。クラウド・コンピューティングの中心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0033】
ここで図1を参照すると、クラウド・コンピューティング・ノードの一例の概略図が、図1に示される。クラウド・コンピューティング・ノード10は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書で説明される本発明の実施形態の使用又は機能の範囲に関していずれかの限定を示唆することを意図するものではない。いずれにせよ、クラウド・コンピューティング・ノード10は、上述された機能のいずれかを実装及び/又は実施することができる。
【0034】
クラウド・コンピューティング・ノード10において、多数の他の汎用又は専用コンピューティング・システム環境若しくは構成で動作可能なコンピュータ・システム/サーバ12がある。コンピュータ・システム/サーバ12と共に使用するのに好適であり得る周知のコンピューティング・システム、環境、及び/又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
【0035】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ12は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境内で実施することができる。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔の両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
【0036】
図1に示されるように、クラウド・コンピューティング・ノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ12のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット16、システム・メモリ28、及び、システム・メモリ28を含む種々のシステム・コンポーネントをプロセッサ16に結合するバス18を含むことができる。
【0037】
バス18は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び、種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnects(PCI)バスを含む。
【0038】
コンピュータ・システム/サーバ12は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ12がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不可能媒体の両方とを含む。
【0039】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30及び/又はキャッシュ・メモリ32といった、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不可能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不可能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム34を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピィ・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、各々は、1つ又は複数のデータ媒体インターフェースによってバス18に接続することができる。以下でさらに示され、説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
【0040】
限定ではなく例として、メモリ28内に、プログラム・モジュール42の組(少なくとも1つ)を有するプログラム/ユーティリティ40、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを、格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの幾つかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール42は、一般に、本明細書において説明される本発明の実施形態の機能及び/又は方法を実行する。
【0041】
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24などといった1つ又は複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話することを可能にする1つ又は複数のデバイス、及び/又は、コンピュータ・システム/サーバ12が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデムなど)と通信することができる。このような通信は、入力/出力(I/O)インターフェース22を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ12は、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと、ネットワーク・アダプタ20を介して通信することができる。示されるように、ネットワーク・アダプタ20は、コンピュータ・システム/サーバ12の他のコンポーネントと、バス18を介して通信する。図示されないが、コンピュータ・システム/サーバ12とともに他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが挙げられる。
【0042】
ここで図2を参照すると、例示的なクラウド・コンピューティング環境50が示される。示されるように、クラウド・コンピューティング環境50は、例えば携帯情報端末(PDA)又は携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、及び/又は自動車コンピュータ・システム54Nなどといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスが通信することができる、1つ又は複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。これらは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくは上述のハイブリッド・クラウド、又はこれらの組み合わせなどの1つ又は複数のネットワーク内で、物理的又は仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、提供できるようになる。コンピューティング・デバイス54A−Nのタイプは単なる例示であるように意図されており、コンピューティング・ノード10及びクラウド・コンピューティング環境50は、あらゆるタイプのコンピュータ化された装置、及び、あらゆるタイプのネットワーク及び/又はネットワーク・アドレス指定可能な接続(例えば、ウェブ・ブラウザを用いて)と通信できることが理解される。
【0043】
ここで図3を参照すると、クラウド・コンピューティング環境50によって提供される機能抽象化層のセットが示される。図3に示されるコンポーネント、層、及び機能は単なる例示であるように意図されており、本発明の実施形態はそれらに限定されないことを予め理解されたい。示されるように、以下の層及び対応する機能が提供される。
【0044】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例として、メインフレーム61と、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62と、サーバ63と、ブレード・サーバ64と、ストレージ・デバイス65と、ネットワーク及びネットワーク・コンポーネント66と、が挙げられる。幾つかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67、及びデータベース・ソフトウェア68を含む。
【0045】
仮想化層70は、仮想エンティティの以下の例、即ち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティング・システム74、並びに仮想クライアント75を提供することができる、抽象化層を提供する。
【0046】
一例においては、管理層80は、以下で説明される機能を提供することができる。リソース供給(provisioning)は、クラウド・コンピューティング環境内でタスクを行うのに利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定82は、クラウド・コンピューティング環境内でリソースが用いられる際のコスト追跡と、これらのリソースの消費にかかる課金又は請求とを提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別情報の検証と、データ及び他のリソースの保護とを提供する。ユーザ・ポータル83は、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(SLA)計画及び履行85は、SLAによって将来の必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【0047】
ワークロード層90は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。ワークロード層及びこの層から提供できる機能の例として、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、及び危険緩和コンポーネント96が含まれる。
【0048】
再び図1を参照すると、プログラム/ユーティリティ40が、一般的に、本明細書で説明されるような本発明の実施形態の機能及び/又は方法を実行する1つ又は複数のプログラム・モジュール42を含むことができる。具体的には、プログラム・モジュール42は、マスター計算システム及び産業コントローラから出力されたコマンドを監視/観察し、コマンドを正規化及び格納し、正規化したコマンド・データを用いて特定のコマンドについてのシミュレーション・モデルを生成し、シミュレーション・モデルの結果及び/又は過去のコマンドに基づいて危険な状況を識別し、緩和コマンド及び警告を生成し、緩和コマンド及び警告を出力することができる。プログラム・モジュール42の他の機能が本明細書にさらに説明され、プログラム・モジュール42は、上述の機能に限定されない。さらに、モジュール42の一部を、図1図3に示されるインフラストラクチャ内に実装することができる。例えば、モジュール42は、図4の危険緩和コンポーネント96を表すことができる。
【0049】
図4は、本発明の態様による例示的な産業処理システム内のコンポーネントの概要を示す。図4に示されるように、産業処理システム200は、マスター・コンピュータ・システム210が産業コントローラ220と通信し、次にデバイス230と通信する、階層の形に編成される。代替的に、マスター計算システム210は、産業コントローラ220に関与することなく、デバイス230と直接通信することができる。実施形態において、産業処理システム200は、図4に示されるものより少ない又は異なるように配置された付加的なコンポーネントを含むことができる。
【0050】
図5は、本発明の態様による例示的な環境を示す。図5に示されるように、環境300は、マスター計算システム210、産業コントローラ220、物理デバイス230、危険コマンド緩和サーバ240、及びネットワーク260を含むことができる。実施形態において、環境300内の1つ又は複数のコンポーネントは、図2のクラウド・コンピューティング環境内の1つ又は複数のコンポーネントに対応し得る。
【0051】
マスター計算システム210は、マスター・コマンドを産業コントローラ220に出力する1つ又は複数のコンピューティング・デバイス(例えば、サーバ・デバイス、メインフレーム等)を含むことができる。一例として、マスター・コマンドは、反応チャンバ(reaction chamber)の温度を上げる又は下げるといった、上位の一般的コマンドである。実施形態において、マスター計算システム210は、制御コマンドを生成し、産業コントローラ220の関与なしに、制御コマンドを物理デバイス230に直接出力する。本明細書で説明されるように、マスター計算システム210は、危険コマンド緩和サーバ240から緩和コマンドを受け取り、緩和コマンドを、産業コントローラ220に、及び/又は直接物理デバイス230に出力する。
【0052】
産業コントローラ220は、産業コントローラ220によるマスター・コマンド出力を解釈し、マスター・コマンドを特定の物理デバイス230のための制御コマンドに変換し、制御コマンドを特定の物理デバイス230に出力する、1つ又は複数のコンピューティング・デバイスを含むことができる。一例として、マスター計算システム210からのマスター・コマンドは、産業コントローラ220に、反応容器の温度を上げるように指示する。この状況が与えられた場合、産業コントローラ220は、マスター・コマンドを制御コマンドに変換し、1つ又は複数の特定の物理デバイス230に指示し、反応容器内の弁を開閉させること、特定の溶液を反応容器に加えること、などが可能である。本明細書で説明されるように産業コントローラ220は、危険コマンド緩和サーバ240から緩和コマンドを受け取り、緩和コマンドを物理デバイス230に出力する。
【0053】
物理デバイス230は、センサ(例えば、温度センサ、流体レベル・センサ、流体組成センサ)、弁制御、サーモスタット、暖房/換気/空調(HVAC)システム、ソレノイド、及び/又はマスター計算システム210及び/又は産業コントローラ220により直接的又は間接的に制御できるいずれかのタイプのデバイスを含むことができる。物理デバイス230は、マスター計算システム210、産業コントローラ220、及び/又は危険コマンド緩和サーバ240から制御コマンドを受け取り、受け取った制御コマンドを実行することができる。
【0054】
危険コマンド緩和サーバ240は、マスター計算システム及び産業コントローラから出力されたコマンドを観察/監視し、コマンドを正規化及び格納し、正規化されたコマンド・データを用いて特定のコマンドについてのシミュレーション・モデルを生成し、シミュレーション・モデルの結果及び/又は履歴コマンドに基づいて危険な状況を識別し、緩和コマンド及び警告を生成し、緩和コマンド及び警告を出力する、1つ又は複数のコンピューティング・デバイスを含むことができる。実施形態において、危険コマンド緩和サーバ240は、危険な状況、及び危険な状況の緩和に応じて、緩和コマンドをマスター計算システム210、産業コントローラ220、及び/又は物理デバイス230に出力することができる。実施形態において、危険コマンド緩和サーバ240は、警告を、産業処理システムと関連したオペレータ又は経営幹部と関連付けられた管理デバイス250に出力することができる。実施形態において、危険コマンド緩和サーバ240は、図1のコンピュータ・システム/サーバ12として実装することができ、本明細書で説明されるプロセスを実施するように構成されたプログラム・モジュール(例えば、図1のプログラム・モジュール42)を含むことができる。
【0055】
管理デバイス250は、危険コマンド緩和サーバ240から警告及び/又は緩和コマンドに関する情報を受け取る1つ又は複数のコンピューティング・デバイスを含むことができる。オペレータ若しくは経営幹部は、次に、警告によって識別される危険な状況の緩和を助けるための適切なアクションをとることにより、警告に従って動作することができる。
【0056】
ネットワーク260は、図2のネットワーク・ノード10のようなネットワーク・ノードを含むことができる、付加的に又は代替的に、ネットワーク260は、1つ又は複数の有線及び/又は無線ネットワークを含むことができる。例えば、ネットワーク260は、セルラー・ネットワーク(例えば、第2世代(2G)ネットワーク、第3世代(3G)ネットワーク、第4世代(4G)ネットワーク、第5世代(5G)ネットワーク、long−term evolution(LTE)ネットワーク、global system for mobile(GSM)ネットワーク、符号分割多重アクセス(code division multiple access、CDMA)ネットワーク、evolution−data optimaized(EVDO)ネットワーク等)、public land mobile network(PLMN)、及び/又は別のネットワークを含むことができる。付加的に又は代替的に、ネットワーク260は、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、公衆交換電話網(Public Switched Telephone Network、PSTN)、アドホック・ネットワーク、管理インターネット・プロトコル(IP)ネットワーク、仮想プライベート・ネットワーク(VPN)、イントラネット、インターネット、光ファイバ・ベースのネットワーク、及び/又はこれらの若しくは他のタイプのネットワークの組み合わせを含むことができる。
【0057】
環境300内のデバイス及び/又はネットワークの量は、図5に示されるものに限定されない。実際には、環境300は、付加的なデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、又は図5に示されるものとは異なるように構成されたデバイス及び/又はネットワークを含むことができる。また、幾つかの実装において、環境300のデバイスの1つ又は複数は、環境300のデバイスの別の1つ又は複数のデバイスにより実施されるものとして説明される1つ又は複数の機能を実施することができる。環境300のデバイスは、有線接続、無線接続、又は有線接続と無線接続の組み合わせを介して、相互接続することができる。
【0058】
図6は、本発明の態様による危険コマンド緩和サーバの例示的コンポーネントのブロック図を示す。図6に示されるように、危険コマンド緩和サーバ240は、コマンド制御監視モジュール410、プロトコル・デコード・モジュール420、履歴コマンド・リポジトリ430、シミュレーション・モデリング・モジュール440、危険コマンド識別モジュール450、及び応答生成モジュール460を含むことができる。実施形態において、危険コマンド緩和サーバ240は、図6に示されるものと比べて付加的なコンポーネント又は少ないコンポーネントを含んでもよい。実施形態において、別個のコンポーネントを統合して、単一のコンピューティング・コンポーネント又はモジュールにすることができる。付加的に又は代替的に、単一のコンポーネントを、複数のコンピューティング・コンポーネント又はモジュールとして実装することができる。
【0059】
コマンド制御監視モジュール410は、産業処理システム内のマスター計算システム210及び産業コントローラ220によって送られるコマンドを監視(例えば、観察)するプログラム・モジュール(例えば、図1のプログラム・モジュール42)を含むことができる。例えば、マスター計算システム210と産業コントローラ220との間の制御チャネル、及び、産業コントローラ220と物理デバイス230との間の制御チャネルから、監視TAP(例えば、接続)が確立される。コマンド制御監視モジュール410は、監視されたコマンドを格納及び/又は出力することができる(例えば、プロトコル・デコード・モジュール420に)。
【0060】
プロトコル・デコード・モジュール420は、マスター計算システム210及び産業コントローラ220からのコマンド・データを「正規化する」、プログラム・モジュール(例えば、図1のプログラム・モジュール42)を含むことができる。例えば、マスター計算システム210からのマスター・コマンド及び産業コントローラ220からの制御コマンドは、異なる形式、ユニット、コード、プログラミング言語等のものであってもよい。プロトコル・デコード・モジュール420は、コマンドを正規化して、シミュレーション・モデリング・モジュール440により解釈可能かつ使用可能なデータ形式にすることができる。実施形態において、プロトコル・デコード・モジュール420は、正規化されたコマンド・データを履歴コマンド・リポジトリ430及び/又はシミュレーション・モデリング・モジュール440に出力することができる。
【0061】
履歴コマンド・リポジトリ430は、コマンドが産業処理システムを通じて出力又はインジェクトされるとコマンドを格納するデータ・ストレージ・システム(例えば、図1のストレージ・システム34)を含むことができる。履歴コマンド・リポジトリ430は、必要に応じて、任意の期間、コマンドを格納することができる。
【0062】
シミュレーション・モデリング・モジュール440は、プロトコル・デコード・モジュール420から正規化されたコマンド・データを受け取る、プログラム・モジュール(例えば、図1のプログラム・モジュール42)を含むことができ、マスター計算システム210及び/又は産業コントローラ220により出力された単一のコマンド又はコマンドのグループについてのシミュレーションを行うことができる。シミュレーションは、コマンドの影響を予測して、コマンドが危険なものであるかどうかを判断する。実施形態において、シミュレーション・モデリング・モジュール440は、離散シミュレーション・モデリング(discrete simulation modeling)、連続的モデリング(continuousmodeling)、代数モデリング(algebraic modeling)、確率論的モデリング(stochastic modeling)、決定論的モデリング(deterministicmodeling)、動的システム・シミュレーション・モデリング(dynamic systemsimulation modeling)、ローカル又は分散型モデリング(local ordistributed modeling)、及び/又は他のシミュレーション技術のような、任意の数のシミュレーション技術を使用することができる。説明に役立つ実例として、シミュレーションの結果は、溶液の温度、流体の圧力、及び/又はコマンドの他の影響を予測することができる。シミュレーションの結果は、一定期間にわたる影響(例えば、コマンドが処理された後、数分間、数時間、又は数日間の流体又はチャンバの圧力)を予測することができる。
【0063】
実施形態において、シミュレーション・モデリング・モジュール440はまた、緩和コマンドの影響を予測することもできる。例えば、複数の候補緩和コマンドのセットをシミュレーション・モデリング・モジュール440に入力することができ、シミュレーション・モデリング・モジュール440は、シミュレーション・モデルを実行して、候補緩和コマンドのセットの影響を予測することができる。シミュレーション・モデリング・モジュール440は、シミュレーション・モデルの結果に基づいて、候補緩和コマンドを「有効」なもの又は「有効でない」ものとしてマーク付けすることができる。代替的な実施形態において、シミュレーション・モデリング・モジュール440は、危険な状況又は状態の拡散の際に緩和コマンドのセットが有する有効性の度合いを識別する「有効性スコア」を生成することができる。例えば、有効性スコアは、危険な状況を拡散又は緩和するための時間、緩和コマンドを実施する危険レベル等に基づくことができる。結果に基づいて、最良の予測結果を有する候補緩和コマンドのセットを選択し、産業処理システム全体にわたってインジェクトする(例えば、出力する)。
【0064】
危険コマンド識別モジュール450は、シミュレーション・モデリング・モジュール440からのシミュレーションの結果及び履歴コマンド・リポジトリ430により格納される履歴コマンドに基づいて、コマンドが危険なものであるかどうかを判断する、プログラム・モジュール(例えば、図1のプログラム・モジュール42)を含むことができる。実施形態において、危険コマンド識別モジュール450は、コマンドについての危険スコアを生成することができ、このスコアは、シミュレーションの結果及び/又は履歴コマンドに基づいて重み付けすることができる。例えば、コマンドが、履歴的に、過去の同じ時間に産業処理システムにインジェクトされなかった場合、危険コマンド識別モジュール450は、コマンドが以前にインジェクトされていた場合よりも重く重み付けすること又は危険スコアを増加させることができる。
【0065】
コマンドが履歴的にインジェクトされたときから、特定のコマンドが順番通りでない場合、特定の所定の重み付け又はスコアを割り当てることができる。特定のコマンドが履歴的にインジェクト/観察されたコマンドに対して新しい場合、異なる所定の重み付け又はスコアを割り当てることができる。コマンドのコンテンツが履歴的にインジェクト/観察された典型的なコマンドとは異なる場合、異なる所定の重み付け又はスコアを割り当てることができる。実施形態において、所定の重み付けの任意の組み合わせを用いて、特定のコマンドについての危険スコアを計算することができる。さらに、コマンドについてのシミュレーションの結果を用いて(例えば、履歴コマンドとの比較と組み合わせて)、危険スコアを生成することができる。実施形態において、危険スコアが特定の閾値を上回った場合、メッセージが応答生成モジュール460に出力される。実施形態において、応答生成モジュール460は、コマンドが観察される度に、コマンドの危険を評価する(例えば、危険スコアを判定する)ことができる。付加的に又は代替的に、危険コマンド識別モジュール450は、要求に応じて、定期的な間隔などで、危険スコアを生成し、危険スコアを分析することができる。
【0066】
応答生成モジュール460は、危険なコマンドを識別する危険コマンド識別モジュール450からメッセージ又は表示を受け取る、プログラム・モジュール(例えば、図1のプログラム・モジュール42)を含むことができる。応答生成モジュール460は、危険なコマンドの影響を打ち消す又は緩和するために緩和コマンドを生成することができる。実施形態において、応答生成モジュール460は、危険なコマンドと関連付けられたシミュレーション・モデルから生じる結果に基づいて、緩和コマンドを生成することができる。例えば、応答生成モジュール460は、シミュレーション・モデルからのデータにより識別されるような予測される影響を打ち消すために緩和コマンドを生成することができる。実施形態において、応答生成モジュール460は、シミュレーション・モデリング・モジュール440と通信して、シミュレーション・モデルを生成し、候補緩和コマンドのセットの影響を予測することができる。
【0067】
応答生成モジュール460は、予測される結果が最も好適な(例えば、危険なコマンドの影響を最も有効に緩和する)候補緩和コマンドのセットを選択することができる。例えば、応答生成モジュール460は、危険なコマンドの影響を最も迅速かつ安全に緩和する候補緩和コマンドのセットを選択することができる。代替的な実施形態において、応答生成モジュール460は、コスト変数に基づいて、候補緩和コマンドのセットを選択することができる(例えば、コストが最小であり、生じる無駄が最も少なく、最速であり、最も安全なコマンドのセットの組み合わせが選択される)。代替的な実施形態において、応答生成モジュール460は、同様のタイプの危険に対して以前に使用された緩和コマンドに基づいて、緩和コマンドを生成することができる。代替的な実施形態において、応答生成モジュール460は、特定のタイプの危険に対する所定のコマンドのセットに基づいて、緩和コマンドを生成することができる。
【0068】
代替的な実施形態において、オペレータは、緩和コマンドのセットを手作業で生成することができ、又は応答生成モジュール460により生成された緩和コマンドのセットを修正することができる。実施形態において、緩和コマンドを用いて、特定の時間において特定のデバイスを制御し、危険なコマンドの影響を緩和することができる。緩和コマンドは、遅延、条件付き規則等を含むことができる。緩和コマンドについてのシミュレーションの結果を用いて、緩和コマンドを調整すること(例えば、コマンドの順序、コマンドのコンテンツ、コマンドの遅延等を調整すること)が可能である。
【0069】
図7は、本発明の態様による産業処理システムにおいて危険な状況を緩和するための例示的なプロセスの図を示す。図7に示されるように、マスター計算システム210は、コマンドを産業コントローラ220に出力し、危険コマンド緩和サーバ240は、観察TAP1.1を介して、コマンド及び通信フローを観察する(例えば、監視する)。例えば、プロトコル・デコード・モジュール420は、コマンドを監視することができる。コマンドが、インジェクションTAP(例えば、インジェクションTAP2.1、2.2及び2.3)を介して、マスター計算システム210から産業コントローラ220にインジェクトされる。産業コントローラ220から物理デバイス230へのコマンドは、観察TAP3.1、3.2及び3.3を介して、危険コマンド緩和サーバ240によって(例えば、プロトコル・デコード・モジュール420により)観察される。また、観察TAP3.1、3.2及び3.3を介して、物理デバイス230から産業コントローラ220への、コマンドへの応答(例えば、読み出し値及び/又は他のタイプの応答)が観察される。実施形態において、コマンドへの応答は、温度測定、回転毎分(rotation per minute、RPM)測定値、及び/又は他のタイプの測定値/読み出し値を含むことができる。産業コントローラ220から物理デバイス230へのコマンドは、インジェクションTAP4.1、4.2、4.3、4.4及び4.5を介して、物理デバイス230にインジェクトされる。
【0070】
観察TAP1.1、3.1、3.2及び3.3を介したコマンド/応答の監視に基づいて、プロトコル・デコード・モジュール420は、コマンドを正規化し、正規化されたコマンド700を履歴コマンド・リポジトリ430及びシミュレーション・モデリング・モジュール440に出力することができる。履歴コマンド・リポジトリ430は、正規化されたコマンド700を格納することができる。各コマンドについて(又は一定期間にわたる複数のコマンドのグループについて)、シミュレーション・モデリング・モジュール440は、1つ又は複数のシミュレーション・モデルを実行し、予測される影響710を危険コマンド識別モジュール450に出力することができる。危険コマンド識別モジュール450は、シミュレーション・モデリング・モジュール440から予測される影響710を、そして、履歴コマンド・リポジトリ430から履歴コマンド715を受け取ることができる。予測される影響710及び/又は履歴コマンド715に基づいて、危険コマンド識別モジュール450は、(例えば、単一のコマンド又はコマンドのグループについての)危険スコア720を生成することができる。スコア720が閾値を上回る場合、危険コマンド識別モジュール450は、識別された危険なコマンド725の表示を応答生成モジュール460に出力することができる。応答生成モジュール460は、緩和コマンド730を生成し、緩和コマンドをマスター計算システム210、産業コントローラ220、及び/又は物理デバイス230に出力することができる(例えば、インジェクションTAP2.0、2.1、2.2、2.3、4.1、4.2、4.3、及び/又は4.4を介して)。例えば、本明細書で説明されるように、緩和コマンド730を生成するとき、応答生成モジュール460はまた、コマンドをインジェクトするための、産業処理システム内の場所(例えば、コンポーネント)を識別することもできる。実施形態において、応答生成モジュール460は、警告735(例えば、管理デバイス250への)を出力することができる。特定の量のマスター計算システム210、産業コントローラ220、物理デバイス230、観察TAP及びインジェクトTAPが、図7に示され、実際には、任意の量及び構成のマスター計算システム210、産業コントローラ220、物理デバイス230、観察TAP及びインジェクトTAPを、種々の産業処理システムのために実装することができる。
【0071】
図8は、本発明の態様による産業処理システムにおいて危険な状況を緩和するための例示的フローチャートを示す。図8のステップは、例えば図5及び図7の環境において実施することができ、図5及び図7に示される要素の参照番号を用いて説明される。上述のように、フローチャートは、本発明の種々の実施形態によるシステム、方法、及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。
【0072】
図8に示されるように、プロセス800は、産業処理システム内の通信フローを監視することを含むことができる(ステップ810)。例えば、コマンド制御監視モジュール410に関して上述されたように、危険コマンド緩和サーバ240は、マスター計算システム210から産業コントローラ220に出力されたコマンド出力、及び産業コントローラ220から物理デバイス230に出力されたコマンド出力のような通信フローを監視することができる。付加的に又は代替的に、危険コマンド緩和サーバ240は、物理デバイス230により出力されたコマンドへの応答のような通信フローを監視することができる。実施形態において、危険コマンド緩和サーバ240は、(例えば、図7に関して説明されたように)観察TAPを介して、通信フローを監視することができる。
【0073】
プロセス800はまた、通信フロー内のデータを正規化し、格納することを含むこともできる(ステップ820)。例えば、プロトコル・デコード・モジュール420及び履歴コマンド・リポジトリ430に関して上述されたように、危険コマンド緩和サーバ240は、マスター計算システム210及び産業コントローラ220からのコマンド及び応答データを「正規化する」ことができる。例えば、マスター計算システム210からのマスター・コマンド及び産業コントローラ220からの制御コマンドは、異なる形式、ユニット、コード、プログラミング言語等のものであってもよい。プロトコル・デコード・モジュール420は、コマンドを正規化して、シミュレーション・モデリング・モジュール440により解釈可能かつ使用可能なデータ形式にする。実施形態において、プロトコル・デコード・モジュール420は、正規化されたコマンド・データを、格納のために履歴コマンド・リポジトリ430に出力することができる。
【0074】
プロセス800はまた、正規化されたコマンド・データを用いて、特定のコマンドについてのシミュレーション・モデルを生成することをさらに含むことができる(ステップ830)。例えば、シミュレーション・モデリング・モジュール440に関して上述されたように、危険コマンド緩和サーバ240は、マスター計算システム210及び/又は産業コントローラ220により出力された単一のコマンド又はコマンドのグループについてのシミュレーションを行うことができる。シミュレーションは、コマンドが危険であるかどうかを判断するために、コマンド(又はコマンドのグループ)の影響を予測することができる。実施形態において、危険コマンド緩和サーバ240は、離散シミュレーション・モデリング、連続的モデリング、代数モデリング、確率論的モデリング、決定論的モデリング、動的システム・シミュレーション・モデリング、ローカル又は分散型モデリング、及び/又は他のシミュレーション技術のような、任意の数のシミュレーション技術を使用することができる。説明に役立つ実例として、シミュレーションの結果は、溶液の温度、流体の圧力、及び/又はコマンドの他の影響を予測することができる。シミュレーションの結果は、一定期間にわたる影響(例えば、コマンドが処理された後、数分間、数時間、又は数日間の流体又はチャンバの圧力)を予測することができる。
【0075】
プロセス800はまた、危険なコマンドを識別することをさらに含むこともできる(ステップ840)。例えば、危険コマンド識別モジュール450に関して上述されたように、危険コマンド緩和サーバ240は、シミュレーション・モデリング・モジュール440からのシミュレーションの結果及び履歴コマンド・リポジトリ430により格納された履歴コマンドに基づいて、コマンドが危険なものであるかどうかを判断することができる(例えば、以前の同様のコマンド又は同じタイプのコマンドのデータとは履歴的に異なるコマンド)。コマンド(又はコマンドのグループ)が所定の閾値を上回る場合、危険コマンド緩和サーバ240は、危険な状況又は危険なイベントが差し迫っていると判断する。コマンドのスコア化に関する付加的な詳細及び例が、危険コマンド緩和サーバ240に関して上述される。
【0076】
プロセス800は、緩和コマンド及び警告を生成することをさらに含むことができる(ステップ850)。例えば、応答生成モジュール460に関して上述されたように、危険コマンド緩和サーバ240は、危険なコマンドの影響を打ち消す又は緩和するために緩和コマンドを生成することができる。実施形態において、危険コマンド緩和サーバ240は、危険なコマンドと関連付けられたシミュレーション・モデルから生じる結果に基づいて、緩和コマンドを生成することができる。例えば、危険コマンド緩和サーバ240は、シミュレーション・モデルからのデータにより識別されるような予測される影響を打ち消すために緩和コマンドを生成することができる。実施形態において、危険コマンド緩和サーバ240は、候補緩和コマンドのセットの影響を予測するために、シミュレーション・モデルを実装することができる。
【0077】
代替的な実施形態において、危険コマンド緩和サーバ240は、以前のシミュレーションから生じる結果に基づいて、シミュレーション・モデルを繰り返し実行することができる。例えば、危険コマンド緩和サーバ240は、緩和コマンドのセットを、シミュレーション・モデルへの入力として入力することができる。シミュレーションの結果に基づいて、危険コマンド緩和サーバ240は、緩和コマンドのセットを調整し(例えば、改善し)、シミュレーションを再実行することができる。危険コマンド緩和サーバ240は、シミュレーションが望ましい結果(例えば、危険な状況を有効に緩和する結果)を予測するまで、シミュレーションの実行を継続することができる。実施形態において、危険コマンド緩和サーバ240は、危険な状況(例えば、状況のタイプ、危険な状況に影響を受ける産業処理システムの部分、危険な状況を拡散させるための示唆される緩和コマンド、又は緩和コマンドを判断できなかったという表示等)を示す警告を生成することができる。緩和コマンドの選択及び生成に関する付加的な詳細が、図6の応答生成モジュール460に関して上述される。
【0078】
プロセス800はまた、緩和コマンド及び警告を出力することを含むこともできる(ステップ860)。例えば、応答生成モジュール460に関して上述されたように、危険コマンド緩和サーバ240は、緩和コマンドを、マスター計算システム210、産業コントローラ220、及び/又は物理デバイス230のような、産業処理システムのコンポーネントに出力することもできる(例えば、図7に関して上述されたようなインジェクトTAPを介して)。上述のように、危険コマンド緩和サーバ240は、遅延を有した状態で緩和コマンドを出力することができる(例えば、遅延時、コマンドのインジェクトは、より好適な結果をもたらす)。実施形態において、危険コマンド緩和サーバ240は、危険な状況及び/又は危険なコマンドを識別する警告を管理デバイス250に出力することができる。
【0079】
実施形態において、ソリューション・インテグレータ(SolutionIntegrator)などのサービス・プロバイダは、本明細書に記載されているプロセスの実行を提供することができる。この場合、サービス・プロバイダは、1人又は複数の顧客に対して本発明のプロセス・ステップを実行するコンピュータ・インフラストラクチャの作成、維持、配備、サポートなどを行うことができる。これらの顧客は、例えば、技術を使用する任意の企業にすることができる。それと引き替えに、サービス・プロバイダは、購読契約及び/又は料金契約の下で、顧客から支払いを受けること、及び/又は1人又は複数のサード・パーティに対して広告コンテンツを販売したことによる支払いを受けることができる。
【0080】
さらに付加的な実施形態において、本発明は、ネットワークを介したコンピュータ実装方法を提供する。この場合、コンピュータ・システム/サーバ12(図1)などのコンピュータ・インフラストラクチャを提供し、本発明のプロセスを実行するための1つ又は複数のシステムの取得(例えば、生成、購入、使用、修正等)を行い、コンピュータ・インフラインストラクチャに配備することができる。この点で、システムの配備は、(1)コンピュータ可読媒体から、コンピュータ・システム/サーバ12(図1に示されるような)などのコンピュータ・デバイス上にプログラム・コードをインストールすること、(2)1つ又は複数のコンピューティング・デバイスをコンピュータ・インフラストラクチャに追加すること、及び(3)コンピュータ・インフラストラクチャが、本発明のプロセスを実行するのを可能にするように、コンピュータ・インフラストラクチャの1つ又は複数の既存のシステムを組み込む及び/又は修正することのうちの1つ又は複数を含むことができる。
【0081】
本発明の種々の実施形態の説明は、説明を目的として記載されたが、網羅的であること、又は開示された実施形態に限定することを意図したものではない。当業者には、説明された実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途、若しくは市場で見出される技術に優る技術的改善を最も良く説明するために、又は当業者が本明細書に開示される実施形態を理解するのを可能にするために、選択された。
【符号の説明】
【0082】
10:クラウド・コンピューティング・ノード
12:コンピュータ・システム/サーバ
16:プロセッサ
18:バス
28:システム・メモリ
34:データ・ストレージ・システム
42:プログラム・モジュール
50:クラウド・コンピューティング環境
60:ハードウェア及びソフトウェア層
70:仮想化層
80:管理層
90:ワークロード層
96:危険緩和コンポーネント
200:産業処理システム
210:マスター計算システム
220:産業コントローラ
230:物理デバイス
240:危険コマンド緩和サーバ
250:管理デバイス
260:ネットワーク
300:環境
410:コマンド制御監視モジュール
420:プロトコル・デコード・モジュール
430:履歴コマンド・リポジトリ
440:シミュレーション・モデリング・モジュール
450:危険コマンド識別モジュール
460:応答生成モジュール
700:正規化されたコマンド
710:予測される影響
715:履歴コマンド
720:危険スコア
725:識別された危険なコマンド
730:緩和コマンド
735:警告
800:プロセス
図1
図2
図3
図4
図5
図6
図7
図8