特許第5723105号(P5723105)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ フィッシャー−ローズマウント システムズ,インコーポレイテッドの特許一覧

特許5723105インターフェースアクセス制御に階層型セキュリティを提供する方法および装置
<>
  • 特許5723105-インターフェースアクセス制御に階層型セキュリティを提供する方法および装置 図000002
  • 特許5723105-インターフェースアクセス制御に階層型セキュリティを提供する方法および装置 図000003
  • 特許5723105-インターフェースアクセス制御に階層型セキュリティを提供する方法および装置 図000004
  • 特許5723105-インターフェースアクセス制御に階層型セキュリティを提供する方法および装置 図000005
  • 特許5723105-インターフェースアクセス制御に階層型セキュリティを提供する方法および装置 図000006
  • 特許5723105-インターフェースアクセス制御に階層型セキュリティを提供する方法および装置 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5723105
(24)【登録日】2015年4月3日
(45)【発行日】2015年5月27日
(54)【発明の名称】インターフェースアクセス制御に階層型セキュリティを提供する方法および装置
(51)【国際特許分類】
   G06F 21/62 20130101AFI20150507BHJP
【FI】
   G06F21/62 318
【請求項の数】19
【全頁数】33
(21)【出願番号】特願2010-92131(P2010-92131)
(22)【出願日】2010年4月13日
(65)【公開番号】特開2010-250825(P2010-250825A)
(43)【公開日】2010年11月4日
【審査請求日】2013年4月5日
(31)【優先権主張番号】61/169,199
(32)【優先日】2009年4月14日
(33)【優先権主張国】US
(31)【優先権主張番号】12/637,439
(32)【優先日】2009年12月14日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】512132022
【氏名又は名称】フィッシャー−ローズマウント システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】リー アレン ニーツェル
(72)【発明者】
【氏名】ダン ハルバー アッシング
(72)【発明者】
【氏名】ロバート ケント フーバ
【審査官】 宮司 卓佳
(56)【参考文献】
【文献】 特開2003−023676(JP,A)
【文献】 特開2003−186764(JP,A)
【文献】 特開2002−366415(JP,A)
【文献】 米国特許出願公開第2008/0301794(US,A1)
【文献】 特表2004−531914(JP,A)
【文献】 特開2008−083906(JP,A)
【文献】 特開2003−140704(JP,A)
【文献】 特表2007−520797(JP,A)
【文献】 特開2007−323340(JP,A)
【文献】 特開2004−127172(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F21/00−21/88
(57)【特許請求の範囲】
【請求項1】
インターフェースアクセス制御に階層型セキュリティを提供する方法であって、
少なくとも1つのサーバエンドポイントにアクセスする接続メッセージを、クライアントアプリケーションから第1サーバで受信するステップであって、前記少なくとも1つのサーバエンドポイントは、前記接続メッセージのための少なくとも1つのリソースへのアクセスポイントを提供する、前記接続メッセージを受信するステップと、
前記接続メッセージの受信に応答して、前記少なくとも1つのサーバエンドポイントと前記クライアントアプリケーションとの間のセッションを、前記セッションをオープンすることが承認されている場合、オープンするステップと、
前記少なくとも1つのリソースへの、き込みアクセス提供するエンドポイントをオープンする要求を、前記クライアントアプリケーションから受信するステップと、
前記クライアントアプリケーションが、前記エンドポイントを介して、前記少なくとも1つのリソースにアクセスすることが承認されていることを判断した後に、前記オープンされたセッション内で、前記エンドポイントをオープンするステップと、
前記少なくとも1つの承認されたリソースの選択を前記エンドポイントに割り当てる要求を前記クライアントアプリケーションから受信するステップと、
前記少なくとも1つの選択されたリソースを前記エンドポイントに割り当てるステップと、
前記エンドポイントを介して、前記クライアントアプリケーションが、前記少なくとも1つのリソースにアクセスすることを許可するステップと、を含む方法。
【請求項2】
前記少なくとも1つのリソースが前記クライアントアプリケーションによってアクセスされることが承認されている場合、前記クライアントアプリケーションに、前記少なくとも1つのリソースのリストを提供するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記クライアントアプリケーションが前記少なくとも1つのリソースにアクセスすることを許可するステップが、前記クライアントアプリケーションに、書き込みアクセス、読み出しアクセス、またはサブスクライブアクセスの少なくとも1つを許可するステップを含む、請求項1または請求項2に記載の方法。
【請求項4】
前記接続メッセージを前記第1サーバで受信するステップの前に、前記第1サーバの少なくとも1つのサーバエンドポイントを発見するサーバ発見要求メッセージを前記クライアントアプリケーションから第2サーバで受信するステップと、
前記サーバ発見要求メッセージを受信するステップに応答して、前記クライアントアプリケーションによりアクセスされることが承認された前記少なくとも1つのサーバエンドポイントを判断するステップと、
前記少なくとも1つの判断されたサーバエンドポイントを前記クライアントアプリケーションに提供するステップと、をさらに含む、請求項1〜請求項3の何れか1項に記載の方法。
【請求項5】
前記少なくとも1つの選択されたリソースに、少なくとも1つの識別子または1対の識別子を割り当てるステップと、
前記少なくとも1つの識別子または前記1対の識別子を前記セッションに関連付けるステップと、
前記少なくとも1つの識別子または前記1対の識別子を、前記クライアントアプリケーションに伝送するステップと、をさらに含む、請求項1〜請求項4の何れか1項に記載の方法。
【請求項6】
前記識別子が、前記識別子により識別される前記少なくとも1つのリソースを第三者により判断されることから保護する、動的に割り当てられた別名識別子である、請求項5に記載の方法。
【請求項7】
時間周期または前記クライアントアプリケーションからの前記セッションを終了する停止要求メッセージの少なくとも1つの後に、前記セッションを終了するステップをさらに含む、請求項1〜請求項6の何れか1項に記載の方法。
【請求項8】
前記少なくとも1つのリソースが、データ、アラーム、またはイベントの少なくとも1つを含む請求項1〜請求項7の何れか1項に記載の方法。
【請求項9】
インターフェースアクセス制御に階層型セキュリティを提供する装置であって、前記装置は、
接続メッセージのための少なくとも1つのリソースへのアクセスポイントを提供する少なくとも1つのサーバエンドポイントにアクセスする前記接続メッセージをクライアントアプリケーションから受信し、
前記接続メッセージの受信に応答して、前記少なくとも1つのサーバエンドポイントと、前記クライアントアプリケーションとの間のセッションを、前記セッションがオープンされることが承認されている場合、オープンし、
き込みアクセス少なくとも1つのリソースに提供するエンドポイントをオープンする要求を前記クライアントアプリケーションから受信し、
前記クライアントアプリケーションが、前記エンドポイントを介して、前記少なくとも1つのリソースにアクセスすることが承認されていることを判断した後、前記オープンされたセッション内の前記エンドポイントをオープンし、
前記少なくとも1つの承認されたリソースの選択を前記エンドポイントに割り当てる要求を前記クライアントアプリケーションから受信し
前記少なくとも1つの選択されたリソースを前記エンドポイントに割り当て、
前記クライアントアプリケーションが、前記エンドポイントを介して、前記少なくとも1つのリソースにアクセスすることを許可するようプログラムされた、第1サーバを備える装置。
【請求項10】
前記少なくとも1つのリソースが前記クライアントアプリケーションによりアクセスされることが承認されている場合、前記第1サーバは、前記クライアントアプリケーションに、前記少なくとも1つのリソースのリストを提供する、請求項9に記載の装置。
【請求項11】
前記第1サーバは、前記クライアントアプリケーションに、書き込みアクセス、読み出しアクセス、またはサブスクライブアクセスの少なくとも1つを許可することにより、前記クライアントアプリケーションが前記少なくとも1つのリソースにアクセスすることを許可する、請求項9または請求項10に記載の装置。
【請求項12】
請求項9〜請求項11の何れか1項に記載の装置であって、前記装置は、
前記第1サーバの少なくとも1つのサーバエンドポイントを発見するサーバ発見要求メッセージを前記クライアントアプリケーションから受信し、
前記サーバ発見要求メッセージの受信に応答して、前記クライアントアプリケーションによりアクセスされることが承認された前記少なくとも1つのサーバエンドポイントを判断し、
前記少なくとも1つの判断されたサーバエンドポイントを前記クライアントアプリケーションに提供する、第2サーバをさらに備える装置。
【請求項13】
前記第1サーバは、
前記エンドポイントを介して前記クライアントアプリケーションから情報を受信し、
前記エンドポイントを介して、対応する前記少なくとも1つの選択されたリソースに前記情報を保存する、請求項9〜請求項12の何れか1項に記載の装置。
【請求項14】
前記少なくとも1つのリソースが前記クライアントアプリケーションによりアクセスされることが承認されていない場合、前記第1サーバは、前記クライアントアプリケーションが、前記サーバエンドポイントを介して利用可能である前記少なくとも1つのリソースにアクセスすることを拒否する、請求項9〜請求項13の何れか1項に記載の装置。
【請求項15】
機械アクセス可能媒体上に保存された命令を有する前記機械アクセス可能媒体であって、前記命令は、実行時に、
接続メッセージのための少なくとも1つのリソースへのアクセスポイントを提供する少なくとも1つのサーバエンドポイントにアクセスする前記接続メッセージをクライアントアプリケーションから第1サーバで受信することと、
前記接続メッセージの受信に応じて、前記少なくとも1つのサーバエンドポイントと前記クライアントアプリケーションとの間のセッションを、前記セッションがオープンされることが承認されている場合、オープンすることと、
前記少なくとも1つのリソースに対して、き込みアクセス提供するエンドポイントをオープンする要求を前記クライアントアプリケーションから受信することと、
前記クライアントアプリケーションが前記エンドポイントを介して、前記少なくとも1つのリソースにアクセスすることが承認されていることを判断した後、前記オープンされたセッション内で前記エンドポイントをオープンすることと、
前記少なくとも1つの承認されたリソースの選択を前記エンドポイントに割り当てる要求を前記クライアントアプリケーションから受信することと、
前記少なくとも1つの選択されたリソースを前記エンドポイントに割り当てることと、
前記クライアントアプリケーションが前記エンドポイントを介して前記少なくとも1つのリソースにアクセスすることを許可することとを機械に実行させる、機械アクセス可能媒体。
【請求項16】
前記命令は実行時に、前記クライアントアプリケーションからオープンエンドポイント要求メッセージを受信することに応答して、前記エンドポイントをオープンすることを前記機械に実行させる、請求項15に記載の機械アクセス可能媒体。
【請求項17】
前記命令は実行時に、前記エンドポイントの選択または前記エンドポイントの作成の少なくとも1つを行うことにより、前記エンドポイントをオープンすることを前記機械に実行させる、請求項15又は請求項16に記載の機械アクセス可能媒体。
【請求項18】
前記命令は実行時に、
前記少なくとも1つの識別子または1対の識別子を前記少なくとも1つの選択されたリソースに割り当てることと、
前記少なくとも1つの識別子または前記1対の識別子を前記セッションに関連付けることと、
前記少なくとも1つの識別子または前記1対の識別子を前記クライアントアプリケーションに伝送することとを前記機械に実行させる、請求項15〜請求項17の何れか1項に記載の機械アクセス可能媒体。
【請求項19】
前記命令は実行時に
前記エンドポイントを介して、前記クライアントアプリケーションから情報を受信することと、
前記情報を前記エンドポイントを介して、応する前記少なくとも1つの選択されたリソースに保存することとを前記機械に実行させる、請求項15〜請求項18の何れか1項に記載の機械アクセス可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は2009年4月14に出願された米国仮特許出願第61/169199号の利益を主張するものであり、米国仮特許出願第61/169199号の全体は参照することにより本明細書に援用される。
【0002】
本発明は、全般にデータシステムに関し、特にインターフェースアクセス制御に階層型セキュリティを提供する方法および装置に関する。
【背景技術】
【0003】
プロセス制御システム、製造オートメーションシステム、ならびに化学、石油、およびその他のプロセスに用いられる他の工業システム等のデータシステムは一般に、少なくとも1つのホスト、オペレータ、及び/又はユーザワークステーションと、1つまたは複数のフィールドデバイスとに、アナログ、デジタル、またはアナログ・デジタル混合バスを介して通信可能に接続される1つまたは複数の集中プロセスコントローラを含む。これらのシステムでは、ユーザの識別に基づいてシステムへのアクセスを許可するアクセス制御が利用される。一般にアクセス制御技術は、ユーザ認証、暗号化、及び/又は特定のユーザ向けのアクセス制御リストを含む。アクセス制御リストは、どのシステムリソースに読み出し、書き込み、実行、その他が可能であるかを識別する。また、アクセス制御リストは、どのシステムのリソースにユーザがアクセス(例えば、読み出し、書き込み、及び/又は実行)が可能であるかを識別してもよい。これらのリソースは、例えばデータ、アラーム、イベント、及び/又は機能を含んでもよい。一般にシステム手順、機能、及び/又はプロセスは、アクセスされるリソースの種別に基づいて、エンドポイントに組織される。例えば、データ、アラーム、およびイベントの現行値にアクセスするための別個のエンドポイントがある。またデータ、アラーム、およびイベントの履歴値にアクセスするための別個のエンドポイントがあってもよい。
【0004】
データシステムまたはプロセス制御システムは、設計により、インターネット及び/又は1つまたは複数のイントラネットに接続されうるルータ、サーバ、スイッチ及び/又はワークステーションと物理的な及び/又は無線による接続性を有さないことにより、外部のネットワーク通信から分離していてもよい。他のデータシステムまたはプロセス制御システムは、リモート監視システムが、プロセスの進行、品質及び/又は制御オペレーションを監視できるよう、インターネット及び/又は1つまたは複数のイントラネットとの接続性を意図的に有してもよい。また、データシステムまたはプロセス制御システムが外部ネットワークへの外部接続性を有するので、制御システムの個々の構成要素が、ファームウェアの更新または変更された制御ルーチンなどの定期的な及び/又は予定された更新を受信することができる。1つまたは複数のシステムの外部接続性のために外部からの監視および制御が可能となるが、そのような外部接続性はシステムへのネットワーク侵入の脅威を増すことにつながりうる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
インターフェースアクセス制御に階層型セキュリティを提供する方法例および装置例を説明する。1つの例では、1つの方法は、少なくとも1つのサーバエンドポイントにアクセスする接続メッセージを第1サーバにおいてクライアントアプリケーションから受信するステップと、その接続メッセージの受信に応答して、そのセッションのオープンが承認されている場合、その少なくとも1つのサーバエンドポイントとそのクライアントアプリケーションとの間のセッションをオープンするステップと、を含む。その方法例は、少なくとも1つのリソースに対する、読み出しアクセス、書き込みアクセス、またはサブスクライブアクセスの少なくとも1つを提供するエンドポイントをオープンする要求をクライアントアプリケーションから受信するステップと、クライアントアプリケーションがエンドポイントを介して少なくとも1つのリソースにアクセスすることが承認されたことを判断した後、オープンされたセッション内でエンドポイントをオープンするステップと、少なくとも1つの承認されたリソースの選択をエンドポイントに割り当てる要求をクライアントアプリケーションから受信するステップと、をさらに含む。またその方法例は、少なくとも1つの選択されたリソースをエンドポイントに割り当てるステップと、クライアントアプリケーションがエンドポイントを介して少なくとも1つのリソースにアクセスすることを許可するステップと、を含む。
【0006】
1つの装置例は、少なくとも1つのサーバエンドポイントにアクセスする接続メッセージをクライアントアプリケーションから受信し、セッションのオープンが承認されている場合、接続メッセージの受信に応答して、その少なくとも1つのサーバエンドポイントとそのクライアントアプリケーションとの間でセッションをオープンするようプログラムされた第1サーバを備える。その装置例はまた、少なくとも1つのリソースに対する、読み出しアクセス、書き込みアクセス、またはサブスクライブアクセスの少なくとも1つを提供するエンドポイントをオープンする要求をクライアントアプリケーションから受信し、クライアントアプリケーションがそのエンドポイントを介して少なくとも1つのリソースにアクセスすることが承認されていることを判断した後、オープンされたセッション内でそのエンドポイントをオープンする。さらに、装置例は、少なくとも1つの承認されたリソースの選択をエンドポイントに割り当てる要求をクライアントアプリケーションから受信し、その少なくとも1つの選択されたリソースをそのエンドポイントに割り当て、クライアントアプリケーションがそのエンドポイントを介してその少なくとも1つのリソースにアクセスすることを許可する。
【図面の簡単な説明】
【0007】
図1】プロセス制御環境の1例を示すブロック図である。
図2図1のサーバディスカバリサーバ例およびリソースディスカバリサーバ例の機能ブロック図である。
図3図1および図2のサーバディスカバリサーバ例およびリソースディスカバリサーバ例により提供される階層型セキュリティの例を示す図である。
図4A図1図2、及び/又は図3のサーバディスカバリサーバ例、リソースディスカバリサーバ例、クライアントアプリケーション例、及び/又はプロセス制御環境例を実装するために用いられうるプロセスの例を示すフローチャートである。
図4B図1図2、及び/又は図3のサーバディスカバリサーバ例、リソースディスカバリサーバ例、クライアントアプリケーション例、及び/又はプロセス制御環境例を実装するために用いられうるプロセスの例を示すフローチャートである。
図5】本明細書に記載の方法例および装置例を実装するために用いられうるプロセッサシステムの例を示すブロック図である。
【発明を実施するための形態】
【0008】
以下では、他に構成要素がある中で、特にハードウェア上で実行されるソフトウェア及び/又はファームウェアを含む方法例および装置例が記載されるが、それらのシステムは単に説明的なものであり、本発明を限定するものでない点に注意すべきである。例えば、これらのハードウェアの、ソフトウェアの、およびファームウェアの構成要素のいずれかまたは全部は、ハードウェアのみで、ソフトウェアのみで、またはハードウェアとソフトウェアの任意の組み合せで、実現できると理解すべきである。従って、下記には方法例および装置例が記載されているが、該当技術分野の当業者は、提供されるこれらの例がそれらの方法および装置を実装する唯一の方法でないことが容易に理解できるであろう。
【0009】
システムのアクセス管理は、一般にユーザの識別に基づいて行われる。一般にアクセス制御技術はユーザ認証、暗号化、及び/又は特定のユーザ向けのアクセス制御リストを含む。アクセス制御リストは、どのシステムリソースに対して、読み出し、書き込み、実行、その他を行うことができるかを識別する。あるいは、アクセス制御リストは、機能、データ、アラーム、及び/又はイベントなどの、どのシステムリソースにユーザがアクセス(例えば、読み出し、書き込み、及び/又は実行)できるかを識別してもよい。
【0010】
エンドポイントは、システム及び/又はサービスに1つまたは複数のアクセスポイントを提供する。クライアントアプリケーションは、システム及び/又はサービスに関連付けられたリソースにアクセスするメッセージを、システム及び/又はサービスのエンドポイントに送信する。エンドポイントは、アドレス、コントラクト要素、及び/又はコントラクト要素を含む。エンドポイントのアドレスは、サービスをホスティングするアプリケーションがサービスをアドバタイズするために使用する位置である。例えばアドレスは、サービスを含むディレクトリ名とそのサービスに関連付けられたファイル名とを含むユニフォームリソースロケータ(URL)をエンドポイントとして含んでもよい。コントラクト要素は、サービスにアクセスするために用いられうる移送機構及び/又はプロトコルを指定する。例えばコントラクト要素は、サービスにアクセスするためのプロトコルとして、basicHttpBindingを特定してもよい。コントラクト要素は、サービス内でアクセスしてもよいオペレーション及び/又はエンドポイントを通してアクセス可能なリソースにアクセスするために必要なパラメータを示す。
【0011】
エンドポイントは、オブジェクト指向技法、REST(表現の状態遷移)ベースのインターフェース、及び/又はサービスコントラクトインターフェースを介して実装されてもよい。一般に、手順、機能、及び/又はプロセスが、アクセスされるリソースの種別に基づいて、エンドポイントに組織される。例えば、データ、アラーム、またはイベントの現行値、及び/又はデータ、アラーム、またはイベントの履歴値をアクセスするための別個のエンドポイントがある。
【0012】
現在、エンドポイントに対する脅威の数が増加している。脅威は、ウイルス、トロイの木馬、ワーム、分散型サービス拒否攻撃(DDoS)、及び/又はスパイウェアを含む。これらの脅威は、プロセス制御システム内において、未認証の第三者がデータの閲覧、操作、及び/又は破壊を行うことを可能にする。システムは、システムによって生み出される生産性、効率性、及び/又は利益を低下させる可能性がある脅威により、混乱させられる場合がある。
【0013】
従来、エンドポイントは、保護されるリソースから独立したセキュリティ機構を用いて保護されている。これらのセキュリティ機構は、ユーザ認証、承認、及び/又は暗号化を含む。例えば、現行のデータ値へのアクセスを提供するエンドポイントを保護するために、ユーザの認証を行い、その後にアクセス制御リストに基づいて特定のデータの読み出しまたは書き込みができるようになされてもよい。また、アクセスされるデータの機密性を保護するために、暗号化が用いられてもよい。この一般的な手法では、エンドポイントにより支持されるすべてのオペレーションが同じセキュリティ機構を用いることが要求される。例えば、認証をセキュリティ機構として用いる場合、各メッセージ交換で認証が実行される。同様に、暗号化をセキュリティ機構として用いる場合も、各メッセージ転送で暗号化が実行される。しかし、これらのセキュリティ機構に関連する性能上の不利益により、システムのオペレータ及び/又はユーザがセキュリティ機構を停止させ、またあるいは無効化させることがしばしば行われ、その結果、エンドポイントはオープンされたまま無防備な状態に留まることとなる。
【0014】
本明細書に記載の方法例および装置例は、それぞれのセキュリティ要件により定義および組織されるエンドポイントを実装する。例えば、一般にデータへのアクセスを提供するよう定義されるエンドポイントは、別個の読み出し用アクセスエンドポイント、書き込み用アクセスエンドポイント、及び/又はサブスクライブ用アクセスエンドポイントに再組織してもよい。読み出し用、サブスクライブ用、及び/又は書き込み用エンドポイントは、データ、アラーム、イベント、その他の取り出し及び/又は更新を行うために用いられてもよい。読み出し用エンドポイントは、サーバ内でデータ、アラーム、及び/又はイベントを取り出す(例えば、読み出す、獲得する、その他)1つまたは複数の方法(例えば、機能)をクライアントアプリケーションに提供する。サブスクライブ用エンドポイントは、サーバ内でデータ変更、アラーム、及び/又はイベントを定期的に取り出す1つまたは複数の方法(例えば、ポーリング、コールバック、その他)をクライアントアプリケーションに提供する。書き込み用エンドポイントは、サーバ内でデータ、アラーム、イベント、及び/又は機能の値または状態を変える(例えば、書き込み、記入、更新、変更、肯定応答、実行、その他)ための1つまたは複数の方法をクライアントアプリケーションに提供する。
【0015】
本明細書に記載の方法例および装置例は、要求者の識別及び/又は役割、要求者の位置、要求者が用いるワークステーション及び/又はコンピュータの識別、要求を発するワークステーション及び/又はコンピュータのネットワークアドレス、要求を発するアプリケーションの識別及び/又は種別、要求を発するアプリケーションによりエンドポイントにアクセスするために用いられるプロトコル、及び/又はエンドポイントにより要求が受信された時間を含むセキュリティ基準に基づいて、エンドポイントに対するアクセス制御を実装する。エンドポイントアクセス制御は、要求メッセージが受信するエンドポイントにより処理されるよう、要求メッセージを認証及び/又は承認してもよい。またエンドポイントアクセス制御は、要求を発するクライアントアプリケーション、オペレータ、及び/又はユーザに提供するリストの内容を承認してもよい。この内容は、リソースディスカバリエンドポイントに関連付けられたリソース、及び/又はリソースディスカバリエンドポイントに関連付けられたリソースディスカバリサーバを含んでもよい。いくつかの例では、エンドポイントアクセス制御は、クライアントアプリケーション及び/又はワークステーションの識別を検証するセキュリティ検証メッセージを、要求を発するクライアントアプリケーション及び/又はワークステーションに送信してもよい。他の例では、エンドポイントアクセス制御は、要求者のセキュリティ情報を得るセキュリティメッセージを、第三者のコンピュータ(例えば、ウィンドウズ(登録商標)アクティブディレクトリサーバ)に送信してもよい。
【0016】
本明細書に記載の方法例および装置例は、サーバディスカバリサーバ及び/又は1つまたは複数のリソースディスカバリサーバを通じて、階層型セキュリティを提供する。サーバディスカバリサーバは、リソースディスカバリサーバの位置を特定する。さらに、サーバディスカバリサーバはリソースディスカバリサーバのリストを保持し、どの要求者が各リソースディスカバリサーバにアクセス権を有するかを判断するために、アクセス制御基準を用いてもよい。サーバディスカバリサーバは、要求者(例えば、クライアント、オペレータ、その他)がリソースディスカバリサーバに関連付けられたリソースへアクセスするために選択しうるリソースディスカバリサーバをリストアップする。各リソースディスカバリサーバは、対応するリソースディスカバリエンドポイントを介してアクセスされうる。サーバディスカバリサーバは、リソースディスカバリエンドポイントを要求者に提供してもよく、またあるいはサーバディスカバリサーバは、リソースディスカバリエンドポイントを提供する各リソースディスカバリサーバ内のエンドポイントを要求者に提供してもよい。
【0017】
要求者がリソースディスカバリエンドポイントにアクセスすると、リソースディスカバリサーバは、どのリソースが要求者に利用可能であるかを判断し、これらのリソース及び/又はこれらのリソースへのエンドポイントをリストアップする。リソースディスカバリサーバは、要求者がどのリソースにアクセスしてよいかを判断するために、エンドポイントのアクセスに用いられるアクセス制御基準を用いてもよい。次に要求者は、リソースに対する読み出し、書き込み、サブスクライブ、及び/又は実行を登録することにより、利用可能なリソースの1つまたは複数を選択してもよい。次にリソースディスカバリサーバは、要求者により作成され、オープンされ、及び/又は選択されたリソースに関連付けられた読み出し用、書き込み用、及び/又はサブスクライブ用エンドポイントを通じて要求者がリソースにアクセスすることを認めることにより、登録要求を許可する。
【0018】
本明細書に記載の方法および装置は、リソースディスカバリエンドポイントを介して、リソースがアクセスされることを制限する。リソースは、リソースディスカバリエンドポイントを通じて、発見され、アクセスの登録がなされてもよい。リソースディスカバリサーバは、読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントのオープン及び/又は作成と、登録済みリソースにアクセスするための、読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントに対する登録済みリソースの割り当てと、に必要な要求者情報を提供する。要求者により、読み出し用及び/又はサブスクライブ用エンドポイントにリソースが割り当てられていると、要求者はそのリソースに関連付けられたデータを閲覧しうる。また要求者により、書き込み用エンドポイントにリソースが割り当てられていると、書き込み用エンドポイントを通じて利用可能な機能に基づいて、要求者は、そのリソースにデータを書き込むことができ、またあるいはそのリソースに対し変更または実行を行いうる。いくつかの例では、要求者が所望のリソースを選択すると、読み出し用の、書き込み用の、及び/又はサブスクライブ用のエンドポイントが作成され得る。他の例では、読み出し用の、書き込み用の、及び/又はサブスクライブ用のエンドポイントがサーバにより作成及び/又は予め設定され、要求者によりオープンされ得る。
【0019】
この方法例および装置例では、要求者がリソースディスカバリエンドポイントとのセッションを停止するまで、要求者は、リソースディスカバリエンドポイントに関連付けられた読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントを使用することができる。要求者がセッションを停止した後、セッションの状況内で作成及び/又はオープンされた読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントは、選択されたリソースに関連付けられた不明朗な識別子とともに、セッションから削除される。要求者は次に、リソースにアクセスするための新規のセッションを作成するために、リソースディスカバリサーバにアクセスしてもよい。
【0020】
本明細書に記載の方法例および装置例では、選択されたリソースおよびその関連付けられた読み出し用の、書き込み用の、及び/又はサブスクライブ用のエンドポイントに別名を付与するために、動的に割り当てられた不明朗朗な識別子を利用する。この別名付与により、各読み出し用エンドポイント、書き込み用エンドポイント、サブスクライブ用エンドポイント、及び/又は読み出し用エンドポイント、書き込み用エンドポイント、サブスクライブ用エンドポイントを通じてアクセス可能なリソースに対して、別の識別子が提供される。要求者及び/又はリソースディスカバリサーバは、選択されたリソースに関連付けられたデータを閲覧及び/又は更新するために、これらの識別子を用いる。リソース識別子は、リソースが登録される間に作成され、エンドポイント識別子はエンドポイントのオープン及び/又は作成が行われる間に作成される。また、識別子(例えば、リソース識別子及び/又はエンドポイント識別子)は、セッションの状況外のリソース及び/又は対応する読み出し用の、書き込み用の、及び/又はサブスクライブ用のエンドポイントの識別に用いられなくてもよい。リソース及び/又はエンドポイントの識別に用いられる不明朗な識別子により、オペレータ及び/又はユーザとシステムとの間で通信が行われる間、スヌーピング用の及び/又はスニッフィング用のアプリケーションが、データ値および関連付けられたリソースを関連付けることがより困難となる。従って、これらの不明朗な識別子により、スヌーピング用の及び/又はスニッフィング用のアプリケーションがセキュリティ侵害を起こすことがより困難となる。例えば、識別子を用いてデータの傍受を行う第三者は、どのリソースが識別されているのか、及び/又は転送中のデータ値をどのように解釈するのか、を認識できないであろう。
【0021】
また不明朗識別子セキュリティは、不明朗な識別子を一定時間周期の後に書き換えることにより、向上させるうる。識別子の書き換えを行うことにより、オペレータ、ユーザ、及び/又はクライアントアプリケーションは、リソースに関連付けられた不明朗な識別子を定期的に更新することができ、その結果、スヌーピング用の及び/又はスニッフィング用のアプリケーションが行いうるトラフィック解析を防ぐことができる。さらに、サーバディスカバリエンドポイント及び/又はリソースディスカバリエンドポイントは、リソース及び/又は各リソースに関連付けられた不明朗な識別子の開示を防ぐために、要求者との通信に暗号化を用いてもよい。
【0022】
図1は、本明細書に記載の方法例および装置例を実装するために用いられうるプロセス制御環境例100のブロック図である。プロセス制御環境100は、3つのプロセス制御システム104a〜104cを有するプロセス制御プラント102を備える。他の例では、プロセス制御プラント102は、より少ないプロセス制御システムまたは追加のプロセス制御システムを備えてもよい。またプロセス制御プラント102は、ローカルエリアネットワーク(LAN)112を介してサーバディスカバリサーバ108に通信可能に接続されたローカルワークステーション106を備える。他の例では、プロセス制御プラント102は、追加のローカルワークステーション、サーバ、及び/又はコンピュータを備えてもよい。
【0023】
プロセス制御プラント例102は、1つまたは複数のバッチプロセス及び/又はバッチフェーズの間に1つまたは複数の製品を生産しうるプラントの例を示すものである。他の例では、プロセス制御プラント102は、発電設備、工業設備、及び/又は、制御システムおよび監視システムまたは情報技術システムを含む他のあらゆる設備種別を含んでもよい。ローカルワークステーション例106は、プラント102に対する、オペレータの及び/又はユーザのインターフェースとして機能してもよく、またLAN112を介してプロセス制御システム104a〜104cの1つまたは複数に通信可能に接続されていてもよい。
【0024】
プロセス制御環境例100は、ワイド・エリア・ネットワーク(WAN)120を介してプロセス制御プラント102に接続されたリモートワークステーション116および118を備える。WAN120は、あらゆる種別の、公衆交換電話網(PSTN)システム、公衆地上移動ネットワーク(PLMN)システム、無線配信システム、有線によるまたはケーブルによる配信システム、同軸ケーブル配信システム、ファイバーツーザホーム・ネットワーク、ファイバーツーザカーブ・ネットワーク、ファイバーツーザペデスタル・ネットワーク、ファイバーツーザボールト・ネットワーク、ファイバーツーザネイバーフッド・ネットワーク、極超短波(UHF)/超短波(VHF)無線周波システム、衛星または地球外システム、セルラー配信システム、送電線放送システム、及び/又はこれらのデバイス、システム、及び/又はネットワークの組み合わせ及び/又は混成を含んでもよい。
【0025】
またプロセス制御プラント102は、リモートワークステーション116および118からプロセス制御プラント102への通信が許可されるかどうかを、1つまたは複数のルールに基づいて判断するファイアウォール110を備える。リモートワークステーション例116および118は、プロセス制御プラント102内にないオペレータ及び/又はユーザに、プロセス制御プラント102内のリソースにアクセスを提供してもよい。例えば、合衆国に位置するプロセス制御エンジニアがリモートワークステーション116を用いて、メキシコに位置するプロセス制御プラント102内の製造ライン(例えば、リソース)の状態をチェックしてもよい。他の実装例では、ファイアウォールは各プロセス制御システム104a〜104cとワークステーション106、116、及び/又は118との間に位置してもよい。
【0026】
ワークステーション例106、116、及び/又は118は、1つまたは複数の情報技術アプリケーション、ユーザインタラクティブアプリケーション、及び/又は通信アプリケーションに関連付けられたオペレーションを行うよう、構成されてもよい。またワークステーション106、116、及び/又は118は、パーソナルコンピュータ、ラップトップ、サーバ、コントローラ、携帯情報端末(PDA)、マイクロコンピュータ、その他のあらゆるコンピューターデバイスを含んでもよい。
【0027】
リソースディスカバリサーバ例114a〜114cは、1つまたは複数のアプリケーション、ユーザインタラクティブアプリケーション、通信アプリケーション、及び/又は、関連付けられたプロセス制御システム104a〜104cの内の1つまたは複数の機能ブロックを実行するよう、設定されてもよい。例えば、リソースディスカバリサーバ114a〜114cは、任意の通信媒体(例えば、無線、有線、その他)およびプロトコル(例えば、HTTP、SOAP、その他)を用いて、リソースディスカバリサーバ114a〜114cおよびそれぞれのコントローラ(例えば、コントローラ112)が他のデバイス及び/又はシステムと通信できるようにするプロセス制御関連アプリケーションおよび通信アプリケーションに関連付けられたオペレーションを実行するよう、設定されてもよい。他の例では、各プロセス制御システム104a〜104cは、1つまたは複数のリソースディスカバリサーバを備えてもよい。
【0028】
各リソースディスカバリサーバ114a〜114cは、コントローラ(例えば、コントローラ122)に通信可能に接続されている。施設管理者、プロセス制御エンジニア、システムエンジニア、制御システム管理者、及び/又はプラント102及び/又は全プロセス制御環境100のオペレーションを担当する他のオペレータまたはユーザにより設定及び/又は設計された、1つまたは複数のプロセス制御ルーチンを、コントローラ例122は実行してもよい。コントローラ122は、例えば、Emerson Process Managementの企業であるFisher−Rosemount Systems,Inc.から販売されている、DeltaV(登録商標)コントローラであってもよい。しかしながら、他のいかなるコントローラがかわって用いられてもよい。さらに、図1では唯一のコントローラ122が示されているが、いかなる種別の追加のコントローラまたは様々な種別のコントローラの追加の組み合せが、各リソースディスカバリサーバ114a〜114cに接続されてもよい。図1の説明的な例は一部分においてプロセス制御システムを説明するが、本明細書に記載の方法および装置は、実験室試験、確認試験、及び/又は品質管理分析などの、試験および計測環境に適応されてもよい。
【0029】
コントローラ122は、コントローラバス128及び/又はI/Oデバイス124を介して、複数のフィールドデバイス126a〜126bおよび130に接続されてもよい。プロセス制御ルーチンが実行される間、コントローラ122は、フィールドデバイス128a〜128bおよび130と情報(例えば、コマンド、設定情報、測定情報、ステータス情報、その他)を交換してもよい。例えば、コントローラ122により実行されたときに、コントローラ122が、特定のオペレーション(例えば、測定、バルブの開閉、プロセスポンプの始動・停止、その他)をフィールドデバイス126a〜126bに実行させるコマンドをフィールドデバイス126a〜126bへ送信し、及び/又は、コントローラ122を介して情報(例えば、測定データ)を通信するプロセス制御ルーチンを、コントローラ122に提供してもよい。またコントローラ122は、測定値(圧力値、温度値、流量値、電圧値、電流値、その他)の取得、アルゴリズムまたは演算(例えば、積分、微分、加算、減算、その他)の実行、機器の制御(例えば、バルブの開閉、加熱炉の調整、ボイラーの調整、その他)、及び/又はその他の任意の機能を、フィールドデバイス126a〜126bおよび130に実行させてもよい。
【0030】
サーバディスカバリサーバ108およびリソースディスカバリサーバ114a〜114cは、ワークステーション106、116、及び/又は118に、コントローラ(例えば、コントローラ122)により管理されるプロセス制御リソースへの階層型アクセスを提供する。サーバディスカバリサーバ108は、サーバディスカバリサーバ108自体へのアクセスと、リソースディスカバリサーバ114a〜114cに関連付けられたリソースディスカバリエンドポイント114a〜114cのリストへのアクセスと、を制限する、エンドポイントアクセス制御を備えてもよい。サーバディスカバリサーバ108は、サーバディスカバリサーバ108により実装されるエンドポイントアクセス制御のレベルに基づいて、各ユーザ及び/又はワークステーション106、116、及び/又は118に、リソースディスカバリサーバ114a〜114cに関連付けられたリソースディスカバリエンドポイントのリストを提供する。例えば、リモートワークステーション116のオペレータ及び/又はユーザは、プロセス制御システム104b及び/又はプロセス制御システム104b内に含まれる特定のディスカバリサーバ(例えば、サーバ114b)のみに対しアクセス権を有するよう指定されてもよい。その結果、リモートワークステーション116のオペレータ及び/又はユーザがリソースディスカバリエンドポイントのリストを要求するとき、サーバディスカバリサーバ108は、リソースディスカバリサーバ114bのリソースディスカバリエンドポイントのみを含むリストを提供する。あるいは、サーバディスカバリサーバ108は、各ユーザ及び/又はワークステーション106、116、及び/又は118に対し、リソースディスカバリサーバのエンドポイント(例えば、リソースディスカバリサーバ114a〜114cに関連付けられたエンドポイント)のリストを提供してもよい。次に、ユーザ及び/又はワークステーション106、116、及び/又は118はこれらのエンドポイントを用いて、リソースディスカバリエンドポイントのリストをリソースディスカバリサーバ114a〜114cから直接取り出してもよい。
【0031】
サーバディスカバリサーバ例108は、承認されたワークステーション(例えば、ワークステーション106、116、及び/又は118)に対し、リソースディスカバリサーバ114aからcに関連付けられたリソースディスカバリエンドポイントのリストを提供してもよい。あるいは、サーバディスカバリサーバ例108は、承認されたワークステーション(例えば、ワークステーション106、116、及び/又は108)に対し、リソースディスカバリサーバ114a〜114cに関連付けられたエンドポイントのリストを提供してもよい。承認されたワークステーションは次にエンドポイントのリストを用いて、リソースディスカバリエンドポイントを取り出してもよい。一度ワークステーション106、116、及び/又は118が、選択したリソースディスカバリサーバ(例えば、リソースディスカバリサーバ114a)のリソースディスカバリエンドポイントを受信すると、ワークステーション106、116、及び/又は118は次にリソースディスカバリエンドポイントを用いてリソースディスカバリサーバ(例えば、サーバ114a)にアクセスしてもよい。一部の例では、ワークステーション106、116、及び/又は118がリソースディスカバリエンドポイントへのアクセスを承認されているかどうかを、リソースディスカバリサーバ114aが判断してもよい。ワークステーション106、116、及び/又は118が、関連付けられたリソースディスカバリエンドポイントを通じてリソースディスカバリサーバ114aにアクセスすると、リソースディスカバリサーバ114aは、ワークステーション106、116、及び/又は118によるアクセスが承認されたリソースを判断するために、エンドポイントアクセス制御を実装してもよい。リソースディスカバリサーバ114aは、フィールドデバイス126a〜126bおよび130に関連付けられたリソースを含んでもよい。ワークステーション106、116、及び/又は118のいずれかのオペレータ及び/又はユーザは、承認されたリソースを選択してもよい。
【0032】
まずワークステーション106、116、及び/又は118がリソースディスカバリエンドポイントに最初にアクセスすると、関連付けられたリソースディスカバリサーバ114aがセッションを作成する。ワークステーション106、116、及び/又は118が、リソースディスカバリサーバ114aにより提供される1つまたは複数のリソースを選択することにより、ワークステーション106、116、及び/又は118は、選択したリソースにアクセスするために、ワークステーション106、116、及び/又は118により用いられる読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントの作成を、リソースディスカバリサーバ114aに要求する。ワークステーション106、116、及び/又は118がリソースの読み出しを意図する場合、ワークステーション106、116、及び/又は118は、リソースディスカバリサーバ114aから読み出し用エンドポイントを要求する。ワークステーション106、116、及び/又は118がリソースの更新及び/又は実行(例えば、書き込み)を意図する場合、ワークステーション106、116、及び/又は118は、リソースディスカバリサーバ114aから書き込み用エンドポイントを要求する。ワークステーション106、116、及び/又は118がリソースに対するサブスクライブを意図する場合、ワークステーション106、116、及び/又は118は、リソースディスカバリサーバ114aからサブスクライブ用エンドポイントを要求する。
【0033】
リソースディスカバリサーバ114aは、エンドポイントの識別を隠すための別名識別子と、エンドポイントを通じてアクセスされる各リソースの識別を隠すための別名識別子と、を用いて、ワークステーション106、116、及び/又は118にこれらのエンドポイントを提供する。リソースに対する別名は、ワークステーション106、116、及び/又は118により提案され、リソースディスカバリサーバ114aにより確認されてもよい。ワークステーション106、116、及び/又は118は、エンドポイント識別子を用いて読み出し用の、書き込み用の、及び/又はサブスクライブ用のエンドポイントにアクセスし、選択されたリソースのリソース識別子を用いてこれらのリソースの閲覧及び/又は変更を行ってもよい。ワークステーション106、116、及び/又は118による要求を含む何らかの理由によりセッションを閉じられる場合、リソースディスカバリサーバ114aはセッションを停止し、オープンされたあらゆる読み出し用の、書き込み用の、及び/又はサブスクライブ用のエンドポイント、エンドポイントに関連付けられた識別子、及び/又は登録されたリソースに関連付けられた識別子を削除し及び/又は閉じる。セッションが閉じられた後、ワークステーション106、116、及び/又は118が再びリソースディスカバリサーバ114aにアクセス可能になる前に、ワークステーション106、116、及び/又は118は、リソースディスカバリサーバ114aと新規のセッションを確立することが要求されてもよい。
【0034】
サーバディスカバリサーバ108及び/又はリソースディスカバリサーバ114a〜114cは、ワークステーション106、116、及び/又は118との通信に対して暗号化、ハッシュマーク、及び/又は署名を行うためのセキュリティプロトコルを実装してもよい。リソース識別子とともに用いられるこれらのセキュリティプロトコルは、リソースディスカバリサーバ114a〜114cおよびワークステーション106、116、及び/又は118から伝送されるプロセス制御データの閲覧及び/又は変更を企てる未認証の当事者及び/又はエンティティから、プロセス制御プラント102をさらに保護する。
【0035】
1つの例では、ローカルワークステーション106のオペレータ及び/又はユーザは、ワークステーション106がポンプフィールドデバイス130(例えば、リソース)のポンプ速度を獲得するために使用しうるリソースディスカバリサーバの位置を特定するサーバ発見要求メッセージを、サーバディスカバリサーバ108に送信する。サーバディスカバリサーバ108は、オペレータ、ユーザ、及び/又はワークステーション106がアクセスすることが承認されているリソースディスカバリサーバ114a〜114cを判断する。ワークステーション106がリソースディスカバリサーバ114aにアクセスし、リソースディスカバリサーバ114aのディスカバリエンドポイント及び/又はワークステーション106がリソースディスカバリサーバ114aのリソースディスカバリエンドポイントを取り出すためにアクセスしうるリソースディスカバリサーバ114a内のエンドポイントを含むリストを提供してもよいと、サーバディスカバリサーバ108が判断する。
【0036】
次にワークステーション106は、リソースディスカバリサーバ114aとのセッションをオープンする要求メッセージ(例えば、接続メッセージ)を伝送する。ワークステーション106は、要求メッセージのアドレスフィールド内のサーバ114aに対する新規に獲得したリソースディスカバリエンドポイントのアドレスに、このメッセージを送信する。リソースディスカバリサーバ114aは、セッションが承認されたかどうかを判断するためのエンドポイントアクセス制御を実行した後、要求メッセージを受信しセッションをオープンする。次に、ワークステーション106は、ワークステーション106、オペレータ、及び/又はユーザによるアクセスが承認されているリソースを発見するための一連のメッセージ(例えば、リソース発見要求メッセージ、エンドポイントオープン要求メッセージ、及び/又は登録要求メッセージ)を伝送する。リソースディスカバリサーバ114aは、リスト内のポンプ速度リソースを含むリソースを、ワークステーション106に提供する。ポンプ速度リソースは、ポンプ名「PDT:P321」により、またあるいはポンプ速度パラメータの名称などの任意の他の名称により、識別されてもよい。
【0037】
ワークステーション106がポンプ速度リソースを選択し、ポンプ速度リソースにアクセスするための読み出し用エンドポイントを要求すると、リソースディスカバリサーバ114aは、読み出し用エンドポイントを作成し、及び/又はオープンし、ポンプ速度をこの新規に作成され及び/又はオープンされた読み出し用エンドポイントに関連付ける。他の例では、リソースディスカバリサーバ114aは、ポンプ速度を、既に作成され及び/又はオープンされた読み出し用エンドポイントに関連付けてもよい。あるいは、ワークステーション106は、読み出し用エンドポイントの作成及び/又はオープンをまず要求した後に別にポンプ速度パラメータを読み出し用エンドポイントに関連付けてもよい。あるいは、ワークステーション106は、パラメータのリストにポンプ速度パラメータをまず追加した後、そのパラメータのリストを読み出し用エンドポイントに追加してもよい。あるいは、書き込み用の及び/又はサブスクライブ用のエンドポイントの作成及び/又はオープンがワークステーション106のオペレータ及び/又はユーザ106に承認されている場合、書き込み用の及び/又はサブスクライブ用のエンドポイントを作成及び/又はオープンし、この新規に作成され及び/又はオープンされた書き込み用エンドポイントにポンプ速度を関連付ける要求が、ワークステーション106からリソースディスカバリサーバ114aへ送信されてもよい。
【0038】
さらに、リソースディスカバリサーバ114aが、「1621545」などの識別子を生成し、ポンプ速度リソースを読み取って識別子をワークステーション106に伝送してもよい。あるいは、ワークステーション106が識別子を提供してもよい。他の実装例では、最適化のために、2つの識別子が用いられてもよい。例えば、ワークステーション106がポンプ速度を求める要求をサーバ114aへ送るときワークステーション106はポンプ速度を識別するために1つの識別子を使い、サーバ114aはワークステーション106に値を送信するために別の識別子を用いてもよい。またサーバ114aは、読み出し用、書き込み用、及び/又はサブスクライブ用に、別個の識別子を要求してもよく、あるいは、読み出し用、書き込み用、及び/又はサブスクライブ用に、同一の識別子が用いられてもよい。図1の例では、サーバ114aは、ポンプ速度の読み出し用および書き込み用に同一のポンプ速度識別子(例えば、1621545)を用いる。あるいは、リソースディスカバリサーバ114aは、新規に作成され及び/又はオープンされた読み出し用エンドポイントには「36285」などの識別子を生成し、新規に作成され及び/又はオープンされた書き込み用エンドポイントには「88732」などの識別子を作成し、これらの識別子をワークステーション106に伝送してもよい。
【0039】
ワークステーション106のオペレータ及び/又はユーザは、ポンプ速度識別子(例えば、1621545)および読み出し用エンドポイント識別子(例えば、36285)をメッセージの中に含むメッセージを、リソースディスカバリサーバ114aに送信することにより、ポンプ速度リソースを読み出してもよい。(サーバ114aがポンプ速度値をキャッシュしていない場合)リソースディスカバリサーバ114aは現行のポンプ速度値を求めてコントローラ122にアクセスし、ポンプ速度識別子(例えば、1621545)を用いるメッセージを用いてワークステーション106にポンプ速度値を伝送する。またワークステーション106のオペレータ及び/又はユーザは、新規のポンプ速度、ポンプ速度識別子(例えば、1621545)および書き込み用エンドポイント識別子(例えば、88732)を有するメッセージを生成し、そのメッセージをリソースディスカバリサーバ114aに伝送することにより、ポンプ速度を変えてもよい。そのメッセージを受信すると、リソースディスカバリサーバ114aは新規のポンプ速度をコントローラ122に伝送し、ポンプ130の速度を新規に指定されたポンプ速度に設定する。次に、ワークステーション106のオペレータ及び/又はユーザは、リソースディスカバリサーバ114aとのセッションを閉じてもよい。セッションが閉じられると、リソースディスカバリサーバ114aは、セッションを停止し、リソース、読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントの識別子を削除する。
【0040】
プロセス制御システム例104aは、下記に詳細に説明する方法例および装置例がその中で有利に用いられる1つの種別のシステムを例として説明されるように提供されたものである。しかし、本明細書に記載の方法例および装置例は、より複雑なまたはより簡単な他のシステム及び/又は図1に示すプロセス制御システム例104aとは異なる種別のシステムに、制限なく有利に用いられてもよい。さらに、読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントは、例えば、ポーリングのおよびコールバックの機構を含む、データ、イベント、およびアラームの取り出し及び/又は更新に関連する追加の方法および装置を用いて、実装されてもよい。
【0041】
図2は、図1に示すサーバディスカバリサーバ例108およびリソースディスカバリサーバ例114aのブロック図である。サーバディスカバリサーバ108およびリソースディスカバリサーバ114aは、クライアントアプリケーション202に通信可能に接続される。クライアントアプリケーション例202は、データ、イベント、及び/又はアラームの現行値または履歴値へのアクセスを提供するシステムのリソースに関連付けられた情報にアクセスするために用いられうる、あらゆるプロセス制御アプリケーション及び/又はデータシステムアプリケーションを含んでもよい。例えば、クライアントアプリケーション202は、DeltaV(登録商標)の読み出し用/書き込み用制御アプリケーションであってもよい。
【0042】
クライアントアプリケーション202は、オペレータ、ユーザ、及び/又は自動ユーザに代わってリソースにアクセスするために用いられる。クライアントアプリケーション例202は、クライアントアプリケーション202のユーザに関連付けられた識別情報を含んでもよい。クライアントアプリケーション202は、ワークステーション106、116、及び/又は118のいずれの上で動作してもよく、または識別情報を含んでもよい。さらに、クライアントアプリケーション202は、図1のLAN112及び/又はWAN120を介して、サーバディスカバリサーバ108及び/又はリソースディスカバリサーバ114aに接続されていてもよい。
【0043】
図2のクライアントアプリケーション例202は、要求メッセージをサーバディスカバリサーバ108及び/又はリソースディスカバリサーバ114aへ伝送する。要求メッセージは、プロセス制御システム104a内のリソースの位置を特定するためのエンドポイントにアクセスするメッセージを含んでもよい。またクライアントアプリケーション202は、特定のセッション向けの不明朗な識別子を、選択されたリソース、読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントに割り当ててもよい。あるいは、クライアントアプリケーション202は、あらゆるリソース、読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントに対する特定のセッション向けの不明朗な識別子の割り当てを、リソースディスカバリサーバ114aから受信してもよい。あるいは、クライアントアプリケーション202およびリソースディスカバリサーバ114aは、それぞれの特定のセッション向けの不明朗な識別子を交換してもよい。クライアントアプリケーション202は、対応するリソース、読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントに割り当てられた識別子を保存する。従って、クライアントアプリケーション202に受信されたリソースデータは、コード化されたリソースデータに関連付けられたリソース及び/又はエンドポイントを特定するためにクライアントアプリケーション202が用いうる、対応するリソース識別子に関連付けられる。さらに、クライアントアプリケーション202は、暗号化されたデータをリソースディスカバリサーバ114aから受信する暗号解読能力を含んでもよい。図2は単一のクライアントアプリケーション202を示すが、他の例では、複数のクライアントアプリケーションがサーバ108および114aにアクセスしてもよい。
【0044】
暗号化及び/又はエンドポイントアクセス制御等のセキュリティ手段を、クライアントアプリケーション202との通信に提供するために、サーバディスカバリサーバ例108はセキュリティプロセッサ204aを備える。また暗号化及び/又はエンドポイントアクセス制御手段等のセキュリティ手段を、クライアントアプリケーション202との通信に提供するために、リソースディスカバリサーバ例114aはセキュリティプロセッサ204bを備える。セキュリティプロセッサ例204a〜204bは、未認証の第三者から送信される通信を保護するために、暗号化プロセッサ及び/又はデジタル署名発生器を備えてもよい。暗号化プロセッサは、クライアントアプリケーション202宛の通信が未認証のユーザに読み出し不可能なフォーマットとなるようにフォーマットする、任意の種別の暗号エンコーダを用いてもよい。デジタル署名発生器は、未認証の第三者により通信が改竄されることがないよう、保護する。デジタル署名発生器は、クライアントアプリケーション202とサーバ108及び/又は114aとの間で未認証の第三者による値の変更を検出可能な、あらゆる種別の暗号上セキュアな署名ジェネレータ(例えば、ハッシュコード)を用いてもよい。さらに、セキュリティプロセッサ204a〜204bは、認証機構及び/又はアクセス制御を含む、他の形態の通信セキュリティを含んでもよい。
【0045】
セキュリティプロセッサ例204a〜204bは、クライアントアプリケーション202が発信する、暗号化された及び/又は署名された通信をデコードしてもよい。通信をデコードすると、セキュリティプロセッサ204a〜204bは、それぞれサーバ108および114a内の意図した宛先に通信を伝送する。またセキュリティプロセッサ204aは、承認されたユーザのみがサーバディスカバリサーバ108にアクセスできるよう、クライアントアプリケーション202から発信される要求メッセージを識別情報によりフィルタリングしてよい。あるいは、いくつかの実装例では、サーバ108および114aは、セキュリティプロセッサ204a〜204bを備えなくてもよい。これらの実装例では、セキュリティプロセッサ204a〜204bに関連付けられたセキュリティ機能は、ファイアウォール(例えば、ファイアウォール110)内に備えられてもよく、及び/又はプロセス制御プラント102内のいずれかの位置に備えられてもよい。
【0046】
リソースディスカバリサーバの発見を管理するために、サーバディスカバリサーバ例108は、サーバディスカバリエンドポイントプロセッサ206を備える。サーバディスカバリエンドポイントプロセッサ206例は、承認された要求者のみがリソースディスカバリサーバを発見できるよう、クライアントアプリケーション202からの要求を処理する。サーバディスカバリエンドポイントプロセッサ206は、リソースディスカバリサーバを発見する要求メッセージ(例えば、サーバ発見要求メッセージ)を、クライアントアプリケーション例202を含むクライアントアプリケーションから受信する。
【0047】
要求メッセージを受信すると、サーバディスカバリエンドポイントプロセッサ206は、要求メッセージ内の及び/又は要求メッセージに関連付けられた情報を用いて、クライアントアプリケーション202を使用するオペレータ及び/又はユーザの識別及び/又はクライアントアプリケーション202及び/又はエンドポイントアクセス制御の実行に関連付けられた他の情報を動作させるワークステーションの識別を判断する。例えば、サーバディスカバリエンドポイントプロセッサ206は、要求メッセージ内のユーザ認識フィールドをチェックして、ユーザ識別値が、認証されたユーザに対応するかどうかを判断してもよい。あるいは、サーバディスカバリエンドポイントプロセッサ例206は、要求メッセージ内の、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び/又はプロトコル種別をチェックしてもよい。あるいは、サーバディスカバリエンドポイントプロセッサ例206は、メッセージの認証処理(例えば、メッセージが集中セキュリティコンピュータから伝送されたものかどうか)を支援するために、メッセージ及び/又はクライアントアプリケーション202に関連する他の情報を調べてもよい。
【0048】
サーバディスカバリエンドポイントプロセッサ206は、どのリソースディスカバリサーバがクライアントアプリケーション202に利用可能であるかを判断するために、アクセス制御リストを用いてもよい。あるいは、サーバディスカバリエンドポイントプロセッサ206は、受信したメッセージに関連付けられたセキュリティ属性を判断するための他の機能を実装してもよい。アクセス制御リスト及び/又は他の機能は、認められた各要求がアクセスすることが承認されたリソースディスカバリエンドポイントに関連する認められたユーザのリストを含んでもよい。例えば、プロセス制御システム104aに割り当てられたシステムオペレータ及び/又はユーザは、プロセス制御システム104aに関連付けられたリソースディスカバリエンドポイントへのアクセスが承認されてもよい。またアクセス制御リストは、各々のワークステーション及び/又はクライアントアプリケーションがアクセスすることが承認されたリソースディスカバリエンドポイントに関連するワークステーション及び/又はクライアントアプリケーションのリストを含んでもよい。アクセス制御リストは、プロセス制御システム104a〜104c及び/又はプロセス制御プラント102の管理者及び/又は制御者により予め設定されてもよい。
【0049】
要求メッセージ内の識別情報をアクセス制御リストに関連させると、サーバディスカバリエンドポイントプロセッサ206は、承認されたリソースディスカバリエンドポイントのリストをクライアントアプリケーション202に返す。リソースディスカバリエンドポイントのリストは、リソースディスカバリエンドポイントの名称、エンドポイントに対するアクセスを提供するシステムの名称、及び/又はエンドポイントが提供する情報の種別を含んでもよい。また各リソースディスカバリエンドポイントに関するリストの中に提供される情報の量は、エンドポイントのリストを要求するクライアントアプリケーション202に基づいて、サーバディスカバリエンドポイントプロセッサ206により制限されてもよい。この制限により、第三者及び/又は侵入者がリソースディスカバリエンドポイントに対して悪意あるプロファイリングを行うことが比較的困難なものとなる。悪意あるプロファイリングは、潜在的なターゲット(例えば、ディスカバリサーバ114a)に対してターゲットへの侵入を策定するために、ターゲットの属性を検査することを含む場合がある。例えば、クライアントアプリケーション202がプロセス制御プラント102のリモート位置にある場合、サーバディスカバリエンドポイントプロセッサ206は、リストアップされた各リソースディスカバリエンドポイントに対する参照名を提供するのみでもよい。リストアップされた各リソースディスカバリエンドポイントは、プロセス制御環境100内のリソースディスカバリサーバ114aに対応する。例えば、サーバディスカバリエンドポイントプロセッサ206は、リソースディスカバリサーバ114a〜114cに対応するリソースディスカバリエンドポイントのリストを、クライアントアプリケーション202に提供してもよい。
【0050】
図2のサーバディスカバリエンドポイントプロセッサ例206は、リソースディスカバリエンドポイントのリストを、クライアントアプリケーション202に提供する。サーバディスカバリエンドポイントプロセッサ206は、リソースディスカバリサーバ114a内でセッションをオープンする要求を発信するに必要な情報(例えば、接続メッセージ)を返してもよい。またあるいは、サーバディスカバリエンドポイントプロセッサ206は、クライアントアプリケーション202がリソースディスカバリエンドポイントを選択できるようにするリソースディスカバリエンドポイントの識別を返してもよい。クライアントアプリケーション202がリソースディスカバリエンドポイントの1つまたは複数を選択すると、サーバディスカバリエンドポイントプロセッサ206は、各々の選択されたリソースディスカバリエンドポイントとのセッションをオープンするための情報を、クライアントアプリケーション202へ伝送する。
【0051】
リソース、リソースディスカバリエンドポイント、読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントへのアクセスを管理するために、リソースディスカバリサーバ例114aは、セッションコントローラ208と、リソースディスカバリエンドポイントプロセッサ210と、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212とを備える。図2には、クライアントアプリケーション202に接続されたリソースディスカバリサーバ114aのみが示されている。他の例では、クライアントアプリケーション202は、それぞれのセッションコントローラ208、リソースディスカバリエンドポイントプロセッサ210、および読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212を備えうるリソースディスカバリサーバ114b〜114cに接続されてもよい。クライアントアプリケーション202は、リソースディスカバリエンドポイントに関連付けられた位置及び/又は情報をサーバディスカバリエンドポイントプロセッサ206から受信する。クライアントアプリケーション202は、要求メッセージ(例えば、接続メッセージ)をリソースディスカバリサーバ114aに関連付けられたリソースディスカバリエンドポイントに送信するために、この情報を用いてリソースディスカバリサーバ114aにアクセスする。
【0052】
図2のセッションコントローラ例208は、クライアントアプリケーション202に対するリソースアクセスセッションを管理する。このセッションは、クライアントアプリケーション202およびリソースディスカバリサーバ114a間の通信の関連付けの1つの例を表す。またセッションコントローラ208は、リソースディスカバリサーバ114aにアクセスしうる他のクライアントアプリケーションに対するセッションの管理を行ってもよい。セッションコントローラ208は、サーバ114aに関連付けられたリソースディスカバリエンドポイントとのセッションをオープンする接続メッセージをクライアントアプリケーション202から受信すると、セッションを開始する。セッションコントローラ208によりセッションがオープンされるまで、セッションコントローラ208は、クライアントアプリケーション202からの他のあらゆる要求を拒否してもよい。セッションがオープンされている間、セッションコントローラ208は、各要求メッセージをクライアントアプリケーション202からリソースディスカバリエンドポイントプロセッサ210へ送る。
【0053】
クライアントアプリケーション202がリソース及び/又はリソースエンドポイントをリソースディスカバリエンドポイントプロセッサ210から選択し、選択されたリソースにアクセスする(または、選択されたリソースを予め作成及び/又はオープンされた、読み出し用、書き込み用、またはサブスクライブ用のエンドポイントに割り当てる)ために、読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントの作成を要求する場合、リソースディスカバリエンドポイントプロセッサ210は、選択されたリソースおよび関連付けられた読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントへの参照を保存する。またセッションコントローラ208は、選択されたリソースおよびそれらの関連付けられた読み出し用のまたは書き込み用のエンドポイントへの参照を保存してもよい。
【0054】
読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ(例えば、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212)は、クライアントアプリケーション202が作成及び/又はオープンする各読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントに対して、作成され及び/又は使用されてもよい。これらの読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサの各々に対して、セキュリティプロセッサ及び/又はセッションコントローラも、作成され及び/又は使用されてよい。プロセッサを作成及び/又は使用するステップは、プロセッサに関連付けられた機能を実行するサーバの部分を割り当てるステップを含んでもよい。あるいは、プロセッサを作成及び/又は使用するステップは、新規に作成されたプロセッサの各々に関連付けられた機能を実行するよう、1つまたは複数の隣接するサーバ上のプロセッサをアクティブにするステップを含んでもよい。各読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサのセキュリティプロセッサ及び/又はセッションコントローラに対し作成及び/又は使用するステップは、異なるクライアントアプリケーションに対する異なるセッションに対するリソースディスカバリエンドポイントプロセッサ210の間で伝送されるメッセージの通信パスを分離することにより、追加のセキュリティを提供する。また通信パスの分離は、リソースディスカバリエンドポイントプロセッサ210へ及び/又はリソースディスカバリエンドポイントプロセッサ210から伝送されるメッセージと、読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントへ及び/又は読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントから伝送されるメッセージと、に対して追加のセキュリティを提供する。読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212は、別の別個のセキュリティのためのセキュリティ階層を提供するために、セキュリティプロセッサ204b及び/又はセッションコントローラ208以外のもう1つの別個のコンピュータ媒体上に実装されてもよい。あるいは、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212が、各読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントへのアクセスを提供するために用いられてもよい。
【0055】
各読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212に対して、リソースディスカバリエンドポイントプロセッサ210及び/又はセッションコントローラ208は、クライアントアプリケーション202及び/又はこれらのリソースの関連付けられた不明朗な識別子により選択されたリソースを、対応する読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212へ伝送してもよい。これらの不明朗な識別子は、クライアントアプリケーション202により、リソースディスカバリエンドポイントプロセッサ210により、またはその両者により、割り当てられてもよい。
【0056】
識別子参照情報を保存することにより、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ例212は、各クライアントアプリケーション202に対して、どの識別子がどのリソースに対応するかを管理する。従って、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212およびクライアントアプリケーション202間の通信では、通信の監視を企てる未承認の当事者またはエンティティに対する保護の形態として、識別子を用いてもよい。いくつかの例では、複数のクライアントアプリケーションが、異なったリソースに対して同一の識別子を用いてもよい。同様に、異なったエンドポイントを通じてアクセスされる異なったリソースに対して、同一のクライアントが同一の識別子を用いてもよい。あるいは、同一のリソースに対して異なった識別子が同一のクライアントにより異なったエンドポイントを通じてリソースにアクセスするために用いられてもよい。これらの例では、リソースディスカバリエンドポイントプロセッサ210が、リソースに対する及び/又は読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212に対する、これらの識別子の割り当てを管理する。読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212は、関連付けられたリソースにアクセスするために、各クライアントアプリケーション202に対する識別子の使用を管理する。
【0057】
セッションコントローラ例208は、クライアントアプリケーション202に対する読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントに対する不明朗な識別子を管理してもよい。例えば、セッションコントローラ208は、各読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントと、リソースディスカバリエンドポイントプロセッサ212により割り当てられた対応する不明朗な識別子と、を保存してもよい。
【0058】
さらに、セッションコントローラ例208は、クライアントアプリケーション202からの要求メッセージを確認しおよび方向付ける。この確認により、宛先であるプロセッサ210及び/又は212に対する、要求メッセージにより識別されたセッションによるアクセスが有効であること及び/又は承認されたことが確実となる。サーバ114aのリソースディスカバリエンドポイントに向けられた有効な要求メッセージは、セッションコントローラ208により、リソースディスカバリエンドポイントプロセッサ210に経路が定められる。同様に、読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントに向かう有効な要求メッセージは、セッションコントローラ208により、適切な読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212に経路が定められる。またセッションコントローラ208は、メッセージ内で識別されるセッションが有効であるかどうかを判断することにより、及び/又は読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントに関連付けられた不明朗な識別子が有効であるかどうかを判断することにより、要求メッセージを確認してもよい。次に、読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントに向けられた有効な要求メッセージは、セッションコントローラ208により、対応する読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212へ経路が定められる。
【0059】
図2のセッションコントローラ例208は、クライアントアプリケーション202が、アクセスを停止することを示すメッセージを、クライアントアプリケーション202がリソースディスカバリサーバ114aへ送信すると、セッションを停止する。停止メッセージを受信すると、セッションコントローラ208は、リソース、読み出し用エンドポイント、書き込み用エンドポイント、及び/又は対応する識別子を含む、保存されたセッション情報を削除する。クライアントアプリケーション202が、削除されたセッションから、リソース、及び/又はエンドポイントのいずれかにアクセスしようとすると、クライアントアプリケーション202は新規のセッションを開始し、各リソースに対する再登録をすることが要求される。
【0060】
リソース及び/又は関連付けられたエンドポイントへのアクセスを管理及び/又は制御するために、図2のリソースディスカバリサーバ例114aは、リソースディスカバリエンドポイントプロセッサ210を備える。リソースディスカバリエンドポイントプロセッサ例210は要求メッセージ(例えば、リソース発見要求メッセージ、エンドポイントオープン要求メッセージ、及び/又は登録要求メッセージ)を、セッションコントローラ208を介してクライアントアプリケーション202から受信する。要求メッセージを受信すると、リソースディスカバリエンドポイントプロセッサ210は、要求メッセージ内の及び/又は要求メッセージに関連付けられた情報を用いて、クライアントアプリケーション202が発見し、その後にアクセスしうるリソースへのアクセスを制御する。例えば、サーバディスカバリエンドポイントプロセッサ206は、クライアントアプリケーション202がどのリソースへのアクセスが承認されているかを判断するために要求メッセージ内のユーザ識別フィールドをチェックしてもよい。あるいは、リソースディスカバリエンドポイントプロセッサ例210は、要求メッセージ内の、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び/又はプロトコル種別をチェックしてもよい。
【0061】
リソースディスカバリエンドポイントプロセッサ例210は、クライアントアプリケーション202がどのリソースにアクセスしてよいかを判断するために、アクセスリストを用いてもよい。アクセスリストは、リソースのリストを各々参照する、承認されたユーザ、ワークステーション及び/又はクライアントアプリケーションのリストを含んでもよい。いくつかの実装例では、リソースのリストは、リソースのグループに対応するコードを含んでもよい。クライアントアプリケーション202はどのリソースへのアクセスが承認されているかを判断すると、リソースディスカバリエンドポイントプロセッサ210は、そのリソースのリストをクライアントアプリケーション202に提供する。そのリストは、リソース、リソース内に含まれる情報、及び/又はリソースに関するコード化された情報の名称を含んでもよい。いくつかの例では、リストは1つのセットにグループ化されたリソースを含んでもよい。これらの例では、クライアントアプリケーションは、セットを選択することにより、セット内のリソースの一部または全部にアクセスしてもよい。
【0062】
リソースディスカバリエンドポイントプロセッサ例210は、1つまたは複数の選択されたリソースが割り当てられていてもよい、読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントを伴う、クライアントアプリケーション202を、承認されている場合、クライアントアプリケーション202に提供する。またリソースディスカバリエンドポイントプロセッサ210は、各選択されたリソースを、対応するセッションコントローラ(例えば、セッションコントローラ208)及び/又は共有される読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212に制御される、読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントに追加する。リソースディスカバリエンドポイントプロセッサ210は、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212が読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントに各リソースを追加するよう、選択された各リソースを伝送してもよい。
【0063】
さらに、リソースディスカバリエンドポイントプロセッサ例210は、各選択されたリソースに対する識別子を生成し、クライアントアプリケーション202にその識別子を伝送する。例えば、クライアントアプリケーション202がタンクリソースを選択する場合、リソースディスカバリエンドポイントプロセッサ210はタンクリソースに不明朗な識別子「DM45」を割り当てる。リソースディスカバリエンドポイントプロセッサ210はこのDM45識別子をクライアントアプリケーション202に伝送する。クライアントアプリケーション202およびリソースディスカバリサーバ114a間のその後の通信では、タンクリソースを参照するときにはDM45識別子が用いてもよい。
【0064】
リソースディスカバリエンドポイントプロセッサ例210は、選択されたリソースが追加されうる1つまたは複数の読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントを作成及び/又はオープンするための、登録要求メッセージ及び/又はオープンエンドポイント要求メッセージを受信する。リソースディスカバリエンドポイントプロセッサ210は、登録要求メッセージを生成したクライアントアプリケーション202が、選択されたリソースに対して読み出し、書き込み、及び/又はサブスクライブを実行することが承認されているかどうかを判断する。一般に、クライアントアプリケーション202がリソースに対するアクセス権を提供されている場合、クライアントアプリケーション202はそのリソースに対する、読み出しの及び/又はサブスクライブのアクセスが認められる。しかし、クライアントアプリケーション202がリソースに対する書き込みのアクセス権を有しないこともある。
【0065】
またリソースディスカバリエンドポイントプロセッサ210は、エンドポイントアクセス制御を用いて、クライアントアプリケーション202が書き込みアクセスに対して承認されているかどうか判断する。例えば、エンドポイントアクセス制御は、承認されたユーザ及び/又はクライアントアプリケーション202のリストを含みうるアクセス制御リスト用いてもよい。クライアントアプリケーション202が書き込みアクセスに対して承認されている場合、リソースディスカバリエンドポイントプロセッサ210は要求に応じて、クライアントアプリケーション202により選択されたリソースに対して、1つまたは複数の承認された書き込み用エンドポイントを作成及び/又はオープンする。次にリソースディスカバリエンドポイントプロセッサ210は、クライアントアプリケーション202に対し書き込みが承認された選択されたリソースを、新規に作成され及び/又はオープンされた書き込み用エンドポイントに追加する。
【0066】
読み出し用エンドポイント、書き込み用エンドポイント、サブスクライブ用エンドポイント、およびプロセス制御リソースへのアクセスを管理するために、図2のリソースディスカバリサーバ例114aは、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212を備える。読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212は、リソースへのアクセスを要求するメッセージに対するエンドポイントアクセス制御を用いて、クライアントアプリケーション202が、読み出し、書き込み、及び/又はサブスクライブのアクセスを承認されているかどうかを判断する。例えば、エンドポイントアクセス制御は、承認されたユーザ及び/又はクライアントアプリケーション202のリストを含みうるアクセス制御リストを用いてもよい。所定のリソースに対する読み出し、書き込み、またはサブスクライブを実行する要求を、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212が受信すると、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212は、クライアントアプリケーション202がそのリソースに対する読み出し、書き込み、及び/又はサブスクライブのアクセスに対し承認されていることを検証する。
【0067】
また読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ例212は、通信パス214を介して、リソースに対するアクセスを提供及び/又は許可する。例えば、選択されたソースは、図1のコントローラ122に位置しうる。クライアントアプリケーション202が、読み出し、書き込み、及び/又はサブスクライブを実行するメッセージを選択されたリソースへ伝送する場合、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ例212は、メッセージ内の不明朗な識別子を用いて、コントローラ122内のリソースにアクセスする。読み出し用エンドポイントに送信されたメッセージに対して、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212は、所望のリソース(例えば、値、アラーム、及び/又はイベント)を取り出す。同様に、書き込み用エンドポイントに送信されたメッセージに対して、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212は、リソース(例えば、図1のコントローラ122)にデータを書き込む。
【0068】
サーバディスカバリエンドポイントプロセッサ206、リソースディスカバリエンドポイントプロセッサ210及び/又は読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212に使用されたエンドポイントアクセス制御情報を保存するために、図2のサーバ例108および114aはアクセス制御データベース220に通信可能に接続される。いくつかの例では、アクセス制御データベース220は、サーバ108及び/又は114a内に含まれてもよい。あるいは、アクセス制御データベース例220は、図1のプロセス制御システム104a〜104c内に及び/又はプロセス制御プラント102内に含まれてもよい。さらに、アクセス制御データベース220は、プロセス制御プラント102における中央アクセス制御システム内に含まれてもよい。アクセス制御データベース例220は、EEPROM、RAM、ROM、及び/又は他の任意の種別のメモリにより実装されてもよい。またアクセス制御データベース220は、構造化照会言語(SQL)サーバ及び/又は他のあらゆるデータベース技術により実装されてもよい。セキュリティ管理者または他の承認されたユーザは、アクセス制御データベース220にアクセスして、アクセス制御リスト内の承認されたユーザおよび承認されたユーザのアクセスレベルを、更新、追加、削除、及び/又は変更してもよい。
【0069】
サーバディスカバリサーバ108およびリソースディスカバリサーバ114aの実装方法例が図2に示されているが、図2に示すインターフェース、データ構造、構成要素、プロセス及び/又はデバイスの1つまたは複数は、他の任意の方法で、組み合わせ、分割、再編成、省略、削除及び/又は実装されてもよい。例えば、図2のセキュリティプロセッサ例204a〜204b、サーバディスカバリエンドポイントプロセッサ例206、セッションコントローラ例208、リソースディスカバリエンドポイントプロセッサ例210、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ例212、及び/又はアクセス制御データベース例220は、例えば1つまたは複数のコンピュータデバイス及び/又はコンピュータプラットホーム(例えば、図5の処理プラットホーム例500)により実行される機械アクセス可能なまたは読み出し可能な命令を用いて、別個に及び/又は任意の組み合わせで、実装されてもよい。
【0070】
さらに、セキュリティプロセッサ例204a〜204b、サーバディスカバリエンドポイントプロセッサ例206、セッションコントローラ例208、リソースディスカバリエンドポイントプロセッサ例210、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ例212、アクセス制御データベース例220及び/又はより一般的にサーバディスカバリサーバ108及び/又はリソースディスカバリサーバ114aは、ハードウェア、ソフトウェア、ファームウェア及び/又はハードウェア、ソフトウェア及び/又はファームウェアの任意の組み合わせにより実装されてもよい。従って、例えば、セキュリティプロセッサ例204a〜204b、サーバディスカバリエンドポイントプロセッサ例206、セッションコントローラ例208、リソースディスカバリエンドポイントプロセッサ例210、読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ例212、アクセス制御データベース例220及び/又は、より一般的にサーバディスカバリサーバ108及び/又はリソースディスカバリサーバ114aのいずれもが、1つまたは複数の回路、プログラム可能プロセッサ、特定用途向けの集積回路(ASIC)、プログラム可能論理デバイス(PLD)及び/又はフィールドプログラム可能論理デバイス(FPLD)その他を用いて実装可能である。
【0071】
図3は、図1および2に示すサーバディスカバリサーバ例108およびリソースディスカバリサーバ114aにより提供される階層型セキュリティ例300を示す図である。階層型セキュリティ300は、サーバディスカバリエンドポイント302にアクセスする図2のクライアントアプリケーション202、リソースディスカバリエンドポイント304、読み出し用エンドポイント306、書き込み用エンドポイント308、およびサブスクライブ用エンドポイント310を備える。階層型セキュリティ300の図は、クライアントアプリケーション202がプロセス制御システム104a内のリソースにアクセスするプロセスの1つの例を示す。
【0072】
まず、図3のクライアントアプリケーション202は、図1および図2のサーバディスカバリサーバ108のサーバディスカバリエンドポイント302にアクセスする。サーバディスカバリエンドポイント302は、クライアントアプリケーション202に利用可能なリソースディスカバリサーバのリストを含む。さらに、サーバディスカバリエンドポイント302内でサーバのリストに隣接するハッシュ化されたボックスは、図2のセキュリティプロセッサ204aを表す。リソースディスカバリサーバのリストは、クライアントアプリケーション202がアクセスを承認されたリソースディスカバリサーバとクライアントアプリケーション202とを照合することにより、判断されてもよい。クライアントアプリケーション202は、リストされたサーバの1つまたは複数を選択してもよい。リストされたサーバを選択することにより、サーバディスカバリエンドポイント302は、選択されたサーバに対するエンドポイントをクライアントアプリケーション202に提供する。あるいは、サーバディスカバリエンドポイント302は、同時に各リソースディスカバリサーバのリソースディスカバリエンドポイント304をクライアントアプリケーション202に提供してもよい。
【0073】
次に、クライアントアプリケーション202は、サーバディスカバリエンドポイント302により提供されるエンドポイントを用いて、リソースディスカバリエンドポイント304にアクセスする。あるいは、リソースディスカバリエンドポイント304のエンドポイント及び/又はアドレスを用いてクライアントアプリケーション202が初期設定される例では、クライアントアプリケーション304は、最初にサーバディスカバリエンドポイント302にアクセスせずに、リソースディスカバリエンドポイント304にアクセスしてもよい。リソースディスカバリエンドポイント304は、クライアントアプリケーション202によりアクセス可能なリソースのリストを含む。リソースのリストは、リソースのグループ及び/又は個々のリソースを含んでもよい。さらに、リソースディスカバリエンドポイント304内のサーバのリストに隣接するハッシュ化されたボックスは、図2のセキュリティプロセッサ204bを表す。実装例では、クライアントアプリケーション202は、利用可能なリソースのリストから、登録する1つまたは複数のリソースを選択してもよい。これらの例では、クライアントアプリケーション202は、1つまたは複数の読み出し用エンドポイント306、1つまたは複数の書き込み用エンドポイント308、及び/又は1つまたは複数のサブスクライブ用エンドポイント310を作成及び/又はオープンすることを、リソースディスカバリエンドポイント304に要求する。さらに、クライアントアプリケーションは、新規に作成及び/又はオープンされた読み出し用エンドポイント306、新規に作成及び/又はオープンされた書き込み用エンドポイント308、及び/又は新規に作成及び/又はオープンされたサブスクライブ用エンドポイント310に対して、選択されたリソースのいずれが関連付けられるかを指定する。クライアントアプリケーションは、エンドポイントが作成及び/又はオープンされる時点で、エンドポイントが作成及び/又はオープンされた後に、及び/又はエンドポイントの作成及び/又はオープンしている間に、リソースを指定してもよい。
【0074】
クライアントアプリケーション202が、読み出し用エンドポイント306、書き込み用エンドポイント308、及び/又はサブスクライブ用エンドポイント310を、作成及び/又はオープンすると、リソースディスカバリエンドポイント304は、新規に作成及び/又はオープンされたエンドポイント306〜310の各々に関連付けられた不明朗な識別子を、クライアントアプリケーション202に提供する。さらに、リソースを選択して、そのリソースを、読み出し用エンドポイント306、書き込み用エンドポイント308、及び/又はサブスクライブ用エンドポイント310に割り当てると、選択されたリソースは、読み出し用エンドポイント306、書き込み用エンドポイント308、及び/又はサブスクライブ用エンドポイント310において選択されたリソースのリスト内に含まれる。
【0075】
読み出し用エンドポイント306、書き込み用エンドポイント308、及び/又はサブスクライブ用エンドポイント310に追加された各リソースに対して、リソースに対応する1つの不明朗な識別子、またあるいは1対の不明朗な識別子(例えば、クライアントアプリケーション202により割り当てられた1つの識別子およびリソースディスカバリエンドポイント304により割り当てられた1つの識別子)は、リソースディスカバリエンドポイント304によりクライアントアプリケーション202へ伝送される。クライアントアプリケーション202は、そのリソースデータに読み出し用エンドポイント306を介してアクセスすることにより、選択されたリソースに関連付けられたデータ(例えば、値、アラーム、及び/又はイベント)を読み出してもよい。同様に、クライアントアプリケーション202は、書き込み用エンドポイン308を介してリソースにアクセスすることにより、データをリソースに書き込んでもよい。またクライアントアプリケーション202は、サブスクライブ用エンドポイント310を介してリソースにアクセスすることにより、リソースのデータにサブスクライブしてもよい。
【0076】
図4A及び/又は図4Bは、図1図2、及び/又は図3に示す、サーバディスカバリサーバ例108、リソースディスカバリサーバ例114a〜114c、クライアントアプリケーション例202、及び/又はプロセス制御環境例100を実装しうるプロセスの例を示すフローチャートである。図4A及び/又は図4Bに示すプロセスの例は、プロセッサ、コントローラ及び/又は他の任意の適切な処理デバイスにより実行されてもよい。例えば、図4A及び/又は図4Bに示すプロセスの例は、フラッシュメモリ、CD、DVD、フロッピー(登録商標)ディスク、ROM、RAM、プログラム可能なROM(PROM)、電気的プログラム可能なROM(EPROM)、電気的消去可能なPROM(EEPROM)、光記憶ディスク、光記憶デバイス、磁気記憶ディスク、磁気記憶デバイス、及び/又は方法、プロセスまたはデータ構造の形のプログラムコード及び/又は命令を坦持または保存するために使用可能で、且つプロセッサ、汎用のまたは特殊用途のコンピュータ、またはプロセッサを有する他の機械(例えば、図5に関して以下で説明されるプロセッサプラットホーム例500)によりアクセス可能な他の任意の媒体などの、任意の具体的なコンピュータ可読媒体に保存されるコード化された命令により具体化されてもよい。上記の組み合わせもまたコンピュータ可読媒体の範囲に含まれる。
【0077】
プロセスは、例えば、プロセッサ、汎用のコンピュータ、特殊用途のコンピュータ、または特殊用途の処理用機械に、1つまたは複数の特定のプロセスを実行させる命令及び/又はデータを含む。あるいは、図4A及び/又は図4Bに示すオペレーション例の一部または全部は、ASIC、PLD、FPLD、離散論理、ハードウェア、ファームウェア、その他、の任意の組み合わせを用いて実行されてもよい。
【0078】
また、図4A及び/又は図4Bに示すオペレーション例の1つまたは複数は、1つまたは複数の手動のオペレーションまたは、例えば、ファームウェア、ソフトウェア、離散論理及び/又はハードウェアの任意組み合わせなど、任意の前述の技術の任意の組み合わせとして実装されてもよい。さらに、図4A及び/又は図4Bに示すオペレーション例を実行する他の多数のプロセスを用いてもよい。例えば、ブロックの実行順序を変更してもよく、及び/又は記載のブロックの1つまたは複数を、変更、削除、分割、または組み合わせてもよい。さらに、図4A及び/又は図4Bに示すオペレーション例のいずれかまたは全部は、順次実行されてもよく、及び/又は例えば、スレッド、プロセッサ、デバイス、離散論理、回路、その他を別個に処理することにより、並行して実行されてもよい。
【0079】
図4Aおよび図4Bに示すプロセス例400は、図1のプロセス制御環境例100内のインターフェースアクセス制御に対する階層型セキュリティを提供する。さらに、プロセス例400は、製造オートメーションシステム、工業システム、その他を含む他の種別のデータシステム用のインターフェースアクセス制御に対する階層型セキュリティを提供しうる。さらに、プロセス例400は、サーバディスカバリサーバ(例えば、図1に示すサーバディスカバリサーバ108)内のエンドポイントにアクセスするための各要求に対して、実行されてもよい。サーバディスカバリサーバ108にアクセスするための各要求に対して、プロセス例400は、順次実行されてもよく、及び/又はプロセス例400の他の例と並列して実行されてもよい。
【0080】
プロセス例400は、サーバディスカバリサーバ108内のエンドポイントにアクセスするサーバ発見要求メッセージが受信される(ブロック402)と、開始する。要求メッセージは、リモートワークステーション(例えば、リモートワークステーション116及び/又は118)に位置するクライアントアプリケーションから、またあるいは、ローカルワークステーション(例えば、ローカルワークステーション106)から、発信されてもよい。プロセス例400は、要求メッセージに関連付けられた優先権をチェックすることにより、サーバディスカバリサーバ108が要求メッセージに対してアクセス可能かまたは利用可能かどうかを判断する(ブロック404)。例えば、プロセス400は、要求メッセージ内のユーザ識別フィールドをチェックして、ユーザ識別値が承認されたユーザに対応するかどうかを判断してもよい。あるいは、プロセス例400は、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び/又はメッセージの伝送に用いられたプロトコルをチェックして、要求メッセージの発信者がサーバディスカバリサーバ404にアクセスすることが承認されているかどうかを判断してもよい。
【0081】
要求メッセージがサーバディスカバリサーバ108にアクセスすることが承認されていないとプロセス例400が判断した場合(ブロック404)、プロセス400は、応答メッセージを生成及び/又はクライアントアプリケーションに伝送する(ブロック406)。応答メッセージは、サーバディスカバリサーバ108にアクセスする要求を拒否してもよい。応答メッセージを生成および伝送すると(ブロック406)、プロセス例400は終了する。
【0082】
一方、要求メッセージがサーバディスカバリサーバ108にアクセスすることが承認されているとプロセス例400が判断した場合(ブロック404)、要求メッセージは、サーバディスカバリサーバ108内で受信される(ブロック408)。次に、要求メッセージに関連付けられたクライアントアプリケーションが、どのリソースディスカバリサーバ(例えば、リソースディスカバリサーバ114a〜114c)にアクセスすることが承認されているかを、プロセス例400が判断する(ブロック410)。クライアントアプリケーションに利用可能なリソースディスカバリサーバは、識別フィールド、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び/又は要求メッセージ内の及び/又は要求メッセージに関連付けられたプロトコルに基づいてもよい。
【0083】
承認されたリソースディスカバリサーバが存在しない(例えば、承認されたリソースディスカバリエンドポイントのリストが空欄)とプロセス例400が判断した場合、利用可能なリソースディスカバリサーバが存在しないことを示すメッセージが生成され、及び/又はクライアントアプリケーションに伝送される(ブロック414)。メッセージを伝送する(ブロック414)と、プロセス例400は終了する。
【0084】
一方、少なくとも1つの承認されたリソースディスカバリサーバが存在する(ブロック412)場合、プロセス例400は、認められた及び/又は承認されたリソースディスカバリエンドポイント(例えば、リソースディスカバリサーバ114a〜114cのリソースディスカバリエンドポイント)のリストをクライアントアプリケーションに提供する(ブロック416)。他の例では、エンドポイントは、クライアントアプリケーションを提供する各リソースディスカバリサーバに対して、リソースディスカバリエンドポイントのリストを提供されてもよい。次に、クライアントアプリケーションは、リストされたリソースディスカバリエンドポイントの1つまたは複数を選択する(ブロック418)。他の例では、クライアントアプリケーションはリソースディスカバリエンドポイントを選択しなくともよく、及び/又はプロセス例400を終了してもよい。
【0085】
プロセス例400は、選択されたリソースディスカバリエンドポイント(例えば、リソースディスカバリサーバ114a)にアクセスする要求メッセージが受信された(ブロック420)とき、継続する。あるいは、クライアントアプリケーションがリソースディスカバリエンドポイントを用いて初期設定されている例では、プロセス例400は、リソースディスカバリエンドポイントにアクセスする要求メッセージ(例えば、接続メッセージ)が受信された(ブロック420)とき、開始してもよい。要求メッセージは、生成及び/又はクライアントアプリケーションから伝送される。さらに、リソースディスカバリエンドポイントにアクセスする要求メッセージをプロセス例400が受信すると、プロセス例400は、クライアントアプリケーションに対するセッションをオープンする。他の例では、クライアントアプリケーションは、複数のリソースディスカバリエンドポイントを選択してもよい。これらの例では、プロセス例400は、選択された各リソースディスカバリエンドポイントに対するセッションをオープンしてもよい。さらに、選択された各リソースディスカバリエンドポイントに対し、プロセス例400は、ブロック420〜446の別個の例を動作させてもよい。
【0086】
リソースディスカバリエンドポイントにアクセスする要求メッセージを受信する(ブロック420)と、プロセス例400は、選択されたリソースディスカバリエンドポイントのどのリソースがクライアントアプリケーションに利用可能であるかを判断する(ブロック422)。クライアントアプリケーションに利用可能なリソースは、識別フィールド、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び/又は要求メッセージ内の及び/又は要求メッセージに関連付けられたプロトコルに基づいてもよい。さらに、利用可能なリソースは、クライアントアプリケーションに対して、プロセス制御プラント102の管理者、ユーザ、及び/又はオペレータにより、予め定義されてもよい。次に、プロセス例400は、要求メッセージに関連付けられた利用可能なリソースが存在するかどうかを判断する(ブロック424)。利用可能な及び/又は承認されたリソースが存在しない場合、プロセス例400は、クライアントアプリケーションがもう1つのリソースディスカバリエンドポイントを選択し得るよう、再びリソースディスカバリエンドポイントのリストを提供する(ブロック416)。さらに、プロセス例は、クライアントアプリケーションとのセッションを閉じてもよい。
【0087】
少なくとも1つの利用可能なリソースが存在する(ブロック424)場合、プロセス例400は次に、利用可能なリソースのリストをクライアントアプリケーションに提供する(ブロック426)。次に、クライアントアプリケーションは、リストされたリソースの1つへのアクセスの登録を要求してもよい(ブロック428)。あるいは、クライアントアプリケーションは、同一の要求の中でリストされたリソースの2つ以上へのアクセスの登録を要求してもよい。他の実装例では、クライアントアプリケーションは、もう1つのリソースディスカバリエンドポイントを選択してもよく、またはプロセス例400を終了してもよい。
【0088】
登録するリソースを選択すると(ブロック428)、クライアントアプリケーションは、選択されたリソースに対する識別子をリソースディスカバリエンドポイントに伝送する(ブロック430)。識別子は、クライアントアプリケーションと、選択されたリソースディスカバリエンドポイントを含むリソースディスカバリサーバと、のみにより知られる。リソースディスカバリエンドポイントが識別子をクライアントアプリケーションから受信すると、リソースディスカバリエンドポイントに関連付けられたリソースディスカバリサーバは、セッションの状況内のリソースに対する、伝送された識別子を保存する。これらの識別子は、クライアントアプリケーション(例えば、ワークステーション106、116、及び/又は118)およびリソースディスカバリサーバ(例えば、リソースディスカバリサーバ114a〜114c)間の通信にアクセスを企てる未認証のユーザにとって、不明朗である。次に、プロセス例400は、クライアントアプリケーションが追加のリソースを既に要求しているかどうか(ブロック432)を判断する。クライアントアプリケーションが他のリソースを既に要求している場合、クライアントアプリケーションは、リソースに対する要求をリソースディスカバリエンドポイントに送信する(ブロック428)。他の例では、クライアントアプリケーションがリソースを選択すると(ブロック428)、プロセス例400は選択されたリソースに対する識別子をクライアントアプリケーションに伝送してもよい(ブロック430)。次に、識別子を受信すると、クライアントアプリケーションは識別子を用いてリソースディスカバリサーバと通信する。
【0089】
登録する追加のリソースをクライアントアプリケーションが選択しない場合(ブロック432)、プロセス例400は、クライアントアプリケーションが既に読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントの作成及び/又はオープンを要求しているかどうか(ブロック434)を判断する。エンドポイントの作成及び/又はオープンをクライアントアプリケーションが要求しない場合、プロセス例400は、既に作成されたエンドポイントへの1つまたは複数のリソースの割り当てをクライアントアプリケーションが要求するかどうか(ブロック442)を判断する。
【0090】
一方、読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントの作成及び/又はオープンをクライアントアプリケーションが要求する場合(ブロック434)、クライアントアプリケーションは、エンドポイントを作成及び/又はオープンする要求を送信する。プロセス例400が要求を受信すると、プロセス例400は、クライアントアプリケーションによるエンドポイントの作成及び/又はオープンが承認されているかどうかをキュリティ基準に基づいて判断することにより、要求を処理する(ブロック436)。セキュリティ基準は、要求者の識別及び/又は職務権限、要求を発するワークステーション及び/又はコンピュータのネットワークアドレス、クライアントアプリケーションの識別及び/又は種別、リソースディスカバリエンドポイントにアクセスするためにクライアントアプリケーションにより用いられるプロトコル、及び/又はエンドポイントが要求を受信する時間を含んでもよい。プロセス例400がクライアントアプリケーションを承認する場合、方法例400は、要求されたエンドポイントの作成及び/又はオープンを実行し、クライアントアプリケーションに関連付けられた識別子を伝送する(ブロック438)。識別子は、セッションに特有であってもよく、且つリソースディスカバリエンドポイントおよびクライアントアプリケーションのみに知られてもよい。
【0091】
次にプロセス例400は、別の読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントの作成及び/又はオープンをクライアントアプリケーションが既に要求しているかどうか(ブロック440)を判断する。クライアントアプリケーションが追加のエンドポイントを既に要求している場合、プロセス例400はその要求を処理する(ブロック436)。いくつかの例では、クライアントアプリケーションがリソースを選択し、読み出し用エンドポイント、書き込み用エンドポイント、及び/又はサブスクライブ用エンドポイントにこれらのリソースを割り当てることが承認されてもよい。これらの例では、プロセス例400は、要求された読み出し用、書き込み用、及び/又はサブスクライブ用のエンドポイントに対する1つまたは複数のリソースの割り当てをクライアントアプリケーションが既に要求しているかどうか(ブロック442)を判断する。1つまたは複数のリソースの割り当てをクライアントアプリケーションが既に要求している場合、プロセス例400は、要求を承認し、要求の対象であるオープン及び/又は作成されたエンドポイントに、選択されたリソースを割り当てる(ブロック444)ことにより、要求を処理する。次にプロセス例400は、クライアントアプリケーションがセッションの停止を要求するまで、選択されたリソースへのアクセスの提供及び/又は許可を識別子を介して行う(ブロック446)。さらに、クライアントアプリケーションが1つまたは複数のリソースの割り当てをまだ要求していない場合(ブロック442)、プロセス例400は、リソースへのアクセスの提供及び/又は許可を識別子を介して行う(ブロック446)。さらに、クライアントアプリケーションは、ブロック428、434、及び/又は442に説明されているように、セッションがオープンされている間、追加の要求を発信してもよい。セッション停止の要求を受信すると、プロセス例は、セッションと、エンドポイントおよび関連付けられたリソースへのアクセスと、を停止する(ブロック448)。次にプロセス例400は終了する。
【0092】
図5は、本明細書に記載の方法例および装置例を実装するために使用されうるプロセッサシステム例500のブロック図である。例えば、プロセッサシステム例500に類似するまたは同一のプロセッサシステムは、図1及び/又は図2に示す、サーバ発見サーバ例108、リソースディスカバリサーバ例114a〜114c、クライアントアプリケーション例202、セキュリティプロセッサ例204a〜204b、サーバディスカバリエンドポイントプロセッサ例206、リソースディスカバリエンドポイントプロセッサ210、及び/又は読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212を実装するために使用されてもよい。プロセッサシステム例500は、複数の周辺装置、インターフェース、チップ、メモリ、その他を備えるものとして以下に記載されているが、サーバディスカバリサーバ例108、リソースディスカバリサーバ例114a〜114c、クライアントアプリケーション例202、セキュリティプロセッサ例204a〜204b、サーバディスカバリエンドポイントプロセッサ例206、リソースディスカバリエンドポイントプロセッサ210、及び/又は読み出し用/書き込み用/サブスクライブ用エンドポイントプロセッサ212の1つまたは複数を実装するために用いられる他のプロセッサシステム例から、これらの構成要素の1つまたは複数は省略されてもよい。
【0093】
図5に示されるように、プロセッサシステム500は、相互接続バス514に接続されたプロセッサ512を備える。プロセッサ512は、図5では完全にオンチップであると示されているが、あるいは完全にまたは部分的にオフチップに位置してもよく、且つ専用の電気接続を介して及び/又は相互接続バス514を介して、プロセッサ512に直接接続されたレジスタセットまたはレジスタ空間516を備える。プロセッサ512は、任意の適切なプロセッサ、処理ユニット、またはマイクロプロセッサであってもよい。図5に示されていないが、システム500はマルチプロセッサシステムであってもよく、従って、プロセッサ512に同一であるかまたは類似し、且つ相互接続バス514に通信可能に接続された1つまたは複数の追加のプロセッサを備えてもよい。
【0094】
図5に示すプロセッサ512は、チップセット518に接続され、チップセット518はメモリコントローラ520と周辺装置入出力(I/O)コントローラ522とを備える。よく知られているように、一般にチップセットは、チップセット518に接続された1つまたは複数のプロセッサによりアクセス可能なまたはこれにより使用される複数の汎用の及び/又は特殊用途のレジスタ、タイマー、その他ともに、I/Oのおよびメモリの管理機能を提供する。メモリコントローラ520は、プロセッサ512(または、複数のプロセッサが存在する場合には、複数のプロセッサ)をシステムメモリ524および大容量記憶メモリ525にアクセスさせる機能を実行する。
【0095】
システムメモリ524は、例えば静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、フラッシュメモリ、読み出し専用メモリ(ROM)、その他などの、任意の所望する種別の揮発性の及び/又は不揮発性のメモリを備えてもよい。大容量記憶メモリ525は、あらゆる所望する種別の大容量記憶デバイスを備えてもよい。例えば、サーバディスカバリサーバ108及び/又はリソースディスカバリサーバ114a(図1)を実装するためにプロセッサシステム例500が用いられる場合、大容量記憶メモリ525は、ハードディスクドライブ、光学デバイス、テープ記憶デバイスなどを含んでもよい。あるいは、アクセス制御データベース220を実装するためにプロセッサシステム例500が用いられる場合、大容量記憶メモリ525は、ソリッドステートメモリ(例えば、フラッシュメモリ、RAMメモリ、その他)、磁気メモリ(例えば、ハードドライブ)、またはアクセス制御データベース220における大容量記億に適した他の任意のメモリを含んでもよい。
【0096】
周辺装置I/Oコントローラ522は、プロセッサ512を周辺装置入出力(I/O)デバイス526および528ならびにネットワークインターフェイス530と周辺装置I/Oバス532を介して通信させる機能を実行する。I/Oデバイス526および528は、例えばキーボード、ディスプレイ(例えば、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、その他)、ナビゲーションデバイス(例えばマウス、トラックボール、キャパシティブタッチパッド、ジョイスティック、その他)、その他などの任意の所望する種別のI/Oデバイスであってもよい。ネットワークインターフェイス530は、例えば、プロセッサシステム500をもう1つのプロセッサシステムと通信させる、イーサネット(登録商標)デバイス、非同期転送モード(ATM)デバイス、802.11デバイス、DSLモデム、ケーブルモデム、セルラーモデム、その他であってもよい。
【0097】
図5ではメモリコントローラ520およびI/Oコントローラ522がチップセット518内の別個の機能ブロックとして示されているが、これらのブロックにより実行される機能は、単一の半導体回路内に統合されてもよく、また2つ以上の別個の集積回路を用いて実装されてもよい。
【0098】
上に述べた方法例及び/又は装置例の少なくとも一部は、コンピュータプロセッサ上で実行される、1つまたは複数のソフトウェアの及び/又はファームウェアのプログラムにより実装される。一方、特定用途向けの集積回路、プログラム可能論理ユニットおよび他のハードウェアデバイスを含むがこれらに限定されない専用のハードウェア実装は、全体的にまたは一部分において本明細書に記載の方法例及び/又は装置例の一部または全部を実装するよう同様に構成できる。さらに、分散処理すなわちコンポーネント/オブジェクト分散処理、並行処理、または仮想マシン処理を含むがこれらに限定されない別の代替的なソフトウェア実装もまた、本明細書に記載の方法例及び/又はシステムを実装するよう構成することができる。
【0099】
なお、本明細書に記載のソフトウェアによる及び/又はファームウェアの例による実装は、磁気媒体(例えば、磁気ディスクまたは磁気テープ)、光ディスク等の光磁気媒体または光媒体、またはメモリカードあるいは1つまたは複数の読み出し専用(不揮発性)メモリ、ランダムアクセスメモリ、または他の書き換え可能(揮発性)メモリを収容する他のパッケージ等のソリッドステート媒体等の、具体的な記憶媒体に保存されることにも留意されたい。従って、本明細書に記載のソフトウェア及び/又はファームウェアの例は、上述の記憶媒体または後続の記憶媒体等の具体的な記憶媒体に保存される。特定の基準およびプロトコルを参照して本明細書がこれまでに構成要素例および機能例を説明した範囲内で、本発明の範囲がそれらの基準やプロトコルに限定されないことを理解すべきである。例えば、インターネット用および他のパケット交換ネットワーク伝送用の基準(例えば、伝送制御プロトコル(TCP)/インターネットプロトコル(IP)、ユーザデータグラムプロトコル(UDP)/IP、ハイパーテキスト記述言語(HTML)、ハイパーテキスト転送プロトコル(HTTP))の各々が、該当技術分野の現在の水準の例を表す。そのような基準は、同一の一般的機能を有する、より高速でより効率的な等価物により定期的に取って代わられるものである。従って、同一の機能を有する交換基準およびプロトコルは、本発明によって想定される等価物であり、添付の特許請求の範囲内に含まれることが意図される。
【0100】
さらに、本特許は、ハードウェア上で実行されるソフトウェアまたはファームウェアを含む方法例および装置例を開示するものであるが、そのようなシステムは単に説明的なものであって本発明を限定するべきではない点に注意すべきである。例えば、これらのハードウェアの及び/又はソフトウェアの構成要素のいずれかまたは全部がハードウェアのみで、ソフトウェアのみで、ファームウェアのみで、またはハードウェア、ファームウェア、及び/又はソフトウェアの何らかの組み合わせで具現することが可能であることを理解すべきである。従って、本明細書ではこれまでに、方法、システム、機械アクセス可能媒体の例について述べてきたが、これらの例はそれらのシステム、方法、および機械アクセス可能媒体を実装する唯一の方法ではない。ゆえに、本明細書では、方法、システム、機械アクセス可能媒体の特定の例を説明してきたが、本特許の保護の範囲はこれらに限定されない。むしろ本発明は、字義通りにまたは均等論により添付の特許請求の範囲に公正に属するすべての方法、システム、機械アクセス可能媒体を包含するものである。
図1
図2
図3
図4A
図4B
図5