(57)【要約】      （修正有）【課題】プロセス制御システム内のデバイスと通信するためのサービス指向フレームワークが開示される。【解決手段】プロセス制御システム内のデバイスと通信するための例示的な方法は、プロセス制御システム内のデバイスと通信するためのサービスであって、プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルとは無関係な汎用インターフェースを有するサービスを呼び出すことと、サービスを実装するための１つ以上のネットワーク動作であって、プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルに特化しているネットワーク動作に、サービスを変換することと、１つ以上のネットワーク動作に従って、デバイスと通信するために、プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルに特化したネットワークインターフェースを使用することと、を含む。【選択図】図１
2012069113.tif 000002
【特許請求の範囲】
【請求項１】
プロセス制御システム内のデバイスと通信するための方法であって、前記方法は、
前記プロセス制御システム内の前記デバイスと通信するためのサービスであって、前記プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルとは無関係である汎用インターフェースを有する、サービスを呼び出すことと、
前記サービスを実装するために、１つ以上のネットワーク動作を前記サービスに変換することであって、前記ネットワーク動作が前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルに特化している、前記サービスを変換することと、
前記１つ以上のネットワーク動作に従って前記デバイスと通信するために、前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルに特化したネットワークインターフェースを使用することと、を含む、方法。
【請求項２】
前記サービスは、複数のサービスを提供するサービスレイヤによって、サービス契約として明らかになり（ｅｘｐｏｓｅｄ）、前記複数のサービスのそれぞれは、前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルとは無関係であり、前記複数のサービスのそれぞれは、複数の異なるプロセス制御ネットワークプロトコルを使用して実装された複数の異なるプロセス制御システム内のデバイスとの通信をサポートする、請求項１に記載の方法。
【請求項３】
前記サービスを呼び出すことは、前記サービスを呼び出すために、メッセージベースのサービスインターフェースを定義する複数のメッセージのうちの１つ以上を使用することを含み、前記複数のメッセージは、複数のサービスメッセージタイプおよび複数のサービスデータタイプを含み、前記複数のサービスメッセージタイプおよび前記複数のサービスデータタイプは、いかなるプロセス制御ネットワークプロトコルとも無関係である、請求項１に記載の方法。
【請求項４】
前記サービスを実装するために、１つ以上のネットワーク動作へ前記サービスを変換することは、
前記プロセス制御ネットワークプロトコルに特化したネットワーク動作のシーケンスへ、前記サービスを変換することと、
ネットワーク動作の前記シーケンスのどれが、前記サービスを実装するために実行されたかを追跡するために、ネットワーク動作の前記シーケンスの状態を維持することと、を含む、請求項１に記載の方法。
【請求項５】
前記サービスを実装するために、１つ以上のネットワーク動作へ前記サービスを変換することは、前記１つ以上のネットワーク動作を作成するために、前記デバイスのデバイス記述を読み込むことを含む、請求項１に記載の方法。
【請求項６】
前記デバイス記述は、電子デバイス記述言語または共通のファイルフォーマットのうちの少なくとも１つで格納される、請求項５に記載の方法。
【請求項７】
前記ネットワークに特化したインターフェースは、複数のネットワークメッセージタイプ、複数のネットワークデータタイプ、または前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルに特化したオブジェクト辞書のうちの少なくとも１つを含むネットワークアプリケーションプログラミングインターフェースを含む、請求項１に記載の方法。
【請求項８】
前記デバイスからの応答を受信することであって、前記応答は、前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルに特化した第１のフォーマットである、応答を受信することと、
前記応答を、前記第１のフォーマットから、前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルとは無関係な第２のフォーマットへ変換することと、
前記応答を、前記第２のフォーマットから、前記応答を受信するためのアプリケーションに特化した第３のフォーマットへ転換するために、アダプタを呼び出すことと、をさらに含む、請求項１に記載の方法。
【請求項９】
前記サービスを呼び出すことの前に、アプリケーションを認証することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記サービスを呼び出す際に実行されたユーザ承認に基づき、前記デバイスとの通信を制限することをさらに含む、請求項１に記載の方法。
【請求項１１】
前記サービスは、
メッセージをデバイスに送信し、前記デバイスから対応する応答を受信するための第１のサービス、
前記デバイスによって返された発行されたデータを購読する（ｓｕｂｓｃｒｉｂｅ  ｔｏ）ための第２のサービス、
前記デバイスによって返された受信されたイベントへの第３のサービス、
前記プロセス制御システムと、前記プロセス制御システムを実装する、前記デバイスを含む複数のデバイスとを記述する情報を取得するための第４のサービス、
制御パラメータ値を前記デバイスへ書き込むための第５のサービス、のうちの少なくとも１つに対応する、請求項１に記載の方法。
【請求項１２】
前記サービスは、非同期的に送信された１つ以上のメッセージを使用して呼び出され、前記ネットワークインターフェースは、データを前記デバイスから取得するために同期ポーリングを実装する、請求項１に記載の方法。
【請求項１３】
実行された場合に、機械に、少なくとも、
プロセス制御システム内のデバイスと通信するためのサービスであって、前記プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルとは無関係である汎用インターフェースを有するサービスを呼び出すことと、
前記サービスを実装するための、１つ以上のネットワーク動作であって、前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルに特化しているネットワーク動作に、前記サービスを変換することと、
前記１つ以上のネットワーク動作に従って、前記デバイスと通信するために、前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルに特化したネットワークインターフェースを使用することと、を行わせる、機械可読命令を格納する、有形の製品。
【請求項１４】
前記サービスは、複数のサービスを提供するサービスレイヤによって、サービス契約として明らかになり、前記複数のサービスのそれぞれは、前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルとは無関係であり、前記複数のサービスのそれぞれは、複数の異なるプロセス制御ネットワークプロトコルを使用して実装された複数の異なるプロセス制御システム内のデバイスとの通信をサポートし、前記機械可読命令は、実行された場合に、さらに、前記機械に、前記サービスを呼び出すために、メッセージベースのサービスインターフェースを定義する複数のメッセージのうちの１つ以上を使用して前記サービスを呼び出させ、前記複数のメッセージは、複数のサービスメッセージタイプおよび複数のサービスデータタイプを含み、前記複数のサービスメッセージタイプおよび前記複数のサービスデータタイプは、いかなるプロセス制御ネットワークプロトコルとも無関係である、請求項１３に記載の有形の製品。
【請求項１５】
前記機械可読命令は、実行される場合に、さらに、
前記サービスを、前記プロセス制御ネットワークプロトコルに特化したネットワーク動作のシーケンスに変換することと、
ネットワーク動作の前記シーケンスを作成するために、前記デバイスのデバイス記述を読み込むことと、
前記サービスを実装するために、ネットワーク動作の前記シーケンスのどれを実行したかを追跡するために、ネットワーク動作の前記シーケンスの状態を維持することと、によって、前記サービスを実装するために、前記機械に、前記サービスを１つ以上のネットワーク動作へ変換させる、請求項１３に記載の有形の製品。
【請求項１６】
前記ネットワークに特化したインターフェースは、複数のネットワークメッセージタイプ、複数のネットワークデータタイプまたは前記プロセス制御システムを実装するために使用された前記プロセス制御ネットワークプロトコルに特化したオブジェクト辞書のうちの少なくとも１つを含む、ネットワークアプリケーションプログラミングインターフェースを含む、請求項１３に記載の有形の製品。
【請求項１７】
プロセス制御システム内のフィールドデバイスと通信するための装置であって、前記装置は、
複数の異なるプロセス制御ネットワークプロトコルを使用して実装された複数のプロセス制御システム内の複数のフィールドデバイスと通信するためのサービス指向フレームワークを実装するためのプロセッサであって、前記サービス指向フレームワークは、
前記複数のフィールドデバイスと通信するための複数のサービスを実装するサービスレイヤであって、それぞれのサービスは、前記複数のプロセス制御システムを実装するために使用された前記複数のプロセス制御ネットワークプロトコルのいずれとも無関係である各汎用インターフェースを有する、サービスレイヤと、
複数の変換レイヤであって、各変換レイヤは、前記各サービスを実装するために、ネットワーク動作の各シーケンスへ、前記複数のサービス内の各サービスを変換し、ネットワーク動作の前記各シーケンスは、前記各変換レイヤに関連付けられた特定のプロセス制御ネットワークプロトコルに特化している、変換レイヤと、
前記複数のプロセス制御システムを実装するために使用された前記複数のプロセス制御ネットワークプロトコルのそれぞれに特化した複数のネットワークインターフェースを提供するために、前記複数の変換レイヤとそれぞれ関連付けられた複数のネットワークレイヤと、を備えるサービス指向フレームワークである、プロセッサと、
クライアントデバイスによって実装されたアプリケーションを、前記プロセッサによって実装された前記サービスレイヤと通信可能に結合するためのインターフェースと、を含む、装置。
【請求項１８】
各サービスは、前記サービスレイヤによって、各サービス契約として明らかになり、各サービスは、前記複数の異なるプロセス制御ネットワークプロトコルを使用して実装された前記複数の異なるプロセス制御システム内の前記複数のフィールドデバイスとの通信をサポートし、各サービスは、前記複数のサービスのそれぞれを呼び出すために、メッセージベースのサービスインターフェースを定義する複数のメッセージのうちの１つ以上を使用して呼び出され、前記複数のメッセージは、複数のサービスメッセージタイプおよび複数のサービスデータタイプを含み、前記複数のサービスメッセージタイプおよび前記複数のサービスデータタイプは、いかなるプロセス制御ネットワークプロトコルとも無関係である、請求項１６に記載の装置。
【請求項１９】
第１の変換レイヤは、
それによって前記第１のサービスが、ネットワーク動作の前記第１のシーケンスを作成するために通信する、第１のフィールドデバイスのためのデバイス記述を読み込むことと、
前記第１のサービスを実装するために、ネットワーク動作の前記第１のシーケンスのどれが実装されたかを追跡するために、ネットワーク動作の前記第１のシーケンスの状態を維持することと、によって、第１のサービスをネットワーク動作の第１のシーケンスに変換する、請求項１６に記載の装置。
【請求項２０】
第１のネットワークレイヤによって提供された第１のネットワークに特化したインターフェースは、複数のネットワークメッセージタイプ、複数のネットワークデータタイプ、または第１のプロセス制御システムを実装するために使用された第１のプロセス制御ネットワークプロトコルに特化したオブジェクト辞書のうちの少なくとも１つを含むネットワークアプリケーションプログラミングインターフェースを含む、請求項１６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、プロセス制御システムに関し、より具体的には、プロセス制御システム内のデバイスと通信するためのサービス指向フレームワークに関する。
【背景技術】
【０００２】
化学プロセス、石油プロセス、または他のプロセスで使用されるもの等のプロセス制御システムは、一般的に、アナログ、デジタル、またはアナログ／デジタルを組み合わせたバスを介して、少なくとも１つのクライアントまたはオペレータワークステーションおよび１つ以上のフィールドデバイスに通信可能に結合された１つ以上のプロセスコントローラを含む。例えば、バルブ、バルブ位置決め装置、スイッチ、およびトランスミッタであってもよいフィールドデバイス（例えば、温度、圧力、および流量センサ）は、バルブの開閉およびプロセス制御パラメータの計測等のプロセス内のプロセス制御機能を実行する。コントローラは、フィールドデバイスによって行われるプロセス測定を示す信号を受信し、制御ルーチンを実装するためにこの情報を処理し、プロセスの動作を制御するためにフィールドデバイスにバスまたは他の通信回線上で送信される制御信号を発生させる。このようにして、コントローラは、フィールドデバイスを通信可能に結合するバスおよび／または他の通信リンクを介してフィールドデバイスを使用して制御戦略またはルーチンを実行し、連携調整する。
【０００３】
フィールドデバイスおよびコントローラからの情報は、オペレータが、プロセスに関して所望の機能を実行可能となるように、クライアント／オペレータワークステーション（例えばプロセッサベースのシステム）によって実行されるランタイムデータとして、１つ以上のアプリケーション（例えばルーチン、プログラム等）で利用できるようにされてもよい。これらの機能のいくつかは、（例えば、グラフィカルユーザインターフェースを介した）プロセスの現在の状態を視認すること、プロセスを評価すること、（例えば、視覚オブジェクト図を介した）プロセスの動作を修正すること等を含んでもよい。多くのプロセス制御システムは、さらに、アプリケーションステーションとも称される１つ以上の他のクライアントアプリケーションステーションも含む。通常、アプリケーションステーションは、コントローラ、オペレータワークステーション、およびローカルエリアネットワーク（ＬＡＮ）を介してプロセス制御システム内の他のシステムに通信可能に結合されるパーソナルコンピュータ、ワークステーション等を使用して実装される。各アプリケーションステーションは、プロセス制御システムの中でキャンペーン管理機能、保守管理機能、仮想制御機能、診断機能、リアルタイム監視機能、安全性関連機能、構成機能等を実行する１つ以上の戦略、ルーチン、またはアプリケーションを実行してもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本明細書に記載される例示的な方法、装置、および製品は、概して、プロセス制御システムに関し、より詳細には、プロセス制御システム内のデバイスと通信するためのサービス指向フレームワークに関する。
【課題を解決するための手段】
【０００５】
本明細書に開示される例において、プロセス制御システム内のデバイスと通信するための方法は、プロセス制御システム内のデバイスと通信するためのサービスを呼び出すことを含み、サービスは、プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルとは無関係である汎用インターフェースを提供する。例示的な方法は、さらに、サービスを実装するために、サービスを１つ以上のネットワーク動作へ変換することを含み、ネットワーク動作は、プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルに特化している。さらに、例示的な方法は、１つ以上のネットワーク動作に従ってデバイスと通信するために、プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルに特化したネットワークインターフェースを使用することを含む。
【０００６】
本明細書に開示される別の例において、有形の製品は、実行された場合に、機械に、少なくとも、プロセス制御システム内のデバイスと通信するために、サービスを呼び出させる機械可読命令を格納し、サービスは、プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルに無関係な汎用インターフェースを提供する。機械可読命令は、実行された場合に、さらに、機械に、少なくとも、サービスを実装するために、１つ以上のネットワーク動作へサービスを変換させ、ネットワーク動作は、プロセス制御システムを実装するために使用されたプロセス制御ネット枠プロトコルに特化している。機械可読命令は、実行された場合に、さらに、機械に、少なくとも、１つ以上のネットワーク動作に従ってデバイスと通信するために、プロセス制御システムを実装するために使用されたプロセス制御ネットワークプロトコルに特化したネットワークインターフェースを使用させる。
【０００７】
本明細書に開示されるさらに別の例において、プロセス制御システム内のフィールドデバイスと通信するための装置は、複数の異なるプロセス制御ネットワークプロトコルを使用して実装された複数のプロセス制御システム内の複数のフィールドデバイスと通信するためのサービス指向フレームワークを実装するためのプロセッサを含む。いくつかの例において、サービス指向フレームワークは、複数のフィールドデバイスと通信するための複数のサービスを実装するサービスレイヤを含み、それぞれのサービスは、複数のプロセス制御システムを実装するために使用された複数のプロセス制御ネットワークプロトコルのいずれとも無関係である各汎用インターフェースを提供する。いくつかの例において、サービス指向フレームワークは、さらに、複数の変換レイヤを含み、各変換レイヤは、各サービスを実装するために、ネットワーク動作の各シーケンスへ、複数のサービス内の各サービスを変換するためのものであり、ネットワーク動作の各シーケンスは、各変換レイヤに関連付けられた特定のプロセス制御ネットワークプロトコルに特化している。いくつかの例において、サービス指向フレームワークは、さらに、複数のプロセス制御システムを実装するために使用された複数のプロセス制御ネットワークプロトコルのそれぞれに特化した複数のネットワークインターフェースを提供するために、複数の変換レイヤとそれぞれ関連付けられた複数のネットワークレイヤを含む。例示的な装置は、さらに、プロセッサによって実装されたサービスレイヤと共に、クライアントデバイスによって実装されたアプリケーションを通信可能に結合するためのインターフェースも含む。
【図面の簡単な説明】
【０００８】
【図１】プロセス制御システム内のデバイスと通信するためのサービス指向フレームワークを実装するために、フィールドデバイス統合サーバを含む例示的なプロセス制御環境を示す、ブロック図である。
【図２】図１のフィールドデバイス統合サーバによって実装されてもよい例示的なサービス指向フレームワークのブロック図である。
【図３】図２のサービス指向フレームワークによって提供されてもよい例示的なサービスを示す図である。
【図４】図１のプロセス制御環境を実装するために使用されてもよい例示的なフィールドデバイス統合サーバの例のブロック図である。
【図５】図１のプロセス制御環境を実装するために使用してもよい例示的なクライアントデバイスのブロック図である。
【図６】図１のプロセス制御環境内の例示的なサービス指向フレームワークを実装するための例示的なプロセスを表すフローチャートである。
【図７】図６のサービス指向フレームワークプロセスにおいてサービスレイヤ処理を実装するための例示的なプロセスを表すフローチャートである。
【図８】図６のサービス指向フレームワークプロセスにおいて変換レイヤ処理を実装するための例示的なプロセスを表すフローチャートである。
【図９】図６のサービス指向フレームワークプロセスにおいてネットワークレイヤ処理を実装するための例示的なプロセスを表すフローチャートである。
【図１０】図２のサービス指向フレームワークの例示的な動作を表すフローチャートである。
【図１１】図１のプロセス制御環境において、図２のサービス指向フレームワークを実装するために、図６〜図１０のプロセスの一部または全てを実装するために使用された例示的な機械可読命令を実行してもよい例示的な処理システムのブロック図である。
【発明を実施するための形態】
【０００９】
以下において、他のコンポーネントの中でも、ハードウェアで実行されるソフトウェアおよび／またはファームウェアを含む、例示的な方法、装置、および製品を記載するが、これらの例は例示的なものにすぎず、制限的なものとして考えられるべきではないことに留意されたい。例えば、ハードウェア、ソフトウェア、およびファームウェアコンポーネントのいずれかまたは全てを、ハードウェアのみ、ソフトウェアのみ、またはハードウェアおよびソフトウェアの任意の組み合わせにおいて実現できる可能性があることが意図される。従って、以下において、例示的な方法、装置、および製品を説明するが、当業者は、示されている例が、かかる方法、装置、および製品を実装する唯一の方法ではないことを容易に理解するであろう。例えば、例示的な方法、装置、および製品が、プロセス制御システム内のデバイスと通信するためのサービス指向フレームワークの実装に関連して記載されているが、例示的な方法、装置、および製品は、より一般的に適用可能であり、いずれかの自動化システム、バッチ処理システム、製造システム、工業制御システム、安全計装システム等の利用のために実装されてもよい。
【００１０】
多くの異なる種類のプロセス制御ネットワークプロトコルを、プロセス制御システムの実装のために使用できる。かかるプロセス制御ネットワークプロトコルの例には、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓプロトコル、Ｐｒｏｆｉｂｕｓプロトコル、ＨＡＲＴプロトコル等を含むが、これらに制限されない。上記のように、プロセス制御システムは、情報を処理するために１つ以上のクライアントワークステーション上で実行する１つ以上のクライアントアプリケーションを利用でき、プロセス制御システム内のフィールドデバイスと相互作用できる。しかしながら、以前のプロセス制御システムにおいて、かかるクライアントアプリケーションは、一般的には、特定のプロセス制御システムを実装するために使用される特定のプロセス制御ネットワークプロトコルを対象としている。このため、以前のプロセス制御システムで使用されるクライアントアプリケーションは、改訂する必要がある場合があり、また、異なる（例えば新しい）プロセス制御ネットワークプロトコルがプロセス制御制御システムで利用される場合には、再書き込みされる必要がある場合があり、こうした以前のクライアントアプリケーションは、異なるプロセス制御ネットワークプロトコルを利用する異なるプロセス制御システムにわたって移動が可能ではない場合がある。
【００１１】
対照的に、本明細書に記載される例示的な方法、装置、および製品は、クライアントアプリケーション（例えばプロセス制御アプリケーション）が、クライアントアプリケーションが利用されるプロセス制御システムを実装するために使用されたいかなる特定のプロセス制御ネットワークプロトコルとも無関係にできるようにする、プロセス制御システム内のデバイスと通信するためのサービス指向フレームワークを実装する。いくつかの例において、サービス指向フレームワークは、フィールドデバイス統合（ＦＤＩ）規格に照らして実装される。本明細書に記載される例示的なサービス指向フレームワークは、サービスレイヤ、１つ以上の変換レイヤ、および１つ以上の変換レイヤにそれぞれ関連付けられた１つ以上のネットワークレイヤを含む。かかる例において、サービスレイヤは、１つ以上のプロセス制御システム内の１つ以上のフィールドデバイスと通信するために、１つ以上のプロセス制御サービスを実装する。各サービスは、フィールドデバイスが常駐できる任意のプロセス制御システムを実装するために使用されたいかなるプロセス制御ネットワークプロトコルとも無関係な汎用インターフェースを提供する。言い換えると、サービスレイヤによって実装されたサービスは、ネットワークプロトコルにとらわれることがない。サービス指向フレームワークによって実装されたプロセス制御サービスの例は、（１）フィールドデバイスにメッセージを送信し、デバイスからの対応する応答を受信するためのサービス、（２）フィールドデバイスによって返された発行されたデータを購読するためのサービス、（３）フィールドデバイスによって返されたイベントを受信するためのサービス、（４）プロセス制御システムおよびプロセス制御システムを実装するフィールドデバイスのグループを記述する情報を取得するためのサービス、（５）フィールドデバイスへ制御パラメータ値を書き込むためのサービス、等を含むが、これらに制限されない。
【００１２】
例示的なサービス指向フレームワークに含まれる１つ以上の変換レイヤは、それぞれ、各プロセス制御ネットワークプロトコルを対象としている。このため、特定の変換レイヤは、サービスレイヤによって提供される各サービスを、各サービスを実装するためのネットワーク動作の各シーケンスへと変換し、ここで、ネットワーク動作の各シーケンスは、特定の変換レイヤに関連付けられた特定のプロセス制御ネットワークプロトコルに特化している。いくつかの例では、変換レイヤは、フィールドデバイスに対するデバイス記述を読み、そのフィールドデバイスにより、サービスは、サービスを実装するために使用されるネットワーク動作の特定のシーケンスを作成するために通信することである。いくつかの例において、変換レイヤは、さらに、または、代替的に、サービスを実装するために実行される際に、ネットワーク動作のシーケンスを追跡するために特定のサービスを実装するために使用されたネットワーク動作の特定のシーケンスの状態を維持する。
【００１３】
例示的なサービス指向フレームワークに含まれる１つ以上のネットワークレイヤは、さらに、各プロセス制御ネットワークプロトコルを対象としている。例えば、特定のネットワークレイヤは、変換レイヤによってサポートされる特定のプロセス制御ネットワークプロトコルに特化した関連付けられた変換レイヤのためのネットワークインターフェースを提供する。ネットワークインターフェースは、通信トランザクション（例えばコマンド、応答等）が、特定のサービスを実装するために変換レイヤによって決定される特定のネットワーク動作シーケンス（例えばこれを実行すること、実装すること、等）に従って、特定のプロセス制御ネットワークプロトコルをサポートする１つ以上のフィールドデバイスで置き換えることを可能にする。
【００１４】
図を参照すると、図１は、例示的なプロセス制御システム１０２内のフィールドデバイスと通信するためのサービス指向フレームワークを実装するために、ＦＤＩサーバ１０６を含む例示的なプロセス制御環境１００を示す、ブロック図である。例示的な制御環境１００は、プロセス制御システム１０２および／または他の制御システム（図示せず）に通信可能に結合されてもよいさらなるクライアント（図示せず）を含んでもよい。
【００１５】
クライアント１０４（例えば、ターミナル、ワークステーション、パーソナルコンピュータ等）、例示的な制御システム１０２、および／またはフィールドデバイス統合（ＦＤＩ）サーバ１０６は、ＦＤＩ規格を使用して通信する。ＦＤＩサーバ１０６は、ＨＡＲＴ、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓ、および／またはＰｒｏｆｉｂｕｓを含む異なる規格を使用して動作する、異なるネットワーク上のデバイスとインターフェースを取る。概して、ＦＤＩは、デバイスの製造者および／またはサプライヤが、デバイスが本来意図されたおよび／または構築された規格に関係なく、均一にデバイスを管理するために、顧客によって使用可能なツールセットを構築できるようにするための仕様を提供する。ＦＤＩは、標準的な電子デバイス記述言語（ＥＤＤＬ）のテキストベースのファイル（例えば、ＸＭＬファイル）が、デバイス、デバイスによって提供された方法、デバイスによってサポートされる測定およびデバイスパラメータ、デバイスのための構成情報、および／またはユーザがデバイスと行うことができる相互作用を記述できるようにする、テキストによるデバイス記述方法を含む。
【００１６】
以下により詳細に記載されるように、ＦＤＩサーバ１０６は、メッセージバスアーキテクチャおよびサービス指向アーキテクチャに基づいて、サービス指向フレームワークを実装する。メッセージバスアーキテクチャは、サービス指向フレームワークと通信するために、（以下に詳細に記載されているように、クライアント１０４で実行されるアプリケーション１２０等の）アプリケーションの標準的な方法を提供する。メッセージバスアーキテクチャは、通信チャネルを介してメッセージを送受信するメッセージバスと類似している。メッセージバスアーキテクチャは、アプリケーションが、コントローラ、サーバ、デバイス、および／またはその他のアプリケーションの内部動作についての具体的な詳細の全てを必ずしも知らなくても、プロセス制御コントローラ、サーバ、デバイス、および／またはその他のアプリケーションと通信できるようにする。
【００１７】
メッセージバスアーキテクチャに加えて、サービス指向アーキテクチャは、一組のサービスとして、プロセス制御機能を提供する。こうしたサービス指向アーキテクチャにおいては、特定のデバイスがサポートするネットワークサービスは、デバイスに関連付けられたデバイス記述において要約される。サービスは、ＦＤＩ規格の一部として定義されるメッセージベースの相互作用によって実装されるインターフェースを介して呼び出される。メッセージベースの相互作用によってサービスが呼び出されるため、サービスの要求者およびサービス提供者の位置は別々とすることができ、このため、プロセス制御環境１００内に分散できる。
【００１８】
メッセージバスアーキテクチャとサービス指向アーキテクチャを、サービス指向フレームワークに組み合わせることで、少なくともいくつかの状況において、いくつかの利点を提供できる。例えば、アプリケーションを異なる環境で実行できる（例えばＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）のホストで実行しているアプリケーションは、いくつかのプロセス制御ネットワークプロトコルのうちの１つを使用してプロセス制御埋め込みデバイスとのインターフェースを取ってもよい）。別の考えられる利点として、全てのデバイスが全てのサービスをサポートする必要がない。さらに別の考えられる利点として、サービスは、より高いレベルのアプリケーションを、実際のプロセス制御ネットワーク（例えばバス）プロトコルとは関係なく実装することができる。
【００１９】
例示的なクライアント１０４および例示的なＦＤＩサーバ１０６は、第１の通信バス１０８を介して通信される。ＦＤＩサーバ１０６は、通信バス１０８と同じまたは異なるタイプであってもよい、他の通信バス１１０、１１２へ、通信バス１０８を接続する。ＦＤＩサーバ１０６は、さらに、通信バス１１２を介して制御システム１０２とも通信する。このため、クライアント１０４は、ＦＤＩサーバ１０６ならびに適切な通信バス１０８および１１２を介して、制御システム１０２内のデバイスのいずれかと通信してもよい。
【００２０】
いくつかの例において、通信バス１０８〜１１０は、ローカルエリアネットワーク（ＬＡＮ）プロトコル（イーサネット（登録商標）等）、ワイヤレスフィディリティ（Ｗｉ−Ｆｉ）プロトコル（例えば米国電気電子技術者協会（ＩＥＥＥ）８０２．１１ファミリー規格に基づく）、セルラ通信ネットワーク、インターネット等を使用して実装してもよく、通信バス１１２は、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓプロトコル、Ｐｒｏｆｉｂｕｓプロトコル、および／またはＨＡＲＴプロトコルに準拠するように実装されてもよい。さらにまたは代替的に、通信バス１０８〜１１０のうちの１つ以上を、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓプロトコル、Ｐｒｏｆｉｂｕｓプロトコル、および／またはＨＡＲＴプロトコルに準拠するように実装してもよい。さらにまたは代替的に、通信バス１１２は、ＬＡＮプロトコル（イーサネット（登録商標）等）、Ｗｉ−Ｆｉプロトコル（例えばＩＥＥＥ８０２．１１ファミリー規格に基づく）、セルラ通信ネットワーク、インターネット等に準拠するように実装されてもよい。
【００２１】
例示的な制御システム１０２は、製造施設、処理施設、自動化施設、および／または任意の他の種類のプロセス制御構造またはシステムのいずれかの種類を含んでもよい。いくつかの例において、制御システム１０２は、異なる位置に配置される複数の施設を含んでもよい。さらに、例示的な制御システム１０２がプロセス制御サブシステム１１４に関連付けられていても、制御システム１０２は、さらなるプロセス制御サブシステムを含んでもよい。
【００２２】
例示的なプロセス制御サブシステム１１４は、データバス１１８を介して、コントローラ１１６へ通信可能に結合される。プロセス制御サブシステム１１４は、示されるように、いずれかの数のフィールドデバイス１１９（例えば入力および／または出力デバイス）を含んでもよい。フィールドデバイス１１９は、入力の受信、出力の生成、および／またはプロセスの制御が可能であるプロセス制御コンポーネントの任意の種類を含んでもよい。例えば、フィールドデバイス１１９は、プロセスを制御するために、例えば、バルブ、ポンプ、ファン、ヒーター、クーラー、および／またはミキサー等の入力デバイスを含んでもよい。さらに、フィールドデバイス１１９は、プロセスの一部を計測するために、例えば、温度計、圧力計、濃度計、油面計、流量計測装置、および／または蒸気センサ等の出力デバイスを含んでもよい。入力デバイスは、指定されたコマンドを実行し、プロセスに変更を生じさせるために、コントローラ１１６から命令を受信してもよい。さらに、出力デバイスは、プロセスデータ、環境データ、および／または入力デバイスデータを計測してもよく、プロセス制御情報（例えばプロセスデータ）として、コントローラ１１６へ計測したデータを送信してもよい。このプロセスデータは、各フィールドデバイス１１９からの計測された出力に対応する、変数値（例えば、計測されたプロセス変数および／または計測されたクオリティ変数）を含んでもよい。
【００２３】
図１の図示された例において、例示的なコントローラ１１６は、データバス１１８を介して、プロセス制御サブシステム１１４内のフィールドデバイス１１９と通信してもよい。データバス１１８は、プロセス制御サブシステム１１４内の通信コンポーネントに結合されてもよい。通信コンポーネントは、フィールドデバイス１１９からデータを受信し、例示的なコントローラ１１６によって受信できる通信媒体へデータを転換するための入出力カードを含んでもよい。さらに、これらの入出力カードは、データを、コントローラ１１６から、対応するフィールドデバイス１１９によって処理できるデータフォーマットへ転換してもよい。一例において、データバス１１８は、Ｆｉｅｌｄｂｕｓプロトコルまたは他の種類の有線および／もしくはワイヤレス通信プロトコル（例えばＰｒｏｆｉｂｕｓプロトコル、ＨＡＲＴプロトコル等）を使用して実装されてもよい。
【００２４】
コントローラ１１６は、任意の有線および／またはワイヤレス接続を介して、ＦＤＩサーバ１０６と通信可能に結合される。いくつかの例において、接続は、コントローラ１１６へのアクセスを制限するために、ファイアウォールおよび／または他のセキュリティ機構を含んでもよい。コントローラ１１６は、コントローラ１１６がプロセス制御サブシステム１１４からプロセスデータを受信すると、ＦＤＩサーバ１０６へプロセスデータを送信してもよい。他の例において、コントローラ１１６は、定期的な間隔で（例えば毎分、毎時間、毎日等）、ＦＤＩサーバ１０６へプロセスデータを送信してもよい。あるいは、ＦＤＩサーバ１０６は、コントローラ１１６からプロセスデータを要求してもよい。
【００２５】
プロセスデータを受信すると、図１の例示的なＦＤＩサーバ１０６は、ファイルシステム（図示せず）内にプロセスデータを格納する。ファイルシステムは、プロセス制御サブシステム１１４内のデバイス１１９に基づいて、および／または、プロセス制御サブシステム１１４を管理するために、コントローラ１１６内で動作するルーチン（例えばアプリケーションおよび／またはアルゴリズム）に基づいて、ディレクトリおよび／またはサブディレクトリを用いて階層的に配設されてもよい。他の例では、ファイルシステムは、制御システム１０２のオペレータによって配設されてもよい。プロセスデータは、関連付けられたディレクトリおよび／またはサブディレクトリ内のパラメータに格納されてもよい。いくつかの例において、パラメータは、コントローラ１１６上で動作するルーチンと関連付けられる、またはプロセス制御環境１００内のフィールドデバイス出力と関連付けられる変数であってもよい。パラメータは、パラメータに関連付けられたプロセスデータの種類を記述するメタデータを含んでもよい。
【００２６】
例示的なクライアント１０４は、プロセス制御環境１００に関連付けられプロセスデータを読み込み、書き出し、および／または購読することが承認されている場合がある個人に関連付けられてもよい。クライアント１０４は、さらに、遠隔位置からプロセス制御環境１００にアクセスする場合がある制御システム１０２に関連付けられた人員に関連付けられてもよい。クライアント１０４は、任意の有線および／またはワイヤレス通信媒体（例えばインターネット）を使用して、ＦＤＩサーバ１０６を介してプロセス制御環境１００にアクセスしてもよい。
【００２７】
例示的なＦＤＩサーバ１０６は、プロセスデータが、クライアント１０４上で動作するクライアントアプリケーション１２０のユーザによって視認可能になるように、プロセスデータをフォーマットすることができる。図１の例は、インターフェース１２２内のプロセスデータを示すクライアントアプリケーション１２０を示す。例えば、クライアントアプリケーション１２０は、ウェブクライアントディスプレイアプリケーションを含んでもよい。ＦＤＩサーバ１０６は、ウェブページを作成し、かつ／またはテンプレートウェブページにアクセスし、ウェブページ内にデータフィールドを配置または埋め込むことにより、ウェブサーバアプリケーションのためのプロセスデータをフォーマットしてもよい。その後、インターフェース１２２は、ウェブブラウザを介して、ハイパーテキストマークアップ言語（ＨＴＭＬ）要求および応答を使用してＦＤＩサーバ１０６内でホストされるウェブページにアクセスすることにより、プロセスデータを表示してもよい。あるいは、ＦＤＩサーバ１０６は、ウェブブラウザ（例えばインターフェース１２２）内で実行可能であってもよい、またはクライアント１０４（例えばＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムアプリケーション、アプリケーションプラグイン）にネイティブであってもよい、クライアントアプリケーション１２０において、ウェブアプリケーション（例えばＡｃｔｉｖｅＸ，Ａｄｏｂｅ  Ｆｌａｓｈ（商標）および／またはＳｉｌｖｅｒｌｉｇｈｔ（商標）を初期化することにより、クライアントディスプレイアプリケーションのために、プロセスデータをフォーマットしてもよい。いくつかの例において、ＦＤＩサーバ１０６は、クライアントアプリケーション１２０へプロセスデータを送信する前に、対応するデータフィールドに、プロセスデータを関連付ける。プロセスデータを受信すると、クライアントアプリケーション１２０は、対応するデータフィールド内のプロセスデータを表示するために、ウェブブラウザ（例えばインターフェース１２２）内のディスプレイを作成（レンダリング）する。
【００２８】
図２は、図１の例示的なＦＤＩサーバ１０６によって、少なくとも部分的に実装されてもよい例示的なサービス指向フレームワーク２００のブロック図である。図２に示されるように、サービス指向フレームワーク２００は、クライアントアプリケーション２０２、デバイス記述２０８、および１つ以上のデバイスネットワーク２１０と通信する。サービス指向フレームワーク２００は、サービスレイヤ２１２、変換レイヤ２１４、ネットワークレイヤ２１６、およびセキュリティレイヤ２１８を含む。
【００２９】
図２の例示的なクライアントアプリケーション２０２は、デバイスを設定するためのアプリケーション、デバイスの較正および診断を実行するためのアプリケーション、および／または１つ以上のデバイスネットワークに配置されたデバイスから測定値およびイベントを読み込むためのアプリケーションである。クライアントアプリケーション２０２は、リッチクライアントモデルまたはリッチインターネットモデルに従って実装されるユーザインターフェース（ＵＩ）を含むことができる。例えば、リッチクライアントモデルにおいて、ＵＩは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）または同様のアプリケーションスタイルを利用する。リッチインターネットモデルにおいて、ＵＩは、ウェブブラウザインターフェースまたはウェブブラウザプラグインインターフェース等のウェブスタイルクライアントを利用する。図２に示されるように、クライアントアプリケーション２０２は、サービスレイヤ２１２からサービスを要求および利用してもよいサービス顧客２０６を含む。図１のアプリケーション１２０に対応する場合がある、クライアントアプリケーション２０２は、例えば、図１の例示的なクライアント１０４および／または図１１の例示的な処理システム１１００上で実行されるコンピュータ可読命令を使用して実装されてもよい。クライアントアプリケーション２０２は、サービス指向フレームワーク２００を介して、プロセス制御サブシステム１１４に対応する場合がある、デバイスネットワーク２１０と通信する。サービス指向フレームワーク２００は、ＦＤＩサーバ１０６によって実装されたものとして記載されているが、例示的なサービス指向フレームワーク２００および／またはフレームワーク２００の選択された部分は、代替的に、ネットワーク１０８、１１０、および１１２上のクライアント１０４、サーバ１０６、コントローラ１１６、および／またはデバイス１２８〜１３６のうちの１つ以上、または任意の組み合わせで実装されてもよい
【００３０】
サービスレイヤ２１２は、サービスインターフェース２２０、サービスメッセージタイプ２２２、サービスデータタイプ２２４、アダプタ２２６、およびサービス２２８を含む。サービスレイヤ２１２によって提供された例示的なサービス２２８は、デバイス記述２０８およびデバイスネットワーク２１０へのアクセスをサポートする。サービス２２８は、アプリケーションおよび／またはデバイスが、所望の能力または機能を実行するために必要な特定のサービス２２８を要求できるようにするサービス契約として明らかにされている。いくつかの例において、サービスによって実装された新しい機能を含み、かつ／または新しいメッセージおよびデータタイプを含むためのサービス契約の変更は、既存のサービス契約と下位互換性がなくてもよい。
【００３１】
図示される例において、サービスレイヤ２１２は、サービス２２８へメッセージベースのインターフェースを提供する、サービスインターフェース２２０を介してアクセスされる。サービスレイヤ２１２は、アプリケーションおよび／またはデバイスからのサービス要求を管理し、かつ、クライアントアプリケーション２０２によって使用するためのサービス契約を変換する。サービスとサービス顧客との間のメッセージを渡すときに、メッセージを各サービス顧客が理解できるフォーマットに変換するために、１つ以上のアダプタ２２６が使用されてもよい。
【００３２】
サービスレイヤ２１２へのアクセスは、ポリシーによって定義される。ポリシーは、サービス顧客が、サービス、および／またはサービスの要求に関する任意の他の詳細にアクセスするための何らかの接続および／またはセキュリティ要件を決定する方法を提供する。
【００３３】
例示的な変換レイヤ２１４は、通信が望ましいデバイスを含むデバイスネットワーク２１０（または、より一般的には、プロセス制御システム）を実装するために使用された特定のプロセス制御ネットワークプロトコル（デバイスネットワークプロトコルとして本明細書で称されることもある、ＨＡＲＴ、Ｆｉｅｌｄｂｕｓ、Ｐｒｏｆｉｂｕｓ等）をサポートするために、サービスレイヤによって提供されたネットワークに無関係なサービスを変換する。変換レイヤ２１４は、各サービスを実装するために、サービスレイヤ２１２によって提供された各ネットワークに無関係なサービス２２８をネットワーク動作２３０の各シーケンスへ変換するために、アプリケーションファサード２２９を含む。特定のサービス２２８のためのアプリケーションファサード２２９によって決定されたネットワーク動作２３０のシーケンスは、変換レイヤ２１４に関連付けられた特定のプロセス制御ネットワークプロトコル２３６、および、さらに、サービス２２８が通信する特定のネットワークコンポーネント２３１（例えばフィールドデバイス）にも特化している。変換レイヤ２１４は、さらに、サービス２２８の実装のために実行される際に、ネットワークオペレーション２３０のシーケンスを追跡するために、特定のサービスを実装するために使用されたネットワーク動作２３０のシーケンスの実行の状態（例えば、順序、時間等）を維持する。
【００３４】
変換レイヤ２１４は、例えば、開始時において読み込まれるデバイス記述ファイル２０８からデバイス（例えばネットワークコンポーネント２３１）についての情報を受信する。デバイス記述ファイル２０８は、電子デバイス記述言語（ＥＤＤＬ）２３２および／または共通のファイルフォーマット２３４のデバイスについての情報を含む。例えば、ＥＤＤＬファイル２３２は、図１のプロセス制御システム１０２に含まれるフィールドデバイスの各製造者によって生成されるデバイス挙動を定義するテキストによる記述および論理を表す。ＥＤＤＬファイル２３２は、図１のプロセス制御システム１０２上に含まれるデバイスのデジタルデータシートに類似する可能性がある。従来のプログラミング言語と比較して、ＥＤＤＬエレメントの柔軟性は、制限されており、また、デバイス記述に特化している。しかしながら、ＥＤＤ言語の簡略性により、ＥＤＤデバイス記述の容易かつ効率的な開発が可能になり、ハードウェアおよびオペレーティングシステムプラットフォームへの独立性が提供され、デバイス動作のための均一的な理念が生じ、解釈による高いロバスト性がもたらされる。概して、ＥＤＤＬ技術は、低程度から平均的な複雑さのデバイスで使用される。
【００３５】
共通ファイルフォーマット２３４は、デバイスおよび／またはアプリケーションについての情報を格納し、ファイルは、システム、ツールセット、アプリケーション、および／または他のデバイスの間で交換されてもよい。いくつかの例において、共通ファイルフォーマット２３４は、柔軟性があり、タグを使用して事実上無制限の記述を可能にする拡張マークアップ言語（ＸＭＬ）を含むスキーマを使用する。
【００３６】
ネットワークレイヤ２１６は、図１のプロセス制御システム１０２を実装するために使用されたデバイスネットワークのうちの１つ以上と相互作用するためのデータアクセス機能性を含む。図示された例において、ネットワークレイヤ２１６は、種々のネットワークメッセージタイプ２４２、ネットワークデータタイプ２４４、および、おそらくは、特定のプロセス制御ネットワークプロトコル２３６に特化した１つ以上のオブジェクト辞書２４６をサポートするネットワークアプリケーションプログラミングインターフェース（ＡＰＩ）２４０を含む。例示的なフレームワーク２００は、複数のネットワークレイヤ２１６および関連付けられた変換レイヤ２１４を含み、ここで、各変換レイヤ２１４および関連付けられたネットワークレイヤ２１６は、特定のデバイスネットワーク２１０（またはより一般的には、特定のプロセス制御システム）を実装する特定のデバイスネットワークプロトコル２３６（ＨＡＲＴ、Ｆｉｅｌｄｂｕｓ、およびＰｒｏｆｉｂｕｓ等のプロセス制御システムプロトコルとも称される）に特化している。従って、例示的なフレームワーク２００およびネットワークアプリケーションレイヤ２１６は、これらのプロトコルへのいかなる変化をも必要としない。
【００３７】
デバイスネットワーク２１０は、例示的なフレームワーク２００に、プロセス制御フィールドデバイスを構成する、デバイス診断にアクセスする、測定値を転送する、アラームおよびイベントを転送する能力、ならびに／またはその他の通信および制御能力を提供するために、それぞれのネットワークプロトコル２３６およびネットワークサービス２３８に従って、プロセス制御システム（例えば図２のプロセス制御システム１０２）を実装するフィールドデバイスとのインターフェースを取る。サービス指向フレームワーク２００によってサポートされるいくつかの例示的な能力は、要求および／または応答、イベントの発行および／または購読、イベントの送信、アプリケーションおよび／またはデバイスのディレクトリの保守、ならびに／またはデバイスへのコマンドの書き込みを含む。サービス指向フレームワーク２００は、クライアントアプリケーション２０２に、サービスレイヤ２１２を介したこれらの能力へのアクセスを提供する。例えば、サービス指向フレームワーク２００は、要求／応答、発行／購読、イベント、ディレクトリ、および書き込み能力について定義されたサービスを有してもよい。
【００３８】
いくつかの例において、サービス指向フレームワーク２００は、サービスの呼び出しのための非同期コールモデルを利用する。非同期コールの使用は、クライアントプロセスのブロックを回避する。いくつかの例において、バックグラウンド動作の実行のための１つ以上の個別の処理スレッドは、さらに、フィールドデバイスからのデータのポーリングに使用される。このため、フィールドデバイスからのデータの読み込み等のより長く実行される動作は、（例えば先行技術のアプリケーションで起こる可能性があるように）ＵＩアプリケーションを実装するプロセススレッドがブロックされることを防ぐために、バックグラウンドのスレッドおよび非同期実行と共に処理できる。いくつかの例において、サービスコールは、クライアントサーバ接続が認証できるように、セキュリティ情報を含むバインディングを使用する。機密情報および通信チャネルを保護するために、インターネットプロトコルセキュリティ（ＩＰＳｅｃ）およびセキュアソケットレイヤ（ＳＳＬ）を、クライアントデバイス１０４とＦＤＩサーバ１０６との間のチャネル等の通信チャネルを安全にするために使用できる。データタンパリングを検出するためにデータおよびデジタル署名を保護するための暗号化も利用でき、これらの能力はオンおよびオフにすることを選択できる。
【００３９】
例示的な動作において、クライアントアプリケーション２０２は、圧力トランスミッタ等のデバイスからの圧力の読み取りを要求するために、ＦＤＩ規格を使用し、汎用（例えばネットワークに無関係な）インターフェース２２０を有するサービス２２８を呼び出す。要求を受信すると、サービスレイヤ２１２は、変換レイヤ２１４へ要求を転送する。変換レイヤ２１４は、圧力トランスミッタが接続されているデバイスネットワークに特化したコマンドを生成し、ネットワークアプリケーションレイヤ２１６を介してコマンドを送信する。例えば、デバイスネットワークがＨＡＲＴネットワークである場合、クライアントアプリケーション２０２は、圧力トランスミッタへコマンドを送信する。これに対し、デバイスネットワークがＦｉｅｌｄｂｕｓネットワークである場合、クライアントアプリケーション２０２は、オブジェクト辞書入力を読み込む、または要求する。デバイスネットワークは、圧力トランスミッタへ要求を送信し、ネットワークアプリケーションレイヤ２１６を介して、デバイスから変換レイヤ２１４へ応答を返す。変換レイヤ２１４は、次に、クライアントアプリケーション２０２によって理解可能である汎用応答フォーマットへ、応答を転換する。いくつかの他の例において、クライアントアプリケーション２０２は、応答のための特定のフォーマットを必要とする。これらの場合において、クライアントアプリケーション２０２は、応答がクライアントアプリケーション２０２に戻される際に、特定のアダプタ２２６を呼び出すように要求してもよい。
【００４０】
いくつかの場合において、デバイスネットワークへのアクセスを制限する必要があってもよい。この要件をサポートするために、サービス指向フレームワーク２００は、１つ以上の認証モジュール２４８および／または承認モジュール２５０を提供するために、セキュリティレイヤ２１８を含む。フレームワーク２００によってアプリケーション２０２を認証するための認証モジュール２４８の実装は、使用されるサービスホストの種類に依存してもよい。このため、サービス指向フレームワーク２００は、１つ以上のセキュリティレイヤ２１８が、フレームワーク２００に組み込まれることを可能にする。例えば、サービス指向フレームワーク２００がインターネット情報サービス（ＩＩＳ）においてホストされる場合、ＩＩＳによって提供された認証サポートを使用できる。サービスがＷｉｎｄｏｗｓ（登録商標）サービスによってホストされる場合、メッセージベースまたはトランスポートベースの認証を使用できる。
【００４１】
いくつかの例において、サービス指向フレームワーク２００は、ユーザアクセスの承認を提供する。これらの場合、承認モジュール２５０は、ユーザ、グループ、および役割について、リソース上のアクセス許可を提供するために使用できる。
【００４２】
いくつかの例において、例えばプロセス制御アプリケーション２０２のパフォーマンスを向上させるために、変換レイヤ２１４の実装は、ＦＤＩサーバ１０６およびクライアントデバイス１０４にわたって分割される。かかる例において、クライアントデバイス１０４は、機密情報を含まない変換レイヤ２１４の部分を実装できるが、ＦＤＩサーバ１０６は、機密情報を含む変換レイヤ２１４の部分を実装できる。
【００４３】
いくつかの例において、ＦＤＩサーバ１０６および／またはクライアントデバイス１０４は、例えば、プロセス制御アプリケーション２０２のパフォーマンスを向上させるために、キャッシュを利用する。例えば、クライアントデバイス１０４は、ＦＤＩサーバ１０６から取得したサービス指向フレームワーク（例えばサービス２２８）のコンポーネントをキャッシュできる。さらに、または代替的に、ＦＤＩサーバ１０６は、例えば、外部メモリ、フィールドデバイス自体等から読み出された後で、デバイス記述２０８をキャッシュできる。さらに、または代替的に、ＦＤＩサーバ１０６は、フィールドデバイスから戻ったデータおよび／またはフィールドデバイスへ書き込まれるデータを、こうしたデータがアプリケーション２０２に戻る、またはフィールドデバイスに書き込まれるまで、適宜キャッシュできる。
【００４４】
いくつかの例において、プログラム構成は、アプリケーションを、アプリケーション全体の再実装または再配備をせずに、より容易に拡張できるように、サービス指向フレームワーク２００で利用される。これは、多数のモジュールからアプリケーションを実装し、柔軟に結合されるようにコンポーネントを設計することで、達成できる。
【００４５】
いくつかの例において、サービス指向フレームワーク２００は、例外管理およびロギングをサポートする。例えば、検証メッセージ等のエラーを、運営スタッフおよびモニタリングシステムによる使用のために、ＦＤＩサーバ１０６上にログオンできる。例外管理はまた、非同期例外、ならびにクライアントとサーバコードとの間の例外連携の両方をカバーできる。ロギングに関して、クライアントファイルシステムへのアクセスは、Ｓｉｌｖｅｒｌｉｇｈｔアプリケーションにおいて利用可能ではなく、クライアントおよびサーバの実行は、しばしば、非同期で進行する。このため、以下の情報のうちの一部または全てが、クライアント側からサーバ側へ転送されるログファイルに含まれる。（１）それぞれのログされた入力に関連付けられたユーザ、（２）ログ入力に関連付けられた機械、（３）関連するクライアントおよびサーバログファイルを組み合わせるための機構、（４）重大なエラーおよび例外、等々。
【００４６】
いくつかの例において、プロセス制御アプリケーション２０２は、クライアントデバイス１０４等のプラットフォームの組み込みメディア能力を利用するために実装される。例えば、以下のガイドラインに従うことができる。（１）サービス指向フレームワーク２００のインターフェースは、いかなるプロセス制御ネットワークプロトコルとも無関係であるため、プロセス制御アプリケーション２０２は、クライアントデバイス１０４によって既に提供されたグラフィック能力を利用するように設計されている、および（２）本来のグラフィックおよび／またはベクトルグラフィックは、例えば、アプリケーションパフォーマンスを向上させるために利用された。
【００４７】
いくつかの例において、クライアントデバイス１０４上で実行されるアプリケーション２０２とＦＤＩサーバ１０６上で実行されるサービス指向フレームワーク２００との間のインターフェースを提供するサービスインターフェース２２０は、リッチデスクトップ、スマートハンドヘルド、より機能性の低いハンドヘルド等のように、固定されているまたはモバイルであるクライアントデバイス１０４をサポートする。このため、サービスインターフェース２２０は、例えば、モバイルインターフェースの一部として使用されるナビゲーションを、リッチＵＩと同様にすることができるようにする、リッチおよびモバイルの両方のインターフェースのためのＵＩ記述をサポートするように実装されてもよい。
【００４８】
いくつかの例において、サービス指向フレームワーク２００は、ウェブスタイルのインターフェースを利用するアプリケーション２０２をサポートする。これらの例において、データバインディングは、例えば、テーブル状および複数列のデータ表現でデータを表示するために使用される。このため、開発を簡略化し、符号化エラーを低下できる、デバイスの日付の表現を実装するために必要なコードを低減できる。データバインディングは、さらに、異なる視認またはフォームのデータの自動的な同期化も可能にする。双方向バインディングの使用は、さらに、ユーザによる表示データの更新を可能にする。さらに、ナビゲーションボタンイベントは、アプリケーションまたはウェブページから外れた意図しないナビゲーションを回避するために、トラップすることができる。
【００４９】
上記のように、変換レイヤ２１４は、クライアントアプリケーション２０２によって呼び出された特定のサービス２２８を実装するために決定されたネットワークオペレーション２３０のシーケンスの状態を格納する。１つ以上のアプリケーション２０２は、同時に複数のサービス２２８を呼び出すことができるため、変換レイヤ２１４は、１つのシーケンスの状態が別のシーケンスによって乱されないように、隔離されたストレージ（図示せず）で同時に実行している異なるサービス２２８のためのネットワーク動作２３０の異なるシーケンスのための状態の情報を格納するように構成される。
【００５０】
上記のように、サービス指向フレームワーク２００は、１つ以上の認証モジュール２４８および／または承認モジュール２５０を提供するために、セキュリティレイヤ２１８を含む。いくつかの例において、認証モジュール２４８は、これらのコンポーネントが適切に相互動作することを確実にするために、アプリケーション２０２、サービス指向フレームワーク２００、デバイス記述ファイル２０８等の検証をサポートする。例えば、アプリケーション２０２のクライアント側の検証は、適切なＵＩがユーザに示されることを確実にするために使用される。サーバ側の検証を、アプリケーション２０２および／またはフィールドデバイスによって提供されたデータ等のデータソースからの入力を検証するために使用できる。例えば、サーバ側の検証機構は、データを制限、拒否、および／または削除するために使用でき、入力データは長さ、範囲、フォーマット、タイプ等についてチェックされる。いくつかの例において、隔離されたストレージ（図示せず）は、特定のアプリケーション２０２および／またはクライアントデバイス１０４に特化した検証ルールを格納するために使用される。
【００５１】
図３は、図２の例示的なサービス指向フレームワークによって提供されてもよい例示的なサービス２２８を示すブロック図である。図３の例示的なサービス２２８は、フィールドデバイスへメッセージを送信し、デバイスからの対応する応答を受信するために、アプリケーション（例えば、クライアントアプリケーション２０２）のための例示的な要求・応答サービス３０４を含む。図３の例示的なサービス２２８は、さらに、フィールドデバイスによって返された発行されたデータを購読するために、アプリケーション（例えばクライアントアプリケーション２０２）のための例示的な発行・購読サービス３０８も含む。図３の例示的なサービス２２８は、フィールドデバイスによって返されたイベントを受信するために、アプリケーション（例えばクライアントアプリケーション２０２）のための例示的なイベントサービス３１２もさらに含む。さらに、図３の例示的なサービス２２８は、１つ以上のデバイスネットワーク２１０（例えば、または一般的に、１つ以上の関連付けられたプロセス制御システム１０２）および１つ以上のデバイスネットワーク２１０によって相互接続された（例えば、および、このため、１つ以上の関連付けられたプロセス制御システム１０２を実装する）フィールドデバイスのグループを記述する情報を取得するために、アプリケーション（例えばクライアントアプリケーション２０２）のための例示的なディレクトリサービス３１６を含む。図３の例示的なサービス２２８は、さらに、制御パラメータ値をフィールドデバイスへ書き込むために、アプリケーション（例えばクライアントアプリケーション２０２）のための例示的な書き込みサービス３２０も含む。いくつかの例において、書き込みサービス３２０は、種々のアクセス制限（例えば、承認ユーザのみに書き込みを制限する等）をサポートできる。
【００５２】
図４は、図１のＦＤＩサーバ１０６の例示的な実装のブロック図である。図示された例のＦＤＩサーバ１０６は、アプリケーション（図２のクライアントアプリケーション２０２および／または図１のクライアントアプリケーション１２０）とインターフェースを取るために、例示的なアプリケーションインターフェース４０４を含む。例えば、アプリケーションインターフェース４０４は、プロセス制御ネットワークプロトコルとは無関係である、サービスメッセージタイプ２２２およびサービスデータタイプ２２４によって定義されるメッセージベースのサービスインターフェース２２０を実装できる。さらに、アプリケーションインターフェース４０４は、ＦＤＩサーバ１０６自体および／または他のクライアントデバイス（例えば図１のクライアント１０４等）で実行するアプリケーションと通信可能に結合するために実装できる。
【００５３】
図４のＦＤＩサーバ１０６は、図２のサービス指向フレームワーク２００の一部または全てを実装するために、機械可読命令を実行するために、例示的なプロセッサ４０８をさらに含む。プロセッサ４０８は、以下により詳述される、図１１の処理システム１１００に含まれる１つ以上のプロセッサ１１０２等のいずれかのタイプのプロセッサを使用して実装されてもよい。
【００５４】
図４のＦＤＩサーバ１０６は、さらに、１つ以上のプロセス制御システムを実装する１つ以上のデバイスネットワークとインターフェースを取るために、例示的なネットワークインターフェース４１２を含む。このため、ネットワークインターフェース４１２は、上記のプロセス制御ネットワークプロトコル２３６のうちの１つ以上をサポートできる。
【００５５】
図５は、図１のクライアントデバイス１０４の例示的な実装のブロック図である。図示された例のクライアントデバイス１０４は、他のプロセス制御アプリケーション（例えば、図２の他のクライアントアプリケーション２０２および／または図１の他のクライアントアプリケーション１２０）で実行している他のクライアントとインターフェースを取るために、例示的なクライアントインターフェース５０４を含む。例えば、クライアントインターフェース４０４は、同じまたは異なるデバイス上で実行するアプリケーションの間の通信のために、通信プロトコルおよび／またはプロセス間メッセージングの任意のタイプにすることができる。
【００５６】
図５のクライアントデバイス１０４は、さらに、図２のサービス指向フレームワーク２００とインターフェースを取るための１つ以上のアプリケーション２０２を実装するために、機械可読命令を実行するために、例示的なプロセッサ５０８も含む。プロセッサ５０８は、以下により詳述される、図１１の処理システム１１００に含まれる１つ以上のプロセッサ１１０２等の任意のタイプのプロセッサを使用して実装されてもよい。
【００５７】
図５のＦＤＩサーバ１０４は、サービス指向フレームワーク２００を実装する図１および／または図４のＦＤＩサーバ１０６とインターフェースを取るために、例示的なサービスインターフェース５１２をさらに含む。このため、サービスインターフェース５１２は、図４のアプリケーションインターフェース４０４の相手側であり、いかなるプロセス制御ネットワークプロトコルとも無関係である、サービス指向フレームワーク２００のサービスメッセージタイプ２２２およびサービスデータタイプ２２４によって定義されるメッセージベースのサービスインターフェース２２０を実装できる。
【００５８】
図１のＦＤＩサーバ１０６およびクライアントデバイス１０４を実装する例示的な方法が、図４〜図５に示されているが、それぞれ、図４〜図５に示されるエレメント、プロセスおよび／またはデバイスのうちの１つ以上は、任意の他の方法で、組み合わされる、分割される、再構成される、省略される、削除される、および／または、実装されてもよい。さらに、例示的なアプリケーションインターフェース４０４、例示的なプロセッサ４０８、例示的なネットワークインターフェース４１２、例示的なクライアントインターフェース５０４、例示的なプロセッサ５０８、例示的なサービスインターフェース５１２、および／または、より一般的には、図４の例示的なＦＤＩサーバ１０６、および／または図５の例示的なクライアントデバイスは、ハードウェア、ソフトウェア、ファームウェア、および／またはハードウェア、ソフトウェアおよび／またはファームウェアの任意の組み合わせによって実装されてもよい。このため、例えば、例示的なアプリケーションインターフェース４０４、例示的なプロセッサ４０８、例示的なネットワークインターフェース４１２、例示的なクライアントインターフェース５０４、例示的なプロセッサ５０８、例示的なサービスインターフェース５１２、および／または、より一般的には、例示的なＦＤＩサーバ１０６、および／または例示的なクライアントデバイス１０４のいずれかを、１つ以上の回路、プログラム可能なプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能な論理デバイス（ＰＬＤ）、および／またはフィールドプログラマブル論理デバイス（ＦＰＬＤ）等によって実装できる可能性がある。添付の装置請求項のいずれかが、純粋に、ソフトウェアおよび／またはファームウェア実装を網羅するように読まれる場合、例示的なＦＤＩサーバ１０６、例示的なクライアントデバイス１０４、例示的なアプリケーションインターフェース４０４、例示的なプロセッサ４０８、例示的なネットワークインターフェース４１２、例示的なクライアントインターフェース５０４、例示的なプロセッサ５０８、および／または例示的なサービスインターフェース５１２のうちの少なくとも１つが、かかるソフトウェアおよび／またはファームウェアを格納する、メモリ、デジタル多用途ディスク（ＤＶＤ）、コンパクトディスク（ＣＤ）等の有形のコンピュータ可読媒体を含むように、本明細書によって、明示的に定義される。またさらに、図４の例示的なＦＤＩサーバ１０６および／または図５の例示的なクライアントデバイス１０４は、図４〜図５に示されるものに加えて、またはその代わりに、１つ以上のエレメント、プロセスおよび／またはデバイスを含んでもよく、かつ／または、図示されたエレメント、プロセスおよびデバイスのうちのいずれか２つ以上または全てを含んでもよい。
【００５９】
例示的なプロセス制御環境１００、例示的なＦＤＩサーバ１０６、例示的なクライアントデバイス１０４、例示的なアプリケーションインターフェース４０４、例示的なプロセッサ４０８、例示的なネットワークインターフェース４１２、例示的なクライアントインターフェース５０４、例示的なプロセッサ５０８、例示的なサービスインターフェース５１２および／または、より一般的には、サービス指向フレームワーク２００を実装するために実行してもよい、例示的なプロセスを示すフローチャートが、図６〜図１０に示される。これらの例において、各フローチャートによって表されるプロセスは、図１１に関して以下に記載された例示的なプロセッシングシステム１１００に示されたプロセッサ１１０２等のプロセッサによって実行するための機械可読命令を含む１つ以上のプログラムによって実装されてもよい。あるいは、図６〜図１０のフローチャートによって表されるプロセスのうちの１つ以上を実装するプログラムの全体、および／またはその一部は、プロセッサ１１０２（例えば、コントローラおよび／または任意の他の適したデバイス等）以外のデバイスによって実行できる可能性があり、かつ／または（例えばＡＳＩＣ、ＰＬＤ、ＦＰＬＤ、個別論理等によって実装される）ファームウェアまたは専用のハードウェアによって具体化できる可能性がある。さらに、図６〜図１０のフローチャートまたはその１つ以上の部分によって現されるプロセスのうちの１つ以上は、手動で実装してもよい。さらに、例示的なプロセスは、図６〜図１０に示されるフローチャートを参照して記載されるが、あるいは、本明細書に記載された例示的な方法および装置を実装するための多くの他の技術が代替的に使用されてもよい。例えば、図６〜図１０に示されるフローチャートを参照して、ブロックの実行の順序を変えてもよく、および／または、記載されるブロックのうちのいくつかを、変更、除去、組み合わせおよび／または複数ブロックに下位分割してもよい。
【００６０】
上記のように、図６〜図１０の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み込み専用メモリ（ＲＯＭ）、ＣＤ、ＤＶＤ、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）および／または、任意の持続時間（例えばより長い期間、永久に、短い瞬間、一時的なバッファリングのため、および／または情報のキャッシュのため）情報を格納する、任意の他の格納媒体等の有形のコンピュータ可読媒体に格納される符号化命令（例えばコンピュータ可読命令）を使用して実装されてもよい。本明細書に使用されている場合、有形のコンピュータ可読媒体という用語は、任意の種類のコンピュータ可読ストレージを含み、伝播する信号を除外するように、明示的に定義されている。さらに、または代替的に、図６〜図１０の例示的なプロセスは、フラッシュメモリ、ＲＯＭ、ＣＤ、ＤＶＤ、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）および／または、任意の持続時間（例えばより長い期間、永久に、短い瞬間、一時的なバッファリングのため、および／または情報のキャッシュのため）情報を格納する任意の他のストレージメディア等の非一時的なコンピュータ可読媒体に格納される符号化命令（例えばコンピュータ可読命令）を使用して実装してもよい。本明細書に使用される場合、非一時的なコンピュータ可読媒体という用語は、任意の種類のコンピュータ可読媒体を含み、伝播する信号を除外するように、明示的に定義されている。さらに、本明細書で使用される場合、「コンピュータ可読」および「機械可読」という用語は、別途示されていない限り、同等であると考えられる。
【００６１】
図２の例示的なサービス指向フレームワーク２００を実装するために実行されてもよい例示的なプロセス６００を、図６に示す。例示的なプロセス６００は、所定のイベント等の発生時に基づいて、所定の間隔で、またはその組み合わせで実行されてもよい。図６のプロセス６００は、図１およびまたは図５のクライアントデバイス１０４によって実行されるものとしてプロセス制御アプリケーション２０２をサポートするために、それぞれ、図１および／または図４のＦＤＩサーバ１０６によって実行されるという観点から記載されている。このため、前掲の図を参照して、図６のプロセス６００は、クライアントデバイス１０４が、サービス指向フレームワーク２００によって提供される１つ以上のネットワークに無関係のサービス２２８（ネットワークにとらわれないサービス、デバイスに無関係のサービス、デバイスにとらわれないサービス等とも称される）を使用して、１つ以上のプロセス制御システムにおいて１つ以上のフィールドデバイスと通信するためのものである、プロセス制御アプリケーション２０２を実行する、ブロック６０５において実行を開始する。例えば、ブロック６０５において、プロセス制御アプリケーションは、１つ以上のフィールドデバイスと通信するために、全て図３の、要求・応答サービス３０４、発行・購読サービス３０８、イベントサービス３１２、ディレクトリサービス３１６、および／または書き込みサービス３２０のうちの１つ以上を使用できる。
【００６２】
ブロック６１０において、ＦＤＩサーバ１０６で実行されるサービス指向フレームワーク２００は、アクセスポリシーが利用されているかどうかを決定する。アクセスポリシーが利用される場合（ブロック６１０）、ブロック６１５において、サービス指向フレームワーク２００の認証モジュール２４８は、サービス指向フレームワーク２００で使用するためのプロセス制御アプリケーション２０２を認証する。さらに、ブロック６２０において、サービス指向フレームワーク２００の承認モジュール２５０は、サービス指向フレームワーク２００によって提供されたサービス２２８へ、アクセスのユーザに特化したレベル（例えば、読み込み専用、読み込み書き出し、アクセスなし、管理者アクセス等）を提供するために、プロセス制御アプリケーション２０２のユーザを承認する。
【００６３】
ブロック６２５において、プロセス制御アプリケーション２０２は、サービス指向フレームワーク２００のネットワークに無関係なサービスレイヤ２１２とインターフェースとインターフェースを取る。サービスレイヤ２１２は、サービスがいかなる特定のプロセス制御ネットワークプロトコルに依存しない場合に、プロセス制御システム内のフィールドデバイスと通信するためのサービス２２８を提供するため、ネットワークに無関係であると称される。ブロック６２５における処理の実装に使用されてもよい例示的なプロセスを、以下により詳細に記載する、図７に示す。
【００６４】
ブロック６３０において、サービス指向ネットワーク２００のネットワークに無関係なサービスレイヤ２１２は、サービス指向フレームワーク２００のネットワーク依存変換レイヤ２１４とのインターフェースを取る。変換レイヤ２１４は、サービス指向フレームワーク２００に含まれる各変換レイヤ２１４が、特定のプロセス制御ネットワークプロトコルに特化した（例えば依存する）ネットワーク動作の各シーケンスに、サービスレイヤ２１２によって提供されたネットワークに無関係のサービス２２８を変換するため、ネットワーク依存するものと称される。ブロック６３０において処理を実装するために使用されてもよい例示的なプロセスは図８に示され、以下により詳細に記載される。
【００６５】
ブロック６３５において、サービス指向フレームワーク２００のネットワーク依存変換レイヤ２１４は、サービス指向フレームワーク２００の対応するネットワーク依存ネットワークレイヤ２１６とインターフェースを取る。ネットワークレイヤ２１６は、サービス指向フレームワーク２００に含まれる各ネットワークレイヤ２１６が、変換レイヤ２１４によってサポートされた特定のプロセス制御ネットワークプロトコルを対象とするネットワークインターフェースを、その各変換レイヤ２１４によって決定されたネットワーク動作のシーケンスに提供するため、ネットワーク依存するものと称される。ブロック６３５において処理を実装するために使用されてもよい例示的なプロセスが図９に示され、以下により詳細に記載される。
【００６６】
ブロック６４０において、サービス指向フレームワーク２００の１つ以上のネットワークレイヤ２１６は、プロセス制御アプリケーション２０２が通信する１つ以上のフィールドデバイスを含む１つ以上のプロセス制御システムを実装する、１つ以上の特定のデバイスネットワーク２１０とのインターフェースを取るために使用される。その後、例示的なプロセス６００の実行が終了する。
【００６７】
図６のブロック６２５において例示的なサービスレイヤ処理を実装するために実行されてもよい例示的なプロセス６２５を、図７に示す。前掲の図を参照すると、図７のプロセス６２５は、サービス指向フレームワーク２００のサービスレイヤ２１２が、プロセス制御アプリケーション２０２によってアクセス可能なサービス契約の形態の、利用可能なネットワークに無関係なサービス２２８を明らかにする、ブロック７０５において、実行を開始する。ブロック７１０において、プロセス制御アプリケーション２０２は、サービスインターフェース２２０のうちの１つ以上を使用して、サービス２２８のうちの１つ以上を呼び出し、各サービスインターフェース２２０は、各サービス２２８に関連付けられる。例えば、各サービスインターフェース２２０は、サービス指向フレームワーク２００によって指定されるサービスメッセージタイプ２２２およびサービスデータタイプ２２４を使用して定義されるネットワークに無関係なメッセージを利用する、メッセージベースのサービスインターフェースである。
【００６８】
ブロック７１５において、サービスレイヤ２１２は、ブロック７１０において特定のサービス２２８を呼び出すプロセス制御アプリケーション２０２に応答して、フィールドデバイスによってプロセス制御アプリケーション２０２に返される応答（例えばデバイスデータ、イベント等）が、アプリケーションに特化したフォーマットに適合する必要があるかどうかを決定する。アプリケーションに特化した応答適合が必要な場合（ブロック７１５）、サービスレイヤ２１２は、応答データを、プロセス制御アプリケーション２０２に特化したフォーマットに適合させるために、選択されたアダプタ２２６を呼び出す。その後、例示的なプロセス６２５の実行が終了する。
【００６９】
図６のブロック６３０において例示的な変換レイヤ処理６３０を実装するために実行されてもよい例示的なプロセス６３０を、図８に示す。前掲の図を参照すると、図８のプロセス６３０は、特定のフィールドデバイスと通信するために使用されたプロセス制御ネットワークプロトコルをサポートするサービス指向フレームワーク２００の特定の変換レイヤが、サービス指向フレームワーク２００のサービスレイヤ２１２によって呼び出される、ブロック８０５において、実行を開始する。さらに、ブロック８０５において、特定の変換レイヤ２１４に含まれるアプリケーションファサード２２９は、サービス２２８を実装するための１つ以上のネットワーク動作２３０のそれぞれのシーケンスへ、サービスレイヤ２１２によって提供された特定のサービス２２８を実装するサービス動作を変換するために使用される。上記のように、特定のサービス２２８を実装するサービス動作は、いかなるプロセス制御ネットワークプロトコルとも無関係であり、一方で、ネットワーク動作２３０のシーケンスは、サービス２２８が通信する特定のフィールドデバイスを含むデバイスネットワーク２１０（例えば、および、より一般的には、プロセス制御システム）を実装するために使用された特定のプロセス制御ネットワークプロトコルに特化している。
【００７０】
ブロック８１０において、変換レイヤ２１４は、サービス２２８が通信する１つ以上の特定のフィールドデバイスと相互作用するためのネットワーク動作２３０のシーケンスを作成するために、デバイス記述ファイル２０８（例えば、ＥＤＤＬフォーマット２３２および／または共通ファイルフォーマット２３４）を使用する。
【００７１】
ブロック８１５において、変換レイヤ２１４は、（例えば対応するネットワークレイヤ２１６を呼び出すことによって）ネットワーク動作２３０のシーケンスを実行し、実行される際に、ネットワーク動作２３０のシーケンスの状態を維持する。ブロック８１０において変換レイヤ２１４によって維持される状態は、ネットワーク動作のシーケンス２３０のどれが実行されてきたか、および、サービス２２８を実装するための所与の時間において実行するためにどれが残っているかを追跡するために使用できる。ネットワーク動作のシーケンス２３０が実行された後、例示的なプロセス６３０の実行が終了する。
【００７２】
図６のブロック６３５において例示的なネットワークレイヤ処理を実装するために実行されてもよい例示的なプロセス６３５を、図９に示す。前掲の図を参照すると、図９のプロセス６３５は、対応する変換レイヤ２１４によって決定されたネットワーク動作のシーケンスが、ネットワーク動作２３０のシーケンスが実行されるフィールドデバイスを含むデバイスネットワーク２１０について定義された適切なネットワークＡＰＩ２４０とインターフェースを取ることを可能にするために、特定のネットワークレイヤ２１６が呼び出されるブロック９０５において、実行を開始する。例えば、ブロック９０５において使用されるネットワークＡＰＩ２４０は、種々のネットワークメッセージタイプ２４２、ネットワークデータタイプ２４４、および、おそらくは、ネットワーク動作２３０のシーケンスが実行されるフィールドデバイスを含むデバイスネットワーク２１０によって利用される、特定のプロセス制御ネットワークプロトコル２３６に特化した１つ以上のオブジェクト辞書２４６をサポートする。ブロック９０５においてプロセスが完了後、例示的なプロセス６３５の実行が終了する。
【００７３】
クライアントアプリケーション２０２がプロセス制御システム１０２内のフィールドデバイスと通信できるようにするために、図２のサービスフレームワーク２００の例示的な動作を示す例示的なプロセス１０００が、図１０に示される。先行する図を参照すると、ブロック１００５において、クライアントアプリケーションは、サービスレイヤ２１２によって明らかにされ、フィールドデバイス（例えば圧力トランスミッタ）から読み込みデータ（例えばモニタリングされた圧力）を要求するために、汎用（例えばネットワークに無関係の）インターフェース２２０を有する、ネットワークに無関係のサービス２２８を呼び出す。ブロック１０１０において、変換レイヤ２１４は、フィールドデバイスを含む特定のデバイスネットワーク２１０内のサービス２２８を実装するために、ネットワークに依存するネットワーク動作２３０のシーケンスへ、ネットワークに無関係なサービス２２８を変換する。例えば、ブロック１０１０において、変換レイヤ２１４のアプリケーションファサード２２９は、ネットワーク動作２３０のシーケンスを作成するために、デバイス記述ファイル２０８から取得したネットワークコンポーネント情報を使用する。（例えば、デバイス記述ファイル２０８は、ＥＤＤＬ記述２３２または圧力トランスミッタの共通ファイルフォーマット記述２３４にすることができる）。
【００７４】
ブロック１０１５において、変換レイヤ２１４は、ブロック１０１０において決定されるネットワーク動作２３０のシーケンスに従って、フィールドデバイス（例えば圧力トランスミッタ）へ、ネットワーク依存トランザクション（例えば、ネットワークメッセージタイプ２４２、ネットワークデータタイプ２４４、および／またはオブジェクト辞書２４６に従ってフォーマットされたコマンド）を送信するために、変換レイヤ２１４に関連付けられたネットワークレイヤ２１６によって提供されたネットワークＡＰＩ２４０を呼び出す。その後しばらくして、ブロック１０２０において、ネットワークＡＰＩ２４０は、フィールドデバイス（例えば、圧力トランスミッタ）から応答（例えば計測された圧力データを含む）を受信する。ブロック１０２５において、変換レイヤ２１４は、サービスレイヤ２１２に提供される、汎用の、ネットワークに無関係な応答フォーマットへと、ブロック１０１５で受信した応答のネットワーク依存のフォーマットを変換する。ブロック１０３０において、サービスレイヤ２１２は、必要な場合には、ブロック１０２５で生成された応答の汎用のネットワークに無関係のフォーマットを、ネットワークにはやはり関係ないが、アプリケーション２０２に特化しているフォーマットへ転換するために、アダプタを呼び出す。ブロック１０３５において、サービスレイヤは、アプリケーション２０２へ、（例えば、ブロック１００５において呼び出されたサービス２２０のサービスインターフェース２２０を使って）応答を返す。その後、例示的なプロセス１０００の実行が終了する。
【００７５】
図１１は、図２のＦＤＩサーバ１０６およびサービス指向フレームワーク２００を実装することができる例示的な処理システム１１００のブロック図である。例示的な処理システム１１００は、さらに、または代替的に、クライアントアプリケーション１２０、２０２等を実行するために、クライアント１０４を実装するために使用されてもよい。コンピュータ１１００は、例えば、サーバ、パーソナルコンピュータ、携帯電話（例えば、セルフォン）、携帯情報端末（ＰＤＡ）、インターネット機器、または任意の他の種類のコンピューティングデバイスとすることができる。
【００７６】
例示的なプロセッサシステム１１００は、ランダムアクセスメモリ（ＲＡＭ）１１０４、読み込み専用メモリ（ＲＯＭ）１１０６およびフラッシュメモリ１１０８等の関連付けられたメモリを有するプロセッサ１１０２を含む。プロセッサ１１０２は、図６〜図１０に示されるプロセスを実装するために、他のものの中でもとりわけ、機械可読命令を実行してもよい。プロセッサ１１０２は、Ｐｅｎｔｉｕｍ（登録商標）ファミリー、Ｉｔａｎｉｕｍ（登録商標）ファミリー、および／またはＸＳｃａｌｅ（登録商標）ファミリーからの１つ以上のＩｎｔｅｌ（登録商標）マイクロプロセッサ、ＡＲＭ（登録商標）および／またはマイクロコントローラのＰＩＣ（登録商標）ファミリー等からの１つ以上のマイクロコントローラ等の、任意のタイプのプロセスユニットであってもよい。当然ながら、他のファミリーからの他のプロセッサも適している。
【００７７】
ＲＡＭ１１０４、ＲＯＭ１１０６、および／またはフラッシュメモリ１１０８は、図９のプロセス９００を実装する機械可読命令を格納してもよい。ＲＡＭ１１０４は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ＲＡＭＢＵＳダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）、および／または任意の他のタイプのランダムアクセスメモリデバイスによって実装されてもよい。図示された例のフラッシュメモリ１１０８は、ブートブロック１１１０を含む。ＲＡＭ１１０４、ＲＯＭ１１０６、およびフラッシュメモリ１１０８へのアクセスは、典型的には、メモリコントローラ（図示せず）によって制御される。
【００７８】
プロセッサ１１０２は、他のコンポーネントがインターフェースを取ってもよいバス１１１２等のインターフェースに結合される。図示された例において、バス１１１２へのインターフェースを取るコンポーネントは、入力デバイス１１１４、ディスプレイデバイス１１１６、大容量格納デバイス１１１８、およびリムーバブルストレージデバイスドライブ１１２０を含む。リムーバブルストレージデバイスドライブ１１２０は、磁気または光学メディア等の関連付けられたリムーバブルストレージメディアを含んでもよい。
【００７９】
入力デバイス１１１４は、ユーザがデータおよびコマンドをプロセッサ１１０２へ入力することを可能にする。入力デバイス１１１４は、キーボード、マウス、タッチスクリーン、トラックパッド、バーコードスキャナ、またはユーザがプロセッサ１１０２へ情報を提供することを可能にする任意の他のデバイスのうちのいずれか１つ以上を使用して実装してもよい。
【００８０】
ディスプレイデバイス１１１６は、例えば、液晶ディスプレイ（ＬＣＤ）モニタ、ブラウン管（ＣＲＴ）モニタ、またはプロセッサ１１０２とユーザとの間のインターフェースとして作用する任意の他の適切なデバイスにしてもよい。図１１に示されるようなディスプレイデバイス１１１６は、プロセッサ１１０２へディスプレイ画面がインターフェースを取ることが必要な任意の追加的なハードウェアを含む。
【００８１】
大容量ストレージデバイス１１１８は、例えば、従来のハードディスク、またはプロセッサ１１０２によって読み込み可能な任意の他の磁気または光学メディアであってもよい。
【００８２】
リムーバブルストレージデバイスドライブ１１２０は、例えば、コンパクトディスク記録可能（ＣＤ−Ｒ）ドライブ、コンパクトディスク再書き込み可能（ＣＤ−ＲＷ）ドライブ、デジタル多用途ディスク（ＤＶＤ）ドライブ等の光学ドライブ、または任意の他の光学ドライブであってもよい。あるいは、例えば、磁気メディアドライブであってもよい。リムーバブルストレージメディア１１２２は、ドライブ１１２０と共に動作するためにメディア１１２２が選択されるため、リムーバブルストレージデバイスドライブ１１２０に対して補完的である。例えば、リムーバブルストレージデバイスドライブ１１２０が光ドライブである場合、リムーバブルストレージメディア１１２２は、ＣＤ−Ｒディスク、ＣＤ−ＲＷディスク、ＤＶＤディスクまたは任意の他の適した光ディスクであってもよい。一方で、リムーバブルストレージデバイスドライブ１１２０が磁気メディアデバイスである場合、リムーバブルストレージメディア１１２２は、例えば、ディスケットまたは任意の他の適した磁気ストレージメディアであってもよい。
【００８３】
図６〜図１０のプロセスのうちの１つ以上を実装するための符号化された命令は、ＲＡＭ１１０４、ＲＯＭ１１０６、フラッシュメモリ１１０８、大容量ストレージデバイス１１８８および／またはＣＤまたはＤＶＤ等のリムーバブルストレージメディア１１２２に格納されてもよい。
【００８４】
図１１のプロセスシステム等のシステムにおいて、本明細書に記載されている方法および／または装置を実装する代わりに、本明細書に記載されている方法および／または装置は、プロセッサおよび／またはＡＳＩＣ（特定用途向け集積回路）等の構造に埋め込まれてもよい。
【００８５】
上記の開示から、本明細書に記載された例示的な方法、装置、および製品を、プロセス制御ネットワーク内のデバイスと通信するためのサービス指向フレームワークを実装するために使用できることが理解されよう。本明細書に開示される例示的なサービス指向フレームワークは、少なくともいくつかの状況において、先行のプロセス制御ソリューションを超える利点を提供できる。例えば、本明細書に開示されるサービス指向フレームワークにおいて、既存のアプリケーションに影響を与えることなく、ベンダーにより、システムに機能、特徴、および柔軟性を追加することが可能である場合がある。別の例として、本明細書に開示されるサービス指向フレームワークは、各プロセス制御アプリケーションはサービスを介して通信する方法を知る必要があるのみであるため、全体的なシステムの複雑性を低減する場合があり、一方で、デバイスと通信するために使用される特定のプロセス制御ネットワーク／デバイスプロトコルは、フレームワーク内のより低いレベルにおいて提供される。さらに別の例として、本明細書に開示されるサービス指向フレームワークが、アプリケーションの変更、更新、および、交換が、この同じネットワークに無関係なインターフェースにのみ基づくことを可能にする、デバイスネットワークと通信するための、汎用のネットワークに無関係なインターフェースを明らかにするため、プロセス制御アプリケーションは、基幹的なデバイスネットワークとは無関係に変更できる。さらに別の例として、本明細書に開示されるサービス指向フレームワークは、各プロセス制御アプリケーションが、各ネットワークタイプをサポートするために、複数の接続の代わりに、フレームワークへ単一の接続のみをサポートすることを可能にする。別の例として、本明細書に開示されるサービス指向フレームワークは、プロセス制御デバイスネットワークによって提供された能力をサポートするためにサービスを追加することを可能にし、ＥＤＤＬ記述は、特定のデバイスによってどのサービスが提供されるかを定義できる。さらに別の例として、本明細書に開示されるサービス指向フレームワークは、プロセス制御システムの実装を検証するために、適合性試験ポイントとして使用可能なレイヤ間の明確に定義されたインターフェースを含む。さらに別の例として、本明細書に開示されるサービス指向フレームワークのネットワークに無関係なサービスインターフェースは、プロセス制御アプリケーションが異なるデバイスとの通信を継続することを予想して、顧客が、任意のサプライヤからデバイスを購入し、アーキテクチャにこれらをプラグインすることを可能にする。
【００８６】
最後に、製造者の特定の例示的な方法、装置、および製品を本明細書に記載しているが、本発明の網羅する範囲はこれに制限されない。逆に、本発明は、添付の請求項の範囲の範囲内に、文字通り、または、均等論の下で正当に相当する全ての方法、装置および製品を包含する。
【図１】
2012069113.tif 000003
【図２】
2012069113.tif 000004
【図３】
2012069113.tif 000005
【図４】
2012069113.tif 000006
【図５】
2012069113.tif 000007
【図６】
2012069113.tif 000008
【図７】
2012069113.tif 000009
【図８】
2012069113.tif 000010
【図９】
2012069113.tif 000011
【図１０】
2012069113.tif 000012
【図１１】
2012069113.tif 000013