プロセス制御システムのためのサービス指向型アーキテクチャ
【課題】クライアントプロセスとサーバプロセスとの間でのプロセス制御情報の伝達を可能にするためにクライアントプロセスにサービスインタフェースと関連するポート情報を提供する。
【解決手段】プロセス制御システムのためのサービス指向型アーキテクチャが開示されている。一例では、プロセス制御システム(200)のクライアントプロセス(204)とサーバプロセス(202)間でプロセス制御情報を伝達するための方法が、複数のプロセス制御サービス(206、...、210)を含むサーバプロセスを確立し、それら各々は対応するサービスインタフェース(212、...、216)を有する。この方法は、クライアントプロセスが通信接続を確立する複数のサービスの各々にプロキシ(220、...、224)を有するクライアントプロセスも確立する。
【解決手段】プロセス制御システムのためのサービス指向型アーキテクチャが開示されている。一例では、プロセス制御システム(200)のクライアントプロセス(204)とサーバプロセス(202)間でプロセス制御情報を伝達するための方法が、複数のプロセス制御サービス(206、...、210)を含むサーバプロセスを確立し、それら各々は対応するサービスインタフェース(212、...、216)を有する。この方法は、クライアントプロセスが通信接続を確立する複数のサービスの各々にプロキシ(220、...、224)を有するクライアントプロセスも確立する。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本願は、2004年5月4日に出願され、本願がこれにより全体を本明細書に参照することにより明示的に組み込んでいる「プロセス制御システムを表現し、監視し、対話するためのグラフィックユーザインタフェース(Graphic User Interface for Representing,Monitoring and Integrating with Process Control Systems)」と題される米国仮特許出願、出願番号第60/567,980号の正規に出願された出願であり、その利益を主張する。本願は、全体の開示がこれによりその全体を本明細書に参照することにより明示的に組み込まれている、2002年10月22日に出願され、2004年4月22日に米国公報番号第2004/0075689号として公開された、同様に「プロセスプラントにおけるスマートプロセスモジュールおよびオブジェクト(Smart Process Modules and Objects in Process Plants)」と題される米国特許出願、出願番号第10/278,469号の一部継続出願である、2003年7月21日に出願され、2004年8月5日に米国公報番号第2004/0153804号として公開された「グラフィックディスプレイ要素、プロセスモジュールおよび制御モジュールのプロセスプラントにおける統合(Integration of Graphic Display Elements,Process Modules and Control Modules in Process Plants)」と題される米国特許出願、出願願望第10/625,481号にも関連する。本願は、全体の開示がこれによりその全体を本明細書に参照することにより明示的に組み込まれている、2003年2月18日に出願され、2004年10月7日に米国公報番号第2004/0199925号として公開された「プロセスプラント構成システムにおけるモジュールクラスオブジェクト(Module Class Objects in a Process Plant Configuration System)」と題される米国特許出願、出願番号第10/368,151号にも関連する。本願は、本願と同日に国際(PCT)出願として出願され、本願がこれにより全体を本明細書に参照することにより組み込んでいる以下の特許出願にも関連する。つまり、「プロセス環境における関連グラフィックディスプレイ(Associated Graphic Displays in a Process Environment)」(代理人整理番号第06005/41111号)、「プロセス制御システムのためのユーザにより構成可能なアラームおよびアラームトレンド分析(User Configurable Alarms and Alarm Trending for Process Control Systems)」(代理人整理番号第06005/41112号)、「プロセスプラントのプロセスモジュールとエキスパートシステムとの統合(Integration of Process Modules and Expert Systems in Process Plants)」(代理人整理番号第06005/41113号)、「統合された環境におけるカスタマイズされたプロセスグラフィックディスプレイ層を有するプロセスプラントユーザインタフェースシステム(A Process Plant User Interface System Having Cusstomized Process Graphic Display Layers in an Integrated Environment)」(代理人整理番号第06005/41114号)、「プロセス環境におけるスクリプト化されたグラフィック(Scripted Graphics in a Process Environment)」(代理人整理番号第06005/41115号)、「プロセス構成および制御環境へのグラフィック統合(Graphics Integration into a Process Configuration and Control Environment)」(代理人整理番号第06005/41116号)、「プロセス環境における複数の視覚化のあるグラフィック要素(Graphic Element with Multiple Visualization in a Process Environment)」(代理人整理番号第06005/41117号)、「プロセスプラントにおいてグラフィックディスプレイ要素およびプロセスモジュールを構成するためのシステム(System for Configuring Graphic Display Elements and Process Modules in Process Plants)」(代理人整理番号第06005/41118号)、「統合プロセス制御システムイシステムインタフェースのためのグラフィックディスプレイ構成フレームワーク(Graphic Display Configuration Framework for Unified Process Control System Interface)」(代理人整理番号第06005/41124号)、「プロセスプラントユーザインタフェースにおけるマークアップ言語をベースにした動的プロセスグラフィックス(Markup Language−Based,Dynamic Process Graphics in a Process Plant User Interface)」(代理人整理番号第06005/41127号)、「プロセス制御データを修正するための方法および装置(Methods and Apparatus for Modifying Process Control Data)」(代理人整理番号第06005/591622号と第20040/59−11622号)、「プロセス制御データにアクセスするための方法および装置(Methods and Apparatus for Accessing Process Control Data)」(代理人整理番号第06005/591623号および第20040/59−11623号)、「プロセス制御システムのための統合グラフィック実行時インタフェース(Integrated Graphical Runtime Interface for Process Control Systems)」(代理人整理番号第06005/591628号および第20040/59−11628号)である。
【0002】
本発明は概してプロセス制御システムに関し、より詳細にはプロセス制御システムのためのサービス指向型アーキテクチャに関する。
【背景技術】
【0003】
化学関連プロセス、石油関連プロセスまたは他のプロセスで使用されるシステム等のプロセス制御システムは、通常、アナログバス、デジタルバス、またはアナログ/デジタル結合バスを介して少なくとも1つのホストワークステーションまたはオペレータワークステーションに、および1台以上のフィールドデバイスに通信可能に結合されている1台以上のプロセスコントローラおよび入力/出力(I/O)装置を含む。例えば、バルブ、バルブポジショナ、スイッチおよび送信機(例えば、温度センサ、圧力センサ、および流量センサ)であってよいフィールドデバイスは、バルブの開閉およびプロセスパラメータの測定等のプロセス機能を実行する。プロセスコントローラは、フィールドデバイスにより行われるプロセス測定、および/またはフィールドデバイスに関する他の情報を示す信号を受信し、制御ルーチンを実現するためにこの情報を使用し、次にプロセスの動作を制御するためにフィールドデバイスにバスまたは他の通信回線上で送信される制御信号を発生させる。このように、プロセスコントローラは、フィールドデバイスを通信可能に結合するバスおよび/または他の通信リンクを介してフィールドデバイスを使用して制御戦略を実行し、調整してよい。
【発明の開示】
【発明が解決しようとする課題】
【0004】
フィールドデバイスおよびコントローラからの情報は、オペレータが、プロセスの現状を見る、プロセスを評価する、プロセスの動作を修正する等のプロセスに関して所望の機能を実行可能とするために(例えばプロセッサベースのシステム等の)オペレータワークステーションによって実行される1つ以上のアプリケーション(つまり、ソフトウェアルーチン、プログラム等)が利用できてよい。多くのプロセス制御システムは1つ以上のアプリケーションステーションも含む。通常、これらのアプリケーションステーションは、コントローラ、オペレータワークステーションおよびローカルエリアネットワーク(LAN)を介してプロセス制御システム内の他のシステムに通信可能に結合されるパーソナルコンピュータ、ワークステーション等を使用して実現される。各アプリケーションステーションは、プロセス制御システムの中でキャンペーン管理機能、保守管理機能、バーチャル制御機能、診断機能、リアルタイム監視機能、安全性関連機能、構成機能等を実行する1つ以上のソフトウェアアプリケーションを実行してよい。
【0005】
多くのプロセス制御システムの多様なアプリケーションを実現するために使用されるソフトウェア要素(例えばプログラム)は、通常、オブジェクト指向型のプログラミング技術およびアーキテクチャの使用に大幅に依存している。このようなオブジェクト指向型プログラミングの技術とアーキテクチャは、より高いレベル(例えばより複雑な)ソフトウェアオブジェクトが1つ以上のより低いレベルのオブジェクトから構築され、したがって1つ以上のより低いレベルのオブジェクトの特性(プロパティ)を継承するソフトウェアオブジェクトの階層配列に基づいている。これらのオブジェクト指向型プログラミング内での継承を多用することは高度のコード(つまりソフトウェア命令、プログラム等)の共用を可能にし、制御システムを実現するために必要とされるコードまたはソフトウェアの総合的な量を大幅に削減する傾向がある。
【0006】
公知のオブジェクト指向型プログラミングは、相対的に複雑なプロセス制御システムを実現するために必要とされるソフトウェアまたはコードの量を有利に削減できるが、これらの構成に関連する高度な継承またはコード共用は、制御システムを構成する多様なソフトウェアルーチンまたは構成要素間の高度な依存状態(例えばデータ依存)を生じさせる。その結果、これらの多様なソフトウェアルーチンの独立した開発および/またはバージョニングが困難であるかまたは不可能である場合がある。例えば、前述されたオブジェクト指向型の構成では、プロセス制御システムアプリケーション(例えばプロセス監視アプリケーション)、データベースサービス、および実行時サービスを利用するいくつかのプロセス制御システムは強固に結合している(つまり互いに対してかなり依存している)。特にクライアントアプリケーションはデータベース内のデータを表すデータ構成要素の共通したセット上に構築されてよい。したがって、共通データ構成要素の変更は、クライアントアプリケーションを再構築することを必要とする。その結果、特にプロセス制御システムの異なるソフトウェア構成要素が異なるロケーション(開発サイトまたはセンタ)で開発される場合、公知のオブジェクト指向型プロセス制御ソフトウェアアーキテクチャに固有のデータ依存により、データベース構成要素および実行時ソフトウェア構成要素の独立したバージョニングまたは開発は非常に困難または不可能になる。これらの公知のオブジェクト指向型アーキテクチャに固有のデータ依存に対処するために、プロセスソフトウェア開発者はデータベース構成要素、実行時構成要素、およびシステムソフトウェア構成要素の開発を、これらの構成要素が統一して構築され、リリースされるように調整することを余儀なくされてきた。
【課題を解決するための手段】
【0007】
一例では、プロセス制御システムにおけるクライアントプロセスとサーバプロセス間でプロセス制御情報を伝達するための方法および装置は、各々が対応するサービスインタフェースを有する複数のプロセス制御サービスを含むサーバプロセスを確立する。この方法および装置の例では、クライアントプロセスが通信接続を確立する複数のサービスの各々にプロキシを有するクライアントプロセスも確立する。さらに、この方法および装置の例では、クライアントプロセスとサーバプロセス間のプロセス制御情報の伝達を可能にするためにクライアントプロセスへのサービスインタフェースと関連付けられた端点情報(end point)(例えばポート情報、URL、URI等)を提供する。
【0008】
別の例では、ルーチンアプリケーションに情報を結び付ける方法は、リソースマネージャに実行時アプリケーションと関連するデータコンテキストを提供し、リソースマネージャを介してデータコンテキストからの少なくとも1つの特性を、変数、スクリプトまたはデータソース基準の内の少なくとも1つと関連付ける。さらに、該方法は変数、スクリプトまたはデータソース基準の内の該少なくとも1つに該少なくとも1つの特性を結び付ける。
【発明を実施するための最良の形態】
【0009】
一般的に、本明細書に説明されている装置、方法および製品の例では、プロセス制御システムを構成する多様なソフトウェア要素(例えば、プログラム、アプリケーション、サービス等)間の高い独立性を提供するためにプロセス制御システム内で使用されてよい。より詳細には、本明細書に説明されている例は、複数の独立したプロセス制御関連アプリケーションがその上に層化している、複数の緩やかに結合された(つまり、実質的にデータから独立している)コアサービスを提供するソフトウェアおよびハードウェアのアーキテクチャを利用する。コアサービスの各々は個別にテストし、バージョニングできる良く定義された外部インタフェース(例えば、スキーマ、サービスに及び/又はサービスから渡されるパラメータ、データフォーマット等)を提供する。同様に、プロセス制御関連のアプリケーションは、アプリケーションの実質的にデータから独立した性質のために高度に独立した方法で(異なる開発チーム、場所等の間で最小の調整を行い、またはほとんど調整を行わずに)構築または開発できる。言い換えると、全体的なプロセス制御システムの中で使用するためにある特定のアプリケーションを開発している、ある場所にいるソフトウェア開発者は、別の物理的な場所にいるソフトウェア開発者の別のグループによって開発されている別のアプリケーションの開発に必ずしも密接に関係する、あるいは通知される必要はない。このように、本明細書に説明されているサービス指向型アーキテクチャ例は、別のソフトウェア開発チームが彼ら各々の開発作業を(例えば、会議および/または他の形の通信を介して)調整する多大な量の時間を費やす必要性を最小限に抑えるまたは排除し、それにより各々の開発作業のための開発時間と費用を大幅に削減する。
【0010】
コードまたはソフトウェア再利用に焦点を当てた多くの公知のオブジェクト指向型インプリメンテーションまたはアーキテクチャとは対照的に、本明細書に説明されているサービス指向型制御アーキテクチャ例はデータサービスおよび/またはクライアントアプリケーション間の比較的に緩やかな結合(例えば、存在するとしても、比較的に少ないデータ依存)であることを強調する。さらに、公知のオブジェクト指向型インプリメンテーションを用いると、プロセス制御ソフトウェアアプリケーションまたはプログラムは、本来、共用されるクラスライブラリから引き出されるソフトウェア要素の構成または配列である。対照的に、本明細書に説明されているサービス指向型アーキテクチャ例は、相対的に自律したサービスから構成されるアプリケーションを活用する。より詳細には、本明細書に説明されているサービス志向型アーキテクチャ例と関連する相対的に自律したサービスは、クラス情報を共用するよりむしろ、(構造のための)スキーマと(動作のための)コントラクトを共用する。本明細書に説明されている相対的に自律したサービス(例えばデータサービス)の各々は、サービスが送受できるメッセージの構造を説明する(例えば、XML等の拡張可能マークアップ言語を使用して)コントラクトを確立する。
【0011】
またさらに、公知のオブジェクト指向型プロセス制御ソフトウェアインプリメンテーションは、ソフトウェア要素または構成要素(例えばサービス)と開発者(異なる開発現場のソフトウェア開発者)間の通信を、(処理効率の観点から)安価かつ暗示的に処理する。対照的に、本明細書に説明されているサービス指向型アーキテクチャ例はこのような通信を相対的に高価かつ明示的に処理する。したがって、本明細書に説明されているサービス指向型アーキテクチャ例は、サービス全体で(つまり、プロセス制御ソフトウェアのコアサービスを構成する多様なソフトウェア構成要素と関連するサービス境界全体で)共用されなければならない抽出数および抽出の複雑性を削減するように構成される。
【0012】
さらに、アプリケーションの展開を一元的に(つまり、相互に関連のあるアプリケーションのグループの共通のリリース)処理する公知のオブジェクト指向型インプリメンテーションとは対照的に、本明細書に説明されているサービス指向型プロセス制御ソフトウェアアーキテクチャ例は継続的なより不連続な方法でアプリケーション展開を処理する。例えば、本明細書に説明されているサービス指向型アーキテクチャ例を使用すると、クライアントアプリケーションは全体的なシステムおよびアプリケーションの集合的な状態が経時的に混合されるようにそれらのアプリケーションにより使用される根本的なデータサービスとは独立してバージョンニングされてよい。例えば、いくつかの場合、サービスは、該サービスを利用するアプリケーションが展開されるよりも十分に前に展開されてよい。さらに、アプリケーションとサービスが実質的に独立していることにより、サービスおよび/またはアプリケーションは経時的に異なる速度で独立して進化できる(つまり、無関係に開発または修正できる)。しかしながら、本明細書に説明されているサービス指向型アーキテクチャまたはフレームワークの例で活用される相対的に高度に切り離されたサービスおよび/またはアプリケーションの相互作動におけるさらに高い完全度を保証するために、各サービスはそれが別のサービスまたはアプリケーションから受信する各メッセージでバリデーションプロセスを実行するように構成されてよい。
【0013】
本明細書にさらに詳しく説明されるように、サービス指向型アーキテクチャ例は、変数、実行可能スクリプト、および/または前述されたデータサービスに実行時アプリケーションを関連するパラメータのリンケージ、結合、またはさらに一般的には通信結合または動作結合を可能にするために有利に適用されてよい。例えば、プロセス制御システムユーザインタフェースアプリケーションと関連するレンダリンググラフィックディスプレイ要素と関連して使用されるパラメータは、実行時データサービスに通信可能にまたは操作で結合されてよい。この例では、パラメータに結合されるデータの変更は、変更されたデータを反映するために例えばグラフィックディスプレイを更新できる表示アプリケーションにデータサービスから自動的に伝搬できる。あるインプリメンテーションでは、マイクロソフト社(Microsoft Corporation)により提供されている周知のアバロン(Avalon)ソフトウェアプラットフォームとインティゴ(Indigo)ソフトウェアプラットフォームが、実行時における変数、スクリプト、および/またはデータサービスに対するディスプレイエンティティに関連する特性の結合を可能にするために使用されてよい。しかしながら、アバロン(Avalon)および/またはインディゴ(Indigo)の代わりに任意の他の適切なソフトウェアプラットフォームが使用できるであろう。
【0014】
より詳細に後述されるように、本明細書に説明されているサービス指向型アーキテクチャ例は、プロセス制御関連のデータをデータソース層に提供できるデータサービス層を含む。後述されるように、データソース層はアプリケーションの中からデータサービス層へ相対的に一般的なアクセスを提供する。データソース層上で層化されているリソースマネージャは、変数、スクリプトおよび/または参照を1つ以上の実行時アプリケーション、ディスプレイ、グラフィック要素、パラメータ等と関連するデータソースの中に管理する。パラメータとこのような変数またはデータソースとの間の結合(複数の場合がある)を静的にコード化することとは対照的に、本明細書に説明されるリソースマネージャは、有利なことに、例えばグラフィックディスプレイ要素に関連するパラメータを、実行時に1つ以上の変数またはデータサービス(例えば、サーバを介して提供されるプロセス制御データソース)に結合できるようにする。
【0015】
より詳細には、本明細書に説明される装置、方法および製品の例を用いると、ディスプレイアプリケーションはリソースマネージャからそのグラフィック要素と関連する多様な特性の値あるいは他のデータまたは情報を要求してよい。同様に、リソースマネージャは、ディスプレイアプリケーションにより使用される特性にデータソースを提供する(例えば、マッピングする、関連付ける、あるいはそれ以外の場合結び付ける)ように実行時には構成されてよい。その結果として、ディスプレイアプリケーションは、それらのグラフィック要素と関連するパラメータ値に結合される、そのグラフィック要素と変数またはデータソースとの間の関係性を定義するために静的にコード化される必要はない。代わりに、リソースマネージャはより柔軟かつ動的にそれらの関係性を定義するために実行時に構成できる。
【0016】
図1は、本明細書に説明されているサービス指向型アーキテクチャ例を使用するプロセス制御システム例10のブロック図である。図1に描かれているように、プロセス制御システム10はコントローラ16、オペレータステーション18、アクティブアプリケーションステーション20、およびスタンバイアプリケーションステーション22を含み、そのすべては、バス、または一般的にアプリケーション制御ネットワーク(ACN)と呼ばれているローカルエリアネットワーク(LAN)を介して通信可能に結合されてよい。オペレータステーション18とアプリケーションステーション20と22は、1つ以上のワークステーション、あるいは他の適切なコンピュータシステムまたは処理装置を使用して実現されてよい。例えば、アプリケーションステーション20と22は、単一のプロセッサワークステーションまたはマルチプロセッサワークステーション等の、以下の図16に示されるプロセッサシステム例1602と同様に単一のプロセッサパーソナルコンピュータを使用して実現できるであろう。さらに、LAN24は、所望の通信媒体およびプロトコルを使用して実現されてよい。例えば、LAN24は、周知であり、本明細書ではさらに詳しく説明しない、ハードワイヤードの、または無線イーサネット(登録商標)通信スキームに基づいてよい。しかしながら、当業者により容易に理解されるように、任意の他の適切な通信媒体およびプロトコルを使用できるであろう。さらに、単一のLANが示されているが、複数のLANおよびアプリケーションステーション20と22の中の適切な通信ハードウェアが、オペレータステーション18、アプリケーションステーション20と22、およびコントローラ16の間に冗長な通信パスを提供するために使用されてよい。
【0017】
コントローラ16は、デジタルデータバス32および入力/出力(I/O)デバイス34を介して複数のスマートフィールドデバイス26、28および30に結合されてよい。スマートフィールドデバイス26から30は、Fieldbusに準拠するバルブ、アクチュエータ、センサ等であってよく、その場合にはスマートフィールドデバイス26から30は周知のFieldbusプロトコルを使用してデジタルデータバス32を介して通信する。言うまでもなく、他のタイプのスマートフィールドデバイスと通信プロトコルが代わりに使用できるであろう。例えば、スマートフィールドデバイス26から30は、代わりに周知のProfibus通信プロトコルおよびHART通信プロトコルを使用して、データバス32を介して通信するProfibusまたはHARTに準拠するデバイスとなるであろう。(I/Oデバイス34に類似するまたは同一の)追加のI/Oデバイスは、Fieldbusデバイス、HARTデバイス等であってよいスマートフィールドデバイスの追加のグループがコントローラ16と通信可能にきるようにするためにコントローラ16に結合されてよい。
【0018】
スマートフィールドデバイス26から30に加えて、1台以上の非スマートフィールドデバイス36と38がコントローラ16に通信可能に結合されてよい。非スマートフィールドデバイス36と38は、例えば、各々のハードワイヤードリンク40と42を介してコントローラ16と通信する従来の4−20ミリアンペア(mA)または0−10ボルト直流(VDC)デバイスであってよい。
【0019】
コントローラ16は、例えば、エマーソンプロセスマネジメント、LLLPより販売されているDelta(商標)コントローラであってよい。しかしながら、他のコントローラが代わりに使用できるであろう。さらに、図1には1台だけしかコントローラが図示されていないが、所望のタイプのまたはタイプの組み合せの追加のコントローラがLAN24に結合できるであろう。コントローラ16は、プロセス制御システム10と関連する1つ以上のプロセス制御ルーチンを実行してよい。このようなプロセス制御ルーチンは、オペレータステーション18を使用してシステムエンジニアまたは他のシステムオペレータによって生成され、コントローラ16にダウンロードされ、コントローラ16内でインスタンスを作成されてよい。
【0020】
図1に説明されているように、プロセス制御システム例10は、通信リンク46とLAN48を介してアプリケーションステーション20と22に通信可能に結合されるリモートオペレータステーション44も含んでよい。リモートオペレータステーション44は地理的に遠く離れて配置されてよく、その場合、通信リンク46は、必ずしもではないが好ましくは無線通信リンク、インターネットベースまたは他のパケット交換通信のネットワーク、電話回線(例えば、デジタル加入者回線)またはその任意の組み合わせである。
【0021】
図1の例に描かれているように、アクティブアプリケーションステーション20とスタンバイアプリケーションステーション22はLAN24を介して、および冗長リンク50を介して通信可能に結合されている。冗長リンク50は、アクティブアプリケーションステーション20とスタンバイアプリケーションステーション22との間の個別な専用の(つまり共用されていない)通信リンクであってよい。冗長リンク50は、例えば専用のイーサネット(登録商標)リンク(例えば、互いに結合されているアプリケーションステーション20と22各々の専用のイーサネット(登録商標)カード)を使用して実現されてよい。しかしながら、他の例では、冗長リンク50は、アプリケーションステーション20と22に通信可能に結合される、必ずしも両方とも専用ではないが、LAN24または冗長LAN(図示されていない)を使用して実現できるであろう。
【0022】
一般的に、アプリケーションステーション20と22は、冗長コンテキストを確立し、維持するために冗長リンク50を介して連続的に、例外によって、または周期的に情報を交換する。冗長コンテキストによって、アクティブアプリケーションステーション20とスタンバイアプリケーションステーション22間の制御の円滑なまたはバンプレスなハンドオフまたは切り替えが可能になる。例えば、冗長コンテキストは、アクティブアプリケーションステーション20の中のハードウェア故障またはソフトウェア故障に応えて、あるいはプロセス制御システム10のシステムオペレータまたはユーザまたはクライアントアプリケーションからの命令に応えて、アクティブアプリケーションステーション20からスタンバイアプリケーションステーション22への制御ハンドオフまたは切り替えを実行できる。
【0023】
図2は、図1のプロセス制御システム例10の中で使用されてよいサービス指向型アーキテクチャまたは構造の例200を描くブロック図である。図2に示されているように、サービス指向型アーキテクチャ例200は、サーバ202とクライアント204を含む。サーバ202は複数のサービス206、208、および210または集合体を含み、その内のいくつかまたはすべては関連機能を実行してよい。サービス206、208、および210は、通信ポート218を介したクライアント204との通信を可能にする各々のインタフェース(例えば、公開されているパラメータの1つ以上のセット)212、214、および216を提供する。サービスインタフェース212,214および216は、実質的には本質的に汎用であるため、実質的には図1のプロセス制御システム例10と関連する構成および/または実行時データベースに含まれるデータのために使用されるスキーマ(つまり、データフォーマット、プロトコル等)とは無関係である。結果として、サービスインタフェース212、214、および216は、新規サービス能力(例えば機能)がサービス206、208および210の内の1つ以上に追加される場合、修正(例えば更新)だけを必要とする。したがって、サービスインタフェース212、214および216は、新規に公開されたインタフェースを使用するデータオブジェクトがプロセス制御システム10(図1)内での使用に追加されない限り変更される必要はない。
【0024】
サーバ202は、例えば、図1のシステム例に示されているアプリケーションステーション20と22および/またはオペレータステーション18と44の内の1つ以上等のプロセッサベースのシステムで実行されるソフトウェアとして実現されてよい。言うまでもなく、サーバ202は、プロセス制御システム例10(図1)に結合されている他のプロセッサベースのシステムまたはワークステーションを使用して実現されてよい。
【0025】
クライアント204は、各々がサービス206、208および210の内の1つに対応する複数のサービスインタフェースプロキシ220、222および224を含む。クライアント204によって使用されるサービスインタフェースプロキシの数は、サーバ202によって提供されるサービスの数より少ない場合がある。言い換えると、クライアント204は好ましくは、それがアクセスを必要とするサービスのためにのみプロキシを作成する。したがって、クライアント204は、サーバ202によって提供されるサービス206、208、および210の内の1つ以上にアクセスする、あるいはそれらと対話するために必要に応じて1つ以上のプロキシを生成してよい。
【0026】
サーバ202と同様に、クライアント204は、例えば、アプリケーションステーション20と22の内の1つ以上、および/またはオペレータステーション18と44の内の1つ以上等のプロセッサベースのシステムで実行されるソフトウェアとして実現されてよい。あるインプリメンテーション例では、クライアント204は、サーバ202によって提供される1つ以上のサービス206、208および210にアクセスするために、1つ以上のウェブブラウザフレームワーク(例えばインターネットエクスプローラ(Internet Explorer)等を活用してよい。しかしながら、他の所望のソフトウェアフレームワークは、このようなウェブブラウザフレームワークの代わりに、またはこのようなウェブブラウザフレームワークに加えて使用されてよい。さらに一般的に、クライアント204はプロセス制御システム例10(図1)内の所望のアプリケーションを表してよい。したがって、クライアント204は、例えば構成アプリケーション、保守アプリケーション、監視アプリケーション、プロセス制御アプリケーション、および/または任意の他のアプリケーションまたはアプリケーションの組み合わせであってよい。図14および図15に関連してさらに詳しく後述されるように、クライアント204(つまり、クライアントアプリケーション(複数の場合がある))は、一人以上のシステムオペレータ、エンジニアおよび/または任意の他のユーザが構成動作、実行時等の間にプロセス制御データを見るおよび/または変更することが可能となるように表示機能(例えばグラフィックユーザインタフェース機能)を含んでよい。
【0027】
図2のアーキテクチャ例200は単一のクライアントと通信して単一のサーバを描いているが、所望の場合追加のサーバおよびクライアントが使用されてよい。例えば、いくつかのインプリメンテーションでは、クライアント204は、2台以上のサーバと通信し、2台以上のサーバと相互作動し、および/または2台以上のサーバの中でサービスにアクセスしてよい。同様に、これらのインプリメンテーションまたは他のインプリメンテーションでは、サーバ例202(または他の個々のサーバ)は、複数のクライアントと通信してよい、および/または相互作動してよい。さらに、クライアント204がそれらの通信のためにサーバとして別のシステムと機能と通信してよいことが理解されなければならない。同様に、サーバ202がクライアント204以外のシステムと通信する場合、それらの通信のためのクライアントとして機能してよい。さらに、サービス206、208および210はサーバ202内で実現されているものとして描かれているが、サービス206、208、および210の内の1つ以上はクライアント204で代わりに実現されてよい。
【0028】
このように、図2のサービス指向型アプリケーション例200を用いると、サービス206、208および210は、相互から、およびサービス206、208および210を利用する(例えば呼び出す)アプリケーションから実質的(例えばデータ依存性に関して)に切り離される。有利なことに、このような切り離しによりサービス206、208および210の各々と関連するソフトウェアは、クライアント204によって活用され、サービス206、208および210にアクセスするアプリケーション(複数の場合がある)を修正またはバージョニングする必要なく、無関係に修正またはバージョンニングすることができ、現場での使用のためにリリースできる。同様に、クライアント204に関連するアプリケーション(複数の場合がある)が各々のサービス206、208および210のインタフェース212、214および216を順守するまたは適合しないかぎり、クライアント204と関連するアプリケーション(複数の場合がある)は、サービス206、208、および210を修正またはバージョニングする必要なく、無関係に修正またはバージョニングしてよい。したがって、アプリケーションおよび/またはサービス206、208、210と関連するソフトウェアが生成される時点でこのような関係性を固定する(つまりデータ依存性を生じさせる)ことにより、クライアント204とサービス206、208および210の内の1つ以上との間の関係性を静的に定義する代わりに、図2のアーキテクチャ例200はこのような関係性を実行時に動的に確立できるようにする。
【0029】
以下にさらに詳しく説明されるように、サービス指向型アーキテクチャ例200は、種々のコアサービスおよび機能を提供してよい。具体的には、アーキテクチャ例200はプロセス制御システム例10(図1)の中でサービスを登録し、配置するためのディスカバリサービスを提供してよい。アーキテクチャ例200は、クライアント204と関連するアプリケーション、ローカル実行時情報およびリモート実行時情報にアクセスを提供するための実行時サービス、多様なプロセス制御データベースにアクセスするためのデータベースサービス、およびプロセス制御システム例10(図1)内で使用されるサービスおよび/またはアプリケーションと関連するバージョンニング情報を記憶し、取り出すためのバージョン制御サービスの内の1つ以上の中にログし、またはその中からのログを可能にするためのセッションサービスも提供してよい。さらに、アーキテクチャ例200は履歴情報を照会するための履歴サービス、つまりヒストリアンスキャナサービスを提供してよく、アラーム情報の読取り、およびプロセス制御(OPC)データサービスのためのOLEを可能にする実行時サービスとヒストリアンサービスとの対話、アラームおよびイベントサービスを必要とする。前記に注記された例各々のより詳細な説明は以下に示される。しかしながら、特に本明細書説明されるものに加えて他のサービス、および本明細書に説明されているものの代替策が所望のとおりに使用されてよいことが理解されなければならない。さらに、必ずしもでなくても、好ましくは、サービス206、208、および210は通常、システムユーザ(例えばシステムオペレータ、エンジニア等)が直接的に対話しないプロセス制御データ収集機能および処理機能と関連付けられていることが認識される必要がある。むしろ、このようなサービス(例えばサービス206、208および210)は、それらのデータをユーザが対話するクライアントアプリケーション(例えば実行時グラフィックユーザインタフェース)にそのデータを提供する(またはクライアントアプリケーションからデータを受信する)。さらにこのようなサービス(例えばサービス206、208および210)は、通常、複数のクライアントアプリケーションに有用である情報またはデータを提供する。例えば、プロセス制御データベースにアクセスを提供するサービスは、例えば、プロセス制御システム動作、保守、履歴等に関する情報を提供するグラフィックユーザインタフェース等、複数のクライアントアプリケーションに有用であってよい。サービス等の機能(データベースアクセス機能)をクライアント関連機能(例えばユーザインタフェース機能)から分離することにより、グラフィックユーザインタフェース等は、グラフィックユーザインタフェースがデータを交換するサービスを修正する必要なく、バージョニング、修正等を行うことができる。同様に、サービスは、グラフィックユーザインタフェース機能を提供するアプリケーションを修正しなくてもバージョニングするまたは修正することができる、および/または新しいサービスを追加できる。
【0030】
図3は、図2のアーキテクチャ例200によって提供されてよいディスカバリサービス例300と実行時サーバ302との間の関係性を表す図である。一般的に、ディスカバリサービス例300は、サービス登録機能304、サービス位置決め機能306、およびサービス公開機能308を提供する。
【0031】
図3に描かれているように、ディスカバリサービス300および従って、登録機能、位置決め機能および公開機能304、306、および308は、実行時サーバ302によって提供されているデータアクセスサービス310と連携する。図7に関連して後述される実行時サーバ302によって提供される複数のサービスの内の1つであるデータアクセスサービス310は、プロセス制御システム(例えば、図1のシステム例10)の中で各ノード(例えば各サーバ)上にインストールされてよいサービスに関連する情報の照会を可能にするためのインタフェースを提供する。
【0032】
サービスは、ユニフォームリソース識別子(URI)を使用して位置決めされてよい、および/または登録されてよい。このようなURIは、サーバ識別子フィールド、ポートフィールド、パス識別フィールド、および/または照会文字列を含むアドレスの形を取ってよい。しかしながら、同一なまたは同様な結果を達成するために、任意の他の所望のURIフォーマットが利用されてよい。いくつかのURIフォーマット(つまり、アイデンティティ役割、httpアドレス、およびカスタムhttpアドレス)が以下に示される。
【0033】
【数1】
【0034】
図4はディスカバリサービス例300(図3)とそのホスト側ディスカバリサーバ312が協働するまたはデータアクセスサービス310およびそのホスト実行時サーバ302と相互作動する1つの方法を描くフロー図である。一般的に、図4に描かれているプロセスにより1つ以上の実行時サービス(例えば、図7の実行時サービス例700)をディスカバリサーバ312を介して登録できるようにする。詳細に図4に目を向けると、ワークステーション(例えば、オペレータステーション、アプリケーションステーション等)がブートする(ブロック402)と、登録プロセス400が開始する。次にワークステーションは、同時にディスカバリサービス(例えば、図3のディスカバリサービス300)を起動する(ブロック406)ディスカバリサーバのインスタンスを作成する、あるいは起動する(例えば、図3のディスカバリサーバ312)(ブロック404)。ブロック406でディスカバリサービスを起動すると、(ディスカバリサービスのホストを努める)ディスカバリサーバはディスカバリサービスに以前に登録されたURIを公開する。
【0035】
ブロック406でディスカバリサービスを起動後、ワークステーションは実行時サーバ(複数の場合がある)を起動する(ブロック408)。次に、実行時サーバ(複数の場合がある)は、URIプレースホルダを作成し、URIとポートを関連付ける(つまりURIにポートを割り当てる)ことによりディスカバリプロキシを作成する(ブロック410)。ブロック410で割り当てられたポート番号は次にディスカバリサービスに渡される(ブロック412)。
【0036】
ブロック412でディスカバリサービスにポート番号を送信後、実行時サーバ(複数の場合がある)は、ブロック410で割り当てられるポート番号を使用して登録されるURIを構築し(ブロック414)、次に登録されるURIを実行時サービスに公開する(ブロック416)。プロセス400は、次にディスカバリプロキシを介してディスカバリサービスにブロック416で公開されたURIを登録する。
【0037】
図5は、ディスカバリサービスがそれによってサービスを位置決めする(例えば、所望のサービスのURIを決定する)プロセス例500である。プロセス例500は、クライアントアプリケーションが起動されると開始する(ブロック502)。次にクライアントアプリケーションが決定されるURIのプレースホルダを作成し(ブロック504)、ディスカバリプロキシを介してディスカバリサービス内で位置決め機能を呼び出す(位置決めされるサービスの名前を渡す)(ブロック506)。ブロック506での動作の結果としてクライアントアプリケーションに戻される、位置決めされるサービスのURIは次にサービスプロキシを介して位置決めされたサービスを起動するために使用される(ブロック508)。
【0038】
図6は、セッションサービス600のインプリメンテーション例を描く図である。一般的に、セッションサービス例600は各クライアントアプリケーションにロードし、アプリケーションとアプリケーションを呼び出すユーザに関連する権限を追跡する。したがって、本明細書に説明される各サービスサーバは、サービスに対するアクセスを調整し、サーバにより提供されるサービスの内の1つ以上へのアクセスを要求するユーザ/クライアントアプリケーションの組み合わせと関連付けられるセキュリティ証明書を確証するセッションサービスを含む。
【0039】
作動中、クライアントアプリケーションは特定のURIを使用してサーバに接続し、セッションサービスインタフェースを要求する。セッションサービスインタフェースはログイン機能とログアウト機能の両方を提供する。ログイン機能が呼び出されると、セキュリティ評価が、要求側のクライアントアプリケーションとユーザアイデンティティに基づいて実行され、セキュリティ評価が許容できる場合、セッションハンドルが戻され、要求側クライアントアプリケーションは実行時セッションに接続される。クライアントアプリケーションがサーバによって提供される別の(例えば追加の)サービスに対する接続を要求すると、クライアントアプリケーションはサーバにセッションハンドルをサーバに渡し、サーバはそのクライアントアプリケーションに関連するセッションに別のサービスを内部的に追加するためにセッションハンドルを使用する。ログアウト機能が呼び出されると、クライアントアプリケーションによって明示的に閉じられていなかったすべてのサービスが閉じられる。
【0040】
ここで図6の詳細を見ると、セッションサービスインプリメンテーション例600はクライアントプロセス602、データベースプロセス604、及び実行時プロセス606を含んでいる。クライアントプロセス602は、例えばアプリケーションステーション(例えば、図1のアプリケーションステーション例20)、オペレータステーション(図1のオペレータステーション18)、及び/または機械読取可能な命令、コードまたはソフトウェアを実行できる任意の他のシステムで実行可能な1つ以上のアプリケーションを含んでよい。データベースプロセス604は、データベースサーバ608を介して全体でまたは部分的に実行されてよく、実行時プロセス606は実行時サーバ302を介して全体でまたは部分的に実行されてよい。
【0041】
図6に描かれているように、セッションサービス例600のクライアントプロセス602は、データベースサーバ608内のセッションサービスインスタンス618と620に対応する各々のセッションサービスプロキシ614と616を有する複数のクライアントアプリケーション610と612を含む。さらに、クライアントプロセス602と関連するアプリケーション例610と612の各々は、データベースアクセスを必要とし、したがってデータベースサーバ608により提供されるデータアクセスサービスインスタンス626と628と関連する各々のプロキシ622と624を含む。クライアントプロセス例602は、データベースサーバ608によって提供されてよいダウンロードサービス632と関連するプロキシ630も提供する。データベースサーバ608はさらに、データベースサーバ608内のアクティブセッション(セッション618と620)を追跡するおよび/または管理するセッションマネージャ634を含む。
【0042】
セッション618と620、およびデータベースサーバ608内のダウンロードサービス623は、各々のプロキシ642、644および646を介して実行時サーバ302内の各々のインスタンス636、638および640と動作可能に関連付けられる。マシン端末セッション648は、セッション636と638を管理し、セッションオブジェクト650を保持し、前記に注記されたセッションオブジェクト650に対する安全性評価動作を実行するためにセキュリティサービス652と相互作動する。
【0043】
このように、図6のインプリメンテーション例で分かるように、各クライアントアプリケーションは、1台以上のサーバにより提供される1つ以上のサービスと相互作動する。さらに具体的には、クライアントアプリケーションがプロセス制御データベースに対するアクセスを必要とする範囲まで、そのクライアントアプリケーションは、必要とされるデータベースアクセスサービス(複数の場合がある)を提供するサーバとのセッション(例えば通信リンク)を確立する。例えば、図6のインプリメンテーション例では、アプリケーション610がデータベースサーバ608内で(例えば、セッションサービス618を介して)セッションを確立し、データベースサーバ608内でDataAccessサービス626を利用する。このように、クライアントアプリケーションは、複数の緩やかに結合された(つまり実質的にはデータから独立している)サービスを使用して実現することができ、それら各々が別のサーバ上にホスティングされてよい。クライアントアプリケーションは、次にホスト側サーバの各々で1つ以上のプロキシおよび1つ以上のセッションサービスオブジェクトを介してアプリケーションの各々によって、必要に応じてサービスと通信する。
【0044】
図7は、実行時サーバ302(図3)によって提供されてよい実行時サービス700のより詳細な線図である。一般的に、実行時サービス700は、ローカル実行時プロセス制御情報およびリモート実行時プロセス制御情報に対するアクセスを提供する。図7に示されているように、実行時サービス700はデータアクセスサービス310、アップロードサービス704、Fieldbusコミッショニングサービス706、実行時セッションサービス708、ダウンロードサービス710、コミッショニングサービス712、サブシステムサービス714、およびダウンロードリスナーサービス716を含んでよい。
【0045】
データアクセスサービス310は、実行時データベース(例えば、図1のプロセス制御システム例10内でプロセス制御パラメータ値を含む実行時データベース)内でのパラメータの読み書きを可能にする機能を提供する。さらに、データアクセスサービス310は、実行時データベース内のアイテム(例えば、コミッショニングされたコントローラノード)の収集を列挙することができる。
【0046】
アップロードサービス、ダウンロードサービスおよびダウンロードリスナーサービス704、710、および716は、実行時データベースへのデータのアップロードとダウンロードを可能にし、Fieldbusコミッショニングサービスとコミッショニングサービス706と712は実行時データベース内のフィールドデバイスのコミッショニングを可能にし、実行時セッションサービス708は図6のインプリメンテーション例と関連して前述されたように、機械端末セッション720とサーバセッションサービス718と協働してセキュリティ機能を実行する。
【0047】
図8は、データベースサーバ608によって提供されてよいデータベースサービス例800のより詳細な線図である。図8に示されているように、データベースサービス800は、データアクセスサービス802、ダウンロードサービス804、アップロードサービス806、Fieldbusコミッショニングサービス808、インポートサービス810、エキスポートサービス812、コミッショニングサービス814、データベース管理サービス816およびバージョン制御サービス820を含んでよい。データアクセスサービス802は、データベースを照会し、更新するための機能を提供する。データアクセスサービス802は、クライアントアプリケーションによって発行されるコマンドをデータベースサーバ608のデータベースに対して実行できるようにするコマンド機能も提供する。各コマンドは、データベースに適用される複数のナビゲーション動作と更新動作を含んでよい。加えて、各コマンドは単一のデータベーストランザクションで実行してよい。コマンドはアプリケーション内で構成され、データベースサーバ608内のスクリプトとして代わりに解釈される(例えば、コンパイルされ、実行される)文字列(ストリング)として伝達される。必ずしもではないが、好ましくは、コマンドは、共通のスクリプトをすべての同様な動作に使用できるようにパラメータ化される。データベースサーバ608は実行速度を強化するためにスクリプトを事前コンパイルし、キャッシュに入れてよい。1つの特定の例では、クライアントアプリケーションによってデータベースサーバ608に送信される更新コマンドは、バージョン制御アクション(つまり、バージョン制御サービス)が必要とされる場合に、クライアントインタフェースに対する呼び戻しをトリガしてよい。使用できるあらゆる更新は、コマンドの実行および呼び出し側ルーチンへのその同期された戻りに続いて、データベースサーバ608内のデータベースから収集される。
【0048】
ダウンロードサービス804は、データベースサーバ608内での順序制御をサポートするインタフェースとして実現されてよい。ダウンロードサービス804インタフェースはダウンロードリストにアイテムを追加する機能、アップロードをチェックし、実行する機能、依存性をチェックする機能、ダウンロードを検証する機能、およびダウンロードアイテムをターゲットシステムに送信する機能を提供する。ダウンロードサービス804は、アップロードを実行するために、(図6に示されるように)実行時データアクセスサービス702(図7)と相互作動するように構成されてよい。ダウンロードサービス804は、デバイスがコミッションされることを確実にするために、実行時コミッショニングサービス712(図7)と相互作動してもよく、ダウンロードスクリプトを伝達するために実行時ダウンロードサービス710(図7)と相互作動してよい。
【0049】
インポートサービス810は、データベースサーバ608内で順序付け可能なインタフェースとして実現されてもよい。インポートサービス810は、インポートファイルを指定する機能、インポートオプションを指定する機能、および要求されたデータをインポートする機能を提供してよい。インポートサービス810のインタフェースは、呼び出し側クライアントがサーバ608のためのインポートファイルを読み取り、インポートの進行を報告できるようにする呼び戻しを提供してもよい。
【0050】
エクスポートサービス812は順序付け可能なインタフェースとして実現されてもよい。エクスポートサービス812は、エクスポートサービス812がエクスポートリストにアイテムを追加してから、エクスポートを実行できるようにするインタフェースを含んでよい。加えて、エクスポートサービス812は、クライアントアプリケーションがサーバのためのエクスポートファイルを書き込み、エクスポートの進行を報告できるようにする呼び出し側クライアントアプリケーションで呼び戻しインタフェースを提供してよい。
【0051】
データベース管理サービス816は、データベースの作成、削除、バックアップ、および復元を可能にする機能を提供する。バージョン制御サービス820は、バージョンの管理を可能にする機能(例えば、サービスの異なるバージョン)を提供する。
【0052】
図9は、バージョン制御サーバ900、バージョンサーバ902、およびデータベースサーバ608が相互作動する方法を描く図である。図9に描かれているように、バージョン制御サーバ900は複数のバージョン制御サービス904を含む。バージョン制御サービス904は管理サービス906とバージョンサービス908を含んでよい。
【0053】
図10は、複数の履歴サービス1002を提供してよい履歴サーバ例1000の線図である。履歴サービス1002は、データアクセスサービス1004、インポートサービス1006、データ書き込みサービス1008、エクスポートサービス1010、管理サービス1012、および監査サービス1014を含んでよい。一般的に、履歴サービス1002によって、クライアントアプリケーションは履歴プロセス制御情報にアクセスする、あるいは照会することができる。さらに具体的には、データアクセスサービス1004によって指定された期間の履歴情報の読み取り、時間情報(例えばタイムスタンプ)およびコメントを含む履歴情報の書き込み、および時間情報とコメントを含む履歴情報の更新を可能にする。インポートサービス1006は、指定ファイルの中の情報のインポートを可能にする。データ書き込みサービス1008は、履歴サーバデータベースへデータを書き込むために呼び出されてよい。エクスポートサービス1010は、エクスポートファイルに呼び出されてよい。管理サービス1012は、例えば、履歴データのアーカイブの作成、削除および移動等の履歴情報の管理を可能にする機能を提供する。
【0054】
図11は、履歴スキャナサーバ例1100と、履歴スキャナサーバ1100が実行時サービス702(図7)と履歴サービス1002(図10)と相互作動する方法を描く図である。図11に描かれているように、履歴スキャナサーバ1100は、それ独自のサービスのいずれも提供しないが、むしろ実行時サービス702と履歴サービス1002を使用する。
【0055】
図12および図13は、各々アラームイベントサーバ1200とOPCデータサーバ1300とを描いている。アラームイベントサーバ1200は、デコーダアクセスサービス1204、管理サービス1206、および構成サービス1208を含む複数のサービス1202を提供する。OPCデータサービス1300は、データアクセスサービス1304、管理サービス1306、および構成サービス1308を含む複数のサービス1302を提供する。
【0056】
図14は、本明細書に説明されているサービス指向型アーキテクチャ例が、クライアントアプリケーションと関連するユーザインタフェースディスプレイグラフィックスを変数、スクリプト、および/またはデータサービスまたはソースとリンクさせる、または結合させるために使用されてよい1つの方法の例を描く。図14に描かれているように、その内のいくつかまたはすべてが図2、図3、および図7から図13に関連して前述されたサービス例に類似した、または同一の方法で実現されてよい、例えばヒストリアンデータサービス1402、実行時サービス1404、および/または他のデータサービス1406等の1つ以上のデータサービス1400は、1つ以上の実行時プロセス1408にリンクされてよく、通信可能に結合されてよく、またそれ以外の場合は、動作可能に結合されてよい。実行時プロセス1408はあらゆる所望の実行時プロセスまたはアプリケーションを含んでよい。ただし、図14の例でのように、実行時プロセス1408は、ユーザが、プロセス制御パラメータ値、履歴プロセス関連情報、トレンド情報、保守情報、アラーム情報または警告情報等のプロセス制御データを見る、および/または修正することができるようにするグラフィックユーザインタフェースまたはディスプレイアプリケーション1410を含む。
【0057】
やはり図14に描かれているように、実行プロセス1408とデータサービス1400との間の通信結合またはリンケージは、データ結合動作またはプロセス1412およびデータソース(複数の場合がある)動作またはプロセス1414を使用して実現される。一般的に、実行時プロセス1408、データ結合プロセス1412およびデータソースプロセス1414は、例えばクライアント204(図2)によって実行されてよく、データサービス1400は例えばサーバ202(図2)によって実行されてよい。より詳細には、実行時プロセス1408、データ結合プロセス1412、およびデータソースプロセス1414を含むクライアント204(図2)と関連するプロセスは、マイクロソフト社(Microsoft Corporation)によって提供されているアバロン(Avalon)オペレーティングシステムフレームワークを使用して実現されてよい。アバロン(Avalon)フレームワークは周知であり、本明細書に説明されている装置、方法、および製品の例の理解を容易にするためにアバロン(Avalon)フレームワークの特定の態様のみが説明される。さらに、マイクロソフト社(Microsoft Corporation)によって提供されているアバロン(Avalon)フレームワークが本明細書に説明されている例を実現するための1つの特に有用なフレームワークである一方、アバロン(Avalon)フレームワークの代わりに、またはそれに加えて任意の他の適切なソフトウェアフレームワークが使用できるであろうことが理解されなければならない。
【0058】
より詳細に図14に目を向けると、データ結合関連プロセス1412は、より詳細に後述されるように変数、スクリプトおよびデータソースに対する参照を作成し、追跡調査するリソースマネージャ1416を含む。各ディスプレイ(例えばディスプレイ1410)は、専用のリソースマネージャインスタンス(例えばリソースマネージャ1416)によって管理されている。図14に示されるように、ディスプレイ例1410は、同様にコンテキスト1430の1つ以上の結合または結合オブジェクト1428を介してデータサービス1400の内の1つ以上に連結される、リンクされ、あるいは結合される1つ以上の変数1422、スクリプト(つまり実行可能なソフトウェアスクリプト)1424、およびデータソース参照1426と関連付けられたグラフィック要素1418と関連特性1420を含む。結合オブジェクト1428は、データソース(たとえば、データサービス1400の1つ以上)内のある特定のデータアイテムの位置の文字列表現を含んでよいため、結合オブジェクト1428はデータソースに特化している。さらに、文字列表現は実行時中に変更されてよいエイリアスに対する参照を含んでよい。図示されるように、コンテキスト1430は、実行時データソース1431と、後述されるデータソースマネージャ1432にも結合される。
【0059】
図14に描かれているように、リソースマネージャ1416はディスプレイ1410からデータコンテキストを取り出す。一般的に、データコンテキストは、要素1418をレンダリングする場合にディスプレイ1410によって使用される特性1420から構成されている。リソースマネージャ1416は、変数1422、スクリプト1424および参照1426の内の適切なものに、データコンテキストに関連する特性1420をマッピングする、関連させる、あるいはそれ以外の場合結び付けるように構成される。さらに、リソースマネージャ1416はさらに、結合1428、コンテキスト1430、およびデータソースマネージャ1432を介してデータサービス1400の内の1つ以上に特性1420をマッピングする、関連させる、あるいはそれ以外の場合結び付けるようにさらに構成されてよい。ディスプレイ1410の特性1420を変数1422、スクリプト1424、参照1426および/またはデータサービス1400に関連させるためにリソースマネージャ1416によって使用されるマッピングは、例えば構成エンジニアまたは任意の他のシステムユーザによってシステム構成動作の間に確立できる。このように、多くの公知のプロセス制御システムディスプレイまたはユーザインタフェースとは対照的に、ディスプレイ1410の実行時特性、またはさらに一般的には実行時プロセス1408は、実行時プロセス1408と関連するアプリケーションを構成するソフトウェアによって静的に定義される。逆に、リソースマネージャ1416は、ディスプレイ1410の特性1420と、変数1422、スクリプト1424、参照1426、および実行時のデータソース1400の内の1つ以上との間の関係性を確立するように構成される。
【0060】
動作中、リソースマネージャ1416は、変数、値、テキスト名等の変更に関する情報を受信してよい。いくつかの場合、データ変更はリソースマネージャ1416に提供されるデータコンテキストの変化を介して伝達されてよい。さらに具体的には、それらの場合、ユーザが開始した特性1420の内の1つ以上に対する変更は、変数1422および/または参照1426と関連する値の1つ以上を変更させるためにスクリプト1424の内の1つ以上を呼び出してよい。したがって、変更がデータサービス1400の内の1つ以上に記憶されるデータに関連する場合、リソースマネージャ1416により管理されるオブジェクトに対する変更は結合1428とコンテキストオブジェクト1430を介してデータサービス1400の内の適切な1つ以上に自動的に伝搬されてよい。他の場合、データ変更は(例えば、プロセス変数値の変更の結果として)データサービス1400の1つ以上の中で発生してよく、変更はリソースマネージャ1416によって提供されるマッピング機能を介して、特性1420の内の適切な1つにコンテキスト1430と結合1428を介して自動的に伝搬されてよい。
【0061】
データソースマネージャ1432は、データソースに関連する結合オブジェクト(例えば、結合オブジェクト1428)の集合体に関するクライアント状態情報を維持するために使用されるコンテキストオブジェクト(例えば、コンテキストオブジェクト1430)を作成、管理する。グラフィックユーザインタフェースと関連するディスプレイの場合、コンテキストオブジェクトとディスプレイの間には1対1の対応がある。言い換えると、ディスプレイごとに1つのコンテキストがあり、各々のコンテキストはそのディスプレイと関連する結合だけを含む。このように、図14の例では、コンテキストオブジェクト1430は一意にディスプレイ1410に対応する。
【0062】
コンテキストオブジェクトは、その内の一方はイベントベースであり、ありとあらゆるイベントに応えて更新を開始し、その内のもう一方が本来照合され、複数のデータ変更イベントを収集し、周期的に(例えば、タイマに基づいて)変更された結合アイテムのリストをタイマに応えてデータソースに送信することにより更新を始動するデータ更新機構も提供する。言うまでもなく、相対的に処理する多数のイベントがある場合、各イベントに個別に応えることは、実行時プロセス1408および全体的なプロセス制御システム(例えば、図1のプロセス制御システム10)の性能を害することがある(例えば、反応性の鈍化)。したがって、周期的に(データは変化したが、実行時プロセスにまだ渡されていない)不正な結合のリストに応答して、全体的な性能が改善されうる。コンテキストオブジェクト1430とデータサービス1400との間の接続は、例えばマイクロソフト社(Microsoft Corporation)によって提供されているインディゴ(Indigo)フレームワークを使用して実現されてよい。
【0063】
図14の例と関連する変更情報の流れはディスプレイ1410で開始され、リソースマネージャ1416、結合1428、データソースマネージャ1432およびコンテキスト1430を介してデータサービス1400の内の1つ以上に自動的に伝搬されるものとして説明されているが、データ変更情報は、代わりにまたは加えて、データサービス1400の内の1つ以上からディスプレイ1410に自動的に伝搬できるであろう。
【0064】
図15は、ユーザインタフェースディスプレイグラフィックスがデータサービスまたはソースにリンクされる、あるいは結合されてよい1つの方法の例を描いている。図15に描かれているように、ディスプレイ(例えばディスプレイを提供するアプリケーションまたは他の実行時エンティティ)1502は、同様にパラメータまたはディスプレイコンテンツ1506と関連付けられるディスプレイ要素またはグラフィックス1504を含む。ディスプレイ1502は、1つ以上のプロセス制御関連アプリケーションと関連するユーザインタフェースであってよく、その場合、グラフィックス1504は、例えばプロセス制御値、ポンプ、バルブ等のプロセス制御デバイスのグラフィック表現を保持するためのテキストボックス等のプロセス制御関連グラフィックスであってよい。ディスプレイコンテンツ1506は、(たとえば、ディスプレイグラフィックス1504がテキストボックスである場合の)テキスト情報、プロセス状態(例えば、赤は所定の限度に近づいている、あるいは超えたパラメータ値および/または是正処置を講じる必要性を示してよい)を表す色(例えば、複数の塗り潰し色の内の1つ)、グラフィック要素(例えば、ファンまたはポンプインペラ)の回転速度、振動、移動等するモータまたは他のデバイスの三次元ビュー、および/または任意の他のコンテンツを含んでよい。
【0065】
ディスプレイ1502は、同様にプロセスコンテキスト1510とプロセス結合1512に通信可能にまたは動作可能に結合されるリソースマネージャインスタンス1508に通信可能に、または動作可能に結合される。プロセスコンテキスト1510は、プロセス結合1512に照合されたデータ変更通知またはイベント駆動データ変更通知を提供するように構成されてよい。プロセス結合1512は、データソースまたはサービスの中の固定メモリ位置のデータを参照してよい、および/またはデータソースまたはサービス内のデータのエイリアスを参照してよい。プロセス結合1512は結合オブジェクト1514を介してディスプレイコンテンツ1506に通信可能に、または動作可能に結合される。
【0066】
動作中、リソースマネージャ1508は、ディスプレイグラフィックス1504とディスプレイコンテンツ1506をレンダリングするためにディスプレイ1502によって使用されるデータコンテキストまたはパラメータを保持する。リソースマネージャ1508は、ディスプレイ1502と関連する特性の少なくとも1つを、プロセスコンテキスト1510により提供されるデータにマップする、関係させる、またはその他関連させて、データサービス(たとえば、図14に図示されるデータサービス1400の内の1つ)内に記憶されるデータのためのデータランディングサイトを提供する。言い換えると、プロセスコンテキスト1510は、例えばコンテキストオブジェクト1430(図14)等のコンテキストオブジェクト、したがってデータサービスまたは他のデータソースからの情報をリソースマネージャ1508に、そして最終的にはディスプレイコンテンツ1506、したがってディスプレイ1502に動作可能にまたは通信可能に結合するための機能を使用して実現されてよい。プロセスコンテキスト1510は、プロセス結合1512に対して照合された方法で(例えば変更されたデータ情報の集合体を周期的に送信する)、あるいは各データ変更イベントに応えてプロセス結合1512にデータ変更情報を送信するように構成されてよい。プロセスコンテキスト1510は、リソースマネージャ1508が変更通知を必要とするデータのプロセスコンテキスト1510を通知する情報をリソースマネージャ1508から受信するように構成される。このようにプロセスコンテキスト1510はリソースマネージャ1508により保持されるディスプレイ1502のデータコンテキストと関連するデータに関係するデータ変更通知だけを提供するように構成されてよい。いずれの場合でも、プロセス結合1512が1つ以上のデータ値が変更した旨の通知をプロセスコンテキスト1510から受信すると、プロセス結合1512は(結合1514を介して)ディスプレイコンテンツ1506に新しい値(複数の場合がある)を結合してから、リソースマネージャ1508に変更通知を提供する。プロセス結合1512から変更通知を受信すると、リソースマネージャ1508はディスプレイ1502上で特性変更メソッドを呼び出し、それによりディスプレイ1502に新規に結合されたデータを組み込むために更新させる。
【0067】
本明細書に説明されている機能ブロック又はオペレーションは、ソフトウェア、ファームウェアおよびハードウェアの任意の所望の組み合わせを使用して実現されてよい。例えば、1台以上のマイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)等は、メソッドを実施するため、本明細書に説明される装置を実現するために機械またはプロセッサがアクセス可能な機能媒体上に記憶されている命令またはデータにアクセスしてよい。記憶媒体は、例えばランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能ROM(EEPROM)等を含むソリッドステート記憶媒体、光記憶媒体、磁気記憶媒体等のデバイスおよび/または媒体の任意の組み合わせを含んでよい。加えて、機能ブロックを実現するために使用されるソフトウェアは、さらにまたは代わりに、インターネット、電話回線、衛星通信等を介してソフトウェアを実行するプロセッサまたは他の1台以上のデバイスに送達され、それらによってアクセスされてよい。
【0068】
図16は、本明細書に説明される装置および方法を実現するために使用されてよいプロセッサシステム例1602を描く。プロセッサベースのシステム例1602は、例えば、サーバ、パソコン、または任意の他のタイプのコンピューティング装置であってよい。
【0069】
プロセッサ1600は、例えば、ペンティアム(登録商標)(Pentium(登録商標))ファミリ、アイテニアム(Itanium)(登録商標)ファミリ、またはXScale(登録商標)ファミリの1台以上のインテル(Intel)(登録商標)マイクロプロセッサを使用して実現されてよい。言うまでもなく、他のファミリおよび企業の他のプロセッサも適切である。プロセッサ1600は、バス1608を介して揮発性メモリ1604および不揮発性メモリ1606を含むメインメモリと通信している。揮発性メモリ1604は、同期型DRAM(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックアクセスメモリ(RDRAM)および/または任意の他のタイプのランダムアクセスメモリデバイスによって実現されてよい。不揮発性メモリ1606は、フラッシュメモリおよび/または任意の他の所望のタイプの不揮発性メモリデバイスによって実現されてよい。メモリ1604に対するアクセスは、通常、従来の方法でメモリコントローラ(不図示)によって制御されている。
【0070】
システム1602はインタフェース回路1610も含む。インタフェース回路1610は、例えば、システム1602が図1のリンク24、32、40、42、46および48の内の1つ以上を介して通信可能にきるようにするための任意のタイプの周知のインタフェース規格によって実現されてよい。
【0071】
システム1602は、ソフトウェアおよび/またはデータを記憶するために1台以上の大量記憶装置1618も含む。このような大量記憶装置の例はフロッピー(登録商標)ディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、およびデジタル多用途ディスク(DVD)ドライブを含む。
【0072】
特定の方法および装置および製品が本明細書に説明されてきたが、本特許の範囲はそれに限定されない。むしろ本明細書は、字句通りに、または均等論の元でのいずれかにより添付請求項の範囲内に該当するすべての方法、装置および製品をカバーする。
【図面の簡単な説明】
【0073】
【図1】本明細書に説明されるサービス指向型アーキテクチャを使用するプロセス制御システム例のブロック図である。
【図2】図1のプロセス制御システム例の中で使用されてよいサービス指向型アーキテクチャ例を描くブロック図である。
【図3】図2のアーキテクチャ例によって提供されるディスカバリサービスと実行時サーバとの間の関係性を描く図である。
【図4】図3のディスカバリサービスとそのホスト側サーバが図3のデータアクセスサービスとそのホスト側サーバと相互作動する1つの方法を描くフロー図である。
【図5】図3のディスカバリサービスがそれによってサービスを配置するプロセス例である。
【図6】セッションサービスのインプリメンテーション例を描く図である。
【図7】図3の実行時サーバ例によって提供されてよい実行時サービスのより詳細な線図である。
【図8】図6のデータベースサーバによって提供されてよいデータベースサービス例のより詳細な線図である。
【図9】図6のバージョン制御サーバ、バージョンサーバおよびデータベースサーバが相互作動する方法の例を描く図である。
【図10】複数の履歴サービスを提供してよい履歴サーバ例の線図である。
【図11】履歴スキャナサーバ例と、履歴スキャナサーバがいかにして図7の実行時サービス例と図10の履歴サービス例と相互作動してよいのかを描く図である。
【図12】本明細書に説明されているサービス指向型アーキテクチャ例を実現するために使用されてよいアラームおよびイベントサーバ例を描く。
【図13】本明細書に説明されているサービス指向型アーキテクチャ例を実現するために使用されてよいOPCデータサーバ例を描く。
【図14】本明細書に説明されているサービス指向型アーキテクチャ例がデータサービスまたはソースに、クライアントアプリケーションと関連する実行時プロセスをリンクする、または結び付けるために使用されてよい1つの方法の例を描く。
【図15】ユーザインタフェースがデータサービスまたはソースとリンク、あるいは結び付けられてよい1つの方法のより詳細な例を描く。
【図16】本明細書に説明されている装置および方法を実現するために使用されてよいプロセッサシステム例を描く。
【技術分野】
【0001】
(関連出願)
本願は、2004年5月4日に出願され、本願がこれにより全体を本明細書に参照することにより明示的に組み込んでいる「プロセス制御システムを表現し、監視し、対話するためのグラフィックユーザインタフェース(Graphic User Interface for Representing,Monitoring and Integrating with Process Control Systems)」と題される米国仮特許出願、出願番号第60/567,980号の正規に出願された出願であり、その利益を主張する。本願は、全体の開示がこれによりその全体を本明細書に参照することにより明示的に組み込まれている、2002年10月22日に出願され、2004年4月22日に米国公報番号第2004/0075689号として公開された、同様に「プロセスプラントにおけるスマートプロセスモジュールおよびオブジェクト(Smart Process Modules and Objects in Process Plants)」と題される米国特許出願、出願番号第10/278,469号の一部継続出願である、2003年7月21日に出願され、2004年8月5日に米国公報番号第2004/0153804号として公開された「グラフィックディスプレイ要素、プロセスモジュールおよび制御モジュールのプロセスプラントにおける統合(Integration of Graphic Display Elements,Process Modules and Control Modules in Process Plants)」と題される米国特許出願、出願願望第10/625,481号にも関連する。本願は、全体の開示がこれによりその全体を本明細書に参照することにより明示的に組み込まれている、2003年2月18日に出願され、2004年10月7日に米国公報番号第2004/0199925号として公開された「プロセスプラント構成システムにおけるモジュールクラスオブジェクト(Module Class Objects in a Process Plant Configuration System)」と題される米国特許出願、出願番号第10/368,151号にも関連する。本願は、本願と同日に国際(PCT)出願として出願され、本願がこれにより全体を本明細書に参照することにより組み込んでいる以下の特許出願にも関連する。つまり、「プロセス環境における関連グラフィックディスプレイ(Associated Graphic Displays in a Process Environment)」(代理人整理番号第06005/41111号)、「プロセス制御システムのためのユーザにより構成可能なアラームおよびアラームトレンド分析(User Configurable Alarms and Alarm Trending for Process Control Systems)」(代理人整理番号第06005/41112号)、「プロセスプラントのプロセスモジュールとエキスパートシステムとの統合(Integration of Process Modules and Expert Systems in Process Plants)」(代理人整理番号第06005/41113号)、「統合された環境におけるカスタマイズされたプロセスグラフィックディスプレイ層を有するプロセスプラントユーザインタフェースシステム(A Process Plant User Interface System Having Cusstomized Process Graphic Display Layers in an Integrated Environment)」(代理人整理番号第06005/41114号)、「プロセス環境におけるスクリプト化されたグラフィック(Scripted Graphics in a Process Environment)」(代理人整理番号第06005/41115号)、「プロセス構成および制御環境へのグラフィック統合(Graphics Integration into a Process Configuration and Control Environment)」(代理人整理番号第06005/41116号)、「プロセス環境における複数の視覚化のあるグラフィック要素(Graphic Element with Multiple Visualization in a Process Environment)」(代理人整理番号第06005/41117号)、「プロセスプラントにおいてグラフィックディスプレイ要素およびプロセスモジュールを構成するためのシステム(System for Configuring Graphic Display Elements and Process Modules in Process Plants)」(代理人整理番号第06005/41118号)、「統合プロセス制御システムイシステムインタフェースのためのグラフィックディスプレイ構成フレームワーク(Graphic Display Configuration Framework for Unified Process Control System Interface)」(代理人整理番号第06005/41124号)、「プロセスプラントユーザインタフェースにおけるマークアップ言語をベースにした動的プロセスグラフィックス(Markup Language−Based,Dynamic Process Graphics in a Process Plant User Interface)」(代理人整理番号第06005/41127号)、「プロセス制御データを修正するための方法および装置(Methods and Apparatus for Modifying Process Control Data)」(代理人整理番号第06005/591622号と第20040/59−11622号)、「プロセス制御データにアクセスするための方法および装置(Methods and Apparatus for Accessing Process Control Data)」(代理人整理番号第06005/591623号および第20040/59−11623号)、「プロセス制御システムのための統合グラフィック実行時インタフェース(Integrated Graphical Runtime Interface for Process Control Systems)」(代理人整理番号第06005/591628号および第20040/59−11628号)である。
【0002】
本発明は概してプロセス制御システムに関し、より詳細にはプロセス制御システムのためのサービス指向型アーキテクチャに関する。
【背景技術】
【0003】
化学関連プロセス、石油関連プロセスまたは他のプロセスで使用されるシステム等のプロセス制御システムは、通常、アナログバス、デジタルバス、またはアナログ/デジタル結合バスを介して少なくとも1つのホストワークステーションまたはオペレータワークステーションに、および1台以上のフィールドデバイスに通信可能に結合されている1台以上のプロセスコントローラおよび入力/出力(I/O)装置を含む。例えば、バルブ、バルブポジショナ、スイッチおよび送信機(例えば、温度センサ、圧力センサ、および流量センサ)であってよいフィールドデバイスは、バルブの開閉およびプロセスパラメータの測定等のプロセス機能を実行する。プロセスコントローラは、フィールドデバイスにより行われるプロセス測定、および/またはフィールドデバイスに関する他の情報を示す信号を受信し、制御ルーチンを実現するためにこの情報を使用し、次にプロセスの動作を制御するためにフィールドデバイスにバスまたは他の通信回線上で送信される制御信号を発生させる。このように、プロセスコントローラは、フィールドデバイスを通信可能に結合するバスおよび/または他の通信リンクを介してフィールドデバイスを使用して制御戦略を実行し、調整してよい。
【発明の開示】
【発明が解決しようとする課題】
【0004】
フィールドデバイスおよびコントローラからの情報は、オペレータが、プロセスの現状を見る、プロセスを評価する、プロセスの動作を修正する等のプロセスに関して所望の機能を実行可能とするために(例えばプロセッサベースのシステム等の)オペレータワークステーションによって実行される1つ以上のアプリケーション(つまり、ソフトウェアルーチン、プログラム等)が利用できてよい。多くのプロセス制御システムは1つ以上のアプリケーションステーションも含む。通常、これらのアプリケーションステーションは、コントローラ、オペレータワークステーションおよびローカルエリアネットワーク(LAN)を介してプロセス制御システム内の他のシステムに通信可能に結合されるパーソナルコンピュータ、ワークステーション等を使用して実現される。各アプリケーションステーションは、プロセス制御システムの中でキャンペーン管理機能、保守管理機能、バーチャル制御機能、診断機能、リアルタイム監視機能、安全性関連機能、構成機能等を実行する1つ以上のソフトウェアアプリケーションを実行してよい。
【0005】
多くのプロセス制御システムの多様なアプリケーションを実現するために使用されるソフトウェア要素(例えばプログラム)は、通常、オブジェクト指向型のプログラミング技術およびアーキテクチャの使用に大幅に依存している。このようなオブジェクト指向型プログラミングの技術とアーキテクチャは、より高いレベル(例えばより複雑な)ソフトウェアオブジェクトが1つ以上のより低いレベルのオブジェクトから構築され、したがって1つ以上のより低いレベルのオブジェクトの特性(プロパティ)を継承するソフトウェアオブジェクトの階層配列に基づいている。これらのオブジェクト指向型プログラミング内での継承を多用することは高度のコード(つまりソフトウェア命令、プログラム等)の共用を可能にし、制御システムを実現するために必要とされるコードまたはソフトウェアの総合的な量を大幅に削減する傾向がある。
【0006】
公知のオブジェクト指向型プログラミングは、相対的に複雑なプロセス制御システムを実現するために必要とされるソフトウェアまたはコードの量を有利に削減できるが、これらの構成に関連する高度な継承またはコード共用は、制御システムを構成する多様なソフトウェアルーチンまたは構成要素間の高度な依存状態(例えばデータ依存)を生じさせる。その結果、これらの多様なソフトウェアルーチンの独立した開発および/またはバージョニングが困難であるかまたは不可能である場合がある。例えば、前述されたオブジェクト指向型の構成では、プロセス制御システムアプリケーション(例えばプロセス監視アプリケーション)、データベースサービス、および実行時サービスを利用するいくつかのプロセス制御システムは強固に結合している(つまり互いに対してかなり依存している)。特にクライアントアプリケーションはデータベース内のデータを表すデータ構成要素の共通したセット上に構築されてよい。したがって、共通データ構成要素の変更は、クライアントアプリケーションを再構築することを必要とする。その結果、特にプロセス制御システムの異なるソフトウェア構成要素が異なるロケーション(開発サイトまたはセンタ)で開発される場合、公知のオブジェクト指向型プロセス制御ソフトウェアアーキテクチャに固有のデータ依存により、データベース構成要素および実行時ソフトウェア構成要素の独立したバージョニングまたは開発は非常に困難または不可能になる。これらの公知のオブジェクト指向型アーキテクチャに固有のデータ依存に対処するために、プロセスソフトウェア開発者はデータベース構成要素、実行時構成要素、およびシステムソフトウェア構成要素の開発を、これらの構成要素が統一して構築され、リリースされるように調整することを余儀なくされてきた。
【課題を解決するための手段】
【0007】
一例では、プロセス制御システムにおけるクライアントプロセスとサーバプロセス間でプロセス制御情報を伝達するための方法および装置は、各々が対応するサービスインタフェースを有する複数のプロセス制御サービスを含むサーバプロセスを確立する。この方法および装置の例では、クライアントプロセスが通信接続を確立する複数のサービスの各々にプロキシを有するクライアントプロセスも確立する。さらに、この方法および装置の例では、クライアントプロセスとサーバプロセス間のプロセス制御情報の伝達を可能にするためにクライアントプロセスへのサービスインタフェースと関連付けられた端点情報(end point)(例えばポート情報、URL、URI等)を提供する。
【0008】
別の例では、ルーチンアプリケーションに情報を結び付ける方法は、リソースマネージャに実行時アプリケーションと関連するデータコンテキストを提供し、リソースマネージャを介してデータコンテキストからの少なくとも1つの特性を、変数、スクリプトまたはデータソース基準の内の少なくとも1つと関連付ける。さらに、該方法は変数、スクリプトまたはデータソース基準の内の該少なくとも1つに該少なくとも1つの特性を結び付ける。
【発明を実施するための最良の形態】
【0009】
一般的に、本明細書に説明されている装置、方法および製品の例では、プロセス制御システムを構成する多様なソフトウェア要素(例えば、プログラム、アプリケーション、サービス等)間の高い独立性を提供するためにプロセス制御システム内で使用されてよい。より詳細には、本明細書に説明されている例は、複数の独立したプロセス制御関連アプリケーションがその上に層化している、複数の緩やかに結合された(つまり、実質的にデータから独立している)コアサービスを提供するソフトウェアおよびハードウェアのアーキテクチャを利用する。コアサービスの各々は個別にテストし、バージョニングできる良く定義された外部インタフェース(例えば、スキーマ、サービスに及び/又はサービスから渡されるパラメータ、データフォーマット等)を提供する。同様に、プロセス制御関連のアプリケーションは、アプリケーションの実質的にデータから独立した性質のために高度に独立した方法で(異なる開発チーム、場所等の間で最小の調整を行い、またはほとんど調整を行わずに)構築または開発できる。言い換えると、全体的なプロセス制御システムの中で使用するためにある特定のアプリケーションを開発している、ある場所にいるソフトウェア開発者は、別の物理的な場所にいるソフトウェア開発者の別のグループによって開発されている別のアプリケーションの開発に必ずしも密接に関係する、あるいは通知される必要はない。このように、本明細書に説明されているサービス指向型アーキテクチャ例は、別のソフトウェア開発チームが彼ら各々の開発作業を(例えば、会議および/または他の形の通信を介して)調整する多大な量の時間を費やす必要性を最小限に抑えるまたは排除し、それにより各々の開発作業のための開発時間と費用を大幅に削減する。
【0010】
コードまたはソフトウェア再利用に焦点を当てた多くの公知のオブジェクト指向型インプリメンテーションまたはアーキテクチャとは対照的に、本明細書に説明されているサービス指向型制御アーキテクチャ例はデータサービスおよび/またはクライアントアプリケーション間の比較的に緩やかな結合(例えば、存在するとしても、比較的に少ないデータ依存)であることを強調する。さらに、公知のオブジェクト指向型インプリメンテーションを用いると、プロセス制御ソフトウェアアプリケーションまたはプログラムは、本来、共用されるクラスライブラリから引き出されるソフトウェア要素の構成または配列である。対照的に、本明細書に説明されているサービス指向型アーキテクチャ例は、相対的に自律したサービスから構成されるアプリケーションを活用する。より詳細には、本明細書に説明されているサービス志向型アーキテクチャ例と関連する相対的に自律したサービスは、クラス情報を共用するよりむしろ、(構造のための)スキーマと(動作のための)コントラクトを共用する。本明細書に説明されている相対的に自律したサービス(例えばデータサービス)の各々は、サービスが送受できるメッセージの構造を説明する(例えば、XML等の拡張可能マークアップ言語を使用して)コントラクトを確立する。
【0011】
またさらに、公知のオブジェクト指向型プロセス制御ソフトウェアインプリメンテーションは、ソフトウェア要素または構成要素(例えばサービス)と開発者(異なる開発現場のソフトウェア開発者)間の通信を、(処理効率の観点から)安価かつ暗示的に処理する。対照的に、本明細書に説明されているサービス指向型アーキテクチャ例はこのような通信を相対的に高価かつ明示的に処理する。したがって、本明細書に説明されているサービス指向型アーキテクチャ例は、サービス全体で(つまり、プロセス制御ソフトウェアのコアサービスを構成する多様なソフトウェア構成要素と関連するサービス境界全体で)共用されなければならない抽出数および抽出の複雑性を削減するように構成される。
【0012】
さらに、アプリケーションの展開を一元的に(つまり、相互に関連のあるアプリケーションのグループの共通のリリース)処理する公知のオブジェクト指向型インプリメンテーションとは対照的に、本明細書に説明されているサービス指向型プロセス制御ソフトウェアアーキテクチャ例は継続的なより不連続な方法でアプリケーション展開を処理する。例えば、本明細書に説明されているサービス指向型アーキテクチャ例を使用すると、クライアントアプリケーションは全体的なシステムおよびアプリケーションの集合的な状態が経時的に混合されるようにそれらのアプリケーションにより使用される根本的なデータサービスとは独立してバージョンニングされてよい。例えば、いくつかの場合、サービスは、該サービスを利用するアプリケーションが展開されるよりも十分に前に展開されてよい。さらに、アプリケーションとサービスが実質的に独立していることにより、サービスおよび/またはアプリケーションは経時的に異なる速度で独立して進化できる(つまり、無関係に開発または修正できる)。しかしながら、本明細書に説明されているサービス指向型アーキテクチャまたはフレームワークの例で活用される相対的に高度に切り離されたサービスおよび/またはアプリケーションの相互作動におけるさらに高い完全度を保証するために、各サービスはそれが別のサービスまたはアプリケーションから受信する各メッセージでバリデーションプロセスを実行するように構成されてよい。
【0013】
本明細書にさらに詳しく説明されるように、サービス指向型アーキテクチャ例は、変数、実行可能スクリプト、および/または前述されたデータサービスに実行時アプリケーションを関連するパラメータのリンケージ、結合、またはさらに一般的には通信結合または動作結合を可能にするために有利に適用されてよい。例えば、プロセス制御システムユーザインタフェースアプリケーションと関連するレンダリンググラフィックディスプレイ要素と関連して使用されるパラメータは、実行時データサービスに通信可能にまたは操作で結合されてよい。この例では、パラメータに結合されるデータの変更は、変更されたデータを反映するために例えばグラフィックディスプレイを更新できる表示アプリケーションにデータサービスから自動的に伝搬できる。あるインプリメンテーションでは、マイクロソフト社(Microsoft Corporation)により提供されている周知のアバロン(Avalon)ソフトウェアプラットフォームとインティゴ(Indigo)ソフトウェアプラットフォームが、実行時における変数、スクリプト、および/またはデータサービスに対するディスプレイエンティティに関連する特性の結合を可能にするために使用されてよい。しかしながら、アバロン(Avalon)および/またはインディゴ(Indigo)の代わりに任意の他の適切なソフトウェアプラットフォームが使用できるであろう。
【0014】
より詳細に後述されるように、本明細書に説明されているサービス指向型アーキテクチャ例は、プロセス制御関連のデータをデータソース層に提供できるデータサービス層を含む。後述されるように、データソース層はアプリケーションの中からデータサービス層へ相対的に一般的なアクセスを提供する。データソース層上で層化されているリソースマネージャは、変数、スクリプトおよび/または参照を1つ以上の実行時アプリケーション、ディスプレイ、グラフィック要素、パラメータ等と関連するデータソースの中に管理する。パラメータとこのような変数またはデータソースとの間の結合(複数の場合がある)を静的にコード化することとは対照的に、本明細書に説明されるリソースマネージャは、有利なことに、例えばグラフィックディスプレイ要素に関連するパラメータを、実行時に1つ以上の変数またはデータサービス(例えば、サーバを介して提供されるプロセス制御データソース)に結合できるようにする。
【0015】
より詳細には、本明細書に説明される装置、方法および製品の例を用いると、ディスプレイアプリケーションはリソースマネージャからそのグラフィック要素と関連する多様な特性の値あるいは他のデータまたは情報を要求してよい。同様に、リソースマネージャは、ディスプレイアプリケーションにより使用される特性にデータソースを提供する(例えば、マッピングする、関連付ける、あるいはそれ以外の場合結び付ける)ように実行時には構成されてよい。その結果として、ディスプレイアプリケーションは、それらのグラフィック要素と関連するパラメータ値に結合される、そのグラフィック要素と変数またはデータソースとの間の関係性を定義するために静的にコード化される必要はない。代わりに、リソースマネージャはより柔軟かつ動的にそれらの関係性を定義するために実行時に構成できる。
【0016】
図1は、本明細書に説明されているサービス指向型アーキテクチャ例を使用するプロセス制御システム例10のブロック図である。図1に描かれているように、プロセス制御システム10はコントローラ16、オペレータステーション18、アクティブアプリケーションステーション20、およびスタンバイアプリケーションステーション22を含み、そのすべては、バス、または一般的にアプリケーション制御ネットワーク(ACN)と呼ばれているローカルエリアネットワーク(LAN)を介して通信可能に結合されてよい。オペレータステーション18とアプリケーションステーション20と22は、1つ以上のワークステーション、あるいは他の適切なコンピュータシステムまたは処理装置を使用して実現されてよい。例えば、アプリケーションステーション20と22は、単一のプロセッサワークステーションまたはマルチプロセッサワークステーション等の、以下の図16に示されるプロセッサシステム例1602と同様に単一のプロセッサパーソナルコンピュータを使用して実現できるであろう。さらに、LAN24は、所望の通信媒体およびプロトコルを使用して実現されてよい。例えば、LAN24は、周知であり、本明細書ではさらに詳しく説明しない、ハードワイヤードの、または無線イーサネット(登録商標)通信スキームに基づいてよい。しかしながら、当業者により容易に理解されるように、任意の他の適切な通信媒体およびプロトコルを使用できるであろう。さらに、単一のLANが示されているが、複数のLANおよびアプリケーションステーション20と22の中の適切な通信ハードウェアが、オペレータステーション18、アプリケーションステーション20と22、およびコントローラ16の間に冗長な通信パスを提供するために使用されてよい。
【0017】
コントローラ16は、デジタルデータバス32および入力/出力(I/O)デバイス34を介して複数のスマートフィールドデバイス26、28および30に結合されてよい。スマートフィールドデバイス26から30は、Fieldbusに準拠するバルブ、アクチュエータ、センサ等であってよく、その場合にはスマートフィールドデバイス26から30は周知のFieldbusプロトコルを使用してデジタルデータバス32を介して通信する。言うまでもなく、他のタイプのスマートフィールドデバイスと通信プロトコルが代わりに使用できるであろう。例えば、スマートフィールドデバイス26から30は、代わりに周知のProfibus通信プロトコルおよびHART通信プロトコルを使用して、データバス32を介して通信するProfibusまたはHARTに準拠するデバイスとなるであろう。(I/Oデバイス34に類似するまたは同一の)追加のI/Oデバイスは、Fieldbusデバイス、HARTデバイス等であってよいスマートフィールドデバイスの追加のグループがコントローラ16と通信可能にきるようにするためにコントローラ16に結合されてよい。
【0018】
スマートフィールドデバイス26から30に加えて、1台以上の非スマートフィールドデバイス36と38がコントローラ16に通信可能に結合されてよい。非スマートフィールドデバイス36と38は、例えば、各々のハードワイヤードリンク40と42を介してコントローラ16と通信する従来の4−20ミリアンペア(mA)または0−10ボルト直流(VDC)デバイスであってよい。
【0019】
コントローラ16は、例えば、エマーソンプロセスマネジメント、LLLPより販売されているDelta(商標)コントローラであってよい。しかしながら、他のコントローラが代わりに使用できるであろう。さらに、図1には1台だけしかコントローラが図示されていないが、所望のタイプのまたはタイプの組み合せの追加のコントローラがLAN24に結合できるであろう。コントローラ16は、プロセス制御システム10と関連する1つ以上のプロセス制御ルーチンを実行してよい。このようなプロセス制御ルーチンは、オペレータステーション18を使用してシステムエンジニアまたは他のシステムオペレータによって生成され、コントローラ16にダウンロードされ、コントローラ16内でインスタンスを作成されてよい。
【0020】
図1に説明されているように、プロセス制御システム例10は、通信リンク46とLAN48を介してアプリケーションステーション20と22に通信可能に結合されるリモートオペレータステーション44も含んでよい。リモートオペレータステーション44は地理的に遠く離れて配置されてよく、その場合、通信リンク46は、必ずしもではないが好ましくは無線通信リンク、インターネットベースまたは他のパケット交換通信のネットワーク、電話回線(例えば、デジタル加入者回線)またはその任意の組み合わせである。
【0021】
図1の例に描かれているように、アクティブアプリケーションステーション20とスタンバイアプリケーションステーション22はLAN24を介して、および冗長リンク50を介して通信可能に結合されている。冗長リンク50は、アクティブアプリケーションステーション20とスタンバイアプリケーションステーション22との間の個別な専用の(つまり共用されていない)通信リンクであってよい。冗長リンク50は、例えば専用のイーサネット(登録商標)リンク(例えば、互いに結合されているアプリケーションステーション20と22各々の専用のイーサネット(登録商標)カード)を使用して実現されてよい。しかしながら、他の例では、冗長リンク50は、アプリケーションステーション20と22に通信可能に結合される、必ずしも両方とも専用ではないが、LAN24または冗長LAN(図示されていない)を使用して実現できるであろう。
【0022】
一般的に、アプリケーションステーション20と22は、冗長コンテキストを確立し、維持するために冗長リンク50を介して連続的に、例外によって、または周期的に情報を交換する。冗長コンテキストによって、アクティブアプリケーションステーション20とスタンバイアプリケーションステーション22間の制御の円滑なまたはバンプレスなハンドオフまたは切り替えが可能になる。例えば、冗長コンテキストは、アクティブアプリケーションステーション20の中のハードウェア故障またはソフトウェア故障に応えて、あるいはプロセス制御システム10のシステムオペレータまたはユーザまたはクライアントアプリケーションからの命令に応えて、アクティブアプリケーションステーション20からスタンバイアプリケーションステーション22への制御ハンドオフまたは切り替えを実行できる。
【0023】
図2は、図1のプロセス制御システム例10の中で使用されてよいサービス指向型アーキテクチャまたは構造の例200を描くブロック図である。図2に示されているように、サービス指向型アーキテクチャ例200は、サーバ202とクライアント204を含む。サーバ202は複数のサービス206、208、および210または集合体を含み、その内のいくつかまたはすべては関連機能を実行してよい。サービス206、208、および210は、通信ポート218を介したクライアント204との通信を可能にする各々のインタフェース(例えば、公開されているパラメータの1つ以上のセット)212、214、および216を提供する。サービスインタフェース212,214および216は、実質的には本質的に汎用であるため、実質的には図1のプロセス制御システム例10と関連する構成および/または実行時データベースに含まれるデータのために使用されるスキーマ(つまり、データフォーマット、プロトコル等)とは無関係である。結果として、サービスインタフェース212、214、および216は、新規サービス能力(例えば機能)がサービス206、208および210の内の1つ以上に追加される場合、修正(例えば更新)だけを必要とする。したがって、サービスインタフェース212、214および216は、新規に公開されたインタフェースを使用するデータオブジェクトがプロセス制御システム10(図1)内での使用に追加されない限り変更される必要はない。
【0024】
サーバ202は、例えば、図1のシステム例に示されているアプリケーションステーション20と22および/またはオペレータステーション18と44の内の1つ以上等のプロセッサベースのシステムで実行されるソフトウェアとして実現されてよい。言うまでもなく、サーバ202は、プロセス制御システム例10(図1)に結合されている他のプロセッサベースのシステムまたはワークステーションを使用して実現されてよい。
【0025】
クライアント204は、各々がサービス206、208および210の内の1つに対応する複数のサービスインタフェースプロキシ220、222および224を含む。クライアント204によって使用されるサービスインタフェースプロキシの数は、サーバ202によって提供されるサービスの数より少ない場合がある。言い換えると、クライアント204は好ましくは、それがアクセスを必要とするサービスのためにのみプロキシを作成する。したがって、クライアント204は、サーバ202によって提供されるサービス206、208、および210の内の1つ以上にアクセスする、あるいはそれらと対話するために必要に応じて1つ以上のプロキシを生成してよい。
【0026】
サーバ202と同様に、クライアント204は、例えば、アプリケーションステーション20と22の内の1つ以上、および/またはオペレータステーション18と44の内の1つ以上等のプロセッサベースのシステムで実行されるソフトウェアとして実現されてよい。あるインプリメンテーション例では、クライアント204は、サーバ202によって提供される1つ以上のサービス206、208および210にアクセスするために、1つ以上のウェブブラウザフレームワーク(例えばインターネットエクスプローラ(Internet Explorer)等を活用してよい。しかしながら、他の所望のソフトウェアフレームワークは、このようなウェブブラウザフレームワークの代わりに、またはこのようなウェブブラウザフレームワークに加えて使用されてよい。さらに一般的に、クライアント204はプロセス制御システム例10(図1)内の所望のアプリケーションを表してよい。したがって、クライアント204は、例えば構成アプリケーション、保守アプリケーション、監視アプリケーション、プロセス制御アプリケーション、および/または任意の他のアプリケーションまたはアプリケーションの組み合わせであってよい。図14および図15に関連してさらに詳しく後述されるように、クライアント204(つまり、クライアントアプリケーション(複数の場合がある))は、一人以上のシステムオペレータ、エンジニアおよび/または任意の他のユーザが構成動作、実行時等の間にプロセス制御データを見るおよび/または変更することが可能となるように表示機能(例えばグラフィックユーザインタフェース機能)を含んでよい。
【0027】
図2のアーキテクチャ例200は単一のクライアントと通信して単一のサーバを描いているが、所望の場合追加のサーバおよびクライアントが使用されてよい。例えば、いくつかのインプリメンテーションでは、クライアント204は、2台以上のサーバと通信し、2台以上のサーバと相互作動し、および/または2台以上のサーバの中でサービスにアクセスしてよい。同様に、これらのインプリメンテーションまたは他のインプリメンテーションでは、サーバ例202(または他の個々のサーバ)は、複数のクライアントと通信してよい、および/または相互作動してよい。さらに、クライアント204がそれらの通信のためにサーバとして別のシステムと機能と通信してよいことが理解されなければならない。同様に、サーバ202がクライアント204以外のシステムと通信する場合、それらの通信のためのクライアントとして機能してよい。さらに、サービス206、208および210はサーバ202内で実現されているものとして描かれているが、サービス206、208、および210の内の1つ以上はクライアント204で代わりに実現されてよい。
【0028】
このように、図2のサービス指向型アプリケーション例200を用いると、サービス206、208および210は、相互から、およびサービス206、208および210を利用する(例えば呼び出す)アプリケーションから実質的(例えばデータ依存性に関して)に切り離される。有利なことに、このような切り離しによりサービス206、208および210の各々と関連するソフトウェアは、クライアント204によって活用され、サービス206、208および210にアクセスするアプリケーション(複数の場合がある)を修正またはバージョニングする必要なく、無関係に修正またはバージョンニングすることができ、現場での使用のためにリリースできる。同様に、クライアント204に関連するアプリケーション(複数の場合がある)が各々のサービス206、208および210のインタフェース212、214および216を順守するまたは適合しないかぎり、クライアント204と関連するアプリケーション(複数の場合がある)は、サービス206、208、および210を修正またはバージョニングする必要なく、無関係に修正またはバージョニングしてよい。したがって、アプリケーションおよび/またはサービス206、208、210と関連するソフトウェアが生成される時点でこのような関係性を固定する(つまりデータ依存性を生じさせる)ことにより、クライアント204とサービス206、208および210の内の1つ以上との間の関係性を静的に定義する代わりに、図2のアーキテクチャ例200はこのような関係性を実行時に動的に確立できるようにする。
【0029】
以下にさらに詳しく説明されるように、サービス指向型アーキテクチャ例200は、種々のコアサービスおよび機能を提供してよい。具体的には、アーキテクチャ例200はプロセス制御システム例10(図1)の中でサービスを登録し、配置するためのディスカバリサービスを提供してよい。アーキテクチャ例200は、クライアント204と関連するアプリケーション、ローカル実行時情報およびリモート実行時情報にアクセスを提供するための実行時サービス、多様なプロセス制御データベースにアクセスするためのデータベースサービス、およびプロセス制御システム例10(図1)内で使用されるサービスおよび/またはアプリケーションと関連するバージョンニング情報を記憶し、取り出すためのバージョン制御サービスの内の1つ以上の中にログし、またはその中からのログを可能にするためのセッションサービスも提供してよい。さらに、アーキテクチャ例200は履歴情報を照会するための履歴サービス、つまりヒストリアンスキャナサービスを提供してよく、アラーム情報の読取り、およびプロセス制御(OPC)データサービスのためのOLEを可能にする実行時サービスとヒストリアンサービスとの対話、アラームおよびイベントサービスを必要とする。前記に注記された例各々のより詳細な説明は以下に示される。しかしながら、特に本明細書説明されるものに加えて他のサービス、および本明細書に説明されているものの代替策が所望のとおりに使用されてよいことが理解されなければならない。さらに、必ずしもでなくても、好ましくは、サービス206、208、および210は通常、システムユーザ(例えばシステムオペレータ、エンジニア等)が直接的に対話しないプロセス制御データ収集機能および処理機能と関連付けられていることが認識される必要がある。むしろ、このようなサービス(例えばサービス206、208および210)は、それらのデータをユーザが対話するクライアントアプリケーション(例えば実行時グラフィックユーザインタフェース)にそのデータを提供する(またはクライアントアプリケーションからデータを受信する)。さらにこのようなサービス(例えばサービス206、208および210)は、通常、複数のクライアントアプリケーションに有用である情報またはデータを提供する。例えば、プロセス制御データベースにアクセスを提供するサービスは、例えば、プロセス制御システム動作、保守、履歴等に関する情報を提供するグラフィックユーザインタフェース等、複数のクライアントアプリケーションに有用であってよい。サービス等の機能(データベースアクセス機能)をクライアント関連機能(例えばユーザインタフェース機能)から分離することにより、グラフィックユーザインタフェース等は、グラフィックユーザインタフェースがデータを交換するサービスを修正する必要なく、バージョニング、修正等を行うことができる。同様に、サービスは、グラフィックユーザインタフェース機能を提供するアプリケーションを修正しなくてもバージョニングするまたは修正することができる、および/または新しいサービスを追加できる。
【0030】
図3は、図2のアーキテクチャ例200によって提供されてよいディスカバリサービス例300と実行時サーバ302との間の関係性を表す図である。一般的に、ディスカバリサービス例300は、サービス登録機能304、サービス位置決め機能306、およびサービス公開機能308を提供する。
【0031】
図3に描かれているように、ディスカバリサービス300および従って、登録機能、位置決め機能および公開機能304、306、および308は、実行時サーバ302によって提供されているデータアクセスサービス310と連携する。図7に関連して後述される実行時サーバ302によって提供される複数のサービスの内の1つであるデータアクセスサービス310は、プロセス制御システム(例えば、図1のシステム例10)の中で各ノード(例えば各サーバ)上にインストールされてよいサービスに関連する情報の照会を可能にするためのインタフェースを提供する。
【0032】
サービスは、ユニフォームリソース識別子(URI)を使用して位置決めされてよい、および/または登録されてよい。このようなURIは、サーバ識別子フィールド、ポートフィールド、パス識別フィールド、および/または照会文字列を含むアドレスの形を取ってよい。しかしながら、同一なまたは同様な結果を達成するために、任意の他の所望のURIフォーマットが利用されてよい。いくつかのURIフォーマット(つまり、アイデンティティ役割、httpアドレス、およびカスタムhttpアドレス)が以下に示される。
【0033】
【数1】
【0034】
図4はディスカバリサービス例300(図3)とそのホスト側ディスカバリサーバ312が協働するまたはデータアクセスサービス310およびそのホスト実行時サーバ302と相互作動する1つの方法を描くフロー図である。一般的に、図4に描かれているプロセスにより1つ以上の実行時サービス(例えば、図7の実行時サービス例700)をディスカバリサーバ312を介して登録できるようにする。詳細に図4に目を向けると、ワークステーション(例えば、オペレータステーション、アプリケーションステーション等)がブートする(ブロック402)と、登録プロセス400が開始する。次にワークステーションは、同時にディスカバリサービス(例えば、図3のディスカバリサービス300)を起動する(ブロック406)ディスカバリサーバのインスタンスを作成する、あるいは起動する(例えば、図3のディスカバリサーバ312)(ブロック404)。ブロック406でディスカバリサービスを起動すると、(ディスカバリサービスのホストを努める)ディスカバリサーバはディスカバリサービスに以前に登録されたURIを公開する。
【0035】
ブロック406でディスカバリサービスを起動後、ワークステーションは実行時サーバ(複数の場合がある)を起動する(ブロック408)。次に、実行時サーバ(複数の場合がある)は、URIプレースホルダを作成し、URIとポートを関連付ける(つまりURIにポートを割り当てる)ことによりディスカバリプロキシを作成する(ブロック410)。ブロック410で割り当てられたポート番号は次にディスカバリサービスに渡される(ブロック412)。
【0036】
ブロック412でディスカバリサービスにポート番号を送信後、実行時サーバ(複数の場合がある)は、ブロック410で割り当てられるポート番号を使用して登録されるURIを構築し(ブロック414)、次に登録されるURIを実行時サービスに公開する(ブロック416)。プロセス400は、次にディスカバリプロキシを介してディスカバリサービスにブロック416で公開されたURIを登録する。
【0037】
図5は、ディスカバリサービスがそれによってサービスを位置決めする(例えば、所望のサービスのURIを決定する)プロセス例500である。プロセス例500は、クライアントアプリケーションが起動されると開始する(ブロック502)。次にクライアントアプリケーションが決定されるURIのプレースホルダを作成し(ブロック504)、ディスカバリプロキシを介してディスカバリサービス内で位置決め機能を呼び出す(位置決めされるサービスの名前を渡す)(ブロック506)。ブロック506での動作の結果としてクライアントアプリケーションに戻される、位置決めされるサービスのURIは次にサービスプロキシを介して位置決めされたサービスを起動するために使用される(ブロック508)。
【0038】
図6は、セッションサービス600のインプリメンテーション例を描く図である。一般的に、セッションサービス例600は各クライアントアプリケーションにロードし、アプリケーションとアプリケーションを呼び出すユーザに関連する権限を追跡する。したがって、本明細書に説明される各サービスサーバは、サービスに対するアクセスを調整し、サーバにより提供されるサービスの内の1つ以上へのアクセスを要求するユーザ/クライアントアプリケーションの組み合わせと関連付けられるセキュリティ証明書を確証するセッションサービスを含む。
【0039】
作動中、クライアントアプリケーションは特定のURIを使用してサーバに接続し、セッションサービスインタフェースを要求する。セッションサービスインタフェースはログイン機能とログアウト機能の両方を提供する。ログイン機能が呼び出されると、セキュリティ評価が、要求側のクライアントアプリケーションとユーザアイデンティティに基づいて実行され、セキュリティ評価が許容できる場合、セッションハンドルが戻され、要求側クライアントアプリケーションは実行時セッションに接続される。クライアントアプリケーションがサーバによって提供される別の(例えば追加の)サービスに対する接続を要求すると、クライアントアプリケーションはサーバにセッションハンドルをサーバに渡し、サーバはそのクライアントアプリケーションに関連するセッションに別のサービスを内部的に追加するためにセッションハンドルを使用する。ログアウト機能が呼び出されると、クライアントアプリケーションによって明示的に閉じられていなかったすべてのサービスが閉じられる。
【0040】
ここで図6の詳細を見ると、セッションサービスインプリメンテーション例600はクライアントプロセス602、データベースプロセス604、及び実行時プロセス606を含んでいる。クライアントプロセス602は、例えばアプリケーションステーション(例えば、図1のアプリケーションステーション例20)、オペレータステーション(図1のオペレータステーション18)、及び/または機械読取可能な命令、コードまたはソフトウェアを実行できる任意の他のシステムで実行可能な1つ以上のアプリケーションを含んでよい。データベースプロセス604は、データベースサーバ608を介して全体でまたは部分的に実行されてよく、実行時プロセス606は実行時サーバ302を介して全体でまたは部分的に実行されてよい。
【0041】
図6に描かれているように、セッションサービス例600のクライアントプロセス602は、データベースサーバ608内のセッションサービスインスタンス618と620に対応する各々のセッションサービスプロキシ614と616を有する複数のクライアントアプリケーション610と612を含む。さらに、クライアントプロセス602と関連するアプリケーション例610と612の各々は、データベースアクセスを必要とし、したがってデータベースサーバ608により提供されるデータアクセスサービスインスタンス626と628と関連する各々のプロキシ622と624を含む。クライアントプロセス例602は、データベースサーバ608によって提供されてよいダウンロードサービス632と関連するプロキシ630も提供する。データベースサーバ608はさらに、データベースサーバ608内のアクティブセッション(セッション618と620)を追跡するおよび/または管理するセッションマネージャ634を含む。
【0042】
セッション618と620、およびデータベースサーバ608内のダウンロードサービス623は、各々のプロキシ642、644および646を介して実行時サーバ302内の各々のインスタンス636、638および640と動作可能に関連付けられる。マシン端末セッション648は、セッション636と638を管理し、セッションオブジェクト650を保持し、前記に注記されたセッションオブジェクト650に対する安全性評価動作を実行するためにセキュリティサービス652と相互作動する。
【0043】
このように、図6のインプリメンテーション例で分かるように、各クライアントアプリケーションは、1台以上のサーバにより提供される1つ以上のサービスと相互作動する。さらに具体的には、クライアントアプリケーションがプロセス制御データベースに対するアクセスを必要とする範囲まで、そのクライアントアプリケーションは、必要とされるデータベースアクセスサービス(複数の場合がある)を提供するサーバとのセッション(例えば通信リンク)を確立する。例えば、図6のインプリメンテーション例では、アプリケーション610がデータベースサーバ608内で(例えば、セッションサービス618を介して)セッションを確立し、データベースサーバ608内でDataAccessサービス626を利用する。このように、クライアントアプリケーションは、複数の緩やかに結合された(つまり実質的にはデータから独立している)サービスを使用して実現することができ、それら各々が別のサーバ上にホスティングされてよい。クライアントアプリケーションは、次にホスト側サーバの各々で1つ以上のプロキシおよび1つ以上のセッションサービスオブジェクトを介してアプリケーションの各々によって、必要に応じてサービスと通信する。
【0044】
図7は、実行時サーバ302(図3)によって提供されてよい実行時サービス700のより詳細な線図である。一般的に、実行時サービス700は、ローカル実行時プロセス制御情報およびリモート実行時プロセス制御情報に対するアクセスを提供する。図7に示されているように、実行時サービス700はデータアクセスサービス310、アップロードサービス704、Fieldbusコミッショニングサービス706、実行時セッションサービス708、ダウンロードサービス710、コミッショニングサービス712、サブシステムサービス714、およびダウンロードリスナーサービス716を含んでよい。
【0045】
データアクセスサービス310は、実行時データベース(例えば、図1のプロセス制御システム例10内でプロセス制御パラメータ値を含む実行時データベース)内でのパラメータの読み書きを可能にする機能を提供する。さらに、データアクセスサービス310は、実行時データベース内のアイテム(例えば、コミッショニングされたコントローラノード)の収集を列挙することができる。
【0046】
アップロードサービス、ダウンロードサービスおよびダウンロードリスナーサービス704、710、および716は、実行時データベースへのデータのアップロードとダウンロードを可能にし、Fieldbusコミッショニングサービスとコミッショニングサービス706と712は実行時データベース内のフィールドデバイスのコミッショニングを可能にし、実行時セッションサービス708は図6のインプリメンテーション例と関連して前述されたように、機械端末セッション720とサーバセッションサービス718と協働してセキュリティ機能を実行する。
【0047】
図8は、データベースサーバ608によって提供されてよいデータベースサービス例800のより詳細な線図である。図8に示されているように、データベースサービス800は、データアクセスサービス802、ダウンロードサービス804、アップロードサービス806、Fieldbusコミッショニングサービス808、インポートサービス810、エキスポートサービス812、コミッショニングサービス814、データベース管理サービス816およびバージョン制御サービス820を含んでよい。データアクセスサービス802は、データベースを照会し、更新するための機能を提供する。データアクセスサービス802は、クライアントアプリケーションによって発行されるコマンドをデータベースサーバ608のデータベースに対して実行できるようにするコマンド機能も提供する。各コマンドは、データベースに適用される複数のナビゲーション動作と更新動作を含んでよい。加えて、各コマンドは単一のデータベーストランザクションで実行してよい。コマンドはアプリケーション内で構成され、データベースサーバ608内のスクリプトとして代わりに解釈される(例えば、コンパイルされ、実行される)文字列(ストリング)として伝達される。必ずしもではないが、好ましくは、コマンドは、共通のスクリプトをすべての同様な動作に使用できるようにパラメータ化される。データベースサーバ608は実行速度を強化するためにスクリプトを事前コンパイルし、キャッシュに入れてよい。1つの特定の例では、クライアントアプリケーションによってデータベースサーバ608に送信される更新コマンドは、バージョン制御アクション(つまり、バージョン制御サービス)が必要とされる場合に、クライアントインタフェースに対する呼び戻しをトリガしてよい。使用できるあらゆる更新は、コマンドの実行および呼び出し側ルーチンへのその同期された戻りに続いて、データベースサーバ608内のデータベースから収集される。
【0048】
ダウンロードサービス804は、データベースサーバ608内での順序制御をサポートするインタフェースとして実現されてよい。ダウンロードサービス804インタフェースはダウンロードリストにアイテムを追加する機能、アップロードをチェックし、実行する機能、依存性をチェックする機能、ダウンロードを検証する機能、およびダウンロードアイテムをターゲットシステムに送信する機能を提供する。ダウンロードサービス804は、アップロードを実行するために、(図6に示されるように)実行時データアクセスサービス702(図7)と相互作動するように構成されてよい。ダウンロードサービス804は、デバイスがコミッションされることを確実にするために、実行時コミッショニングサービス712(図7)と相互作動してもよく、ダウンロードスクリプトを伝達するために実行時ダウンロードサービス710(図7)と相互作動してよい。
【0049】
インポートサービス810は、データベースサーバ608内で順序付け可能なインタフェースとして実現されてもよい。インポートサービス810は、インポートファイルを指定する機能、インポートオプションを指定する機能、および要求されたデータをインポートする機能を提供してよい。インポートサービス810のインタフェースは、呼び出し側クライアントがサーバ608のためのインポートファイルを読み取り、インポートの進行を報告できるようにする呼び戻しを提供してもよい。
【0050】
エクスポートサービス812は順序付け可能なインタフェースとして実現されてもよい。エクスポートサービス812は、エクスポートサービス812がエクスポートリストにアイテムを追加してから、エクスポートを実行できるようにするインタフェースを含んでよい。加えて、エクスポートサービス812は、クライアントアプリケーションがサーバのためのエクスポートファイルを書き込み、エクスポートの進行を報告できるようにする呼び出し側クライアントアプリケーションで呼び戻しインタフェースを提供してよい。
【0051】
データベース管理サービス816は、データベースの作成、削除、バックアップ、および復元を可能にする機能を提供する。バージョン制御サービス820は、バージョンの管理を可能にする機能(例えば、サービスの異なるバージョン)を提供する。
【0052】
図9は、バージョン制御サーバ900、バージョンサーバ902、およびデータベースサーバ608が相互作動する方法を描く図である。図9に描かれているように、バージョン制御サーバ900は複数のバージョン制御サービス904を含む。バージョン制御サービス904は管理サービス906とバージョンサービス908を含んでよい。
【0053】
図10は、複数の履歴サービス1002を提供してよい履歴サーバ例1000の線図である。履歴サービス1002は、データアクセスサービス1004、インポートサービス1006、データ書き込みサービス1008、エクスポートサービス1010、管理サービス1012、および監査サービス1014を含んでよい。一般的に、履歴サービス1002によって、クライアントアプリケーションは履歴プロセス制御情報にアクセスする、あるいは照会することができる。さらに具体的には、データアクセスサービス1004によって指定された期間の履歴情報の読み取り、時間情報(例えばタイムスタンプ)およびコメントを含む履歴情報の書き込み、および時間情報とコメントを含む履歴情報の更新を可能にする。インポートサービス1006は、指定ファイルの中の情報のインポートを可能にする。データ書き込みサービス1008は、履歴サーバデータベースへデータを書き込むために呼び出されてよい。エクスポートサービス1010は、エクスポートファイルに呼び出されてよい。管理サービス1012は、例えば、履歴データのアーカイブの作成、削除および移動等の履歴情報の管理を可能にする機能を提供する。
【0054】
図11は、履歴スキャナサーバ例1100と、履歴スキャナサーバ1100が実行時サービス702(図7)と履歴サービス1002(図10)と相互作動する方法を描く図である。図11に描かれているように、履歴スキャナサーバ1100は、それ独自のサービスのいずれも提供しないが、むしろ実行時サービス702と履歴サービス1002を使用する。
【0055】
図12および図13は、各々アラームイベントサーバ1200とOPCデータサーバ1300とを描いている。アラームイベントサーバ1200は、デコーダアクセスサービス1204、管理サービス1206、および構成サービス1208を含む複数のサービス1202を提供する。OPCデータサービス1300は、データアクセスサービス1304、管理サービス1306、および構成サービス1308を含む複数のサービス1302を提供する。
【0056】
図14は、本明細書に説明されているサービス指向型アーキテクチャ例が、クライアントアプリケーションと関連するユーザインタフェースディスプレイグラフィックスを変数、スクリプト、および/またはデータサービスまたはソースとリンクさせる、または結合させるために使用されてよい1つの方法の例を描く。図14に描かれているように、その内のいくつかまたはすべてが図2、図3、および図7から図13に関連して前述されたサービス例に類似した、または同一の方法で実現されてよい、例えばヒストリアンデータサービス1402、実行時サービス1404、および/または他のデータサービス1406等の1つ以上のデータサービス1400は、1つ以上の実行時プロセス1408にリンクされてよく、通信可能に結合されてよく、またそれ以外の場合は、動作可能に結合されてよい。実行時プロセス1408はあらゆる所望の実行時プロセスまたはアプリケーションを含んでよい。ただし、図14の例でのように、実行時プロセス1408は、ユーザが、プロセス制御パラメータ値、履歴プロセス関連情報、トレンド情報、保守情報、アラーム情報または警告情報等のプロセス制御データを見る、および/または修正することができるようにするグラフィックユーザインタフェースまたはディスプレイアプリケーション1410を含む。
【0057】
やはり図14に描かれているように、実行プロセス1408とデータサービス1400との間の通信結合またはリンケージは、データ結合動作またはプロセス1412およびデータソース(複数の場合がある)動作またはプロセス1414を使用して実現される。一般的に、実行時プロセス1408、データ結合プロセス1412およびデータソースプロセス1414は、例えばクライアント204(図2)によって実行されてよく、データサービス1400は例えばサーバ202(図2)によって実行されてよい。より詳細には、実行時プロセス1408、データ結合プロセス1412、およびデータソースプロセス1414を含むクライアント204(図2)と関連するプロセスは、マイクロソフト社(Microsoft Corporation)によって提供されているアバロン(Avalon)オペレーティングシステムフレームワークを使用して実現されてよい。アバロン(Avalon)フレームワークは周知であり、本明細書に説明されている装置、方法、および製品の例の理解を容易にするためにアバロン(Avalon)フレームワークの特定の態様のみが説明される。さらに、マイクロソフト社(Microsoft Corporation)によって提供されているアバロン(Avalon)フレームワークが本明細書に説明されている例を実現するための1つの特に有用なフレームワークである一方、アバロン(Avalon)フレームワークの代わりに、またはそれに加えて任意の他の適切なソフトウェアフレームワークが使用できるであろうことが理解されなければならない。
【0058】
より詳細に図14に目を向けると、データ結合関連プロセス1412は、より詳細に後述されるように変数、スクリプトおよびデータソースに対する参照を作成し、追跡調査するリソースマネージャ1416を含む。各ディスプレイ(例えばディスプレイ1410)は、専用のリソースマネージャインスタンス(例えばリソースマネージャ1416)によって管理されている。図14に示されるように、ディスプレイ例1410は、同様にコンテキスト1430の1つ以上の結合または結合オブジェクト1428を介してデータサービス1400の内の1つ以上に連結される、リンクされ、あるいは結合される1つ以上の変数1422、スクリプト(つまり実行可能なソフトウェアスクリプト)1424、およびデータソース参照1426と関連付けられたグラフィック要素1418と関連特性1420を含む。結合オブジェクト1428は、データソース(たとえば、データサービス1400の1つ以上)内のある特定のデータアイテムの位置の文字列表現を含んでよいため、結合オブジェクト1428はデータソースに特化している。さらに、文字列表現は実行時中に変更されてよいエイリアスに対する参照を含んでよい。図示されるように、コンテキスト1430は、実行時データソース1431と、後述されるデータソースマネージャ1432にも結合される。
【0059】
図14に描かれているように、リソースマネージャ1416はディスプレイ1410からデータコンテキストを取り出す。一般的に、データコンテキストは、要素1418をレンダリングする場合にディスプレイ1410によって使用される特性1420から構成されている。リソースマネージャ1416は、変数1422、スクリプト1424および参照1426の内の適切なものに、データコンテキストに関連する特性1420をマッピングする、関連させる、あるいはそれ以外の場合結び付けるように構成される。さらに、リソースマネージャ1416はさらに、結合1428、コンテキスト1430、およびデータソースマネージャ1432を介してデータサービス1400の内の1つ以上に特性1420をマッピングする、関連させる、あるいはそれ以外の場合結び付けるようにさらに構成されてよい。ディスプレイ1410の特性1420を変数1422、スクリプト1424、参照1426および/またはデータサービス1400に関連させるためにリソースマネージャ1416によって使用されるマッピングは、例えば構成エンジニアまたは任意の他のシステムユーザによってシステム構成動作の間に確立できる。このように、多くの公知のプロセス制御システムディスプレイまたはユーザインタフェースとは対照的に、ディスプレイ1410の実行時特性、またはさらに一般的には実行時プロセス1408は、実行時プロセス1408と関連するアプリケーションを構成するソフトウェアによって静的に定義される。逆に、リソースマネージャ1416は、ディスプレイ1410の特性1420と、変数1422、スクリプト1424、参照1426、および実行時のデータソース1400の内の1つ以上との間の関係性を確立するように構成される。
【0060】
動作中、リソースマネージャ1416は、変数、値、テキスト名等の変更に関する情報を受信してよい。いくつかの場合、データ変更はリソースマネージャ1416に提供されるデータコンテキストの変化を介して伝達されてよい。さらに具体的には、それらの場合、ユーザが開始した特性1420の内の1つ以上に対する変更は、変数1422および/または参照1426と関連する値の1つ以上を変更させるためにスクリプト1424の内の1つ以上を呼び出してよい。したがって、変更がデータサービス1400の内の1つ以上に記憶されるデータに関連する場合、リソースマネージャ1416により管理されるオブジェクトに対する変更は結合1428とコンテキストオブジェクト1430を介してデータサービス1400の内の適切な1つ以上に自動的に伝搬されてよい。他の場合、データ変更は(例えば、プロセス変数値の変更の結果として)データサービス1400の1つ以上の中で発生してよく、変更はリソースマネージャ1416によって提供されるマッピング機能を介して、特性1420の内の適切な1つにコンテキスト1430と結合1428を介して自動的に伝搬されてよい。
【0061】
データソースマネージャ1432は、データソースに関連する結合オブジェクト(例えば、結合オブジェクト1428)の集合体に関するクライアント状態情報を維持するために使用されるコンテキストオブジェクト(例えば、コンテキストオブジェクト1430)を作成、管理する。グラフィックユーザインタフェースと関連するディスプレイの場合、コンテキストオブジェクトとディスプレイの間には1対1の対応がある。言い換えると、ディスプレイごとに1つのコンテキストがあり、各々のコンテキストはそのディスプレイと関連する結合だけを含む。このように、図14の例では、コンテキストオブジェクト1430は一意にディスプレイ1410に対応する。
【0062】
コンテキストオブジェクトは、その内の一方はイベントベースであり、ありとあらゆるイベントに応えて更新を開始し、その内のもう一方が本来照合され、複数のデータ変更イベントを収集し、周期的に(例えば、タイマに基づいて)変更された結合アイテムのリストをタイマに応えてデータソースに送信することにより更新を始動するデータ更新機構も提供する。言うまでもなく、相対的に処理する多数のイベントがある場合、各イベントに個別に応えることは、実行時プロセス1408および全体的なプロセス制御システム(例えば、図1のプロセス制御システム10)の性能を害することがある(例えば、反応性の鈍化)。したがって、周期的に(データは変化したが、実行時プロセスにまだ渡されていない)不正な結合のリストに応答して、全体的な性能が改善されうる。コンテキストオブジェクト1430とデータサービス1400との間の接続は、例えばマイクロソフト社(Microsoft Corporation)によって提供されているインディゴ(Indigo)フレームワークを使用して実現されてよい。
【0063】
図14の例と関連する変更情報の流れはディスプレイ1410で開始され、リソースマネージャ1416、結合1428、データソースマネージャ1432およびコンテキスト1430を介してデータサービス1400の内の1つ以上に自動的に伝搬されるものとして説明されているが、データ変更情報は、代わりにまたは加えて、データサービス1400の内の1つ以上からディスプレイ1410に自動的に伝搬できるであろう。
【0064】
図15は、ユーザインタフェースディスプレイグラフィックスがデータサービスまたはソースにリンクされる、あるいは結合されてよい1つの方法の例を描いている。図15に描かれているように、ディスプレイ(例えばディスプレイを提供するアプリケーションまたは他の実行時エンティティ)1502は、同様にパラメータまたはディスプレイコンテンツ1506と関連付けられるディスプレイ要素またはグラフィックス1504を含む。ディスプレイ1502は、1つ以上のプロセス制御関連アプリケーションと関連するユーザインタフェースであってよく、その場合、グラフィックス1504は、例えばプロセス制御値、ポンプ、バルブ等のプロセス制御デバイスのグラフィック表現を保持するためのテキストボックス等のプロセス制御関連グラフィックスであってよい。ディスプレイコンテンツ1506は、(たとえば、ディスプレイグラフィックス1504がテキストボックスである場合の)テキスト情報、プロセス状態(例えば、赤は所定の限度に近づいている、あるいは超えたパラメータ値および/または是正処置を講じる必要性を示してよい)を表す色(例えば、複数の塗り潰し色の内の1つ)、グラフィック要素(例えば、ファンまたはポンプインペラ)の回転速度、振動、移動等するモータまたは他のデバイスの三次元ビュー、および/または任意の他のコンテンツを含んでよい。
【0065】
ディスプレイ1502は、同様にプロセスコンテキスト1510とプロセス結合1512に通信可能にまたは動作可能に結合されるリソースマネージャインスタンス1508に通信可能に、または動作可能に結合される。プロセスコンテキスト1510は、プロセス結合1512に照合されたデータ変更通知またはイベント駆動データ変更通知を提供するように構成されてよい。プロセス結合1512は、データソースまたはサービスの中の固定メモリ位置のデータを参照してよい、および/またはデータソースまたはサービス内のデータのエイリアスを参照してよい。プロセス結合1512は結合オブジェクト1514を介してディスプレイコンテンツ1506に通信可能に、または動作可能に結合される。
【0066】
動作中、リソースマネージャ1508は、ディスプレイグラフィックス1504とディスプレイコンテンツ1506をレンダリングするためにディスプレイ1502によって使用されるデータコンテキストまたはパラメータを保持する。リソースマネージャ1508は、ディスプレイ1502と関連する特性の少なくとも1つを、プロセスコンテキスト1510により提供されるデータにマップする、関係させる、またはその他関連させて、データサービス(たとえば、図14に図示されるデータサービス1400の内の1つ)内に記憶されるデータのためのデータランディングサイトを提供する。言い換えると、プロセスコンテキスト1510は、例えばコンテキストオブジェクト1430(図14)等のコンテキストオブジェクト、したがってデータサービスまたは他のデータソースからの情報をリソースマネージャ1508に、そして最終的にはディスプレイコンテンツ1506、したがってディスプレイ1502に動作可能にまたは通信可能に結合するための機能を使用して実現されてよい。プロセスコンテキスト1510は、プロセス結合1512に対して照合された方法で(例えば変更されたデータ情報の集合体を周期的に送信する)、あるいは各データ変更イベントに応えてプロセス結合1512にデータ変更情報を送信するように構成されてよい。プロセスコンテキスト1510は、リソースマネージャ1508が変更通知を必要とするデータのプロセスコンテキスト1510を通知する情報をリソースマネージャ1508から受信するように構成される。このようにプロセスコンテキスト1510はリソースマネージャ1508により保持されるディスプレイ1502のデータコンテキストと関連するデータに関係するデータ変更通知だけを提供するように構成されてよい。いずれの場合でも、プロセス結合1512が1つ以上のデータ値が変更した旨の通知をプロセスコンテキスト1510から受信すると、プロセス結合1512は(結合1514を介して)ディスプレイコンテンツ1506に新しい値(複数の場合がある)を結合してから、リソースマネージャ1508に変更通知を提供する。プロセス結合1512から変更通知を受信すると、リソースマネージャ1508はディスプレイ1502上で特性変更メソッドを呼び出し、それによりディスプレイ1502に新規に結合されたデータを組み込むために更新させる。
【0067】
本明細書に説明されている機能ブロック又はオペレーションは、ソフトウェア、ファームウェアおよびハードウェアの任意の所望の組み合わせを使用して実現されてよい。例えば、1台以上のマイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)等は、メソッドを実施するため、本明細書に説明される装置を実現するために機械またはプロセッサがアクセス可能な機能媒体上に記憶されている命令またはデータにアクセスしてよい。記憶媒体は、例えばランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能ROM(EEPROM)等を含むソリッドステート記憶媒体、光記憶媒体、磁気記憶媒体等のデバイスおよび/または媒体の任意の組み合わせを含んでよい。加えて、機能ブロックを実現するために使用されるソフトウェアは、さらにまたは代わりに、インターネット、電話回線、衛星通信等を介してソフトウェアを実行するプロセッサまたは他の1台以上のデバイスに送達され、それらによってアクセスされてよい。
【0068】
図16は、本明細書に説明される装置および方法を実現するために使用されてよいプロセッサシステム例1602を描く。プロセッサベースのシステム例1602は、例えば、サーバ、パソコン、または任意の他のタイプのコンピューティング装置であってよい。
【0069】
プロセッサ1600は、例えば、ペンティアム(登録商標)(Pentium(登録商標))ファミリ、アイテニアム(Itanium)(登録商標)ファミリ、またはXScale(登録商標)ファミリの1台以上のインテル(Intel)(登録商標)マイクロプロセッサを使用して実現されてよい。言うまでもなく、他のファミリおよび企業の他のプロセッサも適切である。プロセッサ1600は、バス1608を介して揮発性メモリ1604および不揮発性メモリ1606を含むメインメモリと通信している。揮発性メモリ1604は、同期型DRAM(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックアクセスメモリ(RDRAM)および/または任意の他のタイプのランダムアクセスメモリデバイスによって実現されてよい。不揮発性メモリ1606は、フラッシュメモリおよび/または任意の他の所望のタイプの不揮発性メモリデバイスによって実現されてよい。メモリ1604に対するアクセスは、通常、従来の方法でメモリコントローラ(不図示)によって制御されている。
【0070】
システム1602はインタフェース回路1610も含む。インタフェース回路1610は、例えば、システム1602が図1のリンク24、32、40、42、46および48の内の1つ以上を介して通信可能にきるようにするための任意のタイプの周知のインタフェース規格によって実現されてよい。
【0071】
システム1602は、ソフトウェアおよび/またはデータを記憶するために1台以上の大量記憶装置1618も含む。このような大量記憶装置の例はフロッピー(登録商標)ディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、およびデジタル多用途ディスク(DVD)ドライブを含む。
【0072】
特定の方法および装置および製品が本明細書に説明されてきたが、本特許の範囲はそれに限定されない。むしろ本明細書は、字句通りに、または均等論の元でのいずれかにより添付請求項の範囲内に該当するすべての方法、装置および製品をカバーする。
【図面の簡単な説明】
【0073】
【図1】本明細書に説明されるサービス指向型アーキテクチャを使用するプロセス制御システム例のブロック図である。
【図2】図1のプロセス制御システム例の中で使用されてよいサービス指向型アーキテクチャ例を描くブロック図である。
【図3】図2のアーキテクチャ例によって提供されるディスカバリサービスと実行時サーバとの間の関係性を描く図である。
【図4】図3のディスカバリサービスとそのホスト側サーバが図3のデータアクセスサービスとそのホスト側サーバと相互作動する1つの方法を描くフロー図である。
【図5】図3のディスカバリサービスがそれによってサービスを配置するプロセス例である。
【図6】セッションサービスのインプリメンテーション例を描く図である。
【図7】図3の実行時サーバ例によって提供されてよい実行時サービスのより詳細な線図である。
【図8】図6のデータベースサーバによって提供されてよいデータベースサービス例のより詳細な線図である。
【図9】図6のバージョン制御サーバ、バージョンサーバおよびデータベースサーバが相互作動する方法の例を描く図である。
【図10】複数の履歴サービスを提供してよい履歴サーバ例の線図である。
【図11】履歴スキャナサーバ例と、履歴スキャナサーバがいかにして図7の実行時サービス例と図10の履歴サービス例と相互作動してよいのかを描く図である。
【図12】本明細書に説明されているサービス指向型アーキテクチャ例を実現するために使用されてよいアラームおよびイベントサーバ例を描く。
【図13】本明細書に説明されているサービス指向型アーキテクチャ例を実現するために使用されてよいOPCデータサーバ例を描く。
【図14】本明細書に説明されているサービス指向型アーキテクチャ例がデータサービスまたはソースに、クライアントアプリケーションと関連する実行時プロセスをリンクする、または結び付けるために使用されてよい1つの方法の例を描く。
【図15】ユーザインタフェースがデータサービスまたはソースとリンク、あるいは結び付けられてよい1つの方法のより詳細な例を描く。
【図16】本明細書に説明されている装置および方法を実現するために使用されてよいプロセッサシステム例を描く。
【特許請求の範囲】
【請求項1】
プロセス制御システム内のクライアントプロセスとサーバプロセスとの間でプロセス制御情報を伝達する方法であって、
各々が対応するサービスインタフェースを有する、独立してバージョニングされる複数のプロセス制御サービスを含む該サーバプロセスを確立することと、
該クライアントプロセスが通信接続を確立する該複数のサービスの各々にプロキシを有する該クライアントプロセスを確立することと、
該クライアントプロセスと該サーバプロセスとの間のプロセス制御情報の該伝達を可能にするために、該クライアントプロセスに該サービスインタフェースに関連する端点情報を提供することと、
該クライアントプロセスに関連付けられたデータコンテキストをリソースマネージャに提供することと、
該リソースマネージャを介して該クライアントプロセスの少なくとも1つの要素又はプロパティをデータソースリファレンスに関連づけることと、
該データコンテキストに関連付けられたむすびつけるオブジェクトを介して該データソースリファレンスを、該プロセスコントロールサービスの1つによって提供されたデータソースにむすびつけることであって、プロセスコントロール情報が、該クライアントプロセスと該プロセスコントロールサービスの1つとの間に伝えられる、該むすびつけることと、
を備える方法。
【請求項2】
該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供することが、該クライアントプロセスにユニフォームリソース識別子を提供することを備える請求項1に記載の方法。
【請求項3】
該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供することが、該端点情報を位置決めするディスカバリサービスを呼び出すことを備える請求項1に記載の方法。
【請求項4】
該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供することが、該ディスカバリサービスからユニフォームリソース識別子を受信することを備える請求項3に記載の方法。
【請求項5】
該端点情報および該プロキシの内の少なくとも1つに基づいて該サーバプロセス内の該クライアントプロセスのためのセッションを確立することをさらに備える請求項1に記載の方法。
【請求項6】
別のサーバプロセスを確立することと、該クライアントプロセスと該他のサービスプロセスの間で情報を伝達することとをさらに備える請求項1に記載の方法。
【請求項7】
プロセス制御システムのクライアントプロセスとサーバプロセスとの間でプロセス制御情報を伝達するための装置であって、
メモリに結合されるプロセッサであって、
各々が対応するサービスインタフェースを有する独立してバージョニングされる複数のプロセス制御サービスを含む該サーバプロセスを確立する、
該クライアントプロセスが通信接続を確立する該複数のサービス各々のためのプロキシを有する該クライアントプロセスを確立する、
該クライアントプロセスと該サーバプロセスとの間のプロセス制御情報の伝達を可能にするために、該サービスインタフェースと関連する端点情報を該クライアントプロセスに提供する、
該クライアントプロセスに関連付けられたデータコンテキストをリソースマネージャに提供する、
該リソースマネージャを介して該クライアントプロセスの少なくとも1つの要素又はプロパティをデータソースリファレンスに関連づける、および
該データコンテキストに関連付けられたむすびつけるオブジェクトを介して該データソースリファレンスを、該プロセスコントロールサービスの1つによって提供されたデータソースにむすびつける
ようにプログラミングされ、
プロセスコントロール情報が、該クライアントプロセスと該プロセスコントロールサービスの1つとの間に伝えられる、該プロセッサと、
を備える装置。
【請求項8】
該プロセッサが、該クライアントプロセスにユニフォームリソース識別子を提供することにより、該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供するようにプログラミングされる請求項7に記載の装置。
【請求項9】
該プロセッサが、該端点情報を位置決めするディスカバリサービスを呼び出すことにより、該サービスインタフェースと関連する該端点情報を該クライアントプロセスに提供するようにプログラミングされる請求項7に記載の装置。
【請求項10】
該プロセッサが、該ディスカバリサービスからユニフォームリソース識別子を受信することにより、該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供するようにプログラミングされる請求項9に記載の装置。
【請求項11】
該プロセッサが、該端点情報と該プロキシの内の少なくとも1つに基づいて該サーバプロセスで該クライアントプロセスのためのセッションを確立するようにプログラミングされる請求項7に記載の装置。
【請求項12】
該プロセッサが、別のサービスプロセスを確立し、該クライアントプロセスと該他のサーバプロセスとの間で情報を伝達するようにプログラミングされる請求項7に記載の装置。
【請求項13】
実行時に機械に行わせる命令を格納する機械可読媒体であって、該機械に、
各々が対応するサービスインタフェースを有する独立してバージョニングされる複数のプロセス制御サービスを含むサーバプロセスを確立させ、
該クライアントプロセスが通信接続を確立する該複数のサービス各々のためにプロキシを有するクライアントプロセスを確立させ、
該クライアントプロセスと該サーバプロセスとの間のプロセス制御情報の伝達を可能にするために、該サービスインタフェースに関連する端点情報を該クライアントプロセスに提供させる
該クライアントプロセスに関連付けられたデータコンテキストをリソースマネージャに提供させ、
該リソースマネージャを介して該クライアントプロセスの少なくとも1つの要素又はプロパティをデータソースリファレンスに関連づけさせ、
該データコンテキストに関連付けられたむすびつけるオブジェクトを介して該データソースリファレンスを、該プロセスコントロールサービスの1つによって提供されたデータソースにむすびつけさせると共に、
プロセスコントロール情報が、該クライアントプロセスと該プロセスコントロールサービスの1つとの間に伝えられる、該機械読取可能媒体。
【請求項14】
該命令が、実行時に、該機械に、該クライアントプロセスにユニフォームリソース識別子を提供することにより、該サービスインタフェースと関連する該端点情報を該クライアントプロセスに提供させる請求項13に記載の機械読取可能媒体。
【請求項15】
該命令が、実行時に、該機械に、該端点情報を位置決めするディスカバリサービスを呼び出すことにより、該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供させる請求項13に記載の機械読取可能媒体。
【請求項16】
該命令が、実行時に、該機械に、該ディスカバリサービスからユニフォームリソース識別子を受信することにより、該サービスインタフェースと関連する該端点情報を該クライアントプロセスに提供させる請求項15に記載の機械読取可能媒体。
【請求項17】
該命令が、実行時に、該機械に、該端点情報と該プロキシの内の少なくとも1つに基づいて該サーバプロセスで該クライアントプロセスのためのセッションを確立させる請求項13に記載の機械読取可能媒体。
【請求項18】
該命令が、実行時に、該機械に、別のサーバプロセスを確立させ、該クライアントプロセスと該他のサーバプロセスとの間で情報を伝達させる請求項13に記載の機械読取可能媒体。
【請求項19】
プロセス制御情報を通信するための装置であって、
通信ポートと、複数のサービスインタフェースと、該サービスインタフェースに対応する独立してバージョニングされる複数のプロセス制御サービスとを有するサーバと、
各々が該複数のサービスインタフェースの内の1つに対応し、各々が該通信ポートを介してプロセス制御情報を通信するように構成される複数のサービスインタフェースプロキシを有するクライアントと、
を備え、
前記クライアントは、
該クライアントプロセスに関連付けられたデータコンテキストをリソースマネージャに提供し、
該リソースマネージャを介して該クライアントプロセスの少なくとも1つの要素又はプロパティをデータソースリファレンスに関連づけ、
該データコンテキストに関連付けられたむすびつけるオブジェクトを介して該データソースリファレンスを、該プロセスコントロールサービスの1つによって提供されたデータソースにむすびつけると共に、
プロセスコントロール情報が、該クライアントプロセスと該プロセスコントロールサービスの1つとの間に伝えられる装置。
【請求項20】
別の複数のサービスを該クライアントに提供するように構成される別のサーバをさらに備える請求項19に記載の装置。
【請求項21】
該クライアントが、該複数のプロセス制御サービスの内の少なくとも1つと相互作動するように構成される少なくとも1つのプロセス制御アプリケーションを備える請求項19に記載の装置。
【請求項22】
プロセス制御システム内でプロセス制御サービスを登録する方法であって、
該プロセス制御システム内でディスカバリサービスを確立することと、
ポート番号を割り当て、該プロセス制御サービスと関連する識別子を作成するために実行時サーバを使用することと、
ディスカバリプロキシを介して該実行時サーバから該ディスカバリサービスに該ポート番号と該識別子を伝達することにより該プロセス制御システム内で該プロセス制御サービスを登録することと、
を備え、
前記プロセス制御サービスは独立してバージョニングされる、
方法。
【請求項1】
プロセス制御システム内のクライアントプロセスとサーバプロセスとの間でプロセス制御情報を伝達する方法であって、
各々が対応するサービスインタフェースを有する、独立してバージョニングされる複数のプロセス制御サービスを含む該サーバプロセスを確立することと、
該クライアントプロセスが通信接続を確立する該複数のサービスの各々にプロキシを有する該クライアントプロセスを確立することと、
該クライアントプロセスと該サーバプロセスとの間のプロセス制御情報の該伝達を可能にするために、該クライアントプロセスに該サービスインタフェースに関連する端点情報を提供することと、
該クライアントプロセスに関連付けられたデータコンテキストをリソースマネージャに提供することと、
該リソースマネージャを介して該クライアントプロセスの少なくとも1つの要素又はプロパティをデータソースリファレンスに関連づけることと、
該データコンテキストに関連付けられたむすびつけるオブジェクトを介して該データソースリファレンスを、該プロセスコントロールサービスの1つによって提供されたデータソースにむすびつけることであって、プロセスコントロール情報が、該クライアントプロセスと該プロセスコントロールサービスの1つとの間に伝えられる、該むすびつけることと、
を備える方法。
【請求項2】
該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供することが、該クライアントプロセスにユニフォームリソース識別子を提供することを備える請求項1に記載の方法。
【請求項3】
該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供することが、該端点情報を位置決めするディスカバリサービスを呼び出すことを備える請求項1に記載の方法。
【請求項4】
該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供することが、該ディスカバリサービスからユニフォームリソース識別子を受信することを備える請求項3に記載の方法。
【請求項5】
該端点情報および該プロキシの内の少なくとも1つに基づいて該サーバプロセス内の該クライアントプロセスのためのセッションを確立することをさらに備える請求項1に記載の方法。
【請求項6】
別のサーバプロセスを確立することと、該クライアントプロセスと該他のサービスプロセスの間で情報を伝達することとをさらに備える請求項1に記載の方法。
【請求項7】
プロセス制御システムのクライアントプロセスとサーバプロセスとの間でプロセス制御情報を伝達するための装置であって、
メモリに結合されるプロセッサであって、
各々が対応するサービスインタフェースを有する独立してバージョニングされる複数のプロセス制御サービスを含む該サーバプロセスを確立する、
該クライアントプロセスが通信接続を確立する該複数のサービス各々のためのプロキシを有する該クライアントプロセスを確立する、
該クライアントプロセスと該サーバプロセスとの間のプロセス制御情報の伝達を可能にするために、該サービスインタフェースと関連する端点情報を該クライアントプロセスに提供する、
該クライアントプロセスに関連付けられたデータコンテキストをリソースマネージャに提供する、
該リソースマネージャを介して該クライアントプロセスの少なくとも1つの要素又はプロパティをデータソースリファレンスに関連づける、および
該データコンテキストに関連付けられたむすびつけるオブジェクトを介して該データソースリファレンスを、該プロセスコントロールサービスの1つによって提供されたデータソースにむすびつける
ようにプログラミングされ、
プロセスコントロール情報が、該クライアントプロセスと該プロセスコントロールサービスの1つとの間に伝えられる、該プロセッサと、
を備える装置。
【請求項8】
該プロセッサが、該クライアントプロセスにユニフォームリソース識別子を提供することにより、該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供するようにプログラミングされる請求項7に記載の装置。
【請求項9】
該プロセッサが、該端点情報を位置決めするディスカバリサービスを呼び出すことにより、該サービスインタフェースと関連する該端点情報を該クライアントプロセスに提供するようにプログラミングされる請求項7に記載の装置。
【請求項10】
該プロセッサが、該ディスカバリサービスからユニフォームリソース識別子を受信することにより、該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供するようにプログラミングされる請求項9に記載の装置。
【請求項11】
該プロセッサが、該端点情報と該プロキシの内の少なくとも1つに基づいて該サーバプロセスで該クライアントプロセスのためのセッションを確立するようにプログラミングされる請求項7に記載の装置。
【請求項12】
該プロセッサが、別のサービスプロセスを確立し、該クライアントプロセスと該他のサーバプロセスとの間で情報を伝達するようにプログラミングされる請求項7に記載の装置。
【請求項13】
実行時に機械に行わせる命令を格納する機械可読媒体であって、該機械に、
各々が対応するサービスインタフェースを有する独立してバージョニングされる複数のプロセス制御サービスを含むサーバプロセスを確立させ、
該クライアントプロセスが通信接続を確立する該複数のサービス各々のためにプロキシを有するクライアントプロセスを確立させ、
該クライアントプロセスと該サーバプロセスとの間のプロセス制御情報の伝達を可能にするために、該サービスインタフェースに関連する端点情報を該クライアントプロセスに提供させる
該クライアントプロセスに関連付けられたデータコンテキストをリソースマネージャに提供させ、
該リソースマネージャを介して該クライアントプロセスの少なくとも1つの要素又はプロパティをデータソースリファレンスに関連づけさせ、
該データコンテキストに関連付けられたむすびつけるオブジェクトを介して該データソースリファレンスを、該プロセスコントロールサービスの1つによって提供されたデータソースにむすびつけさせると共に、
プロセスコントロール情報が、該クライアントプロセスと該プロセスコントロールサービスの1つとの間に伝えられる、該機械読取可能媒体。
【請求項14】
該命令が、実行時に、該機械に、該クライアントプロセスにユニフォームリソース識別子を提供することにより、該サービスインタフェースと関連する該端点情報を該クライアントプロセスに提供させる請求項13に記載の機械読取可能媒体。
【請求項15】
該命令が、実行時に、該機械に、該端点情報を位置決めするディスカバリサービスを呼び出すことにより、該サービスインタフェースに関連する該端点情報を該クライアントプロセスに提供させる請求項13に記載の機械読取可能媒体。
【請求項16】
該命令が、実行時に、該機械に、該ディスカバリサービスからユニフォームリソース識別子を受信することにより、該サービスインタフェースと関連する該端点情報を該クライアントプロセスに提供させる請求項15に記載の機械読取可能媒体。
【請求項17】
該命令が、実行時に、該機械に、該端点情報と該プロキシの内の少なくとも1つに基づいて該サーバプロセスで該クライアントプロセスのためのセッションを確立させる請求項13に記載の機械読取可能媒体。
【請求項18】
該命令が、実行時に、該機械に、別のサーバプロセスを確立させ、該クライアントプロセスと該他のサーバプロセスとの間で情報を伝達させる請求項13に記載の機械読取可能媒体。
【請求項19】
プロセス制御情報を通信するための装置であって、
通信ポートと、複数のサービスインタフェースと、該サービスインタフェースに対応する独立してバージョニングされる複数のプロセス制御サービスとを有するサーバと、
各々が該複数のサービスインタフェースの内の1つに対応し、各々が該通信ポートを介してプロセス制御情報を通信するように構成される複数のサービスインタフェースプロキシを有するクライアントと、
を備え、
前記クライアントは、
該クライアントプロセスに関連付けられたデータコンテキストをリソースマネージャに提供し、
該リソースマネージャを介して該クライアントプロセスの少なくとも1つの要素又はプロパティをデータソースリファレンスに関連づけ、
該データコンテキストに関連付けられたむすびつけるオブジェクトを介して該データソースリファレンスを、該プロセスコントロールサービスの1つによって提供されたデータソースにむすびつけると共に、
プロセスコントロール情報が、該クライアントプロセスと該プロセスコントロールサービスの1つとの間に伝えられる装置。
【請求項20】
別の複数のサービスを該クライアントに提供するように構成される別のサーバをさらに備える請求項19に記載の装置。
【請求項21】
該クライアントが、該複数のプロセス制御サービスの内の少なくとも1つと相互作動するように構成される少なくとも1つのプロセス制御アプリケーションを備える請求項19に記載の装置。
【請求項22】
プロセス制御システム内でプロセス制御サービスを登録する方法であって、
該プロセス制御システム内でディスカバリサービスを確立することと、
ポート番号を割り当て、該プロセス制御サービスと関連する識別子を作成するために実行時サーバを使用することと、
ディスカバリプロキシを介して該実行時サーバから該ディスカバリサービスに該ポート番号と該識別子を伝達することにより該プロセス制御システム内で該プロセス制御サービスを登録することと、
を備え、
前記プロセス制御サービスは独立してバージョニングされる、
方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−33201(P2012−33201A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2011−248618(P2011−248618)
【出願日】平成23年11月14日(2011.11.14)
【分割の表示】特願2007−511521(P2007−511521)の分割
【原出願日】平成17年5月3日(2005.5.3)
【出願人】(506266023)フィッシャー−ローズマウント・システムズ・インコーポレーテッド (37)
【氏名又は名称原語表記】Fisher−Rosemount Systems, Inc.
【Fターム(参考)】
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願日】平成23年11月14日(2011.11.14)
【分割の表示】特願2007−511521(P2007−511521)の分割
【原出願日】平成17年5月3日(2005.5.3)
【出願人】(506266023)フィッシャー−ローズマウント・システムズ・インコーポレーテッド (37)
【氏名又は名称原語表記】Fisher−Rosemount Systems, Inc.
【Fターム(参考)】
[ Back to top ]