(57)【要約】【課題】インターフェースアクセス制御に階層型セキュリティを提供する方法及び装置の提供。【解決手段】本発明の方法は、サーバエンドポイントへの接続メッセージをクライアントアプリケーションから第１サーバにおいて受信し、その受信に応答して、サーバエンドポイントとクライアントアプリケーションとの間のセッションをオープンし、少なくとも１つのリソースへの、読出しアクセス、書込みアクセス、又はサブスクライブアクセスを提供する要求をクライアントアプリケーションから受信し、オープンされたセッション内でエンドポイントをオープンし、承認されたリソースの選択をエンドポイントに割り当てる要求をクライアントアプリケーションから受信し、選択されたリソースをエンドポイントに割り当て、クライアントアプリケーションがエンドポイントを介してリソースにアクセスすることを許可することを含む。【選択図】図４Ａ
2010250825.tif 000002
【特許請求の範囲】
【請求項１】
インターフェースアクセス制御に階層型セキュリティを提供する方法であって、
少なくとも１つのサーバエンドポイントにアクセスする接続メッセージを、クライアントアプリケーションから第１サーバで受信するステップと、
前記接続メッセージの受信に応答して、前記少なくとも１つのサーバエンドポイントと前記クライアントアプリケーションとの間のセッションを、前記セッションをオープンすることが承認されている場合、オープンするステップと、
少なくとも１つのリソースへの、読み出しアクセス、書き込みアクセス、またはサブスクライブアクセスの少なくとも１つを提供するエンドポイントをオープンする要求を、前記クライアントアプリケーションから受信するステップと、
前記クライアントアプリケーションが、前記エンドポイントを介して、前記少なくとも１つのリソースにアクセスすることが承認されていることを判断した後に、前記オープンされたセッション内で、前記エンドポイントをオープンするステップと、
前記少なくとも１つの承認されたリソースの選択を前記エンドポイントに割り当てる要求を前記クライアントアプリケーションから受信するステップと、
前記少なくとも１つの選択されたリソースを前記エンドポイントに割り当てるステップと、
前記エンドポイントを介して、前記クライアントアプリケーションが、前記少なくとも１つのリソースにアクセスすることを許可するステップと、を含む方法。
【請求項２】
前記少なくとも１つのリソースが前記クライアントアプリケーションによってアクセスされることが承認されている場合、前記クライアントアプリケーションに、前記少なくとも１つのリソースのリストを提供するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記クライアントアプリケーションに前記少なくとも１つのリソースの前記リストを提供するステップが、前記少なくとも１つのサーバエンドポイントに関連付けられた前記少なくとも１つのリソースを発見する、リソース発見要求メッセージを前記第１サーバで前記クライアントアプリケーションから受信するステップに応答して行われる、請求項２に記載の方法。
【請求項４】
オープンエンドポイント要求メッセージを前記クライアントアプリケーションから前記第１サーバで受信するステップに応答して、前記エンドポイントがオープンされる、請求項１に記載の方法。
【請求項５】
前記クライアントアプリケーションが前記少なくとも１つのリソースにアクセスすることを許可するステップが、前記クライアントアプリケーションに、書き込みアクセス、読み出しアクセス、またはサブスクライブアクセスの少なくとも１つを許可するステップを含む、請求項１に記載の方法。
【請求項６】
前記エンドポイントをオープンするステップが、前記エンドポイントを選択するステップまたは前記エンドポイントを作成するステップの少なくとも１つを含む、請求項１に記載の方法。
【請求項７】
前記接続メッセージを前記第１サーバで受信するステップの前に、前記第１サーバの少なくとも１つのサーバエンドポイントを発見するサーバ発見要求メッセージを前記クライアントアプリケーションから第２サーバで受信するステップと、
前記サーバ発見要求メッセージを受信するステップに応答して、前記クライアントアプリケーションによりアクセスされることが承認された前記少なくとも１つのサーバエンドポイントを判断するステップと、
前記少なくとも１つの判断されたサーバエンドポイントを前記クライアントアプリケーションに提供するステップと、をさらに含む、請求項１に記載の方法。
【請求項８】
前記クライアントアプリケーションが前記少なくとも１つのサーバエンドポイントまたは前記少なくとも１つのリソースの少なくとも１つにアクセスすることが承認されているかどうかを判断するステップが、前記クライアントアプリケーションのワークステーションネットワークアドレス、前記クライアントアプリケーションのユーザの識別、前記クライアントアプリケーションのワークステーションの位置、前記クライアントアプリケーションの識別、または前記クライアントアプリケーションにより使用されるプロトコルの少なくとも１つを確認するアクセス制御リストを介して、前記クライアントアプリケーションを承認するステップを含む、請求項７に記載の方法。
【請求項９】
前記少なくとも１つの選択されたリソースに、少なくとも１つの識別子または１対の識別子を割り当てるステップと、
前記少なくとも１つの識別子または前記１対の識別子を前記セッションに関連付けるステップと、
前記少なくとも１つの識別子または前記１対の識別子を、前記クライアントアプリケーションに伝送するステップと、をさらに含む、請求項１に記載の方法。
【請求項１０】
前記識別子が、前記識別子により識別される前記少なくとも１つのリソースを第三者により判断されることから保護する、動的に割り当てられた別名識別子である、請求項９に記載の方法。
【請求項１１】
時間周期または前記クライアントアプリケーションからの前記セッションを終了する停止要求メッセージの少なくとも１つの後に、前記セッションを終了するステップをさらに含む、請求項１に記載の方法。
【請求項１２】
前記エンドポイントを介して前記クライアントアプリケーションから情報を受信するステップと、
前記エンドポイントを介して、前記対応する少なくとも１つの選択されたリソースに、前記情報を保存するステップとをさらに含む、請求項１に記載の方法。
【請求項１３】
前記情報が、データまたはアクションを実行する要求の少なくとも１つを含む、請求項１２に記載の方法。
【請求項１４】
データ、イベント、またはアラームの少なくとも１つを、前記エンドポイントを介して、前記クライアントアプリケーションに送信するステップをさらに含む、請求項１に記載の方法。
【請求項１５】
前記少なくとも１つのリソースが、データ、アラーム、またはイベントの少なくとも１つを含む請求項１に記載の方法。
【請求項１６】
前記少なくとも１つのリソースが前記クライアントアプリケーションによりアクセスされることが承認されない場合、前記サーバエンドポイントを介して、前記少なくとも１つの利用可能なリソースに前記クライアントアプリケーションがアクセスすることを拒否するステップをさらに含む、請求項１に記載の方法。
【請求項１７】
インターフェースアクセス制御に階層型セキュリティを提供する装置であって、前記装置は、
少なくとも１つのサーバエンドポイントにアクセスする接続メッセージをクライアントアプリケーションから受信し、
前記接続メッセージの受信に応答して、前記少なくとも１つのサーバエンドポイントと、前記クライアントアプリケーションとの間のセッションを、前記セッションがオープンされることが承認されている場合、オープンし、
読み出しアクセス、書き込みアクセス、またはサブスクライブアクセスの少なくとも１つを少なくとも１つのリソースに提供するエンドポイントをオープンする要求を前記クライアントアプリケーションから受信し、
前記クライアントアプリケーションが、前記エンドポイントを介して、前記少なくとも１つのリソースにアクセスすることが承認されていることを判断した後、前記オープンされたセッション内の前記エンドポイントをオープンし、
前記少なくとも１つの承認されたリソースの選択を前記エンドポイントに割り当てる要求を前記クライアントアプリケーションから受信し
前記少なくとも１つの選択されたリソースを前記エンドポイントに割り当て、
前記クライアントアプリケーションが、前記エンドポイントを介して、前記少なくとも１つのリソースにアクセスすることを許可するようプログラムされた、第１サーバを備える装置。
【請求項１８】
前記少なくとも１つのリソースが前記クライアントアプリケーションによりアクセスされることが承認されている場合、前記第１サーバは、前記クライアントアプリケーションに、前記少なくとも１つのリソースのリストを提供する、請求項１７に記載の装置。
【請求項１９】
前記少なくとも１つのサーバエンドポイントに関連付けられた前記少なくとも１つのリソースを発見するリソース発見要求メッセージを前記クライアントアプリケーションから受信することに応答して、前記第１サーバは、前記少なくとも１つのリソースの前記リストを前記クライアントアプリケーションに提供する、請求項１８に記載の装置。
【請求項２０】
前記第１サーバは、エンドポイント作成要求メッセージを前記クライアントアプリケーションから前記第１サーバにおいて受信することに応答して、前記エンドポイントをオープンする、請求項１７に記載の装置。
【請求項２１】
前記第１サーバは、前記クライアントアプリケーションに、書き込みアクセス、読み出しアクセス、またはサブスクライブアクセスの少なくとも１つを許可することにより、前記クライアントアプリケーションが前記少なくとも１つのリソースにアクセスすることを許可する、請求項１７に記載の装置。
【請求項２２】
前記エンドポイントの選択または前記エンドポイントの作成の少なくとも１つにより、前記第１サーバが前記エンドポイントをオープンする、請求項１７に記載の装置。
【請求項２３】
請求項１７に記載の装置であって、前記装置は、
前記第１サーバの少なくとも１つのサーバエンドポイントを発見するサーバ発見要求メッセージを前記クライアントアプリケーションから受信し、
前記サーバ発見要求メッセージの受信に応答して、前記クライアントアプリケーションによりアクセスされることが承認された前記少なくとも１つのサーバエンドポイントを判断し、
前記少なくとも１つの判断されたサーバエンドポイントを前記クライアントアプリケーションに提供する、第２サーバをさらに備える装置。
【請求項２４】
前記第１サーバは、前記クライアントアプリケーションのワークステーションネットワークアドレス、前記クライアントアプリケーションのユーザの識別、前記クライアントアプリケーションのワークステーションの位置、前記クライアントアプリケーションの識別、または前記クライアントアプリケーションにより使用されるプロトコルの少なくとも１つを確認するアクセス制御リストを介して、前記クライアントアプリケーションを承認することにより、前記クライアントアプリケーションが前記少なくとも１つのリソースにアクセスすることが承認されているかどうかを判断する、請求項１７に記載の装置。
【請求項２５】
前記第１サーバは、
少なくとも１つの識別子または１対の識別子を、前記少なくとも１つの選択されたリソースに割り当て、
前記少なくとも１つの識別子または前記１対の識別子を、前記セッションと関連付け、
前記少なくとも１つの識別子または前記１対の識別子を前記クライアントアプリケーションに伝送する、請求項１７に記載の装置。
【請求項２６】
前記第１サーバは、時間周期または前記クライアントアプリケーションからの前記セッションを停止する停止要求メッセージの少なくとも１つの後、前記セッションを停止する、請求項１７に記載の装置。
【請求項２７】
前記第１サーバは、
前記エンドポイントを介して前記クライアントアプリケーションから情報を受信し、
前記エンドポイントを介して、前記対応する少なくとも１つの選択されたリソースに前記情報を保存する、請求項１７に記載の装置。
【請求項２８】
前記第１サーバは、データ、イベント、またはアラームの少なくとも１つを前記エンドポイントを介して前記クライアントアプリケーションへ送信する、請求項１７に記載の装置。
【請求項２９】
前記少なくとも１つのリソースが前記クライアントアプリケーションによりアクセスされることが承認されていない場合、前記第１サーバは、前記クライアントアプリケーションが、前記サーバエンドポイントを介して利用可能である前記少なくとも１つのリソースにアクセスすることを拒否する、請求項１７に記載の装置。
【請求項３０】
機械アクセス可能媒体上に保存された命令を有する前記機械アクセス可能媒体であって、前記命令は、実行時に、
少なくとも１つのサーバエンドポイントにアクセスする接続メッセージをクライアントアプリケーションから第１サーバで受信することと、
前記接続メッセージの受信に応じて、前記少なくとも１つのサーバエンドポイントと前記クライアントアプリケーションとの間のセッションを、前記セッションがオープンされることが承認されている場合、オープンすることと、
少なくとも１つのリソースに対して、読み出しアクセス、書き込みアクセス、またはサブスクライブアクセスの少なくとも１つを提供するエンドポイントをオープンする要求を前記クライアントアプリケーションから受信することと、
前記クライアントアプリケーションが前記エンドポイントを介して、前記少なくとも１つのリソースにアクセスすることが承認されていることを判断した後、前記オープンされたセッション内で前記エンドポイントをオープンすることと、
前記少なくとも１つの承認されたリソースの選択を前記エンドポイントに割り当てる要求を前記クライアントアプリケーションから受信することと、
前記少なくとも１つの選択されたリソースを前記エンドポイントに割り当てることと、
前記クライアントアプリケーションが前記エンドポイントを介して前記少なくとも１つのリソースにアクセスすることを許可することとを機械に実行させる、媒体。
【請求項３１】
前記命令は実行時に、前記少なくとも１つのリソースが前記クライアントアプリケーションによりアクセスされることが承認されている場合、前記クライアントアプリケーションに前記少なくとも１つのリソースのリストを提供することを前記機械に実行させる、請求項３０に記載の機械アクセス可能媒体。
【請求項３２】
前記命令は実行時に、前記少なくとも１つのサーバエンドポイントに関連付けられた少なくとも１つのリソースを発見するリソース発見要求メッセージを前記クライアントアプリケーションから受信することに応答して、前記クライアントアプリケーションに前記少なくとも１つのリソースの前記リストを提供することを前記機械に実行させる、請求項３１に記載の機械アクセス可能媒体。
【請求項３３】
前記命令は実行時に、前記クライアントアプリケーションからオープンエンドポイント要求メッセージを受信することに応答して、前記エンドポイントをオープンすることを前記機械に実行させる、請求項３０に記載の機械アクセス可能媒体。
【請求項３４】
前記命令は実行時に、前記クライアントアプリケーションに、書き込みアクセス、読み出しアクセス、またはサブスクライブアクセスの少なくとも１つを許可することにより、前記クライアントアプリケーションが前記少なくとも１つのリソースへアクセスすることを許可することを前記機械に実行させる、請求項３０に記載の機械アクセス可能媒体。
【請求項３５】
前記命令は実行時に、前記エンドポイントの選択または前記エンドポイントの作成の少なくとも１つを行うことにより、前記エンドポイントをオープンすることを前記機械に実行させる、請求項３０に記載の機械アクセス可能媒体。
【請求項３６】
前記命令は実行時に、
前記接続メッセージの受信の前に、前記少なくとも１つのサーバエンドポイントを発見するサーバ発見要求メッセージを前記クライアントアプリケーションから受信することと、
前記サーバ発見要求メッセージの受信に応答して、前記クライアントアプリケーションによりアクセスされることが承認されている前記少なくとも１つのサーバエンドポイントを判断することと、
前記クライアントアプリケーションに前記少なくとも１つの判断されたサーバエンドポイントを提供することとを前記機械に実行させる、請求項３０に記載の機械アクセス可能媒体。
【請求項３７】
前記命令は実行時に、前記クライアントアプリケーションのワークステーションネットワークアドレス、前記クライアントアプリケーションのユーザの識別、前記クライアントアプリケーションのワークステーションの位置、前記クライアントアプリケーションの識別、または前記クライアントアプリケーションに使用されるプロトコルの少なくとも１つを確認するアクセス制御リストを介して、前記クライアントアプリケーションを承認することにより、前記クライアントアプリケーションが、前記少なくとも１つのサーバエンドポイントおよび前記少なくとも１つのリソースの少なくとも１つにアクセスすることが承認されているかどうかを判断することを前記機械に実行させる、請求項３６に記載の機械アクセス可能媒体。
【請求項３８】
前記命令は実行時に、
前記少なくとも１つの識別子または１対の識別子を前記少なくとも１つの選択されたリソースに割り当てることと、
前記少なくとも１つの識別子または前記１対の識別子を前記セッションに関連付けることと、
前記少なくとも１つの識別子または前記１対の識別子を前記クライアントアプリケーションに伝送することとを前記機械に実行させる、請求項３０に記載の機械アクセス可能媒体。
【請求項３９】
前記命令は実行時に
前記エンドポイントを介して、前記クライアントアプリケーションから情報を受信することと、
前記情報を前記エンドポイントを介して、前記対応する少なくとも１つの選択されたリソースに保存することとを前記機械に実行させる、請求項３０に記載の機械アクセス可能媒体。
【請求項４０】
請求項３０に記載の機械アクセス可能媒体であって、前記命令は実行時、データ、イベント、またはアラームの少なくとも１つをを前記エンドポイントを介して、前記クライアントアプリケーションに送信することを前記機械に実行させる、機械アクセス可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は２００９年４月１４に出願された米国仮特許出願第６１／１６９１９９号の利益を主張するものであり、米国仮特許出願第６１／１６９１９９号の全体は参照することにより本明細書に援用される。
【０００２】
本発明は、全般にデータシステムに関し、特にインターフェースアクセス制御に階層型セキュリティを提供する方法および装置に関する。
【背景技術】
【０００３】
プロセス制御システム、製造オートメーションシステム、ならびに化学、石油、およびその他のプロセスに用いられる他の工業システム等のデータシステムは一般に、少なくとも１つのホスト、オペレータ、及び／又はユーザワークステーションと、１つまたは複数のフィールドデバイスとに、アナログ、デジタル、またはアナログ・デジタル混合バスを介して通信可能に接続される１つまたは複数の集中プロセスコントローラを含む。これらのシステムでは、ユーザの識別に基づいてシステムへのアクセスを許可するアクセス制御が利用される。一般にアクセス制御技術は、ユーザ認証、暗号化、及び／又は特定のユーザ向けのアクセス制御リストを含む。アクセス制御リストは、どのシステムリソースに読み出し、書き込み、実行、その他が可能であるかを識別する。また、アクセス制御リストは、どのシステムのリソースにユーザがアクセス（例えば、読み出し、書き込み、及び／又は実行）が可能であるかを識別してもよい。これらのリソースは、例えばデータ、アラーム、イベント、及び／又は機能を含んでもよい。一般にシステム手順、機能、及び／又はプロセスは、アクセスされるリソースの種別に基づいて、エンドポイントに組織される。例えば、データ、アラーム、およびイベントの現行値にアクセスするための別個のエンドポイントがある。またデータ、アラーム、およびイベントの履歴値にアクセスするための別個のエンドポイントがあってもよい。
【０００４】
データシステムまたはプロセス制御システムは、設計により、インターネット及び／又は１つまたは複数のイントラネットに接続されうるルータ、サーバ、スイッチ及び／又はワークステーションと物理的な及び／又は無線による接続性を有さないことにより、外部のネットワーク通信から分離していてもよい。他のデータシステムまたはプロセス制御システムは、リモート監視システムが、プロセスの進行、品質及び／又は制御オペレーションを監視できるよう、インターネット及び／又は１つまたは複数のイントラネットとの接続性を意図的に有してもよい。また、データシステムまたはプロセス制御システムが外部ネットワークへの外部接続性を有するので、制御システムの個々の構成要素が、ファームウェアの更新または変更された制御ルーチンなどの定期的な及び／又は予定された更新を受信することができる。１つまたは複数のシステムの外部接続性のために外部からの監視および制御が可能となるが、そのような外部接続性はシステムへのネットワーク侵入の脅威を増すことにつながりうる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
インターフェースアクセス制御に階層型セキュリティを提供する方法例および装置例を説明する。１つの例では、１つの方法は、少なくとも１つのサーバエンドポイントにアクセスする接続メッセージを第１サーバにおいてクライアントアプリケーションから受信するステップと、その接続メッセージの受信に応答して、そのセッションのオープンが承認されている場合、その少なくとも１つのサーバエンドポイントとそのクライアントアプリケーションとの間のセッションをオープンするステップと、を含む。その方法例は、少なくとも１つのリソースに対する、読み出しアクセス、書き込みアクセス、またはサブスクライブアクセスの少なくとも１つを提供するエンドポイントをオープンする要求をクライアントアプリケーションから受信するステップと、クライアントアプリケーションがエンドポイントを介して少なくとも１つのリソースにアクセスすることが承認されたことを判断した後、オープンされたセッション内でエンドポイントをオープンするステップと、少なくとも１つの承認されたリソースの選択をエンドポイントに割り当てる要求をクライアントアプリケーションから受信するステップと、をさらに含む。またその方法例は、少なくとも１つの選択されたリソースをエンドポイントに割り当てるステップと、クライアントアプリケーションがエンドポイントを介して少なくとも１つのリソースにアクセスすることを許可するステップと、を含む。
【０００６】
１つの装置例は、少なくとも１つのサーバエンドポイントにアクセスする接続メッセージをクライアントアプリケーションから受信し、セッションのオープンが承認されている場合、接続メッセージの受信に応答して、その少なくとも１つのサーバエンドポイントとそのクライアントアプリケーションとの間でセッションをオープンするようプログラムされた第１サーバを備える。その装置例はまた、少なくとも１つのリソースに対する、読み出しアクセス、書き込みアクセス、またはサブスクライブアクセスの少なくとも１つを提供するエンドポイントをオープンする要求をクライアントアプリケーションから受信し、クライアントアプリケーションがそのエンドポイントを介して少なくとも１つのリソースにアクセスすることが承認されていることを判断した後、オープンされたセッション内でそのエンドポイントをオープンする。さらに、装置例は、少なくとも１つの承認されたリソースの選択をエンドポイントに割り当てる要求をクライアントアプリケーションから受信し、その少なくとも１つの選択されたリソースをそのエンドポイントに割り当て、クライアントアプリケーションがそのエンドポイントを介してその少なくとも１つのリソースにアクセスすることを許可する。
【図面の簡単な説明】
【０００７】
【図１】プロセス制御環境の１例を示すブロック図である。
【図２】図１のサーバディスカバリサーバ例およびリソースディスカバリサーバ例の機能ブロック図である。
【図３】図１および図２のサーバディスカバリサーバ例およびリソースディスカバリサーバ例により提供される階層型セキュリティの例を示す図である。
【図４Ａ】図１、図２、及び／又は図３のサーバディスカバリサーバ例、リソースディスカバリサーバ例、クライアントアプリケーション例、及び／又はプロセス制御環境例を実装するために用いられうるプロセスの例を示すフローチャートである。
【図４Ｂ】図１、図２、及び／又は図３のサーバディスカバリサーバ例、リソースディスカバリサーバ例、クライアントアプリケーション例、及び／又はプロセス制御環境例を実装するために用いられうるプロセスの例を示すフローチャートである。
【図５】本明細書に記載の方法例および装置例を実装するために用いられうるプロセッサシステムの例を示すブロック図である。
【発明を実施するための形態】
【０００８】
以下では、他に構成要素がある中で、特にハードウェア上で実行されるソフトウェア及び／又はファームウェアを含む方法例および装置例が記載されるが、それらのシステムは単に説明的なものであり、本発明を限定するものでない点に注意すべきである。例えば、これらのハードウェアの、ソフトウェアの、およびファームウェアの構成要素のいずれかまたは全部は、ハードウェアのみで、ソフトウェアのみで、またはハードウェアとソフトウェアの任意の組み合せで、実現できると理解すべきである。従って、下記には方法例および装置例が記載されているが、該当技術分野の当業者は、提供されるこれらの例がそれらの方法および装置を実装する唯一の方法でないことが容易に理解できるであろう。
【０００９】
システムのアクセス管理は、一般にユーザの識別に基づいて行われる。一般にアクセス制御技術はユーザ認証、暗号化、及び／又は特定のユーザ向けのアクセス制御リストを含む。アクセス制御リストは、どのシステムリソースに対して、読み出し、書き込み、実行、その他を行うことができるかを識別する。あるいは、アクセス制御リストは、機能、データ、アラーム、及び／又はイベントなどの、どのシステムリソースにユーザがアクセス（例えば、読み出し、書き込み、及び／又は実行）できるかを識別してもよい。
【００１０】
エンドポイントは、システム及び／又はサービスに１つまたは複数のアクセスポイントを提供する。クライアントアプリケーションは、システム及び／又はサービスに関連付けられたリソースにアクセスするメッセージを、システム及び／又はサービスのエンドポイントに送信する。エンドポイントは、アドレス、コントラクト要素、及び／又はコントラクト要素を含む。エンドポイントのアドレスは、サービスをホスティングするアプリケーションがサービスをアドバタイズするために使用する位置である。例えばアドレスは、サービスを含むディレクトリ名とそのサービスに関連付けられたファイル名とを含むユニフォームリソースロケータ（ＵＲＬ）をエンドポイントとして含んでもよい。コントラクト要素は、サービスにアクセスするために用いられうる移送機構及び／又はプロトコルを指定する。例えばコントラクト要素は、サービスにアクセスするためのプロトコルとして、ｂａｓｉｃＨｔｔｐＢｉｎｄｉｎｇを特定してもよい。コントラクト要素は、サービス内でアクセスしてもよいオペレーション及び／又はエンドポイントを通してアクセス可能なリソースにアクセスするために必要なパラメータを示す。
【００１１】
エンドポイントは、オブジェクト指向技法、ＲＥＳＴ(表現の状態遷移)ベースのインターフェース、及び／又はサービスコントラクトインターフェースを介して実装されてもよい。一般に、手順、機能、及び／又はプロセスが、アクセスされるリソースの種別に基づいて、エンドポイントに組織される。例えば、データ、アラーム、またはイベントの現行値、及び／又はデータ、アラーム、またはイベントの履歴値をアクセスするための別個のエンドポイントがある。
【００１２】
現在、エンドポイントに対する脅威の数が増加している。脅威は、ウイルス、トロイの木馬、ワーム、分散型サービス拒否攻撃（ＤＤｏＳ）、及び／又はスパイウェアを含む。これらの脅威は、プロセス制御システム内において、未認証の第三者がデータの閲覧、操作、及び／又は破壊を行うことを可能にする。システムは、システムによって生み出される生産性、効率性、及び／又は利益を低下させる可能性がある脅威により、混乱させられる場合がある。
【００１３】
従来、エンドポイントは、保護されるリソースから独立したセキュリティ機構を用いて保護されている。これらのセキュリティ機構は、ユーザ認証、承認、及び／又は暗号化を含む。例えば、現行のデータ値へのアクセスを提供するエンドポイントを保護するために、ユーザの認証を行い、その後にアクセス制御リストに基づいて特定のデータの読み出しまたは書き込みができるようになされてもよい。また、アクセスされるデータの機密性を保護するために、暗号化が用いられてもよい。この一般的な手法では、エンドポイントにより支持されるすべてのオペレーションが同じセキュリティ機構を用いることが要求される。例えば、認証をセキュリティ機構として用いる場合、各メッセージ交換で認証が実行される。同様に、暗号化をセキュリティ機構として用いる場合も、各メッセージ転送で暗号化が実行される。しかし、これらのセキュリティ機構に関連する性能上の不利益により、システムのオペレータ及び／又はユーザがセキュリティ機構を停止させ、またあるいは無効化させることがしばしば行われ、その結果、エンドポイントはオープンされたまま無防備な状態に留まることとなる。
【００１４】
本明細書に記載の方法例および装置例は、それぞれのセキュリティ要件により定義および組織されるエンドポイントを実装する。例えば、一般にデータへのアクセスを提供するよう定義されるエンドポイントは、別個の読み出し用アクセスエンドポイント、書き込み用アクセスエンドポイント、及び／又はサブスクライブ用アクセスエンドポイントに再組織してもよい。読み出し用、サブスクライブ用、及び／又は書き込み用エンドポイントは、データ、アラーム、イベント、その他の取り出し及び／又は更新を行うために用いられてもよい。読み出し用エンドポイントは、サーバ内でデータ、アラーム、及び／又はイベントを取り出す（例えば、読み出す、獲得する、その他）１つまたは複数の方法（例えば、機能）をクライアントアプリケーションに提供する。サブスクライブ用エンドポイントは、サーバ内でデータ変更、アラーム、及び／又はイベントを定期的に取り出す１つまたは複数の方法（例えば、ポーリング、コールバック、その他）をクライアントアプリケーションに提供する。書き込み用エンドポイントは、サーバ内でデータ、アラーム、イベント、及び／又は機能の値または状態を変える（例えば、書き込み、記入、更新、変更、肯定応答、実行、その他）ための１つまたは複数の方法をクライアントアプリケーションに提供する。
【００１５】
本明細書に記載の方法例および装置例は、要求者の識別及び／又は役割、要求者の位置、要求者が用いるワークステーション及び／又はコンピュータの識別、要求を発するワークステーション及び／又はコンピュータのネットワークアドレス、要求を発するアプリケーションの識別及び／又は種別、要求を発するアプリケーションによりエンドポイントにアクセスするために用いられるプロトコル、及び／又はエンドポイントにより要求が受信された時間を含むセキュリティ基準に基づいて、エンドポイントに対するアクセス制御を実装する。エンドポイントアクセス制御は、要求メッセージが受信するエンドポイントにより処理されるよう、要求メッセージを認証及び／又は承認してもよい。またエンドポイントアクセス制御は、要求を発するクライアントアプリケーション、オペレータ、及び／又はユーザに提供するリストの内容を承認してもよい。この内容は、リソースディスカバリエンドポイントに関連付けられたリソース、及び／又はリソースディスカバリエンドポイントに関連付けられたリソースディスカバリサーバを含んでもよい。いくつかの例では、エンドポイントアクセス制御は、クライアントアプリケーション及び／又はワークステーションの識別を検証するセキュリティ検証メッセージを、要求を発するクライアントアプリケーション及び／又はワークステーションに送信してもよい。他の例では、エンドポイントアクセス制御は、要求者のセキュリティ情報を得るセキュリティメッセージを、第三者のコンピュータ（例えば、ウィンドウズ（登録商標）アクティブディレクトリサーバ）に送信してもよい。
【００１６】
本明細書に記載の方法例および装置例は、サーバディスカバリサーバ及び／又は１つまたは複数のリソースディスカバリサーバを通じて、階層型セキュリティを提供する。サーバディスカバリサーバは、リソースディスカバリサーバの位置を特定する。さらに、サーバディスカバリサーバはリソースディスカバリサーバのリストを保持し、どの要求者が各リソースディスカバリサーバにアクセス権を有するかを判断するために、アクセス制御基準を用いてもよい。サーバディスカバリサーバは、要求者（例えば、クライアント、オペレータ、その他）がリソースディスカバリサーバに関連付けられたリソースへアクセスするために選択しうるリソースディスカバリサーバをリストアップする。各リソースディスカバリサーバは、対応するリソースディスカバリエンドポイントを介してアクセスされうる。サーバディスカバリサーバは、リソースディスカバリエンドポイントを要求者に提供してもよく、またあるいはサーバディスカバリサーバは、リソースディスカバリエンドポイントを提供する各リソースディスカバリサーバ内のエンドポイントを要求者に提供してもよい。
【００１７】
要求者がリソースディスカバリエンドポイントにアクセスすると、リソースディスカバリサーバは、どのリソースが要求者に利用可能であるかを判断し、これらのリソース及び／又はこれらのリソースへのエンドポイントをリストアップする。リソースディスカバリサーバは、要求者がどのリソースにアクセスしてよいかを判断するために、エンドポイントのアクセスに用いられるアクセス制御基準を用いてもよい。次に要求者は、リソースに対する読み出し、書き込み、サブスクライブ、及び／又は実行を登録することにより、利用可能なリソースの１つまたは複数を選択してもよい。次にリソースディスカバリサーバは、要求者により作成され、オープンされ、及び／又は選択されたリソースに関連付けられた読み出し用、書き込み用、及び／又はサブスクライブ用エンドポイントを通じて要求者がリソースにアクセスすることを認めることにより、登録要求を許可する。
【００１８】
本明細書に記載の方法および装置は、リソースディスカバリエンドポイントを介して、リソースがアクセスされることを制限する。リソースは、リソースディスカバリエンドポイントを通じて、発見され、アクセスの登録がなされてもよい。リソースディスカバリサーバは、読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントのオープン及び／又は作成と、登録済みリソースにアクセスするための、読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントに対する登録済みリソースの割り当てと、に必要な要求者情報を提供する。要求者により、読み出し用及び／又はサブスクライブ用エンドポイントにリソースが割り当てられていると、要求者はそのリソースに関連付けられたデータを閲覧しうる。また要求者により、書き込み用エンドポイントにリソースが割り当てられていると、書き込み用エンドポイントを通じて利用可能な機能に基づいて、要求者は、そのリソースにデータを書き込むことができ、またあるいはそのリソースに対し変更または実行を行いうる。いくつかの例では、要求者が所望のリソースを選択すると、読み出し用の、書き込み用の、及び／又はサブスクライブ用のエンドポイントが作成され得る。他の例では、読み出し用の、書き込み用の、及び／又はサブスクライブ用のエンドポイントがサーバにより作成及び／又は予め設定され、要求者によりオープンされ得る。
【００１９】
この方法例および装置例では、要求者がリソースディスカバリエンドポイントとのセッションを停止するまで、要求者は、リソースディスカバリエンドポイントに関連付けられた読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントを使用することができる。要求者がセッションを停止した後、セッションの状況内で作成及び／又はオープンされた読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントは、選択されたリソースに関連付けられた不明朗な識別子とともに、セッションから削除される。要求者は次に、リソースにアクセスするための新規のセッションを作成するために、リソースディスカバリサーバにアクセスしてもよい。
【００２０】
本明細書に記載の方法例および装置例では、選択されたリソースおよびその関連付けられた読み出し用の、書き込み用の、及び／又はサブスクライブ用のエンドポイントに別名を付与するために、動的に割り当てられた不明朗朗な識別子を利用する。この別名付与により、各読み出し用エンドポイント、書き込み用エンドポイント、サブスクライブ用エンドポイント、及び／又は読み出し用エンドポイント、書き込み用エンドポイント、サブスクライブ用エンドポイントを通じてアクセス可能なリソースに対して、別の識別子が提供される。要求者及び／又はリソースディスカバリサーバは、選択されたリソースに関連付けられたデータを閲覧及び／又は更新するために、これらの識別子を用いる。リソース識別子は、リソースが登録される間に作成され、エンドポイント識別子はエンドポイントのオープン及び／又は作成が行われる間に作成される。また、識別子（例えば、リソース識別子及び／又はエンドポイント識別子）は、セッションの状況外のリソース及び／又は対応する読み出し用の、書き込み用の、及び／又はサブスクライブ用のエンドポイントの識別に用いられなくてもよい。リソース及び／又はエンドポイントの識別に用いられる不明朗な識別子により、オペレータ及び／又はユーザとシステムとの間で通信が行われる間、スヌーピング用の及び／又はスニッフィング用のアプリケーションが、データ値および関連付けられたリソースを関連付けることがより困難となる。従って、これらの不明朗な識別子により、スヌーピング用の及び／又はスニッフィング用のアプリケーションがセキュリティ侵害を起こすことがより困難となる。例えば、識別子を用いてデータの傍受を行う第三者は、どのリソースが識別されているのか、及び／又は転送中のデータ値をどのように解釈するのか、を認識できないであろう。
【００２１】
また不明朗識別子セキュリティは、不明朗な識別子を一定時間周期の後に書き換えることにより、向上させるうる。識別子の書き換えを行うことにより、オペレータ、ユーザ、及び／又はクライアントアプリケーションは、リソースに関連付けられた不明朗な識別子を定期的に更新することができ、その結果、スヌーピング用の及び／又はスニッフィング用のアプリケーションが行いうるトラフィック解析を防ぐことができる。さらに、サーバディスカバリエンドポイント及び／又はリソースディスカバリエンドポイントは、リソース及び／又は各リソースに関連付けられた不明朗な識別子の開示を防ぐために、要求者との通信に暗号化を用いてもよい。
【００２２】
図１は、本明細書に記載の方法例および装置例を実装するために用いられうるプロセス制御環境例１００のブロック図である。プロセス制御環境１００は、３つのプロセス制御システム１０４ａ〜１０４ｃを有するプロセス制御プラント１０２を備える。他の例では、プロセス制御プラント１０２は、より少ないプロセス制御システムまたは追加のプロセス制御システムを備えてもよい。またプロセス制御プラント１０２は、ローカルエリアネットワーク（ＬＡＮ）１１２を介してサーバディスカバリサーバ１０８に通信可能に接続されたローカルワークステーション１０６を備える。他の例では、プロセス制御プラント１０２は、追加のローカルワークステーション、サーバ、及び／又はコンピュータを備えてもよい。
【００２３】
プロセス制御プラント例１０２は、１つまたは複数のバッチプロセス及び／又はバッチフェーズの間に１つまたは複数の製品を生産しうるプラントの例を示すものである。他の例では、プロセス制御プラント１０２は、発電設備、工業設備、及び／又は、制御システムおよび監視システムまたは情報技術システムを含む他のあらゆる設備種別を含んでもよい。ローカルワークステーション例１０６は、プラント１０２に対する、オペレータの及び／又はユーザのインターフェースとして機能してもよく、またＬＡＮ１１２を介してプロセス制御システム１０４ａ〜１０４ｃの１つまたは複数に通信可能に接続されていてもよい。
【００２４】
プロセス制御環境例１００は、ワイド・エリア・ネットワーク（ＷＡＮ）１２０を介してプロセス制御プラント１０２に接続されたリモートワークステーション１１６および１１８を備える。ＷＡＮ１２０は、あらゆる種別の、公衆交換電話網（ＰＳＴＮ）システム、公衆地上移動ネットワーク（ＰＬＭＮ）システム、無線配信システム、有線によるまたはケーブルによる配信システム、同軸ケーブル配信システム、ファイバーツーザホーム・ネットワーク、ファイバーツーザカーブ・ネットワーク、ファイバーツーザペデスタル・ネットワーク、ファイバーツーザボールト・ネットワーク、ファイバーツーザネイバーフッド・ネットワーク、極超短波（ＵＨＦ）／超短波（ＶＨＦ）無線周波システム、衛星または地球外システム、セルラー配信システム、送電線放送システム、及び／又はこれらのデバイス、システム、及び／又はネットワークの組み合わせ及び／又は混成を含んでもよい。
【００２５】
またプロセス制御プラント１０２は、リモートワークステーション１１６および１１８からプロセス制御プラント１０２への通信が許可されるかどうかを、１つまたは複数のルールに基づいて判断するファイアウォール１１０を備える。リモートワークステーション例１１６および１１８は、プロセス制御プラント１０２内にないオペレータ及び／又はユーザに、プロセス制御プラント１０２内のリソースにアクセスを提供してもよい。例えば、合衆国に位置するプロセス制御エンジニアがリモートワークステーション１１６を用いて、メキシコに位置するプロセス制御プラント１０２内の製造ライン（例えば、リソース）の状態をチェックしてもよい。他の実装例では、ファイアウォールは各プロセス制御システム１０４ａ〜１０４ｃとワークステーション１０６、１１６、及び／又は１１８との間に位置してもよい。
【００２６】
ワークステーション例１０６、１１６、及び／又は１１８は、１つまたは複数の情報技術アプリケーション、ユーザインタラクティブアプリケーション、及び／又は通信アプリケーションに関連付けられたオペレーションを行うよう、構成されてもよい。またワークステーション１０６、１１６、及び／又は１１８は、パーソナルコンピュータ、ラップトップ、サーバ、コントローラ、携帯情報端末（ＰＤＡ）、マイクロコンピュータ、その他のあらゆるコンピューターデバイスを含んでもよい。
【００２７】
リソースディスカバリサーバ例１１４ａ〜１１４ｃは、１つまたは複数のアプリケーション、ユーザインタラクティブアプリケーション、通信アプリケーション、及び／又は、関連付けられたプロセス制御システム１０４ａ〜１０４ｃの内の１つまたは複数の機能ブロックを実行するよう、設定されてもよい。例えば、リソースディスカバリサーバ１１４ａ〜１１４ｃは、任意の通信媒体（例えば、無線、有線、その他）およびプロトコル（例えば、ＨＴＴＰ、ＳＯＡＰ、その他）を用いて、リソースディスカバリサーバ１１４ａ〜１１４ｃおよびそれぞれのコントローラ（例えば、コントローラ１１２）が他のデバイス及び／又はシステムと通信できるようにするプロセス制御関連アプリケーションおよび通信アプリケーションに関連付けられたオペレーションを実行するよう、設定されてもよい。他の例では、各プロセス制御システム１０４ａ〜１０４ｃは、１つまたは複数のリソースディスカバリサーバを備えてもよい。
【００２８】
各リソースディスカバリサーバ１１４ａ〜１１４ｃは、コントローラ（例えば、コントローラ１２２）に通信可能に接続されている。施設管理者、プロセス制御エンジニア、システムエンジニア、制御システム管理者、及び／又はプラント１０２及び／又は全プロセス制御環境１００のオペレーションを担当する他のオペレータまたはユーザにより設定及び／又は設計された、１つまたは複数のプロセス制御ルーチンを、コントローラ例１２２は実行してもよい。コントローラ１２２は、例えば、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔの企業であるＦｉｓｈｅｒ−Ｒｏｓｅｍｏｕｎｔ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．から販売されている、ＤｅｌｔａＶ（登録商標）コントローラであってもよい。しかしながら、他のいかなるコントローラがかわって用いられてもよい。さらに、図１では唯一のコントローラ１２２が示されているが、いかなる種別の追加のコントローラまたは様々な種別のコントローラの追加の組み合せが、各リソースディスカバリサーバ１１４ａ〜１１４ｃに接続されてもよい。図１の説明的な例は一部分においてプロセス制御システムを説明するが、本明細書に記載の方法および装置は、実験室試験、確認試験、及び／又は品質管理分析などの、試験および計測環境に適応されてもよい。
【００２９】
コントローラ１２２は、コントローラバス１２８及び／又はＩ／Ｏデバイス１２４を介して、複数のフィールドデバイス１２６ａ〜１２６ｂおよび１３０に接続されてもよい。プロセス制御ルーチンが実行される間、コントローラ１２２は、フィールドデバイス１２８ａ〜１２８ｂおよび１３０と情報（例えば、コマンド、設定情報、測定情報、ステータス情報、その他）を交換してもよい。例えば、コントローラ１２２により実行されたときに、コントローラ１２２が、特定のオペレーション（例えば、測定、バルブの開閉、プロセスポンプの始動・停止、その他）をフィールドデバイス１２６ａ〜１２６ｂに実行させるコマンドをフィールドデバイス１２６ａ〜１２６ｂへ送信し、及び／又は、コントローラ１２２を介して情報（例えば、測定データ）を通信するプロセス制御ルーチンを、コントローラ１２２に提供してもよい。またコントローラ１２２は、測定値（圧力値、温度値、流量値、電圧値、電流値、その他）の取得、アルゴリズムまたは演算（例えば、積分、微分、加算、減算、その他）の実行、機器の制御（例えば、バルブの開閉、加熱炉の調整、ボイラーの調整、その他）、及び／又はその他の任意の機能を、フィールドデバイス１２６ａ〜１２６ｂおよび１３０に実行させてもよい。
【００３０】
サーバディスカバリサーバ１０８およびリソースディスカバリサーバ１１４ａ〜１１４ｃは、ワークステーション１０６、１１６、及び／又は１１８に、コントローラ（例えば、コントローラ１２２）により管理されるプロセス制御リソースへの階層型アクセスを提供する。サーバディスカバリサーバ１０８は、サーバディスカバリサーバ１０８自体へのアクセスと、リソースディスカバリサーバ１１４ａ〜１１４ｃに関連付けられたリソースディスカバリエンドポイント１１４ａ〜１１４ｃのリストへのアクセスと、を制限する、エンドポイントアクセス制御を備えてもよい。サーバディスカバリサーバ１０８は、サーバディスカバリサーバ１０８により実装されるエンドポイントアクセス制御のレベルに基づいて、各ユーザ及び／又はワークステーション１０６、１１６、及び／又は１１８に、リソースディスカバリサーバ１１４ａ〜１１４ｃに関連付けられたリソースディスカバリエンドポイントのリストを提供する。例えば、リモートワークステーション１１６のオペレータ及び／又はユーザは、プロセス制御システム１０４ｂ及び／又はプロセス制御システム１０４ｂ内に含まれる特定のディスカバリサーバ（例えば、サーバ１１４ｂ）のみに対しアクセス権を有するよう指定されてもよい。その結果、リモートワークステーション１１６のオペレータ及び／又はユーザがリソースディスカバリエンドポイントのリストを要求するとき、サーバディスカバリサーバ１０８は、リソースディスカバリサーバ１１４ｂのリソースディスカバリエンドポイントのみを含むリストを提供する。あるいは、サーバディスカバリサーバ１０８は、各ユーザ及び／又はワークステーション１０６、１１６、及び／又は１１８に対し、リソースディスカバリサーバのエンドポイント（例えば、リソースディスカバリサーバ１１４ａ〜１１４ｃに関連付けられたエンドポイント）のリストを提供してもよい。次に、ユーザ及び／又はワークステーション１０６、１１６、及び／又は１１８はこれらのエンドポイントを用いて、リソースディスカバリエンドポイントのリストをリソースディスカバリサーバ１１４ａ〜１１４ｃから直接取り出してもよい。
【００３１】
サーバディスカバリサーバ例１０８は、承認されたワークステーション（例えば、ワークステーション１０６、１１６、及び／又は１１８）に対し、リソースディスカバリサーバ１１４ａからｃに関連付けられたリソースディスカバリエンドポイントのリストを提供してもよい。あるいは、サーバディスカバリサーバ例１０８は、承認されたワークステーション（例えば、ワークステーション１０６、１１６、及び／又は１０８）に対し、リソースディスカバリサーバ１１４ａ〜１１４ｃに関連付けられたエンドポイントのリストを提供してもよい。承認されたワークステーションは次にエンドポイントのリストを用いて、リソースディスカバリエンドポイントを取り出してもよい。一度ワークステーション１０６、１１６、及び／又は１１８が、選択したリソースディスカバリサーバ（例えば、リソースディスカバリサーバ１１４ａ）のリソースディスカバリエンドポイントを受信すると、ワークステーション１０６、１１６、及び／又は１１８は次にリソースディスカバリエンドポイントを用いてリソースディスカバリサーバ（例えば、サーバ１１４ａ）にアクセスしてもよい。一部の例では、ワークステーション１０６、１１６、及び／又は１１８がリソースディスカバリエンドポイントへのアクセスを承認されているかどうかを、リソースディスカバリサーバ１１４ａが判断してもよい。ワークステーション１０６、１１６、及び／又は１１８が、関連付けられたリソースディスカバリエンドポイントを通じてリソースディスカバリサーバ１１４ａにアクセスすると、リソースディスカバリサーバ１１４ａは、ワークステーション１０６、１１６、及び／又は１１８によるアクセスが承認されたリソースを判断するために、エンドポイントアクセス制御を実装してもよい。リソースディスカバリサーバ１１４ａは、フィールドデバイス１２６ａ〜１２６ｂおよび１３０に関連付けられたリソースを含んでもよい。ワークステーション１０６、１１６、及び／又は１１８のいずれかのオペレータ及び／又はユーザは、承認されたリソースを選択してもよい。
【００３２】
まずワークステーション１０６、１１６、及び／又は１１８がリソースディスカバリエンドポイントに最初にアクセスすると、関連付けられたリソースディスカバリサーバ１１４ａがセッションを作成する。ワークステーション１０６、１１６、及び／又は１１８が、リソースディスカバリサーバ１１４ａにより提供される１つまたは複数のリソースを選択することにより、ワークステーション１０６、１１６、及び／又は１１８は、選択したリソースにアクセスするために、ワークステーション１０６、１１６、及び／又は１１８により用いられる読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントの作成を、リソースディスカバリサーバ１１４ａに要求する。ワークステーション１０６、１１６、及び／又は１１８がリソースの読み出しを意図する場合、ワークステーション１０６、１１６、及び／又は１１８は、リソースディスカバリサーバ１１４ａから読み出し用エンドポイントを要求する。ワークステーション１０６、１１６、及び／又は１１８がリソースの更新及び／又は実行（例えば、書き込み）を意図する場合、ワークステーション１０６、１１６、及び／又は１１８は、リソースディスカバリサーバ１１４ａから書き込み用エンドポイントを要求する。ワークステーション１０６、１１６、及び／又は１１８がリソースに対するサブスクライブを意図する場合、ワークステーション１０６、１１６、及び／又は１１８は、リソースディスカバリサーバ１１４ａからサブスクライブ用エンドポイントを要求する。
【００３３】
リソースディスカバリサーバ１１４ａは、エンドポイントの識別を隠すための別名識別子と、エンドポイントを通じてアクセスされる各リソースの識別を隠すための別名識別子と、を用いて、ワークステーション１０６、１１６、及び／又は１１８にこれらのエンドポイントを提供する。リソースに対する別名は、ワークステーション１０６、１１６、及び／又は１１８により提案され、リソースディスカバリサーバ１１４ａにより確認されてもよい。ワークステーション１０６、１１６、及び／又は１１８は、エンドポイント識別子を用いて読み出し用の、書き込み用の、及び／又はサブスクライブ用のエンドポイントにアクセスし、選択されたリソースのリソース識別子を用いてこれらのリソースの閲覧及び／又は変更を行ってもよい。ワークステーション１０６、１１６、及び／又は１１８による要求を含む何らかの理由によりセッションを閉じられる場合、リソースディスカバリサーバ１１４ａはセッションを停止し、オープンされたあらゆる読み出し用の、書き込み用の、及び／又はサブスクライブ用のエンドポイント、エンドポイントに関連付けられた識別子、及び／又は登録されたリソースに関連付けられた識別子を削除し及び／又は閉じる。セッションが閉じられた後、ワークステーション１０６、１１６、及び／又は１１８が再びリソースディスカバリサーバ１１４ａにアクセス可能になる前に、ワークステーション１０６、１１６、及び／又は１１８は、リソースディスカバリサーバ１１４ａと新規のセッションを確立することが要求されてもよい。
【００３４】
サーバディスカバリサーバ１０８及び／又はリソースディスカバリサーバ１１４ａ〜１１４ｃは、ワークステーション１０６、１１６、及び／又は１１８との通信に対して暗号化、ハッシュマーク、及び／又は署名を行うためのセキュリティプロトコルを実装してもよい。リソース識別子とともに用いられるこれらのセキュリティプロトコルは、リソースディスカバリサーバ１１４ａ〜１１４ｃおよびワークステーション１０６、１１６、及び／又は１１８から伝送されるプロセス制御データの閲覧及び／又は変更を企てる未認証の当事者及び／又はエンティティから、プロセス制御プラント１０２をさらに保護する。
【００３５】
１つの例では、ローカルワークステーション１０６のオペレータ及び／又はユーザは、ワークステーション１０６がポンプフィールドデバイス１３０（例えば、リソース）のポンプ速度を獲得するために使用しうるリソースディスカバリサーバの位置を特定するサーバ発見要求メッセージを、サーバディスカバリサーバ１０８に送信する。サーバディスカバリサーバ１０８は、オペレータ、ユーザ、及び／又はワークステーション１０６がアクセスすることが承認されているリソースディスカバリサーバ１１４ａ〜１１４ｃを判断する。ワークステーション１０６がリソースディスカバリサーバ１１４ａにアクセスし、リソースディスカバリサーバ１１４ａのディスカバリエンドポイント及び／又はワークステーション１０６がリソースディスカバリサーバ１１４ａのリソースディスカバリエンドポイントを取り出すためにアクセスしうるリソースディスカバリサーバ１１４ａ内のエンドポイントを含むリストを提供してもよいと、サーバディスカバリサーバ１０８が判断する。
【００３６】
次にワークステーション１０６は、リソースディスカバリサーバ１１４ａとのセッションをオープンする要求メッセージ（例えば、接続メッセージ）を伝送する。ワークステーション１０６は、要求メッセージのアドレスフィールド内のサーバ１１４ａに対する新規に獲得したリソースディスカバリエンドポイントのアドレスに、このメッセージを送信する。リソースディスカバリサーバ１１４ａは、セッションが承認されたかどうかを判断するためのエンドポイントアクセス制御を実行した後、要求メッセージを受信しセッションをオープンする。次に、ワークステーション１０６は、ワークステーション１０６、オペレータ、及び／又はユーザによるアクセスが承認されているリソースを発見するための一連のメッセージ（例えば、リソース発見要求メッセージ、エンドポイントオープン要求メッセージ、及び／又は登録要求メッセージ）を伝送する。リソースディスカバリサーバ１１４ａは、リスト内のポンプ速度リソースを含むリソースを、ワークステーション１０６に提供する。ポンプ速度リソースは、ポンプ名「ＰＤＴ：Ｐ３２１」により、またあるいはポンプ速度パラメータの名称などの任意の他の名称により、識別されてもよい。
【００３７】
ワークステーション１０６がポンプ速度リソースを選択し、ポンプ速度リソースにアクセスするための読み出し用エンドポイントを要求すると、リソースディスカバリサーバ１１４ａは、読み出し用エンドポイントを作成し、及び／又はオープンし、ポンプ速度をこの新規に作成され及び／又はオープンされた読み出し用エンドポイントに関連付ける。他の例では、リソースディスカバリサーバ１１４ａは、ポンプ速度を、既に作成され及び／又はオープンされた読み出し用エンドポイントに関連付けてもよい。あるいは、ワークステーション１０６は、読み出し用エンドポイントの作成及び／又はオープンをまず要求した後に別にポンプ速度パラメータを読み出し用エンドポイントに関連付けてもよい。あるいは、ワークステーション１０６は、パラメータのリストにポンプ速度パラメータをまず追加した後、そのパラメータのリストを読み出し用エンドポイントに追加してもよい。あるいは、書き込み用の及び／又はサブスクライブ用のエンドポイントの作成及び／又はオープンがワークステーション１０６のオペレータ及び／又はユーザ１０６に承認されている場合、書き込み用の及び／又はサブスクライブ用のエンドポイントを作成及び／又はオープンし、この新規に作成され及び／又はオープンされた書き込み用エンドポイントにポンプ速度を関連付ける要求が、ワークステーション１０６からリソースディスカバリサーバ１１４ａへ送信されてもよい。
【００３８】
さらに、リソースディスカバリサーバ１１４ａが、「１６２１５４５」などの識別子を生成し、ポンプ速度リソースを読み取って識別子をワークステーション１０６に伝送してもよい。あるいは、ワークステーション１０６が識別子を提供してもよい。他の実装例では、最適化のために、２つの識別子が用いられてもよい。例えば、ワークステーション１０６がポンプ速度を求める要求をサーバ１１４ａへ送るときワークステーション１０６はポンプ速度を識別するために１つの識別子を使い、サーバ１１４ａはワークステーション１０６に値を送信するために別の識別子を用いてもよい。またサーバ１１４ａは、読み出し用、書き込み用、及び／又はサブスクライブ用に、別個の識別子を要求してもよく、あるいは、読み出し用、書き込み用、及び／又はサブスクライブ用に、同一の識別子が用いられてもよい。図１の例では、サーバ１１４ａは、ポンプ速度の読み出し用および書き込み用に同一のポンプ速度識別子（例えば、１６２１５４５）を用いる。あるいは、リソースディスカバリサーバ１１４ａは、新規に作成され及び／又はオープンされた読み出し用エンドポイントには「３６２８５」などの識別子を生成し、新規に作成され及び／又はオープンされた書き込み用エンドポイントには「８８７３２」などの識別子を作成し、これらの識別子をワークステーション１０６に伝送してもよい。
【００３９】
ワークステーション１０６のオペレータ及び／又はユーザは、ポンプ速度識別子（例えば、１６２１５４５）および読み出し用エンドポイント識別子（例えば、３６２８５）をメッセージの中に含むメッセージを、リソースディスカバリサーバ１１４ａに送信することにより、ポンプ速度リソースを読み出してもよい。（サーバ１１４ａがポンプ速度値をキャッシュしていない場合）リソースディスカバリサーバ１１４ａは現行のポンプ速度値を求めてコントローラ１２２にアクセスし、ポンプ速度識別子（例えば、１６２１５４５）を用いるメッセージを用いてワークステーション１０６にポンプ速度値を伝送する。またワークステーション１０６のオペレータ及び／又はユーザは、新規のポンプ速度、ポンプ速度識別子（例えば、１６２１５４５）および書き込み用エンドポイント識別子（例えば、８８７３２）を有するメッセージを生成し、そのメッセージをリソースディスカバリサーバ１１４ａに伝送することにより、ポンプ速度を変えてもよい。そのメッセージを受信すると、リソースディスカバリサーバ１１４ａは新規のポンプ速度をコントローラ１２２に伝送し、ポンプ１３０の速度を新規に指定されたポンプ速度に設定する。次に、ワークステーション１０６のオペレータ及び／又はユーザは、リソースディスカバリサーバ１１４ａとのセッションを閉じてもよい。セッションが閉じられると、リソースディスカバリサーバ１１４ａは、セッションを停止し、リソース、読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントの識別子を削除する。
【００４０】
プロセス制御システム例１０４ａは、下記に詳細に説明する方法例および装置例がその中で有利に用いられる１つの種別のシステムを例として説明されるように提供されたものである。しかし、本明細書に記載の方法例および装置例は、より複雑なまたはより簡単な他のシステム及び／又は図１に示すプロセス制御システム例１０４ａとは異なる種別のシステムに、制限なく有利に用いられてもよい。さらに、読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントは、例えば、ポーリングのおよびコールバックの機構を含む、データ、イベント、およびアラームの取り出し及び／又は更新に関連する追加の方法および装置を用いて、実装されてもよい。
【００４１】
図２は、図１に示すサーバディスカバリサーバ例１０８およびリソースディスカバリサーバ例１１４ａのブロック図である。サーバディスカバリサーバ１０８およびリソースディスカバリサーバ１１４ａは、クライアントアプリケーション２０２に通信可能に接続される。クライアントアプリケーション例２０２は、データ、イベント、及び／又はアラームの現行値または履歴値へのアクセスを提供するシステムのリソースに関連付けられた情報にアクセスするために用いられうる、あらゆるプロセス制御アプリケーション及び／又はデータシステムアプリケーションを含んでもよい。例えば、クライアントアプリケーション２０２は、ＤｅｌｔａＶ（登録商標）の読み出し用／書き込み用制御アプリケーションであってもよい。
【００４２】
クライアントアプリケーション２０２は、オペレータ、ユーザ、及び／又は自動ユーザに代わってリソースにアクセスするために用いられる。クライアントアプリケーション例２０２は、クライアントアプリケーション２０２のユーザに関連付けられた識別情報を含んでもよい。クライアントアプリケーション２０２は、ワークステーション１０６、１１６、及び／又は１１８のいずれの上で動作してもよく、または識別情報を含んでもよい。さらに、クライアントアプリケーション２０２は、図１のＬＡＮ１１２及び／又はＷＡＮ１２０を介して、サーバディスカバリサーバ１０８及び／又はリソースディスカバリサーバ１１４ａに接続されていてもよい。
【００４３】
図２のクライアントアプリケーション例２０２は、要求メッセージをサーバディスカバリサーバ１０８及び／又はリソースディスカバリサーバ１１４ａへ伝送する。要求メッセージは、プロセス制御システム１０４ａ内のリソースの位置を特定するためのエンドポイントにアクセスするメッセージを含んでもよい。またクライアントアプリケーション２０２は、特定のセッション向けの不明朗な識別子を、選択されたリソース、読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントに割り当ててもよい。あるいは、クライアントアプリケーション２０２は、あらゆるリソース、読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントに対する特定のセッション向けの不明朗な識別子の割り当てを、リソースディスカバリサーバ１１４ａから受信してもよい。あるいは、クライアントアプリケーション２０２およびリソースディスカバリサーバ１１４ａは、それぞれの特定のセッション向けの不明朗な識別子を交換してもよい。クライアントアプリケーション２０２は、対応するリソース、読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントに割り当てられた識別子を保存する。従って、クライアントアプリケーション２０２に受信されたリソースデータは、コード化されたリソースデータに関連付けられたリソース及び／又はエンドポイントを特定するためにクライアントアプリケーション２０２が用いうる、対応するリソース識別子に関連付けられる。さらに、クライアントアプリケーション２０２は、暗号化されたデータをリソースディスカバリサーバ１１４ａから受信する暗号解読能力を含んでもよい。図２は単一のクライアントアプリケーション２０２を示すが、他の例では、複数のクライアントアプリケーションがサーバ１０８および１１４ａにアクセスしてもよい。
【００４４】
暗号化及び／又はエンドポイントアクセス制御等のセキュリティ手段を、クライアントアプリケーション２０２との通信に提供するために、サーバディスカバリサーバ例１０８はセキュリティプロセッサ２０４ａを備える。また暗号化及び／又はエンドポイントアクセス制御手段等のセキュリティ手段を、クライアントアプリケーション２０２との通信に提供するために、リソースディスカバリサーバ例１１４ａはセキュリティプロセッサ２０４ｂを備える。セキュリティプロセッサ例２０４ａ〜２０４ｂは、未認証の第三者から送信される通信を保護するために、暗号化プロセッサ及び／又はデジタル署名発生器を備えてもよい。暗号化プロセッサは、クライアントアプリケーション２０２宛の通信が未認証のユーザに読み出し不可能なフォーマットとなるようにフォーマットする、任意の種別の暗号エンコーダを用いてもよい。デジタル署名発生器は、未認証の第三者により通信が改竄されることがないよう、保護する。デジタル署名発生器は、クライアントアプリケーション２０２とサーバ１０８及び／又は１１４ａとの間で未認証の第三者による値の変更を検出可能な、あらゆる種別の暗号上セキュアな署名ジェネレータ（例えば、ハッシュコード）を用いてもよい。さらに、セキュリティプロセッサ２０４ａ〜２０４ｂは、認証機構及び／又はアクセス制御を含む、他の形態の通信セキュリティを含んでもよい。
【００４５】
セキュリティプロセッサ例２０４ａ〜２０４ｂは、クライアントアプリケーション２０２が発信する、暗号化された及び／又は署名された通信をデコードしてもよい。通信をデコードすると、セキュリティプロセッサ２０４ａ〜２０４ｂは、それぞれサーバ１０８および１１４ａ内の意図した宛先に通信を伝送する。またセキュリティプロセッサ２０４ａは、承認されたユーザのみがサーバディスカバリサーバ１０８にアクセスできるよう、クライアントアプリケーション２０２から発信される要求メッセージを識別情報によりフィルタリングしてよい。あるいは、いくつかの実装例では、サーバ１０８および１１４ａは、セキュリティプロセッサ２０４ａ〜２０４ｂを備えなくてもよい。これらの実装例では、セキュリティプロセッサ２０４ａ〜２０４ｂに関連付けられたセキュリティ機能は、ファイアウォール（例えば、ファイアウォール１１０）内に備えられてもよく、及び／又はプロセス制御プラント１０２内のいずれかの位置に備えられてもよい。
【００４６】
リソースディスカバリサーバの発見を管理するために、サーバディスカバリサーバ例１０８は、サーバディスカバリエンドポイントプロセッサ２０６を備える。サーバディスカバリエンドポイントプロセッサ２０６例は、承認された要求者のみがリソースディスカバリサーバを発見できるよう、クライアントアプリケーション２０２からの要求を処理する。サーバディスカバリエンドポイントプロセッサ２０６は、リソースディスカバリサーバを発見する要求メッセージ（例えば、サーバ発見要求メッセージ）を、クライアントアプリケーション例２０２を含むクライアントアプリケーションから受信する。
【００４７】
要求メッセージを受信すると、サーバディスカバリエンドポイントプロセッサ２０６は、要求メッセージ内の及び／又は要求メッセージに関連付けられた情報を用いて、クライアントアプリケーション２０２を使用するオペレータ及び／又はユーザの識別及び／又はクライアントアプリケーション２０２及び／又はエンドポイントアクセス制御の実行に関連付けられた他の情報を動作させるワークステーションの識別を判断する。例えば、サーバディスカバリエンドポイントプロセッサ２０６は、要求メッセージ内のユーザ認識フィールドをチェックして、ユーザ識別値が、認証されたユーザに対応するかどうかを判断してもよい。あるいは、サーバディスカバリエンドポイントプロセッサ例２０６は、要求メッセージ内の、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び／又はプロトコル種別をチェックしてもよい。あるいは、サーバディスカバリエンドポイントプロセッサ例２０６は、メッセージの認証処理（例えば、メッセージが集中セキュリティコンピュータから伝送されたものかどうか）を支援するために、メッセージ及び／又はクライアントアプリケーション２０２に関連する他の情報を調べてもよい。
【００４８】
サーバディスカバリエンドポイントプロセッサ２０６は、どのリソースディスカバリサーバがクライアントアプリケーション２０２に利用可能であるかを判断するために、アクセス制御リストを用いてもよい。あるいは、サーバディスカバリエンドポイントプロセッサ２０６は、受信したメッセージに関連付けられたセキュリティ属性を判断するための他の機能を実装してもよい。アクセス制御リスト及び／又は他の機能は、認められた各要求がアクセスすることが承認されたリソースディスカバリエンドポイントに関連する認められたユーザのリストを含んでもよい。例えば、プロセス制御システム１０４ａに割り当てられたシステムオペレータ及び／又はユーザは、プロセス制御システム１０４ａに関連付けられたリソースディスカバリエンドポイントへのアクセスが承認されてもよい。またアクセス制御リストは、各々のワークステーション及び／又はクライアントアプリケーションがアクセスすることが承認されたリソースディスカバリエンドポイントに関連するワークステーション及び／又はクライアントアプリケーションのリストを含んでもよい。アクセス制御リストは、プロセス制御システム１０４ａ〜１０４c及び／又はプロセス制御プラント１０２の管理者及び／又は制御者により予め設定されてもよい。
【００４９】
要求メッセージ内の識別情報をアクセス制御リストに関連させると、サーバディスカバリエンドポイントプロセッサ２０６は、承認されたリソースディスカバリエンドポイントのリストをクライアントアプリケーション２０２に返す。リソースディスカバリエンドポイントのリストは、リソースディスカバリエンドポイントの名称、エンドポイントに対するアクセスを提供するシステムの名称、及び／又はエンドポイントが提供する情報の種別を含んでもよい。また各リソースディスカバリエンドポイントに関するリストの中に提供される情報の量は、エンドポイントのリストを要求するクライアントアプリケーション２０２に基づいて、サーバディスカバリエンドポイントプロセッサ２０６により制限されてもよい。この制限により、第三者及び／又は侵入者がリソースディスカバリエンドポイントに対して悪意あるプロファイリングを行うことが比較的困難なものとなる。悪意あるプロファイリングは、潜在的なターゲット（例えば、ディスカバリサーバ１１４ａ）に対してターゲットへの侵入を策定するために、ターゲットの属性を検査することを含む場合がある。例えば、クライアントアプリケーション２０２がプロセス制御プラント１０２のリモート位置にある場合、サーバディスカバリエンドポイントプロセッサ２０６は、リストアップされた各リソースディスカバリエンドポイントに対する参照名を提供するのみでもよい。リストアップされた各リソースディスカバリエンドポイントは、プロセス制御環境１００内のリソースディスカバリサーバ１１４ａに対応する。例えば、サーバディスカバリエンドポイントプロセッサ２０６は、リソースディスカバリサーバ１１４ａ〜１１４ｃに対応するリソースディスカバリエンドポイントのリストを、クライアントアプリケーション２０２に提供してもよい。
【００５０】
図２のサーバディスカバリエンドポイントプロセッサ例２０６は、リソースディスカバリエンドポイントのリストを、クライアントアプリケーション２０２に提供する。サーバディスカバリエンドポイントプロセッサ２０６は、リソースディスカバリサーバ１１４ａ内でセッションをオープンする要求を発信するに必要な情報（例えば、接続メッセージ）を返してもよい。またあるいは、サーバディスカバリエンドポイントプロセッサ２０６は、クライアントアプリケーション２０２がリソースディスカバリエンドポイントを選択できるようにするリソースディスカバリエンドポイントの識別を返してもよい。クライアントアプリケーション２０２がリソースディスカバリエンドポイントの１つまたは複数を選択すると、サーバディスカバリエンドポイントプロセッサ２０６は、各々の選択されたリソースディスカバリエンドポイントとのセッションをオープンするための情報を、クライアントアプリケーション２０２へ伝送する。
【００５１】
リソース、リソースディスカバリエンドポイント、読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントへのアクセスを管理するために、リソースディスカバリサーバ例１１４ａは、セッションコントローラ２０８と、リソースディスカバリエンドポイントプロセッサ２１０と、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２とを備える。図２には、クライアントアプリケーション２０２に接続されたリソースディスカバリサーバ１１４ａのみが示されている。他の例では、クライアントアプリケーション２０２は、それぞれのセッションコントローラ２０８、リソースディスカバリエンドポイントプロセッサ２１０、および読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２を備えうるリソースディスカバリサーバ１１４ｂ〜１１４ｃに接続されてもよい。クライアントアプリケーション２０２は、リソースディスカバリエンドポイントに関連付けられた位置及び／又は情報をサーバディスカバリエンドポイントプロセッサ２０６から受信する。クライアントアプリケーション２０２は、要求メッセージ（例えば、接続メッセージ）をリソースディスカバリサーバ１１４ａに関連付けられたリソースディスカバリエンドポイントに送信するために、この情報を用いてリソースディスカバリサーバ１１４ａにアクセスする。
【００５２】
図２のセッションコントローラ例２０８は、クライアントアプリケーション２０２に対するリソースアクセスセッションを管理する。このセッションは、クライアントアプリケーション２０２およびリソースディスカバリサーバ１１４ａ間の通信の関連付けの１つの例を表す。またセッションコントローラ２０８は、リソースディスカバリサーバ１１４ａにアクセスしうる他のクライアントアプリケーションに対するセッションの管理を行ってもよい。セッションコントローラ２０８は、サーバ１１４ａに関連付けられたリソースディスカバリエンドポイントとのセッションをオープンする接続メッセージをクライアントアプリケーション２０２から受信すると、セッションを開始する。セッションコントローラ２０８によりセッションがオープンされるまで、セッションコントローラ２０８は、クライアントアプリケーション２０２からの他のあらゆる要求を拒否してもよい。セッションがオープンされている間、セッションコントローラ２０８は、各要求メッセージをクライアントアプリケーション２０２からリソースディスカバリエンドポイントプロセッサ２１０へ送る。
【００５３】
クライアントアプリケーション２０２がリソース及び／又はリソースエンドポイントをリソースディスカバリエンドポイントプロセッサ２１０から選択し、選択されたリソースにアクセスする（または、選択されたリソースを予め作成及び／又はオープンされた、読み出し用、書き込み用、またはサブスクライブ用のエンドポイントに割り当てる）ために、読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントの作成を要求する場合、リソースディスカバリエンドポイントプロセッサ２１０は、選択されたリソースおよび関連付けられた読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントへの参照を保存する。またセッションコントローラ２０８は、選択されたリソースおよびそれらの関連付けられた読み出し用のまたは書き込み用のエンドポイントへの参照を保存してもよい。
【００５４】
読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ（例えば、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２）は、クライアントアプリケーション２０２が作成及び／又はオープンする各読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントに対して、作成され及び／又は使用されてもよい。これらの読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサの各々に対して、セキュリティプロセッサ及び／又はセッションコントローラも、作成され及び／又は使用されてよい。プロセッサを作成及び／又は使用するステップは、プロセッサに関連付けられた機能を実行するサーバの部分を割り当てるステップを含んでもよい。あるいは、プロセッサを作成及び／又は使用するステップは、新規に作成されたプロセッサの各々に関連付けられた機能を実行するよう、１つまたは複数の隣接するサーバ上のプロセッサをアクティブにするステップを含んでもよい。各読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサのセキュリティプロセッサ及び／又はセッションコントローラに対し作成及び／又は使用するステップは、異なるクライアントアプリケーションに対する異なるセッションに対するリソースディスカバリエンドポイントプロセッサ２１０の間で伝送されるメッセージの通信パスを分離することにより、追加のセキュリティを提供する。また通信パスの分離は、リソースディスカバリエンドポイントプロセッサ２１０へ及び／又はリソースディスカバリエンドポイントプロセッサ２１０から伝送されるメッセージと、読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントへ及び／又は読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントから伝送されるメッセージと、に対して追加のセキュリティを提供する。読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２は、別の別個のセキュリティのためのセキュリティ階層を提供するために、セキュリティプロセッサ２０４ｂ及び／又はセッションコントローラ２０８以外のもう１つの別個のコンピュータ媒体上に実装されてもよい。あるいは、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２が、各読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントへのアクセスを提供するために用いられてもよい。
【００５５】
各読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２に対して、リソースディスカバリエンドポイントプロセッサ２１０及び／又はセッションコントローラ２０８は、クライアントアプリケーション２０２及び／又はこれらのリソースの関連付けられた不明朗な識別子により選択されたリソースを、対応する読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２へ伝送してもよい。これらの不明朗な識別子は、クライアントアプリケーション２０２により、リソースディスカバリエンドポイントプロセッサ２１０により、またはその両者により、割り当てられてもよい。
【００５６】
識別子参照情報を保存することにより、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ例２１２は、各クライアントアプリケーション２０２に対して、どの識別子がどのリソースに対応するかを管理する。従って、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２およびクライアントアプリケーション２０２間の通信では、通信の監視を企てる未承認の当事者またはエンティティに対する保護の形態として、識別子を用いてもよい。いくつかの例では、複数のクライアントアプリケーションが、異なったリソースに対して同一の識別子を用いてもよい。同様に、異なったエンドポイントを通じてアクセスされる異なったリソースに対して、同一のクライアントが同一の識別子を用いてもよい。あるいは、同一のリソースに対して異なった識別子が同一のクライアントにより異なったエンドポイントを通じてリソースにアクセスするために用いられてもよい。これらの例では、リソースディスカバリエンドポイントプロセッサ２１０が、リソースに対する及び／又は読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２に対する、これらの識別子の割り当てを管理する。読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２は、関連付けられたリソースにアクセスするために、各クライアントアプリケーション２０２に対する識別子の使用を管理する。
【００５７】
セッションコントローラ例２０８は、クライアントアプリケーション２０２に対する読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントに対する不明朗な識別子を管理してもよい。例えば、セッションコントローラ２０８は、各読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントと、リソースディスカバリエンドポイントプロセッサ２１２により割り当てられた対応する不明朗な識別子と、を保存してもよい。
【００５８】
さらに、セッションコントローラ例２０８は、クライアントアプリケーション２０２からの要求メッセージを確認しおよび方向付ける。この確認により、宛先であるプロセッサ２１０及び／又は２１２に対する、要求メッセージにより識別されたセッションによるアクセスが有効であること及び／又は承認されたことが確実となる。サーバ１１４ａのリソースディスカバリエンドポイントに向けられた有効な要求メッセージは、セッションコントローラ２０８により、リソースディスカバリエンドポイントプロセッサ２１０に経路が定められる。同様に、読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントに向かう有効な要求メッセージは、セッションコントローラ２０８により、適切な読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２に経路が定められる。またセッションコントローラ２０８は、メッセージ内で識別されるセッションが有効であるかどうかを判断することにより、及び／又は読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントに関連付けられた不明朗な識別子が有効であるかどうかを判断することにより、要求メッセージを確認してもよい。次に、読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントに向けられた有効な要求メッセージは、セッションコントローラ２０８により、対応する読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２へ経路が定められる。
【００５９】
図２のセッションコントローラ例２０８は、クライアントアプリケーション２０２が、アクセスを停止することを示すメッセージを、クライアントアプリケーション２０２がリソースディスカバリサーバ１１４ａへ送信すると、セッションを停止する。停止メッセージを受信すると、セッションコントローラ２０８は、リソース、読み出し用エンドポイント、書き込み用エンドポイント、及び／又は対応する識別子を含む、保存されたセッション情報を削除する。クライアントアプリケーション２０２が、削除されたセッションから、リソース、及び／又はエンドポイントのいずれかにアクセスしようとすると、クライアントアプリケーション２０２は新規のセッションを開始し、各リソースに対する再登録をすることが要求される。
【００６０】
リソース及び／又は関連付けられたエンドポイントへのアクセスを管理及び／又は制御するために、図２のリソースディスカバリサーバ例１１４ａは、リソースディスカバリエンドポイントプロセッサ２１０を備える。リソースディスカバリエンドポイントプロセッサ例２１０は要求メッセージ（例えば、リソース発見要求メッセージ、エンドポイントオープン要求メッセージ、及び／又は登録要求メッセージ）を、セッションコントローラ２０８を介してクライアントアプリケーション２０２から受信する。要求メッセージを受信すると、リソースディスカバリエンドポイントプロセッサ２１０は、要求メッセージ内の及び／又は要求メッセージに関連付けられた情報を用いて、クライアントアプリケーション２０２が発見し、その後にアクセスしうるリソースへのアクセスを制御する。例えば、サーバディスカバリエンドポイントプロセッサ２０６は、クライアントアプリケーション２０２がどのリソースへのアクセスが承認されているかを判断するために要求メッセージ内のユーザ識別フィールドをチェックしてもよい。あるいは、リソースディスカバリエンドポイントプロセッサ例２１０は、要求メッセージ内の、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び／又はプロトコル種別をチェックしてもよい。
【００６１】
リソースディスカバリエンドポイントプロセッサ例２１０は、クライアントアプリケーション２０２がどのリソースにアクセスしてよいかを判断するために、アクセスリストを用いてもよい。アクセスリストは、リソースのリストを各々参照する、承認されたユーザ、ワークステーション及び／又はクライアントアプリケーションのリストを含んでもよい。いくつかの実装例では、リソースのリストは、リソースのグループに対応するコードを含んでもよい。クライアントアプリケーション２０２はどのリソースへのアクセスが承認されているかを判断すると、リソースディスカバリエンドポイントプロセッサ２１０は、そのリソースのリストをクライアントアプリケーション２０２に提供する。そのリストは、リソース、リソース内に含まれる情報、及び／又はリソースに関するコード化された情報の名称を含んでもよい。いくつかの例では、リストは１つのセットにグループ化されたリソースを含んでもよい。これらの例では、クライアントアプリケーションは、セットを選択することにより、セット内のリソースの一部または全部にアクセスしてもよい。
【００６２】
リソースディスカバリエンドポイントプロセッサ例２１０は、１つまたは複数の選択されたリソースが割り当てられていてもよい、読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントを伴う、クライアントアプリケーション２０２を、承認されている場合、クライアントアプリケーション２０２に提供する。またリソースディスカバリエンドポイントプロセッサ２１０は、各選択されたリソースを、対応するセッションコントローラ（例えば、セッションコントローラ２０８）及び／又は共有される読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２に制御される、読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントに追加する。リソースディスカバリエンドポイントプロセッサ２１０は、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２が読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントに各リソースを追加するよう、選択された各リソースを伝送してもよい。
【００６３】
さらに、リソースディスカバリエンドポイントプロセッサ例２１０は、各選択されたリソースに対する識別子を生成し、クライアントアプリケーション２０２にその識別子を伝送する。例えば、クライアントアプリケーション２０２がタンクリソースを選択する場合、リソースディスカバリエンドポイントプロセッサ２１０はタンクリソースに不明朗な識別子「ＤＭ４５」を割り当てる。リソースディスカバリエンドポイントプロセッサ２１０はこのＤＭ４５識別子をクライアントアプリケーション２０２に伝送する。クライアントアプリケーション２０２およびリソースディスカバリサーバ１１４ａ間のその後の通信では、タンクリソースを参照するときにはＤＭ４５識別子が用いてもよい。
【００６４】
リソースディスカバリエンドポイントプロセッサ例２１０は、選択されたリソースが追加されうる１つまたは複数の読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントを作成及び／又はオープンするための、登録要求メッセージ及び／又はオープンエンドポイント要求メッセージを受信する。リソースディスカバリエンドポイントプロセッサ２１０は、登録要求メッセージを生成したクライアントアプリケーション２０２が、選択されたリソースに対して読み出し、書き込み、及び／又はサブスクライブを実行することが承認されているかどうかを判断する。一般に、クライアントアプリケーション２０２がリソースに対するアクセス権を提供されている場合、クライアントアプリケーション２０２はそのリソースに対する、読み出しの及び／又はサブスクライブのアクセスが認められる。しかし、クライアントアプリケーション２０２がリソースに対する書き込みのアクセス権を有しないこともある。
【００６５】
またリソースディスカバリエンドポイントプロセッサ２１０は、エンドポイントアクセス制御を用いて、クライアントアプリケーション２０２が書き込みアクセスに対して承認されているかどうか判断する。例えば、エンドポイントアクセス制御は、承認されたユーザ及び／又はクライアントアプリケーション202のリストを含みうるアクセス制御リスト用いてもよい。クライアントアプリケーション２０２が書き込みアクセスに対して承認されている場合、リソースディスカバリエンドポイントプロセッサ２１０は要求に応じて、クライアントアプリケーション２０２により選択されたリソースに対して、１つまたは複数の承認された書き込み用エンドポイントを作成及び／又はオープンする。次にリソースディスカバリエンドポイントプロセッサ２１０は、クライアントアプリケーション２０２に対し書き込みが承認された選択されたリソースを、新規に作成され及び／又はオープンされた書き込み用エンドポイントに追加する。
【００６６】
読み出し用エンドポイント、書き込み用エンドポイント、サブスクライブ用エンドポイント、およびプロセス制御リソースへのアクセスを管理するために、図２のリソースディスカバリサーバ例１１４ａは、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２を備える。読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２は、リソースへのアクセスを要求するメッセージに対するエンドポイントアクセス制御を用いて、クライアントアプリケーション２０２が、読み出し、書き込み、及び／又はサブスクライブのアクセスを承認されているかどうかを判断する。例えば、エンドポイントアクセス制御は、承認されたユーザ及び／又はクライアントアプリケーション２０２のリストを含みうるアクセス制御リストを用いてもよい。所定のリソースに対する読み出し、書き込み、またはサブスクライブを実行する要求を、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２が受信すると、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２は、クライアントアプリケーション２０２がそのリソースに対する読み出し、書き込み、及び／又はサブスクライブのアクセスに対し承認されていることを検証する。
【００６７】
また読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ例２１２は、通信パス２１４を介して、リソースに対するアクセスを提供及び／又は許可する。例えば、選択されたソースは、図１のコントローラ１２２に位置しうる。クライアントアプリケーション２０２が、読み出し、書き込み、及び／又はサブスクライブを実行するメッセージを選択されたリソースへ伝送する場合、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ例２１２は、メッセージ内の不明朗な識別子を用いて、コントローラ１２２内のリソースにアクセスする。読み出し用エンドポイントに送信されたメッセージに対して、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２は、所望のリソース（例えば、値、アラーム、及び／又はイベント）を取り出す。同様に、書き込み用エンドポイントに送信されたメッセージに対して、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２は、リソース（例えば、図1のコントローラ１２２）にデータを書き込む。
【００６８】
サーバディスカバリエンドポイントプロセッサ２０６、リソースディスカバリエンドポイントプロセッサ２１０及び／又は読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２に使用されたエンドポイントアクセス制御情報を保存するために、図２のサーバ例１０８および１１４ａはアクセス制御データベース２２０に通信可能に接続される。いくつかの例では、アクセス制御データベース２２０は、サーバ１０８及び／又は１１４ａ内に含まれてもよい。あるいは、アクセス制御データベース例２２０は、図１のプロセス制御システム１０４ａ〜１０４c内に及び／又はプロセス制御プラント１０２内に含まれてもよい。さらに、アクセス制御データベース２２０は、プロセス制御プラント１０２における中央アクセス制御システム内に含まれてもよい。アクセス制御データベース例２２０は、ＥＥＰＲＯＭ、ＲＡＭ、ＲＯＭ、及び／又は他の任意の種別のメモリにより実装されてもよい。またアクセス制御データベース２２０は、構造化照会言語（ＳＱＬ）サーバ及び／又は他のあらゆるデータベース技術により実装されてもよい。セキュリティ管理者または他の承認されたユーザは、アクセス制御データベース２２０にアクセスして、アクセス制御リスト内の承認されたユーザおよび承認されたユーザのアクセスレベルを、更新、追加、削除、及び／又は変更してもよい。
【００６９】
サーバディスカバリサーバ１０８およびリソースディスカバリサーバ１１４ａの実装方法例が図２に示されているが、図２に示すインターフェース、データ構造、構成要素、プロセス及び／又はデバイスの１つまたは複数は、他の任意の方法で、組み合わせ、分割、再編成、省略、削除及び／又は実装されてもよい。例えば、図２のセキュリティプロセッサ例２０４ａ〜２０４ｂ、サーバディスカバリエンドポイントプロセッサ例２０６、セッションコントローラ例２０８、リソースディスカバリエンドポイントプロセッサ例２１０、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ例２１２、及び／又はアクセス制御データベース例２２０は、例えば１つまたは複数のコンピュータデバイス及び／又はコンピュータプラットホーム（例えば、図５の処理プラットホーム例５００）により実行される機械アクセス可能なまたは読み出し可能な命令を用いて、別個に及び／又は任意の組み合わせで、実装されてもよい。
【００７０】
さらに、セキュリティプロセッサ例２０４ａ〜２０４ｂ、サーバディスカバリエンドポイントプロセッサ例２０６、セッションコントローラ例２０８、リソースディスカバリエンドポイントプロセッサ例２１０、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ例２１２、アクセス制御データベース例２２０及び／又はより一般的にサーバディスカバリサーバ１０８及び／又はリソースディスカバリサーバ１１４ａは、ハードウェア、ソフトウェア、ファームウェア及び／又はハードウェア、ソフトウェア及び／又はファームウェアの任意の組み合わせにより実装されてもよい。従って、例えば、セキュリティプロセッサ例２０４ａ〜２０４ｂ、サーバディスカバリエンドポイントプロセッサ例２０６、セッションコントローラ例２０８、リソースディスカバリエンドポイントプロセッサ例２１０、読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ例２１２、アクセス制御データベース例２２０及び／又は、より一般的にサーバディスカバリサーバ１０８及び／又はリソースディスカバリサーバ１１４ａのいずれもが、１つまたは複数の回路、プログラム可能プロセッサ、特定用途向けの集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）及び／又はフィールドプログラム可能論理デバイス（ＦＰＬＤ）その他を用いて実装可能である。
【００７１】
図３は、図１および２に示すサーバディスカバリサーバ例１０８およびリソースディスカバリサーバ１１４ａにより提供される階層型セキュリティ例３００を示す図である。階層型セキュリティ３００は、サーバディスカバリエンドポイント３０２にアクセスする図２のクライアントアプリケーション２０２、リソースディスカバリエンドポイント３０４、読み出し用エンドポイント３０６、書き込み用エンドポイント３０８、およびサブスクライブ用エンドポイント３１０を備える。階層型セキュリティ３００の図は、クライアントアプリケーション２０２がプロセス制御システム１０４ａ内のリソースにアクセスするプロセスの１つの例を示す。
【００７２】
まず、図３のクライアントアプリケーション２０２は、図１および図２のサーバディスカバリサーバ１０８のサーバディスカバリエンドポイント３０２にアクセスする。サーバディスカバリエンドポイント３０２は、クライアントアプリケーション２０２に利用可能なリソースディスカバリサーバのリストを含む。さらに、サーバディスカバリエンドポイント３０２内でサーバのリストに隣接するハッシュ化されたボックスは、図２のセキュリティプロセッサ２０４ａを表す。リソースディスカバリサーバのリストは、クライアントアプリケーション２０２がアクセスを承認されたリソースディスカバリサーバとクライアントアプリケーション２０２とを照合することにより、判断されてもよい。クライアントアプリケーション２０２は、リストされたサーバの１つまたは複数を選択してもよい。リストされたサーバを選択することにより、サーバディスカバリエンドポイント３０２は、選択されたサーバに対するエンドポイントをクライアントアプリケーション２０２に提供する。あるいは、サーバディスカバリエンドポイント３０２は、同時に各リソースディスカバリサーバのリソースディスカバリエンドポイント３０４をクライアントアプリケーション２０２に提供してもよい。
【００７３】
次に、クライアントアプリケーション２０２は、サーバディスカバリエンドポイント３０２により提供されるエンドポイントを用いて、リソースディスカバリエンドポイント３０４にアクセスする。あるいは、リソースディスカバリエンドポイント３０４のエンドポイント及び／又はアドレスを用いてクライアントアプリケーション２０２が初期設定される例では、クライアントアプリケーション３０４は、最初にサーバディスカバリエンドポイント３０２にアクセスせずに、リソースディスカバリエンドポイント３０４にアクセスしてもよい。リソースディスカバリエンドポイント３０４は、クライアントアプリケーション２０２によりアクセス可能なリソースのリストを含む。リソースのリストは、リソースのグループ及び／又は個々のリソースを含んでもよい。さらに、リソースディスカバリエンドポイント３０４内のサーバのリストに隣接するハッシュ化されたボックスは、図２のセキュリティプロセッサ２０４ｂを表す。実装例では、クライアントアプリケーション２０２は、利用可能なリソースのリストから、登録する１つまたは複数のリソースを選択してもよい。これらの例では、クライアントアプリケーション２０２は、１つまたは複数の読み出し用エンドポイント３０６、１つまたは複数の書き込み用エンドポイント３０８、及び／又は１つまたは複数のサブスクライブ用エンドポイント３１０を作成及び／又はオープンすることを、リソースディスカバリエンドポイント３０４に要求する。さらに、クライアントアプリケーションは、新規に作成及び／又はオープンされた読み出し用エンドポイント３０６、新規に作成及び／又はオープンされた書き込み用エンドポイント３０８、及び／又は新規に作成及び／又はオープンされたサブスクライブ用エンドポイント３１０に対して、選択されたリソースのいずれが関連付けられるかを指定する。クライアントアプリケーションは、エンドポイントが作成及び／又はオープンされる時点で、エンドポイントが作成及び／又はオープンされた後に、及び／又はエンドポイントの作成及び／又はオープンしている間に、リソースを指定してもよい。
【００７４】
クライアントアプリケーション２０２が、読み出し用エンドポイント３０６、書き込み用エンドポイント３０８、及び／又はサブスクライブ用エンドポイント３１０を、作成及び／又はオープンすると、リソースディスカバリエンドポイント３０４は、新規に作成及び／又はオープンされたエンドポイント３０６〜３１０の各々に関連付けられた不明朗な識別子を、クライアントアプリケーション２０２に提供する。さらに、リソースを選択して、そのリソースを、読み出し用エンドポイント３０６、書き込み用エンドポイント３０８、及び／又はサブスクライブ用エンドポイント３１０に割り当てると、選択されたリソースは、読み出し用エンドポイント３０６、書き込み用エンドポイント３０８、及び／又はサブスクライブ用エンドポイント３１０において選択されたリソースのリスト内に含まれる。
【００７５】
読み出し用エンドポイント３０６、書き込み用エンドポイント３０８、及び／又はサブスクライブ用エンドポイント３１０に追加された各リソースに対して、リソースに対応する１つの不明朗な識別子、またあるいは１対の不明朗な識別子（例えば、クライアントアプリケーション２０２により割り当てられた１つの識別子およびリソースディスカバリエンドポイント３０４により割り当てられた１つの識別子）は、リソースディスカバリエンドポイント３０４によりクライアントアプリケーション２０２へ伝送される。クライアントアプリケーション２０２は、そのリソースデータに読み出し用エンドポイント３０６を介してアクセスすることにより、選択されたリソースに関連付けられたデータ（例えば、値、アラーム、及び／又はイベント）を読み出してもよい。同様に、クライアントアプリケーション２０２は、書き込み用エンドポイン３０８を介してリソースにアクセスすることにより、データをリソースに書き込んでもよい。またクライアントアプリケーション２０２は、サブスクライブ用エンドポイント３１０を介してリソースにアクセスすることにより、リソースのデータにサブスクライブしてもよい。
【００７６】
図４Ａ及び／又は図４Ｂは、図１、図２、及び／又は図３に示す、サーバディスカバリサーバ例１０８、リソースディスカバリサーバ例１１４ａ〜１１４ｃ、クライアントアプリケーション例２０２、及び／又はプロセス制御環境例１００を実装しうるプロセスの例を示すフローチャートである。図４Ａ及び／又は図４Ｂに示すプロセスの例は、プロセッサ、コントローラ及び／又は他の任意の適切な処理デバイスにより実行されてもよい。例えば、図４Ａ及び／又は図４Ｂに示すプロセスの例は、フラッシュメモリ、ＣＤ、ＤＶＤ、フロッピー（登録商標）ディスク、ＲＯＭ、ＲＡＭ、プログラム可能なＲＯＭ（ＰＲＯＭ）、電気的プログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的消去可能なＰＲＯＭ（ＥＥＰＲＯＭ）、光記憶ディスク、光記憶デバイス、磁気記憶ディスク、磁気記憶デバイス、及び／又は方法、プロセスまたはデータ構造の形のプログラムコード及び／又は命令を坦持または保存するために使用可能で、且つプロセッサ、汎用のまたは特殊用途のコンピュータ、またはプロセッサを有する他の機械（例えば、図５に関して以下で説明されるプロセッサプラットホーム例５００）によりアクセス可能な他の任意の媒体などの、任意の具体的なコンピュータ可読媒体に保存されるコード化された命令により具体化されてもよい。上記の組み合わせもまたコンピュータ可読媒体の範囲に含まれる。
【００７７】
プロセスは、例えば、プロセッサ、汎用のコンピュータ、特殊用途のコンピュータ、または特殊用途の処理用機械に、１つまたは複数の特定のプロセスを実行させる命令及び／又はデータを含む。あるいは、図４Ａ及び／又は図４Ｂに示すオペレーション例の一部または全部は、ＡＳＩＣ、ＰＬＤ、ＦＰＬＤ、離散論理、ハードウェア、ファームウェア、その他、の任意の組み合わせを用いて実行されてもよい。
【００７８】
また、図４Ａ及び／又は図４Ｂに示すオペレーション例の１つまたは複数は、１つまたは複数の手動のオペレーションまたは、例えば、ファームウェア、ソフトウェア、離散論理及び／又はハードウェアの任意組み合わせなど、任意の前述の技術の任意の組み合わせとして実装されてもよい。さらに、図４Ａ及び／又は図４Ｂに示すオペレーション例を実行する他の多数のプロセスを用いてもよい。例えば、ブロックの実行順序を変更してもよく、及び／又は記載のブロックの１つまたは複数を、変更、削除、分割、または組み合わせてもよい。さらに、図４Ａ及び／又は図４Ｂに示すオペレーション例のいずれかまたは全部は、順次実行されてもよく、及び／又は例えば、スレッド、プロセッサ、デバイス、離散論理、回路、その他を別個に処理することにより、並行して実行されてもよい。
【００７９】
図４Ａおよび図４Ｂに示すプロセス例４００は、図１のプロセス制御環境例１００内のインターフェースアクセス制御に対する階層型セキュリティを提供する。さらに、プロセス例４００は、製造オートメーションシステム、工業システム、その他を含む他の種別のデータシステム用のインターフェースアクセス制御に対する階層型セキュリティを提供しうる。さらに、プロセス例４００は、サーバディスカバリサーバ（例えば、図１に示すサーバディスカバリサーバ１０８）内のエンドポイントにアクセスするための各要求に対して、実行されてもよい。サーバディスカバリサーバ１０８にアクセスするための各要求に対して、プロセス例４００は、順次実行されてもよく、及び／又はプロセス例４００の他の例と並列して実行されてもよい。
【００８０】
プロセス例４００は、サーバディスカバリサーバ１０８内のエンドポイントにアクセスするサーバ発見要求メッセージが受信される（ブロック４０２）と、開始する。要求メッセージは、リモートワークステーション（例えば、リモートワークステーション１１６及び／又は１１８）に位置するクライアントアプリケーションから、またあるいは、ローカルワークステーション（例えば、ローカルワークステーション１０６）から、発信されてもよい。プロセス例４００は、要求メッセージに関連付けられた優先権をチェックすることにより、サーバディスカバリサーバ１０８が要求メッセージに対してアクセス可能かまたは利用可能かどうかを判断する（ブロック４０４）。例えば、プロセス４００は、要求メッセージ内のユーザ識別フィールドをチェックして、ユーザ識別値が承認されたユーザに対応するかどうかを判断してもよい。あるいは、プロセス例４００は、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び／又はメッセージの伝送に用いられたプロトコルをチェックして、要求メッセージの発信者がサーバディスカバリサーバ４０４にアクセスすることが承認されているかどうかを判断してもよい。
【００８１】
要求メッセージがサーバディスカバリサーバ１０８にアクセスすることが承認されていないとプロセス例４００が判断した場合（ブロック４０４）、プロセス４００は、応答メッセージを生成及び／又はクライアントアプリケーションに伝送する（ブロック４０６）。応答メッセージは、サーバディスカバリサーバ１０８にアクセスする要求を拒否してもよい。応答メッセージを生成および伝送すると（ブロック４０６）、プロセス例４００は終了する。
【００８２】
一方、要求メッセージがサーバディスカバリサーバ１０８にアクセスすることが承認されているとプロセス例４００が判断した場合（ブロック４０４）、要求メッセージは、サーバディスカバリサーバ１０８内で受信される（ブロック４０８）。次に、要求メッセージに関連付けられたクライアントアプリケーションが、どのリソースディスカバリサーバ（例えば、リソースディスカバリサーバ１１４ａ〜１１４ｃ）にアクセスすることが承認されているかを、プロセス例４００が判断する（ブロック４１０）。クライアントアプリケーションに利用可能なリソースディスカバリサーバは、識別フィールド、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び／又は要求メッセージ内の及び／又は要求メッセージに関連付けられたプロトコルに基づいてもよい。
【００８３】
承認されたリソースディスカバリサーバが存在しない（例えば、承認されたリソースディスカバリエンドポイントのリストが空欄）とプロセス例４００が判断した場合、利用可能なリソースディスカバリサーバが存在しないことを示すメッセージが生成され、及び／又はクライアントアプリケーションに伝送される（ブロック４１４）。メッセージを伝送する（ブロック４１４）と、プロセス例４００は終了する。
【００８４】
一方、少なくとも１つの承認されたリソースディスカバリサーバが存在する（ブロック４１２）場合、プロセス例４００は、認められた及び／又は承認されたリソースディスカバリエンドポイント（例えば、リソースディスカバリサーバ１１４ａ〜１１４ｃのリソースディスカバリエンドポイント）のリストをクライアントアプリケーションに提供する（ブロック４１６）。他の例では、エンドポイントは、クライアントアプリケーションを提供する各リソースディスカバリサーバに対して、リソースディスカバリエンドポイントのリストを提供されてもよい。次に、クライアントアプリケーションは、リストされたリソースディスカバリエンドポイントの１つまたは複数を選択する（ブロック４１８）。他の例では、クライアントアプリケーションはリソースディスカバリエンドポイントを選択しなくともよく、及び／又はプロセス例４００を終了してもよい。
【００８５】
プロセス例４００は、選択されたリソースディスカバリエンドポイント（例えば、リソースディスカバリサーバ１１４ａ）にアクセスする要求メッセージが受信された（ブロック４２０）とき、継続する。あるいは、クライアントアプリケーションがリソースディスカバリエンドポイントを用いて初期設定されている例では、プロセス例４００は、リソースディスカバリエンドポイントにアクセスする要求メッセージ（例えば、接続メッセージ）が受信された（ブロック４２０）とき、開始してもよい。要求メッセージは、生成及び／又はクライアントアプリケーションから伝送される。さらに、リソースディスカバリエンドポイントにアクセスする要求メッセージをプロセス例４００が受信すると、プロセス例４００は、クライアントアプリケーションに対するセッションをオープンする。他の例では、クライアントアプリケーションは、複数のリソースディスカバリエンドポイントを選択してもよい。これらの例では、プロセス例４００は、選択された各リソースディスカバリエンドポイントに対するセッションをオープンしてもよい。さらに、選択された各リソースディスカバリエンドポイントに対し、プロセス例４００は、ブロック４２０〜４４６の別個の例を動作させてもよい。
【００８６】
リソースディスカバリエンドポイントにアクセスする要求メッセージを受信する（ブロック４２０）と、プロセス例４００は、選択されたリソースディスカバリエンドポイントのどのリソースがクライアントアプリケーションに利用可能であるかを判断する（ブロック４２２）。クライアントアプリケーションに利用可能なリソースは、識別フィールド、ワークステーション識別値、クライアントアプリケーション種別、クライアントアプリケーション・シリアルナンバ、クライアントアプリケーション位置、及び／又は要求メッセージ内の及び／又は要求メッセージに関連付けられたプロトコルに基づいてもよい。さらに、利用可能なリソースは、クライアントアプリケーションに対して、プロセス制御プラント１０２の管理者、ユーザ、及び／又はオペレータにより、予め定義されてもよい。次に、プロセス例４００は、要求メッセージに関連付けられた利用可能なリソースが存在するかどうかを判断する（ブロック４２４）。利用可能な及び／又は承認されたリソースが存在しない場合、プロセス例４００は、クライアントアプリケーションがもう１つのリソースディスカバリエンドポイントを選択し得るよう、再びリソースディスカバリエンドポイントのリストを提供する（ブロック４１６）。さらに、プロセス例は、クライアントアプリケーションとのセッションを閉じてもよい。
【００８７】
少なくとも１つの利用可能なリソースが存在する（ブロック４２４）場合、プロセス例４００は次に、利用可能なリソースのリストをクライアントアプリケーションに提供する（ブロック４２６）。次に、クライアントアプリケーションは、リストされたリソースの１つへのアクセスの登録を要求してもよい（ブロック４２８）。あるいは、クライアントアプリケーションは、同一の要求の中でリストされたリソースの２つ以上へのアクセスの登録を要求してもよい。他の実装例では、クライアントアプリケーションは、もう１つのリソースディスカバリエンドポイントを選択してもよく、またはプロセス例４００を終了してもよい。
【００８８】
登録するリソースを選択すると（ブロック４２８）、クライアントアプリケーションは、選択されたリソースに対する識別子をリソースディスカバリエンドポイントに伝送する（ブロック４３０）。識別子は、クライアントアプリケーションと、選択されたリソースディスカバリエンドポイントを含むリソースディスカバリサーバと、のみにより知られる。リソースディスカバリエンドポイントが識別子をクライアントアプリケーションから受信すると、リソースディスカバリエンドポイントに関連付けられたリソースディスカバリサーバは、セッションの状況内のリソースに対する、伝送された識別子を保存する。これらの識別子は、クライアントアプリケーション（例えば、ワークステーション１０６、１１６、及び／又は１１８）およびリソースディスカバリサーバ（例えば、リソースディスカバリサーバ１１４ａ〜１１４ｃ）間の通信にアクセスを企てる未認証のユーザにとって、不明朗である。次に、プロセス例４００は、クライアントアプリケーションが追加のリソースを既に要求しているかどうか（ブロック４３２）を判断する。クライアントアプリケーションが他のリソースを既に要求している場合、クライアントアプリケーションは、リソースに対する要求をリソースディスカバリエンドポイントに送信する（ブロック４２８）。他の例では、クライアントアプリケーションがリソースを選択すると（ブロック４２８）、プロセス例４００は選択されたリソースに対する識別子をクライアントアプリケーションに伝送してもよい（ブロック４３０）。次に、識別子を受信すると、クライアントアプリケーションは識別子を用いてリソースディスカバリサーバと通信する。
【００８９】
登録する追加のリソースをクライアントアプリケーションが選択しない場合（ブロック４３２）、プロセス例４００は、クライアントアプリケーションが既に読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントの作成及び／又はオープンを要求しているかどうか（ブロック４３４）を判断する。エンドポイントの作成及び／又はオープンをクライアントアプリケーションが要求しない場合、プロセス例４００は、既に作成されたエンドポイントへの１つまたは複数のリソースの割り当てをクライアントアプリケーションが要求するかどうか（ブロック４４２）を判断する。
【００９０】
一方、読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントの作成及び／又はオープンをクライアントアプリケーションが要求する場合（ブロック４３４）、クライアントアプリケーションは、エンドポイントを作成及び／又はオープンする要求を送信する。プロセス例４００が要求を受信すると、プロセス例４００は、クライアントアプリケーションによるエンドポイントの作成及び／又はオープンが承認されているかどうかをキュリティ基準に基づいて判断することにより、要求を処理する（ブロック４３６）。セキュリティ基準は、要求者の識別及び／又は職務権限、要求を発するワークステーション及び／又はコンピュータのネットワークアドレス、クライアントアプリケーションの識別及び／又は種別、リソースディスカバリエンドポイントにアクセスするためにクライアントアプリケーションにより用いられるプロトコル、及び／又はエンドポイントが要求を受信する時間を含んでもよい。プロセス例４００がクライアントアプリケーションを承認する場合、方法例４００は、要求されたエンドポイントの作成及び／又はオープンを実行し、クライアントアプリケーションに関連付けられた識別子を伝送する（ブロック４３８）。識別子は、セッションに特有であってもよく、且つリソースディスカバリエンドポイントおよびクライアントアプリケーションのみに知られてもよい。
【００９１】
次にプロセス例４００は、別の読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントの作成及び／又はオープンをクライアントアプリケーションが既に要求しているかどうか（ブロック４４０）を判断する。クライアントアプリケーションが追加のエンドポイントを既に要求している場合、プロセス例４００はその要求を処理する（ブロック４３６）。いくつかの例では、クライアントアプリケーションがリソースを選択し、読み出し用エンドポイント、書き込み用エンドポイント、及び／又はサブスクライブ用エンドポイントにこれらのリソースを割り当てることが承認されてもよい。これらの例では、プロセス例４００は、要求された読み出し用、書き込み用、及び／又はサブスクライブ用のエンドポイントに対する１つまたは複数のリソースの割り当てをクライアントアプリケーションが既に要求しているかどうか（ブロック４４２）を判断する。１つまたは複数のリソースの割り当てをクライアントアプリケーションが既に要求している場合、プロセス例４００は、要求を承認し、要求の対象であるオープン及び／又は作成されたエンドポイントに、選択されたリソースを割り当てる（ブロック４４４）ことにより、要求を処理する。次にプロセス例４００は、クライアントアプリケーションがセッションの停止を要求するまで、選択されたリソースへのアクセスの提供及び／又は許可を識別子を介して行う（ブロック４４６）。さらに、クライアントアプリケーションが１つまたは複数のリソースの割り当てをまだ要求していない場合（ブロック４４２）、プロセス例４００は、リソースへのアクセスの提供及び／又は許可を識別子を介して行う（ブロック４４６）。さらに、クライアントアプリケーションは、ブロック４２８、４３４、及び／又は４４２に説明されているように、セッションがオープンされている間、追加の要求を発信してもよい。セッション停止の要求を受信すると、プロセス例は、セッションと、エンドポイントおよび関連付けられたリソースへのアクセスと、を停止する（ブロック４４８）。次にプロセス例４００は終了する。
【００９２】
図５は、本明細書に記載の方法例および装置例を実装するために使用されうるプロセッサシステム例５００のブロック図である。例えば、プロセッサシステム例５００に類似するまたは同一のプロセッサシステムは、図１及び／又は図２に示す、サーバ発見サーバ例１０８、リソースディスカバリサーバ例１１４ａ〜１１４ｃ、クライアントアプリケーション例２０２、セキュリティプロセッサ例２０４a〜２０４ｂ、サーバディスカバリエンドポイントプロセッサ例２０６、リソースディスカバリエンドポイントプロセッサ２１０、及び／又は読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２を実装するために使用されてもよい。プロセッサシステム例５００は、複数の周辺装置、インターフェース、チップ、メモリ、その他を備えるものとして以下に記載されているが、サーバディスカバリサーバ例１０８、リソースディスカバリサーバ例１１４ａ〜１１４ｃ、クライアントアプリケーション例２０２、セキュリティプロセッサ例２０４ａ〜２０４ｂ、サーバディスカバリエンドポイントプロセッサ例２０６、リソースディスカバリエンドポイントプロセッサ２１０、及び／又は読み出し用／書き込み用／サブスクライブ用エンドポイントプロセッサ２１２の１つまたは複数を実装するために用いられる他のプロセッサシステム例から、これらの構成要素の１つまたは複数は省略されてもよい。
【００９３】
図５に示されるように、プロセッサシステム５００は、相互接続バス５１４に接続されたプロセッサ５１２を備える。プロセッサ５１２は、図５では完全にオンチップであると示されているが、あるいは完全にまたは部分的にオフチップに位置してもよく、且つ専用の電気接続を介して及び／又は相互接続バス５１４を介して、プロセッサ５１２に直接接続されたレジスタセットまたはレジスタ空間５１６を備える。プロセッサ５１２は、任意の適切なプロセッサ、処理ユニット、またはマイクロプロセッサであってもよい。図５に示されていないが、システム５００はマルチプロセッサシステムであってもよく、従って、プロセッサ５１２に同一であるかまたは類似し、且つ相互接続バス５１４に通信可能に接続された１つまたは複数の追加のプロセッサを備えてもよい。
【００９４】
図５に示すプロセッサ５１２は、チップセット５１８に接続され、チップセット５１８はメモリコントローラ５２０と周辺装置入出力（Ｉ／Ｏ）コントローラ５２２とを備える。よく知られているように、一般にチップセットは、チップセット５１８に接続された１つまたは複数のプロセッサによりアクセス可能なまたはこれにより使用される複数の汎用の及び／又は特殊用途のレジスタ、タイマー、その他ともに、Ｉ／Ｏのおよびメモリの管理機能を提供する。メモリコントローラ５２０は、プロセッサ５１２（または、複数のプロセッサが存在する場合には、複数のプロセッサ）をシステムメモリ５２４および大容量記憶メモリ５２５にアクセスさせる機能を実行する。
【００９５】
システムメモリ５２４は、例えば静的ランダムアクセスメモリ（ＳＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、その他などの、任意の所望する種別の揮発性の及び／又は不揮発性のメモリを備えてもよい。大容量記憶メモリ５２５は、あらゆる所望する種別の大容量記憶デバイスを備えてもよい。例えば、サーバディスカバリサーバ１０８及び／又はリソースディスカバリサーバ１１４ａ（図１）を実装するためにプロセッサシステム例５００が用いられる場合、大容量記憶メモリ５２５は、ハードディスクドライブ、光学デバイス、テープ記憶デバイスなどを含んでもよい。あるいは、アクセス制御データベース２２０を実装するためにプロセッサシステム例５００が用いられる場合、大容量記憶メモリ５２５は、ソリッドステートメモリ（例えば、フラッシュメモリ、ＲＡＭメモリ、その他）、磁気メモリ（例えば、ハードドライブ）、またはアクセス制御データベース２２０における大容量記億に適した他の任意のメモリを含んでもよい。
【００９６】
周辺装置Ｉ／Ｏコントローラ５２２は、プロセッサ５１２を周辺装置入出力（Ｉ／Ｏ）デバイス５２６および５２８ならびにネットワークインターフェイス５３０と周辺装置Ｉ／Ｏバス５３２を介して通信させる機能を実行する。Ｉ／Ｏデバイス５２６および５２８は、例えばキーボード、ディスプレイ（例えば、液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）ディスプレイ、その他）、ナビゲーションデバイス（例えばマウス、トラックボール、キャパシティブタッチパッド、ジョイスティック、その他）、その他などの任意の所望する種別のＩ／Ｏデバイスであってもよい。ネットワークインターフェイス５３０は、例えば、プロセッサシステム５００をもう１つのプロセッサシステムと通信させる、イーサネット（登録商標）デバイス、非同期転送モード（ＡＴＭ）デバイス、８０２．１１デバイス、ＤＳＬモデム、ケーブルモデム、セルラーモデム、その他であってもよい。
【００９７】
図５ではメモリコントローラ５２０およびＩ／Ｏコントローラ５２２がチップセット５１８内の別個の機能ブロックとして示されているが、これらのブロックにより実行される機能は、単一の半導体回路内に統合されてもよく、また２つ以上の別個の集積回路を用いて実装されてもよい。
【００９８】
上に述べた方法例及び／又は装置例の少なくとも一部は、コンピュータプロセッサ上で実行される、１つまたは複数のソフトウェアの及び／又はファームウェアのプログラムにより実装される。一方、特定用途向けの集積回路、プログラム可能論理ユニットおよび他のハードウェアデバイスを含むがこれらに限定されない専用のハードウェア実装は、全体的にまたは一部分において本明細書に記載の方法例及び／又は装置例の一部または全部を実装するよう同様に構成できる。さらに、分散処理すなわちコンポーネント／オブジェクト分散処理、並行処理、または仮想マシン処理を含むがこれらに限定されない別の代替的なソフトウェア実装もまた、本明細書に記載の方法例及び／又はシステムを実装するよう構成することができる。
【００９９】
なお、本明細書に記載のソフトウェアによる及び／又はファームウェアの例による実装は、磁気媒体（例えば、磁気ディスクまたは磁気テープ）、光ディスク等の光磁気媒体または光媒体、またはメモリカードあるいは１つまたは複数の読み出し専用（不揮発性）メモリ、ランダムアクセスメモリ、または他の書き換え可能（揮発性）メモリを収容する他のパッケージ等のソリッドステート媒体等の、具体的な記憶媒体に保存されることにも留意されたい。従って、本明細書に記載のソフトウェア及び／又はファームウェアの例は、上述の記憶媒体または後続の記憶媒体等の具体的な記憶媒体に保存される。特定の基準およびプロトコルを参照して本明細書がこれまでに構成要素例および機能例を説明した範囲内で、本発明の範囲がそれらの基準やプロトコルに限定されないことを理解すべきである。例えば、インターネット用および他のパケット交換ネットワーク伝送用の基準（例えば、伝送制御プロトコル（ＴＣＰ）／インターネットプロトコル（ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）／ＩＰ、ハイパーテキスト記述言語（ＨＴＭＬ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ））の各々が、該当技術分野の現在の水準の例を表す。そのような基準は、同一の一般的機能を有する、より高速でより効率的な等価物により定期的に取って代わられるものである。従って、同一の機能を有する交換基準およびプロトコルは、本発明によって想定される等価物であり、添付の特許請求の範囲内に含まれることが意図される。
【０１００】
さらに、本特許は、ハードウェア上で実行されるソフトウェアまたはファームウェアを含む方法例および装置例を開示するものであるが、そのようなシステムは単に説明的なものであって本発明を限定するべきではない点に注意すべきである。例えば、これらのハードウェアの及び／又はソフトウェアの構成要素のいずれかまたは全部がハードウェアのみで、ソフトウェアのみで、ファームウェアのみで、またはハードウェア、ファームウェア、及び／又はソフトウェアの何らかの組み合わせで具現することが可能であることを理解すべきである。従って、本明細書ではこれまでに、方法、システム、機械アクセス可能媒体の例について述べてきたが、これらの例はそれらのシステム、方法、および機械アクセス可能媒体を実装する唯一の方法ではない。ゆえに、本明細書では、方法、システム、機械アクセス可能媒体の特定の例を説明してきたが、本特許の保護の範囲はこれらに限定されない。むしろ本発明は、字義通りにまたは均等論により添付の特許請求の範囲に公正に属するすべての方法、システム、機械アクセス可能媒体を包含するものである。
【図１】
2010250825.tif 000003
【図２】
2010250825.tif 000004
【図３】
2010250825.tif 000005
【図４Ａ】
2010250825.tif 000006
【図４Ｂ】
2010250825.tif 000007
【図５】
2010250825.tif 000008