(58)【調査した分野】(Int.Cl.,DB名)
前記ウェブベースインターフェースは、前記クライアントアプリケーションに、前記表示ファイルにアクセスおよび前記表示ファイルを表示させる命令を、前記クライアントアプリケーションに送信する、
請求項10から請求項14のいずれか1項に記載の装置。
【発明を実施するための形態】
【0007】
他の構成要素の中でも特に、ハードウェア上で実行されるソフトウェアおよび/またはファームウェアを含む例示的方法および装置について以下に説明するが、これらの例が、単に例証的であるだけであり、限定するものとして解釈されるべきではないことに留意されたい。例えば、ハードウェア、ソフトウェア、およびファームウェア構成要素のうちのいずれかまたは全てが、ハードウェアにおいてのみ、ソフトウェアにおいてのみ、またはハードウェアおよびソフトウェアの任意の組み合わせにおいて具体化され得ることが想定される。したがって、例示的方法および装置について以下に説明するが、当業者は、提供される例が、このような方法および装置を実装する唯一の方式ではないことを容易に理解する。例えば、例示的方法および装置は、拡張スタイルシート言語変換(XSLT)テンプレートに関連して説明されるが、例示的方法および装置は、産業アプリケーション、製造アプリケーション、プロセス制御アプリケーション、自動化アプリケーション等において使用され得る任意の他のテンプレートフォーマット(例えば、拡張マークアップ言語(XML)テンプレート、電子デバイス記述言語(EDDL)テンプレート等)によって実装されてもよい。
【0008】
プロセス制御システムは、概して、制御システムに位置するフィールド機器を管理するルーティン、制御ストラテジ、および/またはアルゴリズムを実行するために、制御器を含む。フィールド機器は、例えば、バルブ、バルブポジショナ、スイッチ、および送信機であってもよく、バルブの開放または閉鎖およびプロセス制御パラメータの測定等のプロセス制御機能を実行してもよい。フィールド機器の管理に加えて、制御器は、フィールド機器から受信したデータに基づいて、プロセスデータを生成してもよい。プロセスデータには、プロセス統計、アラーム、監視情報、プロセス傾向情報、診断情報、フィールド機器状態情報、および/またはフィールド機器からのメッセージが含まれてもよい。
【0009】
制御器は、オペレータがプロセス制御システムを管理し得るように、ワークステーション上で動作するアプリケーションに、プロセス制御情報を伝送する。典型的には、アプリケーションは、少なくとも1つのグラフィカルデータ表現として、プロセス制御情報を、ユーザインターフェースに表示する。これらのデータ表示は、典型的には、チャート、グラフ、データ表、リストボックス、グラフィカルな記号、テキスト等の形式でプロセス制御情報をグラフィカルに表示するため、データ表現は、オペレータの役に立つ。
【0010】
プロセス制御システムの外部のユーザが、プロセスデータを視認することを可能にするために、いくつかのプロセス制御システムは、1つ以上の外部制御システムサーバを利用して、プロセスデータを格納し得る。プロセス制御システム(例えば、制御器を介する)は、定期的に、または代替としてプロセスデータの生成時に、プロセスデータを外部サーバに書き込む。プロセス制御システムの外部のユーザは、外部サーバにアクセスしてプロセスデータを視認し得る。いくつかの例では、ユーザは、プロセスデータを修正することによって、プロセス制御システムの動作に変更を引き起こし得る。
【0011】
現在、プロセスデータは、相互運用性データパッキングフォーマットで外部サーバに格納される。多くの異なる種類の相互運用性データパッキングフォーマットによって、プロセス制御管理者は、かなりの量のプロセス制御データ(例えば、テラバイト単位のプロセス制御データ)を圧縮フォーマットで効率的に格納することが可能になる。これらの相互運用性データパッキングフォーマットによって、ユーザからの要求時に、比較的迅速に、圧縮されたプロセスデータにアクセスすることが可能になる。また、相互運用性データパッキングフォーマットによって、プロセス、プロセス制御範囲、フィールド機器の種類、および/またはプロセス管理者により特定された任意の他の体系化方法に基づいて、プロセスデータを体系化することも可能になる。
【0012】
このような相互運用性データパッキングフォーマットの1つとして、OPCが挙げられる。OPC Foundationは、プロセスデータをホストする外部サーバにアクセスするために、ウェブブラウザおよび/またはクライアントプログラムアプリケーション(例えば、Adobe(登録商標)Flash(登録商標)プレーヤ)によって使用され得るプログラムインターフェースを定義する一連のOPC仕様をパブリッシュする。これらのインターフェースは、サーバ内で始動され得る方法および/またはインスタンスに関連して定義される。さらに、OPC仕様は、OPC関連サーバから、要求するクライアントのアプリケーションに送られ得るパラメータを特定する。OPC仕様は、例えば、C++、ビジュアルベーシック、および/またはC#等の手続きプログラミング言語で書かれた異なるプロトコルを使用し得るインターフェースを定義する。
【0013】
プロセスデータを格納するサーバにアクセスするために、クライアントは、現在、これらのサーバの相互運用性データパッキングインターフェースのプロトコルに適合するように、手続きプログラミング言語で書かれた実行可能なプログラムであるアプリケーションを作成する。アプリケーションは、ユーザの位置にかかわらず、プロセスデータおよび/またはサーバ内に格納され得る任意の他の種類のデータを読み取り、書き込み、および/またはサブスクライブするように、1つ以上のユーザにアクセスを提供するように作成される。アプリケーションは、ユーザが任意の位置においてプロセスデータにアクセスし得るように、任意のコンピューティング機器(例えば、パーソナルコンピュータ、ラップトップ、スマートフォン、ネットパッド等)上で動作され得る。他の例では、アプリケーションは、ランタイムフレームワーク、データベース、および/または他のデータソースにアクセスするカスタマイズされたウェブページとして、関連付けられたサーバ内にホストされ得る。認可されたユーザは、インターネットに接続可能な任意の機器を介して、このアプリケーションにアクセスし得る。
【0014】
クライアントアプリケーションは、相互運用性データパッキングフォーマットに適合するサーバ内のディレクトリ位置を相互参照する所定のデータフィールドを有し得る。アプリケーションは、プロセスデータの種類(例えば、オブジェクト型)に基づいて、特定の表示(例えば、テキストフィールド、グラフ、チャート、スプレッドシート等)のためのデータフィールドを事前にフォーマットし得る。さらに、クライアントアプリケーションは、サーバに特有のプラットフォームおよび/または通信プロトコルのために作成され得る。例えば、クライアントアプリケーションは、典型的には、所望の外部サーバに対応するアドレスで符号化される。これらの符号化された特徴と、サーバ内のディレクトリ位置の参照とにより、クライアントアプリケーションは、典型的には、静的であり、1つの特有のサーバとのみ通信し得る。
【0015】
サーバ毎に1つの特異的なクライアントアプリケーション、および/またはサーバからのデータの部分毎に1つのアプリケーションを有することによって、クライアント(例えば、プロセス工場オペレータまたは技術者)は、1つ以上の外部サーバ上のデータにアクセスするために、多数のアプリケーションを開発する必要があり得る。加えて、サーバに対するインターフェースが修正される場合、サーバ上のデータディレクトリが修正される場合、および/またはプロセスデータが異なるサーバに移動する場合、対応するクライアントアプリケーションは、変更を反映または変更に対応するように修正されなければならない。サーバ上のプロセスデータにアクセスするために、クライアントアプリケーションを定期的に更新しなければならないことによって、いくつかのクライアントが、プロセスデータにアクセス不可能であり得る事例がもたらされ得る。加えて、プロセスデータ位置の変更によって、クライアントアプリケーションと、サーバ上にホストされるプロセスデータとの間のリンク切れがもたらされ得る。
【0016】
本明細書に説明する例示的方法および装置によって、クライアント位置におけるクライアントアプリケーションは、ラッパーを介して任意のサーバにアクセスすることが可能になる。例示的ラッパーは、クライアントにより要求されたプロセスデータに基づいて、データフィールドおよび/またはデータ表示を作成することによって、クライアントとサーバとの間のインターフェースとして機能する。例示的ラッパーは、要求されたプロセスデータに関連付けられたオブジェクト型(例えば、プロセスデータの種類)情報を使用して、XSLTテンプレートを選択し得る。
【0017】
また、例示的ラッパーは、プロセスデータを要求している機器の種類にも基づいて、XSLTテンプレートを選択し得る。例えば、プロセスデータの要求を、比較的大型の画面面積を有する機器(例えば、パーソナルコンピュータ)から受信する場合、ラッパーは、より大型の画面のために構成された一連のテンプレートを選択し得る。同様に、例えば、ハンドヘルド機器(例えば、スマートフォン)から要求を受信する場合、例示的ラッパーは、比較的小型の画面のために構成された一連のテンプレートを選択し得る。例示的ラッパーは、例えば、要求内に含まれる媒体アクセス制御(MAC)アドレスに基づいて、機器の種類を識別し得る。
【0018】
いくつかの例では、ラッパーは、外部サーバ内に含まれ、ウェブサーバアプリケーションおよび/またはクライアント表示アプリケーションを介して、クライアントにアクセス可能であってもよい。他の例では、ラッパーは、クライアントサイトに(例えば、クライアントおよび/またはユーザに関連付けられたコンピューティング機器上に)インストールされてもよい。さらに他の例では、ラッパーは、クライアントとサーバとの間に通信可能に連結されるコンピューティング機器(例えば、サーバ)内に含まれてもよい。
【0019】
例示的ラッパーは、ウェブサーバアプリケーションおよび/またはクライアント表示アプリケーションとして実装され得る。ウェブサーバアプリケーションは、クライアントがウェブブラウザを使用してアクセスし得るデータフィールド、グラフ、チャート、スプレッドシート等に埋め込まれるプロセスデータを含むウェブページを作成するフレームワーク(例えば、ASP.NETフレームワークアプリケーション)である。ウェブサーバアプリケーション例では、ラッパーは、ウェブページ内のプロセスデータ(例えば、オブジェクト)を管理する。対照的に、クライアント表示アプリケーション(例えば、ActiveX制御および/またはSilverlight(登録商標)アプリケーション)は、ウェブブラウザ内においてランタイムアプリケーション(例えば、プラグインアプリケーション)として表示可能であるフレームワークである。これらの例では、クライアント表示アプリケーションは、クライアント位置におけるコンピューティング機器にインストールされ得る。クライアント表示アプリケーションは、ウェブブラウザが、外部サーバに位置するラッパーにアクセスする場合、および/またはそのラッパーと通信する場合に、ウェブブラウザ内において始動され得る。加えて、クライアント表示アプリケーションは、データが、ウェブブラウザ内におけるデータフィールド、グラフ、チャート、スプレッドシート等内に表示されるように、ラッパーから受信したデータおよび/データフィールド情報を構成し得る。
【0020】
本明細書に説明する例示的ラッパーは、相互運用性データパッキングフォーマットに関連付けられた1つ以上の外部制御システムサーバと通信するために、アダプタを含み得る。アダプタは、例えば、伝送制御プロトコル(TCP)、ハイパーテキスト転送プロトコル(HTTP)、および/または拡張マークアップ言語(XML)を使用して、クライアントにより要求されたプロセスデータにアクセスするために、サーバと通信し得る。また、例示的ラッパーは、サーバから受信した相互運用性データパッキングフォーマットにフォーマットされたプロセスデータを、ウェブページフォーマットに変換するための、変換器も含む。ウェブページフォーマットには、クライアント表示アプリケーション内に表示するため、および/またはウェブページ内に表示するための、ハイパーテキストマークアップ言語(HTML)および/または任意の他のフォーマットが含まれ得る。さらに、ラッパーは、ウェブページおよび/またはクライアント表示アプリケーションを介してクライアントに視認可能なウェブブラウザに、プロセスデータを通信するウェブベースのインターフェースを含む。
【0021】
例示的ラッパーは、1つ以上の種類の要求されたプロセスデータを判断することによって、要求されたプロセスデータ(例えば、オブジェクト)のためのデータフィールドを自動的に作成、構成、および/またはフォーマットし得る。プロセスデータの種類には、例えば、サーバ識別情報、パラメータ、プロパティ、ファイルディレクトリ体系化情報、数値データ、文字列データ、制御機器の状態データ、アラームデータ、および/またはプロセス制御システム、製造システム等に関連付けられ得る任意の他のデータが含まれ得る。いくつかの例では、ラッパーは、プロセスデータに埋め込まれ、および/または関連付けられたメタデータによって、データ型を判断し得る。他の例では、ラッパーは、プロセスデータのコンテンツに基づいて、データ型を判断し得る。データ型を判断することによって、例示的ラッパーは、ウェブブラウザ内に表示するために、対応するプロセスデータを含む適切なデータフィールドを作成することができる。プロセスデータを表示するためのデータフィールドには、スプレッドシート、テキストフィールド、数値フィールド、グラフ、チャート、アニメーション等が含まれ得る。
【0022】
データフィールドを自動的に作成し、要求されたプロセスデータをこれらのデータフィールドに投入する(例えば、埋め込む)ことによって、例示的ラッパーは、外部制御システムサーバ上のデータにアクセスするための、要求に特有のアプリケーションをクライアントが作成する必要性を排除する。例示的ラッパーは、データ型に基づいて、データフィールドを動的にフォーマットすることから、サーバおよび/またはサーバ内のプロセスデータ位置のいかなる変更も、プロセスデータにアクセスするクライアントの能力に影響を及ぼさない。言い換えると、クライアントは、サーバの管理法、サーバ内におけるプロセスデータの割り当て法、プロセスデータの移動法、および/またはプロセスデータの種類を把握することを必要とせずに、プロセスデータにアクセスすることができる。さらに、プロセスデータは、ラッパーを介してウェブブラウザによってアクセスされ得ることから、クライアントは、通信プロトコル、インターフェースプロトコル、相互運用性データパッキングプロトコル、および/または特定のサーバのオペレーティングプロトコルに明示的に拘束されるアプリケーションを作成する必要がない。加えて、例示的ラッパーは、サーバに関連付けられたプロトコルにかかわらず、任意のサーバのために実装され得る。さらに、例示的ラッパーは、特有のサーバプロトコルのために構成されないことから、ラッパーは、相互運用性データパッキングサーバに特有のアプリケーションよりも、効率的にインストールおよび/または保守され得る。
【0023】
図1は、ラッパー110を使用するウェブページサーバ108を介して、クライアント106によりアクセス可能な外部サーバ104に通信可能に連結される例示的制御システム102を含む制御環境100を図示するブロック図である。外部サーバ104は、例えば、OPC仕様または規格に準拠するプロトコルを含む、相互運用性データパッキングプロトコルに適合するフォーマットでプロセスデータを格納し得る。ウェブページサーバ108および/またはラッパー110は、制御システム102からプロセスデータを受信する外部サーバ104に通信可能に連結されるように示されるが、ウェブページサーバ108および/またはラッパー110は、他のシステム、製造施設、自動化施設、産業システム等からプロセスデータを受信する他の外部サーバに連結されてもよい。加えて、例示的外部サーバ104は、制御システム102に通信可能に連結されるように示されるが、外部サーバ104は、他の制御システムに通信可能に連結されてもよい。さらに、例示的制御環境100は、ウェブページサーバ108および/または他のウェブページサーバ(図示せず)を介して外部サーバ104と通信可能に連結され得る追加のクライアント(図示せず)を含んでもよい。
【0024】
例示的制御システム102には、任意の種類の製造施設、プロセス施設、自動化施設、および/または任意の他の種類のプロセス制御構造もしくはシステムが含まれ得る。いくつかの例では、制御システム102は、異なる位置に位置する複数の施設を含んでもよい。加えて、例示的制御システム102は、プロセス制御システム112を示すが、該制御システム102は、追加のプロセス制御システムを含んでもよい。
【0025】
例示的プロセス制御システム112は、データバス116を介して、制御器114に通信可能に連結される。プロセス制御システム112は、任意の数のフィールド機器(例えば、入力機器および/または出力機器)を含んでもよい。フィールド機器は、入力を受信可能であり、出力を生成可能であり、および/またはプロセスを制御可能である任意の種類のプロセス制御構成要素を含んでもよい。例えば、フィールド機器は、プロセスを制御するために、例えば、バルブ、ポンプ、ファン、加熱器、冷却器、および/または混合器等の入力機器を含み得る。加えて、フィールド機器は、プロセスの部分を測定するために、例えば、温度計、圧力計、濃度計、液面計、流量計、および/または蒸気センサ等の出力機器を含み得る。入力機器は、制御器114から命令を受信して、特定のコマンドを実行し、プロセスの変更を引き起こし得る。さらに、出力機器は、プロセスデータ、環境データ、および/または入力機器データを測定し、測定されたデータを、プロセス制御情報(例えば、プロセスデータ)として、制御器114に伝送し得る。このプロセスデータは、各フィールド機器からの測定された出力に対応する変数および/またはパラメータ(例えば、測定されたプロセス変数および/または測定された品質変数)の値を含み得る。
【0026】
図1に図示する例では、例示的制御器114は、データバス116を介して、プロセス制御システム106内のフィールド機器と通信し得る。このデータバス116は、プロセス制御システム112内の通信構成要素と連結され得る。通信構成要素は、フィールド機器からデータを受信するためにI/Oカードを含み、例示的制御器114が受信可能な通信媒体にデータを変換し得る。加えて、これらのI/Oカードは、制御器114からのデータを、対応するフィールド機器が処理可能なデータフォーマットに変換し得る。ある例では、データバス116は、Fieldbusプロトコルまたは他の種類の有線および/もしくは無線通信プロトコル(例えば、Profibusプロトコル、HARTプロトコル等)を使用して実装され得る。
【0027】
制御器114は、任意の有線および/または無線接続を介して、外部サーバ104に通信可能に連結される。いくつかの例では、この接続は、制御器114へのアクセスを制限するために、ファイアウォールおよび/または他のセキュリティ機構を含み得る。制御器114は、制御器114が、プロセス制御システム112からプロセスデータを受信すると、プロセスデータを外部サーバ104に伝送し得る。他の例では、制御器114は、定期的な時間間隔で(例えば、毎分、毎時間、毎日等)プロセスデータを外部サーバ104に伝送し得る。代替として、外部サーバ104は、制御器114からのプロセスデータを要求してもよい。
【0028】
プロセスデータを受信すると、図示する例の例示的外部サーバ104は、プロセスデータをファイルシステム内に格納する。ファイルシステムは、プロセス制御システム112内の機器に基づく、および/またはプロセス制御システム112を管理するために制御器114内で動作するルーティン(例えば、アプリケーションおよび/またはアルゴリズム)に基づく、ディレクトリおよび/またはサブディレクトリによって、階層的に配設され得る。他の例では、ファイルシステムは、制御システム102のオペレータによって配設され得る。プロセスデータは、関連付けられたディレクトリおよび/またはサブディレクトリ内のパラメータに格納され得る。いくつかの例では、パラメータは、制御器114上で動作するルーティンに関連付けられるか、またはプロセス制御システム112内におけるフィールド機器出力に関連付けられる変数であり得る。パラメータは、パラメータに関連付けられたプロセスデータ型を記述するメタデータおよび/またはプロパティを含み得る。また、外部サーバ104は、プロセス制御システム112内のフィールド機器毎に、プロセスデータの表示法を特定するEDDLファイルを格納し得る。
【0029】
ディレクトリ、サブディレクトリ、ファイル、および/またはパラメータの各々には、エンドポイントが割り当てられ得る。また、外部サーバ104にも、エンドポイントが割り当てられ得る。これらのエンドポイントは、セキュリティアクセス、読み取りアクセス、サブスクライブアクセス、および/または書き込みアクセスによってグループ化され得る。エンドポイントは、外部サーバ104に格納されたプロセスデータおよび/またはEDDLファイルにアクセスするためにラッパー110が使用し得るアドレス、拘束要素、および/または縮約要素を含み得る。
【0030】
図1の例示的ラッパー110は、ウェブページサーバ108内に含まれ、および/またはウェブページサーバ108によって使用される。ウェブページサーバ108は、外部サーバ104とクライアント106との間のインターフェースとして機能する機器および/またはアプリケーションである。いくつかの例では、ウェブページサーバ108は、外部サーバ104内にインターフェースとして含まれてもよい。他の例では、ウェブページサーバ108は、クライアント106におけるコンピューティング機器内にインストールされてもよい。さらに他の例では、ウェブページサーバ108は、クライアント106を外部サーバ104に通信可能に連結するサーバまたは他のコンピューティング機器上に実装されてもよい。例示的ラッパー110は、プロセスデータ(例えば、オブジェクト)にアクセスするために、クライアント106から要求を受信し、外部サーバ104からプロセスデータを要求し、プロセスデータを、クライアントにより視認可能なフォーマットに変換し、ウェブブラウザ内に表示するためにプロセスデータを埋め込むように、データフィールドを作成および/またはフォーマットする。
【0031】
例示的ラッパー110は、クライアント106により視認可能であり得る一連のテンプレートを選択することによって、データフィールドをフォーマットする。言い換えると、例示的ラッパー110は、比較的大型または小型の画面サイズ上に表示されるように、どのテンプレートを構成するかを判断する。また、例示的ラッパー110は、要求されたプロセスデータに関連付けられた少なくとも1つのプロパティおよび/またはオブジェクト型に一致するテンプレートを、一連のテンプレートの中から選択することによっても、データフィールドをフォーマットする。例えば、XSLTテンプレートは、フィールド機器の識別情報を表示するための文字列変数として定義されるデータフィールドを含み得る。プロセスデータの要求は、フィールド機器の識別情報を含み得る。例示的ラッパー110は、プロセスデータ内のメタデータおよび/またはプロパティ記述を使用して、フィールド機器の識別情報が表示されることを判断する。次いで、例示的ラッパー110は、識別情報プロセスデータを表示するように構成されるデータフィールドを含むXSLTテンプレートを識別する。次いで、例示的ラッパー110は、識別情報プロセスデータを、選択されたXSLTテンプレート内の適切なデータフィールドと組み合わせ、および/またはそのデータフィールドに挿入し得る。次いで、例示的ラッパー110は、クライアント106において表示するためのXSLTテンプレートをレンダリングする。
【0032】
クライアント106は、プロセスデータを読み取り、書き込み、および/またはサブスクライブするために、外部サーバ104にアクセスし得る。プロセスデータをサブスクライブすることは、プロセスデータが制御器114によって伝送される際に、要求されたプロセスデータの定期的および/または連続的な更新を受信するために、例示的ラッパー110および/または外部サーバ104から認可を受信することを含み得る。プロセスデータを読み取ることは、外部サーバ104に格納されたプロセスデータの現在値を読み取ることを含み得る。プロセスデータを書き込むことは、外部サーバ104内にプロセスデータとして格納されたパラメータを修正または変更するために、クライアント106から値を受信することを含み得る。また、データを書き込むことは、プロセスデータに関連付けられた状態、アラーム、および/またはフラグを修正することも含み得る。書き込まれた値を受信すると、例示的外部サーバ104は、プロセス制御システム112の動作を変更および/または修正するために、書き込まれた値を制御器114に伝送し得る。クライアント106がプロセスデータにアクセスすることを可能にするために、例示的ラッパー110は、暗号化、認証、完全性コード、および/またはユーザ特有のアクセス制御リストを含むセキュリティ特徴を実装し得る。ユーザおよび/またはクライアント106が、プロセスデータのアクセスを認可されていない例では、例示的ラッパー110は、プロセスデータへの読み取りアクセスのみを提供し得るか、または代替として、プロセスデータへのいかなるアクセスも提供し得ない。
【0033】
外部サーバ104にアクセスするために、例示的ラッパー110は、アダプタ118を含む。例示的アダプタ118は、TCP、HTTP、および/またはXMLベースの通信を使用して、任意の有線および/または無線接続を介して外部サーバ104と通信し得る。ラッパー110は、アダプタ120により受信されたプロセスデータを、ウェブブラウザを介して視認可能であるフォーマットに変換(組み合わせおよび/または挿入)するために、変換器120をさらに含む。また、例示的ラッパー110は、プロセスデータを表示するための1つ以上のテンプレートを選択するために、ウェブベースのインターフェースも含む。また、例示的ウェブベースインターフェース122は、選択されたテンプレート内にプロセスデータをフォーマット、レンダリング、埋め込み、および/または表示することによって、インターフェースをクライアント106に提供する。
【0034】
例示的クライアント106は、外部サーバ104上に格納されたプロセスデータを読み取り、書き込み、および/またはサブスクライブすることを認可され得る個人に関連付けられ得る。また、クライアント106は、遠隔位置から外部サーバ104にアクセスし得る制御システム102に関連付けられた人にも関連付けられ得る。クライアント106は、任意の有線および/または無線通信媒体(例えば、インターネット)を使用して、ウェブページサーバ108を介して外部サーバ104にアクセスし得る。
【0035】
プロセスデータ(例えば、オブジェクト)にアクセスする要求をクライアント106が生成する例では、ラッパー110は、クライアント106から要求メッセージを受信する。具体的には、ウェブベースインターフェース122が、要求を受信し得る。要求を受信すると、ウェブベースインターフェース122は、要求をアダプタ118に転送する。アダプタ118は、要求内の情報(例えば、統一資源位置指定子(URL)宛先アドレス)を使用して、要求されたプロセスデータを格納する外部サーバ(例えば、外部サーバ104)を識別する。次いで、アダプタ118は、プロセスデータを取り出すために、外部サーバ104にアクセスする。アダプタ118は、プロセスデータに関連付けられたエンドポイントを使用して、プロセスデータにアクセスし、および/またはプロセスデータを読み取り得る。次いで、アダプタ118は、外部サーバ104から受信したプロセスデータを変換器120に転送し、変換器102は、相互運用性データパッキングフォーマットに関連付けられたフォーマットから、ウェブ閲覧フォーマットに、プロセスデータを変換する。次いで、変換器120は、プロセスデータをウェブベースインターフェース122に転送する。次いで、ウェブベースインターフェース122は、1つ以上のテンプレートを選択して、変換されたプロセスデータの少なくとも一部分を、クライアント106により視認可能なウェブページにおいてウェブブラウザを介して表示するための1つ以上の対応するテンプレートデータフィールドに埋め込み、組み合わせ、および/または配置する。
【0036】
ウェブベースインターフェース122は、データ型および/またはプロパティによりプロセスデータを分割し、どのデータ型および/またはプロパティがデータフィールドに関連付けられるかを判断し、各データ型に関連付けられたデータを、関連付けられたデータフィールド内に配置することによって、プロセスデータを、テンプレートの1つ以上のデータフィールドと組み合わせ得る。いくつかの例では、ウェブベースインターフェース122は、テンプレート内にデータフィールドを作成し得る。ウェブベースインターフェース122は、プロセスデータの各部分に関連付けられたメタデータをロケートし、メタデータを、関連付けられたデータフィールドと相互参照することによって、プロセスデータ内におけるデータ型および/またはプロパティを識別し得る。
【0037】
例示的ウェブベースインターフェース122は、プロセスデータが、クライアントアプリケーション124を使用してクライアント106により視認可能であるように、プロセスデータを1つ以上のテンプレートと組み合わせる。
図1の例は、ウェブブラウザを含み得るインターフェース126にプロセスデータを表示するクライアントアプリケーション124を示す。クライアントアプリケーション124は、ウェブサーバアプリケーションおよび/またはクライアント表示アプリケーションを含み得る。ラッパー110は、ウェブページを作成し、および/またはXSLTウェブページテンプレートにアクセスし、ならびにデータフィールドをテンプレート内に配置もしくは埋め込むことによって、ウェブサーバアプリケーションのためにプロセスデータをフォーマットし得る。次いで、インターフェース126は、HTML要求および応答を使用してラッパー110および/またはウェブページサーバ108によりホストされたウェブページにアクセスすることによって、ウェブブラウザを介して、プロセスデータを表示し得る。
【0038】
代替として、ラッパー110は、ウェブブラウザ(例えば、インターフェース126)内で実行可能なクライアントアプリケーション124において、ウェブアプリケーション(例えば、ActiveX、Adobe Flash(登録商標)、および/またはSilverlight(登録商標))を初期化することによって、クライアント表示アプリケーションのためにプロセスデータをフォーマットしてもよい。いくつかの例では、クライアント106は、プロセスデータを視認する前に、クライアント表示アプリケーションをダウンロードおよび/またはインストールし得る。ラッパー110は、プロセスデータ、テンプレート、および/またはデータフィールドをクライアント表示アプリケーションに伝送する。いくつかの例では、ラッパー110は、プロセスデータをクライアント表示アプリケーションに伝送する前に、プロセスデータを、対応するテンプレートおよび/またはデータフィールドに関連付ける。プロセスデータを受信すると、クライアント表示アプリケーションは、対応するテンプレートおよび/またはデータフィールド内でプロセスデータを視認するために、ウェブブラウザ(例えば、インターフェース126)内に表示を作成(例えば、レンダリング)する。
【0039】
さらに、クライアント106は、テンプレートおよび/またはデータフィールドを修正することによって、クライアントアプリケーション124をカスタマイズし得る。例えば、クライアント106は、データフィールドを表示するために、ウェブブラウザ内の位置を特定し得る。さらに、クライアント106は、データフィールドとともに、プロセスデータの色、テキストサイズ、数値的表現法、および/または任意の他のグラフ表現を修正し得る。
【0040】
図2は、
図1の例示的ラッパー110の機能ブロック図である。ラッパー110は、
図1のアダプタ118、変換器120、およびウェブベースインターフェース122を含む。
図2のラッパー110内の機能ブロックの各々は、複数のクライアントおよび/または外部サーバを促進し得るか、または代替として、ラッパー110は、通信可能に連結される外部サーバ毎にそれぞれの機能ブロックを含み、および/またはクライアント(例えば、クライアント106)毎に機能ブロックを含んでもよい。
【0041】
クライアント106および/またはクライアントアプリケーション124と通信するための暗号化および/またはエンドポイントアクセス制御等のセキュリティ対策を提供するために、
図2の例示的ラッパー110は、セキュリティプロセッサ202を含む。例示的セキュリティプロセッサ202は、非認可の第3者から発信通信を保護するために、例えば、暗号化プロセッサおよび/またはデジタル署名発生器を含み得る。暗号化プロセッサは、任意の種類の暗号化符号器を使用して、非認可ユーザが読むことのできないフォーマットで、クライアントアプリケーション124向けの通信をフォーマットし得る。デジタル署名発生器は、クライアントアプリケーション124の通信を、非認可の第3者による改ざんから保護する。デジタル署名発生器は、任意の種類の暗号化されてセキュアな署名発生器(例えば、ハッシュコード)であって、クライアントアプリケーション124とラッパー110との間で非認可の第3者により修正された値の検出を可能にする署名発生器を使用してもよい。加えて、セキュリティプロセッサ202は、認証機構および/またはアクセス制御を含む他の形式の通信セキュリティを含んでもよい。例示的セキュリティプロセッサ202は、クライアントアプリケーション124および/またはクライアント106から生じる暗号化および/または署名された通信を復号し得る。通信を復号すると、セキュリティプロセッサ202は、通信を、ラッパー内の意図された宛先に伝送する。
【0042】
図2の例では、セキュリティプロセッサ202は、クライアント106を含む1つ以上のクライアントに通信可能に連結される。セキュリティプロセッサ202は、認可されたクライアントのみが所望のサーバ内のプロセスデータにアクセスし得るように、クライアントおよび/または他のユーザから生じる要求メッセージを識別情報によってフィルタリングし得る。さらに、セキュリティプロセッサ202は、プロセスデータおよび/またはテンプレートを、クライアントアプリケーション124内に実装されるクライアント表示アプリケーションに転送し得る。他の例では、セキュリティプロセッサ202は、クライアント106と、テンプレートを介してプロセスデータを表示するウェブページをホストし得るウェブベースインターフェース122との間のセキュアな通信を可能にする。
【0043】
1つ以上のクライアントと例示的ウェブベースインターフェース122との間のデータ通信を管理するために、
図2の例示的ラッパー110は、セッション制御器204を含む。例示的セッション制御器204は、ラッパー110と通信するクライアント(例えば、
図1のクライアント106)のアクセスセッションを管理する。アクセスセッションは、ウェブベースインターフェース122とクライアントとの間の開放通信路を表わす。異なるデータソースおよび/または異なる外部制御システムサーバからのデータ型へのアクセスを各クライアントが要求し得ることから、アクセスセッションは、ウェブベースインターフェース122にアクセスするクライアント毎に作成され得る。したがって、例示的セッション制御器204は、ウェブベースインターフェース122が、クライアントにより要求されたプロセスデータのみをクライアントに提供することを確実にする。
【0044】
セッション制御器204は、プロセスデータにアクセスする要求メッセージをクライアントから受信した後に、セッションを始動する。この要求は、ウェブブラウザおよび/またはクライアントアプリケーション124からのものであり得る。セッションがセッション制御器204によって開放されるまで、セッション制御器204は、クライアントからの任意の他の要求を拒否し得る。セッションが開放している間、セッション制御器204は、各要求メッセージを、クライアントからウェブベースインターフェース122にルーティングする。加えて、セッション制御器204は、ウェブページにおいて視認可能なデータフィールドおよび/またはプロセスデータに関連付けられ得る、選択されたプロセスデータの参照、およびその関連付けられた読み取りまたは書き込みエンドポイントを格納し得る。
【0045】
図2のラッパー110内に含まれる例示的ウェブベースインターフェース122は、プロセスデータを管理、フォーマット、および/または構成することによって、インターフェースをクライアントに提供する。ウェブベースインターフェース122は、ウェブブラウザにおいて視認可能であるフォーマットで、変換器120からプロセスデータ(例えば、オブジェクト)を受信する。また、例示的ウェブベースインターフェース122は、プロセスデータにアクセスするためのクライアントからの要求を処理する。クライアントから要求を受信すると、ウェブベースインターフェース122は、命令をセッション制御器204に送信し、要求をアダプタ118に転送することによって、アクセスセッションを始動する。いくつかの例では、ウェブベースインターフェース122は、認可されたクライアントに要求が関連付けられることをセキュリティプロセッサ202が判断した後に、要求を受信する。加えて、ウェブベースインターフェース122は、クライアントがウェブブラウザを閉鎖および/もしくは終了させる場合、ならびに/またはクライアントアプリケーションが命令を送信してセッションを終了させる場合に、アクセスセッションを閉鎖し得る。
【0046】
ウェブベースインターフェース122が、要求に関連付けられたプロセスデータを受信すると、ウェブベースインターフェース122は、プロセスデータをデータプロセッサ206に転送することによって、プロセスデータに関連付けられた1つ以上のデータ型および/またはプロパティを判断する。例示的データプロセッサ206は、プロセスデータの部分内に含まれ得るメタデータおよび/またはプロパティを識別する。加えて、データプロセッサ206は、テンプレートデータベース208にアクセスして、プロセスデータに関連付けられ得る値の種類、プロパティ、変数型、および/または任意の他の識別子に基づいて、プロセスデータを、対応するテンプレートおよび/またはデータフィールドと相互参照する。例示的テンプレートデータベース208は、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、および/または任意の他の種類のメモリによって実装され得る。
【0047】
図2の例示的データプロセッサ206は、プロセスデータに関連付けられたデータ型を判断し、テンプレートデータベース208内で一致するテンプレートを検索すると、プロセスデータをデータフィールドと関連付けるおよび/または組み合わせる。テンプレートは、例えば、XSLTプロトコルに適合し得る。代替として、データプロセッサ206は、取り出されたプロセスデータに関連付けられた1つ以上のEDDLファイルからXSLTテンプレートを生成し得る。これらの例では、EDDLファイルは、プロセスデータの表示法を定義し得る。例示的データプロセッサ206は、プロセスデータを、データ型および/またはプロパティと相互参照され得るテンプレート内のデータフィールドの1つ以上のデータ表示変数(例えば、パラメータ)に割り当てる。また、データプロセッサ206および/またはウェブベースインターフェース122は、プロセスデータの数値、英数字、および/またはフラグ値を、テンプレート内の適切なデータフィールドに格納、埋め込み、および/または参照し得る。
【0048】
データプロセッサ206は、プロセスデータを表示するテンプレートを選択するために、テンプレートデータベース206にアクセスする。テンプレートは、XML情報(例えば、プロセスデータ)を、ウェブブラウザ内に表示するためのHTMLに変換するXSLTテンプレートを含み得る。データプロセッサ206は、プロセスデータの種類、プロセスデータの値、プロセスデータのプロパティ、および/または標的表示情報に基づいて、テンプレートを選択し得る。標的表示情報は、プロセスデータを表示するウェブブラウザおよび/または機器の種類を識別し得る。例えば、標的表示情報は、プロセスデータが、スマートフォンウェブブラウザまたはワークステーション上のウェブブラウザに表示されるかを示し得る。スマートフォン用のテンプレートは、ワークステーションのウェブブラウザ用のテンプレートに比べて、比較的小型の画面上にプロセスデータを表示するように構成され得る。
【0049】
図2の例示的ウェブベースインターフェース122は、プロセスデータのデータ型および/またはプロパティをデータプロセッサ206から受信し、一致するテンプレートをコンパイルする。次いで、ウェブベースインターフェース122は、プロセスデータ(例えば、それぞれのデータフィールドに関連付けられたプロセスデータのコンパイルされた部分)を、テンプレートの適切なデータフィールドに埋め込み、組み合わせ、および/または、そうでなければ配置し得る。ウェブベースインターフェース122は、データ型によりプロセスデータを分割し、データプロセッサ206からの情報および/またはテンプレートを使用して、どのデータ型がテンプレートのデータフィールドに関連付けられるかを判断し、各データ型に関連付けられたプロセスデータを、テンプレートの関連付けられたデータフィールドに配置することによって、プロセスデータの部分をデータフィールドに埋め込む。いくつかの例では、データフィールドは、2つ以上のデータ型に関連付けられてもよい。次いで、ウェブベースインターフェース122は、プロセスデータを、データフィールドを含むテンプレートウェブページに埋め込み得る。
【0050】
クライアントが、クライアントアプリケーション(例えば、クライアントアプリケーション124)を使用してプロセスデータを要求し得る例では、例示的ウェブベースインターフェース122は、アプリケーションの種類を判断する。ウェブベースインターフェース122は、要求メッセージおよび/または要求メッセージ内のクライアントアプリケーションに関連付けられた任意のメタデータに関連付けられたプロトコルおよび/またはアプリケーション言語を識別することによって、クライアントアプリケーションの種類を判断し得る。例えば、ウェブサーバアプリケーションを使用するクライアントは、ASP.NETアプリケーションに関連付けられたプロトコルを含み得るが、クライアント表示アプリケーションを使用するクライアントは、Silverlight(登録商標)またはActiveXアプリケーションに関連付けられたプロトコルおよび/またはメッセージを含み得る。クライアントアプリケーションの種類に基づいて、例示的ウェブベースインターフェース122は、適切なテンプレート内にプロセスデータを表示するために、適切なウェブブラウザおよび/またはプログラムインターフェースを作成および/または構成する。例えば、ウェブベースインターフェース122は、一定の種類のクライアント表示アプリケーションに対応するテンプレートを検索するように、データプロセッサ206に命令し得る。
【0051】
クライアントアプリケーションの種類を判断すると、ウェブベースインターフェース122および/またはデータプロセッサ206は、プロセスデータ、および/または表示するためのテンプレートを、表示ファイルを生成することによってフォーマットする。表示ファイルは、クライアントアプリケーションの種類に適合し得る。このように、表示ファイルは、テンプレートおよび/またはEDDLファイルにより特定されたレイアウトでプロセスデータを表示するために、クライアントに伝送され得る。クライアントアプリケーション124がウェブサーバアプリケーションに関連付けられる例では、ウェブベースインターフェース122は、ウェブブラウザを介してクライアント106から要求を受信し、プロセスデータおよび/または対応するEDDLファイルにアクセスするために、要求をアダプタ118に転送し、変換器102からプロセスデータを受信する。ウェブブラウザを介するクライアント106からの要求は、HTML文書の形式であり得る。さらに、ウェブベースインターフェース122は、クライアント106のウェブブラウザを、新しく作成されたセッションに関連付けるように、命令をセッション制御器204に送信し得る。次いで、ウェブベースインターフェース122は、埋め込まれたプロセスデータを含むテンプレートでウェブページ(例えば、表示ファイル)を作成する。テンプレートには、例えば、リスト、スプレッドシート、グラフ、チャート、グラフィカル表示、アニメーション等が含まれ得る。さらに、データフィールドの位置は、テンプレートによって特定され得る。また、テンプレート内に挿入されるプロセスデータも、EDDLファイルによって特定され得る。ウェブベースインターフェース122は、クライアント位置においてウェブページを表示するために、ウェブページテンプレートのコンテンツを表示ファイルとして、クライアント106のウェブブラウザに伝送する。ウェブページテンプレート内のプロセスデータは、任意のHTTP、XML、XSLT、および/または任意の他のインターネットウェブページ伝送フォーマットを介してフォーマットされたコンテクストで、ウェブブラウザによってクライアント106に伝送される。
【0052】
ウェブブラウザがクライアント表示アプリケーションを含む例では、例示的ウェブベースインターフェース122は、ウェブブラウザを介してクライアント106から要求を受信し、プロセスデータにアクセスするために要求をアダプタ118に転送し、変換器102からプロセスデータを受信し、ウェブブラウザ内のクライアント表示アプリケーションを始動する。ウェブベースインターフェース122は、プロセスデータのプロパティに基づくクライアント表示アプリケーションのテンプレートについて、データプロセッサ206に命令を送信し得る。次いで、ウェブベースインターフェース122は、クライアント表示アプリケーション内のプロセスデータを表示ファイルとして、ウェブブラウザを介して表示し得る。ウェブブラウザを介するクライアント106からの要求は、メソッド呼び出しの形式であり得る。表示ファイルを生成するために、テンプレート内に表示するためのプロセスデータをフォーマットおよび/または構成すると、ウェブベースインターフェース122は、クライアント表示アプリケーションのプロトコルに関連付けられたフォーマットで、表示ファイルをクライアントに伝送する。次いで、クライアント表示アプリケーションは、テンプレートの関連付けられたデータフィールド内にプロセスデータを示す表示を、クライアントにおけるウェブブラウザに作成する。
【0053】
クライアント表示アプリケーションは、任意のプログラムクライアントを含んでもよく、任意のプログラムクライアントは、いくつかの例では、ウェブブラウザを使用せずに、ウェブベースインターフェース122にアクセスし得る。これらの例では、ウェブベースインターフェース122は、プログラムクライアントを、新しく作成されたアクセスセッションに関連付け、テンプレート内に表示するためにフォーマットされたプロセスデータを、プログラムクライアントに関連付けられた任意のプロトコルを介して、表示ファイルとしてクライアントに転送する。次いで、プログラムクライアントは、関連付けられたデータフィールド内にプロセスデータを表示する表示ファイルを介して、表示を作成する。
【0054】
例示的ウェブベースインターフェース122は、読み取りアクセス、書き込みアクセス、および/またはサブスクライブアクセスをクライアントに提供する。読み取りアクセスを要求するクライアントに対しては、ウェブベースインターフェース122は、現在のプロセスデータおよび/または対応するEDDLファイルに関する単一の要求を、アダプタ118に転送する。プロセスデータを受信およびフォーマットすると、ウェブベースインターフェース122は、クライアントアプリケーションに、要求されたプロセスデータを提供する。
【0055】
代替として、クライアントがサブスクライブアクセスを要求する場合、ウェブベースインターフェース122は、時間間隔でプロセスデータを受信するために、定期的なメッセージをアダプタ118に送信し得る。いくつかの例では、クライアントは、プロセスデータを受信する時間間隔を特定し得る。さらに、ウェブベースインターフェース122が、ウェブページおよび/またはプログラムアプリケーション用の表示テンプレートを作成した後、ウェブベースインターフェース122は、テンプレート内のデータフィールドに対する定期的および/または連続的な更新に、より最近のプロセスデータを提供する。ウェブベースインターフェース122は、要求するクライアントとの通信を維持する既にアクティブなアクセスセッションを介して、更新を提供する。データフィールドに対する更新は、対応する外部制御システムサーバに格納された最新のプロセスデータで、傾向グラフ、プロセス状態アラート、および/またはフラグを更新することを含み得る。したがって、ウェブベースインターフェース122は、クライアントが、ウェブブラウザをリフレッシュすることを必要とせずに、および/またはプロセスデータを定期的に要求することを必要とせずに、最新のプロセスデータにアクセスすることを可能にする。
【0056】
クライアントが書き込みアクセスを要求し得るさらに他の例では、例示的ウェブベースインターフェース122は、HTML文書または方法要求を介して、ウェブページおよび/またはプログラムアプリケーションから、書き込まれたプロセスデータ値を受信する。次いで、ウェブベースインターフェース122は、書き込まれたデータ値に関連付けられた変数および/またはパラメータを識別する。他の例では、ウェブベースインターフェース122は、データプロセッサ206にアクセスして、テンプレートデータベース208内で特定されるデータ型とデータ値を相互参照し得る。次いで、ウェブベースインターフェース122は、データ値を適切な変数および/または外部サーバの部分に転送するために、命令を変換器120および/またはアダプタ118に送信する。次いで、外部サーバは、書き込まれたデータ値を格納し、および/または書き込まれたデータ値を、制御器内の適切な位置に転送し得る。
【0057】
例示的ウェブベースインターフェース122は、クライアントカスタマイズ情報をデータベース(図示せず)に格納し、次に同一のクライアントが同一の種類のプロセスデータを要求する際に、ウェブベースインターフェース122が、クライアントの前のカスタマイズに部分的に基づいて、テンプレート内のプロセスデータをフォーマットし得るようにする。ウェブベースインターフェース122は、データフィールド内のプロセスデータの出現および/またはデータ表示を変更するために、ウェブブラウザおよび/またはプログラムアプリケーションを通して、クライアントにより実行された任意の修正によって、クライアントカスタマイズを識別し得る。クライアントは、プロセスデータの色、テキストサイズ、数値的表現法、および/または任意の他のグラフィカル表現を修正し得る。
【0058】
外部制御システムサーバ(例えば、外部サーバ104)にアクセスするために、
図2の例示的ラッパー110は、アダプタ118を含む。例示的アダプタ118は、TCP、HTTP、XML、および/または任意の他の伝送プロトコルを使用して、任意の有線および/または無線接続を介して外部サーバと通信し得る。アダプタ118は、外部サーバにアクセスする要求を、ウェブベースインターフェース122から受信する。要求を受信すると、アダプタ118は、クライアント要求を特定の外部サーバに相互参照するために、サーバ参照データベース210にアクセスすることによって、プロセスデータを格納する外部サーバを識別する。例示的サーバ参照データベース210は、EEPROM、RAM、ROM、および/または任意の他の種類のメモリによって実装され得る。
【0059】
いくつかの例では、クライアント要求は、外部サーバのウェブアドレスおよび/または識別子を含み得る。アダプタ118は、要求された外部サーバの位置を判断するために、サーバ参照データベース210を参照し得る。いくつかの例では、アダプタ118は、要求されたプロセスデータおよび/または対応するEDDLファイルにアクセスするために、2つ以上の外部サーバにアクセスし得る。外部サーバの位置を判断すると、アダプタ118は、プロセスデータの要求を外部サーバに送信する。アダプタ118は、サーバ上に格納されたプロセスデータのディレクトリおよび/またはファイル構造を判断することによって、外部サーバ上のプロセスデータにアクセスし得る。アダプタ118は、このディレクトリおよび/またはファイル構造を、ウェブベースインターフェース122に中継して、クライアントが、ウェブブラウザおよび/またはプログラムアプリケーションを介して、1つ以上のディレクトリおよび/またはサブディレクトリを選択することを可能にし得る。ディレクトリおよび/またはサブディレクトリを選択することによって、クライアントは、視認および/またはアクセスすることを所望されるプロセスデータを特定する。他の例では、クライアントは、所望のプロセスデータのディレクトリおよび/またはサブディレクトリ位置を含み得る。さらに他の例では、クライアントは、要求されたプロセスデータにアクセスするために外部サーバをナビゲートするのにアダプタ118が使用し得る変数名、プロセスデータ識別子、および/または任意の他のデータ識別情報を特定し得る。
【0060】
例示的アダプタ118は、割り当てられたエンドポイントを使用して、外部サーバのディレクトリ、サブディレクトリ、および/またはファイルをナビゲートし得る。例えば、アダプタ118は、外部サーバに対応するエンドポイントを識別するために、外部サーバ参照データベース210にアクセスし得る。次いで、外部サーバは、階層、読み取りアクセス、書き込みアクセス、および/またはサブスクライブアクセスに基づいて、エンドポイントをプロセスデータに関連付けられたアダプタ118に返送し得る。次いで、アダプタ118は、どのエンドポイントが、要求されたプロセスデータに関連付けられるかを判断し得、そのエンドポイントを使用して、プロセスデータを格納する外部サーバ内の位置を閲覧および/または位置をロケートする。
【0061】
アダプタ118が、ウェブベースインターフェース122から読み取りおよび/またはサブスクライブ命令を受信する例では、アダプタ118は、要求されたプロセスデータに関連付けられた対応する読み取りおよび/またはサブスクライブエンドポイントにアクセスし得る。さらに、クライアントが、プロセスデータを受信する(例えば、プロセスデータをサブスクライブする)定期的な間隔を特定し得る例では、アダプタ118は、所望のプロセスデータについて、定期的な間隔で外部サーバをポーリングし得る。
【0062】
クライアントがプロセスデータ値をデータフィールドに書き込み得るさらに他の例では、アダプタ118は、ウェブベースインターフェース122から、その値および/または関連付けられた値識別子を受信する。次いで、アダプタ118は、書き込まれたデータ値に関連付けられたファイルおよび/またはディレクトリ位置をロケートするために、外部サーバをナビゲートする(例えば、書き込みエンドポイントを使用してナビゲートする)。次いで、アダプタ118は、書き込まれた値を、外部サーバ内の適切な位置に格納する。クライアントが値を書き込み得るいくつかの例では、アダプタ118は、変換器120が、ウェブページおよび/またはプログラムアプリケーションフォーマットから相互運用性データパッキングフォーマットに値を変換した後に、値を受信し得る。
【0063】
図2の例示的アダプタ118は、アダプタ118が、異なるプロトコル、インターフェース、オペレーティングシステム、および/またはファイルシステムで動作し得る異なる外部サーバとインターフェース接続および/または通信することを可能にする機能性を含む。サーバ参照データベース210は、各外部サーバに関連付けられたプロトコル、インターフェース、オペレーティングシステム、および/またはファイルシステムの参照を含み得る。次いで、アダプタ118が、アクセスする外部サーバを識別すると、アダプタ118は、外部サーバに関連付けられたプロトコル、インターフェース、オペレーティングシステム、および/またはファイルシステム情報を使用して、外部サーバと適切に通信および/またはインターフェース接続し得る。
【0064】
外部サーバから、要求されたプロセスデータを受信および/またはアクセスすると、例示的アダプタ118は、プロセスデータを変換器120に転送する。
図2の例示的変換器120は、プロセスデータおよび/またはEDDLファイルを、任意の相互運用性データパッケージ化関連フォーマットから、ウェブブラウザおよび/または任意の他のプログラムアプリケーション内で視認可能なフォーマットに変換する。プロセスデータをウェブ閲覧フォーマットおよび/または任意の他のプログラムアプリケーションフォーマットに変換すると、変換器120は、変換されたプロセスデータをウェブベースインターフェース122に転送する。また、例示的変換器120は、圧縮されたEDDLファイルを、テンプレート内にプロセスデータを表示するためにデータプロセッサ206により利用され得るフォーマット(例えば、XMLおよび/またはXSLT)にも変換し得る。さらに、変換器120は、書き込まれた値および/またはプロセスデータを、ウェブベースインターフェース122から受信し得る。これらの例では、変換器120は、書き込まれたデータのウェブ閲覧および/またはプログラムアプリケーションフォーマットを、書き込まれたデータを外部サーバに格納するためにアダプタ118が使用し得るフォーマットに変換する。変換器120は、任意のデータパッケージ化規約により特定され得る任意のアプリケーション、フレームワーク、データ変換アルゴリズム等を使用し得る。
【0065】
例示的ラッパー110について
図2に図示しているが、
図2に図示するサーバ、プラットフォーム、インターフェース、データ構造、要素、プロセス、および/または機器のうちの1つ以上を、任意の方式で組み合わせ、分割、再配設、省略、排除、および/または実装してもよい。さらに、例示的セキュリティプロセッサ202、例示的セッション制御器204、ウェブベースインターフェース122、例示的変換器120、例示的アダプタ118、例示的データプロセッサ206、例示的テンプレートデータベース208、例示的サーバ参照データベース210、および/または、より一般的には、例示的ラッパー110を、ハードウェア、ソフトウェア、ファームウェアならびに/またはハードウェア、ソフトウェア、および/もしくはファームウェア任意の組み合わせによって実装してもよい。したがって、例えば、例示的セキュリティプロセッサ202、例示的セッション制御器204、ウェブベースインターフェース122、例示的変換器120、例示的アダプタ118、例示的データプロセッサ206、例示的テンプレートデータベース208、例示的サーバ参照データベース210のいずれか、および/または、より一般的には、例示的ラッパー110は、1つ以上の回路、プログラム可能プロセッサ、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、および/またはフィールドプログラム可能論理デバイス(FPLD)等によって実装される可能性がある。
【0066】
本特許の任意の装置請求項が、単にソフトウェアおよび/またはファームウェア実装を包含するように読み取られる場合、例示的セキュリティプロセッサ202、例示的セッション制御器204、ウェブベースインターフェース122、例示的変換器120、例示的アダプタ118、例示的データプロセッサ206、例示的テンプレートデータベース208、および/または例示的サーバ参照データベース210のうちの少なくとも1つは、ソフトウェアおよび/またはファームウェアを格納するメモリ、DVD、CD等のコンピュータ可読媒体を含むように、本明細書によって明示的に定義される。またさらに、例示的ラッパー110は、
図2に図示するものに加えて、またはその代わりに、1つ以上の要素、プロセス、および/または機器を含んでもよく、および/または図示する要素、プロセス、および機器のうちのいずれかまたは全てのうちの2つ以上を含んでもよい。
【0067】
図3は、
図1および
図2の例示的ラッパー110を実装するために使用され得る例示的サービス指向フレームワーク300のブロック図である。例示的サービス指向フレームワーク300は、制御システム(例えば、
図1の制御システム102)の柔軟性を改善するために、サービス指向アーキテクチャを提供する。
図3に図示するように、サービス指向フレームワーク300は、クライアント106、機器記述層302、および1つ以上の機器ネットワーク304と通信している。クライアントは、プロセスデータの要求をサービス指向フレームワーク300に伝送するクライアントアプリケーション124を含む。サービス指向フレームワーク300は、サービス層306、変換層308、ネットワークアプリケーション層310、およびセキュリティ層312を含む。
【0068】
例示的ラッパー110は、例示的サービス層306、変換層308、およびセキュリティ層312によって実装され得る。サービス層306は、サービスインターフェース320、サービスメッセージ型322、サービスデータ型324、アダプタ326、およびサービス328を含む。サービス層306により提供された例示的サービス328は、表示するために、プロセスデータおよびテンプレートを、クライアント106に伝送することを含む。また、サービスは、プロセスデータをサブスクライブすること、および/またはプロセスデータを機器ネットワーク304に書き込むことも含み得る。サービス328は、サービス契約として露呈され、サービス契約によって、アプリケーションおよび/または機器は、サービス328に所望の能力または機能を実行するように要求することが可能になる。
【0069】
サービス層306は、サービスインターフェース320を通してクライアント306によってアクセスされる。サービス層306は、クライアントアプリケーション124からのサービス要求を管理し、クライアント106により使用するために、サービス契約を変換する。サービスとクライアント106との間でメッセージを送る場合、1つ以上のアダプタ326を使用して、クライアント106が理解可能なフォーマットに、メッセージを変換し得る。サービス層306へのアクセスは、方針によって定義される。方針は、クライアント106が、接続の種類、サービスにアクセスするためのセキュリティ要件、および/または要求するサービスに関連する任意の他の詳細を判断する方式を提供する。
【0070】
変換層308は、プロトコル間で変換する。例えば、変換層308は、変換器120を実装し、相互運用性データパッキングフォーマットからウェブ閲覧フォーマットにプロセスデータを変換し得る。他の例では、変換層308は、機器ネットワーク特有プロトコル(例えば、HART、Fieldbus、Profibus)からフィールド機器統合(FDI)フォーマットに、プロセスデータを変換し得る。例示的変換層308は、機器記述層302から、プロセスデータに関する情報を受信する。機器記述層302は、EDDLデータベース330および/または共通ファイルフォーマットデータベース332に格納されたフィールド機器EDDLファイルを含む。データベース330および332は、制御システム102内に実装され得る。加えて、データベース330および332のコピーは、例えば、外部サーバ104内に含まれ得る。このように、ラッパー110は、テンプレート内にプロセスデータを表示する方法に関する記述について、EDDLデータベース330および/または共通ファイルフォーマットデータベース332にアクセスし得る。共通ファイルフォーマットデータベース332は、デバイスおよび/またはアプリケーションに関する情報を格納する。いくつかの例では、共通ファイルフォーマットデータベース332は、XMLファイルを含むスキーマを使用して、フィールド機器の機能性について記述する。
【0071】
例示的機器記述層302は、XSLTテンプレートデータベース334(例えば、テンプレートデータベース208)を含む。変換層308は、表示されるプロセスデータに適合するXSLTテンプレートについて、XSLTテンプレートデータベース334にアクセスし得る。また、変換層308は、EDDLデータベース300からのEDDLファイルを使用して、XSLTテンプレート内にプロセスデータを埋め込みおよび/または組み合わせる方法をも判断し得る。例示的変換層308は、XSLTテンプレート内においてプロセスデータを使用して、サービスインターフェース320を介してクライアントアプリケーション124にプロセスデータを提供するためにサービス層306によって使用される表示ファイルを生成する。変換層308は、表示するためのテンプレートを処理するアプリケーションファサードを含み得る。
【0072】
場合によっては、クライアント106から機器ネットワーク304へのアクセスを制限する必要があり得る。この要件に対応するために、サービス指向フレームワーク300は、認証および/または認可を提供するために(例えば、ラッパー110のセキュリティプロセッサ202を介する)、セキュリティ層312を含む。認証の実装は、使用されているサービスホストの種類に依存し得る。したがって、サービス指向フレームワーク300によって、1つ以上のセキュリティ層の利用が可能になる。例えば、サービス指向フレームワーク300が、インターネット情報サービス(IIS)においてホストされる場合、ISSにより提供される認証サポートが使用される。代替として、サービスがウィンドウズ(登録商標)サービスによりホストされる場合、メッセージベースまたはトランスポートベースの認証が使用される。
【0073】
例示的サービス指向フレームワーク300は、機器ネットワーク304からプロセスデータを受信するために、ネットワークアプリケーション層310を含む。ネットワークアプリケーション層310は、機器ネットワーク304のうちの1つ以上とインタラクトするために、データアクセス機能性を含む。例示的フレームワーク300は、複数のネットワークアプリケーション層310を含んでもよく、その各々は、HART、Fieldbus、および/またはProfibus等の特定の機器ネットワークに特有であり得る。いくつかの例では、ネットワークアプリケーション層310は、制御システム102からプロセスデータのトランスポート層を提供することによって、外部サーバ106を実装し得る。また、ネットワークアプリケーション層310は、外部サーバ106内のプロセスデータを体系化および分類するネットワークメッセージ型、ネットワークデータ型、および/またはオブジェクトディレクトリ(例えば、プロセス制御ディレクトリ)も含み得る。例えば、ネットワークデータ型は、対応するプロセスデータを埋め込むように、一致するテンプレートおよび/またはデータフィールドを識別するために、ラッパー110により使用されるプロパティ情報を提供し得る。加えて、ラッパー110は、オブジェクトディレクトリを使用して、比較的迅速に、要求されたプロセスデータをロケートし得る。
【0074】
機器ネットワーク304は、機器を構成する能力、機器診断にアクセスする能力、測定値を転送する能力、アラームおよびイベントを転送する能力、ならびに/または他の通信および制御能力を、例示的フレームワーク300に提供する。サービス指向フレームワーク300によりサポートされるいくつかの例示的能力には、要求および/または応答、発行および/またはサブスクライブ、イベントの伝送、アプリケーションおよび/もしくは機器のディレクトリの維持、ならびに/または機器へのコマンドの書き込みが含まれる。サービス指向フレームワーク300は、サービス層306を介して、これらの能力へのアクセスをクライアント306に提供する。例えば、サービス指向フレームワーク300は、要求/応答、発行/サブスクライブ、イベント、ディレクトリ、および書き込みの能力について定義されるサービスを有し得る。
【0075】
機器ネットワーク304は、プロセス制御システム112内のフィールド機器と通信するために、ネットワークプロトコルおよびネットワークサービスを含む。また、機器ネットワーク304は、制御器114および/または制御器114と外部サーバ104との間の通信媒体も含み得る。このように、フィールド機器により生成されたプロセスデータは、機器ネットワーク304を介して、処理され、外部サーバ304に格納される。また、機器ネットワーク304は、クライアント106により適切なフィールド機器に書き込まれたデータを伝送し得る。
【0076】
図4は、ウェブブラウザに表示されたサーバ識別プロセスデータのための例示的インターフェース400を示す。インターフェース400は、アプリケーションウィンドウとして示される。しかしながら、他の例では、インターフェース400は、ウェブブラウザおよび/または任意の他のプログラムクライアントに関連付けられたナビゲーション機能を含んでもよい。さらに、例示的インターフェース400は、データフィールドにプロセスデータを示す1つの方式として示されるが、プロセスデータを表示するために他の例示的インターフェースを作成してもよい。
【0077】
図4の例は、サーバプロパティタブ402に関連付けられたサーバ識別情報を表示するインターフェース400を示す。インターフェース400は、ナビゲーションパネル404およびデータパネル406を含む。パネル404および406は、プロセスデータを表示するための1つ以上のテンプレート(例えば、XSLTテンプレート)および/またはスタイルシートによって事前構成および/または特定され得る。
図1および/または
図2の例示的ラッパー110は、データフィールドおよび関連付けられたプロセスデータを配設および/または埋め込むために、テンプレートまたはスタイルシートを使用し得る。例えば、データパネル406は、プロセスデータに関連付けられた変数および/またはパラメータ名(例えば、属性)と、データ値(例えば、値)とを表示するように事前構成され得る。次いで、例示的ラッパー110は、サービス識別に関連付けられたデータフィールドを属性列および/または値列に埋め込むおよび/または配置し得る。例えば、外部サーバ名について記述するプロセスデータは、「OPC DA Server」の値とともに「サーバ名」プロパティによって識別され得る。
【0078】
クライアントは、ウェブアドレスおよび/またはインターネットプロトコル(IP)アドレスをウェブブラウザに入力することによって、インターフェース400に示されたプロセスデータにアクセスし得る。次いで、ウェブブラウザは、
図1のラッパー110および/またはウェブページサーバ108にナビゲートし得る。ラッパー110は、ウェブアドレスおよび/またはIPアドレスを、インターフェース400に示される外部サーバ(例えば、OPC DA Server)に転換する。次いで、ラッパー110は、外部サーバに関連付けられたプロセスデータを取り出し、プロセスデータをウェブ閲覧フォーマットに変換し、プロセスデータのデータ型(例えば、プロパティ)を識別し、識別された型に基づいて少なくとも1つのテンプレートを選択し、プロセスデータをテンプレートに埋め込み、テンプレートにプロセスデータをレンダリングすることによって、インターフェース400を、ウェブブラウザを介してクライアントに表示する。テンプレートにプロセスデータをレンダリングすることは、インターフェース400内にプロセスデータを表示するために、ウェブブラウザに送信する表示ファイルを作成することを含み得る。本例では、ラッパー110は、データ値に関連付けられるメタデータ内のプロパティを識別することによって、プロセスデータの種類を判断する。次いで、ラッパー110は、プロパティを使用して、プロセスデータの対応する値を、テンプレート内の対応するデータフィールドに埋め込みおよび/または挿入し得る。
【0079】
図示する例では、ナビゲーションパネル404は、外部サーバに関連付けられたOPCサーバ識別情報のディレクトリおよび/またはファイル構造を示す。クライアントは、データパネル406内に表示されるOPCサーバ情報に関連付けられたプロセスデータを選択するために、ナビゲーションパネル404におけるディレクトリ構造をナビゲートし得る。クライアントは、ナビゲーションパネル404内の他のディレクトリを選択することによって、他の外部サーバデータを選択的に視認し得る。例示的ラッパー110は、このディレクトリ構造(例えば、プロセスデータ)を外部サーバから取り出し、ナビゲーションパネル404のテンプレートを使用して、データフィールド内にディレクトリ構造を構成し得る。
【0080】
図5は、ウェブブラウザに表示されたプロセスデータのための例示的インターフェース500を示す。プロセスデータは、データリストタブ502を選択することによって、ウェブブラウザに示される。クライアントがデータリストタブ502を選択すると、
図1および/または
図2の例示的ラッパー110は、プロセスデータを取り出す。インターフェース500は、サブスクライブパネル504およびデータパネル506を含む。パネル504および/または506のレイアウトは、データリストタブ502に関連付けられるプロセスデータの種類に基づいて、1つ以上のテンプレート内において特定され得る。
【0081】
サブスクライブパネル504は、クライアントが、データパネル506に表示されるプロセスデータのリフレッシュ速度を特定することを可能にする。本例では、クライアントは、5000ミリ秒(msec)の更新速度を特定する。また、サブスクライブパネル504は、クライアント識別子(例えば、クライアントID)、サーバ識別子(サーバID)、および選択されたリフレッシュ速度(例えば、更新速度)も含む。
【0082】
例示的データパネル506は、外部サーバ内のプロセスデータのディレクト位置(例えば、インスタンスID)、データ値(例えば、データ値)、プロセスデータの状態(例えば、状態コード)、およびプロセスデータが作成された時間(例えば、時間スタンプ)を含む、選択されたプロセスデータを示す。データパネル506は、プロセスデータを表示に追加または表示から削除するためのボタンを含む。また、データパネル506は、プロセスデータを読み取りまたは書き込むためのボタンも含む。
【0083】
図5の例では、ラッパー110は、表示されるプロセスデータが、リスト型数値のデータ型および/またはプロパティに関連付けられることを判断する。例示的ラッパー110は、リスト型スプレッドシートに数値プロセスデータを表示するためのデータフィールドを含む1つ以上のテンプレートを検索する。次いで、例示的ラッパー110は、プロセスデータをデータフィールドに埋め込み、組み合わせたプロセスデータおよびテンプレートで表示ファイルを生成し、インターフェース500を介して表示するための表示ファイルを伝送(および/またはレンダリング)する。
【0084】
図6は、プロセスデータをウェブブラウザに表示するために、例示的ラッパー110と通信する例示的インターフェース600を示す。例示的インターフェース600は、フィールド機器に関連付けられたプロセスデータを視認するためにオペレータがフィールド機器名(例えば、TT101)を入力するのに使用し得るナビゲーションバー602を含む。また、インターフェース600は、TT101フィールド機器とインターフェース接続するための選択肢を含むメニューバー604も含む。本例では、手動設定選択肢が選択される。
【0085】
図6の例示的インターフェース600は、TT101フィールド機器に関連付けられたプロセスデータがワークステーションまたはラップトップ上のウェブラウザ内に表示されることを標示する標的表示情報をラッパー110に提供し得る。加えて、フィールド機器(例えば、オブジェクト)を選択または入力すると、例示的ラッパー110は、フィールド機器名(例えば、TT101)を受信する。ラッパー110は、フィールド機器識別子を使用して、フィールド機器の種類(例えば、オブジェクト型)、フィールド機器に関連付けられたプロパティ、および/またはフィールド機器に関連付けられたプロセスデータ(例えば、値)を識別する。ラッパー110は、この情報を標的表示情報とともに使用して、データフィールド内にプロセスデータを表示するためにテンプレートを選択する。また、ラッパー110は、この情報を使用して、外部制御システムサーバからのプロセスデータにアクセスする。ラッパー110は、テンプレートデータベース208にアクセスし、ワークステーション上で動作するウェブブラウザのためのテンプレートをロケートすることによって、テンプレートを選択し得る。次いで、ラッパー110は、TT101フィールド機器の種類に基づいて、テンプレートを絞り込み得る。次いで、ラッパー110は、プロセスデータに対応するテンプレート内におけるデータフィールドを選択し得る。
【0086】
図6の例では、ラッパー110は、テンプレート606およびテンプレート608をインターフェース600に提供し得る。テンプレート606および608は、TT101フィールド機器に関連付けられたプロセスデータを含むデータフィールド(例えば、アナログ入力(AI)、%範囲、単位、下部範囲、上部範囲、タグ、日付、および記述子)を含む。例示的ラッパー110は、プロセスデータ内のメタデータに基づいて、プロセスデータを適切なデータフィールドに一致させて挿入することによって、テンプレート606および608に示されるプロセスデータをレンダリングし得る。他の例では、テンプレートは、グラフ、チャート、グラフィック、および/または任意の他のデータ表現を含んでもよい。
【0087】
図7(A)および(B)は、プロセスデータをクライアントアプリケーションに表示するために、
図1および/または
図2の例示的ラッパー110と通信する無線機器702上に表示された例示的インターフェース700を示す。無線機器702には、例えば、スマートフォン、携帯情報端末(PDA)、ウェブフォン、ネットパッド等を含む、任意の携帯用コンピューティング機器が含まれ得る。
図7(A)および(B)の例は、無線機器702の比較的小型の画面のために構成されたテンプレートにプロセスデータをレンダリングする例示的ラッパー110を示す。
【0088】
図7(A)では、ユーザインターフェース700は、オブジェクト検索フィールド704およびキーボード706を含む。オブジェクト検索フィールド704は、ユーザが、キーボード706を介してフィールド機器識別子(例えば、OPC DA/DEVICE/TT101)を入力することを可能にする。オブジェクト検索フィールド704は、入力されたTT101フィールド機器をラッパー110に提供する。加えて、無線機器702は、標的表示情報をラッパー100に送信し得る。ラッパー110は、TT101フィールド機器識別子(例えば、オブジェクト型)を使用して、TT101フィールド機器に関連付けられたプロセスデータおよび/またはプロパティをロケートする。また、例示的ラッパー110は、標的表示情報を使用して、無線機器702の比較的小型の画面上に表示するためにフォーマットされたテンプレート708を選択する。
【0089】
ラッパー110は、
図7(B)に示すように、テンプレート708の対応するデータフィールドにプロセスデータを一致、挿入、およびレンダリングし得る。加えて、ラッパー110は、異なるテンプレートをナビゲートするためのメニューバー710を表示し得る。メニューバー710は、テンプレート708内に含まれてもよく、かつ/またはOPC
DA/DEVICE/TT101ディレクトリ位置に関連付けられたナビゲーションプロセスデータによって特定されてもよい。代替として、メニューバー710の表示は、クライアントアプリケーションによって管理されてもよい。
図7(B)の例は、無線機器702のためにフォーマットされたテンプレート708をラッパー110が選択することを表示するが、
図6では、ラッパー110は、ワークステーション上のウェブブラウザのためにフォーマットされたテンプレート606および608を選択する。
【0090】
図8は、プロセスデータをウェブブラウザに表示する例示的インターフェース800を示す。インターフェース802は、プロセスデータのファイル位置またはパスを入力するためにユーザが使用し得るナビゲーションバー802を含む。XSLTテンプレート804は、データフィールド内に表示されたプロセスデータの表を示す。XSLTテンプレート804は、製造業者、機器の種類、およびバージョンのデータフィールドを含む。ユーザは、HTTP://OPCDASERVER/DEVICE/DEVICECOLLECTIONパスを提供して、グループ内に体系化された機器に関連付けられたプロセスデータにアクセスするか、またはプロセスデータをトラックし得る。テンプレート804内のプロセスデータは、外部サーバから以下のXMLファイルとしてアクセスされ得る。
【0092】
上記に示す例示的XMLファイルは、<catalog>行の下に、製造業者、機器の種類、および3つのフィールド機器のバージョンを列挙する。本例では、プロセスデータは、フィールド機器の製造業者名およびフィールド機器のバージョンを含む(例えば、Rosemount(登録商標)社の3051MVフィールド機器バージョン5)。例示的ラッパー110は、ユーザにより要求されたパスを使用して、対応する外部サーバにアクセスし、パスにより特定されたプロセスデータを検索し得る。本例では、プロセスデータは、XMLファイル内に特定される。
【0093】
インターフェース800を介してプロセスデータを表示するために、例示的ラッパー110は、XMLファイル内のプロパティ(例えば、変数)に対応するデータフィールドを含むXSLTテンプレート(例えば、テンプレート804)を検索する。XSLTテンプレート804は、以下の命令によって定義され得る。
【0095】
行<xsl:stylesheet version=″1.0″ xmlns:xsl=″http://www.w3.org/1999/XSL/Transform″>は、テンプレート804がインターフェース800に表示されることを特定する。例示的ラッパー110は、インターフェース800から受信した情報(例えば、標的表示情報、オブジェクト型等)に基づいて、テンプレート804を選択し得る。例えば、ラッパー110は、XMLファイル内の<manufacturer>プロパティを、XSLTテンプレート804内の<xsl:value−of select=″manufacturer″/>データフィールドと一致させ得る。また、XSLTテンプレート804は、プロセスデータをデータフィールド内にフォーマットするために、列のヘッダ(例えば、製造業者、機器の種類、およびバージョン)ならびに命令(例えば、<xsl:value−of select=″manufacturer″/>、<xsl:value−of select=″type″/>、および<xsl:value−of select=″version″/>)も特定する。
【0096】
図8のインターフェース800内にXSLTテンプレート804の表示バージョンを生成するために、ラッパー110は、XSLTテンプレート804の命令を実行し、XMLファイルにおけるプロセスデータを参照することによって、表示ファイルを作成し得る。言い換えると、ラッパー110は、XMLファイル内のプロセスデータを、XSLTテンプレート804の命令における変数と組み合わせて、表示ファイルを生成する。次いで、ラッパー110は、表示ファイルをレンダリングして、プロセスデータを含むXSLTテンプレート804を、インターフェース800を介して表示し得る。
【0097】
図1および
図2の例示的ラッパー110を実装するための例示的プロセス900を表わすフローチャートが
図9A、
図9B、および
図9Cに示される。本例では、プロセス900は、
図10に関連して後述する例示的プロセッサシステムP10に示されるプロセッサP12等のプロセッサによる実行のためのプログラム形式の機械可読命令を使用して実装され得る。プログラムは、CD−ROM、フロッピー(登録商標)ディスク、ハードドライブ、デジタル多用途ディスク(DVD)、またはプロセッサP12に関連付けられたメモリ等のコンピュータ可読媒体上に格納されたソフトウェアにおいて具体化され得るが、プログラムの全体および/またはその部分は、代替として、プロセッサP12以外の機器によって実行される可能性があり、および/またはファームウェアまたは専用のハードウェアにおいて具体化されてもよい。さらに、例示的プログラムは、
図9A、
図9B、および
図9Cに図示するフローチャートに関連して説明されるが、例示的ラッパー110を実装する多くの他の方法を代替として使用してもよい。例えば、ブロックの実行順を変更してもよく、および/または説明するブロックのいくつかは変更、排除、または組み合わされてもよい。
【0098】
前述のように、
図9A、
図9B、および
図9Cの例示的プロセスは、情報が任意の期間の間(例えば、長期間にわたって、永久的に、短期間、一時的にバッファリングするために、および/または情報をキャッシングするために)格納されるハードディスクドライブ、フラッシュメモリ、読み取り専用メモリ(ROM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュ、ランダムアクセスメモリ(RAM)、および/または任意の他の記憶媒体等の、有形のコンピュータ可読媒体上に格納された符号化命令(例えば、コンピュータ可読命令)を使用して実装されてもよい。本明細書で使用する際、「有形のコンピュータ可読媒体」という用語は、任意の種類のコンピュータ可読記憶装置を含み、かつ伝播信号を除外するように明示的に定義される。付加的または代替的に、
図9A、
図9B、および
図9Cの例示的プロセスは、情報が任意の期間の間(例えば、長期間にわたって、永久的に、短期間、一時的にバッファリングするために、および/または情報をキャッシングするために)格納されるハードディスクドライブ、フラッシュメモリ、読み取り専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、および/または任意の他の記憶媒体等の、非一過性コンピュータ可読媒体上に格納された符号化命令(例えば、コンピュータ可読命令)を使用して実装されてもよい。本明細書で使用する際、「非一過性コンピュータ可読媒体」という用語は、任意の種類のコンピュータ可読記憶装置を含み、かつ伝播信号を除外するように明示的に定義される。
【0099】
図9A、
図9B、および
図9Cの例示的プロセス900は、クライアントが、外部サーバ上に格納されたプロセスデータにアクセスすることを可能にする。複数の例示的プロセス900は、複数のクライアントのためにプロセスデータにアクセスするために、並行して、または順番に実行され得る。加えて、要求されたプロセスデータが2つ以上の外部サーバ上に格納され得る例では、例示的プロセス900は、外部サーバ毎に実装されてもよく、または代替として、単一の例示的プロセス900は、外部サーバのために実装されてもよい。
【0100】
図9Aの例示的プロセス900は、プロセスデータにアクセスするために要求を受信すること(例えば、
図2のセキュリティプロセッサ200および/またはウェブベースインターフェース122を介する)(ブロック902)によって開始する。次いで、例示的プロセス900は、プロセスデータにアクセスするために、セキュリティ証明書を要求する(例えば、セキュリティプロセッサ202を介する)(ブロック904)。セキュリティ証明書には、ユーザ名およびパスワード、アクセスコード、一意的識別子等が含まれ得る。いくつかの例では、セキュリティ証明書は、要求内に含まれてもよい。次に、例示的プロセス900は、受信したセキュリティ証明書が認証に合格するかを判断する(例えば、セキュリティプロセッサ202を介する)(ブロック906)。セキュリティ証明書が適切であり、認証に合格する場合、例示的プロセス900は、クライアントからの要求に応じて、読み取り、書き込み、および/またはサブスクライブアクセスを含むアクセスセッションを作成する(例えば、セッション制御器204を介する)(ブロック908)。次いで、例示的プロセス900は、要求に関連付けられた外部サーバを識別する(例えば、
図2のサーバ参照データベース210にアクセスするアダプタ118を介する)(ブロック910)。
【0101】
しかしながら、例示的プロセス900が、セキュリティ証明書を検証できない場合(ブロック906)、例示的プロセス900は、読み取りアクセスのみを含むアクセスセッションを作成し得る(例えば、セッション制御器204を介する)(ブロック912)。次いで、例示的プロセス900は、要求に関連付けられた外部サーバを識別する(ブロック910)。代替として、例示的プロセス900が、セキュリティ証明書を検証できない場合(ブロック906)、例示的プロセス900は、要求されたプロセスデータへのクライアントアクセスを否認してもよい。
【0102】
図9Aの例示的プロセス900は、識別された外部サーバにアクセスし(ブロック914)、要求に関連付けられた1つ以上のディレクトリにアクセスすることによって継続する(例えば、アダプタ118を介する)(ブロック916)。加えて、要求されたプロセスデータが2つ以上の外部サーバに位置する例では、例示的プロセス900は、1つ以上の外部サーバ内に位置するディレクトリおよび/またはファイルをロケートし得る(ブロック916)。例示的プロセス900は、エンドポイントを使用して、手動クライアントナビゲーションを介して、および/またはクライアントからの要求内に提供された情報によって、要求されたプロセスデータをロケートし得る。要求されたプロセスデータの位置にアクセスした後、次いで、例示的プロセス900は、要求されたプロセスデータを読み取り、書き込み、および/またはサブスクライブする要求を受信する。いくつかの例では、プロセスデータにアクセスする要求には、プロセスデータを読み取り、書き込み、および/またはサブスクライブする要求が含まれ得る。他の例では、クライアントは、読み取り、書き込み、および/またはサブスクライブ機能を介してプロセスデータにアクセスする別の要求を送信し得る。
【0103】
図9Bの例示的プロセス900は、要求が、読み取り、書き込み、および/またはサブスクライブ機能に関連付けられるかを判断する(例えば、アダプタ118を介する)(ブロック918)。要求が、プロセスデータを読み取るものである場合(ブロック918)、例示的プロセス900は、要求されたプロセスデータを、関連付けられた外部サーバから取り出すことによって継続する(例えば、アダプタ118を介する)(ブロック920)。次いで、例示的プロセス900は、外部サーバに関連付けられたフォーマット(例えば、相互運用性データパッキングフォーマット)からウェブ閲覧フォーマットおよび/またはプログラムアプリケーションフォーマットに、プロセスデータを変換する(例えば、変換器120を介する)(ブロック922)。
【0104】
しかしながら、要求が、プロセスデータをサブスクライブするものである場合(ブロック918)、例示的プロセス900は、外部サーバにおける要求されたプロセスデータをサブスクライブすることによって継続する(例えば、アダプタ118を介する)(ブロック924)。例示的プロセス900は、最新のプロセスデータを要求する要求メッセージが外部サーバに送信される時間間隔を設定することによって、プロセスデータをサブスクライブし得る。プロセスデータをサブスクライブすると、例示的プロセス900は、要求されたプロセスデータを外部サーバから取り出す(例えば、アダプタ118を介する)(ブロック920)。さらに、例示的プロセス900は、特定の間隔で、要求されたプロセスデータを外部サーバから取り出すことを継続し得る。次いで、プロセスデータの取り出し毎に、例示的プロセス900は、プロセスデータを、ウェブ閲覧フォーマットおよび/またはプログラムアプリケーションフォーマットに変換する(例えば、変換器120を介する)(ブロック922)。
【0105】
要求が、プロセスデータを書き込むものである場合(ブロック918)、例示的プロセス900は、クライアントにより提供された書き込まれたデータ値を受信し、そのデータ値を、外部サーバに格納するためのフォーマット値に変換することによって継続する(例えば、変換器120を介する)(ブロック926)。次いで、例示的プロセス900は、プロセスデータ値を、外部サーバ内の適切なデータ位置に書き込む(例えば、アダプタ118を介する)(ブロック928)。次いで、例示的プロセス900は、外部サーバにおいて書き込まれたプロセスデータを読み取り、プロセスデータをウェブ閲覧フォーマットに変換し得る(例えば、変換器120を介する)(ブロック922)。例示的プロセス900は、書き込まれた値が外部サーバに適切に書き込まれたという証拠をクライアントに提供するために、書き込まれた値を読み直し得る。
【0106】
プロセスデータを変換すると、例示的プロセス900は、プロセスデータに関連付けられたデータ型および/またはプロパティを判断することによって継続する(例えば、データプロセッサ206を介する)(ブロック929)。例示的プロセス900は、プロセスデータのプロパティに基づいて、1つ以上のテンプレートを選択する(例えば、データプロセッサ206を介する)(ブロック930)。また、例示的プロセス900は、プロセスデータの要求を伝送した機器の種類に基づいて、テンプレートを選択し得る。次に、例示的プロセス900は、プロセスデータと、選択されたテンプレートとを組み合わせる(例えば、データプロセッサ206および/またはウェブベースインターフェース122を介する)(ブロック931)。例示的プロセス900は、プロセスデータを、対応するテンプレートのデータフィールドに挿入および/または埋め込むことによって、プロセスデータをテンプレートと組み合わせ得る。
【0107】
次いで、
図9Cの例示的プロセス900は、クライアントからの要求が、ウェブサーバアプリケーションまたはクライアント表示アプリケーション(例えば、プログラムアプリケーション)に関連付けられるかを判断する(例えば、ウェブベースインターフェース122を介する)(ブロック932)。クライアント要求が、ウェブサーバアプリケーションに関連付けられる場合、例示的プロセス900は、プロセスデータを利用したテンプレートに関連付けられた命令を実行することによって、表示ファイルを作成および/または生成する(例えば、ウェブベースインターフェース122を介する)(ブロック934)。次いで、例示的プロセス900は、表示ファイルをコンパイルおよび/またはレンダリングする(例えば、ウェブベースインターフェース122を介する)(ブロック936)。次に、例示的プロセス900は、クライアントが動作させるウェブブラウザによりアクセスされるウェブページにプロセスデータを含むテンプレートの表示を可能にする(例えば、ウェブベースインターフェース122を介する)(ブロック938)。
【0108】
代替として、クライアントからの要求が、クライアント表示アプリケーションに関連付けられる場合(ブロック932)、
図9Cの例示的プロセス900は、クライアントサイトにおけるクライアント表示アプリケーションを呼び出す(例えば、ウェブベースインターフェース122を介する)(ブロック944)。クライアント表示アプリケーションを呼び出すことは、プロセスデータにアクセスするために、クライアントが使用するウェブブラウザ内のアプリケーション(例えば、ActiveXまたはSilverlight(登録商標)アプリケーション)を開くことを含み得る。また、クライアント表示アプリケーションを呼び出すことは、フォーマットされたプロセスデータおよび/またはデータフィールドを受信するために、プログラムアプリケーションを初期化することも含み得る。次いで、例示的プロセス900は、アプリケーションが呼び出され、プロセスデータを受信する準備が整っていることを表示する要求を、クライアント表示アプリケーションから受信し得る(例えば、ウェブベースインターフェース122を介する)(ブロック946)。次いで、例示的プロセス900は、プロセスデータを利用したテンプレートに関連付けられた命令を実行することによって、クライアント表示アプリケーションに適合するフォーマットで表示ファイルを生成する(例えば、ウェブベースインターフェース122を介する)(ブロック948)。例示的プロセス900は、表示ファイルをクライアント表示アプリケーションに伝送する(例えば、ウェブベースインターフェース122を介する)(ブロック950)。次いで、例示的プロセス900は、クライアント表示アプリケーションを介して、テンプレートにより命令されたように、プロセスデータを表示し得る(例えば、ウェブベースインターフェース122を介する)(ブロック952)。
【0109】
図9Cの例示的プロセス900は、クライアントが、プロセスデータおよび/またはテンプレートのいずれかの部分をカスタマイズしたかを判断することによって継続する(例えば、ウェブベースインターフェース122を介する)(ブロック940)。例示的プロセス900が、クライアントがプロセスデータおよび/またはテンプレートをカスタマイズしなかったと判断する場合、例示的プロセス900は、同一のおよび/または異なるクライアントから、プロセスデータにアクセスする要求を受信することに戻る(
図9Aのブロック902)。しかしながら、例示的プロセス900が、クライアントがプロセスデータおよび/またはデータフィールドをカスタマイズしたことを判断する場合、例示的プロセス900は、カスタマイズデータを格納する(例えば、ウェブベースインターフェース122を介する)(ブロック942)。例示的プロセス900は、同一のクライアントが異なる時に同一のプロセスデータにアクセスする際に、プロセスデータをカスタマイズされたフォーマットに表示できるように、カスタマイズ情報を格納する。次いで、例示的プロセス900は、同一のおよび/または異なるクライアントから、プロセスデータにアクセスする要求を受信することに戻る(
図9Aのブロック902)。
【0110】
図10は、本明細書に説明する例示的方法および装置を実装するために使用され得る例示的プロセッサシステムP10のブロック図である。例えば、例示的プロセッサシステムP10に類似するまたは同一のプロセッサシステムを使用して、
図1および/または
図2の例示的セキュリティプロセッサ202、例示的セッション制御器204、例示的ウェブベースインターフェース122、例示的データプロセッサ206、例示的テンプレートデータベース208、例示的変換器120、例示的アダプタ118、例示的サーバ参照データベース210、および/または、より一般的にはラッパー110を実装してもよい。例示的プロセッサシステムP10は、複数の周辺機器、インターフェース、チップ、メモリ等を含むものとして下記に説明されるが、これらの要素のうちの1つ以上は、例示的セキュリティプロセッサ202、例示的セッション制御器204、例示的ウェブベースインターフェース122、例示的データプロセッサ206、例示的データ型データベース208、例示的変換器120、例示的アダプタ118、例示的サーバ参照データベース210、および/または、より一般的には、ラッパー110のうちの1つ以上を実装するために使用される他の例示的プロセッサシステムから、省略されてもよい。
【0111】
図10に示すように、プロセッサシステムP10は、相互接続バスP14に連結されるプロセッサP12を含む。プロセッサP12は、レジスタセットまたはレジスタ空間P16を含み、レジスタセットまたはレジスタ空間P16は、
図10において、全体的にオンチップであるものとして示されるが、代替として、全体的または部分的にオフチップで配置されてもよく、専用電気接続を介して、および/または相互接続バスP14を介してプロセッサP12に直接連結されてもよい。プロセッサP12は、任意の適切なプロセッサ、処理ユニット、またはマイクロプロセッサであってもよい。
図10に図示しないが、システムP10は、マルチプロセッサシステムであってもよく、したがって、相互接続バスP14に通信可能に連結されるプロセッサP12と同一または類似する1つ以上の追加のプロセッサを含んでもよい。
【0112】
図10のプロセッサP12は、チップセットP18に連結され、チップセットP18は、メモリ制御器P20および周辺入力/出力(I/O)制御器P22を含む。周知であるように、チップセットは、典型的には、I/Oおよびメモリ管理機能、ならびにチップセットP18に連結される1つ以上のプロセッサによりアクセス可能または使用される複数の汎用および/または特殊用途レジスタ、タイマ等を提供する。メモリ制御器P20は、プロセッサP12(または、複数のプロセッサが存在する場合は、複数のプロセッサ)が、システムメモリP24および大容量記憶メモリP25にアクセスすることを可能にする機能を実行する。
【0113】
システムメモリP24は、例えば、スタティックランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、フラッシュメモリ、読み取り専用メモリ(ROM)等の、任意の所望の種類の揮発性および/または不揮発性メモリを含み得る。大容量記憶メモリP25は、任意の所望の種類の大容量記憶装置を含み得る。例えば、例示的プロセッサシステムP10を使用して、ラッパー110(
図2)を実装する場合、大容量記憶メモリP25は、ハードディスクドライブ、光学ドライブ、テープ記憶装置等を含み得る。代替として、例示的プロセッサシステムP10を使用して、例示的テンプレートデータベース210および/または例示的サーバ参照データベース210を実装する場合、大容量記憶メモリP25は、ソリッドステートメモリ(例えば、フラッシュメモリ、RAMメモリ等)、磁気メモリ(例えば、ハードドライブ)、または例示的テンプレートデータベース210および/もしくは例示的サーバ参照データベース210における大容量記憶に適切な任意の他のメモリを含み得る。
【0114】
周辺I/O制御器P22は、プロセッサP12が、周辺入力/出力(I/O)機器P26およびP28ならびにネットワークインターフェースP30と周辺I/OバスP32を介して通信することを可能にする機能を実行する。I/O機器P26およびP28は、例えば、キーボード、ディスプレイ(例えば、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ等)、ナビゲーション機器(例えば、マウス、トラックボール、容量式タッチパッド、ジョイスティック等)等の任意の所望の種類のI/O機器であり得る。ネットワークインターフェースP30は、例えば、プロセッサシステムP10が別のプロセッサシステムと通信することを可能にするイーサネット(登録商標)機器、非同期転送モード(ATM)機器、802.11機器、DSLモデム、ケーブルモデム、セルラモデム等であり得る。
【0115】
メモリ制御器P20およびI/O制御器P22は、チップセットP18内において別々の機能ブロックとして
図10に示されるが、これらのブロックにより実行される機能は、単一の半導体回路内に一体化されてもよく、または2つ以上の別々の集積回路を使用して実装されてもよい。
【0116】
上述の例示的方法および/または装置のうちの少なくともいくつかは、コンピュータプロセッサ上で実行する1つ以上のソフトウェアおよび/またはファームウェアプログラムによって実装される。しかしながら、特定用途向け集積回路、プログラム可能論理アレイ、および他のハードウェア機器を含むがこれらに限定されない、専用のハードウェア実装は、同様に、本明細書に説明する例示的方法および/または装置のうちの一部または全部を、全体的または部分的に、実装するように構築され得る。さらに、分散処理または構成要素/オブジェクト分散処理、並行処理、または仮想マシン処理を含むがこれらに限定されない、代替ソフトウェア実装もまた、本明細書に説明する例示的方法および/またはシステムを実装するために構築され得る。
【0117】
また、本明細書に説明する例示的ソフトウェアおよび/またはファームウェア実装が、磁気媒体(例えば、磁気ディスクもしくはテープ)、光ディスク等の磁気光学媒体もしくは光媒体、あるいは、1つ以上の読み取り専用(不揮発性)メモリ、ランダムアクセスメモリ、もしくは他の書き換え可能(揮発性)メモリを収容する、メモリカードもしくは他のパッケージ等のソリッドステート媒体等の、有形の記憶媒体上に格納されることに留意されたい。したがって、本明細書に説明する例示的ソフトウェアおよび/またはファームウェアは、上述のものまたは後継の記憶媒体等の有形の記憶媒体上に格納され得る。上記明細書が、例示的構成要素および機能について特定の規格およびプロトコルに関連して説明する範囲で、本特許の範囲が、このような規格およびプロトコルに限定されないことを理解されたい。例えば、インターネットおよび他のパケット交換型ネットワーク伝送の規格(例えば、伝送制御プロトコル(TCP)/インターネットプロトコル(IP)、ユーザデータグラムプロトコル(UDP)/IP、ハイパーテキストマークアップ言語(HTML)、ハイパーテキスト転送プロトコル(HTTP))の各々は、現在の水準の技術における例を表わす。このような規格は、同一の一般的な機能性を有する、より高速またはより効率的な均等物によって、定期的に取って代わる。したがって、同一の機能を有する交換規格およびプロトコルは、本特許により想定された均等物であり、添付の請求項の範囲内に含まれるように意図される。
【0118】
加えて、本特許は、ハードウェア上で実行されるソフトウェアまたはファームウェアを含む例示的方法および装置について開示するが、このようなシステムが、単に例証的であるだけであり、限定するものとして考えられるべきではないことに留意されたい。例えば、これらのハードウェアおよびソフトウェア構成要素のうちのいずれかまたは全てが、ハードウェアにおいてのみ、ソフトウェアにおいてのみ、ファームウェアにおいてのみ、またはハードウェア、ファームウェア、および/もしくはソフトウェアの何らかの組み合わせにおいて具体化され得ることが想定される。したがって、上記明細書は、例示的方法、システム、および機械アクセス可能媒体について説明したが、例は、このようなシステム、方法、および機械アクセス可能媒体を実装する唯一の方式ではない。ゆえに、一定の例示的方法、システム、および機械アクセス可能媒体について本明細書に説明しているが、本特許の対象の範囲は、それらに限定されない。これに反し、本特許は、文字通りに、または均等論に基づいて、添付の請求項の範囲内に公平に入る全ての方法、システム、および機械アクセス可能媒体を対象とする。
【0119】
関連出願
本出願は、その全体が参照により組み込まれる2010年3月24日に出願された米国特許出願第12/730,895号の一部継続出願である。