(57)【要約】【課題】分散型工業プロセス監視及び分析システム及び方法が、プロセスプラント内のオペレーションに関して提供される。【解決手段】複数の分散型データエンジン（ＤＤＥ）がプロセスプラント内に埋め込まれて、プロセスコントローラ等のデータソースによって生成されるデータを収集及び記憶し得る。ＤＤＥはデータ分析ネットワークによって接続されて、サブスクリプションまたはクエリによってデータ送信を容易にし得る。ＤＤＥは複数のクラスタとして構成されてもよく、これらは更にローカルクラスタ及び集中型クラスタを含み得る。ローカルクラスタは、データソースからストリーミングデータを獲得し、選択されるデータをデータコンシューマにストリーミングし得る。集中型クラスタはローカルクラスタを登録し、そこからのデータを受信し、受信したデータに対してデータ分析機能を実施し得る。分析されたデータは更に、データコンシューマに送信され得る。【選択図】図２Ａ
2020021502.tif 000002
【特許請求の範囲】
【請求項１】
プロセスを制御するように動作しているプロセス制御プラントのデータ分析ネットワーク内に含まれるクラスタによって、前記クラスタの存在を告知することと、
前記告知に対して応答し、前記プロセス制御プラントにおける前記プロセスの前記制御から得られる連続データを生成するデータソースを、前記クラスタによって、登録することと、
前記データソースによって生成された前記連続データを、前記クラスタによって、受信することと、
前記データソースによって生成された前記連続データの少なくとも一部を、前記データ分析ネットワークを介して、前記クラスタによって、データコンシューマへとストリーミングすることと、を含む、方法。
【請求項２】
前記データコンシューマが、前記データソースにバインドされる、請求項１に記載の方法。
【請求項３】
前記データソースが、前記プロセスを制御するようにプロセス制御通信ネットワークを通じて前記連続データを送信する、プロセス制御デバイスであり、かつ
前記プロセス制御デバイスによって生成された前記連続データを受信することが、前記プロセスを制御するように前記プロセス制御通信ネットワークを通じて前記プロセス制御デバイスによって送信された前記連続データの内容の少なくとも一部のコピーを、前記データ分析ネットワークを介して受信することを含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記データソースによって生成された前記連続データを、前記クラスタにおいて、記憶することと、
前記データソースによって生成された前記連続データの少なくとも一部分を、前記クラスタにおいて、キャッシュすることと、を更に含む、請求項１〜請求項３の何れか１項に記載の方法。
【請求項５】
前記データコンシューマから前記データ分析ネットワークを介して、前記データソースによって生成された前記連続データの前記少なくとも一部に関するクエリを受信することを更に含み、前記データソースによって生成された前記連続データの前記少なくとも一部を前記データコンシューマにストリーミングすることが、前記クエリに基づく、請求項１〜請求項４の何れか１項に記載の方法。
【請求項６】
前記クラスタがローカルクラスタであり、前記方法が、
リージョナルまたは集中型クラスタによって生成される告知を、前記ローカルクラスタによって検出することと、
前記ローカルクラスタを、前記リージョナルまたは集中型クラスタに、前記ローカルクラスタによって登録することと、
前記ローカルクラスタに対応する分析データを、前記データ分析ネットワークを介して、前記リージョナルまたは集中型クラスタに、前記ローカルクラスタによってストリーミングすることと、を更に含む、請求項１〜請求項５の何れか１項に記載の方法。
【請求項７】
前記ローカルクラスタに対応する前記分析データを、前記リージョナルまたは集中型クラスタにストリーミングすることが、前記ローカルクラスタに対応する前記分析データを、前記リージョナルまたは集中型クラスタに公開することを含む、請求項６に記載の方法。
【請求項８】
前記データソースによって生成された前記連続データの少なくとも一部分に対して、前記ローカルクラスタによって、１つ以上のデータ分析機能を実施することを更に含み、
前記ローカルクラスタに対応する前記分析データを、前記リージョナルまたは集中型クラスタにストリーミングすることが、前記データソースによって生成された前記連続データの前記少なくとも一部分に対して実施された前記１つ以上のデータ分析機能の結果を、前記リージョナルまたは集中型クラスタにストリーミングすることを含む、請求項６又は請求項７に記載の方法。
【請求項９】
前記データソースによって生成された前記連続データの前記少なくとも一部分に対して、前記１つ以上のデータ分析機能を実施することが、前記データソースによって生成された前記連続データの前記少なくとも一部分、及び前記ローカルクラスタに登録された別のデータソースによって生成されたデータに対して、前記１つ以上のデータ分析機能を実施することを含む、請求項８に記載の方法。
【請求項１０】
前記クラスタが、プロセスプラント内に埋め込まれ、かつ前記データ分析ネットワークに連結される、複数の分散型データエンジン（ＤＤＥ）のうちの１つ以上を含む、請求項１〜請求項９の何れか１項に記載の方法。
【請求項１１】
データ分析ネットワーク内に含まれる集中型クラスタによって、前記集中型クラスタの存在を告知することと、
前記告知に対して応答し、プロセス制御プラント内のプロセスを制御する結果として生成される連続データを記憶及びストリーミングするように構成されるローカルクラスタを、前記集中型クラスタによって登録することであって、前記ローカルクラスタが、プロセスプラント内に埋め込まれ、前記プロセスを制御するように動作しながら、前記連続データの少なくとも一部分を生成する１つ以上のデータソースと通信可能に連結される、登録することと、
前記ストリーミングされる連続データの少なくとも一部分を、前記ローカルクラスタから前記集中型クラスタによって受信することと、
前記ローカルクラスタから受信した前記ストリーミングされた連続データの前記少なくとも一部分に対して、１つ以上のデータ分析機能を実施することと、
前記１つ以上のデータ分析機能の出力を、データ分析ネットワークを介して、データコンシューマにストリーミングすることと、を含む、方法。
【請求項１２】
前記データコンシューマが、前記集中型クラスタにバインドされる、請求項１１に記載の方法。
【請求項１３】
前記ローカルクラスタと通信可能に連結する前記１つ以上のデータソースが、プロセス制御デバイスを含み、かつ前記ストリーミングされる連続データの前記少なくとも一部分が、前記ローカルクラスタから、前記データ分析ネットワークを介して前記集中型クラスタにおいて受信され、前記プロセスを制御するようにプロセス制御通信ネットワークを通じて前記プロセス制御デバイスによって送信されるデータの内容の少なくとも一部のコピーを含む、請求項１１又は請求項１２に記載の方法。
【請求項１４】
前記ローカルクラスタから前記ストリーミングされる連続データの前記少なくとも一部分を受信することが、前記ローカルクラスタによって前記集中型クラスタに公開されているデータを受信することを含む、請求項１１〜請求項１３の何れか１項に記載の方法。
【請求項１５】
前記ローカルクラスタから受信した前記ストリーミングされる連続データの前記少なくとも一部分、及び前記１つ以上のデータ分析機能の前記出力を、前記集中型クラスタにおいて記憶することを更に含む、請求項１１〜請求項１４の何れか１項に記載の方法。
【請求項１６】
前記データコンシューマから前記データ分析ネットワークを介して、前記１つ以上のデータ分析機能の前記出力に関するクエリを受信することを更に含み、前記１つ以上のデータ分析機能の前記出力の前記ストリーミングが、前記クエリに基づく、請求項１１〜請求項１５の何れか１項に記載の方法。
【請求項１７】
１つ以上の追加的なローカルクラスタを前記集中型クラスタに登録することと、前記１つ以上の追加的なローカルクラスタからそれぞれのデータを受信することとを更に含み、
前記ローカルクラスタから受信した前記ストリーミングされる連続データの前記少なくとも一部分に対して、前記１つ以上のデータ分析機能を実施することが、前記ローカルクラスタから受信した前記ストリーミングされる連続データの少なくとも一部分、及び前記１つ以上の追加的なローカルクラスタから受信した前記それぞれのデータに対して、前記１つ以上のデータ分析機能を実施することを含む、請求項１１〜請求項１６の何れか１項に記載の方法。
【請求項１８】
前記集中型クラスタによって、別の集中型クラスタと共に前記集中型クラスタを登録することを更に含み、
前記１つ以上のデータ分析機能の前記出力を、前記データコンシューマにストリーミングすることが、前記１つ以上のデータ分析機能の前記出力を、他方の集中型クラスタにストリーミングすることを含む、請求項１１〜請求項１７の何れか１項に記載の方法。
【請求項１９】
前記集中型クラスタが、クラウドコンピューティング環境にホストされる、請求項１１〜請求項１８の何れか１項に記載の方法。
【請求項２０】
前記集中型クラスタが、前記プロセスプラント内に埋め込まれる、複数の分散型データエンジン（ＤＤＥ）のうちの１つ以上を含む、請求項１１〜請求項１８の何れか１項に記載の方法。
【請求項２１】
クラスタ間の分析データ交換を確立するために使用される、ロケーションサービスまたはデータディクショナリのうちの少なくとも１つを、前記集中型クラスタによって提供することを更に含む、請求項１１〜請求項２０の何れか１項に記載の方法。
【請求項２２】
前記集中型クラスタによって、インターフェイスを提供することを更に含み、これを介して、ユーザが、前記データ分析ネットワーク内の複製及びバックアップに関する規則のセットを管理する、請求項１１〜請求項２１の何れか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、広義には、プロセスプラント及びプロセス制御システムに関し、より具体的には、プロセスプラント及びプロセス制御システムによって生成されるリアルタイムデータのリアルタイムパフォーマンス監視及び分析に関する。
【０００２】
関連出願の相互参照
本出願は、２０１５年１０月９日に出願された、ＤＩＳＴＲＩＢＵＴＥＤ  ＩＮＤＵＳＴＲＩＡＬ  ＰＥＲＦＯＲＭＡＮＣＥ  ＭＯＮＩＴＯＲＩＮＧ  ＡＮＤ  ＡＮＡＬＹＴＩＣＳと題される、米国仮出願第３２／２３９，６２０号の利益を主張し、この仮出願の全体が、ここに、参照により本明細書に明示的に組み込まれる。本出願は、（ｉ）２０１３年３月４日に出願された、「ＢＩＧ  ＤＡＴＡ  ＩＮ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭＳ」と題される米国出願第１３／７８４，０４１号、（ｉｉ）２０１４年２月６日に出願された、「ＣＯＬＬＥＣＴＩＮＧ  ＡＮＤ  ＤＥＬＩＶＥＲＩＮＧ  ＤＡＴＡ  ＴＯ  Ａ  ＢＩＧ  ＤＡＴＡ  ＭＡＣＨＩＮＥ  ＩＮ  Ａ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭ」と題される米国出願第１４／１７４，４１３号、（ｉｉｉ）２０１４年８月１１日に出願された、「ＳＥＣＵＲＩＮＧ  ＤＥＶＩＣＥＳ  ＴＯ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭＳ」と題される米国出願第１４／４５６，７６３号、（ｉｖ）２０１４年３月１７日に出願された、「ＤＡＴＡ  ＭＯＤＥＬＩＮＧ  ＳＴＵＤＩＯ」と題される米国出願第１４／２１６，８２３号、（ｖ）２０１４年１月３１日に出願された、「ＭＡＮＡＧＩＮＧ  ＢＩＧ  ＤＡＴＡ  ＩＮ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭＳ」と題される米国出願第１４／１６９，９６５号、（ｖｉ）２０１４年３月１４日に出願された、「ＤＥＴＥＲＭＩＮＩＮＧ  ＡＳＳＯＣＩＡＴＩＯＮＳ  ＡＮＤ  ＡＬＩＧＮＭＥＮＴＳ  ＯＦ  ＰＲＯＣＥＳＳ  ＥＬＥＭＥＮＴＳ  ＡＮＤ  ＭＥＡＳＵＲＥＭＥＮＴＳ  ＩＮ  Ａ  ＰＲＯＣＥＳＳ」と題される米国出願第１４／２１２，４１１号、（ｖｉｉ）２０１４年３月１４日に出願された、「ＤＩＳＴＲＩＢＵＴＥＤ  ＢＩＧ  ＤＡＴＡ  ＩＮ  Ａ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭ」と題される米国出願第１４／２１２，４９３号、（ｖｉｉｉ）２０１４年１０月６日に出願された、「ＳＴＲＥＡＭＩＮＧ  ＤＡＴＡ  ＦＯＲ  ＡＮＡＬＹＴＩＣＳ  ＩＮ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭＳ」と題される米国出願第１４／５０６，８６３号、（ｉｘ）２０１４年１０月６日に出願された、「ＲＥＧＩＯＮＡＬ  ＢＩＧ  ＤＡＴＡ  ＩＮ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭＳ」と題される米国出願第１４／５０７，１８８号、（ｘ）２０１４年１０月６日に出願された、「ＤＡＴＡ  ＰＩＰＥＬＩＮＥ  ＦＯＲ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭ  ＡＮＡＬＹＴＩＣＳ」と題される米国出願第６２／０６０，４０８号、及び（ｘｉ）２０１４年１０月６日に出願された、「ＡＵＴＯＭＡＴＩＣ  ＳＩＧＮＡＬ  ＰＲＯＣＥＳＳＩＮＧ−ＢＡＳＥＤ  ＬＥＡＲＮＩＮＧ  ＩＮ  Ａ  ＰＲＯＣＥＳＳ  ＰＬＡＮＴ」と題される米国出願第１４／５０７，２５２号に関連し、これらの出願の全開示が、ここに、参照により本明細書に明示的に組み込まれる。
【背景技術】
【０００３】
物理的物質または生産物を製造、精製、変形、生成、または生産するための、化学、石油、工業、または他のプロセスプラントにおいて使用されるもの等の分散型プロセス制御システムは、典型的には、アナログバス、デジタルバス、またはアナログ／デジタル結合バスを介して、あるいは無線通信リンクまたはネットワークを介して、１つ以上のフィールドデバイスと通信可能に連結される、１つ以上のプロセスコントローラを含む。例えば、バルブ、バルブポジショナ、スイッチ、及び送信器（例えば、温度センサ、圧力センサ、レベルセンサ、及び流量センサ）である場合があるフィールドデバイスは、プロセス環境内に配置され、概して、バルブの開放または閉鎖、温度もしくは圧力といったプロセスパラメータ及び／または環境パラメータの測定等の物理的またはプロセス制御機能を実行して、プロセスプラントまたはシステム内で実行中の１つ以上のプロセスを制御する。公知のＦｉｅｌｄｂｕｓプロトコルに準拠するフィールドデバイス等の、スマートフィールドデバイスは、制御計算、アラーム機能、及びコントローラ内で一般に実装される他の制御機能もまた実行し得る。プロセスコントローラは、これもまた同様に典型的にはプラント環境内に配置されるが、フィールドデバイスによって行われるプロセス測定を示す信号及び／またはフィールドデバイスに関する他の情報を受信し、例えば、プロセス制御判断を行い、受信した情報に基づき制御信号を生成し、ＨＡＲＴ（登録商標）、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）、及びＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓフィールドデバイス等の、フィールドデバイスで実行される制御モジュールまたはブロックと連携する、異なる制御モジュールを実行するコントローラアプリケーションを実行する。コントローラ内の制御モジュールは、通信回線またはリンクを通じてフィールドデバイスに制御信号を送信し、それによって、プロセスプラントの少なくとも一部分の運転を制御して、例えばプラント内で実行または遂行中の１つ以上の工業プロセスの少なくとも一部分を制御する。例えば、コントローラ及びフィールドデバイスは、プロセスプラントのプロセス制御システムによって制御されているプロセスの少なくとも一部分を制御する。
【０００４】
フィールドデバイス及びコントローラからの情報は、制御室もしくはより厳しいプラント環境からは離れた他の場所に典型的には配置される、オペレータワークステーション、パーソナルコンピュータもしくはコンピューティングデバイス、データヒストリアン、レポートジェネレータ、集中データベース、または他の集中管理コンピューティングデバイス等の、１つ以上の他のハードウェアデバイスに対して、通常、データハイウェイまたは通信ネットワークを通じて利用可能にされる。これらのハードウェアデバイスの各々は、典型的には、プロセスプラントにわたって、またはプロセスプラントの一部分にわたって集中化される。これらのハードウェアデバイスは、例えば、オペレータが、プロセス制御ルーチンの設定の変更、コントローラもしくはフィールドデバイス内の制御モジュールの運転の修正、プロセスの現在の状態の閲覧、フィールドデバイス及びコントローラによって生成されたアラームの閲覧、担当者の訓練もしくはプロセス制御ソフトウェアの試験を目的としたプロセスの運転のシミュレーション、構成データベースの保守及び更新等の、プロセスの制御ならびに／またはプロセスプラントの運転に関する機能を実行することを可能にし得るアプリケーションを実行する。ハードウェアデバイス、コントローラ、及びフィールドデバイスによって活用されるデータハイウェイは、有線通信パス、無線通信パス、または有線及び無線通信パスの組み合わせを含み得る。
【０００５】
例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されている、ＤｅｌｔａＶ（商標）制御システムは、プロセスプラント内の多様な場所に配置された異なる装置内に記憶され、それら異なる装置によって実行される複数のアプリケーションを含む。１つ以上のワークステーションまたはコンピューティングデバイス内に備わる、構成アプリケーションは、ユーザによる、プロセス制御モジュールの作成または変更、及びデータハイウェイを経由した、これらのプロセス制御モジュールの、専用分散型コントローラへのダウンロードを可能にする。典型的には、これらの制御モジュールは、通信可能に相互接続された機能ブロックで構成され、これらの機能ブロックは、それに対する入力に基づき制御スキーム内で機能を実行し、出力を制御スキーム内の他の機能ブロックに提供するオブジェクト指向プログラミングプロトコル内のオブジェクトである。また、構成アプリケーションは、データをオペレータに対して表示するため、かつプロセス制御ルーチン内の設定点等の設定のオペレータによる変更を可能にするために表示アプリケーションが使用するオペレータインターフェイスを、構成設計者が作成または変更することを可能にし得る。各専用コントローラ、及び一部の場合においては、１つ以上のフィールド装置は、実際のプロセス制御機能を実装するために、それらに割り当てられてダウンロードされた制御モジュールを実行するそれぞれのコントローラアプリケーションを記憶及び遂行する。表示アプリケーションは、１つ以上のオペレータワークステーション（またはオペレータワークステーション及びデータハイウェイと通信可能に接続された１つ以上のリモートコンピューティングデバイス）上で遂行され得るが、コントローラアプリケーションからデータハイウェイを経由してデータを受信し、このデータをユーザインターフェイスを使用して、プロセス制御システム設計者、オペレータ、またはユーザに表示して、オペレータのビュー、エンジニアのビュー、技術者のビュー等の、いくつかの異なるビューのうちのいずれかを提供し得る。データヒストリアンアプリケーションが、典型的には、データハイウェイにわたって提供されたデータの一部または全てを収集及び記憶するデータヒストリアンデバイスに記憶され、それによって遂行される一方で、構成データベースアプリケーションは、現在のプロセス制御ルーチン構成及びそれに関連するデータを記憶するためにデータハイウェイに接続される、更に離れたコンピュータで実行され得る。あるいは、構成データベースは、構成アプリケーションと同じワークステーション内に配置されてもよい。
【０００６】
プロセスプラントまたはプロセス制御システムにおいて、異常状態または故障の証拠が見出された場合（例えば、アラームが発生した場合、あるいはプロセス測定値またはアクチュエータが過剰なばらつきを有することが見出された場合）、オペレータ、器械技術者、またはプロセス技術者は、典型的には、システム、及びシステムを通るプロセスのフローパスによって制御されているプロセスについての彼または彼女の知識と共に、分析ツールを使用して、異常状態または故障の証拠の生成に対して寄与した可能性のある上流の測定値及びプロセス変数の判断を試みる。例えば、オペレータは、プロセス制御デバイス（例えば、フィールドデバイス、コントローラ等）の出力から経時的に取り込まれているデータの履歴ログを、ＤｅｌｔａＶ（商標）バッチ分析製品または連続データ分析ツールに供給して、異常状態または故障状態に対する様々なプロセス変数及び／または測定値の寄与を判断することを試みる場合がある。典型的には、ユーザは、どの履歴データログ及び／または他の時系列データを分析ツールに供給するかを決定し、プロセスについての彼または彼女の知識に基づいて、候補となる上流因子（例えば、測定値、プロセス変数等）を特定する。続いて、これらのデータ分析ツールは、主構成要素分析（ＰＣＡ）、または部分最小二乗法、線形回帰等の他の分析技法を活用して、どの候補となった上流因子が、下流の予測される品質パラメータに影響を与えているかを判断する。したがって、分析ツールによって提供される出力の精度及び有効性はユーザの知識に基づき、すなわち制限されており、したがって、異常状態または故障の源に対する完全または正確な洞察を提供していない場合がある。
【０００７】
加えて、このような分析は典型的にはプロセスからオフラインで実行されており、したがって、プロセスは、分析が行われている間に変化または移動する場合がある。例えば、典型的なプロセスプラントは、通常、１日に１回または２回の特定の分析のサイクル（例えば、データ収集及び分析サイクル）を実行するが、結果が分析され、任意の規定的アクションがプラント内で開発及び実装されるのは、分析が実行された後しばらく経ってからである。したがって、分析結果の精度が疑わしい場合があるだけでなく、そこから開発された規定的アクションも、最適ではないか、あるいは現在実行中のプロセスに対しては最早当てはまらない可能性がある。
【０００８】
更に、現在公知のプロセス制御プラント及びプロセス制御システムのアーキテクチャは、限られたコントローラ及びデバイスのメモリ、通信帯域幅、ならびにコントローラ及びデバイスのプロセッサ能力によって強く影響される。例えば、現在公知のプロセス制御システムアーキテクチャにおいては、コントローラ内のダイナミック及びスタティック不揮発性メモリの使用は、通常、最小限にされるか、あるいは少なくとも慎重に管理される。結果として、システム構成中（例えば、演繹的に）、ユーザは、典型的には、コントローラ内のどのデータをアーカイブまたは保存すべきか、それが保存される頻度、及び圧縮が使用されるか否かを選択する必要があり、コントローラは、それに応じて、この制限されたデータ規則のセットで構成される。結果的に、トラブルシューティング及びプロセス分析において有用であり得るデータは、多くの場合、アーカイブされず、それが収集される場合、有用な情報は、データ圧縮に起因して失われている可能性がある。
【０００９】
その上更に、工業またはプロセス制御プラントのデータセットは、現在のデータ処理分析アプリケーションでは不十分であるという地点まで、そのサイズにおいて絶え間なく増加し続けている。典型的には、公知の分析技法は単にデータから値を抽出しようと試みるのみであり、その値が抽出されるデータセットの具体的なサイズまでは扱わず、特に、非常に大きいデータセット（プラントで生成された全てのプロセスデータ等）上でシームレスに動作することはない。更に、公知の分析技法は、典型的には、ストリーミングまたはストリーミングされるデータを取り扱うことができない。
【００１０】
上に考察した現在公知のプロセスプラント監視及び分析、ならびにプロセス制御システムの制限、ならびに他の制限は、例えばプラントの運転中、トラブルシューティング中、及び／または予測モデリング中に、プロセスプラントまたはプロセス制御システムの運転及び最適化において、それら自身を望ましくない形で顕在化させ得る。概して、リアルタイムの、現在の工業プロセスパフォーマンスデータを用いるリアルタイム分析は、公知の監視及び分析ツールでは不可能である。
【発明の概要】
【００１１】
分散型工業プロセスパフォーマンス監視及び／または分析用の技法、システム、装置、構成要素、及び方法が本明細書に開示される。そのような技法、システム、装置、構成要素、及び方法は、工業プロセス制御システム、環境、及び／またはプラントに対して適用することができ、これらは本明細書においては交換可能に、「自動化」、「工業制御」、「プロセス制御」、または「プロセス」システム、環境、及び／またはプラントとも呼ばれる。典型的には、そのようなシステム及びプラントは、分散型の様式で、物理的物質または生産物を製造、精製、変形、生成、または生産するように動作する、１つ以上のプロセスの制御を提供する。概して、該技法、システム、装置、構成要素、及び方法は、データ監視及び／またはデータ分析エンジン（本明細書においては交換可能に「分散型データエンジン」、「データエンジン」、または「ＤＤＥ」とも呼ばれる）を、工業プロセスを制御するように提携して運転するデバイス内に、分散型の様式で埋め込むことを含む。例えば、分散型データエンジンは、プロセスプラントまたはプロセス制御システム内で実行中のプロセスを制御するように他のデバイスと共に動作するデバイス（例えば、フィールドデバイス、コントローラ、Ｉ／Ｏカード等のプロセス制御デバイス）内に製造されてもよく、かつ／あるいは分散型データエンジンは、そのようなデバイスとローカルで連結されるか、または直接連結されてもよい。追加的なデータエンジンが、通信ノード、ワークステーション、または他のオペレータインターフェイス、サーバの中等、プロセスプラント内に含まれる他のデバイスに埋め込まれるか、あるいはその中に製造されてもよい。一部の構成においては、データエンジンは、プロセスプラント内の様々な通信リンクに接続されるか、あるいは別様に、プラント内のプロセスの実行または制御中に送信されたリアルタイムデータへのビューまたはウィンドウを有するように、プロセスプラントに接続される。
【００１２】
データは、分散型制御システム（ＤＣＳ）、プログラマブルロジックシステム（ＰＬＳ）、及びプロセス制御安全衛生監視システム（ＳＨＭ）において見られる従来型の通信システムの外側に典型的には存在する、１つ以上のデータ通信チャネル及びネットワークを例えば使用することで、様々な埋込式データエンジン間でストリーミングされる。そのような従来公知のプロセス制御通信ネットワーク及びリンクとの混乱を回避するために、データエンジン間で通信をストリーミングするために活用される通信チャネル及びネットワークは、本明細書においては交換可能に、「データ分析通信チャネル」、「データ分析チャネル」、「データ分析通信ネットワーク」、または「データ分析ネットワーク」と呼ばれる。ストリーミングされるデータは、データエンジンによって閲覧または観察されるリアルタイムデータを含み得る。例えば、分散型データエンジンが従来型のプロセス制御システム通信リンクに接続される（したがって、トラバースするデータを閲覧している）場合、データエンジンは、従来型の通信リンクをトラバースしているデータのコピーを、データ分析ネットワークを介して、１つ以上の他のデータエンジンにストリーミングし得る。別の例においては、分散型データエンジンがプロセス制御デバイスの中に製造されるか、またはそれに埋め込まれている場合、データ分析ネットワークを用いてデータエンジンによってストリーミングされる分析データは、デバイスによって受信、生成、または別様にプロセスされたデータのコピーを含み得る。追加的または代替的に、ストリーミングされるデータは、分析結果、規定的アクション等の、デバイスにおいてローカルで実施された１つ以上の分析に対応するデータを含み得る。このアーキテクチャによって、分析サービスが、ローカルでバインドされ、データソース付近で、またはデータソースにおいて提供されるが、一方で同時に、より大規模の分析の提供が可能となり、それによって、下でより詳細に説明されるように、帯域幅の使用及びシステムにまたがる処理サイクルを最小化しながら、タイムリーな結果及び最適化が提供される。
【００１３】
ある態様においては、分散型工業プロセス監視及び分析システムは、プロセスを制御するように動作しているプロセスプラント内に埋め込まれた、複数の分散型データエンジン（ＤＤＥ）を含む。ＤＤＥの各々は、制御されているプロセスの結果としてそれぞれデータを生成している、プロセスプラント内のそれぞれの１つ以上のデータソースに連結される。加えて、ＤＤＥの各々は、各ＤＤＥが連結されるそれぞれの１つ以上のデータソースによって生成されているデータを記憶する。本システムはまた、複数のＤＤＥ間の分析データのストリーミングをサポートし、複数のＤＤＥにおいて記憶されるデータに関するクエリの送信をサポートするデータ分析ネットワークも含む。
【００１４】
別の態様においては、方法には、プロセスを制御するように動作しているプロセス制御プラントのデータ分析ネットワーク内に含まれるクラスタの存在を告知することが含まれる。本方法はまた、その告知に対して応答し、プラントによるプロセスの制御から得られる連続データを生成するデータソースを登録することも含む。加えて、本方法は、データソースによって生成された連続データを受信すること、及びデータソースによって生成された連続データの少なくとも一部を、データ分析ネットワークを介して、データコンシューマにストリーミングすることを含む。本方法の１つ以上の部分が、例えば、クラスタによって実施されてもよい。
【００１５】
更に別の態様においては、方法には、プロセスを制御するように動作しているプロセス制御プラントのデータ分析ネットワーク内に含まれる集中型クラスタの存在を告知することが含まれる。本方法はまた、その告知に対して応答し、プロセスを制御する結果として生成される、ストリーミングされる連続データを記憶するように構成されるローカルクラスタを登録することも含む。ローカルクラスタは、プロセスプラント内に埋め込まれ、プロセスを制御するように動作しながら、連続データの少なくとも一部分を生成する１つ以上のデータソースと通信可能に連結する。加えて、本方法は、ローカルクラスタからの、ストリーミングされる連続データの少なくとも一部分を受信すること、ローカルクラスタから受信したストリーミングされる連続データに１つ以上のデータ分析機能を実施すること、及び１つ以上のデータ分析機能の出力を、データ分析ネットワークを介して、データコンシューマにストリーミングすることを含み得る。本方法の１つ以上の部分が、例えば、集中型クラスタによって実施されてもよい。
【００１６】
別の態様においては、本システムは、連続データストリームにバインドされる、データ分析モジュールを含む。連続データストリームは、プロセスを制御するように動作しているプロセスプラント内に含まれるデータソースによってリアルタイムで生成される内容を有し、連続データストリームの内容は、プロセスを制御するオペレーションの結果として生成される。本システムは更に、連続データストリームに対してリアルタイムで動作するデータ分析モジュールから得られる、リアルタイムで生成される連続出力を表示するユーザインターフェイスを含む。ユーザインターフェイスに表示される連続出力は、１つ以上の予測値の連続アップデートを含む。
【００１７】
更に別の態様においては、工業プロセス制御用のパフォーマンス監視及び分析システムは、ユーザ制御部のセットと、データモデルを表すデータダイアグラムのユーザによる作成を可能にするキャンバスとを提供するプラットフォームを含む。プラットフォームは更に、ユーザがデータダイアグラムを評価またはコンパイルして入力データセットに対し実行して、それによって出力データを生成することを可能にする。入力データセットは、プロセスを制御するオンラインプロセスプラントから得られる時系列データ（及び任意選択で他のデータ）を含む。本明細書で使用する場合、用語「時系列データ」は概して、典型的には１つ以上のデータソースによってある時間間隔にわたって生成される、一連のデータ点、値、またはセットを指す。
【００１８】
データダイアグラムは、ワイヤのセットで相互接続されたデータブロックのセットを含み、このワイヤのセットを介してデータがデータブロック間で移送される。データブロックのセットの各データブロックは、それぞれのデータオペレーションに対応し、０、１、または複数の入力コネクタを含み、０、１、または複数の出力コネクタを含む。それぞれの入力データは、入力コネクタ（複数可）を介して各データブロックで受信され、それぞれのデータブロックは、それぞれの入力データに対してそのそれぞれのデータオペレーションを実施する各データブロックから得られるそれぞれの出力データを、出力コネクタ（複数可）を介して提供する。更に、入力コネクタは、データブロックのセットの第１のデータブロックに含まれ、データブロックのセットに含まれる少なくとも１つのデータブロックのそれぞれのデータオペレーションは、データ分析機能を含み、データダイアグラムの異なる部分は、非同期的かつ別個にコンパイル可能であり、実行可能である。一部の実施形態においては、例えば入力コネクタが構成されておらず、出力コネクタが構成されていない場合、入力データ及び出力データは、データブロックによって内部で処理される。
【００１９】
ある態様においては、プロセス制御環境においてリアルタイム分析を実施するための方法は、グラフィカルユーザインターフェイスに第１のダイアグラムを作成することを含む。第１のダイアグラムは、プロセッサに、プロセス制御環境によって前もって生成及び記憶されたデータを操作させるように動作可能である、第１のプログラミング命令を表し得る。本方法はまた、第１のダイアグラムによって表される第１のプログラミング命令をコンパイルすること、コンパイルされた第１のプログラミング命令を実行して、結果として生じる第１の出力を作成すること、及び結果として生じた第１の出力を評価して、結果として生じた第１の出力を作成するのに使用されたモデルの予測値を決定することも含む。加えて、本方法は、第１のダイアグラムから第２のダイアグラムを自動的に生成することを含む。第２のダイアグラムは、プロセッサに、ライブデータソースにバインドさせ、少なくとも、結果として生じた第１の出力を作成するのに使用されたモデルを使用することで、ライブデータソースから受信したデータを評価させるように動作可能である、第２のプログラミング命令を表し得る。更に、本方法は、第２のダイアグラムによって表される第２のプログラミング命令をコンパイルすること、及びコンパイルされた第２のプログラミング命令を実行して、プロセス制御環境のオペレーションの態様を予測することを含む。
【００２０】
別の態様において、プロセス制御環境においてリアルタイム分析を実施するためのシステムは、プロセスプラント内で動作する複数のプロセス制御デバイスと、制御ネットワークを介して複数のプロセスデバイスと通信可能に連結するコントローラとを含む。本システムはまた、プロセス制御環境のオペレーションのデータを記憶する、有形の非一時的記憶媒体を備えるビッグデータストレージノードと、ビッグデータストレージノードと通信可能に連結するプロセッサと、プロセッサと通信可能に連結するプログラムメモリとを含む。このプログラムメモリは、プロセッサによって実行されたとき、プロセッサに、編集キャンバスを含むグラフィカルユーザインターフェイスを表示させ、その編集キャンバス上に配置して第１のダイアグラムを作成するための、複数のグラフィカルプログラミング要素の選択を受信させるという命令を記憶する、有形の非一時的記憶媒体を備え得る。第１のダイアグラムは、ビッグデータストレージノードに記憶されたデータをプロセッサに操作させるように動作可能な、第１のプログラミング命令を表し得る。加えて、その命令がプロセッサによって実行された場合、プロセッサに、コンパイルされた第１のプログラミング命令を実行させて、結果として生じる第１の出力を作成させ、その結果として生じた第１の出力に基づいて予測的モデルを作成させることができる。その命令がプロセッサによって実行された場合、プロセッサには更に、第１のダイアグラムから第２のダイアグラムを自動的に生成させることができる。第２のダイアグラムは、プロセッサに、ライブデータソースにバインドさせ、少なくとも、結果として生じた第１の出力を作成するのに使用されたモデルを使用することで、ライブデータソースから受信したデータを評価させるように動作可能である、第２のプログラミング命令を表し得る。その命令がプロセッサによって実行された場合、プロセッサにはなおも更に、第２のダイアグラムによって表される第２のプログラミング命令をコンパイルさせ、コンパイルされた第２のプログラミング命令を実行させて、プロセス制御環境のオペレーションの態様を予測させることができる。
【００２１】
別の態様においては、プロセス制御環境においてデータ分析を実施するための分析サービスは、ブロック定義のライブラリを含む。このライブラリは、有形の非一時的媒体に記憶することができ、ライブラリ内に記憶される各ブロック定義は、（ｉ）プロセス制御環境のデータに関するアクションを実施するためのターゲットアルゴリズムと、（ｉｉ）１つ以上のブロックプロパティとを含み得る。この分析サービスは更に、有形の非一時的媒体に記憶される機械可読命令のセットを含み、この機械可読支持のセットは、プロセッサによって実行されたとき、（１）ディスプレイを介してキャンバスをユーザに呈示し、（２）ブロック定義のライブラリをユーザに呈示し、（３）１つ以上の対応するブロック定義のうちの１つ以上の選択を受信し、（４）１つ以上のブロック定義に対応する１つ以上のブロックをキャンバス上に配置して、１つ以上のブロックを含むモジュールを作成し、（５）（ｉ）１つ以上のブロック、または（ｉｉ）モジュール、または（ｉｉｉ）１つ以上のブロック及びモジュールのいずれかに関して、１つ以上のプロパティの構成を促進し、かつ（６）（ｉ）ブロックのうちの１つ以上、または（ｉｉ）モジュールの評価をもたらすように、動作可能である。
【００２２】
加えて、分析サービスは、プロセッサ上で動作する実行サービスを含み、ここで、この実行サービスは、（１）１つ以上のブロックまたはモジュールを評価する要求を受信し、（２）１つ以上のブロックまたはモジュールに対応する命令をコンパイルし、（３）コンパイルされた命令を実行するために１つ以上のジョブプロセスを作成し、その１つ以上のジョブプロセスに、コンパイルされた命令を実行させ、かつ（４）１つ以上のジョブプロセスの結果を受信するように構成される。分析サービスはまた、１つ以上のジョブプロセスを実行する１つ以上のプロセッサを、１つ以上の分散型データエンジンと連結する通信ネットワークも含む。各分散型データエンジンは、プロセス制御環境内で生成されるデータを記憶する、有形の非一時的記憶媒体を備え得る。
【００２３】
実際、プロセスプラントのオペレーションによって生成されるデータ、またはそれに関するデータは、リレーショナルデータベースまたは非リレーショナルデータベース等の複数のデータ記憶に記憶され得る。これらのデータ記憶は、様々なデータ構造及びクエリメカニズムを活用する場合があり、それにより、異なるデータ記憶のデータにアクセスするために異なるクエリ構文が必要とされる。様々なフォーマットを用いるデータ記憶へのデータアクセスを促進するための、標準化クエリについて本明細書では記載する。標準化データクエリフォーマットを活用するこの標準化クエリは、データ記憶のデータにアクセスするために必要とされる情報を含むが、標準化クエリは、そのようなデータを獲得するように直接実行可能ではない場合がある。代わりに、データソースに特異的なクエリが、標準化クエリに基づいて生成される。これには、標準化クエリからクエリパラメータを抽出することと、特定のデータソースと関連付けられるデータソースに特異的なクエリフォーマットを活用して、１つ以上のデータソースに特異的なクエリを生成することとが含まれ得る。このデータソースに特異的なクエリは、それらのそれぞれのデータソースにアクセスし、そこからデータを選択するように実行することができ、このデータはその後、標準化クエリで示されるデータを任意の所望のフォーマットで呈示するデータフレームを生成するようにフォーマットされ得る。これには、データソースに特異的なクエリによって獲得されたデータに関する、サンプリングレート、データプロパティ、または他のデータ特性を整合することが含まれ得る。一部の実施形態においては、プロセス制御または分析における更なる使用のために、異なるデータソースに特異的なクエリフォーマットを活用する、複数のデータソースからのデータを、集合データフレームへと組み合わせることができる。
【００２４】
別の態様においては、電子データソースから時系列データを獲得するための命令を記憶する方法、システム、及びコンピュータ可読媒体について記載され、データの獲得元である電子データソースの指標を受信すること、データが獲得される時間範囲の指標を受信すること、獲得されるべきデータの特性の指標を受信すること、電子データソースと関連付けられる、データソースに特異的なクエリフォーマットを決定すること、獲得されるべきデータの時間範囲及び特性の指標に基づいて、データソースに特異的なフォーマットに従う、データソースに特異的なクエリを生成すること、データソースに特異的なクエリを実行させて、電子データソースからデータを選択すること、ならびに／または電子データソースからデータを受信することを含む。データの時間範囲及び特性の指標は、電子データソースからは独立する標準化クエリフォーマットで表されてもよく、電子データソースは、リレーショナルデータベースまたは非リレーショナルデータベースであり得る。
【００２５】
本方法は、標準化クエリフォーマットを活用する標準化クエリを含み得る。時間範囲の指標及び特性の指標は、標準化クエリとして受信することができる。電子データソースの指標もまた、標準化クエリとして受信することができる。標準化クエリは更に、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）等の、データまたはファイルがデータを返すためのフォーマットを示し得る。標準化クエリはまた、ＪＳＯＮでフォーマットされたファイルでもあり得る。標準化クエリフォーマットは、電子データソースによって活用される本来の構文とは別個の構文を活用してもよい。標準化クエリフォーマットで活用されるそのような構文は、電子データソースからデータを獲得するように直接実行可能ではない場合がある。
【００２６】
時間範囲の指標は、少なくとも１つの開始時間と、少なくとも１つの終了時間とを含み得る。時間範囲の指標は、獲得されるべきデータのサンプルレートを同様に含み得る。獲得されるべきデータの特性の指標は、プロセスプラントのオペレーションに関する１種類以上の測定値の指標を含み得る。この１種類以上の測定値は、プロセスプラント内に配置される１つ以上のフィールドデバイスからの測定値を含み得る。１種類以上の測定値の指標は、データと関連付けられる１つ以上のタグ、エイリアス、及びデータタイプを含み得る。
【００２７】
本方法は更に、データが電子データソースから受信される際のフォーマットの指標を受信することを含み得、データは、示されるフォーマットで電子データソースから受信され得る。一部の実施形態においては、データが獲得される際のフォーマットの指標を受信して、電子データソースから受信したデータを、その示されるフォーマットに変換する場合がある。
【００２８】
データソースに特異的なクエリフォーマットは、電子データソースの種類に基づいて決定され得る。データソースに特異的なクエリを生成することは、獲得されるべきデータの示される時間範囲と、示される特性とを、データソースに特異的なクエリフォーマットにマッピングすることを含み得る。データソースに特異的なクエリを実行させることは、データソースに特異的なクエリを電子データソースのインターフェイスに送信することを含み得、それにより、このインターフェイスが、データソースに特異的なクエリを用いて、電子データソースを照会する。
【００２９】
電子データソースから受信したデータを含む、データフレームが生成され得る。このデータフレームは、複数のデータ点を含み得る。各データ点は、時間範囲内の時間と関連付けられ得る。各データ点は更に、開始時間後の、サンプル期間の整数倍と整合するか、あるいは開始時間である、時間範囲内の時間と関連付けられ得る。
【００３０】
別の態様においては、電子データソースからデータを提供するための命令を記憶する方法、システム、及びコンピュータ可読媒体について記載され、データ要求エンティティから、標準化クエリフォーマットを使用する標準化クエリを受信すること、標準化クエリからクエリパラメータを抽出すること、抽出したクエリパラメータに基づいて、データソースに特異的なクエリフォーマットで、データソースに特異的なクエリを生成すること、データソースに特異的なクエリを実行して、電子データソースからデータを獲得すること、及び／または獲得したデータをデータ受信エンティティに提供することを含む。標準化クエリフォーマットは、電子データソースによって活用される、データソースに特異的なクエリフォーマットとは異なり得る。電子データソースは、リレーショナルデータベースまたは非リレーショナルデータベースであり得る。データ要求エンティティは、本明細書で考察されるＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ等の分析プログラム内のクエリブロックであり得る。データ受信エンティティは、データ要求エンティティと同じエンティティであってもよい。標準化クエリは、電子データソースからデータを獲得するように直接実行可能ではない構文を活用する場合がある。
【００３１】
標準化クエリからクエリパラメータを抽出することは、データのある期間及びデータパラメータを決定することを含み得る。この期間は、開始時間と終了時間とを有し得、データパラメータは、電子データソースから獲得されるべきデータの種類または特性を示し得る。標準化クエリからクエリパラメータを抽出することは更に、サンプリングレートを決定することを含み得る。
【００３２】
獲得したデータを要求エンティティに提供することは、その期間と関連付けられるデータ点のセットを返すことを含み得る。各データ点は、データ点と関連付けられる値（複数可）に関する時間を示すタイムスタンプを含み得る。そのようなタイムスタンプは、開始時間である時間か、または開始時間後のサンプリングレートの期間の整数倍である時間かに限定され得る。完全な時系列を達成するために、１つ以上のデータ点が、開始時間後のサンプリングレートの期間の整数倍を示すタイムスタンプを伴うデータセットに対して追加されてもよい。追加されるデータ点は、これら１つ以上の追加されるデータ点の各タイムスタンプの最も直前の時間と関連付けられる、電子データソースのデータエントリの値を使用し得る。データ点のセットは、標準化クエリで特定されたフォーマットに基づいて、フォーマットされ得る。
【００３３】
データパラメータによって示される、データの種類または特性は、測定の種類またはある種類の測定デバイスからの測定値であり得る。データの種類または特性は更に、具体的な測定デバイスを示してもよく、この測定デバイスは、プロセスプラント内に配置されるフィールドデバイスであり得る。データパラメータは更に、獲得されるべきデータのタグ、データ要求エンティティに提供されるべきデータのエイリアス、及び／またはデータ要求エンティティに提供されるべきデータのデータフォーマットタイプを示し得る。
【００３４】
データをデータ要求エンティティに提供することは、獲得されたデータを含むデータフレームを、データ要求エンティティに送信することを含み得る。標準化クエリは、データフレーム用のフォーマットの指標を含み得る。データフレームは、データフレーム用のフォーマットの指標に従ってフォーマットされ得る。標準化クエリは、データフレームが、データ受信エンティティにＪＳＯＮファイルとして提供されることを示し得る。
【００３５】
別の態様においては、複数の電子データソースからのプロセスプラントデータにアクセスするための命令を記憶する方法、システム、及びコンピュータ可読媒体について記載され、標準化クエリフォーマットを活用する標準化クエリを受信すること、標準化クエリに基づいて、第１のデータソースに特異的なクエリを生成すること、標準化クエリに基づいて、第２のデータソースに特異的なクエリを生成すること、第１のデータソースに特異的なクエリを実行させて、第１の電子データソースから第１のデータのセットを獲得すること、第２のデータソースに特異的なクエリを実行させて、第２の電子データソースから第２のデータのセットを獲得すること、及び／または第１及び第２のデータのセットを含む、集合データフレームを生成することを含む。第１及び第２のデータのセットは各々、プロセスプラント内の１つ以上のフィールドデバイスによって測定された情報を含む、複数のデータ点を含み得る。
【００３６】
第１のデータソースに特異的なクエリは、第１の電子データソースと関連付けられる第１のクエリフォーマットを活用し得、第２のデータソースに特異的なクエリは、第２の電子データソースと関連付けられる第２のクエリフォーマットを活用し得る。標準化クエリは、第１の電子データソースの第１の指標と、第２の電子データソースの第２の指標とを含み得る。一部の実施形態においては、第１の電子データソースがリレーショナルデータベースであってもよく、第２の電子データソースが非リレーショナルデータベースであってもよい。第１の指標が第１のクエリフォーマットを特定してもよく、第２の指標が第２のクエリフォーマットを特定してもよい。一部の実施形態においては、第１及び第２の指標は、データ列の指標に対してプリペンドされ得る。
【００３７】
標準化クエリフォーマットは、第１のクエリフォーマットのクエリ構文と、第２のクエリフォーマットのクエリ構文との両方と別個のクエリ構文を活用し得る。標準化クエリフォーマットのクエリ構文は、第１の電子データソースからの第１のデータのセット、または第２の電子データソースからの第２のデータのセットのいずれについても、獲得するように直接実行可能ではない場合がある。例えば、標準化クエリは、ＪＳＯＮファイルの１つ以上のオブジェクトまたは配列に含まれ得る。
【００３８】
標準化クエリは、第１のデータセット及び第２のデータセットのデータエントリに対応する期間を特定する時間範囲の指標を含み得る。時間範囲は複数の期間を含んでもよく、これらの複数の期間は、データが照会されない除外期間によって分離されてもよい。時間範囲はまた、第１のデータセットと関連付けられる第１の期間と、第２のデータセットと関連付けられる第２の期間とを特定し得る。標準化クエリはまた、集合データフレームについてのサンプルレートの指標も含み得る。
【００３９】
第１のデータセットは、第１のサンプルレートを有するデータを含み得、第２のデータセットは、第２のサンプルレートを有するデータを含み得る。そのような事例においては、集合データフレームを生成することは、第１及び第２のサンプルレートを整合することを含み得る。第１及び第２のサンプルレートを整合することは、所望のサンプルレートを達成するために必要とされる、サンプルされていない時間に対応するデータ点を追加することを含み得る。そのような追加されるデータ点は、追加されるデータ点に対して時間的に直前の、サンプル済みのデータの所与の値であり得る。第１及び第２のデータサンプルレートを整合することは、サンプル済みのデータ点を取り除くことを同様に含み得る。
【００４０】
そのような方法を実践するためのシステムは更に、１つ以上のデータソースと通信可能に連結される１つ以上のプロセッサと、１つ以上のプロセッサによって実行されたとき、コンピュータシステムに、上記のシステム機能の一部または全てを実施させるというコンピュータ可読命令を記憶する１つ以上のプログラムメモリとを含み得る。コンピュータ可読媒体が、コンピュータシステムの１つ以上のプロセッサによって実行可能な、類似のコンピュータ可読命令を記憶して、それによってコンピュータシステムに上記のシステム機能の一部または全てを実施させてもよい。本方法、システム、またはコンピュータ可読媒体の追加的または代替的態様が、下の詳細な説明においてより完全に記載されるように実践され得る。
【００４１】
加えて、新規の、周波数分析の分析技法が開示され、本明細書に記載されるシステム、方法、装置、及び技法のいずれかによって提供され得る。新規の、周波数分析の分析技法は、ストリーミングされるデータを分析して、プロセスプラントまたはプロセス制御システムにおける早期警戒故障検出を提供することができる。より具体的には、この周波数分析の分析技法は、故障、異常、パフォーマンスの低下、ターゲットパフォーマンスレベル、望まれない状態、及び／または所望の状態の、特定された先行インジケータに対応するプロセス変数の新しいセットを作成することができ、ストリーミングされるプロセスデータにローリングＦＦＴを実施することで、新しいプロセス変数の時系列データを決定することができる。ローリングＦＦＴは、ストリーミングされるプロセスデータを時間領域から周波数領域に変換することができ、ここで、プロセス変数の新しいセットの値が決定され得る。新しいプロセス変数の決定された値は、監視のために、時間領域へと再度転換され得る。監視される時間領域データ内における先行インジケータの存在の検出は、予測される故障、異常、パフォーマンスの低下、及び／または他の望まれない状態の兆候を生成及び／または存在させ得、プロセスプラントのオペレーションに対する変化をもたらし、それによって、望ましくない不調、事象、及び／または状態の影響を回避、防止、及び／または軽減し得る。同様に、監視される時間領域データ内における先行インジケータの存在の検出は、パフォーマンスのターゲットレベル等の予測される所望の状態の兆候を、一部の場合においては、所望の状態の発生が予測される時間または時間間隔と共に、生成及び／または存在させ得る。
【図面の簡単な説明】
【００４２】
【図１】分散型の、埋込式工業プロセスパフォーマンス監視及び／または分析エンジンを含む、例示的システムプロセスプラントまたはプロセス制御システムを例証するブロック図である。
【図２Ａ】分散型工業プロセスパフォーマンス監視／分析用の例示的システムのブロック図である。
【図２Ｂ】例示的プロセス制御システムに関連する、例示的分散型工業プロセスパフォーマンス監視分析システムの配列の実施形態である。
【図３】例示的工業プロセスパフォーマンス監視及び／または分析エンジンのブロック図である。
【図４Ａ】様々なデータブロックの特色及び相互接続を例証する、例示的データダイアグラムである。
【図４Ｂ】例示的なＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏのユーザインターフェイスである。
【図４Ｃ】データブロック定義ライブラリ、データブロック定義、データモジュール、データブロック、データブロックインスタンス、及びワイヤ間の例示的関係性である。
【図４Ｄ】データモジュールの下書きまたは作成の例である。
【図４Ｅ】データモジュールが作成される、Ｄａｔａ  Ｓｔｕｄｉｏキャンバスのズームイン領域である。
【図４Ｆ】異なる種類のデータブロック用の、例示的データブロック定義テンプレートである。
【図４Ｇ】異なる種類のデータブロック用の、例示的データブロック定義テンプレートである。
【図４Ｈ】異なる種類のデータブロック用の、例示的データブロック定義テンプレートである。
【図４Ｉ】データダイアグラムの評価、編集、または展開の例示的フローである。
【図４Ｊ】標準及びカスタムビジュアリゼーションの呈示を支持する例示的アーキテクチャである。
【図４Ｋ】複合データブロックが作成される例示的シナリオである。
【図４Ｌ】例示的オフラインデータダイアグラムである
【図４Ｍ】図４Ｌの例示的オフラインデータダイアグラムの転換から生成された、オンラインデータダイアグラムである。
【図４Ｎ−１】例示的な、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄのユーザインターフェイスである。
【図４Ｎ−２】例示的な、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄのユーザインターフェイスである。
【図４Ｏ】プロセスプラントのパフォーマンスを制御及び最適化する制御ループの、高次ブロックダイアグラムである。
【図４Ｐ】ローカライズしたデータ分析サービスを提供するための例示的方法である。
【図４Ｑ】ローカライズしたデータ分析サービスを提供するための例示的方法である。
【図５Ａ】本発明によるＡｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅの例示的アーキテクチャのブロック図である。
【図５Ｂ】図５Ａに描写したアーキテクチャの例示的データサービスエンティティをより詳細に例証するブロック図である。
【図５Ｃ】現在説明している実施形態による、プログラミングキャンバスに配置されるブロックのプロパティダイアログを呈示するための方法を例証するフローチャートである。
【図５Ｄ】例示的オフライン図がプログラミングキャンバスに構成される、例示的プログラミングキャンバスである。
【図５Ｅ】図５Ｄのオフライン図に対応する例示的オンライン図である。
【図５Ｆ】モジュールの例示的プロパティダイアログである。
【図５Ｇ】プロパティがオフライン及びオンライン運転の両方に関する、オフラインモジュールのブロックの例示的プロパティダイアログである。
【図６Ａ】例示的な分析的クエリシステムのブロック図である。
【図６Ｂ】標準化クエリを用いる、例示的な分析構成のブロック図である。
【図６Ｃ】例示的標準化クエリである。
【図６Ｄ】例示的標準化クエリ方法の流れ図である。
【図６Ｅ】例示的標準化クエリ方法の流れ図である。
【図７Ａ】ある時間間隔中の、精製所のフレアシステムの例示的プロセスフロー測定値のグラフである。
【図７Ｂ】別の時間間隔中の、図７Ａの例示的プロセスフロー測定値のグラフである。
【図７Ｃ】データにフレア事象を含む、精製所の例示的プロセスフローデータのグラフである。
【図７Ｄ】図７ＣのプロセスフローデータにローリングＦＦＴを適用して決定された時系列データのグラフである。
【図７Ｅ】フレア事象周囲の図７Ｄの周波数領域データを分析するために、ＰＣＡを用いた結果のグラフである。
【図７Ｆ】別のフレア事象周囲の図７Ｄの周波数領域データを分析するために、ＰＣＡを用いた結果のグラフである。
【図７Ｇ】プロセスプラントにおいて、早期故障検出を提供するための例示的方法の流れ図である。
【発明を実施するための形態】
【００４３】
分散型工業パフォーマンス監視及び分析用の技法、システム、装置、構成要素、及び方法が本明細書に開示される。概して、該新規パフォーマンス監視及び分析技法は、１つ以上の工業プロセスをリアルタイムで制御するように運転する、工業プロセスプラント、プロセス制御環境、及び／またはプロセス制御システムについての知識の発見及びアクション可能な知識を提供する。典型的には、そのようなプロセスプラントまたは制御システムによって実行される工業プロセスは、その中で制御されて、それによって物理的物質または生産物を製造、精製、変形、生成、または生産する。そのようなプロセスプラントまたは制御システムの例としては、製油所、製紙工場、化学的製造、薬学的製造、食品加工、及び配送等が挙げられる。
【００４４】
どのプロセス制御システム、プラント、または環境においても、最も重要な関心事はその安全性、信頼性、及び経済性である。無制御のプロセス、故障、破損、及び／または防止できる人的過誤は、爆発、火事、危険な化学物質の放出、環境への被害、設備の損失、及び／または人命損失につながり得るため、どのプロセス制御システムまたはプラントにとっても、運転の安全性は特に重要である。設備及びプロセス運転の信頼性は、プラントの経済性及び収益性を維持及び／または向上するために重要である。更に、プラントの経済性及び収益性は、プラントの運転を調整してパフォーマンスを向上させることによって改善できる。
【００４５】
プロセス制御システムで起こる故障は、その安全性、信頼性、及び／または経済性に影響を及ぼし得る。故障は、複数の事象が組み合わさって、供給原料組成の未知の変化、設備の劣化、設備の破損、及び異常（あるいは誤った）ユーザの運転アクション等、プロセス制御システムが対応するようには設計されていない状況が形成されたときに概して発生する。故障の他の例としては、計画外の設備の操業停止、化学物質の大気中への放出、圧力安全バルブのリフティング、設備の温度暴走、及びパフォーマンス劣化が挙げられる。無論、故障は全体的または大規模事象に限定されるものではなく、故障は、経済的影響、安全性への影響、及び／または環境影響を有するか、それらにつながり得る、任意の異常事象または事象の組み合わせであり得る。
【００４６】
典型的には、故障が検出されたとき（例えば、プロセス制御システムによって自動的に検出されたとき）、オペレータインターフェイスにはアラームが発生する。次いで、オペレータは、その故障の根本原因の診断及び修正アクションを取ることを試みる。したがって、故障を管理する際の重要な因子の一部としては、早期の故障の検出及び誤報の低減が挙げられ、これには例えば、故障の適時及び確実な検出、故障の根本原因の診断、及び故障の源である計器、コントローラ、プロセス、及び／または設備を通常運転に戻す修正アクションを実行することが含まれ得る。
【００４７】
公知のデータ監視及び分析ツールは、プロセスプラントを通常運転領域に保ち、故障の発生に対する第１の防衛線を提供することを試みている。だが、そのようなツールは、典型的には、プロセスプラント内の単一ループまたは非常に限定された範囲にしか注意を向けていない。それらのツールには、何百何千のプロセス変数が非常に速い速度で観察される典型的な近代的プロセス制御プラントの全体を（あるいは、その大部分ですら）処理することはできない。更に、公知のデータ監視及び分析ツールは、各ツールの直近の限定された範囲の外側の状況によって引き起こされた、劣化した設備のパフォーマンス、撤去されたフィールド設備、または運転状態における大きな変化といった特別な事象を処理することができない。
【００４８】
一方で、本明細書に開示される新規の分散型工業プロセスパフォーマンス監視及び分析技法、システム、装置、構成要素、及び方法は、プロセスプラント全体から単一ループ、あるいは単一のデバイスに至るまで、任意のサイズの範囲の工業プロセス監視及び分析を処理（例えば、監視及び／または分析）することができる。実際、一部の構成においては、本明細書に開示される新規技法は、複数のプロセスプラント（例えば、データが入手可能である場合、単一の企業によって、あるいは異なる企業によって保有及び運転されている複数の製油所）に同時に対処することができる。概して、本明細書に開示される新規パフォーマンス監視及び分析技法は、早期検出を示す知識、及び／またはプロセスプラント及び制御システム内で起こり得る潜在的な故障の事前の警告を発見及び提供し、それによって、その故障の発生を防止するための規定的アクションまたは修正アクションを取るのに十分な時間が確保される。一部の状況においては、本明細書に開示される新規技法はまた、潜在的な故障の発生を防止するため、及び／またはそれらの発生の影響を制限するための、規定的でアクション可能な知識を発見及び提供する。更に、本明細書に開示される新規技法は、プラントの効率性に対する潜在的な改善を示す知識を発見または提供し、ならびにその効率性の改善を実現するためのアクション可能な知識を発見または提供する。
【００４９】
分散型工業プロセス監視及び分析を有する例示的プロセス制御システム
上で考察したように、本明細書に記載される新規の分散型工業プロセス監視及び分析技法の少なくとも一部を含むかあるいは支持する、プロセスプラント、プロセス制御システム、またはプロセス制御環境は、１つ以上の工業プロセスをリアルタイムで制御するように運転する。したがって、本プロセスプラントまたは制御システムは、その中に、物理的機能（バルブの開放または閉鎖、温度、圧力、ならびに／または他のプロセスパラメータ及び／もしくは環境パラメータの測定等）を実行して、プロセスプラントまたはシステム内で実行中のプロセスを制御する、１つ以上の有線もしくは無線プロセス制御デバイス、構成要素、または要素を含み得る。本プロセスプラントまたはプロセス制御システムは、例えば、１つ以上の有線通信ネットワーク及び／または１つ以上の無線通信ネットワークを含み得る。本プロセスプラントまたは制御システムは、連続データベース、バッチデータベース、及び他の種類のヒストリアンデータベース等の集中データベースを含み得る。
【００５０】
例証のため、図１は、本明細書に記載される分散型工業プロセス監視及び分析技法のいずれかまたは全てを含むかあるいは支持する、例示的プロセスプラントまたはプロセス制御環境５の詳細なブロック図である。プロセス制御システム５は、プロセス制御プラントまたは環境５に含まれるか、それと統合されるか、あるいはそれによって支持される、分散型工業プロセス監視及び分析システムの複数の分散型データエンジンを含む。（分散型工業プロセス監視及び分析システムについてのより完全な説明は、後の節において提供される。）工業プロセス監視及び分析システムの分散型データエンジンの各々は、プロセスプラント５のある構成要素または部分と、直接的または間接的に接続される（例えば、物理的に接続されるか、無線で接続される）。例えば、分散型データエンジンは、一元的なエンティティを形成するようにプロセスプラント５の特定のデバイスまたはノードに埋め込まれるかまたはその中に製造されてもよく、データエンジンは、プラント５の特定のデバイスまたはノードに接続または連結されてもよく、あるいはデータエンジンは、プラント５の従来型の通信リンクに接続または連結されてもよい。図１においては、丸で囲んだ「ＤＤＥ」が、それぞれの例示的分散型データエンジンを表す。
【００５１】
先に考察したように、分散型データエンジンは、自動的にプロセス制御データを生成及び／または受信して、プロセスプラント環境５においてプロセスをリアルタイムで制御する機能を実行することを主な機能とする、プロセス制御デバイス内に埋め込まれてもよい。例えば、それぞれのデータエンジンは、プロセスコントローラ、フィールドデバイス、及びＩ／Ｏデバイス内に埋め込まれてもよく、あるいはその中に製造されてもよい。プロセスプラント環境５においては、プロセスコントローラは、フィールドデバイスによって生み出されたプロセス測定値を示す信号を受信し、この情報を処理して制御ルーチンを実行し、制御信号を生成し、これらの制御信号が、従来型の有線または無線プロセス制御通信リンクまたはネットワークを通じて他のフィールドデバイスに送信されて、プラント５内のプロセスの運転を制御する。典型的には、少なくとも１つのフィールドデバイスが物理的機能を実行して（例えば、バルブの開放または閉鎖、温度の増加または減少等）、プロセスの運転を制御し、一部の種類のフィールドデバイスが、Ｉ／Ｏデバイスを用いることでコントローラと通信する。プロセスコントローラ、フィールドデバイス、及びＩ／Ｏデバイスは有線であっても無線であってもよく、任意の数及び組み合わせの、有線及び無線のプロセスコントローラ、フィールドデバイス、及びＩ／Ｏデバイスがプロセスプラント環境またはシステム５内に含まれてもよく、それぞれの分散型データエンジンを各々含んでもよい。
【００５２】
例えば、図１は、プロセスコントローラ１１を例証し、このプロセスコントローラは、入力／出力（Ｉ／Ｏ）カード２６及び２８を介して、有線フィールドデバイス１５〜２２と通信可能に接続され、無線ゲートウェイ３５及びプロセス制御データハイウェイまたはバックボーン１０（１つ以上の有線及び／または無線通信リンクを含んでもよく、例えばＥｔｈｅｒｎｅｔプロトコル等の、任意の所望の、または好適な、または通信プロトコルを用いて実装され得る）を介して、無線フィールドデバイス４０〜４６と通信可能に接続される。ある実施形態において、コントローラ１１は、１つ以上の通信プロトコル、例えば、Ｗｉ−Ｆｉまたは他のＩＥＥＥ  ８０２．１１に準拠する無線ローカルエリアネットワークプロトコル、移動体通信プロトコル（例えば、ＷｉＭＡＸ、ＬＴＥ、もしくは他のＩＴＵ−Ｒ対応プロトコル）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＨＡＲＴ（登録商標）、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）、Ｐｒｏｆｉｂｕｓ、ＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓ等をサポートする、任意の数の他の有線または無線通信リンクの使用等によって、バックボーン１０以外の１つ以上の通信ネットワークを用いて無線ゲートウェイ３５と通信可能に接続される。本明細書で言及する場合、バックボーン１０及びこれらの他の通信ネットワークは、「従来型の」プロセス制御通信ネットワークの例である。
【００５３】
コントローラ１１は、例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔによって販売されている、ＤｅｌｔａＶ（商標）コントローラであり得るが、フィールドデバイス１５〜２２及び４０〜４６のうちの少なくとも一部を用いて、バッチプロセスまたは連続プロセスを実行するように運転してもよい。ある実施形態においては、プロセス制御データハイウェイ１０に対して通信可能に接続されるのに加えて、コントローラ１１はまた、例えば標準的な４〜２０ｍＡデバイス、Ｉ／Ｏカード２６、２８、及び／またはＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓプロトコル、ＨＡＲＴ（登録商標）プロトコル、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）プロトコル等の任意のスマート通信プロトコルと関連する、任意の所望のハードウェア及びソフトウェアを用いて、フィールドデバイス１５〜２２及び４０〜４６のうちの少なくとも一部とも通信可能に接続される。図１においては、コントローラ１１、フィールドデバイス１５〜２２、及びＩ／Ｏカード２６、２８は有線デバイスであり、フィールドデバイス４０〜４６は無線フィールドデバイスである。無論、有線フィールドデバイス１５〜２２及び無線フィールドデバイス４０〜４６は、将来的に開発される任意の規格またはプロトコルを含む、任意の有線または無線プロトコル等の、任意の他の所望の規格（複数可）またはプロトコルに準拠してもよい。
【００５４】
図１のプロセスコントローラ１１は、１つ以上のプロセス制御ルーチン３８（例えば、メモリ３２内に記憶されている）を実行または監督するプロセッサ３０を含む。プロセッサ３０は、フィールドデバイス１５〜２２及び４０〜４６、ならびにコントローラ１１と通信可能に接続されている他のノードと通信するように構成される。本明細書に記載される任意の制御ルーチンまたはモジュール（品質予測及び故障検出モジュールまたは機能ブロック）は、そのように所望される場合は、その一部を異なるコントローラまたは他のデバイスによって実装または実行させてもよいことに留意されたい。同様に、プロセス制御システム５内で実装される、本明細書に記載される制御ルーチンまたはモジュール３８は、ソフトウェア、ファームウェア、ハードウェア等を含む、任意の形態をとり得る。制御ルーチンは、オブジェクト指向プログラミング、ラダーロジック、シーケンシャルファンクションチャート、ファンクションブロックダイアグラムを用いるか、あるいは任意の他のソフトウェアプログラミング言語またはデザイン方式を用いること等によって、任意の所望のソフトウェアのフォーマットで実装できる。制御ルーチン３８は、ランダムアクセスメモリー（ＲＡＭ）または読み取り専用メモリー（ＲＯＭ）等の、任意の所望の種類のメモリ３２に記憶され得る。同様に、制御ルーチン３８は、例えば１つ以上のＥＰＲＯＭ、ＥＥＰＲＯＭ、特定用途向け集積回路（ＡＳＩＣ）、または任意の他のハードウェアもしくはファームウェア要素にハードコードされてもよい。したがって、コントローラ１１は、任意の所望の様式で制御ストラテジまたは制御ルーチンを実装するように構成することができる。
【００５５】
一部の実施形態において、コントローラ１１は、一般的に機能ブロックと呼ばれるものを用いて制御ストラテジを実行し、各機能ブロックは、全体的な制御ルーチンのオブジェクトまたは他の部分（例えば、サブルーチン）であり、（リンクと呼ばれる通信を介して）他の機能ブロックと共に動作して、プロセス制御システム５内でプロセス制御ループを実行する。制御ベースの機能ブロックは、典型的には、送信器、センサ、もしくは他のプロセスパラメータ測定デバイスと関連するもの等の入力機能、ＰＩＤ、ファジー論理等の制御を実行する制御ルーチンと関連するもの等の制御機能、またはバルブ等のあるデバイスの運転を制御して、プロセス制御システム５内で物理的機能を実行する出力機能のうちの１つを実行する。無論、ハイブリッド及び他の種類の機能ブロックが存在する。機能ブロックはコントローラ１１内に記憶され、それによって実行されてもよく、これは典型的には、これらの機能ブロックが標準的な４〜２０ｍＡデバイス及びＨＡＲＴ（登録商標）デバイス等のある種のスマートフィールドデバイス用に使用されるかあるいはそれと関連するときに成り立ち、あるいは機能ブロックは、フィールドデバイスそのものの内部に記憶され、それによって実装されてもよく、これはＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓデバイスの場合に成り立ち得る。コントローラ１１は、１つ以上の制御ループを実装し得、機能ブロックのうちの１つ以上を実行することで実行され得る、１つ以上の制御ルーチン３８を含んでもよい。
【００５６】
有線フィールドデバイス１５〜２２は、センサ、バルブ、送信器、ポジショナ等の任意の種類のデバイスであり得、一方でＩ／Ｏカード２６及び２８は、任意の所望の通信またはコントローラプロトコルに準拠する、任意の種類のＩ／Ｏデバイスであり得る。図１においては、フィールドデバイス１５〜１８は、アナログ回線またはアナログデジタル結合回線を通じてＩ／Ｏカード２６と通信する、標準的な４〜２０ｍＡデバイスまたはＨＡＲＴ（登録商標）デバイスであり、一方で、フィールドデバイス１９〜２２は、ＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓ通信プロトコルを用いて、デジタルバスを通じてＩ／Ｏカード２８と通信する、ＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓフィールドデバイス等のスマートデバイスである。しかし、一部の実施形態においては、有線フィールドデバイス１５、１６、及び１８〜２１のうちの少なくとも一部、ならびに／またはビッグデータＩ／Ｏカード２６、２８のうちの少なくとも一部は、プロセス制御データハイウェイ１０を用いて、かつ／あるいは他の好適な制御システムプロトコル（例えば、Ｐｒｏｆｉｂｕｓ、ＤｅｖｉｃｅＮｅｔ、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓ、ＣｏｎｔｒｏｌＮｅｔ、Ｍｏｄｂｕｓ、ＨＡＲＴ等）を用いることで、コントローラ１１（及び／または他のビッグデータノード）と追加的または代替的に通信する。
【００５７】
図１に示されるように、コントローラ１１、Ｉ／Ｏカード２６及び２８、ならびに有線フィールドデバイス１５〜１６、１８〜２１の各々は、丸で囲んだ「ＤＤＥ」で示される、それぞれの埋込式分散型データエンジンを含み、これは、１つ以上のデータ分析通信チャネル及び／またはネットワーク（図１には図示せず）を介して、他の分散型データエンジンと通信する。
【００５８】
図１においては、無線フィールドデバイス４０〜４６は、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）プロトコル等の無線プロトコルを用いて、従来型の無線プロセス制御通信ネットワーク７０を介して通信する。そのような無線フィールドデバイス４０〜４６は、１つ以上の他のデバイス、または（例えば、この無線プロトコルもしくは別の無線プロトコルを用いて）無線で通信するようにも構成されている、プロセス制御データ分析通信ネットワーク１１２のノードと直接通信し得る。無線で通信するようには構成されていない１つ以上の他のノードと通信するために、無線フィールドデバイス４０〜４６は、プロセス制御データハイウェイ１０または別の従来型のプロセス制御通信ネットワークに接続される無線ゲートウェイ３５を活用してもよい。
【００５９】
無線ゲートウェイ３５は、無線通信ネットワーク７０の様々な無線デバイス４０〜５８へのアクセスを提供し得る。具体的には、無線ゲートウェイ３５は、無線デバイス４０〜５８、有線デバイス１１〜２８、及び／またはプロセス制御プラント５の他のノードもしくはデバイスの間における通信連結を提供する。例えば、無線ゲートウェイ３５は、プロセス制御データハイウェイ１０を用いることで、かつ／あるいはプロセスプラント５の、１つ以上の他の従来型の通信ネットワークを用いることで、通信連結を提供することができる。
【００６０】
有線フィールドデバイス１５〜２２と同様に、無線ネットワーク７０の無線フィールドデバイス４０〜４６は、プロセスプラント５内で、物理的制御機能、例えば、バルブの開放もしくは閉鎖、またはプロセスパラメータの測定値の取得を実行することができる。しかしながら、無線フィールドデバイス４０〜４６は、ネットワーク７０の無線プロトコルを用いて通信するように構成される。したがって、無線ネットワーク７０の、無線フィールドデバイス４０〜４６、無線ゲートウェイ３５、及び他の無線ノード５２〜５８は、無線通信パケットの生産者であり、かつ消費者である。
【００６１】
一部のシナリオにおいては、無線ネットワーク７０は非無線デバイスを含んでもよい。例えば、図１のフィールドデバイス４８は、レガシである４〜２０ｍＡデバイスであってもよく、フィールドデバイス５０は、従来型の有線ＨＡＲＴ（登録商標）デバイスであってもよい。ネットワーク７０内で通信するために、フィールドデバイス４８及び５０は、無線アダプタを介して無線通信ネットワーク７０と接続されるか、あるいはこの無線アダプタまたは５２ｂとヒストライズしてもよい。無線アダプタ５２ａ、５２ｂは、Ｆｏｕｎｄａｔｉｏｎ（登録商標）Ｆｉｅｌｄｂｕｓ、ＰＲＯＦＩＢＵＳ、ＤｅｖｉｃｅＮｅｔ等の他の通信プロトコルをサポートし得る。更に、無線ネットワーク７０は、１つ以上のネットワークアクセスポイント５５ａ、５５ｂを含んでもよく、これらは、無線ゲートウェイ３５と有線で通信する別個の物理的デバイスであってもよいし、あるいは無線ゲートウェイ３５と共に一体型デバイスとして提供されてもよい。無線ネットワーク７０はまた、無線通信ネットワーク７０内のある１つの無線デバイスから別の無線デバイスにパケットを転送するために、１つ以上のルータ５８を含んでもよい。無線デバイス４０〜４６及び５２〜５８は、無線通信ネットワーク７０の無線リンク６０を通じて、かつ／あるいはプロセス制御データハイウェイ１０を介して、互いと、かつ無線ゲートウェイ３５と通信し得る。
【００６２】
図１に示されるように、アダプタ５２ａ、アクセスポイント５５ａ、及びルータ５８の各々は、丸で囲んだ「ＤＤＥ」で示される、それぞれの埋込式分散型データエンジンを含み、これは、１つ以上のデータ分析通信チャネル及び／またはネットワーク（図１には図示せず）を介して、他の分散型データエンジンと通信する。
【００６３】
一部の実施形態においては、プロセス制御システム５は、Ｗｉ−Ｆｉまたは他のＩＥＥＥ  ８０２．１１に準拠する無線ローカルエリアネットワークプロトコル、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、もしくは他のＩＴＵ−Ｒ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ  Ｒａｄｉｏ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｃｔｏｒ）対応プロトコル等の移動体通信プロトコル、近距離無線通信（ＮＦＣ）及びＢｌｕｅｔｏｏｔｈ等の短波長無線通信、または他の無線通信プロトコルといった、他の無線プロトコルを用いて通信する１つ以上の他の無線アクセスポイント７２を含む。典型的には、そのような無線アクセスポイント７２は、無線ネットワーク７０とは異なり、かつ無線ネットワーク７０とは異なる無線プロトコルをサポートする、それぞれの従来型無線プロセス制御通信ネットワークを通じた、手持ち式または他の携帯用コンピューティングデバイス（例えば、ユーザインターフェイスデバイス７３）による通信を可能にする。例えば、無線または携帯用ユーザインターフェイスデバイス７３は、プロセスプラント５内のオペレータによって活用される、移動式ワークステーションまたは診断試験設備であってもよい。一部のシナリオにおいては、携帯用コンピューティングデバイスに加えて、１つ以上のプロセス制御デバイス（例えば、コントローラ１１、フィールドデバイス１５〜２２、または無線デバイス３５、４０〜５８）もまた、アクセスポイント７２によってサポートされる無線プロトコルを用いて通信する。
【００６４】
一部の実施形態においては、プロセス制御システム５は、直近のプロセス制御システム５の外側にあるシステムへの１つ以上のゲートウェイ７５、７８を含む。典型的には、そのようなシステムは、プロセス制御システム５によって生成された情報、またはプロセス制御システム５の運転が基づく情報の需要者または供給元である。例えば、プロセス制御プラント５は、直近のプロセスプラント５を別のプロセスプラントと通信可能に接続するために、ゲートウェイノード７５を含んでもよい。追加的または代替的に、プロセス制御プラント５は、実験室システム（例えば、実験室情報管理システムまたはＬＩＭＳ）、オペレータラウンドデータベース、マテリアルハンドリングシステム、保全管理システム、製品在庫制御システム、生産スケジューリングシステム、気象データシステム、出荷及び取扱システム、包装システム、インターネット、別のプロバイダのプロセス制御システム、または他の外部システム等の、外部のパブリックシステムまたはプライベートシステムと直近のプロセスプラント５を通信可能に接続するように、ゲートウェイノード７８を含んでもよい。
【００６５】
図１に示されるように、アクセスポイント７２、ユーザインターフェイスデバイス７３、及びゲートウェイ７５は、丸で囲んだ「ＤＤＥ」で示される、それぞれの埋込式分散型データエンジンを各々含み、これは、１つ以上のデータ分析通信チャネル及び／またはネットワーク（図１には図示せず）を介して、他の分散型データエンジンと通信する。
【００６６】
図１は有限数のフィールドデバイス１５〜２２及び４０〜４６、無線ゲートウェイ３５、無線アダプタ５２、アクセスポイント５５、ルータ５８、ならびにプロセスプラント５内に含まれるプロセス制御通信ネットワーク７０と共に単一のコントローラ１１を例証するのみであるが、これは例証的かつ非限定的実施形態であるに過ぎないことが留意される。任意の数のコントローラ１１がプロセス制御プラントまたはシステム５内に含まれてもよく、コントローラ１１のうちのいずれが、任意の数の有線または無線デバイス及びネットワーク１５〜２２、４０〜４６、３５、５２、５５、５８、及び７０と通信して、プラント５内でのプロセスを制御してもよい。
【００６７】
例示的な分散型工業プロセスパフォーマンス監視／分析システムのアーキテクチャ
図２Ａは、分散型工業プロセスパフォーマンス監視／分析用の例示的システム１００のブロック図を含み、このシステムは本明細書においては交換可能にＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｙｓｔｅｍ（ＤＡＳ）とも呼ばれる。ＤＡＳ１００は、例えば図１のプロセスプラント５と共に運転してもよく、例証の簡便性のために本明細書ではそのように考察する。しかしながら、ＤＡＳ１００の少なくとも一部分は、プロセスプラント５以外の他のプロセスプラント及び／またはプロセス制御システムと共に運転してもよいことが理解される。
【００６８】
概して、ＤＡＳ１００はローカライズしたパフォーマンス監視及び／または分析をサポートするが、一方で同時に、プロセスプラント環境に関する、大規模（例えば、システム全体及び／またはプロセスプラント５の複数のデバイスもしくはノードにわたって）パフォーマンス監視、データマイニング、及びデータ分析をサポートする。このため、システム１００は複数の分散型データエンジン（ＤＤＥ）を含み、その例は、図２Ａにおいては参照番号１０２ａ〜１０２ｅで示され、図２Ｂにおいては参照番号１０２ｆ〜１０２ｈで示される。本明細書で使用する場合、参照番号「１０２ｘ」は、ＤＤＥ１０２ａ〜１０２ｈのうちのいずれか１つ以上を指す。図２Ａに例証される分散型データエンジンのうちの少なくとも一部は、図１に例証される分散型データエンジンに対応する。例えば、図２Ａのデータエンジン１０２ａは、図１の無線ゲートウェイ３５内に含まれるデータエンジンであり、図２Ａのデータエンジン１０２ｂは、図１のコントローラ１１に埋め込まれたデータエンジンである。加えて、システム１００は、図１には示されていない他の分散型データエンジン１０２を含む。例えば、分散型データエンジン１０２ｃはデータハイウェイ１０に接続されており、分散型データエンジン１０２ｄはプロセスプラント５の集中ビッグデータアプライアンス１０８に埋め込まれており、分散型データエンジン１０２ｅはビッグデータクラウドノード１１０に埋め込まれており、ここでビッグデータクラウドノード１１０は、プロセス制御プラント５のデータ分析の必要性を処理することができる（また一部の構成においては、他のプロセス制御プラントを処理することもできる）。無論、システム１００は５つのデータエンジン１０２ａ〜１０２ｅ、または８つのデータエンジン１０２ａ〜１０２ｈに限定されず、任意の数の分散型データエンジンを含むことができ、これらのデータエンジンのうちの少なくとも一部は、それらのそれぞれのデータソース内に埋め込まれるかまたはその中に製造され（例えば、プロセスプラント５のそれぞれのプロセス制御デバイスに）、かつ／あるいはこれらのデータエンジンのうちの少なくとも一部は、プロセスプラント５のある他のデータソース（例えば、構成要素、部分等）に別様に接続される。
【００６９】
一部の構成においては、一部の分散型データエンジン１０２ｘは従来型のプロセス制御通信ネットワークを用いることで他のデータエンジンと少なくとも一部の情報を通信し得るが、上述の通り、典型的には、分散型データエンジンは、従来型のプロセス制御プラント通信ネットワーク（例えば、図１のバックボーン１０、無線ネットワーク７０、Ｉ／Ｏカード２８とデバイス１９〜２２との間の有線接続等）のうちのいずれを使用しても他の分散型データエンジンと通信することはない。しかし、概して、データエンジン１０２ｘは、従来型のプロセス制御ネットワークとは異なる、別個の１つ以上のデータ分析通信ネットワーク１１２を用いることで、他のデータエンジン１０２ｘと通信する。分析データは、例えば、分析ストリーミングサービス、ストリーミング及び／またはキューイングプロトコルの使用、かつ／あるいは、カスタムストリーミングソース、Ｆｌｕｍｅ，ＨＤＦＳ、ＺｅｒｏＭＱ、Ｋａｆｋａ、Ｍｉｃｒｏｓｏｆｔ  Ｍｅｓｓａｇｅ  Ｂｕｓ、ＭＱＴＴ、ＡＭＱＰ、ＲａｂｂｉｔＭＱ等のストリーミングをサポートするメッセージングブローカーまたはシステム１１５の使用、前述の「ＳＴＲＥＡＭＩＮＧ  ＤＡＴＡ  ＦＯＲ  ＡＮＡＬＹＴＩＣＳ  ＩＮ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭＳ」と題される米国出願第１４／５０６，８６３号に記載されるもの等の、カスタム特化履歴オブジェクト通信プロトコル（ｃｕｓｔｏｍ  ｓｐｅｃｉａｌｉｚｅｄ  ｈｉｓｔｏｒｙ  ｏｂｊｅｃｔ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｐｒｏｔｏｃｏｌ）の使用、または別の好適な通信プロトコルの使用によって、分散型データエンジン間またはネットワーク１１２のノード間でストリーミングされる。図２Ａにおいて、ネットワーク１１２は、明瞭性のために完全には描写されていないが、データ分析通信ネットワーク１１２のいくつかの分岐が図２Ａには表されている。したがって、ある実施形態においては、データ分析通信ネットワーク１１２の少なくとも一部分は、ある意味において、プラント５内の従来型のプロセス制御通信ネットワークの上のオーバーレイネットワークであり得る。例えば、ＤＤＥ１０２ｘを備える物理的設備、及びデータ分析ネットワーク１１２の少なくとも一部は、プロセスプラント５の構内に配置されてもよく、一部の場合においては、プロセスプラント５の設備の中に配置されてもよい。
【００７０】
別の実施形態においては、データ分析通信ネットワーク１１２の少なくとも一部分は、図２Ｂに示されるように、従来型のプロセス制御通信ネットワークと並んで、あるいはほぼそれと並列して実装され得る。図２Ｂにおいては、プロセスプラント５は、例えばプラント５内の１つ以上のプロセスの制御を補助するために、従来型のプロセス制御通信ネットワークと通信可能に接続される、様々なプロセス制御デバイスまたは構成要素を含む。そのようなプロセス制御デバイス／構成要素のうちの３つは、それらの中に埋め込まれており、それらと関連付けられているそれぞれのＤＤＥ１０２ｆ、１０２ｇ、及び１０２ｈを各々有し、ＤＤＥ１０２ｆ〜１０２ｈの各々は、データ分析ネットワーク１１２と通信可能に接続されている。しかしながら、データ分析ネットワーク１１２をサポート及び／または構成する設備の大多数は、プロセスプラント５の設備内には配置されておらず、代わりにエンタープライズデータセンタに離れて配置され得る。
【００７１】
別の実施形態においては、データ分析通信ネットワーク１１２の少なくとも一部分は、プロセスプラント５内の論理ネットワークとして実装されてもよい。この実施形態においては、例えば、プロセス制御データ及び分析データの両方が、論理的には独立したリンク、例えば１つの従来型のプロセス通信リンク及び１つのデータ分析通信リンクの外観を有する、同じ物理的通信リンクを通じて伝送されてもよい。
【００７２】
しかし、データ分析ネットワーク１１２の実装形態に関係なく、データ分析ネットワーク１１２は、プロセス制御システム５内のデバイスまたはノードにおいて従来型のプロセス制御通信ネットワークと交差し、これらのデバイスまたはノードには、分散型データエンジン（例えば、データエンジン１０２ａ、１０２ｂ、１０２ｆ、１０２ｇ、１０２ｈ）が埋め込まれており、プロセス制御システム５内の他のデバイスまたはノードと、従来型のプロセス制御通信ネットワークを介して、かつ／あるいは従来型のプロセス制御通信ネットワークに送信されるデータへのウィンドウを持つことを目的としてそれと接続される分散型データエンジン（例えば、データエンジン１０２ｃ）によって情報を通信する。
【００７３】
データ分析ネットワーク１１２は、任意の所望の通信技術及び／または通信プロトコルを活用してもよい。データ分析ネットワーク１１２の少なくとも一部分は有線技術を活用してもよく、データ分析ネットワーク１１２の少なくとも一部分は無線技術を活用してもよい。しかし、概して、データ分析ネットワーク１１２は、Ｅｔｈｅｒｎｅｔよりも、ＩＰまたは他の非同期データパケットプロトコル等のデータパケット伝送プロトコル及び／または技術をサポートし得る。
【００７４】
より高次または上位層においては、データ分析ネットワーク１１２は、ストリーミングが可能なプロトコル、リアルタイムデータフィードを扱うメッセージブローカー、及び／またはＡｐａｃｈｅ  Ｋａｆｋａ等の、リアルタイムデータフィード１１５を扱うメッセージングシステムを活用してもよい。図２Ａに示されるように、データ分析ネットワーク１１２によって提供されるストリーミング能力１１５は、分散型パフォーマンス監視／分析システム、すなわちＤＡＳ１００が、データソースにローカルでバインドすること、及びデータソース付近で様々な分析サービスを提供することを可能にする（例えば、分散型データエンジン１０２ｘが埋め込まれている、図１の１１、１８、２６、２８、７２、３５、５２ａ、５５ａ、７２等の、プロセスプラント５のデバイスまたはノード付近、またはそこにおいて）。同時に、システム１００のストリーミング能力１１５はまた、より広いかあるいはより高次のデータ分析をサポートするために必要な特定のソース生成データしか、受信側のデータエンジンに通信される必要がないため、システム１００によるより大規模な予測及び最適化も可能にする。例えば、データエンジン１０２ｄが、プロセスプラント５のコントローラの各々によって生成され、かつ特定の構成変化が各コントローラにおいてインスタンス化された後１時間以内に取り込まれたデータのみに対して特定のデータ分析を実行する場合、コントローラ１１に埋め込まれたデータエンジン１０２ｂは、必要とされるデータのみ、エンジン１０２ｄに対してストリーミングする（例えば、特定の構成変化がインスタンス化された後１時間の間にコントローラ１１によって生成された出力データしかデータエンジン１０２ｄにストリーミングせず、コントローラ１１によって生成された他の出力データはストリーミングしない）。
【００７５】
図２Ａに示されるように、分散型パフォーマンス監視／分析システムすなわちＤＡＳ１００の一部は、プロセス制御環境またはプラント５内にローカルで配置される。例えば、分散型データエンジン１０２ａ、１０２ｂ、１０２ｃ、及び１０２ｄは、プロセスプラント５の構内に配置される。また、図２Ａに示されるように、システム１００の他の部分は、離れて配置される。例えば、データエンジン１０２ｅは、クラウド１１０に配置される。他のデータエンジン１０２ｘは、複数のプロセスプラントまたはプロセス制御システムを処理するサーババンク等、１つ以上の離れた場所（図示せず）に配置されてもよい。無論、一部の構成においては、システム１００は、ローカルで配置されたデータエンジンを省いてもよく、離れて配置されたデータエンジンを省いてもよい。すなわち、システム１００は、完全にサブジェクトプロセス制御環境５の構内に（例えば、ローカルで）、完全にサブジェクトプロセス制御環境５の構外に（例えば、離れて）、あるいは構内及び構外の分散型データエンジンの組み合わせを用いて（例えば、ローカルで、かつ離れて）、パフォーマンス監視及び分析を（例えば、１つ以上の分散型データエンジンを介して）提供してもよい。
【００７６】
工業制御システム用のパフォーマンス監視及び分析の例示的種類
概して、工業制御システムのパフォーマンス監視及び分析は、サブジェクト制御システムによって、（例えば、システムが動作して１つまたはプロセスを制御している間に、リアルタイムで）生成されたデータを集めることと、１つ以上の分析機能もしくはオペレーションを、集めたデータの少なくとも一部に実施して、制御システムがどの程度良好に機能しているかについての知識を決定すること、または一部の場合においては、システムのパフォーマンスを向上するために取り得るアクションを決定することを含む。工業プロセス制御システムのデータ分析は、３つの一般的なカテゴリ、すなわち記述的分析、予測的分析、及び規定的分析において考慮され得る。これらのカテゴリの分析についての一般的な考察が後に続く。
【００７７】
記述的分析は、プロセス制御システムまたはプラント内で何が起こったか、いつそれが起こったか、どのくらいの頻度でそれが起こったか、及び、起こったことからどのような問題（複数可）がもたらされたかをユーザが発見することを可能にする。典型的には、記述的分析は、プロセスシステムまたはプラントを監視することで（例えば、帰納的に）収集されたデータに対して実施され、基本的計算、スケーリング、及び標準的統計等の技法を活用し得る。
【００７８】
規定的分析は、プロセス制御システムまたはプラント内のオペレーションをユーザが最適化することを可能にする。例えば、規定的分析は、何が最善の答えか？不確実性を前提とすると、何が最善の結果か？何が有意に異なり、何がより良好な選択肢か？といった質問にユーザが回答することを可能にする。予測的分析は、工業プロセス制御プラント及びシステムのプロセスオペレーションの重要な品質変数または重要なインジケータを特定、監視、及び制御することができる。加えて、予測的分析は、将来的な入力のセットまたは因果条件を与えられた場合、プロセスオペレーションの重要な品質変数または重要なインジケータに対して何が起こるかを特定することができる。次いで、予測値は、規定的分析によって活用されて、規定的アクションを生成し得る。典型的には、規定的分析は、制約に基づく最適化、及び多目的最適化等の技法を活用するが、公知のデータ監視及び分析ツールは初歩的であり、その範囲において著しく限定されている。
【００７９】
例えば、公知のデータ監視及び分析ツールによって、ユーザまたはオペレータは、プラントの設備またはユニットの単一の部分のパフォーマンスを、その設備またはユニットの単一の部分を監視することで（例えば、帰納的に）収集されたデータに基づいて動作する、制約に基づく最適化のツールを使用することで、最適化し得る。しかしながら、プロセス制御システムまたはプラントは設備及びプロセスユニットの多数の部分を含むため、全体的なプロセスは、複数のユニット間のプロセス相互作用に起因して、未だなお最適からは遠い可能性がある。プロセス制御システムの一部分にまたがる、相互作用しているユニットまたは協調的最適化のための多目的最適化技法は、公知のデータ監視及び分析ツールにおいて利用可能であるが（例えば、第一原理に基づくモデリング）、プロセスの増加する複雑さに起因して、そのような協調的最適化技法は困難であり、多くの場合、（実行可能であったにせよ）有用であるには実行に時間がかかり過ぎる。例えば、公知の多目的最適化ツールは、設備またはユニットの複数の部分を監視することで（例えば、帰納的に）収集されたデータに基づいて動作して、最適な動作点を特定し、現在の動作点を最適な動作点まで移動させる軌跡を決定する。しかしながら、データ収集及びそれに基づく計算の各サイクルは非常に時間がかかる場合があり、それにより、規定的アクションが特定される頃までには、プロセスはそのオペレーションにおいて遥かに移動しており、結果として、特定された規定的アクションは最早最適ではないか、あるいは無効、逆効果、かつ／または危険ですらあり得る。更に、ユーザが、多目的最適化ツールに入力される変数の量を制限することによって、計算のサイズ及び範囲（したがって、計算に必要とされる時間）の縮小または限定を試みる場合、ユーザは、どの変数を入力として選択するかについて人間による判断を下すことになるが、これは範囲を限定するのみならず、不正確である可能性もあり、したがって、誤った、または不正確な結果をもたらし得る。
【００８０】
更に、公知のデータ監視及び分析ツールは、多くの場合、重要な品質変数のアイデンティティ及び値をオンデマンドで提供することができず（例えば、利用可能な測定技法の制限に起因して）、タイムリーで適切な結果を提供することができない。例えば、プロセス制御システムの予測的分析のために現在使用されている技法は、オフライン技法（例えば、実験室の）またはオンライン技法（例えば、アナライザによる）のいずれかを含むが、これらの両方が、それらそれぞれの欠点を有する。実験室内試験が招く有意な遅延は、いかなる出力も、現在のプロセス状態にとって最適以下、または無効にすらしてしまうため（例えば、被測定信号を、フィードバック信号として使用することはできない）、重要な品質変数のオフラインでの決定は望ましくない。公知のオンラインアナライザには問題点が多く、効果であり、頻繁かつ高コストの整備を必要とするため、重要な品質変数を決定するためのオンラインアナライザの使用もまた望ましいとは言えない。このような制限が、生成物の品質、廃棄物の生成、及びオペレーションの安全性に深刻な影響を及ぼし得る。
【００８１】
更に、大規模の監視状況においては、従来型の集中型パフォーマンス監視スキームは、深刻な制限を有する。好適なパフォーマンス監視システムは、耐故障性能力、動作信頼性、及び経済性を有するべきであるが、集中型パフォーマンス監視スキームが大規模監視状況に適用される場合、これらの全てが損なわれてしまう。具体的には、集中型監視装置は、プロセスの全てのユニットの故障を同時に監督する。集中型監視装置は全ての測定変数をその計算に使用するものであり、１つの変数が利用できないか、あるいは１つの通信チャネルが遮断された場合、全体の監視システムが機能を停止する可能性があるため、あるユニットに故障が見つかると、集中型監視装置は同じ期間中に起こる他のユニットからの更なる故障を検出するその能力について制限されてしまう。加えて、集中型監視装置のリアルタイム能力は、変数の最も低いサンプリングレートによって制限され、これが監視システムの効率性を低減する。更に、プラントにおける異なる変数は、（同じユニット内ですら）非常に異なる動態のスケールを有し、単一の監視スキームは、通常、全体のプロセスまたはユニットの全ての変数に対しては適用されず、特に、変数が互いに影響を及ぼし合うような状況、例えば、相互作用するプロセスユニットにまたがる状況においては最適以下である。なおも更に、プロセス制御システム内に地理的分布が存在する場合（例えば、油送管等の、様々なプロセスユニット間が長距離である場合）、各ユニットは典型的には別個のパフォーマンス監視装置を備え付けられ、それによってローカルの（しかし全体的ではない）パフォーマンス監視、ならびに送信遅延、データ損失、及びバッテリーの制限という問題がもたらされる。
【００８２】
現在使用されている初歩的であり、単変量であり、かつ／あるいは集中型の予測的監視及び分析技法とは異なり、また記述的分析及び規定的分析の帰納的性質とは異なり、本明細書に記載される、工業制御システム及びプラント用の新規の分散型パフォーマンス監視及び分析システム、方法、装置、構成要素、及び技法は、ユーザが、任意の時間点においてプロセス制御システムまたはプラント内で現在起こっている物事を監視することと、現在のデータに基づいて、次または後に起こる可能性が高い物事をリアルタイムで予測することとを可能にする。本明細書に開示される新規技法は、「今何が起こっているか？」、「次に何が起こるか？」、「この傾向が続くとどうなるか？」等の疑問に、プロセスデータの特性に関するユーザまたは人間の先入観をほぼまたは全く伴わずに、ユーザが回答することを可能にする。
【００８３】
本明細書に記載される、工業制御システム用の分散型パフォーマンス監視及び分析についての本新規技法は、概して、プラットフォーム（例えば、図２Ａに示されるシステムアーキテクチャ１００）と、このプラットフォームに加えて、あるいはこのプラットフォームと併せて動作するアプリケーションとを含む。このプラットフォームは、プロセス制御システムまたはプラントが１つ以上のプロセスを制御するように動作する前、動作している間、及び動作した後に、設備及びプロセスの知識で拡張されるデータ駆動型の方法を活用して、例えば、プロセス制御システムまたはプラント（例えば、プロセス制御システム５）の評価、監視、及びデータマイニングをサポートする。一部の実装形態においては、このプラットフォームは、複数の制御システムまたはプラントをサポートし得る。
【００８４】
このプラットフォームに依存して、あるいはこれと併せて動作するパフォーマンス監視／分析アプリケーションは、例えば、推測される測定値、設備監視、故障検出、プロセス予測、因果関係、他の監視アプリケーション、及び／または他の分析アプリケーションを含み得る。これらのアプリケーションによって活用され得る技法としては、データマイニング、最適化、予測的モデリング、機械学習、シミュレーション、分散型状態推定等が挙げられる。したがって、監視／分析アプリケーションは、器具類、設備、制御、ユーザインタラクション、及びプロセス等の領域におけるものを含む、プロセス制御システム５の任意の数の任意の部分のパフォーマンス劣化及び故障を監視、予測、及び診断するために使用することができる。
【００８５】
したがって、本明細書に記載される分散型工業パフォーマンス監視及び分析技法は、容易に利用可能なプロセス測定値から、重要なプロセス変数の連続的なオンライン評価を提供する、推論メカニズムを含み得る。データモデルを長期間にわたって維持するために、本システムは更に、データモデルを監視、調整、及び強化するための能力をサポートし得る。使用され得る方法としては、最も単純な場合においては、モデルを離調させることが挙げられる（例えば、通常の動作範囲を、予測±３ｓに増加させる）。より複雑な例としては、モデル切り替え及びモデル適応が挙げられる。
【００８６】
実際、研究及びプロトタイプ試験プログラムの一部として、本発明者らは、本明細書に記載される技法を用いて、プロトタイプの工業プロセスパフォーマンスデータ監視及びデータ分析のフレームワークを確立して、非直線性、非ガウス分布、データサンプルの不規則性、プロセス制約、及び／または他の因子の存在の下、ソフトセンサ開発の問題に対処した。これらのプロトタイプ及び研究において、特殊化学品、バッチ、及び炭化水素プロセスについて、いくつかのソフトセンサによって生成されたデータの監視及び分析を行い、結果として得られた知識を、獲得されたプロセスを向上するために活用した。我々の工業上の提携先により、有意な経済的及び環境上の利点が報告された。我々の研究及びプロトタイプの例は、後の節において記載される。
【００８７】
ここで図２Ａに戻ると、本分散型工業パフォーマンス監視及び分析システム、すなわちＤＡＳ１００は、ローカライズしたパフォーマンス監視をサポートするために必要とされるツール、構成、及びインターフェイスを提供するが、一方で同時に、プロセスプラント環境、例えば図１のプロセスプラント５に関する、大規模データマイニング及びデータ分析をサポートする。例えば、システム１００は、データ分析モデルを構成及び開発するためのユーザインターフェイスアプリケーション（例えば、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ）と、モデルを実行するためのランタイムエンジン（これは、プロセス制御システムによって生成されるリアルタイムデータに基づいて、全体的または部分的に動作し得る）と、分析結果を表示するための、同じまたは別のユーザインターフェイスアプリケーション（例えば、Ｒｕｎ−ｔｉｍｅ  Ｄａｓｈｂｏａｒｄ）とを含み得る。システム１００は、先述したようなリアルタイム値（例えば、リアルタイム連続値）、事象収集、バッチデータ収集、オペレータラウンドデータ、ＬＩＭＳデータ、サプライチェーンデータ及び／または気象データ等の外部データ、ならびに構造化データ及び非構造化データの両方を含む、プロセス制御システムと関連付けられる任意の他の種類のデータといった、複数の種類のデータソースに基づいて動作し、あるいはそれをサポートし得る。システム１００は、記述的統計、ヒストグラムプロット、相関プロット等の、「常識にとらわれない」標準的分析のセットを提供し得る。加えて、システム１００は、ユーザが所望の分析を作成するため、かつソースデータと、複数の異なるデータ分析を適用することにより生成されるｎ次データとの両方を閲覧するための構造化環境を提供して、プロセス制御システムの様々なデータセット内の潜在的な関係性を特定し、かつ／あるいは製品の能力、品質、及び他の特性を予測し得る。概して、システム１００は、プロセス制御システムについての知識の発見、ならびにアクション可能な知識（例えば、プロセス制御システムのパフォーマンスを向上または最適化するため、故障を修正及び／または予測するため、信頼性を向上するため、安全性を向上するため、経済性を向上するため等）を提供することができ、これはデータモデルとして表され得る。
【００８８】
図２Ａに示されるように、システム１００は高度に分散することができ、例えば、多数の分散型データエンジン１０２ｘを含み得る。埋込式データエンジン１０２ｘのネットワーク１１２は、多数（例えば、数百、数千、または数百万）のセンサと、プロセス制御システムの情報のソースとを相互接続し得る。先述したように、データエンジン１０２ｘは、プロセス制御システムのデバイス及びノード（例えば、製造設備、プロセス制御デバイス、通信ノード、マテリアルハンドリングシステム、実験室システム、プラントのユーザ、及びプロセス自体）付近で、そこにおいて、またはそこの内部でクラスタ化される。したがって、分散型工業パフォーマンス監視及び分析システム１００の埋込式の性質は、物理的なプロセス制御プラントに対して密接に連結される。しかしながら、プロセス制御システムデバイス及びノードの製造の基本構造への、データエンジン１０２ｘの埋め込み及び統合は、データエンジン１０２ｘをエンドユーザに対してほぼ不可視にし得る。典型的には、データエンジン１０２ｘは小型であり、ネットワーク１１２に無線で接続され、帯域幅が限定されており、限定されたエネルギー及び十分な熱放散の必要性等の物理的制約の下で動作するが、これは、データエンジン１０２ｘが、温度センサまたは他の種類のセンサ等のプロセス制御デバイス内に埋め込まれ得るためである。
【００８９】
先述したように、分散型データエンジン１０２ｘは、ストリーミングプロトコル及び／またはキューイングプロトコルを用いることで、ネットワーク１１２を通じて他のデータエンジン１０２ｘと相互接続する。各分散型データエンジン１０２ｘは、１つ以上のデータ監視及び／またはデータ分析アプリケーションをサポートし得る。アプリケーションの莫大な数の接続されたクラスタは、リソースの勘定、故障の検出及び修正、システム管理等について、（決定的であるのではなく）統計的に正確なアルゴリズムの使用を必要とし、各クラスタが、ローカライズされたニーズに対して目的の機能性を提供し得る。
【００９０】
したがって、分散型工業パフォーマンス監視及び分析システム１００は、プロセス制御プラントの安全性、効率性、及び生産性を向上させ得る。例えば、システム１００はプロセスパラメータを精密に制御することができ、したがってプロセス製造の総コストを低減し得る。加えて、プロセス制御環境５へのシステム１００の統合は、無数にある利点のうちのいくつかを挙げるだけでも、精密なプロセス制御及びリアルタイムの品質保証による、より良好な製品品質及びより少ない廃棄物；プログラム可能なサブシステムの結果として、より柔軟性の高い、迅速に構成される生産ライン；より有効であり、予防的であり、より低いコストの整備につながる、システム正常性の監視；より良好な監視及び制御に起因する、より安全な作業環境；ならびに、スマートＲＦＩＤタグの使用等を通じた、より良好な部品組み立て技法を結果としてもたらし得る。
【００９１】
また、分散型工業パフォーマンス監視及び分析システム１００は、ユーザとプロセス制御システム５との間の人間−機械の相互作用を、プロセスプラント５内にリアルタイムの人間プラス機械の制御ループを生成する点にまで改善し得る。例えば、改善された人間−機械の相互作用は、オペレータ／整備／信頼性の誤りが存在しないことを確実にすることによって、ならびに事故を低減することによって、品質及び生産性を向上させ得る。更に、プロセス制御プラント５のサービスの利用可能性、信頼性、及び連続的品質は、システム１００による、進歩した制御、冗長性、知的アラーム、自己診断、及び修復を通じて達成され得る。
【００９２】
例示的工業パフォーマンスデータ監視／データ分析エンジン
ここで、分散型の、工業パフォーマンス分散型データ監視及び／または分析エンジン１０２ｘに注目すると、概して、分散型データエンジン１０２ｘは、１つ以上のデータソースによって、例えばデータエンジン１０２ｘが埋め込まれているデバイスもしくは構成要素によって、またはデータエンジン１０２ｘが連結もしくは接続されている構成要素（複数可）によって、生成または別様に観察される、全てまたは大部分のプロセス制御に関するデータ（例えば、ビッグデータ）を収集、観察、回収、受信、処理、記憶、キャッシュ、及び／または分析する、データ分析通信ネットワーク１１２のノードであり得る。一部の状況においては、分散型エンジン１０２ｘは、追加的なデータ（例えば、それが実施する分析の結果）を生成し得、かつ／またはデータ分析ネットワーク１１２の他のノードに選択されたデータを送信もしくは転送し得る。本明細書で交換可能に使用する場合、用語「プロセス制御ビッグデータ」、「プロセスビッグデータ」、及び「ビッグデータ」は概して、プロセス制御システムまたはプラント（例えば、プロセス制御システムまたはプラント５）内に含まれ、それと関連付けられるデバイス及び／または構成要素（例えば、プロセス制御デバイス／構成要素と、分析デバイス／構成要素との両方）によって生成、受信、及び／または観察される全て（またはほぼ全て）のデータを指し、特に、全て（またはほぼ全て）のデータは、プロセス制御システムまたはプラントがリアルタイムで１つ以上のプロセスを制御するように実行している間に生成、受信、及び／またはされるものである。ある実施形態においては、プロセスプラント５内に含まれ、それと関連付けられる全てのデバイスによって生成され、それによって作成され、そこで受信され、またはそれによって別様に観察される全てのデータ（全てのプロセスデータ及び全ての分析データを含む）は、データ分析通信ネットワーク１１２内にビッグデータとして収集及び記憶される。プロセスプラント及びプロセス制御環境においては、時間の範囲及び特定のデータ点の存在または脱落は重大であり得るため、このビッグデータの収集及び分析は、安全性、信頼性、及び経済性の向上にとって重要である。例えば、ある特定の時間間隔内に、特定のデータ値が、プロセスプラントの受信側の構成要素に送達されない場合、プロセスは無制御になり得、これは火事、爆発、設備の損失、及び／または人命損失につながり得る。更に、プロセスプラント内で動作し、かつ／あるいはプロセスプラントの外部で動作する、異なる構成要素、エンティティ、及び／またはプロセス間の、複数及び／または複雑な時間基準の関係性が、動作効率、製品品質、及び／またはプラントの安全性に影響を及ぼし得る。
【００９３】
分散型データエンジン１０２ｘによって生成、収集、観察、回収、受信、記憶、キャッシュ、処理、分析、及び／または転送されるプロセス制御ビッグデータは、プラント５内のプロセスにおいて直接活用されているデータ、またはそのプロセスを制御することから生成されているデータを含み得、例えば、コントローラ、入力／出力（Ｉ／Ｏ）デバイス、及びフィールドデバイス等のプロセス制御デバイスによって生成または使用される、一次のリアルタイム及び構成データを含み得る。追加的または代替的に、データエンジン１０２ｘは、そのような一次のプロセス制御データ、ならびにプロセスプラント５内の他のデータ、例えば、データ分析通信ネットワーク１１２及び／またはプラント５内の他の通信ネットワークのネットワーク制御に関するデータ、帯域幅を示すデータ、ネットワークアクセス試行、診断データ等を送達及び発送することに関するデータを、生成、収集、観察、処理、分析、記憶、受信、回収、キャッシュ、及び／または転送し得る。更に、一部のデータエンジン１０２ｘは、プロセス制御データ分析通信ネットワーク１１２が収集したプロセス制御ビッグデータを処理及び／または分析することによって、その内部で学習された、結果、学習、及び／または情報を示すデータを、生成、収集、観察、記憶、キャッシュ、回収、受信、及び／または転送し得る。典型的には、そのような分析結果、学習、及び／または学習された情報は、１つ以上のデータエンジン１０２ｘによって実施される分析から生成される。
【００９４】
したがって、分散型データエンジン（例えば、ＤＤＥ１０２ｘ）は、本明細書においては交換可能に、「ビッグデータアプライアンス」、「ビッグデータアプライアンスノード」、または「アプライアンスノード」と呼ばれる。ほとんどの場合において、ビッグデータアプライアンスノード１０２ｘの分散型データエンジンは、リアルタイムで（例えば、ストリーミングを介して）ビッグデータを送信及び受信するため、ならびに一部の実施形態においては、後のストリーミングまたはプロセス制御データ分析通信ネットワーク１１２を通じた他の送達のためにリアルタイムビッグデータをキャッシュ及び／または記憶するために、マルチコアハードウェア（例えば、マルチコアプロセッサ）を含む。したがって、分散型データエンジン１０２ｘはまた、ビッグデータのキャッシュ及び／または記憶のためのメモリ（例えば、高密度メモリ）も含む。データエンジン１０２ｘによって送信、受信、ストリーミング、キャッシュ、収集、記憶、受信、回収、キャッシュ、及び／または別様に観察され得るリアルタイムデータの例としては、測定データ、構成データ、バッチデータ、事象データ、及び／または連続データ等のプロセス制御データが挙げられ得る。例えば、構成、バッチレシピ、設定点、出力、レート、制御アクション、診断、アラーム、事象、及び／またはそれに対する変更に対応するリアルタイムデータが、収取され得る。リアルタイムデータの他の例としては、プロセスモデル、統計、ステータスデータ、ネットワーク及びプラント管理データ、及び分析結果が挙げられ得る。本明細書に記載される技法のうちのいずれかまたは全てと共に活用できる、様々な種類の例示的ビッグデータアプライアンス及びそれらの構成要素についての記載は、前述の米国特許出願第１３／７８４，０４１号、同第１４／１７４，４１３号、及び同第１４／２１２，４９３号において見出され得るが、本明細書に記載される技法のうちのいずれかまたは全ては、他の好適なビッグデータアプライアンスと共に活用できることが理解される。
【００９５】
典型的には、分散型データエンジン１０２ｘは概して、プロセス制御プラントまたはシステム５内の１つ以上のデータソースによって生成または提供されており、かつ／あるいは別様にプロセス制御プラントまたはシステム５のリアルタイムオペレーションと関連付けられている、ビッグデータに基づいて動作する。例えば、ＤＤＥ１０２ｘは、それが埋め込まれているデバイスにおいて受信され、かつ／あるいはそのデバイスによって生成されたデータ、またはその対応するデータソース（複数可）において受信され、かつ／あるいは生成されたデータを、収集及びタイムスタンプし得る。収集されたデータは、データエンジン１０２ｘのローカルメモリに、（少なくとも一時的に）保存され得る。一部の状況においては、少なくとも一部のデータは、前述の「ＳＴＲＥＡＭＩＮＧ  ＤＡＴＡ  ＦＯＲ  ＡＮＡＬＹＴＩＣＳ  ＩＮ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭＳ」と題される米国出願第１４／５０６，８６３号に記載されるもの等の特化履歴オブジェクト通信プロトコル、またはＫａｆｋａ等の別の好適な通信プロトコルまたはメッセージングシステムを用いて、１つ以上の他のデータエンジン１０２ｘに移送またはストリーミングされ得る。
【００９６】
一部の実施形態においては、１つ以上のデータエンジン１０２ｘは、リアルタイム連続値、事象収集、バッチデータ収集、オペレータラウンドデータ、及び／または他のデータを含む、多次元データに基づいて、大規模なデータマイニング及びデータ分析をサポートする。分散型データエンジン１０２ｘは、１つ以上のデータ分析を、そのローカルで収集したデータ及び／または他のＤＤＥ１０２ｘによって収集されたデータに基づいて実施するように構成され得る。例えば、ＤＤＥ１０２ｘは、構造化データ（例えば、メモリ、リレーショナルデータベース、及び／または非リレーショナルデータベースに記憶されるか、あるいはストリーミングされる、時系列及び表データ）、ならびに非構造化データ（例えば、ｐｄｆ）に基づいて動作する様々なツールを含み得る。加えて、ＤＤＥ１０２ｘは、任意の１つ以上の所望のターゲット環境をサポートし、そこにおけるそれぞれのターゲットコード（例えば、Ｊａｖａ、Ｃ＃、Ｒスクリプト、Ｐｙｔｈｏｎスクリプト、Ｍａｔｌａｂ（登録商標）スクリプト、Ｓｔａｔｇｒａｐｈｉｃｓ等）を実行し得る。ＤＤＥ１０２ｘは、製品の能力、品質、及び／または他の所望の特性を予測すること等、結果及び／または有用な情報を生成するために、学習アルゴリズム（例えば、部分最小二乗回帰、主構成要素分析等）、分類技法（例えば、ランダムフォレスト、パターン認識等）、及び／または他のデータ分析を実施し得る。ローカル分析の結果は、データエンジン１０２ｘのローカルメモリに記憶され得、それ自体が、追加的なビッグデータとして処理され得る。更に、一部のデータエンジン１０２ｘは、モデルと、モデルを実行するためのランタイムエンジンと、ユーザインターフェイスに結果を表示するためのダッシュボードとを構成及び開発するためのインターフェイスを含み得る。例えば、分散型データエンジン１０２ｘは、前述の「ＤＡＴＡ  ＰＩＰＥＬＩＮＥ  ＦＯＲ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭ  ＡＮＡＬＹＴＩＣＳ」と題される米国出願第６２／０６０，４０８号に考察されるもの等の様式で、かつ／あるいは本開示の後の節において考察されるように、ランタイムについての分析を伴って構成され得る。表示される結果は、標準化記述的統計、ヒストグラム、相関プロット、及び／または様々なデータセット内の潜在的な関係性を特定できる他のデータ表現を含み得る。
【００９７】
一部の場合においては、分散型データエンジン１０２ｘは、ホストデータソース内に組み込まれるか、その中に製造されるか、それに直接連結されるか、あるいは別様にそれと共在する（例えば、図２Ａに示されるデータエンジン１０２ａ、１０２ｂ、及び１０２ｃ）。一部の場合においては、分散型データエンジン１０２ｘは、プロセス制御データ分析通信ネットワーク１１２の自立型ビッグデータノードであり得る（例えば、図２Ａに示されるデータエンジン１０２ｄ及び１０２ｅ）。すなわち、これらの場合においては、データエンジン１０２ｘは、プロセス制御システムまたはプラント５のデータソース内に組み込まれたり、それと共在したりしてはいないが、１つ以上のデータソースによって生成されたデータを別様に観察し得る（例えば、分散型データエンジンが従来型のプロセス制御通信リンクと連結されている場合、データエンジン１０２ｃ等）。埋込式であるかに自立型であるかに関わらず、データエンジン１０２ｘは、１つ以上のデータソースによってローカルで生成及び／または提供されたビッグデータを分析して、知識を発見または学習する。この学習した知識は、データエンジン１０２ｘに記憶され、ローカルでデータエンジン１０２ｘによって動作され、かつ／あるいはビッグデータとして他のデータエンジン１０２ｘ、例えば受信側のビッグデータノードに提供または送信され得る。加えて、分散型データエンジン１０２ｘは、その既知のビッグデータまたは記憶されたビッグデータの一部分を、他のデータエンジン１０２ｘ及び／または分析ネットワーク１１２の他のノード（例えば、ローカルまたはリモートのユーザインターフェイスノード）に対して提供し得る。
【００９８】
図３は、例示的な分散型工業プロセスパフォーマンスデータ監視及び／またはデータ分析エンジン１５０の簡略化したブロックダイアグラムを含み、このインスタンスは、図２Ａのプロセス制御データ分析通信ネットワーク１１２に含まれ得る（例えば、分散型データエンジン１０２ｘ）。図３を参照すると、例示的分散型データエンジン１５０は、ビッグデータをキャッシュ、記憶、及び／またはヒストライズするためのビッグデータ記憶領域１５５と、１つ以上のビッグデータアプライアンスのレシーバ１６０と、１つ以上のビッグデータアプライアンス要求サービサ１６５とを含む。ビッグデータアプライアンスレシーバ１６０の各々は、１つ以上のデータソース１６８からのデータを受信及び／または観察するように構成される。ある実施例においては、ビッグデータアプライアンスレシーバ１６０は、データハイウェイ１０、Ｆｉｅｌｄｂｕｓネットワーク、ＷｉｒｅｌｅｓｓＨＡＲＴネットワーク等の従来型のプロセス制御通信ネットワークへのネットワークインターフェイスを介して、従来型のプロセス制御通信ネットワークを通じて移動するデータを受信及び／または観察する。追加的または代替的に、ビッグデータアプライアンスレシーバ１６０は、ＤＤＥ１５０が組み込まれるか、その中に製造されているか、あるいはＤＤＥ１５０がローカルで、直接的に、及び／または別様に密接に連結されている、プロセス制御デバイスまたは他の種類のデバイス等のその対応するデータソース（複数可））１６８から、ローカルインターフェイスを介してデータを受信し得る。なおも追加的または代替的に、ビッグデータアプライアンスレシーバ１６０は、例えばデータ分析ネットワークインターフェイス１７５を介して、ビッグデータパケットを受信し得る。受信されるビッグデータパケットは、別のＤＤＥ１５０からストリーミングされたか、かつ／あるいはデータエンジン１５０が共に存在するビッグデータソースによって生成されている場合がある。受信／観察されるデータのソース（複数可）１６８に関係なく、ビッグデータアプライアンスレシーバ１６０は、受信／観察されるデータパケット及び／またはメッセージを処理して、実質的データ及びその中で運搬されるタイムスタンプを回収し、また、データエンジン１５０のビッグデータ記憶領域１５５に、例えば時系列データとして、ならびに任意選択でメタデータとしても、その実質的データ及びタイムスタンプを記憶する。本明細書で使用する場合、用語「メタデータ」は概して、データについての統計情報、データについてのカテゴリ情報、要約情報、記述的情報、定義等の、データについてのデータを指す。ビッグデータ記憶領域１５５は、ＲＡＩＤ（独立した複数のディスクからなる冗長配列：Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）ストレージ、固体ストレージ、クラウドストレージ、高密度データストレージ、及び／またはデータバンクもしくはデータセンタストレージにとって好適であり、他のノードに対して単一または一元的な論理データ記憶領域またはエンティティの見かけを有し、ビッグデータをローカルで記憶及び／またはヒストライズするように構成し得る、任意の他の好適なデータス���レージ技術等の、複数のローカル及び／またはリモートの物理データドライブまたはストレージエンティティを備え得る。
【００９９】
ビッグデータアプライアンス要求サービサ１６５の各々は、例えば、要求エンティティ、あるいはローカルもしくはリモートのデータ分析アプリケーション、ユーザインターフェイスアプリケーション、または別のアプリケーション等のアプリケーションの要求毎に、ビッグデータアプライアンス記憶領域１５５に記憶されている時系列データ及び／またはメタデータにアクセスするように構成される。例えば、ビッグデータアプライアンス要求サービサ１６５は、ビッグデータアプライアンス記憶領域１５５に記憶されている選択されたデータを、所与の時間間隔で、その選択されたデータのサブスクライバに対して公開し得る。別の例においては、ビッグデータアプライアンス要求サービサ１６５は、リモートで実行するデータ分析アプリケーションの要求毎に、ローカルのビッグデータアプライアンス記憶領域１５５内に記憶されているデータを回収し得る。ＤＤＥ１５０に記憶されているデータにアクセスする追加的な例については、後の節において考察する。そのようなデータは、リレーショナルデータベースもしくは非リレーショナルデータベース、または他のデータ構造を含む、様々なデータフォーマットで記憶され得る。一部の実施形態においては、標準化クエリフォーマットが、これらのデータソースのいずれかにおけるデータにアクセスするために使用され得る。
【０１００】
一部の実施形態においては、分散型データエンジン１５０は、メモリ１５５内に記憶されたビッグデータの少なくとも一部に対して、それぞれのデータ分析及び／または学習を実施するための、１つ以上のビッグデータアナライザ１７０を含む。ローカル分析及び／または学習の実行は、ユーザまたは別のノードによって生成されるコマンドまたは命令に対する応答として実施され得る。追加的または代替的に、ローカル分析及び／または学習の実行は、ユーザまたは他のノードからの、学習分析を開始及び／または実施するためのいかなる入力の使用も伴わずに、自動的及び／または自律的な様式で実施され得る。例えば、データ分析及び／または学習は、先に考察したもの等の様式で、前述の「ＤＡＴＡ  ＰＩＰＥＬＩＮＥ  ＦＯＲ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭ  ＡＮＡＬＹＴＩＣＳ」と題される米国出願第６２／０６０，４０８号に考察されるもの等の様式で、あるいは何らかの他の好適な様式で実施され得る。ある実施形態においては、ビッグデータアナライザ１７０は、新しい情報または知識を発見、検出、または学習するために、記憶されているデータに対して大規模なデータ分析（例えば、データマイニング、データ発見等）を、個別的または集合的に実施する。データマイニングは概して、大量のデータを調査して、普通ではない記録または複数のデータ記録群といった、新規または以前には知られていなかった興味深いデータまたはパターンを抽出するプロセスを伴う。ビッグデータアナライザ１７０はまた、記憶されているデータに対して大規模なデータ分析（例えば、機械学習分析、データモデリング、パターン認識、予測的分析、相関分析等）を実施して、記憶されているデータ内の潜在的な関係性または推論を予測、計算、または特定し得る。
【０１０１】
ある実施形態においては、複数のビッグデータアナライザ１７０（及び／または少なくとも１つのビッグデータアナライザ１７０の複数のインスタンス）が、分散型データエンジン１５０のビッグデータ記憶領域１５５に記憶されているデータを分析するように、かつ／あるいは他の分散型データエンジン１０２ｘの１つ以上の他のビッグデータ記憶領域に記憶されているデータを分析するように、並列に、かつ／あるいは協同的に動作してもよい。更に、複数のビッグデータアナライザ１７０は、ある種の協同的データ分析及び学習として、互いの間で、計算されたパラメータ及びモデル情報を共有、交換、または移送し得る。複数のビッグデータアナライザ１７０は、同一のビッグデータノードに共在してもよく、あるいは異なるビッグデータノードに存在してもよい。本明細書に記載される技法のうちのいずれかまたは全てと共に活用し得る、協同的データ分析の例は、前述の「ＤＡＴＡ  ＰＩＰＥＬＩＮＥ  ＦＯＲ  ＰＲＯＣＥＳＳ  ＣＯＮＴＲＯＬ  ＳＹＳＴＥＭ  ＡＮＡＬＹＴＩＣＳ」と題される米国出願第６２／０６０，４０８号において見出されるが、任意の好適な共同的データ分析技法（複数可）が、本開示のいずれかの態様または全ての態様と共に活用され得る。ビッグデータアナライザ１７０によって実施される分析の結果は、ビッグデータアプライアンス記憶領域１５５に記憶されてもよく、かつ／あるいは要求エンティティまたはアプリケーションに返されてもよい。
【０１０２】
ある実施形態においては、ビッグデータレシーバ１６０、ビッグデータアプライアンス要求サービサ１６５、及び／またはビッグデータアナライザ１７０の少なくとも一部分が、１つ以上の集積回路、半導体、チップ、または他の好適なハードウェアに含まれるか、実装される。例えば、スペクトル分析を実施するビッグデータアナライザ１７０は、前述の「ＡＵＴＯＭＡＴＩＣ  ＳＩＧＮＡＬ  ＰＲＯＣＥＳＳＩＮＧ−ＢＡＳＥＤ  ＬＥＡＲＮＩＮＧ  ＩＮ  Ａ  ＰＲＯＣＥＳＳ  ＰＬＡＮＴ」と題される米国出願第１４／５０７，２５２号に記載されるもの等、ビッグデータノードに含まれる集積回路チップによって実装され得る。ある実施形態においては、ビッグデータレシーバ１６０、ビッグデータアプライアンス要求サービサ１６５、及び／またはビッグデータアナライザ１７０の少なくとも一部分は、メモリに記憶され、かつ分散型データエンジン１５０において動作するプロセスによって実行可能である、コンピュータが実行可能な命令を含む。例えば、ビッグデータアプライアンスレシーバ１６０、ビッグデータアプライアンス要求サービサ１６５、及び／またはビッグデータアプライアンスアナライザ１７０の少なくとも一部は、１つ以上の非一時的で有形のメモリまたはデータストレージデバイスに記憶されている、それぞれの、コンピュータが実行可能な命令を含み、それぞれのビッグデータ機能のうちの１つ以上を実施するように、１つ以上のプロセッサによって実行可能である。
【０１０３】
一部の実施形態においては、少なくとも一部のビッグデータアナライザ１７０は分散型データエンジン１５０に含まれず、代わりに、同一のホストデータソースデバイスまたは構成要素において分散型データエンジン１５０と共に共在し、かつデータエンジン１５０と通信可能に接続される。例えば、記憶領域１５５、レシーバ１６０、及びサービサ１６５を含むデータエンジン１５０は、コンピュータが実行可能な命令の第１のセットによって実装され得、ビッグデータアナライザ１７０は、半導体チップまたはコンピュータが実行可能な命令の第２のセットによって実装され得、これは、コンピュータが実行可能な命令の第１のセットと同一の非一時的で有形のメモリまたはデータストレージデバイスに、記憶されても、あるいは記憶されなくてもよい。一部の実施形態においては、ビッグデータアナライザ１７０はデータエンジン１５０に含まれず、同一のホストデータソースデバイスまたは構成要素においてデータエンジン１５０と共在しないが、それでもなお、データエンジン１５０と通信可能に接続される。例えば、ビッグデータアナライザ１７０は、ＤＤＥ１５０ではない、データ分析ネットワーク１１２の別のノード、例えばユーザインターフェイスノードまたは分析サーバに配置され得る。
【０１０４】
図３に示される分散型データエンジン１５０は更に、データエンジン１５０による、データ分析ネットワーク１１２を通じたペイロードビッグデータの送信及び受信、ならびにデータ分析ネットワーク１１２の他のデータエンジン及びノードとの通信（例えば、信号通信及び他の種類の通信）を可能にするように構成される１つ以上のネットワークインターフェイス１７５を含む。例えば、データエンジン１５０は、ネットワークインターフェイス１７５を用いることで、別のノードによって公開されている１種類のデータをサブスクライブし得、公開するノードによって生成される種類のデータ、及びデータエンジン１５０がサブスクライブされる種類のデータは、ネットワークインターフェイス１７５を介して受信され得る。
【０１０５】
先に考察したように、分散型データエンジン１０２ｘによって、プロセス関連データ、プラント関連データ、及び他の種類のデータ等の様々な種類のリアルタイムデータが、生成、収集、観察、回収、受信、記憶、キャッシュ、処理、分析、及び／またはストリーミングされ得る。プロセス関連データの例としては、プロセスがプロセスプラント５において制御されている間に生成される（ならびに、一部の場合においては、プロセスのリアルタイム実行の効果を示す）、連続、バッチ、測定、及び事象データが挙げられる。更に、プロセス関連データとしては、プロセス定義、構成データ及び／またはバッチレシピデータ等の配列データまたはセットアップデータ、構成に対応するデータ、プロセス診断の実行及び結果等が挙げられ得る。
【０１０６】
プロセスプラント５に関連するが、プロセスプラント５のプロセスを直接構成、制御、または診断するアプリケーションによっては生成され得ないデータ等のプラント関連データは、分散型データエンジン１０２ｘによって、ビッグデータとして生成、収集、観察、回収、受信、記憶、キャッシュ、処理、分析、及び／またはストリーミングされ得る。プラント関連データの例としては、振動データ、蒸気トラップデータ、プラントの安全性に対応するパラメータの値を示すデータ（例えば、腐食データ、ガス検出データ等）、プラントの安全性に対応する事象を示すデータ、機械の正常性に対応するデータ、プラント設備及び／またはデバイス等のプラントの資産に対応するデータ、構成に対応するデータ、設備、機械、及び／またはデバイス診断の実行及び結果、ならびに診断及び予後にとって有用であるデータが挙げられる。
【０１０７】
更に、プロセス制御ビックデータネットワークバックボーンに関連する、ならびにプロセスプラント５の様々な通信ネットワークの、データハイウェイのトラフィックデータ及びネットワーク管理データ、ユーザトラフィック、ログイン試行、クエリ、及び命令等のユーザ関連データ、テキストデータ（例えば、ログ、運転手順、マニュアル等）、空間データ（例えば、位置情報データ）、ならびにマルチメディアデータ（例えば、有線ＴＶ、ビデオクリップ等）を含む、他の種類のデータは、データエンジン１０２ｘによって、ビッグデータとして生成、収集、観察、回収、受信、記憶、キャッシュ、処理、分析、及び／またはストリーミングされ得る。
【０１０８】
一部の実施形態においては、動的測定及び制御データが、分散型データエンジン１０２ｘによって、ビッグデータとして自動的に生成、収集、観察、回収、受信、記憶、キャッシュ、処理、分析、及び／またはストリーミングされ得る。動的測定及び制御データの例としては、プロセス動作における変化を特定するデータ、設定点等の運転パラメータにおける変化を特定するデータ、プロセス及びハードウェアアラームの記録、ダウンロードまたは通信障害等の事象が挙げられる。加えて、コントローラ構成、バッチレシピ、アラーム、及び事象等の静的データは、変化が検出されるとき、またはコントローラもしくは他のエンティティがデータ分析通信ネットワーク１１２に初めて追加されるときに、デフォルトで自動的に収集され得る。
【０１０９】
また、一部のシナリオにおいては、動的制御及び測定データについて説明または特定する少なくとも一部の静的メタデータが、メタデータにおける変化が検出されるとき、分散型データエンジン１０２ｘにおいて取り込まれる。例えば、コントローラ構成において、モジュールまたはユニットの測定及び制御データに影響を与え、コントローラによって送信されねばならない変更がなされる場合、関連付けられるメタデータのアップデートが、データエンジン１０２ｘによって自動的に取り込まれる。追加的または代替的に、外部システムまたはソース（例えば、気象予報、公的事象、企業の決定等）からデータをバッファリングするために使用される特別なモジュールと関連付けられるパラメータ、調査データ、及び／または他の種類の監視データが、データエンジン１０２ｘによって自動的に取り込まれ得る。
【０１１０】
一部の状況においては、エンドユーザによって作成された追加のパラメータが、分散型データエンジン１０２ｘに自動的に取り込まれる。例えば、エンドユーザは、モジュールに特別な演算を作成してもよく、または収集されるべきパラメータをユニットに追加してもよく、あるいはエンドユーザは、デフォルトでは通信されない標準的コントローラ診断パラメータの収集を欲し得る。エンドユーザが任意選択で構成するパラメータは、デフォルトのパラメータと同じ様式で通信され得る。
【０１１１】
工業パフォーマンス監視／分析用のユーザインターフェイスアプリケーション
先述したように、データ分析システム、すなわちＤＡＳ１００は、１つ以上のユーザインターフェイスアプリケーションを含み得、これを介して、データに関連する人間−機械の相互作用が行われる。これらのユーザアプリケーションの例示的インスタンスの存在が、参照１２０ａ〜１２０ｄによって図２Ａに描写されている。本開示の本節及び図４Ａ〜４Ｑは、工業パフォーマンス監視／分析用のユーザインターフェイスアプリケーションについてより詳細に説明する。このユーザインターフェイスアプリケーションは、例えば、図１のプロセスプラントもしくはシステム５、図２Ａの工業パフォーマンス監視／分析システム１００、ならびに／または図３の監視及び分析エンジン１５０によって提供されるか、それらと共に運転し得る。しかしながら、本明細書に記載される工業パフォーマンス監視／分析用ユーザインターフェイスアプリケーションは、プロセス制御システム用の他の工業パフォーマンス監視及び分析システムによって提供されるか、あるいはそれらと共に運転してもよい。しかし、考察の容易さのために、工業パフォーマンス監視／分析ユーザインターフェイスアプリケーションは、図１、２、及び３を同時に参照しながら下において考察される。加えて、読解の容易さのために、Ｉｎｄｕｓｔｒｉａｌ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｍｏｎｉｔｏｒｉｎｇ／Ａｎａｌｙｔｉｃｓ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、本明細書においては、一般的な目的及び／または他のユーザインターフェイスアプリケーションと区別するために大文字を用いて呼称され、また、本明細書においては、交換可能に、「Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｕｓｅｒ  Ａｐｐｌｉｃａｔｉｏｎ」、「Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ」、「Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ａｐｐｌｉｃａｔｉｏｎ」、「ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ」、または「Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ」とも呼ばれる。
【０１１２】
ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、ユーザが分散型工業プロセスパフォーマンス監視／分析システムすなわちＤＡＳ１００と相互作用して、構造を定義し、データを照会し、ドラフトデータモデルを構築及び評価するためのインターフェイスを提供する。ドラフトデータモデルが完成したら、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、データモデルのランタイムエンジンへのダウンロード、及びオンラインプロセス制御システムと共に運転するようなデータモデルの展開を可能にする。展開されたデータモデル（実行中またはオンラインデータモジュールとも呼ばれる）は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎのランタイムダッシュボードを介してアクセス及び監視され得る。ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎはまた、実行中データモデルに対応するアラーム及び通知を生成することもできる。
【０１１３】
具体的には、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、ユーザがデータモデルを作成、閲覧、及び修正することを可能にし、これらのデータモデルの各々が１つ以上の、入力データセットに対して実行または実施されるデータ分析（例えば、記述的、予測的、及び／または規定的分析）を定義する。データモデルは、オフラインモードで（例えば、データモデルが、オンラインまたは実行プロセス制御システムのライブデータソースから接続を切られている間に）ドラフトまたは作成され、このモードでは、データモデルは、本明細書においては「オフラインデータモジュール」と呼ばれる。概して、オフラインデータモジュールは、オフラインデータダイアグラムによって定義され、このオフラインデータダイアグラムは、ユーザが、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎを介して、「ブロック」または「データブロック」のセットを選択し、ダイアグラム上でそれらのブロックを「ワイヤ」のセットを用いて所望の様式で相互接続することによって作成する。各データブロックは入力部を含み、ここを介して、データがブロック内に受信される。各データブロックはまた、特定の機能、アクション、アルゴリズム、及び／またはオペレーションを表すかあるいは定義し、これらは各データブロックによって、その入力データに基づいて実施され、それによって１つ以上の出力部を介して他のブロックに提供することができる出力データを生成する。各データブロックは、ブロック及びその相互接続ワイヤのオフラインダイアグラム表現を実行可能なコードにコンパイルし、実行するように、別個に評価することができ、各データブロックの実行の結果は、オフラインデータダイアグラムに呈示される。後の節において考察されるように、データブロックのコードへのコンパイル、及び後続のその実行は、異なるターゲット環境及び場所にまたがって、分配的に実施され得る。
【０１１４】
同様に、オフラインデータダイアグラムは、全体としても評価することができる。オフラインデータダイアグラムの評価は、データブロック及びワイヤをコンパイルすること、このコンパイルされたコードを実行して、入力データ及び出力データをワイヤにまたがって移送し、オフラインデータダイアグラムのブロック及びワイヤの特定の構成によって定義される機能、アクション、アルゴリズム、及び／またはオペレーションを実施することを含む。また、個別のデータブロックと同様に、オフラインデータダイアグラムのコンパイル、及びこのコンパイルされたオフラインデータダイアグラムの実行も、異なるターゲット環境及び場所にまたがって、分配的に実施され得る。
【０１１５】
更に、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、ユーザがオフラインデータモジュールを「オンラインデータモジュール」へと転換することを可能にする。この転換は、データモデルのオンラインデータモジュールが、オンラインプロセス制御システムのライブデータソースにバインドするか、あるいはそれによって生成されているライブ（例えば、ストリーミング）データを別様に受信し、そこで定義されている１つ以上のデータ分析をライブデータに対して実施し、ユーザインターフェイス、ヒストリアン、または他のアプリケーションに出力を提供するようなものである。例えば、データモデルによって生成される出力データは、プロセスプラント及び／またはその中で制御されているプロセスに対応する、記述的、予測的、及び／または規定的情報またはデータを含み得る。
【０１１６】
具体的には、ユーザは、特定のデータモデルのオンラインデータダイアグラムを、その特定のデータモデルのオンラインデータダイアグラムへと転換することができる。オフラインデータダイアグラムと同様に、オンラインデータダイアグラムは、ワイヤのセットで相互接続されたデータブロックのセットを含んでおり、また、オフラインデータダイアグラム及びオンラインデータダイアグラムは概して、同一のデータモデルに対応しているため、オンラインデータダイアグラムによって定義される機能、アクション、アルゴリズム、及び／またはオペレーションは、オフラインデータダイアグラムのものに対応する。しかしながら、オフラインデータダイアグラムとオンラインデータダイアグラムとの間では、主として、オンラインデータモジュールのオンラインプロセスプラントへの接続を適合させるため（しかし、必ずしもそのためだけではない）、ブロック及び相互接続のうちの少なくとも一部が異なる。
【０１１７】
これもまたオフラインデータダイアグラムと同様に、オンラインデータダイアグラムは、データモデルのオンラインデータモジュールに対応する実行可能なコードへと、全体としてコンパイルすることができる。オンラインデータダイアグラムの特定のブロックのコンパイルは、特定のブロックの、オンラインプロセスプラント内のそれぞれのデータソース及びデータコンシューマとのバインディングの定義をもたらす。オンラインデータモジュールの展開は、これらのバインディングをインスタンス化し、実行可能なもののランまたは実行を引き起こし、それによって、オンラインデータモジュールが、オンラインプロセスプラントのオペレーションと併せて実行されるように、オンラインデータモジュールをオンラインプロセスプラントと統合する。オンラインデータダイアグラムのコンパイル、ならびに結果として得られたオンラインデータモジュールのバインディング及び実行は、異なるターゲット環境及び場所にまたがって、分配的に実施され得る。
【０１１８】
特に有用な実施形態においては、データモデルのオンラインデータモジュールは、プラントで実行中のオンラインプロセスの進行中の制御の結果としてプロセスプラントのデバイスまたは構成要素によって生成される、連続リアルタイムデータを受信し、少なくとも部分的にはそれに基づいて動作する。例えば、オンラインデータモジュールは、プロセスプラント及びプロセス制御システムがプロセスを制御するように動作している間、オンラインプロセスプラント及び／またはプラントに含まれるプロセス制御システムによって生成される連続リアルタイム時系列データに基づいて動作する。データモデルは、連続リアルタイムデータストリームに基づいて継続的に動作し（例えば、データモデルによって定義された、その１つ以上のデータ分析機能及び（存在する場合は）他の機能を実施することによって）、結果または出力データのリアルタイムストリームを継続的に生成し、このリアルタイムストリームは、ユーザインターフェイスに表示され得（例えば、ローリング折れ線グラフまたは他の描写として）、データモデルの出力の現在のリアルタイム値を継続的に反映し得る。ある例においては、データモデルによって生成され、ユーザインターフェイスに表示されるデータ出力は、少なくとも１つの予測値及びその経時的な変動を含む。しかし、概して、データモデルは、プロセス制御プラントまたは環境５に関する故障検出、予測、及び規定という目的のために、プロセス制御プラントまたは環境５内の様々なデータソースによって生成された大量のデータに基づいて動作することが可能である。
【０１１９】
ある実施形態においては、異なるインスタンスのＡｐｐｌｉｃａｔｉｏｎを、様々なプラットフォーム（例えば、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ等）で使用できるように、また時には同時に、様々なコンピューティングデバイスにおいて様々なユーザが使用できるように、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎはウェブベースであり、ウェブブラウザを通じてアクセスされる。しかしながら、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、ウェブベースの実装形態に限定されるものではなく、プラットフォームからは独立し、複数のユーザ及び／またはインスタンスまで同時に拡張され得る、任意の他の好適な実装形態を活用してもよい。
【０１２０】
更に、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは本明細書において、同時に実行されるＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎの複数のインスタンスを伴って、単一のプロセス制御プラントまたは環境５に適用されるものとして記載されているが、この構成は例証であるに過ぎず、限定的であることを意図しない。例えば、一部の構成においては、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは異なる場所で、異なるプロセスにおいて独立して運転する、複数のプロセス制御プラントまたは環境に対して適用され得る。例えば、サーバまたはコンピュータのバンクによって提供される単一のＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎが、そのＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎの一部のインスタンスは製油所Ａで実行され、一部のインスタンスが製油所Ｂで実行されるように、ある石油会社の複数の製油所で活用され得る。
【０１２１】
ともあれ、先に考察したように、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、データブロックによってそれぞれの入力データに対して実施され得る機能、アクション、アルゴリズム、及び／またはオペレーションを、ブロックまたはデータブロックとして抽象化する。ブロックまたはデータブロックの例は、例えば、ロード、クリーン、操作、分析、視覚化等、それらそれぞれの機能によって指定される。各データブロックは、それぞれの入力データをロードまたは獲得し、その１つ以上のそれぞれの機能、アクション、アルゴリズム、及び／またはオペレーションを、獲得した入力データに対して実施し、１つ以上のそれぞれの結果またはそれぞれの出力データを生成し得る。複数のデータブロックが所望に応じて相互接続されて（例えば、直列、並列、多対一、一対多等）、ドラフトデータモデルまたはオフラインデータモジュールを表すか、あるいはそれを定義するオフラインデータダイアグラムを形成し得、このドラフトデータモデル／オフラインデータモジュールは、オフラインデータモジュール（またはその一部）を、１つ以上のデータセットのセットまたはオフラインデータソースに適用するか、あるいはそれに基づいて動作させることによって、実行または評価できる。例えば、オフラインデータモジュールの実行または評価中、オフラインデータダイアグラムは実行可能なコードへとコンパイルされ、特定されたデータセット（複数可）がオフラインモジュールに、あるいはその使用のために獲得及びロードされ、コンパイルされたオフラインモジュールの相互接続されたブロックが実行されて、それらそれぞれのオペレーションをそれらそれぞれの入力に対して実施し、それぞれの結果をそれらそれぞれの出力で提供し、その結果、開発または作成されているデータモデルに対応する全体的なオフラインデータモジュールによって生成される、１つ以上の分析出力または結果につながる。ある実施形態においては、オフライン評価中、ファイルからデータセットをドラフトデータモデルへとロードするよりも、入力データを、試験ツール、環境、またはプラント等のストリーミングオフラインデータソースから受信し得る。更に、下でより詳細に説明されるように、オフラインデータモジュールまたはドラフトデータモデルは、それが開発されている間に、漸次評価してもよい。ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎにおいては、オフラインデータブロック及びオフラインデータモジュールを評価するためのプラットフォームまたはインフラストラクチャはＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓであり、これについては後の節において記載する。
【０１２２】
オフラインデータモジュール（またはその一部）が評価された後、ユーザは、評価の結果をレビュー及び精査することができ、ドラフトモデル（またはその一部）は、適宜修正され、満足な結果が得られるまで再評価され得る。ユーザは、ドラフトデータモデル／オフラインデータモジュールを完成させ、それをオンラインデータモジュールへと転換し、そのオンラインデータモジュールを実行または展開して、プロセス制御環境またはプラント５のリアルタイムオペレーションに起因して生成されている、リアルタイム、オンライン、またはストリーミングされるライブデータに基づいて動作させ得る。例えば、実行中または展開済のオンラインデータモジュールまたはデータモデルは、プロセスプラントのオンラインオペレーションに起因して連続的に生成されているリアルタイムデータに基づいて連続的に動作し得、オンラインデータモジュールまたはモデルは、それ自体で、リアルタイム出力データまたはその実行の結果を連続的に生成し得、このリアルタイム出力データまたは実行の結果は、ユーザインターフェイスに表示され、連続的にアップデートされ得る。展開されたオンラインデータモジュール及び対応する結果のオンライン実行またはオペレーションは、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ＡｐｐｌｉｃａｔｉｏｎのＤａｓｈｂｏａｒｄにおいて監視され得る。これもまた、後の節においてより詳細に記載される。
【０１２３】
先に考察したように、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ内において、データブロック、データモジュール（オンラインかオフラインかに関わらず）、及びそれらの一部は、ワークスペースまたはＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって提供されるキャンバス上に、ダイアグラムまたはデータダイアグラムとして、ユーザに対して視覚的及び／またはグラフィカルに表され得る。概して、各データダイアグラムは、ワイヤ（例えば、線で表され得る）のセットによって相互接続されるデータブロック（例えば、二次元形状で表され得る）のセットを含む。ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、典型的には、オペレーションの２つのモードを含み（しかし、一部の実施形態においては、より多いかより少ない数のモードが含まれ得る）、これらの両方が、データモジュールと、データモジュールに含まれるデータブロックとを表すためにデータダイアグラムを活用する。
【０１２４】
オペレーションのモードのうちの１つは、本明細書においては交換可能に、「Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ」、「Ｄａｔａ  Ｓｔｕｄｉｏ」、または「Ｓｔｕｄｉｏ」と呼ばれる。典型的には、Ｄａｔａ  Ｓｔｕｄｉｏは、データ分析モデルを設計及び開発するためにユーザによって活用される。加えて、Ｄａｔａ  Ｓｔｕｄｉｏは、ユーザがオフラインモジュールをオンラインモジュールへと転換すること、ならびに完成したオフラインモジュールを対応するオンラインデータモジュールとして展開することを可能にする。Ｄａｔａ  Ｓｔｕｄｉｏは作業領域または描画キャンバスを提供し、その上で、ユーザは、データモデルまたはその一部の視覚的グラフィカル表現であるデータダイアグラムへとブロックを作成及び接続することによって、データモデルを開発することができる。データモデルがＤａｔａ  Ｓｔｕｄｉｏ内で開発されている間は、このデータモデルはドラフトデータモデルまたはオフラインデータモジュールと呼ばれる場合があり、ドラフトまたはプロトタイプと考えられ得る。オフラインデータモジュールダイアグラムは、その結果として得られるオンラインデータモジュールよりも多い数のデータブロック及び／または接続を含み得、これは、オフラインモジュールに含まれるブロック及び接続の一部は、モジュールの異なる部分においてデータを分析及び閲覧するために、例えば、データモデルの特定の部分が所望される通りに評価しているかどうか、及び／または十分に有用かつ／もしくは予測的なデータを提供しているかどうかを分析及び確認する目的で使用され得るためである。概して、データモデルのオフラインダイアグラムは、（１）生データセットを探査及びクリーンにし、かつ（２）分類、回帰、クラスタリング、次元縮小等の所望の分析オペレーションのために構築、調整、及び評価され得る、ワークフローの表現である。オフラインであるデータモジュールは、それらが開発されている間に、漸次または継続的に評価してもよい。オフラインデータモジュールまたはデータモデルの評価プロセスの結果は、Ｄａｔａ  Ｓｔｕｄｉｏを介してユーザに通信される。
【０１２５】
一部の場合においては、オフラインデータモジュールの実行または評価は、完了するのに長い期間がかかり得る。これらの状況においては、オフラインデータモジュールの評価プロセスのステータス及び進行は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎのオペレーションの別のモードを介してユーザに通信され得、この別のモードは、本明細書においては交換可能に、「Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄ」、「Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄ」、または単に「Ｄａｓｈｂｏａｒｄ」と呼ばれる。Ｄａｓｈｂｏａｒｄは、典型的には、（ｉ）評価されているオフラインデータモジュール（例えば、ドラフトデータモデル）、及び／または（ｉｉ）オンラインデータモジュール（例えば、データモジュールとして展開されている完成したデータモデル）であるモジュールを閲覧及び／または管理するために、ユーザによって活用される。Ｄａｓｈｂｏａｒｄはまた、それぞれのダイアグラムまたは視覚的グラフィカル表現を用いて、評価中のドラフトデータモデル及び展開されたオンラインデータモジュールを表す。展開されたデータモジュールは「オンライン」であると呼ばれる。これは、展開されたモジュールが、プロセス制御システムまたはプラント５のオンラインまたはランタイムオペレーションに起因して生成されているリアルタイムデータに基づいて実行されているためである。概して、データモジュールのオンラインダイアグラムは、プロセス制御システムまたはプラント５内の１つ以上のデータソース（例えば、ストリーミングデータソース）にバインドされて、リアルタイム記述、予測、及び／または規定を作成し、かつ／あるいはランタイム中またはランタイムにおいて連続的にデータモデルを調整するワークフローの表現である。展開されているかオンラインであるデータモジュールは、それらがＤａｓｈｂｏａｒｄから明確に終結されるまで、継続的に実行され得る。
【０１２６】
Ａ．データモジュールダイアグラム
データモジュールの例示的ダイアグラム（オフラインかオンラインかに関わらず）は、概して、複数のデータブロックと、様々なブロックを一緒に相互接続して１つ以上のデータフローパイプラインを形成するワイヤとを含む。先述したように、データブロックは概して、ユーザがデータセットに対して適用したいと欲する機能またはオペレーションの抽象化である。例えば、ある特定のブロックは、データ記憶またはディスク上のファイルからデータセットをロードしてもよく、別の特定のブロックは、データセット内の全ての欠測値（例えば、別のパラメータ／変数が測定値を有する時間に対応する時間において、測定値を有さない値）を取り除いてもよく、更に別の特定のデータブロックは、ランダムフォレスト分析を実施してもよい。典型的には、異なるデータブロックは、データセットに対して実施され得る異なる機能またはオペレーションに対応し、したがって、様々なデータブロックはそれぞれ、対応する種類または名称、例えば「Ｌｏａｄ」、「Ｑｕｅｒｙ」、「Ｆｉｌｌ」、「Ｃｏｌｕｍｎｓ」、「ＰＣＡ（Ｐｒｉｎｃｉｐａｌ  Ｃｏｍｐｏｎｅｎｔ  Ａｎａｌｙｓｉｓ（主構成要素分析））」、「ＰＬＳ（Ｐａｒｔｉａｌ  Ｌｅａｓｔ  Ｓｑｕａｒｅｓ（部分最小二乗法））」、「Ｅｘｐｌｏｒｅ」、「Ｗｒｉｔｅ」等を有し得る。
【０１２７】
各ブロックは、ゼロ以上のそれぞれのプロパティを有し得る。ブロックのプロパティのセット（一部のブロックの場合は、空のセットであり得る）は、同一のブロックの種類の全てのインスタンスが同一のプロパティのセットを有するように、それぞれ、そのブロックの種類に対応する。一部のブロックについては、プロパティのデフォルト値は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって提供され得、一部のブロックについては、ユーザが、プロパティ値のうちの１つ以上を入力及び／または修正することができる。データブロック定義は、あるデータブロックの種類の、それぞれのプロパティ及び任意のデフォルトプロパティ値を定義する（一部のブロックについては、他の情報も）。データブロック定義は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって提供されるデータブロック定義ライブラリに記憶される。概して、データブロック定義ライブラリは、複数のデータ分析ユーザまたは技術者が、ライブラリによって提供されるリソースを用いて、データを同時に開発及び／または探査できるように、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎの全てのオープンインスタンスに対して利用可能である。
【０１２８】
各ブロックは、１つ以上の他のブロックまたはデータソースからブロック内に流入するデータ（存在する場合）を特定する、０、１、または複数の入力コネクタを有する。加えて、各ブロックは、ブロックから流出する（ならびに、潜在的には、１つ以上の受信側ブロックに、それらそれぞれの入力コネクタを介して流入する）データ（存在する場合）を特定する、０、１、または複数の出力コネクタを有する。様々なブロックの入力と出力との間の相互接続は、データモジュールダイアグラムにおいてはワイヤで表される。単純な計数装置の値から、それぞれが目的コードに対して数百万の値を含むデータフレームに至るまで、任意の種類のデータが、任意のワイヤを通じて流れるか、あるいは移送され得る。
【０１２９】
加えて、各ブロックは状態を有する。例えば、ブロックが初めて作成されるとき、そのブロックは、「構成」または「構成中」または「未構成」状態である。ブロックが構成された後、このブロックは「構成済」状態へと移る。オフラインブロックが評価されている間、そのオフラインブロックは「評価」状態である。オフラインブロックが評価された後、このブロックは、評価「成功」状態または評価「失敗」状態のいずれかへと移る。オンラインブロックが構成されている場合、またはデータソース及び／もしくはデータコンシューマにバインドされている場合、その状態は、「構成中」または「バインド中」である。オンラインブロックがプロセス制御システムに展開され、ライブデータに基づいて運転を始めた後、その状態は、「展開済」または「実行中」である。無論、他の状態もまたあり得る。典型的には、各ブロックは、その現在の状態を示す視覚的インジケータを含む。加えて、各データモジュールは、全体として、その現在の状態を示すインジケータを有し得る。
【０１３０】
可能性のある、様々なデータブロックの特色及び相互接続を例証する、例示的データダイアグラム２００が図４Ａに示される。この例示的データダイアグラム２００は、ワイヤ２０５を介してＦｉｌｌＮａＮブロック２０２ｂに接続される、ＬｏａｄＤａｔａブロック２０２ａを含む。ＬｏａｄＤａｔａブロック２０２ａの表現は、その現在のブロック状態の指標２０８ａと、そのブロックの種類または名称の指標２１０ａと、ブロックの評価の結果の指標２１２ａと、出力コネクタ２１５ａとを含み、この出力コネクタを経由して、ＬｏａｄＤａｔａブロックの評価の結果として生成されるデータの少なくとも一部が、ワイヤ２０５を介して受信側（このシナリオにおいては、ＦｉｌｌＮａＮブロック２０２ｂ）に送達される。
【０１３１】
ＦｉｌｌＮａＮブロック２０２ｂは、ＬｏａｄＤａｔａブロック２０２ａからワイヤ２０５を通じて流れてくるデータを受信する、入力コネクタ２１８ｂを含む。ＬｏａｄＤａｔａブロック２０２ａと同様に、ＦｉｌｌＮａＮブロック２０２ｂは、その現在のブロック状態の指標２０８ｂと、そのブロックの種類または名称の指標２１０ｂと、その評価の結果の指標２１２ｂと、出力コネクタ２１５ｂとを含み、この出力コネクタを経由して、ＦｉｌｌＮａＮブロックの評価の結果として生成されるデータの少なくとも一部が、ワイヤ２２０を介して受信側またはコンシューマ（図示せず）に送達される。
【０１３２】
図４Ａにおいては、ＬｏａｄＤａｔａブロック２０２ａは入力コネクタを有さないが、これは、ＬｏａｄＤａｔａブロック２０２ａが、データダイアグラム２００の任意の他のデータブロックから出力されるデータを受信しないためであることに留意されたい。代わりに、ＬｏａｄＤａｔａブロック２０２ａは、１つ以上のデータソースからの１つ以上の入力データセットをロードまたは獲得するように構成され得る。これらのデータソースは、データファイル、データソース（例えば、Ｓｅｅｑシステム）、リレーショナルデータベース、または非リレーショナルデータベース等のオフラインデータソースを含んでもよく、ならびに／あるいはデータソースは、分散型データエンジン２０２ｘによって生成されるデータストリーム等のオンラインまたはストリーミングデータソースを含んでもよい。
【０１３３】
Ｂ．Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ
先述したように、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎのオペレーションのモードのうちの１つがＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏである。Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏは、データモデルを設計、開発、閲覧、及び探査するために、ユーザによって活用され得る。図４Ｂは、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ２４０によって呈示される例示的ユーザインターフェイスを描写し、これは、ナビゲーションバー２４２と、ワークスペースまたは描画キャンバス２４５とを含む。ナビゲーションバー２４２は、制御部及びインジケータを提供し、これらの制御部及びインジケータを介して、ユーザは、オフライン及びオンラインデータモジュールを管理することができる。これは、例えば、新しいオフラインデータモジュールの作成、現在開放されており、キャンバス２４５に示されているオフラインまたはオンラインデータモジュールの特定、現在開放されており、キャンバス２４５に示されているデータモジュールのステータス（例えば、オフラインまたはオンライン）の容易な閲覧、現在開放されており、キャンバス２４５に示されているオフラインデータモジュールの保存／記憶、オフラインモジュールのオンラインデータモジュールへの転換、データモジュールのオフラインデータダイアグラムとオンラインデータダイアグラムとの間での閲覧の切り替え、オフラインデータモジュールの評価、オンラインデータモジュールの展開、他のデータモジュールへのブラウズ、及び他のそのようなモジュール管理機能等のアクションの、ユーザによる実施が可能になったことによるものである。したがって、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ２４０は、多数のユーザ制御部及びインジケータ２４８ａ〜２４８ｎをその上に含み、限定されるものではないが：
・ユーザによる他のデータモジュールの検索及びブラウズを可能にする、モジュールナビゲーション制御部２４８ａ；
・キャンバス２４５で現在開放されているデータモジュールの識別子２４８ｂ；
・キャンバス２４５で現在開放されているデータモジュールのビューがオフラインビューであるかオンラインビューであるかを示す、１つ以上のインジケータ２４８ｃ、２４８ｄ；
・ユーザが、キャンバス２４５で現在開放されているデータモジュールのオンラインビューとオフラインビューとを切り替えることができる、１つ以上の制御部２４８ｅ、２４８ｆ；
・ユーザが、キャンバス２４５で現在開放されているデータモジュールのプロパティを閲覧及び／もしくは定義することができる、ユーザ制御部２４８ｇ；
・ユーザが、現在開放されているデータモジュールを保存することができる、ユーザ制御部２４８ｈ；
・ユーザが、現在開放されているデータモジュールの少なくとも一部分を評価することができる、ユーザ制御部２４８ｉ
・ユーザが、現在開放されているデータモジュールを展開することができる、ユーザ制御部２４８ｊ
・現在開放されているモジュールのオペレーションのステータスを示す、インジケータ２４８ｋ；ならびに／または
・１つ以上の他のユーザ制御部及び／もしくはインジケータ（図示せず）等が挙げられる。
【０１３４】
図４Ｂはまた、ユーザ制御部２４８ｍを例証しており、これを介して、ユーザは、データブロック定義ライブラリ（図４Ｂには図示せず）からブロック定義を閲覧、選択でき、かつ／あるいはデータブロック定義ライブラリに追加できる。図４Ｂに示される実施懈怠においては、ライブラリユーザ制御部２４８ｍは、キャンバス２４５上に配置されるように示されているが、他の実施形態においては、該制御部２４８ｍは、ナビゲーションバー２４２上または任意の所望の場所に位置付けることができる。
【０１３５】
実際、例示的Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ２４０に示されるユーザ制御部及びインジケータの数、種類、場所／位置付け、形態因子、配置等は、多くの可能な実施形態のうちの１つであるに過ぎない。より多くの、またはより少ない数及び／または種類のユーザ制御部及び／またはインジケータが含まれてもよい。そのようなユーザ制御部及び／またはインジケータの異なる場所／位置付け、ならびに異なる形態因子、配置等が活用されてもよい。一部の実施形態においては、ナビゲーションバー２４２は省略されてもよく、ユーザが制御部にアクセスするための別のメカニズムが提供され得る（例えば、ポップアップウィンドウ、ドロップダウンメニュー等）。
【０１３６】
１．Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ−オフラインデータモジュール
Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ２４０においては、描画キャンバスまたはワークスペース２４５は、オフラインデータモジュールを開発、定義、及び評価することができる領域である。例えば、描画キャンバスまたはワークスペース２４５において、ユーザは、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎのブロック定義ライブラリに（例えば、ユーザ制御部２４８ｍを介して）アクセスして、その中に記憶されている様々なデータブロック定義を選択し、選択したブロック定義を相互接続（例えば、ワイヤでつなげる）して、データモデルのデータダイアグラムを形成することができる。加えて、描画キャンバスまたはワークスペース２４５において、ユーザは、特定のデータブロックインスタンスのプロパティの編集；評価の進行及びその結果を閲覧することを含む、一部分のドラフトデータモデルの評価；ならびに／またはオフラインデータモジュールに関する他のアクションの実施を行うことができる。
【０１３７】
先に考察したように、データダイアグラムにおいて活用され得る各データブロックは、データブロックの種類のブロック定義に基づく。すなわち、所与の種類のブロックの特定のインスタンスは、その所与の種類のブロック定義に従うプロパティのセットを有するが、その特定のインスタンスは、例えば、オブジェクトクラスとオブジェクトクラスのインスタンスとに類似する様式で、同一の所与の種類のブロックの他のインスタンスとは異なる場合がある。これもまた先に考察したように、ブロック定義は、ブロック定義ライブラリに記憶されており、このブロック定義ライブラリは、キャンバス２４５上に置かれ得るユーザ制御部２４８ｍを介してアクセスされる（例えば、表示または非表示で切り替えられる）。
【０１３８】
データブロック定義ライブラリ、データブロック定義、データモジュール、データブロック、データブロックインスタンス、及びワイヤ間の例示的関係性２５０の例証が図４Ｃに示される。図４Ｃに示されるように、ブロック定義は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって提供されるブロック定義ライブラリ２５２を通じて利用可能となる。一部の実施形態においては、異なるユーザ及び／またはユーザのグループに対して、特定のブロック定義ならびに／または他のデータ分析ライブラリリソース（及び／もしくはその一部）への異なるアクセス権（例えば、読み取り専用、読み書き等）が与えられ得る。
【０１３９】
ライブラリ２５２に記憶されているブロック定義２５５は、データモジュール２６０内で使用されるブロック２５５のインスタンス２５８を作成するために活用され得る。ブロック定義２５５の１つ以上のプロパティ２６２が、ブロックインスタンス２５８について具体的に定義され得る。ブロックインスタンス２５８は、ブロックインスタンス２５８へのデータが受信される、１つ以上の入力コネクタ２６５を含むように構成または設計され得、また、ブロックインスタンス２５８は、１つ以上の出力コネクタ２７０を含むように構成または設計され得、この出力コネクタを介して、出力データ（例えば、入力コネクタ２６５を介して受信した入力データに基づいて動作するブロックインスタンス２５８の評価から結果として生じるデータ）が、例えば、別のブロックインスタンス２５８（書き込むかまたは記憶するため）、ユーザインターフェイス等に提供される。ブロックインスタンス２５８の各入力コネクタ２６５は、データモジュール２６０の１本以上のワイヤ２７２を通じてデータを受信し得、ブロックインスタンス２５８の各出力コネクタ２７０は、データモジュール２６０の１本以上のワイヤ２７２を通じてデータを提供し得る。データモジュール２６０の各ワイヤ２７２は、特定のブロックインスタンス２５８の特定の出力コネクタ２７０と、別の特定のブロックインスタンス２５８の特定の入力コネクタ２６５との間で相互接続を提供し、それによって、２つのデータブロックインスタンスの間におけるデータの移送を可能にする。
【０１４０】
ある実施形態においては、ブロック定義は、機能またはアクションのカテゴリによって、ライブラリ２５２内で整理される。カテゴリは、サブカテゴリを含んでもよく、サブカテゴリは、サブサブカテゴリを含んでもよく、以降も同様である。例証的であるが非限定的である例においては、ブロック定義ライブラリ２５２は、少なくともブロック定義の５つのカテゴリ：Ｄａｔａ  Ｓｏｕｒｃｅｓ、Ｆｉｌｔｅｒｓ、Ｔｒａｎｓｆｏｒｍｅｒｓ、Ｖｉｓｕａｌｉｚａｔｉｏｎｓ、及びＤａｔａ  Ｃｏｎｓｕｍｅｒｓを含む。
【０１４１】
Ｄａｔａ  Ｓｏｕｒｃｅｓカテゴリに含まれるブロック定義は、典型的には、データモジュールの動作の基となる入力データを提供するデータソースに関連する、様々なアクションを定義する。例えば、ＤａｔａＳｏｕｒｃｅｓカテゴリのブロック定義としては、入力データセットを生成する「ＣｒｅａｔｅＤａｔａＳｅｔ」、オフラインまたはオンラインデータソースから既存のデータセットをロードまたは獲得する「ＬｏａｄＤａｔａＳｅｔ」、データベース（プロセス制御データベースまたは分析データベース等）からデータをロードまたは獲得する「ＬｏａｄＤＢ」、入力データセットをより長期的なデータストレージにヒストライズする「ＳａｖｅＤａｔａＳｅｔ」（例えば、その作成後に、入力データセットの試験のため等）等が挙げられ得る。更に、Ｄａｔａ  Ｓｏｕｒｃｅｓカテゴリの一部は、１つ以上のサブカテゴリを含み得る。例えば、ＣｒｅａｔｅＤａｔａＳｅｔ及びＬｏａｄＤａｔａＳｅｔカテゴリは、各々、データセットが生成された特定のデータセットフォーマット及びまたは環境、例えばＣＳＶ（コンマ区切り）、Ｒａｓｐｂｅｒｒｙ  Ｐｉ、Ｓｅｅｑ等についてのそれぞれのサブカテゴリを含み得る。概して、オフラインＤａｔａ  Ｓｏｕｒｃｅｓブロックは、データファイル、プロセス制御データベース、分析データベース等の静的データソースを獲得またはそれにアクセスするように構成される。他方で、オンラインＤａｔａ  Ｓｏｕｒｃｅｓブロックは、典型的には、オンラインＤａｔａ  Ｓｏｕｒｃｅブロックの特定のインスタンスを、プロセスプラント内の１つ以上のオンラインデータソースと関連させるバインディング定義を伴って構成される。構成されたオンラインＤａｔａ  Ｓｏｕｒｃｅのコンパイルは、オンラインＤａｔａ  Ｓｏｕｒｃｅブロックが、それがバインドされている１つ以上のオンラインデータスースによって生成されたデータをストリーミングで受信するように、このバインディングをインスタンス化する。
【０１４２】
データソースカテゴリは、選択されたデータを１つ以上のデータソースからサーチまたは獲得することに関するブロック定義、例えば「ＱｕｅｒｙＤａｔａＳｏｕｒｃｅ」または「Ｑｕｅｒｙ」を有し得る。Ｑｕｅｒｙブロックは、オフラインデータソース及び／またはオンラインデータソースに基づいて動作し得る。概して、Ｑｕｅｒｙブロック定義は、データモジュールが、特定の種類のデータのアイデンティティ（例えば、列、タグ、または他の好適な識別子によって示される）を照会、獲得、または要求することを可能にし、かつ／あるいは特定の時間間隔（複数の離れた時間間隔でもよい）中に生成されたデータのみ照会、獲得、または要求することを可能にする。なおも更に、Ｑｕｅｒｙブロックは、データが取り込まれている、または記憶されているフォーマット及び／または環境に関係なく、任意の種類のデータを照会することができる。クエリブロックの更なる詳細は、本出願の後の節において提供される。
【０１４３】
Ｆｉｌｔｅｒｓカテゴリに含まれるブロック定義は、典型的には、データセットに実施することができる様々なフィルタリング技法を定義する。例えば、Ｆｉｌｔｅｒｓカテゴリのブロック定義としては、「Ｃｌｉｐ」、「ＨｉｇｈＰａｓｓ」、「ＬｏｗＰａｓｓ」、「ＳＧＦ（例えば、サビツキーゴーレイフィルタリングの場合）」、「Ｅｘｐｏｎｅｎｔｉａｌ」、「Ａｖｅｒａｇｉｎｇ」、「Ｗａｖｅｌｅｔ」等が挙げられ得る。
【０１４４】
データブロック定義ライブラリ２５２の「Ｔｒａｎｓｆｏｒｍｅｒｓ」カテゴリに含まれるブロック定義は、典型的には、データセットまたはフィルタされたデータセットの内容を操作、分析、及び／または別様に転換する様々な技法を定義する。例えば、Ｔｒａｎｓｆｏｒｍｅｒｓカテゴリとしては、入力データセットのクリーニングに対応するサブカテゴリのデータブロック定義、例えば、「ＦｉｌｌＮａＮ」（例えば、数字ではないデータセットのエントリを埋める）」、「ＲｍｖＯｕｔｌｉｅｒ」（例えば、異常値データを取り除く）、「ＣｏｒｒｅｃｔＢａｄ」（例えば、入力データセット内で検出された不良データを修正する）、「ＥｘｃｌｕｄｅＢａｄ」（例えば、検出された不良データを除外する）等が挙げられ得る。加えて、Ｔｒａｎｓｆｏｒｍｅｒｓカテゴリは、「Ｓｃａｌｅ」、「Ｓｈｉｆｔ」、「Ｓｐｌｉｔ」、「Ｍｅｒｇｅ」、「ＣｅｎｔｅｒＮｏｒｍａｌ」、「ＤｏｗｎＳａｍｐｌｅ」、「ＴｉｍｅＯｆｆｓｅｔ」、「Ｃｏｌｕｍｎｓ」等の、入力データセットの内容の操作に対応するサブカテゴリのデータブロック定義を含み得る。更に、一部の実施形態においては、Ｔｒａｎｓｆｏｒｍｅｒｓカテゴリは、入力データセット内のデータの整合に対応するサブカテゴリのブロック定義、例えば、「ＴｉｍｅＤｅｌａｙ」、「ＬａｇＣｏｒｒｅｃｔ」等を含み得る。
【０１４５】
Ｔｒａｎｓｆｏｒｍｅｒｓカテゴリは、「Ｓｅｎｓｉｔｉｖｉｔｙ」、「Ｃｌｕｓｔｅｒｓ」、「ＲａｎｄｏｍＦｏｒｅｓｔ」、「ＣＢＰ（例えば、条件付きベイズ確率分析）」、「ＫＭｅａｎｓ」、「ＦｏｕｒｉｅｒＴｒａｎｓｆｏｒｍ」、「ＦａｓｔＦｏｕｒｉｅｒＴｒａｎｓｆｏｒｍ」、「ＰＬＳ」、「ＰＣＡ」等の、入力データセットを分析して知識を得て、それらの内容について学習することに対応する、サブカテゴリのデータブロック定義を含み得る。Ｔｒａｎｓｆｏｒｍｅｒｓカテゴリの一部のサブカテゴリは、１つ以上のサブサブカテゴリを含み得る。例えば、Ｔｒａｎｓｆｏｒｍｅｒｓカテゴリの「ＰＣＡ」サブカテゴリは、「ＰＣＡ＿ＮＩＰＡＬＳ」（ＰＣＡ及び非線形反復部分最小二乗法）、「ＰＣＡ＿ＳＶＤ」（ＰＣＡ及び特異値分解）、「ＰＣＡ＿Ｔｅｓｔ」等の、様々な主構成要素分析技法に対応するサブサブカテゴリのデータブロック定義を含み得る。
【０１４６】
Ｖｉｓｕａｌｉｚａｔｉｏｎｓカテゴリのブロック定義は、典型的には、データモジュールによって生成された出力を呈示するための様々な技法を定義する。例えば、Ｖｉｓｕａｌｉｚａｔｉｏｎｓカテゴリは、「ＬｉｎｅＧｒａｐｈ」、「Ｃｈａｒｔ」、「ＢａｒＧｒａｐｈ」、「ＳｃａｔｔｅｒＣｈａｒｔ」、「Ｈｉｓｔｏｇｒａｍ」、「ＤａｔａＧｒｉｄ」、「ＤａｔａＣｌｏｕｄ」、「Ａｎｉｍａｔｉｏｎ」等の、グラフィカル及び／または別様な視覚的表現に対応するサブカテゴリを含み得る。Ｖｉｓｕａｌｉｚａｔｉｏｎｓカテゴリは、「ＲｏｕｎｄＳｉｇＦｉｇ」等の、特定のグラフィカル表現について出力データを準備することに対応するサブカテゴリを含み得る。
【０１４７】
Ｄａｔａ  Ｃｏｎｓｕｍｅｒｓカテゴリのブロック定義は、典型的には、データモジュールによって生成された出力データの様々なコンシューマまたは受信側に関するアクションを定義する。例えば、Ｄａｔａ  Ｃｏｎｓｕｍｅｒｓカテゴリは、ファイル、データベース、または他の静的記憶領域への出力データの書き込みまたは保存を引き起こす、サブカテゴリ「Ｗｒｉｔｅ」を含み得る。そして、このサブカテゴリ「Ｗｒｉｔｅ」は、出力データがどこにどのようにして書き込まれたり保存されたりするのかを示す、様々な種類の場所、データベース、データベースフォーマット、ファイルフォーマット等に対応する、それぞれのサブカテゴリを有し得る。Ｄａｔａ  Ｃｏｎｓｕｍｅｒｓカテゴリは、出力データのストリーミング（例えば、分析データネットワーク１１２を介する）、またはデータのサブスクライバもしくは受信側（例えば、分散型データエンジン１０２ｘ、オンラインデータモジュール、プロセス制御システムによって実行されているアプリケーション、ユーザインターフェイス等）への別様な公表もしくは送達を引き起こす、サブカテゴリ「Ｐｕｂｌｉｓｈ」を含み得る。一部の実施形態においては、オフラインのＰｕｂｌｉｓｈブロックをそのオンラインバージョンに転換するために、Ｐｕｂｌｉｓｈデータブロックは、ライブデータコンシューマ（例えば、データモデルの出力のサブスクリプションを有する、オンラインデータモジュール、実行中アプリケーション、プロセス制御デバイス、要素、または構成要素等）にバインドされるように構成され、バインドされる。ある実施形態においては、Ｄａｔａ  Ｃｏｎｓｕｍｅｒｓカテゴリは、サブカテゴリ「Ｃｏｎｖｅｒｔ２Ｃｏｎｔｒｏｌ」を含み得、このサブカテゴリは、出力データを、従来型のプロセス制御通信ネットワークが理解するフォーマットの信号へと変換し、また、その信号を、従来型のプロセス制御通信ネットワークを介して、プロセス制御エンティティ、要素、デバイス、または構成要素へと送達して、プロセスプラント５における変化をもたらすか、あるいは引き起こす。サブカテゴリ「Ｃｏｎｖｅｒｔ２Ｃｏｎｔｒｏｌ」は、例えば、変化信号（例えば、制御ループ入力、制御ループ構成、メッセージ優先度、パラメータ値等）の潜在的な受信側である、プロセスプラント５内の様々な従来型のプロセスプロトコルフォーマット（例えば、ＨＡＲＴ、ＰＲＯＦＩＢＵＳ、ＷｉｒｅｌｅｓｓＨＡＲＴ等）及び／または様々なターゲットに対応する、サブサブカテゴリを含み得る。例えば、Ｃｏｎｖｅｒｔ２Ｃｏｎｔｒｏｌブロックは、Ｃｏｎｖｅｒｔ２Ｃｏｎｔｒｏｌブロックの出力を受信し、そのオペレーションを適宜修正する、プロセスプラント５内の特定のプロセス制御エンティティ、要素、デバイス、または構成要素にバインドするように構成され得る。
【０１４８】
データブロック定義ライブラリ２５２は、その中に他のデータブロック定義を含み得、それらの各々はカテゴリに属す場合または属さない場合がある。例えば、「Ｅｘｐｌｏｒｅ」ブロックは、オフラインモードでの、ユーザによる、以上の他のデータブロックによって生成された出力データの探査を可能にする。例えば、Ｅｘｐｌｏｒｅデータブロックは、その入力コネクタにおいて複数の異なるデータワイヤを受容し得、例えば、２つの入力データセットを経時的に整合し、１つの線グラフを別の線グラフの上に重ねることによって、各それぞれのデータセットの情報を他方のデータセットの情報の隣に表示させる、ヒストグラムを作成することによって、両方の入力データのセットを比較的な様式で含む視覚的表現を生成し得る。Ｅｘｐｌｏｒｅブロックは、ユーザが、例えば、ｘ軸及び／またはｙ軸の縮尺を増加／減少させること、図表に表示される統計データを整列及び／またはフィルタリングすることによって、その出力のビジュアリゼーションを操作することを可能にする。Ｅｘｐｌｏｒｅブロックは、その機能が主として、ドラフトデータモデルによって生成された出力データをユーザが探査及び理解するのを可能にすることであるため、オンラインの相対物を有さない場合があることに留意されたい。
【０１４９】
ユーザが新しいデータモデルを開発する場合、ユーザは、データブロック定義ライブラリ２５２を呼び出すことができる（例えば、ユーザ制御部２４８ｍを介して切り替えることによって）。ユーザは、ライブラリ２５２から所望のデータブロックの定義を、キャンバス２４５の所望の場所にドラッグアンドドロップすることで、キャンバス２４５に所望のデータブロックを追加することができる（それによって、キャンバス２４５上に描写される、開発中のデータモジュールにそのデータブロックを追加することができる）。（無論、ドラッグアンドドロップは、選択、位置付け、及び特定のデータブロックのデータモジュールへの組み込みを示す１つの方法に過ぎず、それらを行う多数の他の好適な方法が可能である。）ドラッグアンドドロップのオペレーションの後、選択したブロック定義はドラフトデータモジュールと関連付けられ、ドラフトデータモデルについてのそのデータブロックのそれぞれのインスタンスが作成及び命名される。図４Ｄに例証される例示的シナリオにおいて、ドラフトＭｏｄｕｌｅ  Ａ１は、開発プロセスの途中であり、その対応するドラフトのオフラインデータダイアグラムが、Ｄａｔａ  Ｓｔｕｄｉｏキャンバス２４５上に示されている。インジケータ２４８ｃによって示されるように、Ｍｏｄｕｌｅ  Ａ１は「オフライン」ステータスを有する。ユーザは既に、ブロックＡ１−Ｂ１、Ａ１−Ｂ２、及びＡ１−Ｂ３をドラフトＭｏｄｕｌｅ  Ａ１に追加しており、それらをワイヤＡ１−Ｗ１及びＡ１−Ｗ２を用いて接続している。ユーザは、ライブラリ２５２を制御部２４８ｍを介して呼び出し、ライブラリからブロックＢ４を選択し、ブロックＢ４をキャンバス２４５上にドラッグアンドドロップしており（破線で示されるように）、ブロックＢ４のインスタンスを「Ａ１−Ｂ４」と命名するプロセスの途中である。ブロックＢ４のインスタンスを命名した後、ユーザは、ワイヤで、Ａ１−Ｂ４をドラフトＭｏｄｕｌｅ  Ａ１の１つ以上の他のデータブロックと相互接続し得る。例えば、ユーザは、Ａ１−Ｂ４の入力コネクタ上でカーソルをホバリングし、クリックして、選択した入力コネクタへの新しいワイヤ接続を作成し得る。次いで、ユーザは、キャンバス２４５上の別のブロックインスタンスの所望の出力コネクタ上でクリックして、選択した入力コネクタを所望の出力コネクタに相互接続する新しいワイヤを作成し、それによって２つのブロックインスタンスを相互接続し得る。別の例においては、ユーザは、別のブロックインスタンスの出力コネクタ上でカーソルをホバリングし、クリックして、選択した出力コネクタへの新しいワイヤ接続を作成し、Ａ１−Ｂ４の所望の入力コネクタ上でクリックして、相互接続するワイヤを作成することができる。無論、任意の好適なユーザ制御メカニズムが、ブロックインスタンス間におけるワイヤ相互接続を作成するために活用され得る。
【０１５０】
Ｄａｔａ  Ｓｔｕｄｉｏキャンバス２４５において、ユーザは、特定のブロックインスタンスについて、ブロックの所与のプロパティの値を修正することができる。例証のため、図４Ｅは、Ｄａｔａ  Ｓｔｕｄｉｏキャンバス２４５の一部分を描写しており、ここではデータモジュールＢ１が開発されている。ドラフトＭｏｄｕｌｅ  Ｂ１に含まれる２つのブロックインスタンス、すなわちＢ１−ＦｉｌｌＮａＮ及びＢ１−ＰＣＡが、キャンバス２４５上に位置付けられ、相互接続されている。Ｂ１−ＦｉｌｌＮａＮは、図４Ｅには示されていないデータソースからその入力データセットを受信し、Ｂ１−ＰＣＡは、２つの出力、「Ｍｏｄｅｌ」２８０ａ及び「Ｓｃｏｒｅｓ」２８０ｂを、それぞれのコンシューマまたは受信側ブロック（これも図示せず）に提供する。ユーザは、彼または彼女が、Ｂ１−ＰＣＡブロックインスタンスに対応するブロック定義プロパティの値の修正を所望することを示している（例えば、Ｂ１−ＰＣＡブロックインスタンス上でホバリングすることによって、Ｂ１−ＰＣＡブロック上でダブルクリックすることによって、あるいは任意の他の好適なユーザ制御メカニズムを用いることによって）。ユーザ制御部のアクティブ化に応答して、ＰＣＡブロック定義に対応する定義されたプロパティの一覧表を含むウィンドウ２８２が現れている（例えば、フローティングダイアログボックス、ポップアップウィンドウ、または何らかの他の好適な表現として）。次いで、ユーザは、ウィンドウ２８２を介して、Ｂ１−ＰＣＡの様々なブロックプロパティの値を、所望に応じて修正することができる。
【０１５１】
先に考察したように、各データブロックのプロパティは（存在する場合）、ブロック定義ライブラリ２５２に記憶されている、そのそれぞれのブロック定義によって定義されている。ブロック定義及びそれらそれぞれのプロパティの例証的（しかし非限定的である）な例が、図４Ｆ〜４Ｈに示される。ブロック定義ライブラリ２５２は、図４Ｆ〜４Ｈに示される例示的ブロック定義のうちの１つ以上を含んでもよく、これらの例示的ブロック定義をどれも含まなくてもよく、ならびに／または他のブロック定義を含んでもよいことが理解される。更に、図４Ｆ〜４Ｈに示される各例示的ブロック定義のプロパティの数、種類、及びデフォルト値もまた、本明細書に記載される例とは相違してもよい。
【０１５２】
図４Ｆにおいては、「ＬｏａｄＤＢ」データブロック２８５ａのデータブロック定義テンプレートが、例えば、ユーザがライブラリ２５２からＬｏａｄＤＢブロック定義をキャンバス２４５上にドラッグし、続いて、彼または彼女が、ＬｏａｄＤＢデータブロック２８５ａのブロックプロパティ値を閲覧及び／または修正して、ブロック２８５ａの特定のインスタンスを作成するのを所望することを示した結果として、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって呈示されている。データモデルのオフラインダイアグラム内でＬｏａｄＤＢブロック２８５ａが実施するアクションまたは機能としては、データモデルの運転が基づく特定のデータセットをロードすること（または別様に、そのデータセットの内容を獲得すること）が挙げられる。例えば、特定の入力データセットは、データベースまたはファイルからロードまたは獲得され得る。ユーザは、例えば、ドロップダウンメニュー、（例えば、プロセス制御データベース、またはプロセス制御システムと関連付けられる他のデータベースの）サーチ及び選択、自由形式テキスト入力等を介して、所望の名称、インジケータ、または値をＤａｔａｂａｓｅＮａｍｅプロパティフィールド２８５ｂ及びＤａｔａＳｅｔプロパティフィールド２８５ｃに入力することで、データモデルにロードされる特定の入力データセットを示すことができる。例えば、ユーザは、ドロップダウンメニューから所望のＤａｔａｂａｓｅＮａｍｅ２８５ｂを選択することができ、所望のデータベース２８５ｂのその選択が、選択／特定されたデータベース２８５ｂのデータセット２８５ｃのみを含む、ＤａｔａＳｅｔフィールド２８５ｃの対応するドロップダウンメニューの提供につながる。ＬｏａｄＤＢブロック２８５ａはまた、Ｐｌｏｔプロパティフィールド２８５ｄも含み、この実装形態においては、Ｐｌｏｔプロパティフィールドはブール値フラグであり、その値は、データベース２８５ｂからのデータセット２８５ｃのプロットが、ＬｏａｄＤＢブロックインスタンスが評価されるときに、生成／呈示されるか否かを示す。Ｐｌｏｔ２８５ｄが「はい」に設定されている場合、ブロック評価の後に、ロードされたデータセット２８５ｃのプロットが、例えば、ＬｏａｄＤＢブロックインスタンスのＶｉｅｗ  Ｂｌｏｃｋ  Ｒｅｓｕｌｔｓ領域２１２において、キャンバス２４５に示されるＬｏａｄＤＢブロックインスタンスのグラフィカル表現に表示される。ＬｏａｄＤＢブロック２８５ａの場合、Ｐｌｏｔプロパティ２８５ｄは任意選択であり、その値はデフォルトでは「無し」となる（例えば、ブロックが評価されるとき、ロードされた入力データセットのプロットは生成／呈示されない）。ユーザが全ての所望の値をＬｏａｄＤＢデータブロック２８５ａのプロパティフィールド２８５ｂ、２８５ｃ、及び２８５ｄに入力した後、ユーザは、修正したプロパティ値を保存して、それにより、ＬｏａｄＤＢデータブロックテンプレート２８５ａを、ユーザが作成／開発しているデータモデルにおいて使用されるＬｏａｄＤＢデータブロック２８５ａの特定のインスタンスを作成するように構成することができる。ユーザは、例えば、キャンバス２４５に示さ��るブロックインスタンスのブロック名称フィールド２１０に、所望の名称（例えば、「ＬｏａｄＤＢ−１」）を入力することで、特定のインスタンスを命名することができる。
【０１５３】
図４Ｇは、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって呈示される、「Ｃｏｌｕｍｎｓ」データブロック２８６ａのデータブロック定義テンプレートを例証する。Ｃｏｌｕｍｎｓデータブロック２８６ａの特定のインスタンスは、ＳｅｌｅｃｔｅｄＣｏｌｕｍｎｓプロパティフィールド２８６ｂのそのプロパティ値によって特定されるように、ロード／獲得されたデータセットからのデータの選択されたグループ（本明細書においては、データの「列」または「タグ」で参照されるデータと呼ぶ）を抽出または獲得する。例えば、Ｃｏｌｕｍｎｓデータブロック２８６ａは、その入力コネクタを介して、例えばＬｏａｄＤＢデータブロック２８５ａのインスタンスから、データセット（または、ポインタ、インジケータ、もしくはデータセットに対する他の参照等の、その何らかの指標）を受信する。Ｃｏｌｕｍｎｓデータブロック２８６ａのＳｅｌｅｃｔｅｄＣｏｌｕｍｎｓプロパティ２８６ｂは、ユーザが、データモデルの他のブロックがそれに基づいて動作することを所望する、入力データセットの１つ以上の列、タグ、または他の部分を、ユーザが選択することを可能にする。例えば、図４Ｇに示されるように、ユーザは、ＤａｔａｓｅｔＡのタグのリストをスクロールして、所望のタグをハイライト表示させるプロセスの途中である。典型的には（必ずしもそうではないが）、選択された列またはタグは、入力データセットに含まれる全ての列またはタグのサブセットである。ユーザは、列またはタグ選択２８６ｂ（また、存在する場合は、他のブロックプロパティ）を保存して、それにより、Ｃｏｌｕｍｎｓデータブロック２８６ａを、特定のインスタンス、例えばユーザが作成／開発しているデータモデルにおいて使用される特定のインスタンスを作成するように構成することができる。ユーザは、例えば、そのブロック名称フィールド２１０に所望の名称を入力することで、Ｃｏｌｕｍｎｓ２８６ａの特定のインスタンスを命名することができる。
【０１５４】
図４Ｈは、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって呈示される、「ＰＣＡ＿ＮＩＰＡＬＳ」データブロック２８７ａのデータブロック定義テンプレートを例証する。ＰＣＡ＿ＮＩＰＡＬＳデータブロック２８７ａは、データのセットに対して、主構成要素分析（ＰＣＡ）と、非線形反復部分最小二乗法とを実施する。例えば、ＰＣＡ＿ＮＩＰＡＬＳデータブロック２８７ａは、その入力コネクタを介して、Ｃｏｌｕｍｎｓデータブロック２８６ａのインスタンスによって決定された、データの列もしくはタグ（または、そのインジケータもしくはそれに対する参照）を受信し得る。別の例においては、ＰＣＡ＿ＮＩＰＡＬＳデータブロック２８７ａは、その入力コネクタを介して、ＬｏａｄＤＢ２８５ａデータブロックによって、データモデルによる使用のためにロードされた、全体のデータセット（または、そのインジケータもしくはそれに対する参照）を受信し得る。ＰＣＡ＿ＮＩＰＡＬＳブロック２８７ａのテンプレートは、所望される場合、ＰＣＡの構成要素の数２８７ｂ及び信頼水準２８７ｃのユーザによる選択を可能にする。プロパティフィールド２８７ｂ、２８７ｃの両方がＰＣＡ＿ＮＩＰＡＬＳブロック２８７ａについては任意選択であり、デフォルト値（例えば、ＰＣＡ＿ＮＩＰＡＬＳのブロック定義において定義される）またはゼロに設定され得る。図４Ｈに示される例示的シナリオにおいては、ユーザは、ＰＣＡ＿ＮＩＰＡＬＳの現在のインスタンスが、２つの構成要素２８７ｂと、少なくとも９５％の信頼水準２８７ｃとを生成するように構成されることを示している。ＰＣＡ＿ＮＩＰＡＬＳデータブロック２８７ａテンプレートは、ユーザが作成／開発しているデータモデルにおいて使用される特定のインスタンスを作成するように構成することができ（プロパティ値の修正を伴って、または伴わずに）、また、ユーザは、例えばそのブロック名称フィールド２１０に所望の名称を入力することで、特定のインスタンスを命名することができる。
【０１５５】
一部の種類のデータブロックは、前のブロックによって生成された出力データに基づいて動作する、コンシューマまたは受信側データブロックである。これらの種類のコンシューマデータブロックは、これらのコンシューマデータブロックを構成するために、評価されるべき前段階のブロックを必要とする場合がある。例えば、ＬｏａｄＤＢブロック４８５ａのインスタンスは、Ｃｏｌｕｍｎｓブロック４８６ａのインスタンスにデータを提供するようにワイヤでつなげられ、ＬｏａｄＤＢブロックインスタンス４８５ａの評価はデータセットを提供し、このデータセットから、ユーザはＣｏｌｕｍｎｓブロックインスタンス４８６ａを構成するための特定の列またはタグを選択し得る。
【０１５６】
ここでオフラインデータブロック及びデータモジュールの評価に注目すると、オフラインデータモジュールは、それが開発されている間に繰り返し評価することができ、評価するために完全に完成している必要はない。したがって、オフラインデータモジュールの評価は、非同期的に実施することができ、それにより、ユーザは、ドラフトデータモジュールの一部の評価、評価に基づくドラフトデータモジュールの修正、再評価、再修正、再々評価等を行うことができる。例えば、ユーザは、データモジュールの開始データブロックを作成し、その単一のデータブロックを評価し、次いで第２のデータブロックを第１のデータブロックに接続し、第２のデータブロックのみを評価し（あるいは、第１及び第２のデータブロックの両方を全体として評価し）、更に４つのデータブロックを追加し、新規に追加したデータブロックのみを評価する（あるいは、６つのデータブロック全てを全体として評価する）等してもよい。すなわち、所望の数のデータブロックインスタンス及び／または関連付けられるワイヤが、オフラインまたはドラフトデータモジュールの作業中のデータダイアグラムに追加されたとき、キャンバス２４５に表されるモジュール（またはその一部）は、例えば、ナビゲーションバー２４２の評価ユーザ制御部２４８ｉをアクティブ化することによって評価できる。例えば、ユーザが、キャンバス２４５上に呈示されるブロック及びワイヤの全体を評価することを所望する場合、ユーザは、ユーザ制御部２４８ｉを単に評価し得る。一方で、ユーザが、キャンバス２４５上に呈示されるブロック及びワイヤのサブセットのみを評価することを所望する場合、ユーザは、所望のブロック及び／またはワイヤを選択し（例えば、クリック、投げ縄ツール、または他の好適なメカニズムで）、次いで、制御部２４８ｉをアクティブ化して、選択したブロック及びワイヤのセットを評価させ得る。
【０１５７】
図４Ｉは、オフラインデータダイアグラム２８８がどのように評価され得るかの例を例証する。オフラインデータダイアグラム２８８が作成または開発されている間、Ｄａｔａ  Ｓｔｕｄｉｏキャンバス２４５上に示されるそのブロック及び相互接続の表現は、伝送ファイルまたはドキュメント２９０（本明細書においては、「構成ファイル」とも呼ばれる）に記憶され、この伝送ファイルまたはドキュメントは、ＪＳＯＮ（Ｊａｖａ  Ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）または任意の他の所望のフォーマット等の、軽量データ交換フォーマットのものであり得る。したがって、グラフィカルオフラインデータダイアグラム２８８は、伝送ストレージファイルまたはドキュメント２９０にバインドされる。ユーザが、彼または彼女がオフラインデータダイアグラム２８８またはその一部が評価されるのを所望していることを示すとき（例えば、ユーザ制御部２４８ｉの活性化によって）、伝送ファイルまたはドキュメント２９０は、ターゲット実行環境の言語へとコンパイルされ、それによって、データダイアグラム２８８にとって実行可能なコード２９２が生成される。ある実施形態においては、伝送ファイルまたはドキュメント２９０は、複数の部分へと分割され得、これらの部分の各々が、異なるターゲット環境において実行可能である異なるターゲット言語へとコンパイルされる（例えば、異なるターゲット言語の実行可能なコード２９２の複数のチャンクまたはセグメントが、伝送ストレージファイルまたはドキュメント２９０から生成され得る）。オフラインデータダイアグラム２８８の実行可能なコード２９２が生成された後、コード２９２の実行を管理及び調整するためのプロセスが作成され、これは、異なるターゲット環境にまたがる場合またはまたがらない場合があり、ならびに／あるいは異なるプロセッサによって実施される場合または実施されない場合がある。
【０１５８】
オフラインデータダイアグラム２８５の様々なブロックが実行または評価されている間に、プロセスは、Ｄａｔａ  Ｓｔｕｄｉｏに対してフィードバックを送信し得る。例えば、プロセスからのフィードバックに基づき、Ｄａｔａ  Ｓｔｕｄｉｏはオフラインダイアグラム２８５の各データブロックのそれぞれのステータスインジケータ２０８をアップデートして、ブロックがコンパイルしているか、評価しているか、評価が成功裏に終了したか、または評価が不成功に終了したか（例えば、失敗したか）を示す。実際、概して、図４Ｉに例証されるコンパイル及び実行プロセスを通じて、フィードバックがＤａｔａ  Ｓｔｕｄｉｏに返され、ユーザインターフェイスに示され得る。例えば、プロセスからのフィードマックに基づき、Ｄａｔａ  Ｓｔｕｄｉｏはモジュールステータスインジケータ２４８ｋ及び／またはオフラインステータスインジケータ２４８ｃをアップデートして、モジュールが全体としてコンパイルを受けているか、評価を受けているか、評価が成功裏に終了したか、または評価が不成功に終了したかを示す。
【０１５９】
ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎにおいては、オフラインデータブロック、ダイアグラム、及びモジュールを評価するために使用されるインフラストラクチャ及びアクションは、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓによって提供される。例えば、評価ユーザ制御部２４８ｉのアクティブ化は、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓを発動させて、キャンバス２４５上で現在開発されているオフラインデータブロック、ダイアグラム、もしくはモジュール（またはそれらの一部）の評価を実施させ、これは、例えば、複数の異なるバックエンドプラットフォーム（例えば、複数の異なるターゲット言語、コンパイラ、プロセッサ、及び／またはターゲット環境）を活用し得る。したがって、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、データブロック、ダイアグラム、またはモジュールを実装するために活用されるバックエンドプラットフォームと関わる（または、その知識を有する）必要性からユーザを保護する。すなわち、ユーザは、Ｄａｔａ  Ｓｔｕｄｉｏ及びＤａｓｈｂｏａｒｄの特色（例えば、データブロック定義ライブラリ２５２、キャンバス２４５、及び関連付けられるユーザ制御部）を、データダイアグラムを用いてデータモジュールを設計または操作するためだけでなく、それらの設計をリアルタイムかつバックエンドプラットフォームからは独立して展開するためにも活用することができ、このバックエンドプラットフォームは、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓによって、「秘密裏」に管理される。また、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎアーキテクチャは、有利なことに、ユーザが直面するデータモジュール設計、評価、試験、及び展開機能性に影響を及ぼすことなく、追加的なバックエンドプラットフォーム及び／または構成要素が追加または削除されることを可能にする。
【０１６０】
Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓ及びその評価についてのサポートのより詳細な説明が、後の節において提供される。
【０１６１】
図４Ａを参照すると、先に考察したように、オフラインモードにおけるデータモジュールの評価は、反復型プロセスであり得る。ユーザがドラフトデータモジュールに関してブロックを追加及び構成する際、ユーザは、追加されたブロックを評価することができ、各ブロックのステータスは、そのそれぞれのステータスアイコンによって反映される（例えば、図４Ａに示されるインジケータ２０８）。ブロックの評価が不成功または失敗であった状況においては、ユーザがその失敗につながった任意の問題に対処することができるように、ユーザは、その失敗に関する詳細を獲得し得る（例えば、「失敗」ステータスインジケータ２０８を選択またはクリックすることによって）。ブロックの評価が成功した状況においては、ユーザは、例えばブロックのそれぞれのブロック結果閲覧アイコン２１２を選択またはクリックすることによって、ブロック評価の結果を閲覧することができる。ある実施形態においては、ユーザが「ブロック結果閲覧」２１２を選択したとき、モーダルダイアログまたはビジュアリゼーションダイアログが現れ得（例えば、ポップアップウィンドウ、フローティングダイアログボックス、または他の好適なフォーマットとして）、ユーザは様々なビジュアリゼーションを閲覧及び探査して、データブロック結果を見ることができる。
【０１６２】
実際、データブロックが実行または評価されるとき、データブロックは、（例えば、ワイヤ及び入力コネクタを介して）それに移送されたデータに基づいて動作するデータブロックの効果（複数可）をユーザが決定するのを補助するために有用であり得る、任意の種類の結果（複数可）を記憶し得る。記憶される結果（複数可）の種類は、典型的には、ブロックに対して特異的であり（また、一部の場合においては、ブロックの特定のインスタンスに対して特異的であり）、ブロック開発者によって定義または決定され得る。これらの結果は、モーダルダイアログウィンドウまたはビジュアリゼーションダイアログウィンドウを介してユーザに示され得る。
【０１６３】
ブロック及び／またはブロックインスタンスに特異的な結果に加えて、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、データブロックのうちの２つ以上（また、一部の場合においては、大部分または全て）に対して適用可能であり得る標準ビジュアリゼーションを提供し得る。例えば、ブロックが実行されるとき、データセットの各列、タグ、または部分について平均、標準偏差、及び他のそのような統計が計算され、結果として生じるデータセットと共に記憶され得るようにブロックの実行の末期において、データの状態についての様々な統計の標準セットが収集され得る。特定のブロックインスタンスのビジュアリゼーションダイアログが呈示されるとき（例えば、それぞれのユーザ制御部２１２のアクティブ化を介して）、各列、タグ、または部分についての標準統計の計算セットがデータ記憶から回収され、ユーザに対して呈示される。次いで、ユーザは、目的の列／タグ／部分を選択し、Ｄａｔａ  Ｓｔｕｄｉｏに、該列／タグ／部分の統計を表すそれぞれの図表または他の視覚的フォーマット（例えば、線図、散布図、ヒストグラム、データグリッド、データ要約グリッド、データの分散を示す計算された統計及びヒストグラム等）を生成するように要求することができる。ある実施形態においては、統計及びデータセットは独立的に記憶されるが、これは、結果として生じるデータセットから独立的に統計を記憶することが、有利なことに、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎが、必要とされる量のデータのみをブラウザにロードすることを可能にするためである。
【０１６４】
標準的ビジュアリゼーション及びカスタムビジュアリゼーションを呈示するための例示的アーキテクチャ３００が、図４Ｊに示される。例示的アーキテクチャ３００においては、「Ｂｌｏｃｋ１」３０２についてのデータブロックコードが実行され、結果として生じるデータセット３０５、計算された標準統計／他のビジュアリゼーション３０８、及びＢｌｏｃｋ１に特異的な結果３１０が生成され、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって管理されるローカルまたはリモートの記憶領域３１２内に記憶される。Ｄａｔａ  Ｓｔｕｄｉｏインスタンス３１５（例えば、ブラウザウィンドウ）においては、Ｂｌｏｃｋ１グラフィックに表示される「ブロック結果閲覧」ユーザ制御部２１２をユーザが選択すると、Ｂｌｏｃｋ１についての計算された統計３０８（例えば、標準セット及び／または任意のカスタムビジュアリゼーション）がＤａｔａ  Ｓｔｕｄｉｏインスタンス３１５にロードされ３１８、ユーザは、所望の列、タグ、または目的の部分を選択することができる。Ｂｌｏｃｋ１の所望される列／タグ／部分をユーザが選択すると、ユーザによる閲覧及び探査のために、対応するデータがＤａｔａ  Ｓｔｕｄｉｏインスタンス３１５にロードされる３２０。
【０１６５】
経時的に、複数のデータモジュールが構成され、例えば、同じプロセス制御システム５内において、かつ／あるいは複数のプロセス制御システムを有するエンタープライズにまたがって、ブロック構成及び使用法の共通のパターンが起こり得る。そのような共通性が特定された場合、個別のデータブロックのセットをグループ化して、それらの共通の挙動をカプセル化する新しいブロック、例えば、複合ブロックを形成することが望ましくあり得る。一部のシナリオにおいては、例えば、特定のプロパティ値のセットが経時的に繰り返されていることが見出されるとき、またはユーザがカスタムデータオペレーションもしくは機能を定義することを所望するとき、カスタムの一元的なデータブロックを定義することが望ましくあり得る。カスタム及び／または複合データブロックは、それらが他のデータモジュールにおける使用について利用可能であるように、ライブラリ２５２内で作成及び記憶され得る。複合データブロックの作成を例証する例示的シナリオ３３０が、図４Ｋに示される。データダイアグラム３３２においては、ユーザは、特定の関係性（例えば、「Ｆｉｌｌ  ＮａＮ」及び「Ｓｃａｌｅ」）３３５を有する２つの一元的なデータブロックを選択して、新しい複合ブロックを形成する。Ｄａｔａ  Ｓｔｕｄｉｏによって提供されるモーダルダイアログボックス、ポップアップウィンドウ、または他の好適なインターフェイスを用いて、ユーザは、所望の名称「Ｆｉｌｌ  ＆  Ｓｃａｌｅ」をもつ新しい複合ブロックを構成または定義し、この新しい「Ｆｉｌｌ  ＆  Ｓｃａｌｅ」複合ブロックをデータブロック定義ライブラリ２５２に保存する（参照３３８）。「Ｆｉｌｌ  ＆  Ｓｃａｌｅ」が定義及び保存されてしばらく経った後、個別の「Ｆｉｌｌ  ＮａＮ」及び「Ｓｃａｌｅ」データブロックを用いる代わりに、この新しい複合ブロックを別のデータダイアグラム３３９に組み込むことができる。
【０１６６】
図４Ｌは、上記の特色及び原理の一部を例証する例示的オフラインデータダイアグラム３４０を描写しており、これは、図４Ａ、４Ｂ、及び４Ｆ〜４Ｈを同時に参照しながら本明細書において説明される。図４Ｌにおいては、例示的オフラインデータダイアグラム３４０は、Ｄａｔａ  Ｓｔｕｄｉｏのユーザキャンバス２４５において、ユーザによって作成された。具体的には、ユーザは、例えばキャンバス２４５の制御部２４８ｍをアクティブ化することでブロック定義ライブラリ２５２を呼び出し、ＬｏａｄＤＢブロックテンプレート２８５ａをキャンバス２４５上にドラッグアンドドロップした。更に、ユーザは、ＬｏａｄＤＢブロック２８５ａのこの特定のインスタンスを「ＬｏａｄＤＢ４Ｍ」（参照３４２ａ）と命名し、例えば、ＬｏａｄＤＢ４Ｍブロック３４２ａのフィールド２８５ｃ及び２８５ｂにおけるプロパティ値を設定することによって、Ｄａｔａｂａｓｅ  ＭからＤａｔａｓｅｔ４をロードするようにＬｏａｄＤＢ４Ｍブロックインスタンス３４２ａを構成した。加えて、図４Ｌにおいて明確に描写されてはいないが、ユーザは、ブロックＬｏａｄＤＢ４Ｍ３４２ａを評価する際、ロードされたＤａｔａｓｅｔ４のプロットが生成され、ＬｏａｄＤＢ４Ｍブロック３４２ａのＶｉｅｗ  Ｂｌｏｃｋ  Ｒｅｓｕｌｔｓフィールド２１２ａに呈示されるように、ＬｏａｄＤＢ４Ｍ３４２ａのＰｌｏｔプロパティ値２８５ｄを「Ｔｒｕｅ」に設定した。
【０１６７】
ユーザがＬｏａｄＤＢ４Ｍブロックインスタンス３４２ａを構成した後、ユーザは、ＬｏａｄＤＢ４Ｍブロックインスタンス３４２ａの出力に、２つの受信側Ｃｏｌｕｍｎｓブロックインスタンス３４２ｂ、３４２ｃを接続した。例えば、ユーザは、Ｃｏｌｕｍｎｓデータブロックテンプレート２８６ａの２つの異なるインスタンスをキャンバス２４５上にドラッグアンドドロップし、これらのインスタンスをそれぞれ、「Ｃｏｌｕｍｎｓ  Ｘ」（参照３４２ｂ）及び「Ｃｏｌｕｍｎｓ  Ｙ」（参照３４２ｃ）と命名した。更に、ユーザは、Ｃｏｌｕｍｎｓ  Ｘブロック３４２ｂ及びＣｏｌｕｍｎｓ  Ｙブロック３４２ｃのそれぞれの入力の各々を、相互接続ワイヤを用いることで、ＬｏａｄＤＢ４Ｍブロック３４２ａの出力に接続した。
【０１６８】
ユーザはまた、Ｃｏｌｕｍｎｓ  Ｘブロック３４２ｂ及びＣｏｌｕｍｎｓ  Ｙブロック３４２ｃを、ＬｏａｄＤＢ４Ｍブロック３４２ａの評価に基づくように構成した。具体的には、ユーザはまず、ＬｏａｄＤＢ４Ｍブロック３４２ａを評価し（例えば、キャンバス２４５上のブロック３４２ａの画像を選択し、「評価」ユーザ制御部２４８ｉをアクティブ化することによって）、それにより、ＬｏａｄＤＢ４Ｍブロック３４２ａを、Ｄａｔａｂａｓｅ  ＭからＤａｔａｓｅｔ４をロードまたは獲得するようにコンパイル及び実行させた。ＬｏａｄＤＢ４Ｍブロック３４２ａのＰｌｏｔプロパティは「Ｔｒｕｅ」に設定されているため、ＬｏａｄＤＢ４Ｍブロック３４２ａのこの評価はまた、ロードされたＤａｔａｓｅｔ４のＰｌｏｔを、例えば、ＬｏａｄＤＢ４Ｍブロック３４２ａのＶｉｅｗ  Ｂｌｏｃｋ  Ｒｅｓｕｌｔｓフィールド２０２ａ（図４Ｌには図示せず）に表示させる。このプロットを用いて、ユーザは、Ｄａｔａｓｅｔ４内のデータの様々な列、タグ、またはサブグループ分けを閲覧及び探査し、続いてＣｏｌｕｍｎｓ  Ｘブロック３４２ｂを、Ｄａｔａｓｅｔ４内で「Ｘ」と標識またはタグ付けされたデータのサブグループまたは列を受信するように構成し、Ｃｏｌｕｍｎｓ  Ｙブロック３４２ｃを、Ｄａｔａｓｅｔ４内で「Ｙ」と標識またはタグ付けされたデータのサブグループまたは列を受信するように構成した（例えば、Ｃｏｌｕｍｎｓブロック３４２ｂ、３４２ｃの各々について、それぞれ、Ｃｏｌｕｍｎｓブロックテンプレート２８６ａのプロパティフィールド２８６ｂにおいて、適切なサブグループ、列、またはタグインジケータを選択することによって）。したがって、Ｃｏｌｕｍｎｓ  Ｘブロック３４２ｂの評価は、「Ｘ」と特徴付け、標識、またはタグ付けされるＤａｔａｓｅｔ４からのデータのみがブロック３４２ｂにおいてロードまたはアクセスされることをもたらし、Ｃｏｌｕｍｎｓ  Ｙブロック３４２ｃの評価は、「Ｙ」と特徴付け、標識、またはタグ付けされるＤａｔａｓｅｔ４からのデータのみがブロック３４２ｃにおいてロードまたはアクセスされることをもたらす。
【０１６９】
ユーザはまた、オフラインデータダイアグラム３４０において、Ｐａｒｔｉａｌ  Ｌｅａｓｔ  Ｓｑｕａｒｅｓ（ＰＬＳ）ブロックをドラッグ、ドロップ、及び構成した。具体的には、ユーザは、ＰＬＳブロックインスタンス３４２ｄを「ＰＬＳ４Ｍ＿Ｘ＿Ｙ」と命名し、このＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄを、Ｃｏｌｕｍｎｓ  Ｘブロック３４２ｂの出力と、Ｃｏｌｕｍｎｓ  Ｙブロック３４２ｃの出力とを、そのそれぞれの入力で受信するように構成した。ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｃは、Ｃｏｌｕｍｎｓ  Ｘブロック３４２ｂ及びＣｏｌｕｍｎｓ  Ｙブロック３４２ｃによって提供されるデータに対して、部分最小二乗機能、アクション、アルゴリズム、またはオペレーションを動作させるか、あるいは実施し、その結果（例えば、Ｃｏｌｕｍｎｓ  ＸとＣｏｌｕｍｎｓ  Ｙデータとの間の関係性に基づいて生成される、それぞれのＰＬＳモデル）は、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄの出力を介して、Ｅｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅへと提供される。他のブロック３４２ａ〜３４２ｄと同様に、Ｅｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅは、ユーザがキャンバス２４５上にドラッグアンドドロップし、命名し、構成した、それぞれのＥｘｐｌｏｒｅブロック定義のインスタンスである。
【０１７０】
オフラインダイアグラム３４０においては、Ｅｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅは、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄによって生成された出力を受信するように構成されているが、３４２ｄに加えて、ユーザは、Ｅｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅも、例えばワイヤ３４２ｆを介して、Ｃｏｌｕｍｎｓ  Ｙブロック３４２ｃの直接出力を入力として受信するように構成した。この構成によって、ユーザは、Ｅｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅを通じて、例えば１つ以上のビジュアリゼーション及び／または統計を呈示することで、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｃの出力とＣｏｌｕｍｎｓ  Ｙブロック３４２ｃの出力との間の関係性を探査することが可能になる。例えば、典型的には、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｃの出力は、１つ以上の予測値を含む。Ｅｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅは、ユーザに、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｃの出力に含まれる１つ以上の予測値を、Ｃｏｌｕｍｎｓ  Ｙブロック３４２ｃの実測値と比較させて、例えば、ＰＬＳ４Ｍ＿Ｘ＿Ｙモデル３４２ｄにおけるＣｏｌｕｍｎｓ  Ｘデータ３４２ｂの使用が、Ｃｏｌｕｍｎｓ  Ｙデータ３４２ｃを十分に予測するかどうかを判定させる。
【０１７１】
このオフラインデータダイアグラムにおいては、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄ及びＥｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅのどちらも、それ自体の構成を完成させ得る前に、その直前のブロック（複数可）が評価されることを必要とするわけではないことが留意される。すなわち、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄ及びＥｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅの各々の構成は、他のブロックの評価からは独立的に、かつ任意の時間において実施することができる。しかしながら、オフラインデータダイアグラム３４０は１つ以上のデータパイプラインまたはデータフローを表すため、典型的には、各下流データブロックの評価は、その下流データブロックを評価できるようになる前に、その上流データブロック（複数可）を評価することを必要とする（無論、受信側または下流データブロックが、単に個別のブロック評価プロセスに関して、試験またはダミーの入力データセットを受信する場合を除く）。事実、一部のシナリオにおいては、ユーザは、全体のオフラインデータダイアグラム３４０を総括して構成し、かつ／あるいは全体のオフラインデータダイアグラム３４０を、ブロック毎または部分毎に評価するのではなく、総括して評価することができる。
【０１７２】
２．Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ−オンラインデータモジュール
ここで図４Ｂに戻ると、データモデルのオフラインデータダイアグラムが、Ｄａｔａ  Ｓｔｕｄｉｏにおいて、ユーザの思い通りに完成及び評価された後、このオフラインデータダイアグラムは、相当するそのオンライン形態へと翻訳または変換することができる。オフラインデータダイアグラムをそのオンライン形態へと転換するためには、ユーザは、ナビゲーションバー２４２のオンライン切り替え部またはユーザ制御部２４８ｆを選択またはアクティブ化し、それによって、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎに、オフラインデータダイアグラムをそのオンライン相当物のデータダイアグラムへと転換させ、データモデルのオンラインデータダイアグラムをキャンバス２４５上に表示させればよい。ある特定のオフラインデータブロックは、オンライン相当物の定義を有する場合があり（例えば、「Ｌｏａｄ」データブロックのオフライン及びオンラインバージョン）、他のオフラインデータブロックは、異なるオンライン相当物を必要としない場合があるが、それでもなおオンラインデータモジュールに含まれ（例えば、「ＦｉｌｌＮａＮ」ブロックまたは「ＰＣＡ＿ＮＩＰＡＬＳ」ブロック）、一方で、更に他のオフラインデータブロックは、オンラインデータモジュールにおいては省略される（例えば、「Ｅｘｐｌｏｒｅ」ブロック）。オフラインダイアグラムのそのオンライン相当物への転換中に実施される、インフラストラクチャ及びアクションは、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓによって提供される。例えば、ユーザ制御部２４８ｆのアクティブ化は、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓを呼び出して、オフラインデータダイアグラムの、その対応するオンラインデータダイアグラムへの転換を実施させる。Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓがこの転換をいかに実施するかについてのより詳細な説明は、下のＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓの説明において提供される。
【０１７３】
データモジュールのオンラインデータダイアグラムがＤａｔａ  Ｓｔｕｄｉｏのキャンバス２４５上に呈示されるとき、ユーザは、オンラインデータモジュールを構成することができる。典型的には、オンラインデータモジュールの構成とは、例えば、オンラインデータモジュールを対応する入力データのデータソースに関連付けるバインディングを定義することによって、オンラインデータモジュールのために、入力データとして獲得される、プロセスの制御に関するライブプロセス制御データを示すことを含む。加えて、オンラインデータモジュールの構成には、オンラインデータモジュールによって生成される出力データが提供される場所（複数可）及び／またはコンシューマ（例えば、１つ以上のコンシューマＤＤＥ及び／またはアプリケーション、データ記憶、ファイル、ヒストリアン、プロセス制御デバイス、ルーチン、要素、構成要素等）を示すこと（例えば、バインディングを定義することで）が含まれ得る。オンラインデータモジュールのデータブロック、それらそれぞれのプロパティ、及び相互接続の構成及び／または修正は、ある実施形態においては、オフラインデータモジュールに関して上に考察した様式と類似する様式で実施される。
【０１７４】
ユーザがオンラインデータモジュールに伴う問題もしくは課題を特定した場合、または別様にオンラインデータモジュールの修正を所望する場合、ユーザは、例えば、オフライン切り替え部またはユーザ制御部２４８ｄを活用することで、オンラインデータモジュールをそのオフライン表現へとひっくり返すか、あるいは切り替えることができ、ユーザは更に、データモデルのオフラインデータダイアグラムを、上記のように修正及び評価することができる。後に、ユーザがオフラインデータダイアグラムをそのオンライン表現へとひっくり返すか、あるいは切り替えるとき、修正されたオフラインデータダイアグラムは、対応するデータモデルのオンラインデータダイアグラムへと転換する。
【０１７５】
図４Ｍは、図４Ｌの例示的オフラインデータダイアグラム３４０に対応するオンラインデータダイアグラム３４５を例証しており、図４Ｍは、図４Ａ、４Ｂ、４Ｆ〜４Ｈ、及び図４Ｌを同時に参照しながら下で考察される。図４Ｍに描写される例示的シナリオにおいては、ユーザは、図４Ｌのオフラインダイアグラム３４０はデータモデルを意図または所望の通りに定義しており、また、このデータモデルはオンラインプロセス制御システムへの展開にとって用意ができていると決定した。したがって、Ｓｔｕｄｉｏがオフラインデータダイアグラム３４０（例えば、図４Ｌに示されるもの）を閲覧している間に、ユーザはＤａｔａ  Ｓｔｕｄｉｏのオンライン切り替え部２４８ｆをアクティブ化し、それによってオフラインデータダイアグラム３４０を対応するオンラインデータダイアグラム３４５へと転換し、このオンラインデータダイアグラムは、図４Ｍに示されるように、Ｄａｔａ  Ｓｔｕｄｉｏのキャンバス２４５上に呈示される。この転換は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ＡｐｐｌｉｃａｔｉｏｎのＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓによって実施され、これ及び他の転換を実施するためにＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓによって活用される特定のアクション、メカニズム、及びアーキテクチャは、後の節においてより詳細に説明される。
【０１７６】
オンラインデータダイアグラム３４５及びオフラインデータダイアグラム３４０は同一のデータモデルを表しているが、２つのデータダイアグラム３４５、３４０のブロック及びワイヤのセットは異なっていることに留意されたい。例えば、ＬｏａｄＤＢ４Ｍブロック３４２ａの出力から始まり、Ｃｏｌｕｍｎｓ  Ｙブロック３４２ｅを横断し、Ｅｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅの入力において終結する、オフラインデータダイアグラム３４０のデータパイプラインは、オンラインデータダイアグラム３４５からは省略されている。これは、このデータパイプラインが、オフラインデータダイアグラム３４０においてはオフラインＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄを試験及び検証するために活用されており、今やＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄの有効性はユーザの思い通りに実証されているので、オンライン環境においては必要でないためである。しかしながら、一部の実施形態においては、例えば、ユーザがオンライン環境においてオンラインデータモデルの継続的試験及び検証を行うことを所望する場合、この検証データパイプラインをオンラインデータダイアグラム３４５に含むことを選択してもよい。
【０１７７】
オフラインデータダイアグラム３４０とオンラインデータダイアグラム３４５との間の別の差異はＬｏａｄＤＢ４Ｍブロックである。オフラインデータダイアグラム３４０においては、ＬｏａｄＤＢ４Ｍブロック３４２ａは、Ｄａｔａｂａｓｅ  ＭのオフラインデータソースＤａｔａｓｅｔ４からデータをロードするように構成される。一方で、オンラインデータダイアグラム３４５においては、ＬｏａｄＤＢ４Ｍブロック３４７ａは、プロセスプラント５内のオンラインストリーミングデータソース等のオンラインデータソースに接続できるブロックへと転換されている。ユーザは、ＬｏａｄＤＢ４Ｍブロック３４７ａを、所望のオンラインデータソースにバインドするように構成することができ、構成されたＬｏａｄＤＢ４Ｍブロック３４７ａのコンパイルが、バインディングをインスタンス化する。
【０１７８】
オンラインデータダイアグラム３４５においては、Ｃｏｌｕｍｎｓ  Ｘブロック３４７ｂは概して、そのオフライン形態３４２ｂと類似するか、あるいは同等である。しかしながら、先に考察したように、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃのオンライン形態は、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃがオンライン環境において動作するために必要な入力、すなわち、Ｃｏｌｕｍｎｓ  Ｘブロック３４７ｂの出力しか受信しない。
【０１７９】
加えて、オンラインデータダイアグラム３４５は、オフラインＥｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅに対する相当物を有しない。これは、オフライン環境におけるＥｘｐｌｏｒｅ４Ｍ＿Ｘ＿Ｙブロック３４２ｅの目的が、ユーザに、ドラフトデータダイアグラム３４０がユーザの目標をどれだけ良好に達成したかについての所見を提供することであったためである。オンラインデータダイアグラム３４５においては、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃの出力は、Ｄａｔａ  Ｃｏｎｓｕｍｅｒｓデータブロックの１種である、「Ｗｒｉｔｅ」データブロック３４７ｄに提供される。Ｗｒｉｔｅデータブロック３４７ｄは、オンライン環境におけるＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃのリアルタイム出力を、Ｗｒｉｔｅブロック３４７ｄの構成において特定されるように、ファイルまたはデータベースに対して書き込ませる。無論、ユーザがそのように所望する場合、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃの出力は、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃの出力を他のＤａｔａ  Ｃｏｎｓｕｍｅｒブロックの入力と相互接続することによって、データモデルの１つ以上の他のデータコンシューマに対して、追加的または代替的に提供することができる。例えば、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃは、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃの出力が、データ分析ネットワーク１１２に対して公開され、他のデータ分析アプリケーションによる使用にとって利用可能であるように、Ｐｕｂｌｉｓｈブロックに接続することができる。別の例においては、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃは、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃの出力がオンラインプロセス制御システムにおいて変化を引き起こすように、Ｃｏｎｖｅｒｔ２Ｃｏｎｔｒｏｌブロックに接続することができる。例えば、Ｃｏｎｖｅｒｔ２Ｃｏｎｔｒｏｌブロックは、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４７ｃの出力を、プロセスプラント５内のプロセス制御機能、ループ、またはアプリケーションに対する入力信号へと変換し、この入力信号を、対応するプロセス制御工業、要素、デバイス、または構成要素へと送達させるように構成することができる。
【０１８０】
３．データモジュールの展開
典型的には、オンラインデータモジュールは、オフラインデータモジュールの場合に可能であったように、非同期的には評価されない。むしろ、オンラインデータモジュールは、まず構成され（例えば、ライブデータソース及び／または１つ以上のデータコンシューマ／受信側にバインドされ）、次いで、連続的に実行され、オンラインプロセス制御システムと相互作用するように全体として展開される。ユーザは、例えば、ナビゲーションバー２４２の「展開」ユーザ制御部２４８ｊをクリックまたはアクティブ化して、それにより、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓにオンラインデータモジュールの展開を処理するように通知することで、データモジュールをオンラインプロセス制御システムに展開する。データモジュールを展開するために使用されるインフラストラクチャ及びアクションは、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓの説明においてより詳細に説明される。しかし、概して、オンラインデータモジュールが展開されるとき、オンラインデータモジュールは、例えば図４Ｉに例証されるような、評価されているオフラインデータモジュールの場合と同様の、コンパイル及び実行プロセスに従う。しかしながら、オンラインデータモジュールのターゲット環境（複数可）は、その対応するオフラインデータモジュールのターゲット環境（複数可）とは異なる場合があり、オンラインデータモジュールは、プロセス制御システムまたはプラント内のライブで他ソースにバインドされる。
【０１８１】
ある実施形態においては、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、「ワンクリック」展開をサポートする。すなわち、オフラインデータモジュールがユーザの思い通りに構成されているとき、ユーザは、このデータモジュールをそのオンライン表現へと変換し、ライブデータソースからデータを読み取り、かつ書き込む役目を担う、オンライン表現のデータブロックに関するバインディングを構成する必要がない。代わりに、「ワンクリック」展開中は、ユーザが開始すると、サブジェクトデータモジュールにとって必要とされる任意のバインディングが、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって自動的に決定及び構成される。例示的シナリオにおいては、ユーザは、例えば、ＤＣＳシステムの階層構造についての情報を回収する、Ｄａｔａ  Ｓｔｕｄｉｏによって提供されるダイアログボックスまたはウィンドウを用いることで、特定のＤＣＳコントローラに対して実行されるようにデータモジュールを割り当て得る。ユーザは、階層構造をブラウズし、データモジュールを適宜割り当て得る。続いて、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ（例えば、Ｄａｔａ  Ｓｔｕｄｉｏ及び／またはＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓ）が割り当てられたプロセス制御システム要素（このシナリオにおいては特定のＤＣＳコントローラ）を活用して、必要なバインディングを自動的に決定する。ワンクリック展開を実施するために使用される例示的インフラストラクチャ及びアクションは、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓの説明においてより詳細に説明される。
【０１８２】
オンラインデータ分析モジュールが成功裏に展開された後、その実行によって生成される任意の結果として生じる値（例えば、記述的、予測的、及び／または規定的）を、例えば、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ＡｐｐｌｉｃａｔｉｏｎのＤａｔａ  Ｄａｓｈｂｏａｒｄを介して、ユーザに対して示すことができる。ある実施形態においては、結果として生じる値は、少なくとも１つの予測値を含み、タグ（複数可）またはその予測値が適用されるプロセス制御要素についての、プロセス制御システム５によって生成される、対応するリアルタイムライブデータ値（複数可）もまた、予測値と併せて示され得る。
【０１８３】
Ｃ．Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄ
先に考察したように、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、オペレーションの第２のモード、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄを含む。Ｄａｓｈｂｏａｒｄは、典型的には、（ｉ）評価されているオフラインデータモジュール（例えば、ドラフトデータモデル）、及び／または（ｉｉ）オンラインプロセス制御システムまたはプラントに展開されているオンラインデータモジュールであるモジュールを閲覧及び／または管理するために、ユーザによって活用される。視覚的及び他の表現を用いて、Ｄａｓｈｂｏａｒｄは、ユーザに、オフラインデータモデルの評価に対応するステータス及び他の情報の所見、ならびに展開されたオンラインデータモジュールの所見及びオンラインデータモジュールによって生成されているリアルタイムまたはライブ情報を提供する。概して、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄモードは、ユーザに、ユーザがオンライン及びオフラインデータモジュールを監視及び管理できるインターフェイスを提供する。ユーザはまた、任意のオフラインデータモジュールの評価及び任意のオンラインデータモジュールの実行を、Ｄａｓｈｂｏａｒｄから終結することもできる。概して、必ずしもそうではないが、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄに表示される情報のうちの少なくとも一部は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ＡｐｐｌｉｃａｔｉｏｎのＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓによって、Ｄａｓｈｂｏａｒｄ３５０に提供される。
【０１８４】
図４Ｎ−１は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ＡｐｐｌｉｃａｔｉｏｎのＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄによって呈示される、例示的ユーザインターフェイス３５０を描写する。例示的Ｄａｓｈｂｏａｒｄユーザインターフェイス３５０の第１の部分３５２は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって現在監視されているオンラインデータモジュール３５５の数の指標、及びオンラインデータモジュール３５５がそれに基づいて動作している、ライブデータストリーム３５８の数の指標等、現在のデータ分析の概要情報を提供する。先に考察したように、ライブデータストリーム３５８は、１つ以上の工業プロセスを制御するオンラインプロセス制御プラントまたは環境５から結果として生じるリアルタイムデータを連続的に生成している１つ以上のデータソースから受信され、実行中のオンラインデータモジュール３５５が、このライブデータストリーム３５８を受信するように構成されている。データ分析の概要情報はまた、その評価が現在ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって監視されている、オフラインデータモジュール３６０の数の指標も含む。一部の実施形態においては、Ｄａｓｈｂｏａｒｄユーザインターフェイス３５０は、オンラインまたはオフラインに関わらず、監視されているデータ分析モジュールに関連する、１つ以上の他の通知または他の情報３６２を含む。
【０１８５】
ユーザが概要制御部３５５、３５８、３６０、３６２のうちの１つをクリックするか、あるいは別様にアクティブ化すると、その選択に対応する追加的な要約情報が、Ｄａｓｈｂｏａｒｄ３５０の第２の部分３６５に呈示される。図４Ｎ−１においては、ユーザは、現在実行中のオンラインデータモジュール３５５についての要約情報を閲覧することを選択しており、これは、現在は２つ、すなわち参照３６８によって示されるＤｉａｇｒａｍ２及び参照３７０によって示されるＤｉａｇｒａｍ３が存在する。各実行中オンラインデータモジュール３６０、３７０について、Ｄａｓｈｂｏａｒｄ３５０の第２の部分３６５は、そのそれぞれの要約情報を示し、モジュールの名称３７２、モジュールが展開された開始時間３７５、最も直近の時間間隔にわたるモジュールの出力の傾向指標３７８（図４Ｎ−１に示されるように、これはグラフィカルであり得る）、最も直近の最新の予測もしくは予測値（複数可）３８０、及び／または他の情報（図示せず）を示す。特に留意すべきは、Ｄａｓｈｂｏａｒｄ３５０において、各オンラインデータモジュール３６８、３７０の傾向指標３７８は、それぞれのデータモジュール３６８、３７０の連続的に生成される出力を反映するように連続的にアップデートされ、それにより、ユーザがオンラインデータモジュールの実行及びその連続的に生成される結果をリアルタイムで監視することを可能にする。
【０１８６】
加えて、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄ３５０は、ユーザが、任意のデータモジュール３６０、３７８と関連付けられる任意の要約情報をクリックして、更なる詳細を、例えばポップアップウィンドウ、ダイアログボックス、または他の好適な表示メカニズム（図示せず）において閲覧することを可能にする。例えば、ユーザがＤｉａｇｒａｍ２  ３６８のＮａｍｅをクリックする場合、Ｄａｓｈｂｏａｒｄ２５０は、Ｄｉａｇｒａｍ２  ３６８のオンラインデータモジュールダイアグラムと、Ｄｉａｇｒａｍ２  ３６８がバインドされている１つ以上の特定のデータストリーム３５８の指標とを呈示し得る。ユーザがＤｉａｇｒａｍ２  ３６８のＳｔａｒｔ情報をクリックする場合、Ｄｉａｇｒａｍ２  ３６８の作成者の指標、Ｄｉａｇｒａｍ２  ３６８を展開したユーザ、及び／またはＤｉａｇｒａｍ２  ３６８の所有者が呈示され得る。Ｄｉａｇｒａｍ２  ３６８のＴｒｅｎｄ３７８情報をクリックすると、ユーザは、例えば、閲覧する時間間隔の延長または短縮、傾向情報の、別の種類のビジュアリゼーション（例えば、棒図表、パイ図表、散布図等）への変換、所与の間隔にわたる傾向データに関する統計（例えば、平均、ローリング平均、最大値、最小値等）の適用及び／または獲得等によって、Ｄｉａｇｒａｍ２  ３６８の出力データ傾向を操作及び探査することが可能になる。同様に、Ｄｉａｇｒａｍ２  ３６８のＬａｓｔ  Ｐｒｅｄｉｃｔｉｏｎ３８０情報をクリックすると、ユーザは、例えば、最新の予測の時間及び予測がなされる頻度の閲覧、最新の予測と現在のライブデータ値との比較等によって、最新の予測値（複数可）を操作及び探査することが可能になる。
【０１８７】
ユーザが、ユーザ制御部３６０を選択して現在実行中のオフラインデータモジュール（図４Ｎ−１の例示的シナリオにおいては、これは存在しない）を閲覧すると、オフラインデータモジュールに対応する追加的な要約情報が、Ｄａｓｈｂｏａｒｄ３５０の第２の部分３６５に呈示される。概して、オフラインデータモジュールについての要約情報は、オンラインデータモジュールのものと同様であるが、関連付けられるライブデータストリームを示す代わりに、オフラインデータモジュールについての要約情報は、オフラインデータがそれに基づいて実行中である、試験データファイル（複数可）、またはオフラインデータソース（複数可）（例えば、試験ツール、デバイス、及び／または環境）によって生成されるデータストリームを示し得る。加えて、オフラインデータモジュールについての要約情報は、その実行の現在のステータス、状態、及び／または進行を示し得る。
【０１８８】
一部のシナリオにおいては、ユーザは、Ｄａｓｈｂｏａｒｄから（Ｄａｔａ  Ｓｔｕｄｉｏからではなく）オフラインデータモジュールを構成及び／または展開することができる。例えば、ユーザは、Ｄａｓｈｂｏａｒｄからオフラインデータモジュールの評価を監視している場合があり、そのオフラインデータモジュールが、その評価を成功裏に完了する。ユーザは、Ｄａｓｈｂｏａｒｄのユーザ制御部（図示せず）をアクティブ化し得る。このユーザ制御部を介して、ユーザは、データモジュールを、ライブデータソース（複数可）と、オンラインデータモジュールがそれに基づいて実行される、ライブデータソース（複数可）によって生成されるデータとを参照するように構成することができる。オンラインデータモジュールの、データソース（複数可）にバインドするというこの構成は、Ｄａｔａ  Ｓｔｕｄｉｏからではなく、Ｄａｓｈｂｏａｒｄから開始されるという点を除いて、上に説明された構成と類似する。あるいは、ユーザは、Ｄａｓｈｂｏａｒｄから、オフラインデータモジュール用のワンクリック展開を活用してもよい。
【０１８９】
ユーザが、ユーザ制御部３５８を選択して実行中のオンラインデータモジュールに現在バインドされているオンラインデータストリームと関連付けられる情報（図４Ｎ−１の例示的シナリオにおいては、これは３つ存在する）を閲覧すると、オンラインデータストリームに対応する追加的な要約情報が、Ｄａｓｈｂｏａｒｄ３５０の第２の部分３６５に呈示される（図示せず）。各ライブデータストリームについての要約情報は、データストリームの識別子、データストリームがそこから受信されるデータソースの指標、対応するプロセス制御システムのタグ、もしくはライブデータソースの他の従来型のプロセス制御システム識別子、データストリームのサブスクリプション（複数可）及び／もしくは公開についての情報、ライブデータストリームに基づいて現在実行中である１つ以上のオンラインデータモジュールの指標、ライブデータストリームの連続的にアップデートされるビジュアリゼーション（例えば、線グラフ、棒図表、散布図等、及び／もしくはその基本統計）、ならびに／または他の情報を含み得る。
【０１９０】
図４Ｎ−１に描写される例示的シナリオにおいて特に留意すべきは、データストリーム概要３５８が、現在オンラインデータモジュールがそれに基づいて動作しているライブデータストリームが３つ存在することを示している一方で、オンラインデータモジュール概要３５５は、実行中のオンラインモジュールは２つしか存在しないことを示していることである。したがって、実行中の２つのオンラインモジュール３６８、３７０のうちの１つは、ライブデータストリームのうちの２つに基づいて動作している。ユーザは、この関係性を、それぞれのモジュール３６８、３７０がバインドされているデータストリームの指標を提供する、各オンラインデータモジュール３６８、３７０の詳細を閲覧するようにナビゲートすることによって、あるいは各データストリーム３５８に基づいて動作している実行中のオンラインデータモジュールの指標を提供する、各データストリーム３５８の詳細を閲覧するようにナビゲートすることによって発見し得る。
【０１９１】
図４Ｎ−２は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ＡｐｐｌｉｃａｔｉｏｎのＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄによって呈示され得る例示的ユーザインターフェイス３８２を描写する。ある実施形態においては、ユーザインターフェイス３８２は、図４Ｎ−１に示されるユーザインターフェイス３５０の第２の部分３６５に含まれる。ある実施形態においては、ユーザインターフェイス３８２は、フルスクリーンビューである。
【０１９２】
ユーザインターフェイス３８２は、１つ以上のタイルまたはカード３８５ａ〜３８５ｊを含み、これらの各々は、それぞれの実行中のオンラインデータモジュールに対応し、これらは集合的に、カード３８５ｘのパレットまたはデッキと呼ばれる場合がある。パレット中のカード３８５ｘの各々は、図４Ｎ−１の実行中オンラインデータモジュール３６０、３７０に関して表示されていた情報と同様の情報、例えば、モジュールの名称、モジュールが展開される開始時間、最も直近の時間間隔にわたるモジュールの出力の傾向指標、最も直近の最新の予測もしくは予測値（複数可）、及び／または他の情報を含み得る。これもまた実行中オンラインデータモジュール３６０、３７０に関する表示と同様に、カード３８５ｘの各々の傾向指標は、そのそれぞれのオンラインデータモジュールの連続的に生成される出力を反映するように連続的にアップデートされ、それにより、ユーザがその実行及び連続的に生成される結果をリアルタイムで監視することを可能にする。
【０１９３】
カード３８５ｘの各々は、ユーザの所望に応じて、リサイズ可能かつ移動可能である。ある実施形態においては、特定のカード３８５ｘのサイズは、その特定のカードがフォーカスされるときに増加する。カード３８５ｘは、ユーザがその特定のカード３８５ｘをクリックするとき、その特定のカード３８５ｘ上でホバリングするとき等、手動でフォーカスされ得る。追加的または代替的に、カード３８５ｘは、特定のデータモジュールが緊急の注意を必要とするとき（例えば、予測値が閾値を超えるとき、データモジュール自体がユーザ入力またはユーザ介入、カード３８５ｘの中での状態の重要度ランキング等を必要とするとき）、自動的にフォーカスされ得る。自動的に生成される、注意を必要とする他の指標は、ユーザインターフェイス３８２において、例えば、特定のカード３８５ｘに対する、何らかの他の処理のハイライトまたは提供、カード３８５ｘのセットの、それらそれぞれの緊急度に従ったサイズ調整、特定のカード３８５ｘの、パレットの前景または前面への移動、カード３８５ｘの、注意の優先度の順位による配列によって示され得る。ある実施形態においては、ユーザは、特定の状況においてカード３８５ｘに対して自動的に適用される特定の処理を定義し得る。
【０１９４】
ここで、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎのデータブロック定義ライブラリ２５２に記憶されているデータブロック定義２５５に戻ると（例えば、図４Ｃに示されるような）、ライブラリ２５２に記憶されているデータブロック定義は、そのスタートアップまたは初期化中に、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって動的に発見され得る。ある実施形態においては、データブロック定義は、ＪＳＯＮファイルもしくはドキュメント、または他の好適なフォーマット等の軽量データ交換フォーマットを用いて定義される。特定のデータブロックの定義ファイルまたはドキュメントは、ブロック定義の名称を含み、その特定のデータブロックを定義するブロックプロパティ及びコネクタについて詳述する。一部の場合においては、特定のブロック定義は、オフライン表現についての定義、及びオンライン表現についての定義を提供し得る。
【０１９５】
ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは継続的かつ動的にブロック定義を発見し得るため、追加的なブロック定義（例えば、カスタムデータブロック、複合データブロック、及び／または他のデータブロックに関する）が、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎが実行中の任意の時間において、ライブラリ２５２に追加され得る。ある実施形態においては、追加的なブロック定義は、本明細書においては「データブロック定義ラッパ」と呼ばれるユーティリティアプリケーションによって生成される。例えば、データブロック定義ラッパは、図４Ｋに関して先に説明したように、ユーザがカスタムまたは複合データブロックを保存するときに呼び出され得る。ブロック定義ラッパが実行されるとき、それは、追加的なブロック定義のインスタンスを作成し、追加的なブロック定義を定義する、対応するＪＳＯＮドキュメントまたは類似物を作成及び記憶させる。例えば、追加的なブロック定義の作成されたインスタンスは、ＪＳＯＮドキュメントを生成し、それをライブラリ２５２に記憶する。図４Ｋを例示的シナリオとして参照すると、ユーザが複合ブロック定義３３８を保存すると、ブロック定義ラッパが実行されて、複合ブロック定義３３８についてのＪＳＯＮドキュメントまたは類似物を生成及び記憶させる。
【０１９６】
データブロック（オフラインであるかオンラインであるかに関わらず）の構成中、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、ユーザがデータブロックを成功裏に構成及び使用するのを補助するために必要な構成エクスペリエンスを達成するために、何らかの機能性（例えば、ビジネスロジック）を実施する必要があり得る。ブロック定義はＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって動的に発見されるため、この機能性は、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ自体には埋め込まれていない。したがって、ある実施形態においては、特定のデータブロックに対して特異的である、任意の関連付けられた機能性もまた、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎが初期化されるときに動的にロードされ得る。続いて、特定のデータブロックに対応する、動的にロードされた機能性に対する参照は、特定のデータブロックのブロック定義に維持され、その特定のブロックのブロック定義が構成されるとき、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎによって使用される。ブロック定義と関連付けられる機能性とに関する追加的な詳細は、本出願の後の節において提供される。
【０１９７】
プロセス制御システムと統合された工業プロセス監視及び分析システム
図１〜３及び４Ａ〜４Ｎ−２の考察において見られるように、分散型工業プロセスパフォーマンス監視及び／または分析システム、すなわちＤＡＳ１００は、工業プロセスプラトに関する、データ分析構成、データモデリング、データモデル実行、データビジュアリゼーション、及びストリーミングサービスをサポートするプラットフォームを提供する。先に考察したように、監視及び分析システム１００の様々なノードがプロセス制御システムまたはプラント５内に埋め込まれるものの、典型的には、分析プラットフォーム１００のデータ通信ネットワーク１１２は、プロセスプラント５の既存のＤＣＳ、ＰＬＳ、衛生監視、及び他のシステムの外側に（また、それらから独立して）存在する。ある例示的構成においては、データ分析ネットワーク１１２は、プロセスプラント５の上にオーバーレイされ、それによって、プロセスプラント５の従来型のプロセス制御通信ネットワーク１０、７０等の大部分または全てからネットワーク１１２は分離される。従来型のプロセス制御通信ネットワークは、プラント５のプロセス及びオペレーションの制御部を制御、管理、及び／または監督するために、プロセス制御データの送信を継続するが、一方で、データ分析ネットワーク１１２は、プロセスプラント５のオペレーションに関する知識、例えば記述的知識、予測的知識、及び／または規定的知識の発見のために、分析データ（これは、従来型プロセス制御通信ネットワークを通じて送信されるデータのコピーを含み得る）を送信する。データ分析システム１００のアーキテクチャは、データ分析システム１００を、既存のレガシであるプロセスプラント５に容易に追加または統合させる。
【０１９８】
データ分析システム１００によって発見される、プロセスプラント５についての知識は、プラント５のパフォーマンスを上昇させるため、ならびに故障、破損、及び他の望ましくない状態の発生を減少させるために、プロセスプラント５のパラメータ、設備、オペレーション、及び他の部分を修正するように活用され得る。有利なことに、データ分析システム１００は、発見される知識がプロセスプラント５の現在のオペレーションを記述、予測、及び／または規定するように、プロセスプラントの現在のオンラインオペレーションに対応してリアルタイムでプロセスプラント５についての知識を発見する。したがって、データ分析システム１００及びプロセスプラント５は、制御ループを形成して、プロセスプラント５のパフォーマンスを制御及び最適化する。
【０１９９】
プロセスプラント５のパフォーマンスを制御及び最適化する制御ループの例示的高次ブロックダイアグラム４００が、図４Ｏに例証される。図４Ｏに示されるように、オンラインプロセスプラント５は、様々な種類の制御データ４０２を生成し、それに基づいて動作し、従来型のプロセス制御通信ネットワーク（例えばネットワーク１０、７０等）を通じて制御データを通信して、１つ以上の工業プロセスを制御し、プロセスプラント出力４０５を生成する。分散型工業プロセスパフォーマンス監視／分析システム１００は、プロセスプラント５が出力４０５を生成するように１つ以上のプロセスを制御した結果として生成される分析データ４０８を取り込む埋込式分散型データエンジン１０２ｘを介して、プロセスプラント５に接続され、それと統合される。先に考察したように、取り込まれる分析データ４０８は、一次及びより高次のプロセス制御データ４０２、ならびにＤＤＥ１０２ｘによってローカルで実施される分析機能の結果／出力、ならびに／またはデータ分析システム１００のＤａｔａ  Ｓｔｕｄｉｏを介して開発されたオフライン及びオンラインデータ分析モジュールによって実施される分析機能の結果／出力を含み得る。一部の場合においては、取り込まれる分析データ４０８は、Ｄａｔａ  Ｓｔｕｄｉｏを介して生成される新規の分析機能、及び／またはＤＤＥ１０２ｘによって自律的に生成される新規の分析機能を含む。
【０２００】
データ分析システムまたはプラットフォーム１００は、分析データ４０８を受信し、生成し、通信し、それに基づいて動作して、分析出力４１０を生成する。分析出力４１０は、プロセスプラント５の現在のオペレーションを記述する知識、プロセスプラント５の現在のオペレーションを前提とした場合の、故障、破損、時間間隔、パフォーマンス、事象等の発生を予測する知識、ならびに／またはプロセスプラント５の現在のオペレーションを前提とした場合の、現在のプラントオペレーションの望ましくない特性を軽減するため、及び／もしくは望ましくない、予測される故障、破損、時間間隔、パフォーマンス、事象等の発生の可能性を軽減するために取られ得る１つ以上の規定的アクションを規定する知識等の、プロセスプラント５について発見された知識を含み得る。一部の実施形態においては、発見された知識４１０は、分析データ４０８事態についての知識を含む。例えば、発見された分析知識４１０は、異なるオフラインデータモジュールを評価するために活用され得る最適なオフラインデータセット、データエンジニアによって繰り返し使用されてきており、新しいデータ分析ユーザ手順として定義される一連の工程、新しいデータ分析技法として定義されるデータブロックの新しい構成等を含み得る。実際、精製プロセスプラントに統合されたプロトタイプのデータ分析システム１００の試験中、工業プロセスプラント用の新しいデータ分析技法が制御ループ４００によって発見されたのだが、これについては下の後の節において説明する。
【０２０１】
分析出力４１０に含まれる発見された知識の少なくとも一部は、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ等の、Ｈｕｍａｎ−Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ（ＨＭＩ）４１２に提供され得る。ＨＭＩ４１２を介して、ユーザは、データ分析システム１００によってプロセスプラント５に関して生成された、発見された知識４１０を探査し得る。一部の場合においては、発見された知識４１０の探査は、ユーザがＤａｔａ  Ｓｔｕｄｉｏを活用して、追加的なデータ分析モジュールを作成及び実行して、追加的な探査についての追加的な発見された知識４１０を生成することを含む。ある点において、発見された知識４１０の主体に基づいて、ユーザは、オンラインプロセスプラント５の１つ以上の値、パラメータ、設備、構成要素、制御ループ、及び／または他の現在のオペレーションに対して１つ以上の変更４１８を行うことができ、それにより、プロセスプラント５のパフォーマンス及び出力４０５を最適化し、かつ／または故障、破損、及び他の望ましくない状態の発生を予防または阻止することができる。
【０２０２】
一部の状況においては、分析出力４１０に含まれる発見された知識の少なくとも一部は、プロセスプラント５に対して直接提供されて、図４Ｏにおいて矢印４２０で表されるように、１つ以上の規定的変更をもたらすか、あるいは行う。例えば、発見された知識４１０は、設定点に対する変更、コントローラの構成に対する変更、プロセス制御メッセージの優先度に対する変更、または何らかの他の値、パラメータ、構成等に対する変更を含む、規定的アクションを含み得る。データ分析システム１００は、いかなるユーザ介入４１８も必要とすることなく、この変更を自動的かつ直接ダウンロードするか、あるいは別様にこの変更をプロセスプラント５において行うことができ、それにより、発見された知識４１０に基づいて、プロセスプラント５のパフォーマンス及び出力４０５を自動的に最適化し、かつ／または故障、破損、及び他の望ましくない状態の発生を予防または阻止することができる。分析システム１００が現在の分析データ４０８を処理し、プロセスプラント５の現在のオペレーションに基づいて、発見された知識４１０を生成する際、制御ループ４００のこの脚は、オンラインプロセスプラント５を自動的にアップデートして、その現在のオペレーションをリアルタイムで改善することが留意される。したがって、規定的アクションを計算、決定、及び実施するのに数時間または数日間すら必要とする既存の分析技法とは対照的に、分析システム１００によって生成される規定的アクションは、プラント５の現在の運転状態について最適化されており、プロセスプラント５に対して直ぐに適用され、一部の場合においては、任意のユーザが切迫した、望ましくないまたは所望される状態に気付く前に適用される。
【０２０３】
無論、プロセスプラント５内における規定的アクションの全体としての最適な実施のためには、制御ループ４００は、自律的脚部４２０及びＨＭＩ制御脚部４１８の両方を必要とする。例えば、置換バルブ、センサ、または他の構成要素の設置等、一部の規定的アクションは、人間の介入を必要とする。
【０２０４】
先に考察したように、データ分析プラットフォーム１００は、分析データが、複数の埋込式分散型データエンジン（ＤＤＥ）１０２ｘの間でストリーミングされることを可能にする。プロセスの制御の結果として、プロセスプラント５によって生成される任意の種類の一次データがストリーミングされ得る。例えば、プロセスを制御する目的のために、従来型のプロセス制御通信ネットワークを介して典型的には送信される、プロセス制御デバイス（例えば、コントローラ、Ｉ／Ｏカード、フィールドデバイス等）によって生成される信号に含まれるプロセス制御データもまた、データ分析の目的のために、データ分析ネットワーク１１２においてストリーミングされ得る。したがって、プロセス制御信号、センサ信号等に含まれる内容またはデータは、コピー及び／または複製され、データ分析ネットワーク１１２を通じてストリーミングされ得る。更に、従来型のプロセス制御通信ネットワークを介して生成及び送信される、二次（またはより高次の）プロセス制御データ（例えば、プロセス制御データベースまたはヒストリアン内にヒストライズされるデータ、プロセス制御構成、プロセス制御ユーザインターフェイスコマンド、プロセス制御ネットワーク管理信号、及びプロセスの制御の結果として、従来型のプロセス制御通信ネットワークを介して従来的には送信及び受信される任意の他の信号）が、データ分析の目的のために、データ分析ネットワーク１１２においてストリーミングされ得る。加えて、データ分析ネットワーク１１２は、計算されたデータ、または従来型のプロセス制御データ及び／もしくは計算される分析データに対して実施された分析機能もしくは技法の結果をストリーミングし得る。
【０２０５】
結果的に、データ分析プラットフォーム１００は、プロセスプラント５のデータソースにローカルでバインドすることによって、ならびに／またはプロセスプラント５内のデータソース付近でデータ分析サービスまたは機能性を提供することによって、部分的にプロセスプラント５と統合するが、一方で同時に、より大規模の予測及び最適化を提供する。外側ループ予測及び最適化をサポートするために必要であるデータのみが、分析システム１００の、より高次の／より有能な分析サーバ及びクラウドプラットフォームに通信される必要がある。
【０２０６】
先に考察したように、データ分析システム１００の複数のＤＤＥ１０２ｘのうちの一部は、プロセスプラント５内の物理的デバイスに埋め込まれる。例えば、複数のＤＤＥ１０２ｘのうちの一部は、各々、それぞれのプロセス制御デバイス（例えば、コントローラ１１、Ｉ／Ｏカード２６、２８、フィールドデバイス１５〜１６、１８〜２１、４２Ａ、４２Ｂ、４４等）ならびに／またはそれぞれのネットワークルーティング及び管理デバイス（例えば、ゲートウェイ３５、７５、７８、アダプタ５２ａ、ルータ５８、アクセスポイント５５ａ、７２等）と一体である。ある実施形態においては、プロセスプラント５の一元的デバイスまたは構成要素に統合されるのではなく、ＤＤＥは、スコープ、監視装置、またはボワヤ（ｖｏｙｅｕｒ）として従来型プロセス通信リンクまたはネットワーク（例えば、ネットワーク１０、７０、ＰＬＳネットワーク、安全衛生監視システム等）に接続される自立型デバイスであってもよく、データ分析を目的としてデータ分析ネットワーク１１２を通じてストリーミングするために、従来型プロセス通信リンクまたはネットワークを介して送信されている、選択されたプロセス制御データをコピー／複製し得る。
【０２０７】
一部のシナリオにおいては、２つ以上のＤＤＥが、データソースが登録及び接続するローカルデータ分析クラスタを形成し得、このローカルデータ分析クラスタを介して、登録されたデータソースで生成された分析データが、データ分析ネットワーク１１２に、分析データとして受信され得る。ある例においては、ＤＤＥのセットは、ローカルクラスタを形成し、そのローカルクラスタの存在を告知する。ローカルクラスタは、データ分析ネットワーク１１２を介して相互接続される複数のＤＤＥをそのローカルクラスタが含んでいたとしても、データ分析ネットワーク１１２の一元的ノードまたは単一のＤＤＥインスタンス１５０として現れる。新しいデータソースがプロセスプラント５の構内においてアクティブ化または起動される際、データソースは、ローカルクラスタの告知をスキャンまたは探す。データソースはローカルクラスタの告知を検出し、ローカルクラスタに登録し、それによってデータ分析ネットワーク１１２に接続し得る。続いて、登録されたデータソースは、分析システム１００から、（例えば、それらのローカルクラスタを介して）帯域幅を要求し得、それらのローカルクラスタに、データ分析ネットワーク１１２の別のノードに、あるいは分析システム１００に直接、データを公開し得る。ローカルクラスタは分散型データエンジン１５０のインスタンスとして現れるため、ローカルクラスタは、ローカルで生成された分析データ（例えば、登録されたソース及び／または他のソースからの分析データ）を、それぞれのビッグデータレシーバ１６０を介して受信し、それぞれのローカルの永続ストレージ１５５に、ローカルで生成された分析データを記憶する。加えて、ローカルクラスタは、例えばそれぞれのビッグデータ要求サービサ１６５を介して、要求アプリケーション（例えば、別のデータ分析アプリケーション、データモジュール、ユーザインターフェイス、Ｄａｔａ  Ｓｔｕｄｉｏ、別のアプリケーション等）に、記憶された分析データの少なくとも一部を提供し得る。一部の場合においては、ローカルクラスタは、例えばそれぞれのビッグデータ要求アナライザ１７０を介して、登録されたデータソースから受信した、記憶されているデータ、及び／またはデータ分析ネットワーク１１２内でストリーミングされる他のデータに対して、それぞれのローカルデータ分析機能を実施し得る。ローカルデータ分析機能の結果または出力は、それぞれのビッグデータストレージ１５５にローカルで記憶され、かつ／あるいは、例えばローカルクラスタのそれぞれの１つ以上のデータ分析ネットワークインターフェイス１７５を介して、ローカルクラスタの外部の１つ以上の他のＤＤＥ、例えば別のローカルＤＤＥもしくはローカルクラスタ、集中型データクラスタ、またはサブスクライブしているアプリケーションへとストリーミングされ得る。
【０２０８】
一部の実施形態においては、ローカルクラスタは、それら自身を、より高次の分析データを受信及び記憶し、それぞれのより高次のデータ分析機能を実施する、より集中型のクラスタに登録する。例えば、ある特定の集中型クラスタ（例えば、リージョナルクラスタ）は、プラント５の特定の領域内の全てのローカルクラスタから、ストリーミングされるデータを受信し得、それに対してデータ分析を実施し得る。別の例においては、ある特定の集中型クラスタは、プラント５内の特定の種類の構成の全ての制御ループから、ストリーミングされるデータを受信し得、それに対してデータ分析を実施し得る。ローカルクラスタと同様に、集中型クラスタは、データ分析ネットワーク１１２内のＤＤＥ１５０の単一のノードまたはインスタンスとしての見かけを有する。
【０２０９】
結果的に、ローカリゼーションの様々な層または次元におけるＤＤＥ及び／またはＤＤＥのクラスタを提供するという、分散型工業プロセスパフォーマンス監視及び分析システム１００の能力は、プロセスプラント５のデータンソース付近における故障検出及び予測の実行を可能にし、それにより、オンラインデータソースによって生成されるリアルタイムデータに対応する、リアルタイム故障検出及び予測を提供する。そのような多層またはクラスタ化アーキテクチャはまた、システム１００全体にわたる分析データのストレージを可能にし、実際、分析システム１００はプロセスプラント５内に埋め込まれた部分を含むため、プロセスプラント５全体にわたる分析データのストレージを可能にする。更に、データ分析システム１００は、任意のＤＤＥにおいて記憶されているデータにアクセスする能力を提供し、分析構成、診断、ならびにパフォーマンス、故障、及び破損の監視に関する集中型システムを提供する。
【０２１０】
ある実施形態においては、１つ以上の集中型クラスタが、ユーザまたはシステムアドミニストレータが、複数のＤＤＥ１０２ｘからの分析データのバックアップまたはヒストライズに関する規則を確立するための集中ロケーションを提供する。ある例においては、１つ以上の集中型クラスタは、プロセスプラント５の構内に配置され、プロセスプラント５を全体として処理する。別の例においては、１つ以上の集中型クラスタは、クラウドに配置またはホストされ、プロセスプラント５を全体として処理する。一部の構成においては、プロセスプラント５のバックアップまたはヒストライズを提供する集中型クラスタ（複数可）は、他のプロセスプラントもサービスする。概して、先に考察したように、分析データは、そのそれぞれのビッグデータ記憶領域１５５の各ＤＤＥまたはクラスタにおいて永続的に記憶される。一部の場合においては、ＤＤＥまたはクラスタにおいて受信された、またはそれによって生成された一部の分析データは、より迅速なアクセスのために、そのＤＤＥまたはクラスタにおいてキャッシュされ得る（例えば、サブスクライバの数、公開または送信の頻度等の１つ以上の判定基準に基づいて）が、概して、全てのローカルの分析データが、ＤＤＥまたはクラスタにおける永続的ストレージ１５５に移動される。定期的に、あるいは予め定義された時間において、各ＤＤＥにおいて永続的に記憶されている分析データは、例えば、データ分析ネットワーク１１２を介してアクセス可能である集中型分析データヒストリアンにおける、長期データ分析ストレージに、バックアップ、保存、またはヒストライズされ得る。例えば、データ分析ヒストリアンは、プラント全体のデータ分析ヒストリアンであってもよく、ならびに／またはクラウドにホストされてもよい。しかし、典型的には、データ分析ヒストリアンは、どのプロセス制御データヒストリアンからも独立し、分離されている。１つ以上の集中型クラスタにアクセスするユーザインターフェイスを介して、ユーザまたはシステムアドミニストレータは、各特定のＤＤＥ記憶領域１５５がどのくらいの頻度でバックアップされるか、バックアップはいつ起こるか、分析データがどこにヒストライズされるか等を示す、規則のセットを定義することができる。
【０２１１】
ある実施形態においては、１つ以上の集中型クラスタが、ユーザまたはシステムアドミニストレータが、データ分析システム１００のクラスタ、ノード、及び／またはＤＤＥ１０２ｘ内における分析データの複製に関する規則を確立するための集中ロケーションを提供する。例えば、複製規則のセットは、どの特定の分析データが、データ分析ネットワーク１１２のどの特定のノード内において複製されるか、ならびにどのくらいの頻度で特定の分析データが特定のノード内においてアップデートされるかを定義することができる。例えば、複製規則のセットは、ノードＢ〜Ｄがそれらそれぞれのデータ分析機能を実施する際に、複製された結果を利用可能であるように、どのくらいの頻度で、ノードＢ〜Ｄにおいて、ノードＡによって実施された分析機能Ａの結果を（例えば、ストリーミングによって）複製するかを定義し得る。ヒストライズ及びバックアップの規則と同様に、複製規則のセットは、１つ以上の集中型クラスタにアクセスするユーザインターフェイスを介して、ユーザまたはシステムアドミニストレータによって定義され得る。例えば、システムアドミニストレータは、ユーザインターフェイスを活用して、複製規則のセットを管理することができ、複製規則のセットは、１つ以上の集中型クラスタにおいて記憶され得る。分析データの複製の管理を提供する１つ以上の集中型クラスタは、分析データのバックアップ／ヒストライズの管理を提供するクラスタのセットと同じであってもよく、あるいは異なるクラスタのセットであってもよい。
【０２１２】
ある実施形態においては、１つ以上の集中型クラスタは、ローカルクラスタ、他の集中型クラスタ、及び／または個々のＤＤＥ１０２ｘが活用できる、ロケーションサービス、ストリーミングサービス（例えば、図１のストリーミングサービス１１５）、データディクショナリ、及び／または他の機能性を提供して、それらの間での分析データの交換を確立する。ロケーションサービス、ストリーミングサービス、データディクショナリ、及び／または他の機能性を提供する１つ以上の集中型クラスタは、分析データ複製の管理及び／または分析データバックアップ／ヒストライズの管理を提供するクラスタのセットと同じであってもよく、あるいは異なるクラスタのセットであってもよい。システムアドミニストレータまたはユーザは、ユーザインターフェイスを活用して１つ以上の集中型クラスタにアクセスして、クラスタ間及びデータ分析ネットワーク１１２のノード間における分析データの交換を確立及び提供するために使用される、サービス、ディクショナリ、及び他の機能性を管理し得る。
【０２１３】
図４Ｐは、ローカライズしたデータ分析サービスを提供する例示的方法４５０を描写する。ある実施形態においては、分散型データエンジン１０２ｘまたはＤＤＥのクラスタは、方法４５０の少なくとも一部分を実施する。概して、方法４５０の少なくとも一部分は、システム１００等の分散型工業パフォーマンス監視及び／または分析システムの任意の部分によって実施され得る。実際、方法４５０は、本明細書に記載されるシステム、装置、デバイス、及び／または技法のうちのいずれかの任意の部分を用いて行われ得る。しかし、考察の容易さのために、方法４５０は、一元的なＤＤＥインスタンス１５０として現れる、分析システム１００の１つ以上のＤＤＥ１０２ｘのクラスタに関して下で説明される。しかしながら、これは多数の実施形態のうちの１つであるに過ぎず、限定的であることを意図しない。
【０２１４】
例示的方法４５０は、クラスタによる、クラスタの存在の告知を含む（ブロック４５２）。クラスタは、オンラインであり、プロセスを制御するように動作しているプロセス制御プラント５のデータ分析ネットワーク１１２に含まれ、クラスタの告知は、データ分析ネットワーク１１２を通じて、１つ以上の他のネットワークを通じて、Ｂｌｕｅｔｏｏｔｈ、ＮＦＣ等の近距離無線プロトコルを介して、あるいは任意の他の好適な告知手段を介して、送信され得る。
【０２１５】
方法４５０は更に、クラスタの告知へのデータソースからの応答を、クラスタで受信することを含む。例えば、データソースからの応答は、クラスタに登録するというデータソースの要求であり得、方法４５０は、データソースをクラスタ及び／またはデータ分析ネットワーク１１２に登録することを含み得（ブロック４５５）、それにより、データソースはデータ分析ネットワーク１１２と接続される。データソースは、プロセスプラント５に含まれ、かつオンラインプロセスプラント５によるプロセス制御の結果としてデータを生成する、デバイスまたは構成要素であり得る。ある例においては、データソースは、制御されているプロセスから結果として生じる、連続時系列データを生成する。
【０２１６】
加えて、方法４５０は、データソースによって生成されたデータの、クラスタによる受信を含む（ブロック４５８）。例えば、データソースは、その生成したデータを、データ分析ネットワーク１１２を介してクラスタにストリーミングし得る。追加的または代替的に、クラスタは、データソースによって生成及び公開される特定のデータをサブスクライブしてもよい。一部の実施形態においては、クラスタは、例えば、本出願の後の節において説明されるクエリメカニズムを用いることによって、特定のデータについてデータソースに照会し得る。データソースが、典型的には１つ以上の従来型のプロセス制御通信ネットワーク（例えば、ネットワーク１０、７０）を介してプロセス制御データを通信するデバイスまたは構成要素である場合、データソースは、この１つ以上の従来型のプロセス制御通信ネットワークを通じて通常通りプロセス制御データを通信し続ける一方でまた、データ分析ネットワーク１１２を介して、通信されるプロセス制御データの内容のコピーまたは複製をストリーミングし得る。
【０２１７】
データソースによって生成されたデータを受信する際、クラスタは、例えば受信したデータが１つ以上のキャッシュ条件を満たす場合、受信したデータの少なくとも一部をキャッシュし得る。しかし、受信したデータのいずれかがキャッシュされるか否かに関わらず、受信したデータの全体が、クラスタの永続的ストレージ１５５にローカルで記憶される。
【０２１８】
方法４５０は、データソースによって生成されたデータの少なくとも一部を、データ分析ネットワーク１１２を介して、クラスタによってデータコンシューマへとストリーミングすることを含む（ブロック４６０）。データコンシューマは、例えば、別の分析ノードもしくはクラスタ、データ分析アプリケーション、ユーザインターフェイス及び／もしくはユーザインターフェイスアプリケーション、オンラインデータ分析モジュール、別のアプリケーション、ならびに／またはデータベースもしくはデータヒストリアンであり得る。データコンシューマは、データソース及び／またはデータソースによって生成されるデータの少なくとも一部を含む特定のデータストリームに対してバインドされ得る。データコンシューマによる受信を所望される特定のデータは、典型的には、時系列データであり、連続データであり得る。
【０２１９】
データコンシューマは、例えば本出願の後の節において説明されるクエリメカニズムを活用することによって、データソースによって生成される特定のデータについてクラスタを照会している場合があり、ストリーミング（ブロック４６０）は、データコンシューマによって生成されたこのクエリに対する応答であり得る。ある実施形態においては、データコンシューマは、データソースによって生成され、データソースまたはクラスタによって公開されている特定のデータをサブスクライブし得る。ともあれ、クラスタは、データソースによって生成された所望のデータを、そのキャッシュまたはそのローカルの永続的データストレージ１５５から受信し、そのデータを、データ分析ネットワーク１１２を介してデータコンシューマにストリーミングする（ブロック４６０）。
【０２２０】
一部の実施形態においては、方法４５０は、データソースによって生成されたデータの少なくとも一部分に対して、クラスタによって、１つ以上のデータ分析機能または技法を実施することを含む（図４Ｐには図示せず）。１つ以上の分析機能または技法は、記述的分析、予測的分析、及び／または規定的分析を含み得る。１つ以上の分析機能または技法は、例えば、オンラインデータ分析モジュール、別のデータ分析アプリケーション、またはユーザの要求毎に、クラスタによって実施され得る。別の例においては、１つ以上の分析機能または技法は、クラスタによって自動的に開始及び実施され得る。１つ以上の分析機能または技法の実行の結果は、要求しているパーティに返される場合があり、ならびに／またはクラスタにおいてローカルで、永続的データストレージ１５５に記憶される場合がある。一部の実施形態においては、１つ以上の分析機能または技法は、クラスタに登録される複数のデータソースによって生成され、クラスタに記憶（及び任意選択でキャッシュ）されているデータに対して実施される。
【０２２１】
クラスタは、プロセスプラント５内のデータソースによって生成される一次データを受信し、プロセスプラント５内のこれらのデータソース付近に配置されるため、クラスタは、本明細書においては「ローカル」クラスタと呼ばれる。一部の実施形態においては、方法４５０は、リージョナルクラスタ、広域クラスタ、プラントワイドクラスタ等の集中型クラスタによって生成される告知をローカルクラスタが検出することを含む。ローカルクラスタは、それ自身を集中型クラスタに登録することができ、そのキャッシュ及び／またはその永続的データストレージ１５５に記憶されているローカル分析データの少なくとも一部を集中型クラスタにストリーミングし得る。例えば、集中型クラスタにストリーミングされる分析データは、データソースによって生成されるデータ及び／またはローカルクラスタによって実施される１つ以上の分析機能の結果を含み得る。ローカルクラスタは、集中型クラスタによって開始されるクエリ毎に、集中型クラスタに対してデータをストリーミングしてもよく、ならびに／またはローカルクラスタは、集中型クラスタによってサブスクライブされているデータを公開してもよい。
【０２２２】
一部の実施形態においては、方法４５０は、クラスタのローカルの永続的ストレージ１５５に記憶されているデータをヒストライズまたはバックアップすることを含む（図４Ｐには図示せず）。データのバックアップはクラスタによって開始されてもよく、あるいはデータのバックアップは集中型分析データヒストリアンによって開始されてもよい。ある実施形態においては、クラスタ及び集中型分析データヒストリアンは、パブリッシャ／サブスクライバの関係性を有し得る。クラスタからデータをバックアップするタイミング及び／またはその量は、ある実施形態においては、システム１００のシステムアドミニストレータによって定義され得る。バックアップされるデータは、長期ストレージ及びバックアップのために、クラスタから分析データヒストリアンに送信及び／またはストリーミングされ得る。
【０２２３】
図４Ｑは、ローカライズしたデータ分析サービスを提供する例示的方法４７０を描写する。ある実施形態においては、分散型データエンジン１０２ｘまたはＤＤＥ１０２ｘのクラスタは、方法４７０の少なくとも一部分を実施する。概して、方法４７０の少なくとも一部分は、システム１００等の分散型工業パフォーマンス監視及び／または分析システムの任意の部分によって実施され得る。実際、方法４７０は、本明細書に記載されるシステム、装置、デバイス、及び／または技法のうちのいずれかの任意の部分を用いて行われ得る。しかし、考察の容易さのために、方法４７０は、一元的なＤＤＥインスタンス１５０として現れる、システム１００の１つ以上のＤＤＥ１０２ｘのクラスタに関して下で説明される。しかしながら、これは多数の実施形態のうちの１つであるに過ぎず、限定的であることを意図しない。
【０２２４】
例示的方法４７０は、集中型クラスタによる、集中型クラスタの存在の告知を含む（ブロック４７２）。データソースは典型的には集中型クラスタに直接は登録しないため、集中型クラスタは、図４Ｐのローカルクラスタとは異なる。むしろ、多くの場合、ローカルクラスタまたは他の種類のクラスタが集中型クラスタに登録し、そのような他のクラスタから受信するデータに対して、集中型クラスタがデータ分析機能を実施する。しかし、ローカルクラスタと同様に、集中型クラスタは、プロセスを制御するように運転する際にオンラインであるプロセス制御プラント５のデータ分析ネットワーク１１２に含まれ、集中型クラスタの告知は、データ分析ネットワーク１１２を通じて、送信、ストリーミング、及び／またはブロードキャストされ得る。本明細書で使用する場合、「集中型」クラスタは、他のクラスタが登録しているクラスタを指す。集中型クラスタは、制御ループ（例えば、「制御ループ」クラスタ）、プロセスプラントのある領域（例えば、「広域」クラスタ）、プロセスプラントのあるリージョン（例えば、「リージョナル」クラスタ）、全体のプロセスプラント（例えば、「プラントワイド」クラスタ）、複数のプロセスプラント（「エンタープライズ」クラスタ）等を処理し得る。典型的には、集中型クラスタは、単一の、一元的ＤＤＥインスタンス１５０としての見かけを有する、データ分析ネットワーク１１２を介して相互接続する複数のＤＤＥを含む。
【０２２５】
方法４７０は更に、集中型クラスタの告知への別のクラスタからの応答を、集中型クラスタで受信することを含む。例えば、他方のクラスタからの応答は、集中型クラスタに登録するという他方のクラスタの要求であり得、方法４７０は、他方のクラスタを集中型クラスタに登録することを含み得る（ブロック４７５）。登録するクラスタは、図４Ｐのローカルクラスタ等のローカルクラスタであり得、あるいは登録するクラスタは、別の集中型クラスタであり得る。
【０２２６】
加えて、方法４７０は、登録されたクラスタからストリーミングされるデータを集中型クラスタにおいて受信することを含む（ブロック４７８）。例えば、登録されたクラスタは、その記憶及び／またはキャッシュしているデータの一部分を、データ分析ネットワーク１１２を介して集中型クラスタにストリーミングし得る。したがって、ストリーミングされるデータは、典型的には、例えば連続データであり得る時系列データを含む。追加的または代替的に、集中型クラスタは、登録されたクラスタによって公開される特定のデータをサブスクライブしてもよい。一部の実施形態においては、集中型クラスタは、例えば、本出願の後の節において説明されるクエリメカニズムを用いることによって、特定のデータについて、登録されたクラスタに照会する。ストリーミングされるデータは、登録されたクラスタによって生成されたデータを含み得、ならびに／またはデータソース及び／もしくは他のクラスタから登録されたクラスタにストリーミングされたデータを含み得る。
【０２２７】
一部の実施形態においては、集中型クラスタは、例えば受信したデータが１つ以上のキャッシュ条件を満たす場合、それが受信するストリーミングされたデータの少なくとも一部をキャッシュする。集中型クラスタにおいて受信されるデータのいずれかがキャッシュされるか否かに関わらず、受信したデータの全体が、集中型クラスタの永続的ストレージ１５５にローカルで記憶される。
【０２２８】
ブロック４８０においては、方法４７０は、受信され、ストリーミングされたデータ（例えば、そのキャッシュ及び／またはその永続的記憶領域１５５に記憶されているデータ）の少なくとも一部分に対して、１つ以上のデータ分析機能または技法を実施することを含む。１つ以上の分析機能または技法は、記述的分析、予測的分析、及び／または規定的分析を含み得る。例えば、１つ以上の分析機能または技法は、オンラインデータ分析モジュール、別のデータ分析アプリケーション、またはユーザの要求毎に、集中型クラスタによって実施され得る。別の例においては、１つ以上の分析機能または技法は、集中型クラスタによって自動的かつ／または定期的に実施され得る。１つ以上の分析機能または技法の実行の結果または出力は、要求しているパーティに返される場合があり、ならびに／または集中型クラスタにおいてローカルで、永続的データストレージ１５５に記憶される場合がある。一部の実施形態においては、１つ以上の分析機能または技法は、複数の登録されたクラスタによって生成され、集中型クラスタに記憶（及び任意選択でキャッシュ）されているデータに対して実施される。
【０２２９】
方法４７０は、１つ以上の分析機能または技法の結果または出力の少なくとも一部を、データ分析ネットワーク１１２を介して、集中型クラスタによって１つ以上のデータコンシューマへとストリーミングすることを含む（ブロック４８２）。１つ以上のデータコンシューマは、例えば、別の分析ノードもしくはクラスタ、データ分析アプリケーション、ユーザインターフェイス及び／もしくはユーザインターフェイスアプリケーション、オンラインデータ分析モジュール、別のアプリケーション、ならびに／またはデータベースもしくはデータヒストリアンを含み得る。１つ以上のデータコンシューマは、集中型クラスタ、特定の分析結果／出力、及び／または特定の分析結果／出力を含む特定のデータストリームに対してバインドされ得る。
【０２３０】
１つ以上のデータコンシューマは、例えば本出願の後の節において説明されるクエリメカニズムを活用することによって、特定の分析結果／出力について集中型クラスタを照会している場合があり、ストリーミング（ブロック４８２）は、１つ以上のデータコンシューマによって生成されたこのクエリに対する応答であり得る。追加的または代替的に、データコンシューマは、集中型クラスタによって公開される特定の分析結果／出力をサブスクライブしてもよい。ともあれ、集中型クラスタは、所望のデータを、そのキャッシュまたはそのローカルの永続的データストレージ１５５から受信し、その所望のデータを、データ分析ネットワーク１１２を介して１つ以上のデータコンシューマにストリーミングする。一部の場合においては、所望の分析結果／出力データは、１つ以上のデータ分析機能または技法により、その生成時にストリーミングされる。
【０２３１】
一部の実施形態においては、方法４７０は、１つ以上の追加的なローカルクラスタを集中型クラスタに登録することと、この１つ以上の追加的なローカルクラスタからそれぞれの分析データを受信することとを含む（図４Ｑには図示せず）。そのような実施形態においては、１つ以上のデータ分析機能または技法を実施すること（ブロック４８０）は、集中型クラスタにおいて複数のローカルクラスタから受信した分析データに対してデータ分析機能または技法を実施することを含み得る。
【０２３２】
一部の実施形態においては、方法４７０は、集中型クラスタのローカルの永続的ストレージに記憶されているデータ（例えば、ビッグデータ記憶領域１５５に記憶されているデータ）をヒストライズまたはバックアップすることを含む（図４Ｑには図示せず）。データのバックアップは集中型クラスタによって開始されてもよく、あるいはデータのバックアップは集中型分析データヒストリアンによって開始されてもよい。ある例においては、集中型分析データヒストリアンにおける集中型クラスタは、パブリッシャ／サブスクライバの関係性を有し得る。集中型クラスタからデータをバックアップするタイミング及び／またはその量は、その集中型クラスタにおいて、または別の集中型クラスタにおいて、システム１００のシステムアドミニストレータによって定義され得る。例えば、システムアドミニストレータは、ユーザインターフェイスを活用して、システム１００内におけるバックアップに関する規則のセットを管理し得、この規則のセットは、集中型クラスタに記憶され得る。バックアップされるデータは、長期ストレージ及びバックアップのために、集中型クラスタ１５２及び分析データヒストリアンから送信及び／またはストリーミングされ得る。
【０２３３】
追加的または代替的に、一部の実施形態においては、方法４７０は、データ分析システム１００のクラスタ、ノード、及び／またはＤＤＥ１０２ｘ内における分析データの複製に関する規則のセットを提供することを含む。例えば、複製規則のセットは、どの特定の分析データが、データ分析ネットワーク１１２のどの特定のノード内において複製されるか、ならびにどのくらいの頻度で特定の分析データが特定のノード内においてアップデートされるかを定義することができる。例えば、複製規則のセットは、ノートＢ〜Ｄがそれらそれぞれのデータ分析機能を実施する際に、複製された結果を利用可能であるように、どのくらいの頻度で、ノードＢ〜Ｄにおいて、ノードＡによって実施された分析機能Ａの結果を（例えば、ストリーミングによって）複製するかを定義し得る。ヒストライズ及びバックアップの規則と同様に、複製規則のセットは、１つ以上の集中型クラスタにおいて、システム１００の管理されるシステムによって定義され得る。例えば、システムアドミニストレータは、ユーザインターフェイスを活用して、複製規則のセットを管理することができ、複製規則のセットは、それらの１つ以上の集中型クラスタにおいて記憶され得る。
【０２３４】
一部の実施形態においては、方法４７０は、別の集中型クラスタによって生成される告知を集中型クラスタが検出することを含む。例えば、告知するクラスタは、プロセスプラント５の構内に配置される、リージョナルクラスタ、広域クラスタ、またはプラントワイドクラスタであり得る。一部の場合においては、告知するクラスタはクラウドにホストされ得、プラント５の一部分、プラント５の全体、または複数のプラントに関して分析サービスを提供し得る。集中型クラスタは、それ自身を、告知するクラスタに登録することができ、そのキャッシュ及び／またはその永続的データストレージ１５５に記憶されている分析データを、告知するクラスタにストリーミングし得る。例えば、集中型クラスタは、集中型クラスタが実施した分析機能の結果の少なくとも一部をストリーミングし得る。集中型クラスタは、その集中型が登録されている告知するクラスタにデータをストリーミングしてもよく、ならびに／または集中型クラスタは、告知するクラスタによってサブスクライブされているデータを公開してもよい。
【０２３５】
一部の実施形態においては、方法４７０は、他のローカル及び集中型クラスタ、ならびに個々のＤＤＥ１０２ｘが使用できる、ロケーションサービス、ストリーミングサービス（例えば、図１のストリーミングサービス１１５）、及び／またはデータディクショナリを提供して、それらの間での分析データの交換を確立することを含む（図４Ｑには図示せず）。
【０２３６】
工業パフォーマンス監視／分析のサービス
Ｄａｔａ  Ｓｔｕｄｉｏによる、オフラインデータダイアグラムのオンラインデータダイアグラムへの転換、オフライン及びオンラインブロック及びモジュールの両方の実行、ならびにダイアグラムによって表される分析の機能性は、データ分析システム（ＤＡＳ）１００等の工業パフォーマンス監視／分析システムによって提供される、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅによって実現される。Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅは、本明細書においては交換可能に、「Ｓｅｒｖｉｃｅ」、「Ｓｅｒｖｉｃｅｓ」、または「Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓ」と呼ばれる。本明細書に記載されるＡｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅｓのいずれかの部分または全ての部分が、図１、２、３、及び／または４Ａ〜４Ｑのいずれかの部分または全ての部分と併せて、かつ／あるいは図１、２、３、及び／または４Ａ〜４Ｑにそれぞれ対応する本開示の節に記載される任意の数の特色及び／または技法と併せて動作し得る。
【０２３７】
概して、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅは、（例えば、Ｄａｔａ  Ｓｔｕｄｉｏ及び／またはＤａｓｈｂｏａｒｄにおける）オフラインダイアグラムのコンパイル、実行、及び／または転換が可能であり、（例えば、Ｄａｔａ  Ｓｔｕｄｉｏ及び／またはＤａｓｈｂｏａｒｄにおける）オンラインダイアグラムのコンパイル、実行、及び／または作成が可能である。Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅは、特定の種類（複数可）のデータの知識を必ずしも必要とせず、ならびにＡｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅのユーザが、分析を実施する低水準プログラミングを行うことを必要とせずに、大きなセットのデータ、すなわちＢｉｇ  Ｄａｔａの探査を容易にする。Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００の例示的ブロックダイアグラムアーキテクチャが、システム１００の一部分の文脈において、図５Ａに示される。より具体的には、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００は、複数のコンピュータ実装プロセスのうちの１つであり、これらのコンピュータ実装プロセスの各々が、様々なソフトウェアエンティティ（例えば、１つ以上の有形の非一時的コンピュータ媒体に記憶される、コンピュータが実行可能な命令及びデータ）と関連付けられる。下で詳細に説明されるように、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００は、システム１００の様々なエンティティによって生成及び／または記憶されるデータを介して、多くの部分で、より大きなシステム１００と相互作用する。
【０２３８】
上記のように、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、実施形態においては、ウェブベースのアプリケーションである。図５Ａは、そのような実施形態において、すなわち、ウェブベースのＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎを伴って実装される、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００の実施形態を描写する。その最も広い意味においては、この様式で実装されるＡｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００は、クライアント側の、サーバ側の、及びバックエンドのコンピュータ実装プロセスを含む。例えば、図５Ａに描写されるように、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００は、ウェブクライアントプロセス５０２、ウェブサーバプロセス５０４、実行サービスプロセス５０６、及び１つ以上のジョブプロセス５０８を含む。様々なプロセス５０２、５０４、５０６、５０８は、１つ以上のプロセッサにおいて、１つ以上のワークステーションまたはサーバにおいて、１つ以上の物理的及び／または地理的ロケーションにおいて実行され得る。すなわち、ウェブクライアントプロセス５０２のあるインスタンスが、ウェブサーバプロセス５０４が実行されているサーバから離れたワークステーションにおいて実行され得る一方で、ウェブクライアントプロセス５０２の別のインスタンスが、ウェブサーバプロセス５０４が実行されているサーバと同じサーバ上で実行されてもよく、実際、同じプロセッサ上で動作してもよい。別の例としては、実行サービスプロセス５０６が、プロセス制御環境の領域内のワークステーションにおいて実行され得る一方で、１つ以上のジョブプロセス５０８は、プロセス制御環境から離れて配置される分散型プロセス環境（例えば、サーバファーム）の１つ以上のプロセッサにおいて実行され得る。簡単に言えば、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００は、様々なプロセス５０２、５０４、５０６、５０８が、同じプロセッサ、ワークステーション、プロセッサのバンク、１つ以上の仮想マシン、及び／または同じ物理的もしくは地理的ロケーションにおいて実行される必要性、または実行されない必要性が存在しないほど、フレキシブルであるように設計される。有利なことに、このアーキテクチャは、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００によって提供されるデータ分析へのリモートアクセス、ならびに巨大プロセッサ及び計算リソースを活用して分析を実施する能力を促進するのみならず、また、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００が、複数のプロセスプラントの地理的ロケーションがどれだけ異なり得ようと、それらにまたがってデータを消費及び／または分析することも可能にする。
【０２３９】
ウェブクライアントプロセス５０２は、一般に理解されている原理とそれほど異なりはしないが、上記のＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎの説明に則った原理に従って動作する。例えば、ウェブクライアントプロセス５０２は、例えば、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ（例えば、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ２４０のキャンバス２４５及びユーザ制御部２４８ａ〜ｎ、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｄａｓｈｂｏａｒｄ等）をユーザに呈示する閲覧エンティティ５１０；ブロック状態等のアプリケーションデータの、ユーザインターフェイスが活用し得る形態への移送及び翻訳を管理し、かつオンラインデータモジュールのオペレーションからのフィードバックを提供し、ならびに／または別様にそのオペレーションを示すビューを生成する、ビューモデルエンティティ５１２；ウェブクライアントプロセス５０２にダウンロードされ、かつユーザがＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎと相互作用するために使用するクライアントワークステーションまたはデバイスに存在する、ソフトウェアエンティティ（すなわち、ウェブベースのアプリケーション）である、アプリケーションエンティティ５１４；ならびにＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎに、及びそこからデータを受け渡す、データサービスエンティティ５１６を含む、様々なソフトウェアエンティティを含む。
【０２４０】
データサービスエンティティ５１６は、例えば、ユーザ入力及び要求に対する応答として、実行された様々なジョブから返されるデータを受信する。上記のように、ならびに下の更なる詳細においては、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、異種データ（もしくは既知の関係性のデータ）間の関係性を発見するために使用される（例えば、Ｄａｔａ  Ａｎａｌｙｓｉｓ  Ｓｔｕｄｉｏにおける）探査モード、またはリアルタイム（もしくは準リアルタイム）の連続分析を実施して、プロセス制御環境において少なくとも１つの値を予測するために使用される（例えば、Ｄａｓｈｂｏａｒｄにおける）予測モードのいずれかで、プロセス制御環境からのデータ（及び、一部の場合においては、プロセス制御環境によって現在生成されているデータ）に基づく様々な分析の実行を要求し得る。本明細書で使用する場合、語句「リアルタイム（ｒｅａｌ  ｔｉｍｅ）」または「リアルタイムの（ｒｅａｌ−ｔｉｍｅ）」は、「プロセスプラントの現在のオペレーションを調整するためまたは別様にそれに影響を及ぼすために有用であり続けるように、十分に同時期であること」を意味する。例えば、１つ以上のブロックがキャンバス２４５上に配置され、それらのブロックのうちの１つ以上が実行される場合、その実行の結果は、データサービスエンティティ５１６を介してアプリケーションエンティティ５１４へと戻され（例えば、ウェブサーバプロセス５０４からのウェブソケットプロトコル接続を用いて）、表示エンティティ５１０を介してユーザに対して表示され得る。
【０２４１】
同時に、データサービスエンティティ５１６は、他のプロトコル（例えば、ＨＴＴＰ）を介してウェブサーバプロセス５０４と通信して、アプリケーションエンティティ５１４のオペレーションに必要な様々な種類の情報を要求及び受信し得る。例として、アプリケーションエンティティ５１４が最初に実行される場合、それは、ＨＴＴＰプロトコルを用いるデータサービスエンティティ５１６を介して、ブロック定義ライブラリ２５２からの最新のブロック定義２５５を要求及び受信し得る。あるいは、アプリケーションエンティティ５１４は、当初は、利用可能なブロック定義２５５のカテゴリ及びリストのみを受信し得、ユーザによって選択されたとき、アプリケーションエンティティ５１４は、ＨＴＴＰプロトコルを用いるデータサービスエンティティ５１６を介して、ユーザによって選択された特定のブロック定義２５５を要求及び受信し得る。
【０２４２】
ここで、ウェブサーバプロセス５０４に注目すると、１つ以上のサーバ通信エンティティ５１８が、ウェブクライアントプロセス５０２と通信する。上記のように、サーバ通信エンティティ（複数可）間の通信は、ＨＴＴＰ、ＨＴＴＰＳ等のプロトコル及びウェブソケットプロトコルを実装し得るが、本出願にとって好適である任意の他のプロトコルが実装され得るため、記載される特定のプロトコルは限定的であるものとみなされるべきではない。ウェブクライアントプロセス５０２との通信に加えて、サーバ通信エンティティ５１８は、キャンバス２４５に配置される１つ以上のブロック（すなわち、ダイアグラムのプログラミング要素）に従って要求される命令（例えば、データ分析、データローディング、データフィルタリング等）を実行する１つ以上のプロセスからデータを受信し得る。データは、プロセスから、例えばサーバ通信エンティティ５１８のウェブソケット（図示せず）を介して受信され得、これもまたウェブソケットプロトコルを介して、ウェブクライアントプロセス５０２に通信され得る。
【０２４３】
データサービスエンティティ５２０は、ウェブクライアントプロセス５０２に対して、様々なブロックと関連付けられる命令を実行するプロセスから受信するデータ以外のデータを提供する。例えば、データサービスエンティティ５２０は、ブロック定義ライブラリ２５２からのブロック定義２５５を回収し、それをアプリケーションエンティティ５１４に通信し得、ならびに／またはブロックの実行についてのステータス情報を、そのステータスが表示エンティティ５１０によって表示され得るように、実行サービスプロセス５０６からアプリケーションエンティティ５１４に通信し得る。
【０２４４】
図５Ｂに注目すると、データサービスエンティティ５２０がより詳細に描写される。具体的には、データサービスエンティティ５２０は、ブロック定義ライブラリ２５２のブロック定義２５５のコピー（またはそれに対するポインタ）と、データプラグインのセット５２３とを含む。データプラグイン５２３の各々は、アプリケーションエンティティ５１４から呼び出されて特定のタスクを実施し得るインターフェイスに対して適合する、コンピュータが実行可能な命令のセットである。プラグイン５２３の各々は、アプリケーションエンティティ５１４からは独立しており、アプリケーションエンティティ５１４が、プラグイン５２３をロードすることを特定するメタデータと遭遇したときに、アプリケーションエンティティ５１４によってロードされる。プラグイン５２３は、アプリケーション及び／またはＡｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００が動作している動作環境に対して特異的なロジックを含み得る。すなわち、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００を実装するプロセス制御環境用のプラグインのセット５２３は、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００を実装する金融サービス用のプラグインのセットとは異なる場合があり（Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００は、特定の種類（複数可）のデータの知識を必ずしも必要とせず、ならびにＡｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００のユーザが、分析を実施する低水準プログラミングを行うことを必要とせずに、大きなセットのデータ、すなわちＢｉｇ  Ｄａｔａの探査を容易にすることに留意されたい）、また、実際、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００を実装する異なるプロセス制御環境用のプラグインのセットとも異なる場合がある。
【０２４５】
アプリケーションエンティティ５１４からのブロック定義２５５の分離は、アプリケーションエンティティ５１４が、顧客の要件に基づいて、異なるブロック定義を使用及び展開することを可能にする。アプリケーション及び／または動作環境に対して特異的なロジックは、アプリケーションエンティティ５１４にハードコードされていないため、ブロック定義は、アプリケーションエンティティ５１４の根本的なオペレーションに影響を及ぼすことなく、作成、追加、修正、及び／または除去することができる。アプリケーションエンティティ５１４からは別個にプラグイン５２３及びブロック定義２５５を提供することによって、アプリケーションエンティティ５１４は、特定の用途にとって必要とされる特定のブロック定義２５５及びプラグイン５２３に関わらず、類似の機能で動作し得る。
【０２４６】
図５Ａを再度参照すると、上記のように、アプリケーションエンティティ５１４は、キャンバス２４５上における、図４Ｌのオフラインダイアグラム３４０等のオフラインダイアグラムの作成を容易にするように動作する。オフラインダイアグラムを作成するために、ユーザは、１つ以上のブロックを選択してキャンバス２４５上に配置し（例えば、ドラッグアンドドロップによって）、データがそれらのブロック間で通信されるように、それらのブロックを共に「ワイヤでつなげる」。ブロックの各々は、ブロック定義ライブラリ２５２のブロック定義２５５のうちの１つとして記憶されるテンプレートブロックのインスタンスである。ユーザがユーザ制御部２４８ｍをアクティブ化したとき、アプリケーションエンティティ５１４は、表示エンティティ５１０に、ブロック定義２５５の利用可能なカテゴリ及び／または利用可能なブロック定義２５５を表示させ、ここからユーザはブロックを選択して、きゃんばス２４５上に配置することができる。ある実施形態においては、ブロック定義ライブラリ２５２は、実行サービスプロセス５０６もしくはウェブサーバプロセス５０４のうちの１つまたはそれら両方によって共有されるメモリデバイスに記憶されており、ブロック定義ライブラリ２５２のメタデータ（例えば、ブロック定義の名称、ブロック定義のカテゴリ等）は、アプリケーションエンティティ５１４に送信されるが、ブロックがキャンバス２４５上に配置されるように選択されるときにのみ、ブロック定義はアプリケーションエンティティ５１４に送信される。あるいは、ブロック定義ライブラリ２５２は、アプリケーションエンティティ５１４がウェブクライアントにおいてインスタンス化され、ウェブクライアントプロセス５０２の実行中、終始ウェブクライアントに存在し続ける場合、その全体がアプリケーションエンティティ５１４に送信される。ブロック定義ライブラリ２５２のマスターコピーは、プロセス制御環境内のデータベース（図示せず）、ネットワークを介してアクセス可能なクラウドストレージデバイス、ワークステーション等において存在し得る。
【０２４７】
ブロック定義２５５は、各ブロックの機能性に従ってカテゴリ化され得る。図５Ａは、描写されるいくつかのカテゴリ５２１の各々の内で分類されたブロック定義２５５を描写するが、図５Ａは、任意の特定のカテゴリ５２１にカテゴリ化されたブロック定義２５５が必ず一緒に記憶されること、または必ず他のブロック定義２５５とは別個に記憶されることを提案することを意図してはいない。これは一部の実施形態においては当てはまる場合もあるが、他の実施形態においては、ブロック定義２５５はいかなる特定の順番でも記憶されておらず、代わりに、ブロック定義が属するカテゴリを示し得るメタデータで各々がタグ付けされ得る。任意の所与のブロック定義２５５に関するメタデータはまた、例としてであり限定ではないが、入力及び出力の数、ブロックの実行にとって必要とされるプロパティ、各プロパティに関するＵＩ制御タイプ、各プロパティに関する制御がいつ（すなわち、どのような条件の下に）有効化／無効化されるか、プロパティに関するプラグイン情報、プロパティのデフォルト値等を示し得る。
【０２４８】
全てではないが多くの実施形態においては、ブロックは、ブロックがコンパイル及び実行され得る前に特定され得る、または特定されねばならいプロパティを含む。ブロック定義２５５はアプリケーションエンティティ５１４に構築されていないため、ユーザがそこから特定のブロックに関するプロパティを選択し得る値は、アプリケーションエンティティ５１４がインスタンス化される場合、予め決定できず、かつ／あるいはアプリケーションエンティティ５１４に提供できない。図５Ｃは、キャンバス２４５上に配置されたブロックに関するプロパティダイアログを呈示するための方法５５１を描写するフローチャートである。ブロックがキャンバス２４５上に配置されるとき、アプリケーションエンティティ５１４は対応するブロック定義２５５をデータサービスエンティティ５２０から、あるいは実施形態においてはデータベース５２９から回収する（ブロック５５３）。その後、アプリケーションエンティティ５１４は、例えば、ユーザがブロックをダブルクリックしたとき、キャンバス２４５上に配置されたブロックに関するプロパティダイアログを表示するためのコマンドを受信する（ブロック５５５）。
【０２４９】
アプリケーションエンティティ５１４がブロックに関するプロパティを示すためのコマンドを受信すると（ブロック５５５）、アプリケーションエンティティ５１４は、ブロック定義をプロパティ毎に構文解析する。各プロパティについて、アプリケーションエンティティ５１４はそのプロパティに関するメタデータを回収し（ブロック５５７）、プロパティに関するメタデータを構文解析して、プラグイン情報を探す（ブロック５５９）。そのプロパティに関して、アプリケーションエンティティ５１４がプラグイン情報を見つける場合（ブロック５６１）、アプリケーションエンティティ５１４は、特定されたプラグインを発見し、それをロードする（例えば、データサービスエンティティ５２０のプラグイン５２３から）（ブロック５６３）。アプリケーションエンティティ５１４は、プロパティに関するメタデータによって特定されたプラグインを呼び出して、必要とされるプロパティ値を入手する（ブロック５６５）。一方で、アプリケーションエンティティ５１４がプロパティに関するプラグイン情報を見つけなかった場合（ブロック５６１）、アプリケーションエンティティ５１４は、プロパティに関するメタデータにおいて、プロパティのデフォルト値（複数可）を見つける（ブロック５６７）。
【０２５０】
いずれにせよ、プロパティに関するメタデータによって特定されたプラグインを呼び出して、プロパティ値を入手するか（ブロック５６５）、あるいはプロパティに関するデフォルト値（複数可）を見つけることで（ブロック５６７）、アプリケーションエンティティ５１４は、プロパティに関するメタデータにおいて、ＵＩ制御タイプ（テキストボックス、ドロップダウン選択、ラジオボタン、チェックボックス等）を見つけ（ブロック５６９）、その値（複数可）及び制御をプロパティダイアログに追加する（５７１）。追加的なプロパティがブロック定義に存在する場合（ブロック５７３）、アプリケーションエンティティ５１４がこの次のプロパティに関するメタデータを回収し（ブロック５５７）、本方法は、追加的なプロパティが存在しなくなるまで継続する（ブロック５７３）。追加的なプロパティがブロック定義において見つからない場合、アプリケーションエンティティ５１４は、ユーザがプロパティを設定するためのプロパティダイアログを表示する（ブロック５７５）。
【０２５１】
ある実施形態においては、かつ／あるいは一部のブロック定義２５５に関しては、ブロックの１つ以上の第１のプロパティが、ブロックの１つ以上の第２のプロパティが構成されるまで、非アクティブまたは無効化状態において表示され得る。１つ以上の第２のプロパティを構成する際、アプリケーションエンティティ５１４は、方法５５１の１つ以上のステップを再実行し得、ならびに／または第１のプロパティと関連付けられるプラグイン５２３のうちの１つ以上を再実行し得る。
【０２５２】
例として、ユーザが、「ロード」ブロックをキャンバス２４５上に配置したと仮定する。アプリケーションエンティティ５１４は、ブロック定義２５５を回収する。ある実施形態においては、ロードブロックについてのブロック定義２５５は、アプリケーションエンティティ５１４にそのブロックに関するメタデータを提供し、具体的には、ロードブロックが３つのプロパティ：ブロックの名称と、選択されたデータベース（データベースの名称）と、選択されたデータベースから引き出す、選択されたデータセット（データセットの名称）とを有することを示す。プロパティ構成ダイアログがトリガされると（例えば、ロードブロックをダブルクリックすることによって）、アプリケーションエンティティ５１４は、何を表示すべきか決定する必要がある。アプリケーションエンティティ５１４は、ブロックの名称のプロパティに関するメタデータ内にプラグイン情報が存在しないことを決定し得、代わりに、デフォルト値、例えば「ｌｏａｄ＜＃＃＞」を見つける。アプリケーションエンティティ５１４はまた、ブロックの名称のプロパティに関するメタデータ内で示される、ブロックの名称についての制御タイプが、テキストボックスを特定することを見つけ得る。アプリケーションエンティティはデフォルト値（例えば、「ｌｏａｄ０１」）を解釈し、それをダイアログ内にテキストボックスとして配置する。
【０２５３】
ブロック定義を構文解析するアプリケーションエンティティ５１４は、データベースの名称のプロパティに関するメタデータを見つける。データベースの名称のプロパティに関するメタデータを確認することで、アプリケーションエンティティ５１４は、そのプロパティに関するプラグイン情報を見つけ、適宜、特定されたプラグインを発見、ロード、及び呼び出す。特定されたプラグインは、特定のアプリケーション及び／または動作環境について（例えば、特定のプロセス制御環境について）書かれているが、データセットがロードされ得るデータベースの名称（及び関連付けられるロケーション）のリストを発見するようにプログラムされている。データベースの名称のリストを受信すると、アプリケーションエンティティ５１４は、データベースの名称のプロパティに関するメタデータを構文解析し、ドロップダウン選択制御部で表示されるべきであることを決定する。アプリケーションエンティティ５１４は、プラグインによって返されたデータベースの名称のリストと共に、ドロップダウン選択制御部をプロパティダイアログに追加する。
【０２５４】
ブロック定義を構文解析するアプリケーションエンティティ５１４は、データセットの名称のプロパティに関するメタデータを見つける。データセットの名称のプロパティに関するメタデータは、プラグインを特定し、データセットの名称のプロパティがドロップダウン選択制御部であることを示すが、また、この制御部が、データベースの名称がユーザによって選択されるまで無効化されなければならないことを示す。ロードブロックに関するブロック定義において更なるプロパティが見つからなくなると、アプリケーションエンティティ５１４は、ダイアログを表示する。ユーザが、データベース名称ドロップダウン選択制御部からデータベースの名称のうちの１つを選択すると、アプリケーションエンティティ５１４は、（データブロック定義から）データセット名称プロパティに関するメタデータにおいて特定されるプラグインを呼び出し、選択されたデータベースの名称を呼び出されたプラグインに引数として渡すようになっている。プラグインは、選択されたデータベースの名称の中で利用可能であるデータセットの名称を返し、データセットの名称のプロパティに関するドロップダウン選択制御部を、利用可能なデータセットの名称で埋め、今度は制御部を無効化ではなく有効化して、ダイアログを再度表示する。その後、ユーザはデータセットの名称を選択して、データブロックの構成を完了することができる。
【０２５５】
無論、あるブロックがキャンバス２４５上に配置されると、任意の必要とされるプロパティを特定するように構成された後、任意の下流ブロック（すなわち、このブロックの出力が「ワイヤでつながれ」た入力を有する、任意のブロック）が、このブロックから有効な入力を得て、有効な出力を生成するように、このブロックは実行され得る（すなわち、ブロック定義において特定されるプログラミング命令が実行され得る）。例えば、図４Ｌに示されるオフラインデータダイアグラム３４０に関して、ＬｏａｄＤＢ４Ｍブロック３４２ａは、ブロック、Ｃｏｌｕｍｎｓ  Ｘ３４２ｂ及びＣｏｌｕｍｎｓ  Ｙ３４２ｃが構成され得る前に評価または実行されねばならない。これは、ブロック、Ｃｏｌｕｍｎｓ  Ｘ３４２ｂ及びＣｏｌｕｍｎｓ  Ｙ３４２ｃの構成は、ＬｏａｄＤＢ４Ｍブロック３４２ａの出力からのユーザ選択に基づくためである。一方で、更に図４Ｌを参照すると、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄが、ブロック、Ｃｏｌｕｍｎｓ  Ｘ３４２ｂ及びＣｏｌｕｍｎｓ  Ｙ３４２ｃの評価とは独立して構成できる一方で、ブロック、Ｃｏｌｕｍｎｓ  Ｘ３４２ｂ及びＣｏｌｕｍｎｓ  Ｙ３４２ｃは、ＰＬＳ４Ｍ＿Ｘ＿Ｙブロック３４２ｄが、オフラインデータダイアグラム３４０にロードされる入力データセットに基づいて評価され得る前に、評価されなければならない。
【０２５６】
ブロック及び／またはモジュールの実行及び評価は非同期的である。これにより、ユーザは、ブロックまたはモジュールが評価されている間に、それらの修正を継続することが可能になる。例えば、ユーザは、１つのブロックの実行を開始する一方で、１つ以上の他のブロックの編集及び／または構成を継続し得る。有利なことに、別個にコンパイル可能かつ実行可能である各ブロックは、下流ブロックを選択及び／または構成及び／または実行する前に評価することができ、その結果を探査することができる。結果として、特定のブロックの予期される出力の演繹的知識は必要ではなく、また、任意の特定のブロックの結果を見る前に、データフローの次のブロックが何になるかを知る必要もない。
【０２５７】
オフラインまたはオンラインダイアグラムの任意の実行は、実行サービスプロセス５０６及びジョブプロセス５０８の機能性に関与する。一般的に、先に記載したように、ジョブプロセス５０８は、実行サービスプロセス５０６及び／もしくはウェブサーバプロセス５０６が実行されている１つ以上のプロセッサにおいて（同じプロセッサ（複数可）である場合またはそうでない場合がある）、ウェブクライアントプロセス５０２が実行されている１つ以上のプロセッサにおいて、ならびに／またはクラウドコンピューティングプラットフォームにおけるプロセッサ等の１つ以上の別個のプロセッサにおいて実行され得、１つ以上のプロセッサに基づいて構成される１つ以上の仮想マシンにおいて実行され得る。また、各ジョブプロセス５０８は、例えば、ターゲット環境用に構成された専用の仮想マシンにおいて各ジョブプロセス５０８を実行することによって、異なるターゲット環境において実行され得る。ジョブプロセス５０８の各々は概して、実行されるコードの一部分を表す。一部の事例においては、特定のジョブプロセス５０８が、特定のブロックと関連付けられるターゲットスクリプト／コードを実行し、一方で他の事例においては、単一のブロックと関連付けられる命令が、複数のジョブプロセス５０８における実行のために、より小さいスクリプト／コードのセグメントへと分割される。
【０２５８】
具体的には、単一のブロックと関連付けられる命令が、異なるジョブプロセスによる実行のために小さなスクリプト／コードのセグメントへと分割されるとき、これらの異なるジョブプロセスは、協働して何らかの形態の並列化を実現し得る。本明細書で使用する場合、「並列コンピューティング」は、あるタスクをより小さいユニットへと分割し、それらを並列で実施する一般的実践を意味するように使用され、「マルチスレッド処理」は、複数のスレッドを実行するソフトウェアプログラムの能力（リソースが利用可能である場合）を意味し、「分散型コンピューティング」は、複数の物理的または仮想マシンにまたがって処理を広げる能力を意味する。原則的に、分散型コンピューティングは、制限無しにスケールアウトすることができる。これらの概念の見地から、分散型プラットフォームにおいて命令を実行することは、分散型モードで命令を実行することと同じではないことを理解されたい。分散型処理をサポートする明確な命令が無い場合、それらの命令はローカルで実行されることになる。
【０２５９】
タスクを並列化する能力は、タスク自体の定義に内在するプロパティである。一部のタスクは、各ジョブプロセスによって実施される計算が全ての他のジョブプロセスから独立しており、所望の結果のセットが各ジョブプロセスからの結果の単純な組み合わせであるため、並列化が容易である。これらのタスクを「当惑するほど並列である」と称する。
【０２６０】
一部のタスクは、並列化により多くの労力を要する。具体的には、そのような「直線的に並列である」タスクとは、１つのジョブプロセスによって実施される計算は別のジョブプロセスによって実施される計算から独立しているが、所望の結果のセットは各ジョブプロセスからの結果の線形の組み合わせであるというタスクのことである。例えば、「平均計算」ブロックは、単一のデータのセットが複数の物理的メモリデバイスにまたがって記憶されている、分散型データベースにおける値のセットの平均を計算する命令によって定義され得る。より具体的な例としては、平均計算ブロックが、一連の３００個のバイオリアクタにまたがる平均温度を計算すると仮定する。これらのバイオリアクタの各々は、関連付けられるコントローラのメモリに温度データを記憶する。平均計算ブロックの実行は、３００個のバイオリアクタについての温度値のセットを複数のジョブプロセスの各々に割り当て、次いで、複数のジョブプロセスの各々によって決定された平均の加重平均として、「総」平均を計算することによって並列化され得る。
【０２６１】
データが意味のある方法で整理されなければならないタスクは、並列化がより困難である。「データ並列」タスクとは、各ジョブプロセスによって実施される計算が、各ジョブプロセスがデータの「正しい」チャックを有する限り、全ての他のジョブプロセスから独立しているタスクである。これには、例えば、上記と同じ３００個のバイオリアクタ内において交差効果が存在しないと仮定すると、これらのバイオリアクタの各々について独立した温度平均を計算すること（それら３００個全てにまたがる平均ではなく）が含まれ得る。このタスクは、ジョブプロセスの各々が、これらのバイオリアクタのうちの単一のものに関する温度データを有する場合に並列化できる。
【０２６２】
しかしながら、そのようなタスクがデータ並列であるためには、データは、タスクと整合するチャンクとして整理されていなければならない。これは、上記のシナリオの３００個のバイオリアクタの各々が、その温度データを、単一の対応するデータベースまたはロケーションに記憶している場合に成り立ち得る。しかしながら、３００個のバイオリアクタ全てに関するデータが単一のデータベースに記憶されており、データベース内でいずれの方法でも整理されていなかった場合、このデータは、何らかの種類の分析が起こり得る前に、再編成を必要とする。本明細書に記載されるシステムにおいては、データの再編成は、分析を実施するように構築された、ダイアグラム内の他のブロック（例えば、データフィルタリングブロック、クエリブロック等）によって取り扱われ得る。
【０２６３】
ジョブプロセス５０８の作成及び管理、ならびに様々なプロセッサ内におけるジョブプロセスの並列化及び分散は、実行サービスプロセス５０６の担当である。モジュールまたはブロックが実行される場合、そのモジュールまたはブロックがオンラインダイアグラムの一部として、またはオフラインダイアグラムの一部として実行されるかに関わらず、そのモジュールまたはブロックの構成は、ウェブサーバプロセス５０４から実行サービスプロセス５０６に送信される。実施形態においては、この構成は、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）ファイルとして送信されるが、この構成ファイルは、言語に依存しない、非同期のブラウザ／サーバ通信にとって好適である、任意のデータフォーマットを活用し得る。構成ファイルは、ダイアグラム６０２によって表される分析（またはその一部）が実行される環境の固有のソースコード、ならびに、その実行にとって必要とされる環境プロパティ及び変数の値を含む。
【０２６４】
ブロック定義は、任意の特定の環境における、そのブロックの実行を必要とせず、ターゲット環境は、そのブロック（またはそのブロックを含むモジュール）の構成の際に選択されるため、Ａｐｐｌｉｃａｔｉｏｎ、ブロック定義、または記憶されている、もしくは実行中のブロック及び／もしくはモジュールを書き換える必要無しに、新しいターゲット環境が、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅにおいて利用可能であるものに追加され得る。
【０２６５】
同様に、新しいブロック定義２５５は、予め構築されたモジュールのいずれにも影響を及ぼすことなく、あるいはＡｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００全体または具体的にはアプリケーションエンティティ５１４のオペレーションのいずれも変更することなく、任意の時間に、ブロック定義ライブラリ２５２に追加することができる。図５Ｂを再度参照すると、新しいブロック定義の作成及び追加は、実施形態においては、アルゴリズム定義ラッパ５２５によって実現される。アルゴリズム定義ラッパ５２５においては、ユーザまたは開発者は、定義ジェネレータ５２７を使用して、アルゴリズムを開発することによって定義を作成し得る。定義ジェネレータ５２７は、定義２５５’を生成し、その定義２５５’を、例えばデータベース５２９内のブロック定義ライブラリ２５２に記憶する。本説明の後の節においてより明確になるように、各ブロック定義２５５は、対応するデータプラグイン５２３を有し得、そのデータプラグイン５２３は、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００が把握しているロケーション（例えば、データベース５３１）に記憶され得る。データサービスエンティティ５２０は、アプリケーションエンティティ５１４が初期化／インスタンス化されるときに、ブロック定義２５５及びデータプラグイン５２３を回収し得、それらをアプリケーションエンティティ５１４に提供し得る。
【０２６６】
あるいは、新しいブロック定義を作成するよりもむしろ、一部の実施形態においては、ユーザによって定義されたブロック定義は、関連付けられるアルゴリズムを有さない場合もあるが、代わりに、ユーザがユーザ独自のコードを配置することができる、プロパティを含み得る。すなわち、ブロック定義２５５のうちの１つは、ユーザが、ユーザ独自のアルゴリズムをプロパティとしてブロックに入力することを可能にし得る。
【０２６７】
本明細書で使用する場合、用語「パラメータ（ｐａｒａｍｅｔｅｒ）」及び「パラメータ（ｐａｒａｍｅｔｅｒｓ）」は、それぞれ、構成ファイルに含まれ、かつ構成ファイル経由で実行サービスにパラメータとして渡される、ブロック（複数可）及び／またはモジュール（複数可）のプロパティ（ｐｒｏｐｅｒｔｙ）またはプロパティ（ｐｒｏｐｅｒｔｉｅｓ）を指す。パラメータとして構成ファイルで渡されるプロパティとしては、例として、ファイルパス、データセットの名称、選択される列、ＰＣＡ分析の結果において所望される構成要素の信頼水準及び数、ならびにコンパイラエンティティ５２６が実行可能なコードをコンパイルするために必要とされ、ジョブプロセス５０８がコンパイルされた命令を実行するために必要とされる任意の他の情報が挙げられ得る。すなわち、ブロックまたはモジュールの全てのプロパティが実行のために必要とされるわけではない。例えば、ブロックまたはモジュールの一部のプロパティは、そのブロックまたはモジュールがＤａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏにおいてどのように表示されるかを特定するか、あるいは別様にそれに関連し得、そのデータがどのように収集、操作、または処理／分析されるかについては影響を及ぼさない。
【０２６８】
ある実施形態においては、構成ファイルは、ブロック及び／またはモジュールの定義、ならびにまた、ブロック／モジュールをコンパイル及び実行するために必要とされる任意のプロパティも含む。ある代替的実施形態においては、構成ファイルは、ブロックの識別コード及び必要とされる構成パラメータのみを含み、ブロック定義は、メモリから（例えば、ブロック定義ライブラリ２５２から）回収される。とにかく、構成パラメータは、ブロック定義に従って変化し得る。一部のブロックは構成パラメータを有さない場合があり、一方で他のブロックは、１つ、２つ、または多数の構成パラメータを有し得る。加えて、構成パラメータは必須である場合があり、あるいは任意選択である場合がある。例えば、データロードブロック（データのセットをロードするブロック）またはクエリブロック（データセット内で特定のデータをサーチするブロック）は、データがロードまたは照会される場所を特定するデータパスを必要とし得る。しかしながら、列選択ブロックは、デフォルト選択として「全ての列」を有する場合があり、したがって、列のサブセットの選択の、具体的な主体的構成を必要とはしない場合がある。
【０２６９】
構成ファイルにおける他のパラメータとしては、環境パラメータが挙げられ得る。構成ファイルは、例としてであり限定ではないが、例えばワークフローもしくはその一部がオフラインで実行されるか、またはオンラインで実行されるかを特定する実行モード；ターゲット実行環境（例えば、Ｐｙｔｈｏｎ、ＰｙＳｐａｒｋ、Ｎａｔｉｖｅ  Ｓｐａｒｋ等）；実行がローカルであるか、または分散されるか；分散型環境の構成；ワークフローまたはワークフローの一部分がバインドされるストリーミングデータソースの指標；新しいジョブを作成するか、または持続的ジョブにバインドし、その実行を継続するかのオプション；持続的ジョブにまたがるデータをキャッシュするオプション；実行中のモデルの精度を評価する目的で、オンラインダイアグラムの実行に検証変数を含むオプション；あるいは他の環境変数を含み得る。
【０２７０】
ブロック、モジュール、及び／または環境パラメータの構成は、様々な方法のうちのいずれかで起こり得る。上記のように、例えば、多くのパラメータが、それぞれのブロックまたはモジュールにおいて設定されるプロパティに従って、構成ファイルに渡される。ダイアグラムを構築する際、（常にではないが）多くの場合、ユーザは、下流ブロックを構成及び／または実行し得る前に、特定のブロックを構成及び実行することが必要である。これは、ユーザが、データをロードするために第１のブロックを使用して、第２の下流ブロックをデータから列を選択するために使用する場合に当てはまる。ロードブロックは、ロードブロックを実行し得る前に構成されなければならず（例えば、データをロードするパス、ロードするデータの選択等を伴って）、データ内で利用可能な列が、ユーザによる列の選択が可能であるように第２のブロックに把握される前に、実行されなければならない。
【０２７１】
代替的または追加的に、１つ以上のパラメータが、ブロックまたはモジュールの実行について要求される際、構成ファイルに追加され得る。これは、例えば、ブロックまたはモジュールのプロパティのうちの１つについて、ユーザが特定しない場合に成り立ち得る。これはまた、１つ以上のプロパティが、実行に関して要求される際にのみ特定されるようにプログラムされている場合にも当てはまり得る。実施形態においては、例えば、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏは、ブロックまたはモジュールがいつ実行のために選択されるか、実行のターゲット環境、及び／またはブロックもしくはモジュールを実行するターゲットプロセッサもしくはプロセッサのバンクをユーザに特定させる。更に、一部の実施形態においては、構成ファイル中の１つ以上のパラメータが、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ環境自体から渡され得る。好ましい実行環境、処理が起こり得る／起こらなければならない物理的ロケーションに対する制限（例えば、クラウド実行の防止または要求）、及びその他等のパラメータが、アプリケーションから、アプリケーション内で実行される全てのブロック／モジュールについて、アプリケーション自体において特定され得る。これらのパラメータは、任意の特定のブロックまたはモジュールの実行が要求される際、構成ファイルに渡され得る。
【０２７２】
いずれにせよ、図５Ａをなおも参照すると、ジョブリスナエンティティ５２２は、ブロック（複数可）またはモジュール（複数可）を実行するという、構成ファイルによる実行要求を受信し、実行が要求されているブロック（複数可）及び／またはモジュール（複数可）に対応する、１つ以上のジョブマネージャエンティティ５２４を作成する。ジョブマネージャエンティティ５２４は、構成ファイルを受信し、特定されるターゲット実行環境に従って、ダイアグラムコンパイラエンティティ５２６のうちの１つ以上に構成ファイルを送信して、特定されるターゲット環境内のプロセッサによって実行可能な命令へとコンパイルさせる。ダイアグラムコンパイラエンティティ５２６は、ダイアグラムコンパイラエンティティ５２６の各々が、いくつかの特定されるターゲット環境のうちのいずれかへと構成ファイルをコンパイルするように動作可能であるように設計されてもよく、あるいはダイアグラムコンパイラエンティティ５２６の各々が、ただ１つの具体的なターゲット環境を特定する構成ファイルをコンパイルするように動作可能であるように設計されてもよい。いずれにしても、ジョブコンパイラエンティティ５２６の出力は、特定されるターゲット環境内のプロセッサによって実行可能である、コンピュータ可読命令である。
【０２７３】
ダイアグラムコンパイラエンティティ５２６に構成ファイルを送信するジョブマネージャエンティティ５２４は、コンパイルされた出力を、ダイアグラムコンパイラエンティティ５２６からジョブ実行部エンティティ５２８に送信する。ジョブ実行部エンティティ５２８は、ジョブのターゲット環境等に関する特定された構成パラメータに従って、コンパイルされた出力を実行するのに、どのリソース（複数可）（例えば、プロセッサリソース）が利用可能であるか、ジョブが分散されるべきか否か、ジョブがローカルであるべきかまたはリモートであるべきか、ならびに限定されるものではないが入力データのソース（複数可）及び出力データの行先（複数可）を含む、任意の／または他の変数を決定し、その後特定されたリソースを用いてジョブプロセス５０８を作成する。各ジョブプロセス５０８は、コンパイルされた出力を特定のターゲット環境において実行して、特定のターゲットアルゴリズム（すなわち、コンパイルされた命令によって特定された）を実装する。実施形態においては、ジョブプロセス５０８の一部または全てが、分散型データエンジン１５０に埋め込まれるビッグデータアナライザ１７０によって実行され得る。
【０２７４】
したがって、このフレキシブルなアーキテクチャにおいては、以下のシナリオのうちの少なくとも各々が可能である。単一のブロックまたはモジュールが、分散型の様式で複数のプロセッサにまたがって、複数のジョブプロセス５０８として実行されるシナリオ、単一のブロックまたはモジュールが、単一のプロセッサにおいてシリアルで、複数のジョブプロセス５０８として実行されるシナリオ、単一のブロックまたはモジュールが、単一のプロセッサにおいて、単一のジョブプロセス５０８として実行されるシナリオ、複数のブロックが、分散型の様式で複数のプロセッサにまたがって、対応する複数のジョブプロセス５０８として実行されるシナリオ等。また、概して、単一のブロックまたはモジュールに対応するジョブプロセス５０８は、同一のターゲット環境（例えば、Ｐｙｔｈｏｎ、ＰｙＳｐａｒｋ等）において実行されることが企図されるが、モジュール内の異なるブロック、またはプロジェクト内の異なるモジュールに関する全てのプロセスが、単一のターゲット環境において動作するという要件は存在しない。一部の事例においては、例えば、ある特定のターゲット環境が、モジュール内の１つのブロックと関連付けられるターゲットアルゴリズムを実現するのにより良好に適し得る一方で、モジュール内の他のブロックは、異なるターゲット環境においてより効率的に実行され得るため、ブロックは、それぞれのプロパティにおいて、異なるターゲット環境を特定するように構成され得、最終結果は、異なるブロックと関連付けられるジョブプロセス５０８は、異なる環境において実行されるというものになる。
【０２７５】
なおも更に、多くの事例においては、特定のモジュールまたはプロジェクトと関連付けられるブロックは、全て分散型であるか、あるいは全てローカルである、ジョブプロセス５０８において実行されることが予期される。しかしながら、上の記載の見地から、モジュールまたはプロジェクトの１つ以上のブロックをローカルで実行し、一方でモジュールまたはプロジェクトの他のブロックを１つ以上のリモートのプロセッサ（例えば、クラウドコンピューティング環境）において実行することで効率性を獲得できることは明白であろう。例えば、第１のブロックが、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００からは離れて配置されるデータベース（または他のデータストレージ）から特定されるデータを回収するようにクエリを実施し、第２のブロックが、そのクエリによって返されるデータに対して分析を実施するというダイアグラムを考慮されたい。このクエリを、データベースから離れたプロセッサにおいて実施するよりも、データベースに対してローカルであるプロセッサにおいて（例えば、データベースの埋込式ＤＤＥにおいて）ジョブプロセス５０８を作成して、その埋込式ＤＤＥに対してローカルであるデータにクエリを実施する方がより効率的であり得る。これは特に、ユーザが現在いるプロセス制御環境以外のプロセス制御環境に関するデータをユーザが照会するとき等、データベースが別の地域にある場合に当てはまり得る。次いで、クエリの結果は、同一のジョブプロセス（及びプロセッサ）、同一のプロセッサ内の異なるジョブプロセス、または異なるプロセッサ内の異なるジョブプロセス（例えば、ローカルのプロセッサ）のいずれかにおいて、第２のブロックに従って分析され得る。
【０２７６】
ジョブ実行部エンティティ５２８はまた、特に分散型処理アプリケーションにおいて、ジョブプロセス５０８の記録を取り、データ依存性の記録を取る。したがって、各ジョブプロセス５０８が完了する度に、出力データがジョブ実行部エンティティ５２８に返される。ジョブ実行部５２８は、そのデータの一部または全てが別のジョブプロセス５０８に受け渡されるか、かつ／あるいはウェブクライアントプロセス５０２による、アプリケーションエンティティ５１４における表示のために、ウェブサーバプロセス５０４に戻されるかを決定する。ジョブプロセス５０８の実行中、ジョブ実行部エンティティ５２８は、ステータス情報を受信し得、このステータス情報は、アプリケーションエンティティ５１４における表示のために、ウェブサーバプロセス５０４に戻され得る。ジョブプロセス５０８はまた、特にジョブプロセス５０８が、明確に停止されるまでは連続的に実行されるオンラインダイアグラム（またはオンラインダイアグラムの一部分）を実行しているときに、ジョブ実行部エンティティ５２８に予測的データを返し得る。予測的データは、予測的データが生成される度に、ジョブ実行部エンティティ５２８に戻され得、アプリケーションエンティティ５１４における表示のためにウェブサーバプロセス５０４に渡され得るが、一方で、予測的データは同時に、プロセス制御環境内のロケーション（例えば、ＤＤＥストレージロケーション、制御機能を実施するコントローラ等）に戻されて、オンラインダイアグラム内のブロックのうちの１つの関数として書き込まれ得ることに留意されたい。実施形態においては、ステータス、状態、及び／または予測的データは、ジョブプロセス５０８と、ジョブ実行部エンティティ５２８との間で、ジョブ作成中に確立されるバックチャネルストリーミング通信チャネルを経由して受け渡されて、ジョブプロセス５０８が、互いに、かつ／あるいはジョブ実行部エンティティ５２８と通信することを可能にする。
【０２７７】
下の実施例を通じて、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００を通るデータのフローは、少なくとも、構成されるブロック及び／またはモジュール、ブロックまたはモジュールの各々について構成されるプロパティ、ならびに実行されるダイアグラムがオフラインダイアグラムであるか、またはオンラインダイアグラムであるかに、ある程度依存することが明白になるであろう。
【０２７８】
実施例１−オフラインダイアグラムの作成
図５Ｄは、ブロック６０４ａ〜６０４ｇ及びワイヤ６０６ａ〜６０６ｈを含む、構成されたオフラインダイアグラム６０２をその上に有する、例示的キャンバス６００を描写する図である。図５Ａを再度参照すると、キャンバス６００は、ウェブクライアントプロセス５０２によって表示され、特に、アプリケーションエンティティ５１４と協働する表示エンティティ５１０によって表示される。アプリケーションエンティティ５１４は、データサービスエンティティ５１６を介して、データ（ブロック定義ライブラリ２５２を含む）を受信するが、このデータサービスエンティティ５１６は、サーバ通信エンティティ５１８を介して、ウェブサーバプロセス５４０と連通している。
【０２７９】
概して、図５Ｄに描かれるようなオフラインダイアグラム６０２を構築するためには、２つの方法が存在する。第１に、ユーザは、ブロック定義切り替え部２４８ｍを切り替えて、ブロック定義ライブラリ２５２を開くことができる（図４Ｄを参照）。ブロック定義ライブラリ２５２から、ユーザは、ブロック６０４ａ〜６０４ｇを１つずつ選択し、ブロック６０４ａ〜６０４ｇをキャンバス６００上に配置することができる。次に、ユーザは、様々なブロックを接続するために、ワイヤ６０６ａ〜６０６ｈを配置することができる。ブロック６０４ａの出力６０８ａとブロック６０４ｂの入力６１０ｂとの間にワイヤ６０６ａを配置、ブロック６０４ｂの出力６０８ｂとブロック６０４ｃの入力６１０ｃとの間にワイヤ６０６ｂを配置、ブロック６０４ｂの出力６０８ｂとブロック６０４ｄの入力６１０ｄとの間にワイヤ６０６ｃを配置、ブロック６０４ｂの出力６０８ｂとブロック６０４ｅの入力６１０ｅとの間にワイヤ６０６ｄを配置、ブロック６０４ｃの出力６０８ｃとブロック６０４ｆの入力６１０ｆ２との間にワイヤ６０６ｅを配置、ブロック６０４ｄの出力６０８ｄとブロック６０４ｇの入力６１０ｇとの間にワイヤ６０６ｆを配置、ブロック６０４ｄの出力６０８ｄとブロック６０４ｆの入力６１０ｆ１との間にワイヤ６０６ｇを配置、及びブロック６０４ｆの出力６０８ｆ１とブロック６０４ｇの入力６１０ｇとの間にワイヤ６０６ｈを配置。このようにブロック６０４ａ〜６０４ｇ及びワイヤ６０６ａ〜６０６ｈを配置した後、オフラインダイアグラム６０２は未構成のままで留まる。
【０２８０】
あるいは、ユーザは、ブロック６０４ａ〜６０４ｇを１つずつ選択及び配置し、各ブロックをキャンバス６００上に配置する度に各ブロック６０４ａ〜６０４ｇについてのプロパティを構成し、任意選択で（また、大部分の事例において）、ブロックについてのプロパティを構成した後、ブロック６０４ａ〜６０４ｇの各々を実行することができる。
【０２８１】
ユーザは、ブロックをクリックし、ブロックに関するブロックプロパティウィンドウ６１２において、ブロックと関連付けられるプロパティを特定することによって、ブロック６０４ａ〜６０４ｇの各々を１つずつ構成することができる（プロパティの構成前にブロック６０４ａ〜６０４ｇを配置し、ワイヤで繋げるか、あるいは１つずつ配置し、次のブロックを配置する前に各々についてのプロパティを構成するかに関わらず）。図５Ｄにおいては、ブロック６０４ａ、すなわちクエリブロックが選択され、クエリブロック６０４ａに関するブロックプロパティウィンドウ６１２が表示されている。図５Ｄに描写される例示的キャンバス６００においては、クエリブロック６０４ａに関するブロックプロパティウィンドウ６１２は、ユーザがクエリを入力することができる、クエリプロパティ入力領域６１４を含む。クエリ言語の詳細な説明は、明細書の後の節における考察のために保留するものの、現在の目的としては、クエリプロパティ入力領域６１４に入力されたクエリが、クエリブロック６０４ａの実行に際して照会されるデータのロケーションを特定し得ると仮定するのに十分である。ブロックプロパティは、ブロックと関連付けられる構成ファイル内のパラメータとして記憶される。構成ファイルは、ウェブクライアントプロセス５０２を実行するウェブクライアントに存在し得るか、あるいはウェブサーバプロセス５０４を実行するウェブサーバに配置され得る。
【０２８２】
クエリブロック６０４ａのプロパティを構成した後、ユーザは、典型的には、次の下流ブロックを配置する前、ならびに／または次の下流ブロック（この場合、ブロック６０４ｂ）のプロパティの構成を開始する前に、ブロック６０４ａを実行する。ブロック６０４ａを実行するために、ユーザは、評価ユーザ制御部２４８ｉをアクティブ化する。そうすることによって、ブロック６０４ａと関連付けられる構成ファイルは、ウェブサーバプロセス５０４のデータサービスエンティティ５２０を介して、実行サーバプロセス５０６に送信される。構成ファイルは、実行サーバプロセス５０６によって、例えばＪＳＯＮファイルとして受信され、ジョブリスナエンティティ５２２が、ジョブマネージャエンティティ５２４を作成して実行要求を処理する。ジョブマネージャエンティティ５２４は、適切なダイアグラムコンパイラエンティティ５２６に、構成ファイル中のパラメータによって特定されるターゲット環境にとって好適な、実行可能な命令（すなわち、コンパイルされたクエリコード）へと、構成ファイルをコンパイルさせる。ダイアグラムコンパイラエンティティ５２６は、コンパイルされたコードを含む出力ファイルを返し、また、コンパイルされたコードが適しているターゲット環境を示すメタデータを返し得る。（あるいは、ジョブマネージャエンティティ５２４は、コンパイルプロセス中、ターゲット環境の知識を保持してもよい。）ジョブマネージャエンティティ５２４は、出力ファイルをジョブ実行部エンティティ５２８に受け渡し、このジョブ実行部エンティティが、ターゲット環境に関する構成ファイルのパラメータに従って、コードがローカルで実行されるべきか、またはリモートで実行されるべきか、コードが分散型システムで実行されるべきか等を決定し、出力ファイルに含まれる命令を実行するプロセッサ及びメモリリソースを選択及び確保する。次いで、ジョブ実行部エンティティ５２８は、ジョブプロセス（複数可）５０８を作成して、出力ファイルを実行する。
【０２８３】
出力ファイルの実行が完了したとき（オフラインブロックまたはモジュールの場合において）、または結果が利用可能になると（オンラインモジュールの場合）、これらの結果はジョブ実行部エンティティ５２８に返される。この事例においては、保留中の更なる実行は存在しなかったため（ダイアグラムはオフラインダイアグラムであり、実行したばかりのブロック、すなわちクエリブロック６０４ａは構成された唯一のブロックであるためである）、結果は、サーバ通信エンティティ５０８を介してウェブサーバプロセス５０４に返され、最終的には、ウェブクライアントプロセス５０２におけるアプリケーションエンティティ５１４に返される。出力データは、クエリによって返されたデータの全てを含み得るが、（限定されるものではないが）クエリによって返されたデータの各列の平均値、標準偏差、及び中央値等の、クエリデータについての様々な統計的情報（メタデータ）も含み得る。実施形態においては、メタデータ及び結果のデータは、互いからは独立して記憶される。これによって、有利なことに、ユーザは、結果として生じたデータの全てのロード（時間及び／またはリソース、すなわちコンピュータメモリ集約的であり得る）を必ずしも伴わずに、結果として生じたデータについての情報をレビューすることが可能となる。ユーザは、ブロック上のブロック結果閲覧制御部２１２ａ（図４Ａを参照）をクリックすることで、返されたデータ及び／または返されたデータについてのメタデータを閲覧することができる。デフォルトビューは、結果に含まれる変数の各々についての結果に関するメタデータを含み得、ユーザが、結果として生じたデータの１つ以上の選択される部分を選択して、データの全てをロードする必要無しに、ロード、ならびに所望される場合、閲覧すること（例えば、グラフ、図表、表等の形態で）を可能にし得る。加えて、アプリケーションエンティティ５１４への結果の返却は、ワイヤ６０６ａによって、データ及び／またはメタデータが利用可能にされる、次の下流ブロック（この場合、ブロック６０４ｂ）のプロパティの構成を可能にする。
【０２８４】
ブロック（例えばブロック６０４ａ）の実行は、次の下流ブロック（例えばブロック６０４ｂ）を構成するために、全ての事例において必要とされるわけではないことに留意されたい。下流ブロックを構成及び／または実行できるようになる前に、あるブロックを構成及び／または実行しなければならないかどうかは、本開示全体の見地から理解されるように、データ依存性に依存することになる。
【０２８５】
実行中、ジョブプロセス５０８は、様々な分散型データエンジン１５０と通信して、ビッグデータストレージ１５５に記憶されているデータを受信またはそれにアクセスできることにも留意されたい。ジョブプロセス５０８が埋込式ビッグデータアナライザ１７０において実行されている事例においては、ビッグデータアナライザ１７０は、ビッグデータストレージ１５５に対して、直接または１つ以上のビッグデータ要求サービサ１６５を介して、通信可能に連結され得るあるいは、ジョブプロセス５０８が、埋込式ビッグデータアナライザ１７０の一部ではないプロセッサにおいて実行されている事例においては、ジョブプロセス５０８は、ネットワークを介してＤＤＥと通信可能に連結され得、ビッグデータ要求サービサ１６５を介して、データを要求し得る。
【０２８６】
オフラインダイアグラム６０２のブロック６０４ｂ〜６０４ｇの各々のプロパティの構成及び実行は同じ様式で継続し、極めて詳細に述べる必要はない。
【０２８７】
Ａ．探査及びモデル化のためのオフラインダイアグラムの使用
Ｏｆｆｌｉｎｅダイアグラムを扱っている、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎのユーザは概して、以下の２つのうちの一方、または両方を行うことを期待している。（１）様々なデータのセットを探査して、様々なデータセット及び／または事象間の関係性を探究及び発見すること、ならびに（２）リアルタイムの連続的予測能力を実装することを目的として、それらの関係性のモデルを作成すること。後者を実現するには、前者への取り組みに費やされた時間の何らかの尺度が必要となる。すなわち、（全てではないが）多くの事例においては、ユーザは、データセットを探査して、様々な分析ツール（主構成要素分析、フーリエ解析、回帰分析等）を用いてデータ間の関係性を見つけ、予測値を有するように考えられる関係性が見つかった場合、ユーザは、その分析をモデルとして実装し、それをプロセスのリアルタイム連続分析に採用する。
【０２８８】
実施形態においては、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅ５００は、リアルタイムデータもしくはヒストライズされたデータ、または両方であるかに関わらず、データの分析を自動的に実行して、プロセス環境内の変則、異常状態、データ間の関係性、及び／または特定のデータセットの特色を発見する、ツールを含み得る。ある実施形態においては、ブロック定義ライブラリ２５２は、データを観察し、そのデータ中の不規則なスパイクまたは下落等の、レビューしているデータセットの文脈における変則を発見するブロック２５５を含む。オフラインダイアグラム中のそのような変則発見ブロックは、ヒストライズされたデータを入力として受信して、例えばＰＬＳ、ＰＣＡ、及び他の種類の分析を含む上記の技法のうちの一部を更に用いて、探査するのに興味深くあり得るヒストライズされたデータの特色を探すことができる。代替的または追加的に、オンラインダイアグラム中の変則発見ブロックは、ヒストライズされたデータ及びリアルタイムデータの両方を受信し、ヒストライズされたデータをリアルタイムデータと比較して、ヒストライズされたデータに対するリアルタイムデータ内の変則を探すことができる。どちらの場合でも、変則発見ブロックの出力は、変則的事象が起こった時間、変則的データのソース（複数可）（例えば、どの測定値及び／またはデバイスがその変則と関連付けられるか）等のうちの１つ以上を含み得る。
【０２８９】
ある実施形態においては、ブロック定義ライブラリ２５２は、様々なデータ間の関係性を自律的に発見するブロック２５５を含む。関係性発見ブロックは、ランダムまたは準ランダムのデータのセット（時間で整列されている）を選択し得、これらのデータのセットに対していくつかの異なる分析を実行して、ユーザにとって興味深くあり得る関係性、特に因果関係または予測的関係を探すことができる。無論、データのセットの真ランダムな選択は、有用な結果を多く生み出す可能性は低い。しかしながら、データセットの選択は、例えば、物理的ロケーション、プラントの階層構造、またはデータ間の関係性が存在する可能性があることを示唆し得る他の証拠によって左右され得る。
【０２９０】
一部の実施形態においては、関係性発見ブロックは、変則発見ブロックと協働して、データ間の関係性を発見し得る。例として、変則発見ブロックは、様々な変則が様々なデータセットで起こる時間を出力し得る。変則発見ブロックは、ある実施形態においては、変則的事象の時間を記憶し、事象変則的事象が異なるデータセットにおいて同時または近接した時間で起こる場合、変則発見ブロックの１つの出力は、互いに対して時間的に近接して変則的事象を経験したそれらのデータセットに対応するデータセットのリストであり得、変則発見ブロックの別の出力は、それらの変則が起こった時間のリストであり得る。関係性発見ブロックは、変則発見ブロックの出力を入力として受信し得、関連する期間の関連するデータセットを、可能性としては、他のデータセット及び／またはより長い期間（例えば、変則が起こった時間の前後でいくらか長い時間延長した期間）と共にロードして、様々な種類の分析をそのデータに適用し、データ間の因果関係または少なくとも予測的関係を探究し得る。
【０２９１】
あるいは、関係性発見ブロックの１つ以上のプロパティは、ユーザがデータの関係性を見つけることを希求する、特定のデータセット（例えば、特定のプロセス変数についての値）を示し得る。関係性発見ブロックは、物理的ロケーション、プラントの階層構造、論理関係等によって関連する他のデータと、特定されたデータセットとの間の関係性を自律的に探究し、ある特定の判定基準（例えば、９５％の予測信頼度、０．７５の相関値等）を満たす１つ以上の因果関係または予測的関係が見つかるまで、そのデータに対して異なる分析を実施し得る。
【０２９２】
無論、関係性発見ブロックまたは変則発見ブロック等の任意の自動的ブロックは、オフラインダイアグラムまたはオンラインダイアグラムにおいて動作可能であるように企図される。
【０２９３】
いずれにせよ、典型的には、ユーザは、キャンバス６００上のダイアグラム６０２等のオフラインダイアグラムを、キャンバス２４５上に作成する。ダイアグラムの作成は、１つ以上のブロック６０４をキャンバス６００上に配置し、各ブロック６０４のプロパティを１度に１つのブロックずつ構成し、各ブロック６０４を、次のプロパティを構成する前に実行することで、概して上記のように進行する。ユーザは、ブロック６０４と関連付けられるデータ要約ユーザ制御部をクリックして、ブロックのデータについての様々な統計（例えば、平均値、中央値、標準偏差等）を見ることで、ダイアグラムにおける任意の点で、データを批判的に眺めることができ、あるいは、データを探査するために、ブロック６０４の出力６０８に（ワイヤ６０６を介して）ブロックを接続することもできる（例えば、図５Ｄのブロック６０４ｅ）。ユーザが、探査ブロックが接続されているブロックまで、それを含んで、オフラインダイアグラム中のブロックを実行したと仮定すると、ユーザは、その探査ブロックを使用して、データを様々なグラフで閲覧したり、データと関連付けられるメタデータを見たり等することができる。例えば、オフラインダイアグラム６０２においては、探査ブロック６０４ｅは、データがブロック６０４ｂによって処理された後のデータをユーザが見ることを可能にする。同様に、探査ブロック６０４ｇは、ＰＬＳブロック６０４ｆ及びＣｏｌｕｍｎブロック６０４ｄからデータを受信する。後者の場合、探査ブロック６０４ｇは、ユーザが、ＰＬＳモデルの出力を視覚化し、その出力を、ＰＬＳモデルを作成するのに使用された（ブロック６０４ｄからの）その変数の実測値と比較することを可能にし得る。ユーザは、データのグラフを見ることで、ＰＬＳモデルがプロセスにおける何らかの予測値を有するように、プロセスを正確に表しているかどうかを判定することができ得る。
【０２９４】
実施形態においては、ブロック２５５と関連付けられるデータ要約ユーザ制御部は、ブロックの種類及び機能に対して特異的である。データをロードするブロック（例えば、クエリブロックまたはロードブロック）は、例えば、データ要約ユーザ制御部が、アクティブ化されたときに、クエリによってロードまたは返されるデータを特徴付ける、様々な統計的データの表示をもたらすように、プログラムされ得る。このデータは、実施形態においては、データに含まれる各データソースについての平均値、中央値、標準偏差、最大値、及び最小値を含み得る。対照的に、データに対して分析（例えば、ＰＬＳまたはＰＣＡ分析）を実施するブロックは、データ要約ユーザ制御部がアクティブ化されるとき、異なるデータを表示し得る。分析ブロックは、１つ以上のＲ−二乗値、ＰＬＳ及び／またはＰＣＡ分析に関する係数、分散値、観察カウント（例えば、特定のデータソースに関して、時系列値がいくつ含まれているか）、ならびにユーザがどのデータ（すなわち、どのデータソースからのデータ）を閲覧するかを選択できるカスタマイズ可能なグラフを表示し得る。探査ブロックはまた、実施形態においては、そのデータ入力（複数可）が接続するデータ出力（複数可）に応じて、異なる方法で振る舞う。すなわち、探査ブロックにおいて表示される、ならびに／または表示にとって利用可能であるデータのフォーマット及び種類は、探査ブロックへの入力を生成するブロックの種類に依存し得る。
【０２９５】
図５Ｄを参照すると、オフラインダイアグラム６０２は単に、多くの可能性のうちの１つのダイアグラム構成に過ぎないが、その機能をここで一般的に説明する。オフラインダイアグラム６０２は、クエリブロック６０４ａで開始され、このクエリブロックの目的は、特定のデータのセットを探し、それを分析のためにロードすることである。この特定のデータのセットとは、単に１つの例を提供するだけだが、３つの特定の時間において異常なばらつきを呈示した特定のプロセス変数に関する、ヒストライズされたプロセス制御データであり得る。しかしながら、概して、クエリブロック６０４ａは、限定されるものではないが、ビッグデータストレージ１５５の任意のデータ、データソース１６８のうちの１つ以上に記憶及び／またはキャッシュされているデータ、気象データソース、サプライチェーンデータソース、デリバラブルな追跡データソース等の外部データソースに記憶されているデータを含む、任意の記憶されているデータを照会できる。実施形態においては、データベースまたはドキュメント記憶（図示せず）は、Ａｎａｌｙｔｉｃｓ  Ｓｅｒｖｉｃｅと関連付けられるオンライン及び／またはオフラインダイアグラムについて記載するドキュメント（例えば、ＪＳＯＮドキュメント）を記憶し、この場合、クエリブロック６０４ａは、そのデータベースまたはドキュメント記憶を、実施される計算の種類、計算において使用されるデータのソース（複数可）、結果の質等に関して照会するように構成され得る。後者の種類のクエリは、有利なことに、ダイアグラムの履歴または知識ベースの構築を可能にし得る。クエリブロック６０４ａは、そのプロセス変数及びいくつかの数の他のプロセス変数の値を選択するように構成することができ、更には、サンプルレート、ならびに／または特定のプロセス変数及び他のプロセス変数の値のみを、例えば、３つの事象の各々の１時間前から１時間後に対応する時間の範囲内で選択するように構成することもできる。すなわち、クエリは、離れた複数の時間範囲を選択し、任意の数の変数（このうち少なくとも１つは、ユーザが予測を所望するものである）について、それらの時間範囲中に生成されたデータを探し得る。
【０２９６】
いったん実行されると、クエリブロック６０４ａによって受信されたデータは、Ｆｉｌｌブロック６０４ｂによって使用され得る。例示的ダイアグラム６０２においては、Ｆｉｌｌブロック６０４ｂが、変数が値を有しないが、その他の変数のうちの１つは値を有した時間に対応する、変数についてのデータを埋め得る。すなわち、照会された値のうちの１つが、別の値よりも高頻度でサンプリングされている場合、Ｆｉｌｌブロック６０４ｂは、より高頻度のサンプリングされた変数の頻度に釣り合うように、より低頻度のサンプリングされた変数について、値を挿入し得る。実施形態においては、Ｆｉｌｌブロック６０４ｂは、より低頻度のサンプリングされた変数の値を外挿し得る。例えば、より低頻度のサンプリング変数のサンプル間に、より高頻度のサンプリング変数の値が４つ発生する場合、ブロック６０４ｂは、より低頻度のサンプリング変数の２つの連続する値（例えば、１．０及び６．０）の間での差異を見つけ、４で割り、「欠けている」４つの値を連続的により大きくなるか、またはより小さくなる値（例えば、２．０、３．０、４．０、及び５．０）で埋めてもよく、これにより、より高頻度のサンプリング変数の全ての値に対して、より低頻度のサンプリングされた値について、対応する値が存在することになる。（無論、リアルタイム分析においては、後の値は未だ知られていないため、この方法は、値を埋める方法として妥当ではない。）他の実施形態においては、Ｆｉｌｌブロック６０４ｂは、単に、より低頻度のサンプリングされた値について最も直近の値で、「欠けている」値を埋める場合がある。上で使用される実施例においては、欠けている値は、各々、１．０という値で埋められる。
【０２９７】
データを見つけ、値を挿入して、欠けている値の無いデータセットを作成した後、Ｆｉｌｌブロック６０４ｂの出力は、３つのブロック、探査ブロック６０４ｅ、第１の列ブロック６０４ｃ、及び第２の列ブロック６０４ｄに対して提供される。探査ブロック６０４ｅについては上に記載されている。第１及び第２の列ブロック６０４ｃ及び６０４ｄは、それぞれ、データから変数（列）を引き出すように動作する。データは、各列が変数を表す表に記憶され、各列内の行は、異なる時間におけるそれぞれの変数の値を表す（すなわち、時系列データ）。第１の列ブロック６０４ｃは、例えば、異常なばらつきを呈示したプロセス変数以外の変数についてのデータを含む列の全て（すなわち、変数の全て）を選択し得、一方で、第２の列ブロック６０４ｄは、例えば、異常なばらつきを呈示したプロセス変数についてのデータを含む列を選択し得る。
【０２９８】
列ブロック６０４ｃ及び６０４ｄの各々の出力は、ＰＬＳブロック６０４ｆに送信される。ブロック６０４ｆの入力６１０ｆ２は、ある実施形態においては、独立変数、説明変数、または入力変数の値を受け入れるように構成され得、一方で、ブロック６０４ｆの入力６１０ｆ１は、従属変数、被説明変数、または出力変数の値を受け入れるように構成され得る。モデルブロック（例えば、オフラインダイアグラム６０２におけるＰＬＳブロック６０４ｆ）に対する入力の特定の配列及び／または機能がダイアグラム６０２において示されているが、入力の配列及び機能は、ブロックの機能、入力の種類、入力の数等に応じて異なり得る。
【０２９９】
ブロック６０４ｆの出力６０８ｆ１は、探査ブロック６０４ｇにワイヤでつながれる。したがって、探査ブロック６０４ｆは、ＰＬＳブロック６０４ｆによって出力された値、及び異常なばらつきを呈示した変数の値を受信することになる。ユーザは、探査ブロック６０４ｇを用いることで、ブロック６０４ｆの出力が、任意の所与の時間において従属変数と比較してどうであるかを見ることができ、予測値を決定することができる。ブロック６０４ｆの出力６０８ｆ２は、図５Ｄの他のどのブロックにもワイヤでつながれていないが、ブロック及びワイヤの一部のプロパティを例証するものである。具体的には、出力６０８ｆ２は、オブジェクト出力である。オブジェクト出力は、コードを出力するように動作可能であり、この事例においては、例えば、オブジェクト出力は、プログラムされる通り、モデル、データ、及び出力を含む感度モデルを出力する。無論、これは、出力６０８ｆ２に接続されるワイヤが、そのワイヤを通じてモデルを必ず運搬できることを意味する。そのワイヤを新しいブロッククラウドの入力に接続することで、例えば、上流のダイアグラム全体を伴うブロックがプログラムされて、機能性及びデータの全てを含むブロックが作成される。
【０３００】
したがって、現在明白であるように、ユーザは、オフラインダイアグラム６０２を反復的に修正し、結果を探査して、所与の変数について所望の予測値を有するダイアグラムを構築することができる。そのようにする際、ユーザは、異なるデータのセット、同じデータのセットの異なるサブセット、異なるモデリング／分析技法等を使用できる。換言すれば、ユーザは、異なるデータのセットを照会またはロードすることができ（例えば、オフラインダイアグラム６０２における、ブロック６０４ａの交換、または修正、または追加）、異なる変数の予測を試みることで、データを別様に分割でき（例えば、ブロック６０４ｃ及び６０４ｄの各々において選択される列を変更することによって）、異なる種類の分析（ＰＣＡ、ＰＬＳ等）、及び／または特定の分析について異なるプロパティを試みること等ができる（例えば、ブロック６０４ｆを交換または修正することで）。
【０３０１】
上の実施例の見地から、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ及び付随するＡｎａｌｙｔｉｃａｌ  Ｓｅｒｖｉｃｅｓが、膨大な量のデータが収集される多くのシステムにおいて、好都合な有用性を有することが明確となろう。プロセス制御システムに関しては、プロセス制御環境は、比較的近年、収集及び記憶するデータの量を拡大しており、一部の事例においては、環境内で生成される全てのデータを含むようになっている。過去のシステムもかなりのデータを生成していたが、それらのシステムはプロセス制御に関してそのデータの僅かな部分しか使用しておらず、例えば、それをプロセス制御アルゴリズムに供給し、その一部をオペレータワークステーションに表示していた。相対的にデータのほとんどが、後の分析及び／または使用のために記憶されることはなかった。１秒間に１回サンプリングされるある変数の値は、例えば、事後分析に対する必要性と、ストレージ及びネットワーク能力の限界とのバランスを取るために、１分間に１回しか記憶されない場合がある。更に、記憶されたデータは、多くの場合圧縮され、信頼性が低いデータを結果としてもたらした。
【０３０２】
対照的に、現在のシステムは、プラントにおいて生成されるデータの遥かに多くを記憶する。実施形態においては、そのようなシステムは現在、サンプルが記録される度に全ての変数値を記憶し、また、オペレータ入力、オペレータ対オペレータのメッセージング、ビデオ等、かつてヒストライズされたことのないデータも記憶する場合がある。本明細書に記載されるＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ及びＡｎａｌｙｔｉｃ  Ｓｅｒｖｉｃｅｓは協働して、他のデータ（例えば、他のプラントからのデータ、気象データ等）も加えたこれらのデータの全ての探査、及び以前には見過ごされるか確認不可能であった可能性がある関係性の発見を容易にする。様々なプロセス値の間の関係性、ならびにプロセス値の、及びプロセス値間の相互作用を発見することの結果として、プラントエンジニア、オペレータ、及び保守要員は、プロセスプラントをより良好に設計、構築、運転、及び整備することができ、これはひいては、より安価、より効率的、より容易に運転及び整備され、より良好に製品を生産し、環境に対する負の影響がより少なく、かつ職員及び周辺のコミュニティにとってより安全であるプロセスプラントにつながる。
【０３０３】
Ｂ．オンラインダイアグラムの作成
無論、発見された関係性をプロセスのオペレーションの改善に向けて採用し得る１つの方法は、発見された関係性を用いて、リアルタイム連続予測を実施することによるものである。具体的には、値の１つのセットを、別の値（複数可）（または何らかの事象（複数可）の発生）を予測するために使用できるように、プロセスの履歴データにおいて、プロセス値間または他のデータ間の１つ以上の関係性を発見することで、発見された関係性を使用して、プロセスからのリアルタイムデータを見て、同じ値（複数可）（または同じ事象（複数可）の発生）を予測することができる。ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ及びＡｎａｌｙｔｉｃ  Ｓｅｒｖｉｃｅｓが、下に記載されるように、予測的分析を実施するための、発見された関係性の使用を容易にする。
【０３０４】
ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎは、それがオフラインダイアグラム（オフラインダイアグラム６０２等）をオンラインダイアグラム（すなわち、少なくとも１つのリアルタイム値を用いて、プラントオペレーションのある態様を予測するもの）に変換できるようにさせる機能性を含む。上記のように、オンラインダイアグラムは、少なくとも１つのリアルタイムデータソースにバインドする（完全に、ヒストライズされたデータにのみバインドするのではなく）という点においてオフラインダイアグラムとは異なり、リアルタイムの連続予測的出力を提供し、この出力を、制御アルゴリズムにおいて閲覧、記憶、及び／または使用して、アラーム、アラートをトリガし、プロセスプラントのオペレーションにおける変更をもたらすことができる。
【０３０５】
オフラインダイアグラムが少なくとも１つのモデル生成ブロックを含む限り、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎのユーザは、Ｏｎｌｉｎｅ切り替えユーザ制御部２４８ｆをアクティブ化することができ、オフラインダイアグラムは、自動的にオンラインダイアグラムへと変換され、キャンバス２４５上に表示されることになる。再度図５Ａを参照すると、オフラインダイアグラムからオンラインダイアグラムへの変換は、実施形態においては、ウェブサーバプロセス５０４のダイアグラムトランスフォーマエンティティ５３０を経由して実現される。
【０３０６】
その最も単純な実施形態においては、ダイアグラムトランスフォーマエンティティ５３０は、モデル生成ブロック（例えば、オフラインダイアグラム６０２中のＰＬＳブロック６０４ｆ）の場所を突き止め、あらゆる出力ワイヤ（例えば、ワイヤ６０６ｈ）を取り除き、モデル生成ブロックの出力と、書き込みブロックの入力との間にワイヤを接続する。書き込みブロックは概して、モデルから出力された値を、データストレージロケーション、プロセス制御アルゴリズム（例えば、コントローラもしくはプロセス制御デバイスの機能ブロックにおいて、制御アルゴリズムを実行する）に、及び／またはＤａｓｈｂｏａｒｄに書き込む。ダイアグラムトランスフォーマエンティティ５３０はまた、オフラインデータローディングブロックを、対応するオンラインデータローディングブロックと交換し、このオンラインデータローディングブロックは、ヒストライズされたデータのバッチをロードするのではなく、プロセス制御環境からの少なくとも１つのリアルタイムデータソースにバインドする。
【０３０７】
しかしながら、様々な他の実施形態において、ダイアグラムトランスフォーマエンティティ５３０は、オフラインダイアグラムにおいて単に２つのブロックを交換すること以上のことを行うように動作可能である。一部の実施形態においては、ダイアグラムトランスフォーマエンティティ５３０は、オフラインダイアグラムからブロックを積極的に取り除いて、オンラインダイアグラムを作成する。例えば、モデルを作成するために、モデルブロックが２つの入力を必要とする場合（例えば、一連のＸ変数及びＹ変数）、これら２つの入力は異なるブロックで生成されることになる。しかしながら、開発したモデルを実装するときに（すなわち、オンラインダイアグラムにおいて）、モデルが１つの入力しか有さない場合、先には他方の入力にデータを提供していたブロックは最早必要ではなく、取り除くことができる。別の例としては、ダイアグラムトランスフォーマエンティティ５３０は、オンラインダイアグラムを作成するとき、探査ブロック（例えば、図５Ｄの探査ブロック６０４ｅ）を取り除き得る。
【０３０８】
一部の実施形態においては、ダイアグラムトランスフォーマ５３０は、各ブロックの種類についてオフライン及びオンラインのスキーマを提供するスキーマライブラリ（図示せず）を参照し得、これらのスキーマは、どの入力及び出力がブロックのオンラインバージョン及びオフラインバージョンと関連付けられるか、どのデータソース（複数可）にブロックがアクセスするか等を定義する。代替的実施形態においては、ブロック定義ライブラリ２５２の各ブロック定義２５５は、ブロックに関するオンライン及びオフラインのスキーマの両方を定義する。
【０３０９】
一部の実施形態においては、ダイアグラムトランスフォーマエンティティ５３０は、オフラインダイアグラムのオンラインダイアグラムへの変換中に、任意選択のオペレーションを実施する、または実施しないように構成することができる。例えば、任意選択のオペレーションの一部としては、限定されるものではないが、予測値をプロセス制御アルゴリズムへの入力として使用できるように、予測値にタグ付けすること、予測値の連続グラフをＤａｓｈｂｏａｒｄ上に出力すること、及び分散型データエンジンに予測値を書き込むことが挙げられ得る。一部の場合においては、ダイアグラムトランスフォーマエンティティ５３０によって生成される出力の少なくとも一部は、分析及び／または制御システムビジュアリゼーション（フェイスプレート、Ｔｒｅｎｄｉｃｏｎ等）のために提供され得る。
【０３１０】
データローディングブロック（ロード、クエリ等）がバインドするリアルタイムソース、モデルブロックの出力が公表されるロケーション（複数可）、及び／または出力データと関連付けられる仮想タグもまた、実施形態においては、所与の実施形態が各オプションを実装する程度に各々構成可能である。実施形態においては、各々は、ウェブクライアントプロセス５０２に存在するアプリケーションエンティティ５１４の実施形態において、例えば、モジュールプロパティ及び／またはブロックプロパティとして構成される。例えば、あるモジュールのモジュールプロパティは、図５Ｆに概して描写されるように、データ公表ロケーション及びリアルタイムデータバインディングロケーションを含み得る。図５Ｆにおいては、モジュールプロパティダイアログ６３０は、ユーザがモジュールプロパティ制御部６３２をアクティブ化したとき、モジュールについて表示される。モジュールプロパティダイアログ６３０は、モジュール名称フィールド６３４を含み、これによってユーザは、モジュールの名称を入力することができる。モジュールプロパティダイアログ６３０はまた、Ｐｏｓｔフィールド６３６も含み、これによってユーザは、実行中にオンラインダイアグラムによって出力されるデータがどこに書き込まれるべきか（すなわち、公表されるべきか）を特定することができる。データが公表されるロケーションは、データがヒストライズされるストレージロケーションか、公表された値を制御アルゴリズムに対する入力として使用して、プロセスプラントのオペレーションを制御する、プロセス制御環境内の制御モジュールか、またはその両方であり得る。ユーザ制御部６３６ａは、利用可能なロケーションをグラフィカルなフォーマット（例えば、ツリーフォーマット、ディレクトリ構造、任意選択のロケーションのリスト等）で閲覧することで、データが公表されるロケーションをユーザが選択することを可能にする、エクスプローラウィンドウを開き得る。同様に、フィールド６３８は、オンラインダイアグラムの実行中に、オンラインデータのソースとしてバインドするデータパスをユーザが特定することを可能にする。ユーザ制御部６３８ａは、同様に、データがそこから受信されるロケーションをユーザが選択することを可能にする、エクスプローラウィンドウを開く。
【０３１１】
あるいは、オフラインブロックは、ブロックのオフラインバージョンに関するプロパティを含み得、ブロックのオンラインバージョンは、ブロックのオンラインバージョンについて、同様のプロパティを含み得る。例えば、ロードブロックは、ブロックのオフラインバージョンにおいて、「ソースパス」（例えば、＼ＤＤＥ＿ｐａｔｈ＼ｄｅｖｉｃｅ＿ｔａｇ）プロパティを有し得るが、ブロックのオンラインバージョンにおいては、「デバイスタグ」（例えば、＼ｕｎｉｔ１＼ｄｅｖｉｃｅ＿ｔａｇ）プロパティを有し得、これが、ロードブロックによる、オフラインブロックのソースパスに記憶されたデータに対応するソースからのリアルタイムデータの読み込みを可能にする。同様に、オンラインダイアグラムの書き込みブロックは、出力データが書き込まれるべきロケーションを特定するプロパティを有し得る。
【０３１２】
更に別の代替形態として、今度は図５Ｇを参照すると、オフラインダイアグラム６４０中のブロックは、各々、オフラインオペレーション及びオンラインオペレーションの両方についての構成を有し得る。例として、ロードブロック６４２が選択されてもよく、関連するブロックプロパティダイアログ６４４を有してもよい。ブロックプロパティダイアログ６４４は、ブロック名称フィールド６４６を含み、これによってユーザは、ブロックの名称を入力することができる。ブロックプロパティダイアログ６４４はまた、オフラインソースフィールド６４８も含み、これによってユーザは、オフラインダイアグラム中で、ロードされるべきデータがどこで見つかるかを特定することができる。ロードされるデータが記憶されるロケーションは、例えば、データがヒストライズされるストレージロケーションであり得る。ユーザ制御部６４８ａは、利用可能なロケーションをグラフィカルなフォーマット（例えば、ツリーフォーマット、ディレクトリ構造、任意選択のロケーションのリスト等）で閲覧することで、そこからデータがロードされるロケーションをユーザが選択することを可能にする、エクスプローラウィンドウを開き得る。同様に、フィールド６４９は、オンラインダイアグラムの実行中に、オンラインデータのソースとしてバインドするデータパスをユーザが特定することを可能にする。ユーザ制御部６４９ａは、同様に、データがそこから受信されるロケーションをユーザが選択することを可能にする、エクスプローラウィンドウを開く。無論、制御部６４８、６４８ａ、６４９、６４９ａは、ブロック定義において特定される任意の制御部であり得、先に記載されたように、適切なプラグインの実行を呼び出し得る。
【０３１３】
実施形態においては、一方では、オフラインブロックがそこからデータを回収／照会する、記憶されているヒストライズされたデータに対するパスと、他方では、オンラインブロックがバインドし得る、リアルタイムデータの対応するソースとの関係性は、データソースマネージャモジュール５３２によって管理される。データソースマネージャモジュール５３２は、ウェブサーバプロセス５０２の一部として統合されてもよく、ダイアグラムトランスフォーマエンティティ５３０の一部として含まれてもよく、あるいは単に、オフラインダイアグラムをオンラインダイアグラムに転換するとき、ダイアグラムトランスフォーマエンティティ５３０が参照するルックアップテーブルであってもよい。少なくとも一部の実施形態においては、データソースマネージャモジュール５３２は、ビッグデータ要求サービサ１６５と協働して、オンラインブロックの要件に従って、リアルタイムデータのストリームを設定する。
【０３１４】
図５Ｅは、図５Ｄのオフラインダイアグラム６０２に対応するオンラインダイアグラム６２２を描写する。オンラインダイアグラム６２２は、ブロック６２４ａ、６２４ｂ、６２４ｃ、６２４ｆ、及び６２４ｈ、ならびにワイヤ６２６ａ、６２６ｂ、６２６ｅ、及び６２６ｊを含む。ブロック及び／またはワイヤが、オフラインダイアグラム６０２中のものに対応する場合、ブロックと関連付けられる文字は同じものである。
【０３１５】
オンラインダイアグラム６２２のオペレーション及び実行は、上記のオフラインダイアグラム６０２の場合と概して同じ方法で進行する。プロパティの全てが構成されれば、オンラインダイアグラム６２２（及び構成ファイル（複数可）に記憶される、関連付けられるパラメータ）は、展開ユーザインターフェイス２４８ｊをエンゲージすることで、「展開」できる。制御部２４８ｊのアクティブ化は、構成ファイルを実行サービスプロセス５０６に送信し、ここで、構成ファイルは、構成ファイル中のパラメータに従ってコンパイルされる。しかしながら、１つ以上のジョブプロセス５０８として実行される場合、データ分析ネットワークインターフェイス１７５を介してビッグデータストレージ１５５からデータをダウンロードまたは照会する代わりに、ジョブプロセス５０８は、例えば、ビッグデータレシーバから、またはビッグデータ要求サービサ１６５のうちの１つによってセットアップされるストリームを通じて直接、リアルタイムデータを受信する。また、出力データをジョブ実行部５２８に送り戻して、ダッシュボード上での表示のために、ウェブサーバプロセス５０４のサーバ通信エンティティ５１８を介して、アプリケーションエンティティ５１４にのみ送信するのではなく、ジョブプロセス５０８は、出力データを、ビッグデータストレージ１５５、及び／またはデータソースのうちの１つ以上（例えば、コントローラ、他のＤＤＥ等）に公表してもよい。
【０３１６】
工業パフォーマンス監視／分析用のクエリ言語
工業パフォーマンス監視／分析システム１００が動作する、プロセス制御システムまたは環境と関連付けられるデータソースは、典型的には時系列データを提供するが、他の種類のデータも使用され得る（例えば、１つ以上のプロセスプラント５において別個に実行される複数のバッチからの横断的データ）。時系列データは、フィールドデバイス１５〜２２及び４０〜４６を含む、プロセスプラント５内の様々な種類の測定デバイスからの様々な種類のデータ測定値を含み得る。データソースは、それらのフォーマットにおいて、一般的に知られているものから著作権のあるフォーマット、例えば、ＯＳＩＳｏｆｔ  ＰＩ、ＤｅｌｔａＶ  Ｈｉｓｔｏｒｉａｎ、ＳＥＥＱ、ＦＦ３、及び／またはスプレッドシートに手動で捕捉されたフォーマットに至るまで、広い範囲にわたって異なり得る。一部のデータソースがリレーショナルデータベースを含み得る一方で、他のデータソースは非リレーショナル（ＮｏＳＱＬ）データベースを含み得る。なおも更なるデータソースは、データベースではない場合があり、代わりにファイルディレクトリまたはドキュメント（例えば、ＸＭＬドキュメント）内のテキストを用いてデータを記憶する。クエリ構文における差異に加えて、データソースの多様性が、データが記憶される方法の差異により、根本的に異なるクエリ構造を必要とし得る。例えば、Ｍｏｎｇｏ等のドキュメント指向非リレーショナルデータベースは、ＭｙＳＱＬ等のリレーショナルデータベースにおける、ＳＱＬクエリを通じてアクセス可能な表形式ではなく、ドキュメントに基づいてデータを記憶する。したがって、異なる種類のデータソースに記憶されるデータについてのクエリは、フォーマット及び構文の差異に加えて、別個の構造及び規則を採用する。様々なデータソースの下のクエリメカニズムの各々を使用して、その中に記憶されるデータにアクセスするのではなく、本明細書に記載される工業パフォーマンス監視／分析システム及び技法（ならびに、特に、ＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎ）は、図６Ａに示されているように、標準化クエリを活用して、データソース７０２ａ〜７０２ｆの各々とインターフェイスで接続する。
【０３１７】
図６Ａは、クエリ実行サービス７０６を介してＤＤＥ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ａｐｐｌｉｃａｔｉｏｎのクエリブロック７０８と通信可能に接続される、様々なデータソース７０２ａ〜７０２ｆ及びデータプロバイダ７０４ａ〜７０４ｄを示す、ブロックダイアグラムを例証する。データソース７０２ａ〜７０２ｆの各々は、コンピュータ可読フォーマットでデータを記憶する、電子データソースである。一部のデータソース７０２ｅ及び７０２ｆは、内部データ接続またはネットワークデータ接続を通じて等、介入データプロバイダ７０４を伴わずに、クエリ実行サービス７０６とインターフェイスで接続してもよい。他のデータソース７０２ａ〜７０２ｄは、１つ以上のデータソースプロバイダ７０４ａ〜７０４ｄを介して、クエリ実行サービス７０６とインターフェイスで接続する。データプロバイダ７０４ａ〜７０４ｄは、それぞれのデータソース７０２ａ〜７０２ｄに、またはそこから、データにアクセス、データをサーチ、整列、読み込み、及び／または書き込むように構成され得る。一部の実施形態においては、データプロバイダ７０４ａ〜７０４ｄは、データソース７０２ａ〜７０２ｄの、それぞれのデータソースに特異的なクエリフォーマットを活用する、データソースに特異的なクエリを受信し得る。他の実施形態においては、データソースプロバイダ７０４ａ〜７０４ｄは、カスタマイズされたクエリ言語を用いるクエリブロック７０８から標準化クエリ７０９を受信し、その標準化クエリを、ターゲットデータソース７０２ａ〜７０２ｄの特定のクエリメカニズムを活用するそれぞれのデータソースに特異的なクエリフォーマットへと変換するように構成され得る。データプロバイダ７０４ａ〜７０４ｄまたはデータソース７０２ｅ〜７０２ｆは、特定のデータソース７０２に関して、データソースに特異的なクエリを処理及び実行する、実行エンジン（図示せず）を含み得る。実行エンジンは、データソース７０２自体の一部であってもよく、あるいは実行エンジンは、データソース７０２と関連付けられるデータプロバイダ７０４（例えば、データソース７０２ｂと関連付けられるデータプロバイダ７０４ｂ）の一部であってもよい。各データソース７０２は、データベース、またはデータを含む複数のＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）ファイルを含むドキュメント記憶等のドキュメント記憶であってもよい。一部の実施形態においては、データソース７０２ａ〜７０２ｆは、プロセスプラント５のフィールドデバイス１５〜２２及び４０〜４６によって生成されるデータストリーム等のライブデータソースも含み得る。そのようなライブデータソースは、得られたデータを構文解析し、具体的に要求されたデータの一部分のみを保持または抽出することによって、照会され得る。
【０３１８】
データソース７０２ａ〜７０２ｆは、任意の既知のフォーマットまたは今後開発されるフォーマットでデータを記憶するように構成され得る。データソース７０２ａ、７０２ｂ、及び７０２ｅは、リレーショナルデータベースに記憶されたデータを表すように、データベースとして示されている。そのようなリレーショナルデータベースの例としては、ＭｙＳＱＬ、または表形式でデータを記憶し、ＳＱＬでフォーマットされたデータのクエリを活用する他のデータベースが挙げられる。データソース７０２ｃ、７０２ｄ、及び７０２ｆは、ＮｏＳＱＬデータベースまたは非データベースデータソース等の非リレーショナルデータベースを表すように、ファイルまたはデータエントリのコレクションとして示されている。非リレーショナルデータベースの例としては、表形式ではなく、ドキュメントに基づいてデータを記憶する、ＭｏｎｇｏＤＢまたはＣｏｕｃｈＤＢ等のドキュメント指向データベースが挙げられる。極端に大きいデータまたは複合データセットの記憶またはサーチは、非リレーショナルデータベースを用いることでより効率的になるため、このようなデータベースが、ビッグデータ分析の場合頻繁に使用される。しかしながら、そのような非リレーショナルデータベースのデータは概して、表のフォーマット（ＳＱＬデータベースの基礎を形成する）では整理されていないため、そのような非リレーショナルデータベースの照会は、異なる技法及び異なる構文を要する。ＳＱＬの照会は広く使用され、かつ周知であるため、これもまたデータストレージ及び分析のために頻繁に使用されている。データソースに特異的なフォーマットを活用するデータソースに特異的なクエリへと変換される標準化クエリ７０９のための標準化クエリフォーマットを使用することにより、本明細書に開示される本発明は、ユーザが、同じクエリフォーマットでＳＱＬまたはＮｏＳＱＬデータベース内のデータにアクセスすることを可能にする。標準化クエリフォーマットは更に、複数の異なる種類のデータソース７０２からのデータを、一貫したデータ構造及びフォーマットを有する１つのデータセットへと変換することを可能にする。したがって、クエリブロック７０８は、標準化クエリ７０９を用いて、異なるデータ構造、フォーマット、及びクエリメカニズムを有するデータソース７０２を接続する、スーパーコネクタとして働き得る。
【０３１９】
クエリブロック７０８は、上で考察したように、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏ内に実装されて、データソース７０２ａ〜７０２ｆから獲得されるべきデータを特定するブロックであり得る。例えば、クエリブロック７０８は、標準化クエリ７０９を特定するプロパティを含む、１つ以上のブロックプロパティを有する、構成ファイルであり得る。標準化クエリ７０９は、クエリブロック７０８によって参照される別個のファイル（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎファイル）であってもよい。クエリブロック７０８は、代替的に、Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｅｎｇｉｎｅ１５０のうちのいずれかの内部で動作するプロセスまたはルーチン等の、標準化クエリ７０９を含むか、またはそれを示す任意のオブジェクトであり得る。クエリブロック７０８は、標準化クエリ７０９を受信し（ユーザ選択または入力によって等）、標準化クエリ７０９は、標準化クエリフォーマットを活用する。標準化クエリフォーマットを活用することによって、データソース７０２ａ〜７０２ｆは、ユーザ、技術者、またはデータソース７０２ａ〜７０２ｆ内のデータの具体的な種類もしくは構造の知識を必要とするデータ要求エンティティを伴わずに照会することができる。標準化クエリフォーマットは、一部のデータソースによって活用されている既存のクエリフォーマットであってもよく、またはどのデータソースによっても直接活用はされていない異なるクエリフォーマットであってもよい。後者の場合、標準化クエリフォーマットの構文を活用する標準化クエリは、データソース７０２ａ〜７０２ｆからデータを獲得するように、直接実行可能または実装可能であるわけではない。標準化クエリは、データがそこから獲得される、データソース７０２ａ〜７０２ｆのうちの１つ以上（または、データプロバイダ７０４ａ〜７０４ｄのうちの１つ以上）を特定し得る。あるいは、クエリブロック７０８は、データソース７０２ａ〜７０２ｆのうちの１つ以上を特定するプロパティを含み得る。
【０３２０】
クエリ実行サービス７０６は、クエリブロック７０８から標準化クエリ７０９を受信し、データソース７０２ａ〜７０２ｆのうちの１つ以上を照会させる。クエリブロック７０８からの標準化クエリ７０９の受信は、データソース７０２ａ〜７０２ｆから獲得されるべきデータを示すクエリパラメータを含むファイルを受信することを含み得る。データソース７０２ａ〜７０２ｆを照会させることは、クエリパラメータを抽出し、これらのクエリパラメータに基づいて、１つ以上のデータソースに特異的なクエリを生成することを含み得る。次いで、データソースに特異的な各クエリは、実行サービス７０６によって実行されてもよく、あるいはデータソース７０２ｅ〜７０２ｆまたはデータプロバイダ７０４ａ〜７０４ｄに送信されて、クエリパラメータによって示されるデータを獲得するように実行され得る。そのようなクエリパラメータは、１つ以上のデータソース７０２から獲得されるべき具体的なデータを示す場合があり、このデータは、被測定データ（フィールドデバイス１５〜２２及び４０〜４６からの測定値）、被測定データから計算もしくは別様に導出されたメトリクス、及び／またはデータソース７０２もしくはそこに記憶されているデータに関するメタデータであり得る。例えば、そのようなメタデータは、データソース７０２に記憶されるデータの種類、ソース、または質の指標を含み、データに対して実施される計算の種類を含み得る。そのようなメタデータは、システムのデータソース７０２からプロセスモデルまたは知識ベースを開発する際に有用であり得る。
【０３２１】
クエリ実行サービス７０６は、上に考察した実行サービスプロセス５０６であり得る。クエリ実行サービス７０６は、データサービス５２０、ジョブリスナ５２２、ジョブマネージャ５２４、ジョブ実行部５２８、またはデータソースマネージャ５３２を含む、分析サービス５００の構成要素のうちのいずれを含んでもよい。例えば、クエリブロック７０８は、ユーザからの入力で、アプリケーション５１４によって作成することができ、ＪＳＯＮファイルで記憶される標準化クエリ７０９を含む。ユーザの要求または他のトリガする事象を受信した際、アプリケーション５１４は、標準化クエリ７０９を、ウェブサーバプロセス５０４から、またはそれを通って、実行サービスプロセス５０６のジョブリスナ５２２へと通信させてもよい（この実行サービスプロセス５０６は、実行サービス７０６として働き得る）。ジョブリスナ５２２は、標準化クエリ７０９を１つ以上のジョブマネージャ５２４に受信させ得、これが更に、１つ以上のジョブ実行部５２８に、標準化クエリ７０９を、１つ以上のジョブプロセス５０８と関連付けられる１つ以上のデータソースに特異的なクエリへと変換させ得る。次いで、ジョブプロセス５０８は、データソースに特異的なクエリを用いて、１つ以上のデータソース７０２（すなわち、データソース１６８またはビッグデータストレージ１５５）を照会させ得る。その後、１つ以上のデータソース７０２を照会することによって獲得されたデータは、ジョブプロセス５０８、実行サービスプロセス５０６、データサービス５２０、及び／またはアプリケーション５１４によって受信され得る。
【０３２２】
一部の実施形態においては、クエリ実行サービス７０６は、標準化クエリ７０９を、データソース７０２ｅまたは７０２ｆに本来備わる、データソースに特異的なフォーマットを活用する、データソースに特異的なクエリへと変換する。代替的実施形態においては、クエリ実行サービス７０６は、照会する１つ以上のデータソース７０２ａ〜７０２ｆを決定し得、標準化クエリ７０９を、データソースに特異的なクエリへと変換するために、１つ以上のデータプロバイダ７０４ａ〜７０４ｄに提供し得る。データプロバイダ７０４は、データソース７０２から分離されてもよく、またはデータソース７０２と組み合わされてもよい。データプロバイダ７０４ａ及び７０４ｄは、それぞれ、データソース７０２ａ及び７０２ｄと通信可能に接続されるが、それでも分離されているように示される。対照的に、データプロバイダ７０４ｂ及び７０４ｃは、それぞれ、データソース７０２ｂ及び７０２ｃを含むか、またはそれと組み合わされているように示される。例えば、データプロバイダ７０４ｂは、サーバ（データヒストリアン等）、またはデータソース７２０ｂがデータベースとして記憶される、データベースインターフェイスプログラムであってもよい。別の例としては、データプロバイダ７０４ａも同様に、サーバ、またはサーバと通信可能に接続される外部メモリデバイスに記憶されているデータベース等、外部データソース７０２ａと接続されるデータベースインターフェイスプログラムであってもよい。更に別の例としては、データプロバイダ７０４ａ〜７０４ｄは、クエリ実行サービス７０６から、標準化クエリ７０９または標準化クエリ７０９からのクエリパラメータをそれらが受信したときに、標準化クエリ７０９をデータソースに特異的なクエリへと変換するアルゴリズムを含むジョブプロセス５０８であってもよい。
【０３２３】
プロセス制御及び分析における標準化クエリの使用を例証するために、図６Ｂは、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏにおけるクエリブロック７０８のブロックダイアグラムを例証する。クエリブロック７０８は、１つ以上のデータソース７０２ａ〜７０２ｆからプロセスデータを獲得する標準化クエリ７０９と関連付けられる。例えば、ユーザはクエリブロック７０８のフィールドに、標準化クエリフォーマットの標準化クエリ７０９を定義し得る。標準化クエリ７０９は、クエリブロック７０８と共に記憶され得、あるいはそれは別個のファイルに記憶されてもよい。例えば、クエリブロック７０８は、標準化クエリ７０９を含むＪＳＯＮでフォーマットされたファイルの識別子を記憶するクエリプロパティを含む構成ファイルであってもよい。事象の発生時（時間、プロセス制御状態、またはユーザ選択の発生等）、標準化クエリ７０９は、クエリブロック７０８から特定され、要求されるデータをデータソース７０２ａ〜７０２ｆのうちの１つ以上から獲得するように、クエリ実行サービス７０６に送信され得る。標準化クエリ７０９によって特定されたデータ、またはそのようなデータに関する情報（例えば、要約情報、検証メタデータ等）は、クエリブロック７０８または別のデータ受信エンティティへと返され得る。そのような他のデータ受信エンティティとしては、Ｄａｔａ  Ａｎａｌｙｔｉｃｓ  Ｓｔｕｄｉｏの別のブロック、ジョブプロセス５０８、クエリ実行サービス７０６、データサービス５２０、アプリケーション５１４、プログラムメモリ、またはプロセスプラント５と関連付けられるデータを更に分析、呈示、もしくは記憶し得る任意の他のサービス、ルーチン、プロセス、もしくはデバイスが挙げられ得る。上に考察したように、プロセスデータは、一部の実施形態においては、１つ以上のデータプロバイダ７０４を介して獲得されてもよい。獲得されたデータは、クエリブロック７０８、クエリ実行サービス７０６、または他のデータ受信エンティティにおいて、所望のフォーマットで受信され得、あるいはクエリブロック７０８、クエリ実行サービス７０６、または他のデータ受信エンティティによってフォーマットされ得る。例えば、クエリ実行サービス７０６は、標準化クエリ７０９を１つ以上のデータソースに特異的なクエリへと変換させ、そのようなソースに特異的なクエリの結果を所望の様式でフォーマットさせることによって、データフレームを生成し得る。そのようなフォーマットされたデータフレームは、一部の実施形態においては、クエリブロック７０８に返されてもよい。１つ以上のデータソース７０２から得られたデータは、データソースに特異的なクエリによって回収された複数のデータ点を含み得、このデータ点は、プロセスプラント５内の測定値またはそのような測定値に由来する値等、プロセス変数に対応し得る。そのようなデータ点は、時系列における点を表し得、各点は、それと関連付けられるタイムスタンプを有する。あるいは、そのようなデータ点は、ロケーション、プロセスバッチ、または他の特定する特色と関連付けられる横断的データを表し得る。標準化クエリを実行することによって獲得されるデータは、その変数構造を示すデータフ���ームと呼ばれる場合があり、表のフォーマットを使用する場合または使用しない場合がある。
【０３２４】
クエリブロック７０８は、標準化クエリを用いて得られたデータフレームをフィルブロック７１０に提供してもよく、このフィルブロックが、フィルブロック７１０と関連付けられる規則に従って、データセット内の空または非数（ＮａＮ）のエントリを埋める。これは、データをサニタイズし、またはデータフレーム中の不正確なデータまたは誤りの指標を確認するため、ならびに本明細書の他の場所に記載されるように、所望のサンプリングレートに到達するのに必要なデータ点を追加するためになされ得る。次いで、データフレームは、更なる分析及び／またはプロセス制御のために使用され得る。例証されるように、１つ以上のデータのセットが、独立変数ブロック７１２及び従属変数ブロック７１４によって、データフレームから選択され得る。例えば、従属変数ブロック７１２は、フィルブロック７１０から受信したデータフレームから、データマッチングで特定したパラメータまたは特性（例えば、圧力または温度の測定値）またはデータ列（ここでは、データフレームがデータ表に対応する）に対応する、１つ以上の種類のデータを選択し得る。従属変数ブロック７１４はまた同様に、フィルブロック７１０から受信したデータフレームから、１つ以上の種類のデータを選択するために使用され得る。２つのブロック７１２及び７１４が示されているが、任意の数の類似するブロックを使用することができる。その後、分析ブロック７１６が、独立変数ブロック７１２及び従属変数ブロック７１４によって選択されたデータを、示されるように、ブロック間のコネクタによって受信し得る。分析ブロック７１６は、この分析ブロックがそのために構成されている、任意の種類の分析を実施し得る。例えば、分析ブロック７１６は、独立変数ブロック７１２のデータの、従属変数ブロック７１４のデータに対する影響を判定するために、部分最小二乗（ＰＬＳ）分析を実施し得る。探査ブロック７１８は、クエリブロック７０８ならびにその他のブロック及び接続の適切な構成を試験するために、分析ブロック７１６及び従属変数ブロック７１４と接続されてもよい。この探査ブロック７１８は、ユーザが記憶または閲覧できる、グラフィカル、表形式、またはテキスト形式の出力を生成し得る。前述の説明は、ブロック７０８〜７１８がある特定のアクションを取るものとして考察しているが、本明細書の他の場所に考察されるように、これらのブロックは代わりに、分析サービス５００のウェブサーバプロセス５０４、実行サービスプロセス５０６、及び／またはジョブプロセス５０８にそのようなアクションを行わせてもよいことが理解されるであろう。
【０３２５】
標準化クエリ７０９の使用について更に実証するために、図６Ｃは、例示的標準化クエリフォーマットを活用する例示的クエリを例証する。この例示的クエリは、クロスプラットフォームな適合性を最大化するために、ＪＳＯＮに準拠するフォーマットを活用するものとして呈示されているが、任意の他のフォーマットが使用されてもよい（例えば、ＸＭＬベースのフォーマット、ＣＳＶベースのフォーマット等）。この例示的クエリは、クエリの名称で始まり、データフレームを返すのに使用されるフォーマットの指標（ＪＳＯＮとして特定される）、クエリフォーマットのバージョンの指標が後に続く。「ｔｉｍｅＳｅｌｅｃｔｏｒ」アレイは、データが返される時間の範囲を示す複数の時間枠を、「ｓｔａｒｔＴｉｍｅ」及び「ｅｎｄＴｉｍｅ」オブジェクトで示す。例示的クエリにおいては、開始時間及び終了時間は、文字「Ｔ」で分けられている、Ｃｏｏｒｄｉｎａｔｅｄ  Ｕｎｉｖｅｒｓａｌ  Ｔｉｍｅ（協定世界時）の日付データ及び時刻の観点から特定される。例示的クエリによって示されるように、時間枠の各々は、データが照会されていない除外期間によって分けられる場合があり、この除外期間は、時間枠のうちの１つの終了時間と、別の時間枠の開始時間との間の期間に対応する。「ｔｉｍｅＳｅｌｅｃｔｏｒ」アレイに続いて、「ｓａｍｐｌｅＲａｔｅＳｅｃｓ」オブジェクトが、秒単位でサンプリングレートを特定し、これは、単位時間当たりにデータ点がいくつ獲得されるかを特定する。例示的クエリの最終部分は、データソース７０２から獲得されるべきデータ（すなわち、獲得されるべきプロセス変数）のパラメータを示す「ｃｏｌｕｍｎｓ」アレイである。この例示的クエリは、返される４種類または４列のデータを特定している。４列の各々は、データソース及び／またはデータソースのプロセス変数を特定する「ｔａｇ」オブジェクトによって特定される（すなわち、「ＦＴ６３０Ｂ／ＤＥＮＳ．ＣＶ」、「ＰＴ６１５／ＷＩＲＥＤ＿ＰＳＩＡ．ＣＶ」、「ＴＴ６０７９／ＩＮＰＵＴ＿１．ＣＶ」、及び「６３０．ｍｏｌｅｆｒａｃ．ｃ５」）。４列の各々は、データフレーム内の返されたデータを方式する「ａｌｉａｓ」オブジェクト、データのデータタイプ（例えば、浮動小数点値、倍長整数値、テキスト文字列等）を特定する「ｄａｔａＴｙｐｅ」オブジェクト、「ｒｅｎｄｅｒＴｙｐｅ」オブジェクト（例えば、値、総数等）、及び返されるデータのフォーマットを特定する「ｆｏｒｍａｔ」オブジェクト（すなわち、「０．＃＃＃」は、小数点以下３桁の浮動小数点値からなるフォーマットを示す）
【０３２６】
これらの列と関連付けられる「ｔａｇ」オブジェクタは、そこからデータを獲得するデータソース７０２を特定し得る。あるいは、例示的クエリがデータソース７０２を明示的に特定しない場合は、そのようなデータソース７０２ａ〜７０２ｆ（複数可）は、ブロック７０８の他のプロパティによって特定され得る。標準化クエリフォーマットを活用する類似のクエリにおいては、データソース７０２（複数可）が、オブジェクトによって、クエリにおいて明示的に示され得る。そのような指標は、ソースオブジェクトへのパス、またはデータソースの種類（例えば、ＭｏｎｇｏＤＢ、ＣｏｕｃｈＤＢ、ＳＱＬ等）を示す値を含み得る。データソース７０２の指標は更に、適切な場合、関連付けられるデータプロバイダ７０４を示し得る。あるいは、データソースマネージャ５３２が、データプロバイダ７０４の指標、またはデータソース７０２によって活用される構造もしくはフォーマットを提供し得る。一部の実施形態においては、ソースの指標は更に、獲得されるべきデータの各パラメータまたは列について、データソース７０２の別個の指標を含み得る。それによって、標準化クエリフォーマットを活用するクエリは、複数の別個のデータソース７０２からデータを獲得できる。
【０３２７】
上述されるように、標準化クエリ７０９は、ターゲットとされる各データソース７０２について実行され得る、データソースに特異的なクエリへと変換される。そのような変換は、クエリ実行サービス７０６によって実施されてもよく、あるいはターゲットとされる各データプロバイダ７０４ａ〜７０４ｄによって実施されてもよい。図６Ｄは、クエリ実行サービス７０６が標準化クエリ７０９を１つ以上のデータソースに特異的なクエリへと変換する、例示的クエリ方法７４０を例証しており、図６Ｅは、データプロバイダ７０４が標準化クエリ７０９をソースに特異的なクエリへと変換する、例示的クエリ方法７６０を例証する。
【０３２８】
方法７４０は、標準化クエリフォーマットを活用する標準化クエリの受信から始まり得る（ブロック７４２）。標準化クエリは、クエリブロック７０８、クエリ実行サービス７０６、またはデータプロバイダ７０４ａ〜７０４ｄによって受信され得る。クエリは、上記の特色または要素のうちのいずれを含んでもよい。クエリは、ユーザからの直接入力を介して受信されてもよく、あるいはユーザ入力に基づいて標準化クエリを生成及び／または記憶し得る、プログラムブロックまたはルーチンから受信されてもよい。標準化クエリは、ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）に準拠するファイルまたはフォーマットで構築されてもよく、あるいは任意の他の好都合な言語または構文を用いて構築されてもよい。標準化クエリは、一部のデータソース７０２ａ〜７０２ｆによって実行可能である構文を活用してデータを獲得してもよく（ＳＱＬ等）、あるいは標準化クエリは、データソース７０２ａ〜７０２ｆによって直接実行可能ではない構文を活用してデータを獲得してもよい（図６Ｃに例証される例示的クエリ等）。標準化クエリは、獲得されるべきデータ（例えば、データの時間枠及びパラメータ）、データが獲得される元のデータソース７０２（例えば、データソース７０２ａ〜７０２ｆもしくはデータプロバイダ７０４ａ〜７０４ｄ）、ならびに／またはデータが提供されるフォーマットを特定し得る。標準化クエリ７０９がクエリブロック７０８で受信される場合、この標準化クエリは、クエリを実行するというオプションのユーザ選択、または分析サービス５００内の別のオブジェクト、ルーチン、ブロック、プロセス、サービス、もしくは機能による、クエリデータについての要求等の、トリガする事象が発生した際、クエリ実行サービス７０６に送られ得る。
【０３２９】
標準化クエリ７０９の受信後、クエリ実行サービス７０６（またはデータプロバイダ７０４）は、データが獲得される元の１つ以上のデータソース７０２を決定し得る（ブロック７４４）。一部の実施形態においては、この決定は、１つ以上のデータソース７０２の指標の受信または特定を伴い得る。この指標は、各データ特性（例えば、プロセス変数または列）にたいして特異的であってもよく、あるいは全体のクエリに対して一般的であってもよい。そのような指標（複数可）は、標準化クエリ７０９内にオブジェクトまたはタグとして含まれてもよく、あるいはクエリブロック７０８の追加的なプロパティによって示されてもよい。例えば、データ列またはデータの種類についてのデータソース７０２の指標は、データ列またはデータの種類を特定するオブジェクトまたはタグに対してプリペンドされ得る。あるいは、クエリブロック７０８またはデータプロバイダ７０４は、１つ以上のデータソース７０２と別様に関連付けられてもよい。この関連付けは、１つ以上のデータソース７０２の指標を、標準化クエリ７０９から別個に受信することによって果たされ得る。例えば、クエリブロック７０８が、データソース７０２（またはデータプロバイダ７０４）の選択を受信することで作成される場合、クエリブロック７０８は、データソースプロパティを介して、１つ以上のデータソース７０２（または１つ以上のデータプロバイダ７０４）と関連付けられ得る。同様に、データプロバイダ７０４ａ〜７０４ｄが、内在的に、あるいは構成中に作成される関連付けを通じて構成される場合、データプロバイダ７０４ａ〜７０４ｄは、１つ以上のデータソース７０２ａ〜７０２ｄと関連付けられ得る。
【０３３０】
１つ以上のデータソース及び標準化クエリ７０９に関する情報を用いて、１つ以上のデータソース７０２からデータを得るために、データソースに特異的なクエリが生成される（ブロック７４６）。データソースに特異的なクエリは、クエリ実行サービス７０６によって生成され、ブロック７４４において特定されたデータソースに基づいて、照会されるべき各データソース７０２ａ〜７０２ｆに送信され得る（直接、あるいはデータソースプロバイダ７０４ａ〜７０４ｄを介して）。あるいは、クエリ実行サービス７０６は、１つ以上のデータプロバイダ７０４ａ〜７０４ｄの各々によってデータソースに特異的なクエリへと変換される標準化クエリ７０９を送信してもよく、これらのデータプロバイダは、ブロック７４４において特定されたデータソースに基づいて、データが獲得される元のデータソース７０２ａ〜７０２ｄと関連付けられている。例えば、クエリ実行サービスは７０６は、１つ以上のジョブプロセス５０８に、データプロバイダ７０４として標準化クエリ７０９を変換させ得る。クエリ実行サービス７０６またはデータプロバイダ７０４のいずれが標準化クエリ７０９からデータソースに特異的なクエリを生成するかに関わらず、データソースに特異的なクエリは、データソース７０２に記憶されているデータを獲得するために、データプロバイダ７０４またはデータソース７０２によって実行可能な、データソースに特異的なフォーマットを活用しなければならない。データソースに特異的なクエリフォーマットは、電子データソースに記憶されているデータを照会するか、あるいは別様にそれにアクセスするための、ＳＱＬ、ＭｏｎｇｏＤＢ、ＣｏｕｃｈＤＢ等の、任意の既知の、または今後開発されるフォーマットまたは構文であり得る。
【０３３１】
データソースに特異的なクエリの生成は、標準化クエリ７０９中のクエリパラメータの特定を含み得る。クエリパラメータとしては、上に考察した例示的標準化クエリ中の「ｔｉｍｅＳｅｌｅｃｔｏｒ」アレイによって特定される時間枠、「ｓａｍｐｌｅＲａｔｅＳｅｃｓ」オブジェクトによって特定されるサンプルレート、及び「ｃｏｌｕｍｎｓ」アレイ（特に「ｔａｇ」オブジェクト）によって特定されるデータパラメータ等の、データの時間枠または他の特性と関連付けられるパラメータが挙げられ得る。これらのクエリパラメータは、種類もしくは測定値、測定デバイスの種類、または具体的な測定デバイス（フィールドデバイス１５〜２２及び４０〜４６）と関連付けられるプロセス変数の指標を含み得る。１つ以上の時間枠が、照会される各データソース７０２について特定され得、異なるデータソース、または異なるパラメータ（例えば、異なる列、異なるプロセス変数等）を有する、あるデータソース内のデータは、それらと関連付けられる異なる時間枠を有し得る。特定されたクエリパラメータは、クエリ実行サービス７０６またはデータプロバイダ７０４によって標準化クエリ７０９から抽出され、データソースに特異的なクエリの態様へと変換され得る。したがって、生成されたデータソースに特異的なクエリは、標準化クエリ７０９において特定された実質的パラメータを表すクエリ言語を含むが、そのような実質的パラメータは、データソースに特異的なクエリフォーマットのデータソースに特異的なクエリに含まれる。
【０３３２】
１つ以上の時間枠及びサンプリングレートが特定されている実施形態においては、データソースに特異的なクエリは、各時間枠によって特定される期間内の、特定された時間における複数のデータ点と関連付けられるデータを提供するように、生成され得る。各データ点は、データ点と関連付けられる特定された時間を示すタイムスタンプを有し得る。このタイムスタンプは、時間枠と関連付けられる開始時間における、あるいはその後の、かつ時間枠と関連付けられる終了時間において、あるいはその前に発生する、サンプリングレートの期間の整数倍である。複数の時間枠が、図６Ｃにおいて示されるように、標準化クエリによって特定され得る。そのような事例においては、データソースに特異的なクエリは、複数の時間枠の各々の間において、サンプリングレート（複数可）に対応するタイムスタンプを有するデータ点におけるデータを獲得するように、生成され得る。一部のそのような事例においては、複数の時間枠の全てのうちの一部について、別個のデータソースに特異的なクエリが生成され得る。１つ以上の時間枠がサンプリングレートを伴わずに特定される場合、複数のデータ点がタイムスタンプを伴って獲得され得るが、これらのタイムスタンプは、その時間枠内の任意の値を取り得る。したがって、時間枠は、各データ点が測定された時間を示すことになる（あるいは、根本的なプロセス値が測定された時間）。
【０３３３】
次いで、クエリ実行サービス７０６またはデータプロバイダ７０４は、１つ以上のデータソースに特異的なクエリを実行させて、特定されたデータソース７０２を照会する（ブロック７４８）。これには、データソースに特異的なクエリを、クエリ実行サービス７０６から、１つ以上のデータプロバイダ７０７ａ〜７０４ｄ及び／または１つ以上のデータソース７０２ａ〜７０２ｆに送信することを含み得る。同様に、一部の実施形態においては、データプロバイダ７０４は、データソースに特異的なクエリをデータソースに送信して、要求されるデータを獲得し得る。更なる実施形態においては、データソースに特異的なクエリは、受信側のデータソース７０２の実行エンジンによって実行されてもよい。他の実施形態においては、データプロバイダ７０４が、データソース７０２内に記憶されているデータにアクセス、かつそれを操作することによって、データソースに特異的なクエリのうちの１つ以上を実行し得る。１つ以上のデータソースに特異的なクエリを実行する際に１つ以上のデータソースから返されるデータは、その後、データ受信エンティティに送信され、あるいはそれによって受信され得る。このデータ受信エンティティとしては、データプロバイダ７０４、クエリ実行サービス７０６、またはクエリブロック７０８が挙げられ得る。したがって、データ受信エンティティは、１つ以上のデータソース７０２から、要求されるデータを獲得する（ブロック７５０）。
【０３３４】
サンプリングレートが特定されている実施形態においては、データを獲得することとは、時間枠及びサンプリングレートによって示されるサンプル点の各々と調和するタイムスタンプを伴うデータ点をデータが含むということを確保することを含み得る。これは各時間枠及びサンプリングレートについてなされ得る。上述されるように、これらのサンプル点は、時間枠の開始時間における、あるいはその後の、かつ時間枠の終了時間において、あるいはその前に発生する、サンプリングレートの期間の整数倍に対応する。データソース７０２に記憶されるデータ点が、サンプル点と関連付けられる時間のうちの１つ以上に関するデータ点を含まない場合、サンプル点に対応するタイムスタンプを有する追加的なデータ点が追加されてもよい。これらの追加的なデータ点は、タイムスタンプに対して時間的に最も直前である、データソース７０２内のデータエントリの値と関連付けられる代入値であってもよい。例えば、データソース７０２は、時間７：０１：５５００（値Ｖ１を有する）、７：０２：０５００（値Ｖ２を有する）、及び７：０２：５５００（値Ｖ３を有する）についてのデータ点を含む場合があるが、標準化クエリにおいて示される時間枠は、７：０２：００００（開始時間）から７：０３：００００（終了時間）である場合があり、サンプルレートの期間が０：００：５０００である場合がある（０．５秒毎である、１つのサンプルのサンプリングレートに対応する）。そのような例においては、獲得されるデータ点は、７：０２：００００、７：０２：５０００、及び７：０３：００００のタイムスタンプを有することになり、これらはそれぞれ値Ｖ１、Ｖ２、及びＶ３を有する。したがって、タイムスタンプ、７：０２：５０００を有するデータ点については、このタイムスタンプ後の時間では別の値（時間７：０２：５５００のＶ３）の方がより近いが、最も直前の値Ｖ２（７：０２：０５００に測定）が使用される。加えて、所望のサンプル時間の間の時間において発生する過剰なデータ点は、得られたデータから除去または消去してもよい。したがって、獲得されたデータ中の各データ点（そのような調整または整合後）は、標準化クエリによって示される各時間枠内の開始時間における、あるいはその後の、サンプリングレートの期間の整数倍と関連付けられるタイムスタンプを有することになる。獲得されたデータ内のデータ点を整合する他の手段も、同様に使用できる。
【０３３５】
複数のデータソース７０２が同一の標準化クエリにおいて示される場合、データソース７０２の各々が、異なるタイムスタンプを有するデータ点を有する場合があり、またそのようなタイムスタンプと関連付けられる測定値が、異なるサンプルレートで発生した可能性がある。例えば、第１のデータソース７０２ａ及び第２のデータソース７０２ｄが標準化クエリによって示される場合がある。データソース７０２ａは、第１のサンプルレート（例えば、毎秒１回の測定）を有するデータ点を記憶する第１のデータソースである可能性があり、データソース７０２ｄは、第２のサンプルレート（例えば、毎秒４回の測定）を有するデータ点を記憶する第２のデータソースである可能性がある。獲得されたデータは、標準化クエリ内で特定されるパラメータに従って、上に考察したように、標準化クエリによって特定されるサンプリングレートの期間の整数倍である時間におけるデータ点を追加または除去することによって、整合できる。
【０３３６】
データ受信エンティティが１つ以上のデータソース７０２からデータを獲得するとき、データ受信エンティティは更に、標準化クエリ７０９と関連付けられるフォーマットパラメータまたは命令に従ってデータをフォーマットし得る（ブロック７５２）。そのようなフォーマットパラメータまたは命令は、標準化クエリ７０９に含まれてもよく、標準化クエリフォーマットと関連付けられてもよく、あるいはクエリブロック７０８の別個のプロパティにおいて特定されてもよい。一部の実施形態においては、これは、獲得したデータのフォーマットを、所望のフォーマットと調和するように調整することで、獲得したデータからデータフレームを更に生成することを含み得る。複数のデータソース７０２が照会されている場合、データフレームの生成は更に、複数のデータソース７０２の各々から獲得したデータを組み合わせて、集合データフレームを生成することを含み得る。例えば、第１のデータセットが第１のデータソース７０２ａから照会され、第２のデータセットが第２のデータソース７０２ｄから照会される場合、第１及び第２のデータセットを組み合わせる集合データフレームが生成され得る。
【０３３７】
方法７６０は、データ要求エンティティから標準化クエリ７０９を受信することで始まり得る（ブロック７６２）。クエリブロック７０８またはクエリ実行サービス７０６等のデータ要求エンティティは、標準化クエリ７０９をデータプロバイダ７０４に送信することによって、１つ以上のデータソース７０２からのデータを要求し得る。データプロバイダ７０４は、１つ以上のデータソース７０２と関連付けられてもよく、あるいはネットワーク接続を介して様々なデータソース７０２からデータを獲得するように構成されてもよい。あるいは、データ要求エンティティは、データ分析システム１００内の別のデータブロック、ソフトウェアルーチン、プロセス、またはサービスから標準化クエリ７０９を受信し得る。加えて、データ受信エンティティ（これは同様に、クエリブロック７０８、クエリ実行サービス７０６、ジョブプロセス５０８、データサービス５２０、アプリケーション５１４、プログラムメモリ、またはプロセスプラント５と関連付けられるデータを更に分析、呈示、もしくは記憶し得る任意の他のサービス、ルーチン、プロセス、もしくはデバイスであり得る）は、標準化クエリ７０９によって、あるいは別様に示され得る。そのようなデータ受信エンティティは、一部の事例においてはデータ要求エンティティと同じエンティティであってもよく、あるいはデータ要求エンティティとは別個であってもよい。明瞭性のために、例示的方法７６０についての以下の考察は、データプロバイダ７０４ａが、データ要求エンティティ及びデータ受信エンティティとしてのクエリ実行サービス７０６から、標準化クエリ７０９を受信し、標準化クエリ７０９はデータソース７０２ａからのデータを要求するものと仮定する。これは、本方法の重要な特色をより良好に例証するためになされるものであり、本開示の範囲を限定することを意図するものではない。当業者であれば、本明細書に考察される方法を軽度かつ普通に適応させるだけで、多数の代替的構成が容易に作成できることを理解するであろう。
【０３３８】
標準化クエリがデータプロバイダ７０４ａにおいて受信されると、データプロバイダ７０４ａは、標準化クエリ７０９からクエリパラメータを抽出する（ブロック７６４）。クエリパラメータには、時間と関連付けられるパラメータ（例えば、データが獲得される時間枠、サンプリングレート等）、データタイプもしくは特性と関連付けられるパラメータ（例えば、プロセス変数、表内の列、測定値、測定値からの計算値等）、またはデータの獲得元であるデータソース７０２ａと関連付けられるパラメータ（例えば、データベースの指標、そこへのパス、もしくはその中の表）が含まれ得る。クエリパラメータの抽出は、標準化クエリ７０９内のオブジェクト、アレイ、または要素に基づいて１つ以上のパラメータを決定することを含み得る。一部の実施形態においては、データプロバイダ７０４ａは更に、データがどのようにクエリ実行サービス７０６に返されるかを示すパラメータ（すなわち、要求されたデータをデータ要求エンティティに提供する際に使用するフォーマット、構造、タイミング、またはプロトコル）を抽出し得る。データプロバイダ７０４ａは、抽出したクエリパラメータを、１つ以上のデータソースに特異的なクエリを生成する際及び／または獲得したデータをフォーマットしてデータ要求エンティティに提供する際に使用するため、揮発性メモリまたは不揮発性メモリに記憶し得る。
【０３３９】
次いで、データプロバイダ７０４ａは、抽出したクエリパラメータに基づいて、データソースに特異的なクエリを生成し得（ブロック７６６）、このデータソースに特異的なクエリは、データソース７０２ａと関連付けられるデータソースに特異的なクエリフォーマットを活用する。例えば、データソース７０２ａは、ＭｏｎｇｏＤＢデータ構造またはフォーマットを活用する非リレーショナルデータベースであり得、この場合、データプロバイダ７０４ａは、ＭｏｎｇｏＤＢのクエリ構文を活用するデータソースに特異的なクエリを生成して、標準化クエリ７０９から抽出されたクエリパラメータによって示されるデータを獲得する。代替的例としては、データソース７０２ａは、ＭｙＳＱＬを活用するリレーショナルデータベースであり得、この場合、データプロバイダ７０４ａは、ＳＱＬクエリ構文を活用するデータソースに特異的なクエリを生成して、標準化クエリ７０９から抽出されたクエリパラメータによって示されるデータを獲得する。データソースに特異的なクエリを生成するために、データプロバイダ７０４ａは、標準化クエリフォーマットと、データソースに特異的なクエリフォーマットとの間でマッピングを適用し得る。そのようなマッピングには、標準化クエリ７０９において表現されるクエリパラメータを、データソースに特異的なクエリフォーマットで実質的に等価のパラメータへと変換する、構文またはフォーマットへの調整が含まれ得る。一部の実施形態においては、データプロバイダ７０４ａが、標準化クエリによって示されるクエリパラメータを、データソースに特異的なクエリのパラメータまたは要素に直接マッピングするように、クエリパラメータの抽出及びデータソースに特異的なクエリの生成は組み合わされ得る。上に考察したように、データソースに特異的なクエリは、標準化クエリ７０９によって示される各時間枠内の開始時間における、あるいはその後の、サンプリングレートの期間の整数倍に対応するタイムスタンプを有するデータ点を返すように、生成され得る。
【０３４０】
データソースに特異的なクエリがいったん生成されると、データプロバイダ７０４ａは、データソースに特異的なクエリを実行して、要求されたデータをデータソース７０２ａから獲得し得る（ブロック７６８）。一部の実施形態においては、データプロバイダ７０４ａは、データソースに特異的なクエリを実行するという要求をデータソース７０２ａに送信してもよく、データソース７０２ａは、データソースに特異的なクエリを実行し、結果として得られたデータをデータプロバイダ７０４ａに返してもよい。あるいは、データプロバイダ７０４ａは、データソース７０２ａ用のインターフェイスまたは実行エンジンとして働いてもよく、この場合、データプロバイダ７０４ａは、データソースに特異的なクエリフォーマットの規則に従って、データソースに特異的なクエリを実行して、データソース７０２ａに記憶されているデータにアクセス、それを分析、及び選択してもよい。データソースに特異的なクエリが、データプロバイダ７０４ａによって実行されるか、あるいはデータソース７０２ａによって実行されるかに関わらず、データソースに特異的なクエリの実行から結果として得られるデータは、データプロバイダ７０４ａによって獲得される。
【０３４１】
一部の実施形態においては、データプロバイダ７０４ａは、標準化クエリ７０９に基づいて、クエリの実行によって獲得されたデータをフォーマットし得る（ブロック７７０）。したがって、データプロバイダ７０４ａは獲得されたデータを処理して、標準化クエリ７０９で表現されるデータについての要件に対応するように、獲得されたデータをフォーマットし得る。これには、クエリ実行サービス７０６が容易に使用できるフォーマットの獲得されたデータを含む獲得されたデータからデータフレームを生成することが含まれ得、獲得されたデータに、データフォーマット規則及びデータエイリアスを適用することが含まれる。例えば、標準化クエリ７０９は、データが、ＪＳＯＮファイルを用いるドキュメントで提供されるべきであることを特定してもよい。同様に、標準化クエリは、データが、表のフォーマットでデータ要求エンティティに返されるべきであること、またはデータ値が、小数点以下３桁の浮動小数点数としてフォーマットされるべきであることを特定してもよい。それらのフォーマット要件は、標準化クエリ７０９において特定されてもよいが、フォーマット要件の一部または全ては、標準化クエリフォーマット（またはそのバージョン）によって特定されてもよい。この様式においては、標準化クエリフォーマット（またはそのバージョン）を採用する標準化クエリは、常に、データを一貫したフォーマットで返すことになる。上に考察したように、獲得したデータのフォーマットは、標準化クエリ７０９によって示される各時間枠内の開始時間における、あるいはその後の、サンプリングレートの期間の整数倍に対応するタイムスタンプを有するように、データ点の時間を調整または整合することを含み得る。これには更に、適切なタイムスタンプを伴うデータ点の追加、または所望のサンプル時間の間の時間に発生する過剰なデータ点の除去が含まれ得る。
【０３４２】
獲得したデータがフォーマットされると、データプロバイダ７０４ａは、フォーマットしたデータをデータ受信エンティティに提供する（ブロック７７２）。データプロバイダ７０４ａは、要求されたフォーマットまたは任意の既知のフォーマットのデータフレームを、クエリ実行サービス７０６に、更なる分析のために送信し得る。更なる実施形態においては、獲得されたデータをフォーマットすることの一部または全ては、データプロバイダ７０４ａが、データソースに特異的なクエリの実行から獲得された未フォーマットまたは部分的にフォーマットされたデータを、クエリ実行サービス７０６に送信した後、クエリ実行サービス７０６によって代わりに実施されてもよい。データが、データ要求エンティティによって受信され、フォーマットされたとき、フォーマットされたデータは、本明細書の他の場所に考察されるようにプロセスプラント制御または分析において使用できる。一部の実施形態においては、クエリ実行サービス７０６は更に、クエリブロック７０８またはジョブプロセス５０８等の別のデータ受信エンティティにデータを提供してもよい。
【０３４３】
概して、データソース７０２ａ〜ｆのいずれかの部分または全ての部分、データソースプロバイダ７０４ａ〜ｄ、及びクエリブロック７０８、ならびに可変的にフォーマットされるデータソース７０２ａ〜ｆから獲得するために活用されるクエリ言語は、図１、２、３、４Ａ〜４Ｑ、及び／または５Ａ〜５Ｇのいずれかの部分または全ての部分と併せて、かつ／あるいは図１、２、３、４Ａ〜４Ｑ、及び／または５Ａ〜５Ｇにそれぞれ対応する本開示の節に記載される任意の数の特色及び／または技法と併せて動作し得る。
【０３４４】
早期警戒故障検出のための周波数分析の分析技法
新規データ分析技法または機能（例えば、分散型工業プロセスパフォーマンス監視／分析システムまたはＤＡＳ１００によって提供され得る）は、プロセスプラント５等のプロセス制御システムまたはプラントにおける早期警戒故障検出のための、周波数分析の分析技法である。該新規周波数分析の分析技法または機能は、本明細書においては、「ローリング高速フーリエ変換」または「ローリングＦＦＴ」と呼ばれ、本明細書に記載されるシステム、アーキテクチャ、方法、及び技法のうちのいずれかと併せて活用できる。例えば、ローリングＦＦＴ用のデータブロック定義が、データブロック定義ライブラリ２５２内に記憶され、また、オフラインで実行され、かつ／あるいはオンラインで実行されるデータモジュールにおいて活用できるようにユーザに対して利用可能にされ得る。追加的または代替的に、１つ以上の分散型データエンジン１０２ｘが、１つ以上のＤＤＥ１０２ｘにおいて獲得されたデータに対してローリングＦＦＴを実行してもよい。しかし、ローリングＦＦＴは、本明細書に記載されるシステム、アーキテクチャ、方法、及び技法と併せて使用することのみに限定されず、時系列データを生成する任意のシステム、アーキテクチャ、方法、及び／または技法と併せて活用してもよい。下に示されるように、ローリングＦＦＴ分析技法または機能は、記述的分析及び予測的分析両方の組み合わせである。
【０３４５】
概して、プロセス制御システムまたはプラントにおいては、未来のプロセスプラントの挙動についての先行指標を提供するプロセスデータを、好ましくは予防的または軽減的アクションを起こすことを可能にする時間の枠内において発見できれば、異常、故障、パフォーマンスの低下、及び／または所望されないか、もしくは望ましくない状態を予防できる（あるいは、それらの影響を最小化できる）。そのようなプロセスデータには、例えば、圧力、温度、及びプラントを通って移動する材料の流速の測定値データ、ならびに設備の部分に関する類似の情報が含まれ得る。そのようなプロセスデータとしてはまた、例えば、プロセスフローストリームの化学組成、及び設備のオン／オフ状態が挙げられ得る。概して、ローリングＦＦＴを適用できるプロセスデータには、プロセスプラント内のプロセスを制御する結果として生成され、例えばサンプリング、データストリームの受信、データベース、データファイル、データソース（例えば、Ｓｅｅｑシステム）、またはヒストリアンからの読み取り、照会等によって、任意の好適な様式で獲得される、任意のオンライン及びオフライン時系列データが含まれ得る。
【０３４６】
プロセスプラントにおける先行インジケータを発見する１つの技法としては、プロセスデータの挙動を経時的に分析することが挙げられる。この挙動は多くの理由で変化し得るが、一部のシナリオにおいては、この変化は、異常、故障、パフォーマンスの低下、及び／または他の状態につながるプロセスの不調と関連付けられ得、したがって、そのような状態の先行インジケータとみなされ得る。本明細書に記載されるローリングＦＦＴ技法は、先行インジケータに対応する時系列データの第１のセットを周波数領域に変換し、続いてその周波数領域データに基づいて時系列データの第２のセットを生成し、その後これを監視及び使用して、プロセスプラントの異常、故障、パフォーマンスの低下、及び／または状態を予測し得る。
【０３４７】
従来、プロセスプラントからのプロセスデータは、周波数分析技法に対する入力として使用するために、収集、受信、または別様に獲得されている場合がある。データは、温度、フロー、圧力、組成、及び／またはプロセスを制御するためのプロセスプラントの運転の結果として生成される他の連続信号等、プロセスプラントにおいて見出される既存のプロセス信号に関する任意のデータであり得る。従来、ＦＦＴは、通常２の累乗（例えば、２１０＝１０２４）に基づく固定窓（例えば、データ点の特定の数）を用いて、獲得されたプロセスデータ中の重要な周波数の振幅を特定するために、そのプロセスデータに対して実施される。最新の計算方法は、このデータの窓の長さをユーザが定義することを可能にするが、この長さは多くの場合、利用可能なコンピュータのメモリの量によって制限されてしまう。ＦＦＴにおけるサンプルの数及びサンプリング周波数はまた、目的の最速周波数当たり少なくとも２つのサンプルを有するというナイキスト要件を満たさねばならない。更に、従来のＦＦＴは、所望のデータ信号の数サイクルの周期的挙動に対して作用すべきである。
【０３４８】
しかし、プロセスデータに適用されるＦＦＴの多くの従来型の適用においては、目的の信号は経時的に変化しないと仮定される。しかしながら、ローリングＦＦＴはこの仮定によって制約されない。実際、「ローリング」タイプのＦＦＴは、有利なことに、信号に対する経時的な変化を捕捉して、信号に対するそれらの経時的な変化がいつ起こるかを特定できる。具体的には、ローリングＦＦＴは、目的の信号または変数によって生成されるデータ（プロセスプラントの結果として生成された、測定値、感知された値、または他の信号）の窓に対してＦＦＴを実施すること、及びその窓について周波数の振幅（例えば、ピーク振幅）を記録することを含む。次いで、この窓を、時間で１つのサンプル分前向きに動かし、ＦＦＴを再度実施して、結果を記録または記憶する。これを時系列データの最後まで継続する。ＦＦＴは、データセット中の全てのサンプル時間に対して実施されるため（一部の場合においては、窓中のサンプルの数がｎである場合、最初のｎ−１個のサンプルは除く）、１つ以上の目的の周波数の振幅（例えば、ピーク振幅）を含む、１つ以上の新しい時系列データセットが作成または生成される。目的の各振動数は、目的の振動数の振幅（例えば、ピーク振幅）に対応するそれぞれの時系列データを生成する、プロセスプラントのそれぞれの新しいプロセス変数に対応し得る。各新規プロセス変数によって生成される時系列データは、プロセスプラント内の、可能性のある異常、故障、または他の状態を予測するために、記憶、監視、及び／または分析され得る。
【０３４９】
したがって、目的の信号または変数について、予測される、所望されないプロセスプラント状態に対応する１つ以上の新しいプロセス変数が、プロセスプラント内で作成、生成、及び活用され得る。目的の信号または変数は、個別の信号または測定点であってもよく、あるいは個別の信号／点の信号または測定値の組み合わせ（例えば、和または他の組み合わせ）であってもよい。目的の変数はユーザによって定義されてもよく、あるいはデータブロック、データモジュール、及び／またはデータ分析機能によって自動的に決定されてもよい。
【０３５０】
上に考察したように、新しい時系列データセットのセットを決定するプロセスは、目的の信号または変数を時間領域から周波数領域に変換すること、周波数領域データを獲得すること、及び獲得された周波数領域データを転換して、新しいプロセス変数に対応する時系列データを決定することを伴う。時間領域に再度変換または転換することは重要である。これは、新しい時系列データセットを、元のプロセスデータ信号及び／または他の時系列プロセスデータと共に閲覧することを可能にするためである。したがって、新しい時系列データは、元の目的の信号もしくは変数によって生成されるデータ、及び／または他のプロセスデータに対して使用可能である分析技法（例えば、統計的分析、ＰＣＡ、標準偏差等）と同じものを用いて探査することができ、一部の状況においては、元のプロセスデータ及び／または他のプロセスデータと併せて分析することができる。例えば、新しい時系列データ及び元の／他のプロセスデータの両方が、Ｔｒａｎｓｆｏｒｍｅｒｓデータブロック５２１に入力として提供されてもよい。
【０３５１】
ローリングＦＦＴ分析技法及びその利点を例証するために、ローリングＦＦＴが、精製所または化学プラント等のプロセスプラントにおける潜在的なフレア事象を検出する問題に適用される、例示的シナリオについて考慮されたい。概して、一部のプロセスプラントは、個別のプロセスユニットから過剰な蒸気を収集し、蒸気を大気中に放出する前に、収集した過剰な蒸気を燃焼させて毒性化学物質を除去するフレアリングシステムを有する。この過剰な蒸気またはガスの燃焼を、概して、「バーンオフ」または「フレア事象」と呼ばれる。一部のシナリオにおいては、バーンオフされる代わりに、フレアガスは圧縮され、供給材料または燃料ガスとして再利用される。しかし、フレアガス圧縮機の容量を超過するとフレア事象が発生するため、過剰な材料はフレアバーナを通じて放出される。典型的には、フレア事象の数及び／または頻度は、環境規制及び／または他の種類の規制によって管理されている。一部の計画的なフレア事象は許容されており、かつ必要であるが、プロセスプラントの提供者または企業は、計画外のフレア事象が余りにも頻繁に発生する場合、科料に処される可能性がある。したがって、プロセスプラントの提供者またはオペレータにとっては、現在の運転状態に基づいて、計画外のフレア事象が発生する、または発生する可能性が高いことを予測でき、また十分な先行時間を伴ってこの予測を獲得し、その間にオペレータが軽減的アクションを取って、計画外のフレア事象が起こるのを防止できることが望ましい。
【０３５２】
これは、現代の精製所及び化学プラントは多数の相互接続されたユニット（例えば、数十または数百にすら及ぶ相互接続されたユニット）を伴う複合システムであり、各ユニットそれ自体が大きなプロセスプラントとみなされ得るため、解決が困難な問題である。通常、これらのユニットは、一般的なフレアシステムに接続されている。これらのユニットのうちのいずれもが、フレアシステムが取り扱うべき蒸気の潜在的なソースとなり得るため、どのユニット（複数可）がフレア状態に近いかを監視するのは困難であり得る。更に、いったんフレアが発生すると、どのユニットが原因であるかは直ちには明らかとならない。
【０３５３】
この状況に対処するために、本明細書に記載されるローリングＦＦＴ技法を使用することができる。図７Ａは、ローリングＦＦＴが適用された精製所によって生成された例示的プロセスデータを示す。例示的プロセスデータには、特定の時間間隔中に、精製所のフレアシステム内のユニットから獲得される、プロセスフロー測定値または信号１１００が含まれる。確認できるように、プロセスフロー信号１１００は本来周期的であり、その周期はほぼ１日である（例えば、その周期性が、毎日の加熱冷却サイクルに対応する場合があるため）。加えて、例示的プロセスデータには、同一の特定の時間間隔にわたる、フレアシステムのフレア圧力を示す、別の信号１１０２が含まれる。フレア圧力はフレアシステム内の集合的蒸気の測定値であり、この測定値は、例えば、過剰なガス及び蒸気を格納する圧縮機または他の容器のセンサから獲得され得る。図７Ａにおいては、信号データ１１００及び１１０２は、それらの経時的な挙動及び関係性が容易に視覚化されるように、時間で整合され、スケール変更されていることに留意されたい。ある実施形態においては、１つ以上のデータブロック、データモジュール、及び／または１つ以上のＤＤＥ１０２ｘが、信号データ１１００及び１１０２を受信し、信号１１００及び１１０２を図７Ａに示される時間整合された様式で表示できるように、２つの信号１１００及び１１０２の時間整合を実施する。
【０３５４】
図７Ｂは、異なる時間間隔についての同じ信号１１００及び１１０２を示し、この期間中に、信号１１０２においてフレア事象１１０４が発生した（例えば、信号１１０２に対応するフレア圧力が高まり、圧力限界を超え、したがってフレア事象１１０４を引き起こした）。図７Ｂを見ると、プロセスフロー信号１１００の挙動が、フレア事象１１０４の前に変化していることが明らかである。例えば、プロセスフロー信号１１００の周期的挙動は、フレア事象１１０４の発生の２日から３日前に変化している。フレア事象１１０４に関する先行インジケータとしての、プロセスフロー信号１１００における変化の特定は、例えば、ＰＣＡ、相互相関関係、ＰＬＳ回帰等のデータ分析技法を用いることで決定され得る。ローリングＦＦＴを活用することによって、この変化／先行インジケータを、捕捉、特定、または定義することができ、特定された変化／先行インジケータに対応する新しい信号またはプロセス変数を、生成、定義、または作成することができ、新しいプロセス変数の時系列出力を決定することができる。したがって、先行インジケータの存在に関するローリングＦＦＴによって決定される、新しいプロセス変数の時系列データを監視することによって、切迫したフレアを判定することができ、予防的及び／または軽減的アクションを取ることができるように、対応する警告をユーザ（例えば、エンジニア、プロセスオペレータ等）に呈示することができる。ある実施形態においては、新しく定義されたプロセス変数は、（例えば、タグの割り当て、及び／または新しいプロセス変数をプロセス制御データベースに別様に認識させることによって）精製所のプロセス制御システム内に組み込まれてもよく、従来型のプロセス制御監視設備及び技法を用いて監視してもよい。したがって、新しいプロセス制御変数に対応するステータス及び他の情報は、限度、アラーム、動向チャート等を伴うプロセス情報の任意の他の項目と同様に、ユーザに呈示することができる。
【０３５５】
ある実施形態においては、フレア事象を予測するために活用されるプロセスフロー信号は、個別のフローまたは測定値の組み合わせ（例えば、合計、加重平均、または他の好適な組み合わせ）である。図７Ｃは、ローリングＦＦＴ分析を適用することができるプロセス信号が、個別のプロセスフロー信号１１０６の合計に対する変化に対応する実施形態を示す。合計シグナル１１０６は、ある例においては、個別のフロー信号の測定値を足し合わせることで作成できる。合計１１０６または信号の他の所望される組み合わせの生成は、作成及び分析されるべき新しい信号の数を低減し、これはひいては全体的な分析を簡略化させ得る。しかしながら、単一のプロセス信号を使用するか、あるいは信号の何らかの組み合わせを使用するかについて、制約は存在しない。図７Ｃはまた、表示される時間間隔中においてフレア事象１１０８及び１１１０を含む、フレア圧力信号１１０２を同時に示す。相互関係が容易に視覚化されるように、信号１１０６及び１１０２は時間整合されていることに留意されたい。プロセスフローの合計１１０６の挙動における変化は、フレア事象１１０８の直前において確認できるが、フレア事象１１１０の場合は、合計されたプロセスフロー１１０６における変化は、フレア事象１１１０の後に発生している。合計されたプロセスフロー１１０６の挙動が、例えばより長い時間間隔にまたがる場合、するか否か（また、する場合はどのようにするか）を決定するためには、更なる分析機能等を実施することによる、フロー１１０２とフロー１１０６との間の関係性の更なる分析が必要となり得る。
【０３５６】
図７Ｄは、ローリングＦＦＴ技法を信号１１０６に適用したことの結果１１１２を示しており、この適用により、プロセスフロー信号の合計１１０６は、元の時間領域から周波数領域へと転換され、次いで再度時間領域へと転換される。特に、図７Ｄの信号１１１２は、信号１１０６の、具体的な目的の周波数（例えば、第４の周波数は１日当たり４周期に対応する）の振幅（例えば、時系列データ）に対応する。１日当たり４周期に対応する第４の周波数が、新しいプロセス変数として定義され、その時系列ピーク振幅値が対応する周波数領域データから捕捉され、フレア圧力信号１１０２と併せて、信号１１１２として時間領域で表示されている。相互関係が容易に視覚化されるように、信号１１１２及び１１０２は時間整合されていることに留意されたい。図７Ｄに見られるように、信号１１１２の特定のピーク振幅１１１３が、フレア事象１１０８と関連付けられる。しかし、データ１１１２はノイズが混ざっているように見受けられ、偽陽性と呼ばれ得るものを含む（例えば、事象１１１５ａ、１１１５ｂ）。しかしながら、偽陽性は、注意報として使用することができ、ならびに／または回避された「近」フレア事象を表す場合があるため、過度に心配するには当たらない。
【０３５７】
信号データ１１１２を更に処理及びクリーンにするため、更なるデータ分析技法が実施されてもよい。例えば、図７Ｅにおいては、ＰＣＡが、１日当たり４周期に対応する第４の周波数の周波数領域データに対して、その第１の主構成要素を決定するために適用されており、第１の主構成要素の時系列値が、信号１１１８として示されている。具体的には、図７Ｅは、フレア圧力信号１１０２のフレア事象１１０８周囲の時間間隔中における、第１の主構成要素１１１８の挙動の拡大表示を示している。信号１１１８及び１１０２は、それらの間の相互関係が容易に視覚化されるように、時間整合されていることに留意されたい。図７Ｅに見られるように、第１の主構成要素１１１８の値におけるスパイクが、フレア事象１１０８の前によく発生しており、そ麗江には、第１の主構成要素１１１８の値は有意に減少している。このスパイクを捕捉するために、信号１１１８をある期間保持するために、減衰フィルタを使用してもよい。ある実施形態においては、減衰フィルタは、その減衰フィルタのインスタンスが、各アプリケーションについて異なって調整可能であるように、データブロック定義及び対応するデータブロックプロパティによって定義され得る。例えば、減衰フィルタブロックの構成可能なプロパティは、信号の増加速度及び／または減衰速度を定義し得る。一部の実施形態においては、更なる主構成要素を決定し、技法の感度を上昇させるために使用してもよい。
【０３５８】
図７Ｆは、図７Ｄの別の部分の拡大表示を示す。具体的には、図７Ｆは、フレア圧力信号１１０２のフレア事象１１１０周囲の時間中における、第１の主構成要素１１１８の挙動をより詳細に示している。図７Ｆにおいては、フレア事象１１１０に対応する第１の主構成要素１１１８の値は、フレア事象１１０８の場合と比べると小さいが、基線と比較すると、値の有意な差異が依然として存在する。
【０３５９】
プロセス制御データにおいて先行インジケータを検出するために、ローリングＦＦＴ分析を使用する技法は、オフライン分析及びデータモデルを構築する試みにおいて使用できる。しかしながら、新しいプロセス変数（例えば、周波数、主構成要素、及び／または他の目的の高次データ）が特定及び定義されると、ローリングＦＦＴ分析は、オンラインプロセスプラントからのリアルデータのストリーミングに対して実施され得る。例えば、ローリングＦＦＴデータブロックのインスタンスをオンラインデータモジュールに組み込み、プロセスプラント内のオンラインソースにバインドできるように、ローリングＦＦＴをデータブロックとして定義し、ブロック定義ライブラリ２５２に記憶してもよい。したがって、ローリングＦＦＴ分析が動作するライブのストリーミングデータは、ユーザまたはプラントオペレータに対し、切迫した状態についてのリアルタイム予測／警告を提供し得る。一部の実施形態においては、ユーザは、他の分析機能ブロック（例えば、ＰＣＡ、ＰＬＳ、及び／または他の分析機能ブロック）に対して相互接続されるローリングＦＦＴデータブロックを含むように、組み合わせデータブロックを定義してもよい。加えて、ユーザは、複数のプロセス信号を単一の信号へと組み合わせる（例えば、合計する、加重平均を計算する等）データブロックを定義して、ローリングＦＦＴデータブロックへの入力及び／またはローリングＦＦＴデータブロックを含む組み合わせブロックへの入力としてその単一の信号を活用してもよい。
【０３６０】
したがって、ローリングＦＦＴデータ分析技法は、オフラインプロセスデータ及びオンラインプロセスデータについて活用できる、記述的分析技法の一例である。
【０３６１】
一部の実施形態においては、ローリングＦＦＴ分析技法に対応する新しいプロセス変数は、プロセスプラントに組み込まれ得る。例えば、新しいプロセス変数は、（例えば、それぞれのプロセス制御タグを割り当てることによって）定義することができ、プロセスプラントのプロセス制御データベースに記憶することができる。ある実施形態においては、新しいプロセス変数によって生成された時系列データは、プロセスプラントのプロセスの一部分を制御するように動作する制御機能または制御ブロックへの入力として働くことができ、あるいはプロセスプラントにおける変化のトリガとして働き得る。
【０３６２】
更に、潜在的なフレア事象の検出は別として、所望されない状態または事象を予防するためにローリングＦＦＴを適用できる他の状況としては、潜在的な圧力安全バルブのリフティング、潜在的な圧縮機のサージ、切迫したポンプの破損、切迫したバルブの破損、蒸留塔における冠水等のフローの不安定性、回転粉砕ミルにおける破損、油井及びガス井生産の不安定性等の警告が挙げられる。一部のシナリオにおいては、ローリングＦＦＴは、プロセスプラント内の１つ以上のエンティティ、またはプロセスプラント全体の所望されないパフォーマンス測度を予防するために適用できる。
【０３６３】
図７Ｇは、プロセスプラント及びプロセス制御システムにおける早期故障検出を提供するための例示的方法１２００のフローダイアグラムを示す。方法１２００のうちの１つ以上の部分が、例えば、ブロック定義ライブラリ２５２のデータブロックによって実施できる。方法１２００のうちの１つ以上の部分が、工業プロセスパフォーマンス監視／分析システム１００のうちの１つ以上の部分、例えば、１つ以上のＤＤＥ１０２ｘ、オフラインデータモジュール、オンラインデータモジュール等によって実施できる。無論、方法１２００のうちの１つ以上の部分は、本明細書に記載されるデータ分析システム１００のシステム、デバイス、及び装置以外のものによって実施できる。一部の実施形態においては、方法１２００は、本明細書に記載されるステップよりも多いか、少ないか、あるいはそれらとは異なるステップを含み得る。
【０３６４】
ブロック１２０２において、方法１２００は、プロセスプラントによるプロセス制御の結果として生成されるプロセス信号またはデータの開始セットを受信することまたは獲得することを含み得る。プロセス信号の開始セットは、プロセスプラントにおけるプロセスを制御するように動作する１つ以上のプロセス制御デバイスによって生成される時間領域データを含み得、かつ／あるいはプロセスの制御の結果としてプロセスプラント内の１つ以上の他の構成要素、デバイス、またはエンティティによって生成される時間領域データ（例えば、プロセスプラント内の様々なデータソースによって生成される、一次プロセスデータ）を含んでもよい。例えば、プロセス信号の開始セットは、温度、フロー、圧力、組成、状態等の値等、経時的なプロセス測定値の値を含み得る。一部の実施形態においては、獲得したプロセス信号またはデータの開始セットは、プロセスプラントによるプロセス制御の結果として生成される、診断結果、オペレータまたはユーザの一連のアクション、リンクまたはプロセス通信ネットワークの利用可能な帯域幅、データ分析の結果等の、経時的な二次または高次プロセスデータを含み得る。獲得したプロセス信号の開始セットは、例えば、オフラインプロセスデータ及び／またはオンラインプロセスデータを含み得る。
【０３６５】
ブロック１２０４においては、方法１２００は、獲得したプロセス信号の初期セットに基づいて、プロセスプラント内で発生する（または発生した）異常、故障、パフォーマンスの低下、または他の所望されない／望ましくない状態の先行インジケータを決定することを含み得る。例えば、先行インジケータは、特定のプロセス制御信号の特定の周波数のピーク振幅におけるスパイク（例えば、図７Ｂに示されるスパイク１１０４）等の、異常、故障、パフォーマンスの低下、及び／または他の状態の発生の前に起こる、１つ以上のプロセス制御信号の挙動における変化であり得る。ある実施形態においては、先行インジケータは、ＰＣＡ、ＰＬＳ回帰、クラスタリング、相互相関関係等の、獲得したプロセス信号の開始セットのうちの１つ以上に対して１つ以上の統計分析技法を用いることによって決定できる。ある実施形態においては、データ分析システム１００の１つ以上のオフライン及び／またはオンラインデータブロック及び／またはデータモジュールが、１つ以上の獲得したプロセス信号に対して動作して、異常、故障、パフォーマンスの低下、及び／または他の状態の１つ以上の先行インジケータを決定し得る。
【０３６６】
ブロック１２０６においては、方法１２００は、先行インジケータに対応する１つ以上の新しいプロセス変数のセットを、作成、定義、または生成することを含み得る。ある実施形態においては、特定の信号の挙動における特定の変化に対応する新しいプロセス変数が、作成、定義、または生成され得る。例えば、先行インジケータが発生し得る目的の周波数（例えば、図７Ｃの信号１１０６の周波数）が特定され、新しいプロセス変数として作成／生成され得る。一部の実施形態においては、１つ以上の新しいプロセス変数のセットの生成（ブロック１２０６）は、先行インジケータに対応する第１の新しいプロセス変数（例えば、図７Ｃの信号１１０６に対する変化）を定義／特定／生成することと、続いて、第１の新しいプロセス変数によって生成される時系列データ（単独で、あるいは他のプロセス変数によって生成される他の時系列データと共に）に対して、１つ以上の分析技法を実施して、先行インジケータと関連付けられる別の新しいプロセス変数を決定することとを含む。例えば、図７Ｄを参照すると、図７Ｃの信号１１０６に対応する周波数領域データに対してＰＣＡが適用されて、第１の主構成要素を決定し、第１の主構成要素が別の新しいプロセス変数として特定／定義され、その経時的な値は、信号１１１２によって図７Ｃに表される。
【０３６７】
ブロック１２０６の一部の実装形態において、データ分析システム１００の１つ以上のオフライン及び／またはオンラインデータブロック及び／またはデータモジュールは、先行インジケータに対応する１つ以上の新しいプロセス変数を特定し、作成／定義／生成するように動作し得る。この１つ以上の新しいプロセス変数は、一部の場合においては、タグ付けされ、かつ／あるいはプロセスプラントまたはプロセス制御システム内に記憶され得る。
【０３６８】
ブロック１２０８においては、方法１２００は、プロセス信号の後続セットを獲得すること（例えば、ブロック１２０２の様式と類似する様式で）と、それにローリングＦＦＴを実施して、１つ以上の新しいプロセス変数に対応する時系列データを決定することとを含み得る。プロセス信号の後続セットは、例えば、オフライン及び／またはオンライン信号を含み得る。それに対してローリングＦＦＴを実施するには、プロセス信号の後続セットのデータの第１の窓に対してＦＦＴを実施し得、その中の周波数のピーク振幅の値が時系列データとして保存されてもよく、データの第２の窓に対してＦＦＴを実施し得、その中の周波数のピーク振幅の値が時系列データとして保存されてもよく、以降同様に続き、それによって、プロセス信号の後続セット内に含まれる１つ以上の目的の周波数についてのそれぞれの時系列データが生成される。例えば、特定のプロセス信号の特定の目的の周波数が、新しいプロセス変数に対応する場合、ローリングＦＦＴを、プロセス信号の後続セットに対して適用して、プロセス信号の後続セット内の特定の目的の周波数の挙動を経時的に獲得し得、例えば、新しいプロセス変数によって生成されるピーク振幅値を含む時系列データを経時的に獲得し得る。分析技法を実施して新しいプロセス変数を特定した状況においては（例えば、上に考察したように、新しいプロセス変数は、信号１１０６に対応する周波数領域データの第１の主構成要素に対応する）、１つ以上の分析技法もまた、ブロック１２０８において適用されて、そのような新しいプロセス変数の時系列データを決定できる。ある実施形態においては、ブロック１２０８は、１つ以上のオンライン及び／またはオフラインデータブロック及び／またはデータモジュール等、データ分析システム１００のうちの１つ以上の部分によって実施され得る。
【０３６９】
ブロック１２１０においては、方法１２００は、１つ以上の新しいプロセス変数によって生成される時系列データ（例えば、ブロック１２０８において獲得されたもの）を、先行インジケータの存在について監視することを含み得る。例えば、特定の目的の周波数のピーク振幅が、規模及び／または持続期間の閾値を超える場合、先行インジケータの存在を検出できる。ある実施形態においては、新しいプロセス変数は、それぞれのタグまたは他のインジケータによって特定され、プロセスプラントに組み込まれ、したがって、その時系列データ値の監視（ブロック１２１５）は、プロセスプラントの故障検出アプリケーション、アラーム取扱アプリケーション、及び／または他の監視アプリケーションによって実施され得る。追加的または代替的に、先行インジケータの存在を検出する、時系列データの監視（ブロック１２１５）は、データ分析システム１００によって実施されてもよい。
【０３７０】
ブロック１２１２においては、方法１２００は、故障、異常、事象、パフォーマンスの低下、所望されない状態、及び／または所望される状態等の発生が、ブロック１２１０における監視中に発見された、検出された先行インジケータの存在に基づいて予想されることについての指標を生成することを含み得る。一部の場合においては、ブロック１２１２は、該状態の発生が予想される時間枠の指標を生成することを含む。例えば、動向チャート、アラーム、アラート、及び／または他の視覚的もしくは聴覚的インジケータが、ユーザインターフェイスによって生成及び呈示されて、獲得した時系列データ中の先行インジケータの存在に基づいて、プロセスプラントにおける切迫した異常、故障、パフォーマンスの低下、及び／または他の状態についてユーザまたはオペレータに警告し得る。
【０３７１】
一部の実施形態においては（図７Ｇには図示せず）、方法１２００は、信号（制御信号または変化を示す他の信号等）を生成させ、検出された先行インジケータの存在に基づいて、オンラインプロセスプラントに提供させることを含み得る。例えば、データ分析システム１００は、監視されているデータにおいて検出された先行インジケータの存在に基づいて、１つ以上の制御信号を自動的に生成し得（ブロック１２１０）、この１つ以上の制御信号を１つ以上のコントローラに対して自動的に提供して、プロセス制御プラントの少なくとも一部分の挙動を変更することができる。オンラインプロセスプラントに変化をもたらすようにそこに提供され得る他の信号としては、例えば、（例えば、設備、デバイス、ルーチン、もしくはアプリケーション等の一部の）パラメータ、値、構成、及び／もしくは状態に対する変更、またはプロセスプラント内もしくはそれと併せて実行されるアプリケーションに対する変更を示すトリガまたは信号が挙げられる。
【０３７２】
一部の実施形態においては（図７Ｇには図示せず）、方法１２００は、１つ以上の信号を生成させ、データ分析システム１００に提供させることを含み得る。例えば、方法１２００は、データ分析システム１００に対して、新しいプロセス変数の指標及びそれらそれぞれの識別子、決定された先行インジケータの指標、時系列データ（及び、それに適用される様々な分析技法の出力等の、そこから生成されるより高次のデータ）に対して実施される様々な分析技法の特性及び配列を提供して、更なる新しいプロセス変数、新しいプロセス変数によって生成される、監視される時系列データ、その中の先行インジケータの存在等を決定し得る。概して、方法１２００は、方法１２００の実行によって生成される任意のデータを、データ分析システム１００に提供させることを含み得る。ある実施形態においては、データ分析システム１００に提供される１つ以上の信号は、ストリーミングデータであり得る。
【０３７３】
無論、方法１２００はブロック１２０２〜１２１２に限定されない。一部の実施形態においては、更なるブロックが方法１２００によって実施され得、かつ／あるいはブロック１２０２〜１２１２のうちの一部は方法１２００から省略されてもよい。更に、方法１２００の実施形態は、図１、２、３、４Ａ〜４Ｑ、５Ａ〜５Ｇ、及び６Ａ〜６Ｅのうちのいずれかの部分または全ての部分と併せて、かつ／あるいは本開示の他の節に記載される任意の数の特色及び／または技法と併せて動作し得る。
【０３７４】
上記の見地から、例えば、制御及び他の処理が多かれ少なかれ中心的に実施されていた集中型プロセス制御システムから、制御及び他の処理がプラント全体にわたる複数のコントローラ中に分散された次世代分散型制御システム（ＤＣＳ）への経時的な発展をよく知る者ならば、本明細書に記載される新規Ｄｉｓｔｒｉｂｕｔｅｄ  Ａｎａｌｙｔｉｃｓ  Ｓｙｓｔｅｍ（ＤＡＳ）１００及び関連付けられる工業プロセスパフォーマンス監視及び分析方法、デバイス、装置、構成要素、及び技法が、プロセス制御パフォーマンス監視及び分析の次世代への同様の飛躍を提供することを認識するであろう。例えば、プロセス制御システムのオペレータワークステーションにおいて、分析設備においてオフラインで、あるいは初歩的分析ツールを用いることによる、標的を決め、焦点を絞った分析を実施するのではなく、本明細書に開示される分散型分析システム１００、ならびに関連付けられる方法、デバイス、装置、構成要素、及び技法は、プロセスプラントの現在のオペレーションに関する記述、予測、及び規定が恒常的に利用可能であるように、分散型制御システムの様式と同様の様式で、プラント全体にわたり、更には企業及び／またはエンタープライズのレベルにおける包括的パフォーマンス監視及びリアルタイム分析を可能にする（例えば、図２Ｂを参照）。加えて、ＤＡＳ１００のモジュール式の分散型アーキテクチャは、プロセスプラント及び／またはプロセス制御システムのデータソースに対して所望されるほど近い、あるいはそこから所望されるほど遠く離れた、パフォーマンス及び分析機能の埋め込みを可能にし、更なるＤＤＥ１０２ｘをＤＡＳ１００に対して所望される通りに、あるいは所望されるときに追加することを可能にする（例えば、よりローカライズされた処理馬力のため、プラント５の特定の領域またはロケーションにおいて分析を提供するため、プラント５が拡張される場合等）。更に、上で説明された通り、ＤＡＳ１００は、データモジュールの設計、定義、展開、及び監視を、それらが実行されている環境及びプラットフォームから分割または分離させ、それによって、分析及びデータモジュール／モデルのコーディング及びコンパイルについて心配する必要性からデータエンジニアまたはユーザを完全に開放する。なおも更に、この分離は、より高い柔軟性、及び異なるターゲット環境に対するシームレスな移行を可能にする。
【０３７５】
ソフトウェアに実装される場合、本明細書に記載されるアプリケーション、サービス、及びエンジンは、磁気ディスク、レーザディスク、固体メモリデバイス、分子メモリストレージデバイス、または他の記憶媒体、コンピュータもしくはプロセッサのＲＡＭもしくはＲＯＭ等の、任意の有形の、非一時的コンピュータ可読メモリに記録され得る。本明細書に開示される例示的システムは、他の構成要素の中でも、ハードウェア上で実行されるソフトウェア及び／またはファームウェアを含むように開示されているが、そのようなシステムは単に例示的であるに過ぎず、限定的であると見なされるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、及びファームウェア構成要素のうちのいずれかまたは全てが、ハードウェアにのみ、ソフトウェアにのみ、あるいはハードウェア及びソフトウェアの任意の組み合わせで、埋め込まれ得ることが企図される。したがって、本明細書に記載される例示的システムは、１つ以上のコンピュータデバイスのプロセッサにおいて実行されるソフトウェアに実装されるように記載されているが、当業者ならば、提供される例が、そのようなシステムを実装するための唯一の方法であるわけではないことを容易に理解するであろう。
【０３７６】
したがって、本発明は具体的な例に関して記載されてきたが、これらの例は例証的である過ぎず、本発明の限定であることを意図せず、変更、追加、または削除が、本発明の趣旨及び範囲から逸脱することなく、開示される実施形態に対して行われ得ることが当業者には明らかであろう。
【０３７７】
任意の具体的な実施形態の特定の特色、構造、及び／または特性は、他の特色の対応する使用を伴う、または伴わない選択された特色の使用を含む、任意の好適な様式で、かつ／あるいは１つ及び／またはそれ以上の他の実施形態との任意の好適な組み合わせで、組み合わせてもよい。加えて、本発明の本質的な範囲または趣旨に対して、特定の用途、状況、及び／または材料を適合させるように、多くの修正がなされてもよい。本明細書に記載及び／または例証された本発明の実施形態の他の変形及び／または修正が、本明細書の教示の観点から可能であり、本発明の趣旨または範囲の一部としてみなされるべきことを理解されたい。本発明のある特定の態様は、例示的態様として本明細書に記載されている。
【図１】
2020021502.tif 000003
【図２Ａ】
2020021502.tif 000004
【図２Ｂ】
2020021502.tif 000005
【図３】
2020021502.tif 000006
【図４Ａ】
2020021502.tif 000007
【図４Ｂ】
2020021502.tif 000008
【図４Ｃ】
2020021502.tif 000009
【図４Ｄ】
2020021502.tif 000010
【図４Ｅ】
2020021502.tif 000011
【図４Ｆ】
2020021502.tif 000012
【図４Ｇ】
2020021502.tif 000013
【図４Ｈ】
2020021502.tif 000014
【図４Ｉ】
2020021502.tif 000015
【図４Ｊ】
2020021502.tif 000016
【図４Ｋ】
2020021502.tif 000017
【図４Ｌ】
2020021502.tif 000018
【図４Ｍ】
2020021502.tif 000019
【図４Ｎ−１】
2020021502.tif 000020
【図４Ｎ−２】
2020021502.tif 000021
【図４Ｏ】
2020021502.tif 000022
【図４Ｐ】
2020021502.tif 000023
【図４Ｑ】
2020021502.tif 000024
【図５Ａ】
2020021502.tif 000025
【図５Ｂ】
2020021502.tif 000026
【図５Ｃ】
2020021502.tif 000027
【図５Ｄ】
2020021502.tif 000028
【図５Ｅ】
2020021502.tif 000029
【図５Ｆ】
2020021502.tif 000030
【図５Ｇ】
2020021502.tif 000031
【図６Ａ】
2020021502.tif 000032
【図６Ｂ】
2020021502.tif 000033
【図６Ｃ】
2020021502.tif 000034
【図６Ｄ】
2020021502.tif 000035
【図６Ｅ】
2020021502.tif 000036
【図７Ａ】
2020021502.tif 000037
【図７Ｂ】
2020021502.tif 000038
【図７Ｃ】
2020021502.tif 000039
【図７Ｄ】
2020021502.tif 000040
【図７Ｅ】
2020021502.tif 000041
【図７Ｆ】
2020021502.tif 000042
【図７Ｇ】
2020021502.tif 000043