(57)【要約】プロセス制御システムのソフトウェアアプリケーションのメモリ要件を削減するための方法および装置を開示する。例示的装置は、プロセス制御システムで使用するための１次アプリケーションを実行するための１次プロセス空間と、１次アプリケーションと関連付けられ、かつディスプレイ上にレンダリングされる１次ユーザーインターフェースと、１次アプリケーションを介して起動される２次アプリケーションとを含む。２次アプリケーションは、１次アプリケーションと２次アプリケーションとの間の相互作用を可能にするためのクライアントアプリケーションと、２次アプリケーションと関連付けられた２次ユーザーインターフェースを生成するための少なくとも１つのソフトウェアコンポーネントを実装するようにクライアントアプリケーションを機能させるサーバーアプリケーションとを含む。２次ユーザーインターフェースは、１次ユーザーインターフェース内にレンダリングされる１次アプリケーションに通信される。【選択図】図５
2015510204.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
プロセス制御システムで使用するための１次アプリケーションを実行するための１次プロセス空間と、
前記１次アプリケーションと関連付けられ、かつディスプレイ上にレンダリングされる１次ユーザーインターフェースと、
前記１次アプリケーションを介して起動される２次アプリケーションであって、
前記１次アプリケーションと前記２次アプリケーションとの間の相互作用を可能にするためのクライアントアプリケーションと、
前記２次アプリケーションと関連付けられた２次ユーザーインターフェースを生成するための少なくとも１つのソフトウェアコンポーネントを実装するように前記クライアントアプリケーションを機能させるサーバーアプリケーションとを含み、前記２次ユーザーインターフェースが、前記１次ユーザーインターフェース内にレンダリングされる前記１次アプリケーションに通信される、２次アプリケーションと、を含む、装置。
【請求項２】
前記１次アプリケーションが、前記クライアントアプリケーションに前記１次ユーザーインターフェースの一部分に対するポインタを提供し、前記クライアントアプリケーションが、前記２次アプリケーションが前記１次アプリケーションに前記２次ユーザーインターフェースを通信することを可能にするために、前記２次アプリケーションと前記ポインタを共有する、請求項１に記載の装置。
【請求項３】
前記１次アプリケーションがプロセス管理ソフトウェアアプリケーションであり、前記２次アプリケーションが前記プロセス制御システム内の特定のデバイスと関連付けられる、請求項１〜２のいずれかに記載の装置。
【請求項４】
前記サーバーアプリケーションによって実装される前記少なくとも１つのソフトウェアコンポーネントが、機能コンポーネントまたはユーザーインターフェースコンポーネントのうちの少なくとも１つである、請求項１〜３のいずれかに記載の装置。
【請求項５】
前記機能コンポーネントが、前記プロセス制御システム内の前記デバイスと関連付けられた保守、校正、信頼性試験、構成、診断、通信、データ収集および記憶、電子メール、または印刷のうちの少なくとも１つに対応する、請求項１〜４のいずれかに記載の装置。
【請求項６】
前記クライアントアプリケーションを介する前記１次アプリケーションと前記２次アプリケーションとの間の相互作用が、前記１次アプリケーションのユーザーが前記少なくとも１つのソフトウェアコンポーネントと相互作用することを可能にする、請求項１〜５のいずれかに記載の装置。
【請求項７】
前記クライアントアプリケーションの第１および第２のインスタンスが、前記１次アプリケーションを介して同時に起動される、請求項１〜６のいずれかに記載の装置。
【請求項８】
前記サーバーアプリケーションが、前記クライアントアプリケーションの前記第１および第２の両方のインスタンスを機能させるために１回インスタンス化される、請求項１〜７のいずれかに記載の装置。
【請求項９】
前記サーバーアプリケーションが、前記１次アプリケーションに対してインプロセスまたはアウトオブプロセスのうちの少なくとも１つで実行される、請求項１〜８のいずれかに記載の装置。
【請求項１０】
前記１次アプリケーションの第２のインスタンスを実行するための第２の１次プロセス空間と、
前記１次アプリケーションの前記第２のインスタンスによって起動される、前記クライアントアプリケーションの第２のインスタンスと、をさらに備え、前記サーバーアプリケーションが、前記クライアントアプリケーションの前記第１および第２の両方のインスタンスを機能させるために１回インスタンス化される、請求項１〜９のいずれかに記載の装置。
【請求項１１】
前記１次アプリケーションと、前記クライアントアプリケーションと、前記サーバーアプリケーションとの間の前記相互作用が、前記１次アプリケーション、前記クライアントアプリケーション、および前記サーバーアプリケーション内のアプリケーションインターフェースコンポーネントによって可能になる、請求項１〜１０のいずれかに記載の装置。
【請求項１２】
前記アプリケーションインターフェースコンポーネントが、フィールドデバイスツール規格に基づく、請求項１〜１１のいずれかに記載の装置。
【請求項１３】
プロセス制御システムと関連付けられた１次アプリケーションと関連付けられた１次ユーザーインターフェースを介して、前記プロセス制御システム内のデバイスと関連付けられた２次アプリケーションの少なくとも１つのコンポーネントを実行するリクエストを受信することであって、前記２次アプリケーションが、クライアントアプリケーションとサーバーアプリケーションとを含み、前記少なくとも１つのコンポーネントが、前記サーバーアプリケーションによって実装される、受信することと、
前記１次アプリケーションとの相互作用を可能にするために、前記クライアントアプリケーションの第１のインスタンスをインスタンス化することと、
前記クライアントアプリケーションを機能させるために、前記サーバーアプリケーションをインスタンス化することと、
前記サーバーアプリケーションによって実装される前記少なくとも１つのコンポーネントに基づいて、前記クライアントアプリケーションの前記第１のインスタンスと関連付けられた２次ユーザーインターフェースを生成することと、
前記１次ユーザーインターフェース内にレンダリングするために、前記１次アプリケーションに前記２次ユーザーインターフェースを通信することと、を含む、方法。
【請求項１４】
前記サーバーアプリケーションとポインタを共有することをさらに含み、前記ポインタが、前記１次アプリケーションによって前記クライアントアプリケーションに提供され、前記サーバーアプリケーションが、前記１次アプリケーションに前記２次ユーザーインターフェースを通信することを可能にする、請求項１３に記載の方法。
【請求項１５】
前記１次アプリケーションに対してインプロセスまたはアウトオブプロセスのうちの少なくとも１つで前記サーバーアプリケーションを実行することをさらに含む、請求項１３〜１４のいずれかに記載の方法。
【請求項１６】
前記サーバーアプリケーションによって実装される前記少なくとも１つのコンポーネントが、前記プロセス制御システム内の前記デバイスと関連付けられたユーザーインターフェース生成、保守、校正、信頼性試験、構成、診断、通信、データ収集および記憶、電子メール、または印刷のうちの少なくとも１つを実施する、請求項１３〜１５のいずれかに記載の方法。
【請求項１７】
前記プロセス制御システム内の第２のデバイスと関連付けられた前記クライアントアプリケーションの第２のインスタンスをインスタンス化することであって、前記クライアントアプリケーションの前記第１および第２の両方のインスタンスが、前記サーバーアプリケーションによって機能される、インスタンス化することと、
前記サーバーアプリケーションによって実装される前記少なくとも１つのコンポーネントに基づいて、前記クライアントアプリケーションの前記第２のインスタンスと関連付けられた第２の２次ユーザーインターフェースを生成することと、
前記１次ユーザーインターフェース内にレンダリングするために、前記１次アプリケーションに前記第２の２次ユーザーインターフェースを通信することと、をさらに含む、請求項１３〜１６のいずれかに記載の方法。
【請求項１８】
機械可読命令を記憶する有形の製造物品であって、前記機械可読命令が、実行されるとき、機械に少なくとも、
プロセス制御システムと関連付けられた１次アプリケーションと関連付けられた１次ユーザーインターフェースを介して、前記プロセス制御システム内のデバイスと関連付けられた２次アプリケーションの少なくとも１つのコンポーネントを実行するリクエストを受信することであって、前記２次アプリケーションが、クライアントアプリケーションとサーバーアプリケーションとを含み、前記少なくとも１つのコンポーネントが、前記サーバーアプリケーションによって実装される、受信することと、
前記１次アプリケーションとの相互作用を可能にするために、前記クライアントアプリケーションの第１のインスタンスをインスタンス化することと、
前記クライアントアプリケーションを機能させるために、前記サーバーアプリケーションをインスタンス化することと、
前記サーバーアプリケーションによって実装される前記少なくとも１つのコンポーネントに基づいて、前記クライアントアプリケーションの前記第１のインスタンスと関連付けられた２次ユーザーインターフェースを生成することと、
前記１次ユーザーインターフェース内にレンダリングするために、前記１次アプリケーションに前記２次ユーザーインターフェースを通信することと、を行わせる、有形の製造物品。
【請求項１９】
前記機械可読命令は、実行されるとき、前記機械に、前記サーバーアプリケーションとポインタを共有することをさらに行わせ、前記ポインタが、前記１次アプリケーションによって前記クライアントアプリケーションに提供され、前記サーバーアプリケーションが、前記１次アプリケーションに前記２次ユーザーインターフェースを通信することを可能にする、請求項１８に記載の有形の製造物品。
【請求項２０】
前記機械可読命令が、実行されるとき、前記機械に、前記１次アプリケーションに対してインプロセスまたはアウトオブプロセスのうちの少なくとも１つで前記サーバーアプリケーションを稼動することをさらに行わせる、請求項１８〜１９のいずれかに記載の有形の製造物品。
【請求項２１】
前記サーバーアプリケーションによって実装される前記少なくとも１つのコンポーネントが、前記プロセス制御システム内の前記デバイスと関連付けられたユーザーインターフェース生成、保守、校正、信頼性試験、構成、診断、通信、データ収集および記憶、電子メール、または印刷のうちの少なくとも１つを実施する、請求項１８〜２０のいずれかに記載の有形の製造物品。
【請求項２２】
前記機械可読命令が、実行されるとき、前記機械に、
前記プロセス制御システム内の第２のデバイスと関連付けられた前記クライアントアプリケーションの第２のインスタンスをインスタンス化することであって、前記クライアントアプリケーションの前記第１および第２の両方のインスタンスが、前記サーバーアプリケーションによって機能される、インスタンス化することと、
前記サーバーアプリケーションによって実装される前記少なくとも１つのコンポーネントに基づいて、前記クライアントアプリケーションの前記第２のインスタンスと関連付けられた第２の２次ユーザーインターフェースを生成することと、
前記１次ユーザーインターフェース内にレンダリングするために、前記１次アプリケーションに前記第２の２次ユーザーインターフェースを通信することと、をさらに行わせる、請求項１８〜２１のいずれかに記載の有形の製造物品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、コンピュータソフトウェアアーキテクチャに関し、より具体的には、プロセス制御システムソフトウェアアプリケーションのメモリ要件を削減するための方法および装置に関する。
【背景技術】
【０００２】
化学、石油、または他のプロセスにおいて使用されるようなプロセス制御システムは、典型的には、アナログ、デジタル、またはアナログ／デジタルバスの組み合わせを介して、１つ以上のフィールドデバイスと通信可能に接続される、１つ以上のプロセスコントローラを含む。フィールドデバイスは、例えば、弁、弁ポジショナ、スイッチ、およびトランスミッタ（例えば、温度、圧力、および流速センサ）であってもよく、弁の開閉、およびプロセス制御パラメータの測定等、プロセス内でプロセス制御機能を実施する。プロセスコントローラは、フィールドデバイスによって行われたプロセス測定値を示す信号を受信してから、次いで、この情報を処理して制御信号を生成、制御ルーチンを実装、他のプロセス制御決定、プロセス制御システム警告を始動する。
【０００３】
フィールドデバイスおよび／またはコントローラからの情報は通常、データハイウェイまたは通信ネットワーク上から、オペレータワークステーション、パーソナルコンピュータ、データヒストリアン、レポートジェネレータ、中央データベース等、１つ以上の他のハードウェアデバイスに公開される。このようなデバイスは典型的に、オペレータおよび／またはエンジニアが、プロセス制御システムのプロセスに関する多様な機能を実施し、プロセス制御システム内の多様なコントローラ、フィールドデバイス、および他の構成要素と相互作用することを可能にする、「上位」プロセス制御システムソフトウェアアプリケーションを実行する。プロセス制御システムの動作を制御するための制御システムソフトウェアアプリケーションに加えて、オペレータおよび／またはエンジニアは、関連プロセスが実際に動作中であるかに関わらず、プロセス制御システム内の構成要素およびデバイスを設定、構成、保守、および／またはこれらの信頼性を試験するために、資産管理ソフトウェアアプリケーションおよび／または他のソフトウェアアプリケーションも使用する場合がある。これらの多様な「上位」ソフトウェアアプリケーションは、本明細書において、総称して、プロセス管理ソフトウェアアプリケーションと呼ばれる。
【０００４】
「上位」プロセス管理ソフトウェアアプリケーションに加えて、それぞれのコントローラ、フィールドデバイス、および／または他のプロセス制御システム構成要素の多くは、プロセス管理ソフトウェアアプリケーションと相互作用する関連のソフトウェアアプリケーションを有する。しかしながら、プロセス制御システム内のコントローラ、フィールドデバイス、および／または他の構成要素は、任意の数の異なる製造元によって製造されている場合がある。したがって、各製造元は、異なるハードウェアデバイスを提供する場合があり、各々が、他の製造元のハードウェアおよびソフトウェアとは異なる対応するソフトウェアを含む。さらに、プロセス管理ソフトウェアアプリケーションの開発元は、別の企業体と提携している場合がある。このため、プロセス制御システム業界の多数の製造元およびソフトウェア開発元は、プロセス制御システム内の異なるソフトウェアアプリケーションとプロセスハードウェアとの間の相互作用を可能にするために、規格化されたアプリケーションインターフェースフレームワークに適合するハードウェアおよびソフトウェアを作製する。
【０００５】
プロセス制御システム業界内で使用される典型的なアプリケーションインターフェースフレームワークは、Ｍｉｃｒｏｓｏｆｔ（登録商標）によって開発されたオブジェクトリンキングおよびエンベディング（ＯＬＥ）、コンポーネントオブジェクトモデル（ＣＯＭ）、および分散コンポーネントオブジェクトモデル（ＤＣＯＭ）技術、ならびにＣＯＭ＋および．ＮＥＴを含む次世代の技術に基づく。汎用レベルでは、これらのアプリケーションインターフェースフレームワークは、Ｗｉｎｄｏｗｓ（登録商標）ベースのソフトウェアアプリケーションのコンポーネント／オブジェクトに対する共通構造を提供する。
【０００６】
プロセス管理業界内のこれらのコンポーネントベースのインターフェースフレームワークの特定の実装は、フィールドデバイスツール（ＦＤＴ）技術として知られる。ＦＤＴ技術は、プロセス制御システム設定内のフィールドデバイス全てとそれらのホスト（複数可）との間の通信および構成インターフェースの規格を定義する。ＦＤＴ技術には、（１）ＦＤＴフレームアプリケーションおよび（２）デバイスタイプマネージャ（ＤＴＭ）という２つの主なコンポーネントが関与する。ＦＤＴフレームアプリケーションは、ＦＤＴ技術の規格化されたインターフェースフレームワークに基づいてプロセス制御システム内のＤＴＭのいずれかと通信および／または相互作用することができる、「上位」プロセス管理ソフトウェアアプリケーション等のホストアプリケーションである。
【０００７】
ＤＴＭは、デバイスに固有のデータ、機能、および管理規則、ならびにオペレータおよび／またはエンジニアがＦＤＴフレームアプリケーションを介してデバイスを構成、操作、および／または保守するためのユーザーインターフェース要素全てを含む特定のフィールドデバイスまたは他のプロセス制御システム機器と関連付けられたソフトウェアパッケージである。さらに、ＣｏｍｍＤＴＭとして知られる一部のＤＴＭは、あるプロトコルから別のプロトコル（例えば、イーサネット（登録商標）、ＨＡＲＴ、ＰＲＯＦＩＢＵＳ等）へのデータの変換を可能にするために、通信機器（例えば、ゲートウェイ、マルチプレクサ等）専用に開発される。したがって、ＦＤＴ技術は、単一のユーザーインターフェース（すなわち、ＦＤＴフレームアプリケーション）を介して、１つ以上のフィールドバスプロトコルから、ＦＤＴフレームワークに準拠する、任意の製造元からのデバイスのシームレスな統合を可能にする。上記のコンポーネントベースのインターフェースフレームワークの別の実装は、ＦＤＴ技術上に構築するフィールドデバイスインターフェースまたはフィールドデバイス統合（ＦＤＩ）として知られる。具体的には、ＦＤＩ技術は、ＦＤＴ技術を取り入れ、かつデバイス記述（ＤＤ）技術に関してプロセス業界において知られる規格を組み込んで、プロセス制御システム設定内のフィールドデバイスのインターフェースおよび通信をさらに可能にする。
【発明の概要】
【課題を解決するための手段】
【０００８】
プロセス制御システム内のソフトウェアアプリケーションのメモリ要件を削減するための方法および装置を開示する。一例において、装置は、１次アプリケーションを実行するための１次プロセス空間と、１次アプリケーションと関連付けられ、かつプロセス制御システム内で使用するためのディスプレイ上にレンダリングされる１次ユーザーインターフェースと、１次アプリケーションを介して起動される２次アプリケーションとを含む。２次アプリケーションは、１次アプリケーションと２次アプリケーションとの間の相互作用を可能にするためのクライアントアプリケーションと、２次アプリケーションと関連付けられた２次ユーザーインターフェースを生成するための少なくとも１つのソフトウェアコンポーネントを実装するようにクライアントアプリケーションを機能させるサーバーアプリケーションとを含み、２次ユーザーインターフェースが、１次ユーザーインターフェース内にレンダリングされるように１次アプリケーションに通信される。
【０００９】
別の例において、方法は、プロセス制御システムと関連付けられた１次アプリケーションと関連付けられた１次ユーザーインターフェースを介して、プロセス制御システム内のデバイスと関連付けられた２次アプリケーションの少なくとも１つのコンポーネントを実行するリクエストを受信することであって、２次アプリケーションが、クライアントアプリケーションとサーバーアプリケーションとを含み、少なくとも１つのコンポーネントが、サーバーアプリケーションによって実装される、受信することと、１次アプリケーションとの相互作用を可能にするためにクライアントアプリケーションの第１のインスタンスをインスタンス化することと、クライアントアプリケーションを機能させるためにサーバーアプリケーションをインスタンス化することと、サーバーアプリケーションによって実装される少なくとも１つのコンポーネントに基づいてクライアントアプリケーションの第１のインスタンスと関連付けられた２次ユーザーインターフェースを生成することと、１次ユーザーインターフェース内にレンダリングするために２次ユーザーインターフェースを１次アプリケーションに通信することとを含む。
【図面の簡単な説明】
【００１０】
【図１】本開示の教示が実装されてもよい、例示的なプロセス制御システムの模式図である。
【図２】図１の例示的なオペレータステーションを実装する例示的様式を示す。
【図３】図２の例示的な１次アプリケーションと関連付けられた１次ユーザーインターフェースの周知のディスプレイならびに図２の２次アプリケーションの第１および第２のインスタンスと関連付けられた第１および第２の２次ユーザーインターフェースを示す。
【図４Ａ】１次ユーザーインターフェースのフレーム内に図３の第１の２次ユーザーインターフェースをレンダリングする周知のソフトウェアアーキテクチャとともに、１次ユーザーインターフェースの別の周知のディスプレイを示す。
【図４Ｂ】図４の１次ユーザーインターフェースのフレーム内にレンダリングされている図３の第２の２次ユーザーインターフェースを用いて図４Ａの周知のディスプレイを示す。
【図５】図４Ａおよび４Ｂのディスプレイ４００を生成するための例示的なソフトウェアアーキテクチャ実装を示す。
【図６Ａ】図５のソフトウェアアーキテクチャを実装するための例示的なシングルユーザー／シングルプロセスのプロセス空間アーキテクチャを示す。
【図６Ｂ】例示的なアウトオブプロセスサーバーアーキテクチャを用いて図５のソフトウェアアーキテクチャを実装するための例示的なマルチユーザー／マルチプロセスのプロセス空間アーキテクチャを示す。
【図６Ｃ】図６Ｂのプロセス空間アーキテクチャ内に実装されてもよい、代替の例示的なアウトオブプロセスサーバーアーキテクチャを示す。
【図７】図５の例示的なソフトウェアアーキテクチャ、図６Ａ〜６Ｃの例示的なプロセス空間アーキテクチャ、ならびに／あるいはより一般的には、図１および／または２の例示的なオペレータステーションを実装するために実行されてもよい、例示的なプロセスを表すフローチャートである。
【図８】図７の例示的プロセスを実行するために使用および／またはプログラムされてもよい、例示的なコンピュータ８００の模式図である。
【発明を実施するための形態】
【００１１】
多数のプロセス制御システムは、多様な異なる製造元によって製造されている場合がある、無数の異なるデバイスおよび他の機器を含む。さらに、各製造元は、概して、各デバイスと関連付けられる、それぞれ独自の特有なソフトウェアアプリケーションを開発する。しかしながら、業界は、規格化されたフレームワークにも準拠する、「上位」プロセス管理ソフトウェアアプリケーション（例えば、ＦＤＴフレームアプリケーション）が、多様なデバイスの各々と関連付けられた、デバイスに固有のソフトウェアを認識し、これらと相互作用することを可能にするために、デバイスに固有のソフトウェアアプリケーション（例えば、ＤＴＭ）の各々に組み込まれ得る規格化を推進する非特有のアプリケーションインターフェースフレームワーク（例えば、ＦＤＴ技術）を開発してきた。以下の説明は、主にＦＤＴ技術に基づく例の詳細を説明するが、本開示の教示は、例えば、上記のＦＤＩ技術等、任意の他の適切なコンポーネントベースのインターフェースフレームワークに適合されてもよい。
【００１２】
典型的に、オペレータおよび／またはエンジニアが、プロセス制御システム内のデバイスを診断、構成、校正、またはその他これらと相互作用することを望む場合、プロセス管理ソフトウェアアプリケーションを介して、対象のデバイスのデバイスに固有のソフトウェアを起動する。起動されると、デバイスに固有のソフトウェアは、選択されたタスクを実施してから、次いで、プロセス管理ソフトウェアアプリケーションおよびデバイスに固有のソフトウェアとインターフェースする規格化されたフレームワークに基づいて、ディスプレイのために対応する出力をプロセス管理ソフトウェアアプリケーションに提供してもよい。このため、ディスプレイは、１次アプリケーションと関連付けられた単一のユーザーインターフェースに統合されてもよいが、デバイスと関連付けられた機能ソフトウェアコンポーネントおよび／またはユーザーインターフェースソフトウェアコンポーネントを含むコアビジネスロジックは、対応するデバイスに固有のソフトウェアによって包含され、実行される。いくつかの状況において、オペレータおよび／またはエンジニアは、２つ以上のデバイス上で同時に構成、診断、校正等を実施することを望む場合がある。したがって、対象の新しいデバイスを選択するたびに、プロセス管理ソフトウェアアプリケーションは、対応するデバイスに固有のソフトウェアを起動する場合がある。さらに、オペレータおよび／またはエンジニアは、プロセス制御システム全体で異なる場所に位置するいくつかの同一または類似のデバイスに集中して作業することを望む場合、プロセス管理ソフトウェアアプリケーションは、選択されたデバイスの各々がそれと関連付けられた同じソフトウェアを有する場合であっても、関連付けられたデバイスに固有のソフトウェアの個別のインスタンスを起動する。例えば、プロセス制御システムは、共通の製造元によって製造された多数の弁を有する場合があり、したがって、弁の各々は、弁の各々と関連付けられた構成、校正、診断、または他のタスクを実施するために同じビジネスロジックを含む同じ特有のソフトウェアと関連付けられる場合がある。このため、オペレータおよび／またはエンジニアが、これらの弁のうちの２つ以上を操作することを望む場合、選択された弁の各々によって共有されるデバイスに固有のソフトウェアの同じコア機能コンポーネントおよび／またはユーザーインターフェースコンポーネントが複数回インスタンス化される場合がある。この共通のソフトウェアコンポーネントの冗長的なインスタンス化は、コンピュータメモリ要件を増加および／またはプロセス管理および関連ソフトウェアアプリケーションの性能を低下させ得る。
【００１３】
図１は、本開示の教示が実装されてもよい、例示的なプロセス制御システム１００の模式図である。図１の例示的なプロセス制御システム１００は、１つ以上のプロセスコントローラ（そのうちの１つは、参照番号１０２で指定される）と、１つ以上のオペレータステーション（そのうちの１つは、参照番号１０４で指定される）と、１つ以上のワークステーション（そのうちの１つは、参照番号１０６で指定される）とを含む。例示的なプロセスコントローラ１０２、例示的なオペレータステーション１０４、および例示的なワークステーション１０６は、バスおよび／またはローカルエリアネットワーク（ＬＡＮ）１０８を介して通信可能に連結され、一般的にアプリケーション制御ネットワーク（ＡＣＮ）と呼ばれる。
【００１４】
図１の例示的なオペレータステーション１０４は、オペレータおよび／またはエンジニアが、オペレータおよび／またはエンジニアがプロセス制御システム変数、状態、条件、警告を視認し、プロセス制御システム設定（例えば、設定ポイント、運転状態、明確な警告、サイレンス警告等）を変更し、プロセス制御システム１００内のデバイスを構成および／または校正し、プロセス制御システム１００内のデバイスの診断を実施し、ならびに／あるいはプロセス制御システム１００内のデバイスとその他相互作用することを可能にする、１つ以上のオペレータ表示画面および／またはアプリケーションを確認および／または操作することを可能にする。図１の例示的なオペレータステーション１０４を実装する例示的な様式は、図２を参照して以下に記載する。
【００１５】
例示的なオペレータステーション１０４は、プロセス管理ソフトウェアアプリケーションとして機能するように、１次アプリケーション（例えば、図２の例示的な１次アプリケーション）を含み、および／または実装する。１次アプリケーションは、１次ユーザーインターフェース（例えば、図４の例示的な１次ユーザーインターフェース）と関連付けられ、プロセス制御システムおよびその構成要素部の状態の情報を表示、および／またはそれらの視覚的表示を提供する。オペレータおよび／またはエンジニアは、１次アプリケーションの１次ユーザーインターフェースを介して、プロセス制御システムのハイレベルの概要を達成してもよいが、プロセス制御システム内の特定のデバイスのより詳細な情報および／または制御も所望する場合がある。したがって、例示的なオペレータステーション１０４は、保守、校正、信頼性試験、構成、診断、通信、データ収集および保管、電子メール、印刷等を含むデバイスに固有のタスクを実施するためのコアビジネスロジックおよび機能構成要素を含む特定のデバイスに関連付けられた１つ以上の２次アプリケーション（例えば、図２の例示的な２次アプリケーション（複数可））も含む、および／または実装する。さらに、例示的な２次アプリケーションもまた、特定のデバイスと関連付けられた前述のタスクに対応する２次ユーザーインターフェースのコンテンツを生成するためのコアユーザーインターフェースコンポーネントを含む。いくつかの例において、オペレータおよび／またはエンジニアは、プロセス制御システム内の多数のデバイスの２次アプリケーションとインターフェースおよび／または通信するために、「上位」ホストアプリケーションとして機能する、１次アプリケーションを介して２次アプリケーションを起動してもよい。さらに、いくつかの例において、１次アプリケーションと２次アプリケーションとの間のインターフェースフレームワークは、出力ディスプレイのうちのいくつかまたは全てが、１次ユーザーインターフェース内にレンダリングされる２次アプリケーションによって生成されることを可能にする。このように、特定のデバイスのコア機能およびユーザーインターフェースソフトウェアコンポーネントは、対応する２次アプリケーションによって実行されるが、その結果の２次ユーザーインターフェース（またはその一部）のコンテンツは、オペレータおよび／またはエンジニアが１次ユーザーインターフェースを介して確認および／または相互作用することを可能にするために、１次ユーザーインターフェース内に埋め込まれてもよい。
【００１６】
図１の例示的なワークステーション１０６は、１つ以上の情報技術アプリケーション、ユーザー相互作用アプリケーション、および／または通信アプリケーションを実施するためにアプリケーションステーションとして構成されてもよい。例えば、ワークステーション１０６は、１次プロセス制御関連アプリケーションを実施するように構成されてもよく、一方、別のアプリケーションステーション（図示せず）は、プロセス制御システム１００が、任意の所望の通信媒体（例えば、無線、有線等）およびプロトコル（例えば、ＨＴＴＰ、ＳＯＡＰ等）を使用して、他のデバイスまたはシステムと通信することを可能にする、１次通信アプリケーションを実施するように構成されてもよい。図１の例示的なオペレータステーション１０４および例示的なワークステーション１０６は、１つ以上のワークステーションならびに／あるいは任意の他の適切なコンピュータシステムおよび／または処理システムを使用して実装されてもよい。例えば、オペレータステーション１０４および／またはワークステーション１０６は、シングルプロセッサパーソナルコンピュータ、シングルまたはマルチプロセッサワークステーション等を使用して実装することができる。
【００１７】
図１の例示的なＬＡＮ１０８は、任意の所望の通信媒体およびプロトコルを使用して実装されてもよい。例えば、ＬＡＮ１０８は、有線および／または無線のイーサネット通信スキームに基づいてもよい。しかしながら、当業者によって容易に理解されるように、任意の他の適切な通信媒体（複数可）および／またはプロトコル（複数可）を使用することができる。さらに、図１には単一のＬＡＮ１０８が図示されるが、図１の例示的なシステム間の冗長通信経路を提供するために、２つ以上のＬＡＮおよび／または他の代替の通信ハードウェアが使用されてもよい。
【００１８】
図１の例示的なコントローラ１０２は、データバス１１６および入力／出力（Ｉ／Ｏ）ゲートウェイ１１８を介して、複数のスマートフィールドデバイス１１０、１１２、および１１４に連結される。スマートフィールドデバイス１１０、１１２、および１１４は、Ｆｉｅｌｄｂｕｓ対応の弁、アクチュエータ、センサ等であってもよく、この場合、スマートフィールドデバイス１１０、１１２、および１１４は、周知のＦｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓプロトコルを使用してデータバス１１６を介して通信する。言うまでもなく、他のタイプのスマートフィールドデバイスおよび通信プロトコルを代わりに使用することができる。例えば、スマートフィールドデバイス１１０、１１２、および１１４は、代わりに、周知のＰｒｏｆｉｂｕｓおよびＨＡＲＴ通信プロトコルを使用してデータバス１１６を介して通信する、Ｐｒｏｆｉｂｕｓおよび／またはＨＡＲＴ対応デバイスであり得る。追加のＩ／Ｏデバイス（Ｉ／Ｏゲートウェイ１１８に類似および／または同一）は、Ｆｏｕｎｄａｔｉｏｎ  Ｆｉｅｌｄｂｕｓデバイス、ＨＡＲＴデバイス等であってもよい、追加のスマートフィールドデバイス群が、コントローラ１０２と通信することを可能にするためにコントローラ１０２に連結されてもよい。
【００１９】
例示的なスマートフィールドデバイス１１０、１１２、および１１４に加えて、１つ以上の非スマートフィールドデバイス１２０および１２２は、例示的なコントローラ１０２に通信可能に連結されてもよい。図１の例示的な非スマートフィールドデバイス１２０および１２２は、例えば、それぞれの有線リンクを介してコントローラ１０２と通信する、従来の４〜２０ミリアンペア（ｍＡ）または０〜２４ボルト直流（ＶＤＣ）デバイスであってもよい。
【００２０】
図１の例示的なコントローラ１０２は、例えば、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔの企業、Ｆｉｓｈｅｒ−Ｒｏｓｅｍｏｕｎｔ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって販売される、ＤｅｌｔａＶ（商標）コントローラであってもよい。しかしながら、代わりに任意の他のコントローラを使用することができる。さらに、図１には１つだけのコントローラ１０２が示されるが、任意の所望のタイプおよび／または組み合わせのタイプのコントローラおよび／またはプロセス制御プラットフォームをＬＡＮ１０８に連結することができる。いずれの場合も、例示的なコントローラ１０２は、オペレータステーション１０４を使用してシステムエンジニアおよび／または他のシステムオペレータによって生成され、コントローラ１０２にダウンロードおよび／またはインスタンス化されている、プロセス制御システム１００と関連付けられた１つ以上のプロセス制御ルーチンを実施する。
【００２１】
図１は、以下に詳細を記載するプロセス管理ソフトウェアアプリケーションのインターフェースを表示するために方法および装置を有利に採用されてもよい、例示的なプロセス制御システム１００を図示するが、本明細書に記載のオペレータおよび／又はエンジニアに提示される情報を制御するための方法および装置は、所望される場合、図１の図示される例よりも複雑度が高いまたは低い（例えば、２つ以上の地理的場所全体で、２つ以上のコントローラを有する等）他のプロセスプラントおよび／またはプロセス制御システムにおいて有利に採用されてもよい。
【００２２】
図２は、図１の例示的なオペレータステーション１０４を実装する例示的様式を示す。以下の説明は、オペレータステーション１０４に関して提供されるが、例示的なオペレータステーション１０４を実装する例示的な様式は、図１の例示的なワークステーション１０６を実装するために使用されてもよい。図２の例示的なオペレータステーション１０４は、少なくとも１つのプログラマブルプロセッサ２００を含む。図２の例示的なプロセッサ２００は、プロセッサ２００のメインメモリ２０２（例えば、ランダムアクセスメモリ（ＲＡＭ）および／または読み出し専用メモリ（ＲＯＭ）内）に存在するコーディングされた命令を実行する。プロセッサ２００は、プロセッサコア、プロセッサ、および／またはマイクロコントローラ等、任意のタイプの処理装置であってもよい。プロセッサ２００は、特に、オペレーティングシステム２０４、１次アプリケーション２０６、１次ユーザーインターフェース２０８、および１つ以上の２次アプリケーション２１０を実行してもよい。周知のソフトウェアアーキテクチャは、シングルユニタリアプリケーション（複数可）として２次アプリケーション２１０（複数可）を実行してもよいが、開示される例の２次アプリケーション２１０（複数可）は、クライアントアプリケーション部２１２およびサーバーアプリケーション部２１４を介して実行されてもよい。例示的なオペレーティングシステム２０４は、Ｍｉｃｒｏｓｏｆｔ（登録商標）のオペレーティングシステムである。図２の例示的なメインメモリ２０２は、プロセッサ２００によっておよび／またはプロセッサ２００内部に実装されてもよく、ならびに／あるいはプロセッサ２００に動作可能に連結された１つ以上のメモリおよび／またはメモリデバイスであってもよい。
【００２３】
オペレータおよび／またはエンジニアが例示的なプロセッサ２００と相互作用することを可能にするために、図２の例示的なオペレータステーション１０４は、任意の種類のディスプレイ２１６を含む。例示的なディスプレイ２１６として、プロセッサ２００によって、および／または、より具体的には、例示的なオペレータステーション１０４によって、実装されるユーザーインターフェースおよび／またはアプリケーションを表示することができる、コンピュータモニタ、コンピュータ画面、テレビ、モバイルデバイス（例えば、スマートフォン、Ｂｌａｃｋｂｅｒｒｙ（商標）  および／またはｉＰｈｏｎｅ（商標））等が挙げられるが、これらに限定されない。図２の例示的なオペレーティングシステム２０４は、例示的なディスプレイ２１６によって、および／または例示的なディスプレイ２１６に、例示的な１次アプリケーション２０６の例示的な１次ユーザーインターフェース２０８を表示、および／または表示を促進する。同様に、例示的なオペレーティングシステム２０４は、例示的な２次アプリケーション２１０（複数可）と関連付けられた２次ユーザーインターフェース（複数可）を表示、および／または表示を促進する。例示的な１次ユーザーインターフェース２１０は、図３〜５を参照して以下に記載する。
【００２４】
例示的な１次アプリケーション２０６は、オペレータおよび／またはエンジニアが、プロセス制御システム（例えば、図１のプロセス制御システム１００）のハイレベル概要を有し、プロセス制御システム１００内のプロセスおよびコンポーネントを制御、構成、診断、その他相互作用、および／またはこれらに関するデータを取得することが可能である、「上位」プロセス管理ソフトウェアアプリケーションまたは任意の他の人間機械インターフェース（ＨＭＩ）ソフトウェアアプリケーションであってもよい。より具体的には、１次アプリケーション２０６は、２次アプリケーション２１０等、各プロセス制御システム構成要素と関連付けられた任意のソフトウェアを含む、プロセス制御システム１００内の多様なデバイスおよび他の構成要素を起動および／または通信してもよい。頻繁に、上記のように、特定のデバイスと関連付けられたコアビジネスロジック、機能コンポーネント、および／またはユーザーインターフェース構成要素を含む、２次アプリケーション２１０（複数可）の実行を通じて、所望の情報が取得されても、または所望のタスクが実装されてもよい。
【００２５】
多数の知られているプロセス制御システムにおいて、特定のデバイスに対応する各２次アプリケーション２１０は、ユニタリアプリケーションである。このため、オペレータおよび／またはエンジニアが特定のデバイスとの通信および／または相互作用を所望する場合、対応する２次アプリケーション２１０全体が起動され、メモリ２０２内にインスタンス化される。さらに、典型的なプロセスプラントにおいて、オペレータおよび／またはエンジニアは、２つ以上のデバイスを同時に診断、校正、構成すること等を所望する場合がある。ただし、対象のデバイスが、プロセスプラント内の異なる場所に位置する同じまたは類似のデバイスであることは珍しいことではない。例えば、プロセスプラントは、プロセス空間全体に配置された同一または類似の弁を何百も有する場合がある。このため、これらのデバイスの各々は、共通の２次アプリケーション２１０と関連付けられてもよい。しかしながら、多数の知られているプロセス制御システムにおいて、オペレータまたはエンジニアが、１次アプリケーション２０６を介して２次アプリケーション２１０を起動するたびに、２次アプリケーション２１０が別のデバイスのために既に起動されている場合であっても、２次アプリケーション２１０の新しいインスタンスがインスタンス化される。この結果、２次アプリケーション２１０が複数回複製されることによって、コンピュータメモリリソースに不要な負荷がかかることになる場合があり、このために、効率を低下させ、コストを増加する。
【００２６】
同じ２次アプリケーション２１０の複数のインスタンスによって生じる大きいメモリフットプリントの効果を緩和するために、本明細書に記載の例示的な２次アプリケーション２１０は、クライアントアプリケーション部２１２と、クライアントアプリケーション２１２を機能させるサーバーアプリケーション部２１４とを含む。具体的には、サーバーアプリケーション２１４は、２次アプリケーション２１０のコア機能コンポーネントおよび／またはコアユーザーインターフェースコンポーネントのうちの任意または全てを含む、２次アプリケーション２１０の大部分、またはその任意の部分を含み、実行してもよい。クライアントアプリケーション２１２は、このために、上記のように１次アプリケーション２０６とのインターフェース関係を可能にするために、２次アプリケーション２１０のフロントエンドとして機能する。したがって、１次アプリケーション２０６の観点からは、クライアントアプリケーションおよびサーバーアプリケーション２１２および２１４は、ユニタリアプリケーションとして動作するように、一体化して機能する。すなわち、２次アプリケーション２１４が、２次アプリケーション２１０のコアソフトウェアコンポーネントを実行することによって、クライアントアプリケーション２１２を機能させると、クライアントは、１次アプリケーション２０６とサーバーアプリケーション２１４との間のシームレスな接続を提供するために、１次アプリケーション２０６とインターフェースする。この結果、図示された例の２次アプリケーション２１０は、１次アプリケーション２０６、または性質がユニタリである多数の周知の２次アプリケーションを実装するために本来実行される以外何も変更する必要なく、任意のプロセス制御システムに組み込むことができる。１次アプリケーション２０６と２次アプリケーション２１０との間（クライアントアプリケーション２１２を介する）、およびクライアントアプリケーション２１２とサーバーアプリケーション２１４との間（２次アプリケーション２１０内）のインターフェースは、図４〜５を参照して、以下に詳細を記載する。
【００２７】
図１の例示的なオペレータステーション１０４を実装する例示的な様式が図２に図示されているが、図２に図示されるデータ、構造、要素、プロセス、およびデバイスは、任意の他の方式において組み合わせ、分割、再配置、割愛、除外、および／または実装されてもよい。さらに、例示的なオペレーティングシステム２０４、例示的な１次アプリケーション２０６、例示的な１次ユーザーインターフェース２０８、例示的な２次アプリケーション２１０（複数可）、例示的なクライアントアプリケーション２１２、例示的なサーバーアプリケーション２１４、および／または、より具体的には、図２の例示的なオペレータステーション１０４は、ハードウェア、ソフトウェア、ファームウェア、ならびに／あるいは任意の組み合わせのハードウェア、ソフトウェア、および／またはファームウェアによって実装されてもよい。またさらに、例示的なオペレータステーション１０４は、図２に図示されるものの代わりに、またはこれらに加えて、追加の要素、プロセス、および／またはデバイスを含んでもよく、ならびに／あるいは図示されたデータ構造、要素、プロセス、および／またはデバイスのうちの任意または全てのうちの２つ以上を含んでもよい。
【００２８】
図３は、図２の例示的な１次アプリケーション２０６と関連付けられた１次ユーザーインターフェース３０２の周知のディスプレイ３００、および２次アプリケーション２１０の第１および第２のインスタンスと関連付けられた第１および第２の２次ユーザーインターフェース３０４ａ〜ｂを示す。いくつかの例において、１次ユーザーインターフェース３０２は、配管計装図（Ｐ＆ＩＤ）、プロセスフロー図（ＰＦＤ）、プロセス制御システムデバイスツリー、または他のプロセスプラントレイアウト３０６の表示（例えば、テキストおよび／またはグラフィックスのいずれかを使用）、プロセス制御システム（例えば、プロセス制御システム１００）内のデバイスのうちのいくつかまたは全てを含んでもよい。上記のように、プラントレイアウト３０６に示されるデバイスのうちの特定の１つに関する詳細情報に関心があるオペレータおよび／またはエンジニアは、デバイスと関連付けられた２次アプリケーション２１２（図２）を起動するためにデバイスをクリックしてもよい。共通の２次アプリケーション２１２を共有する複数のデバイスが選択された場合、追加のデバイスが選択されるたびに、２次アプリケーション２１２の追加のインスタンスがインスタンス化される。
【００２９】
例えば、オペレータおよび／またはエンジニアが、弁３０８および３１０の各々と関連付けられた対象の特徴を示すグラフおよび／または他のデータをグラフ化することによって、プロセスプラントレイアウト３０６に示される第１の弁３０８および第２の弁３１０（どちらも同じ２次アプリケーション２１０と関連付けられた）を診断、校正、構成、および／または他のタスクを実施することを所望する場合がある。このためには、オペレータおよび／またはエンジニアは、１次ユーザーインターフェース３０２のプラントレイアウト３０６の第１の弁３０８をクリックしてもよく、それによって、第１の弁３０８に対応する２次アプリケーション２１０の第１のインスタンスを起動する。起動した後、２次アプリケーション２１０の第１のインスタンスは、２次アプリケーション２１０によって実行された診断、校正、構成、および／または他のタスクに基づく所望のコンテンツを含む、対応する２次ユーザーインターフェース３０４ａを生成する。オペレータおよび／またはエンジニアは、次いで、２次アプリケーション２１０の２次インスタンスが、第２の弁３１０に対応する出力データを含む第２の２次ユーザーインターフェース３０４ｂを生成するように、第２の弁３１０のプロセスを繰り返してもよい。したがって、第１および第２の２次ユーザーインターフェース３０４ａ〜ｂの表示された内容は異なるが、それぞれの場合に、まさに同じコンピュータコードの重複インスタンス（すなわち、同じ２次アプリケーション２１０の２つのインスタンス）を使用して、まさに同じタスクが実施された。さらに、２次アプリケーション２１０の共通機能コンポーネントの重複以外に、２次アプリケーション２１０のユーザーインターフェースコンポーネントは、別々の第１および第２の２次ユーザーインターフェース３０４ａ〜ｂを生成するためにも重複される。同じ機能を不必要に実施するために同じ２次アプリケーション２１２を複数回起動することによって生じる冗長性は、コンピュータメモリリソースに対する負荷を増大し、それによって、図１のプロセス制御システム１００の効率性を低下させ、および／またはそれを稼動するコストを増加させる可能性がある。
【００３０】
ここで、図４Ａおよび４Ｂを参照すると、１次ユーザーインターフェース４０２の別の周知のディスプレイ４００に加えて、プラントレイアウト３０６の第１および第２の弁３０８および３１０に対応する１次ユーザーインターフェース４０２内に第１および第２の２次ユーザーインターフェース４０６ａ〜ｂをレンダリングするための周知のソフトウェアアーキテクチャ４０４が図示される。図３を参照して説明したように、各２次ユーザーインターフェース４０６ａ〜ｂは、２次アプリケーション２１０の別々のインスタンスによってサポートされる。多数の典型的なＦＤＴ実装において、ＦＤＴフレームアプリケーション（すなわち、１次アプリケーション２０６）は、単一のＤＴＭ（すなわち、２次アプリケーション２１０のうちの１つ）がコンテンツ（すなわち、２次ユーザーインターフェース４０６ａ）をレンダリングすることができる、ウィンドウまたはフレーム４０８を提供する。したがって、図４Ａは、１次ユーザーインターフェース４０２のフレーム４０８内にレンダリングされている第１の２次ユーザーインターフェース４０６ａを含む周知のディスプレイ４００を図示し、一方、図４Ｂは、１次ユーザーインターフェース４０２のフレーム４０８内にレンダリングされている第２の２次ユーザーインターフェース４０６ｂを含む図４Ａの周知のディスプレイ４００を図示する。
【００３１】
業界において一般には行われないが、ＦＤＴフレームアプリケーションは、複数のＤＴＭからのコンテンツに別々の画面空間を同時に提供するように適合することができる。例えば、１次ユーザーインターフェース４０２は、同時に両方の２次ユーザーインターフェース４０６ａ〜ｂをレンダリングすることが可能であり得る。このように、２次ユーザーインターフェース４０６ａ〜ｂのうちの１つだけが１度に表示されるが、２次アプリケーション２１０の両方のインスタンスが依然として完全にインスタンス化され、同時に１次アプリケーション２０６とインターフェースする。具体的には、１次アプリケーション２０６（図２）および２次アプリケーション２１０の各インスタンスは、１次ユーザーインターフェース４０２のフレーム４０８内にレンダリングされる２次アプリケーション２１０の対応するインスタンスによって生成された２次ユーザーインターフェース４０６ａ〜ｂを含めて、アプリケーション間で情報を渡すために上記のアプリケーションインターフェースフレームワークを介して相互作用する。図４Ａおよび４Ｂに示される２次アプリケーション２１０の各インスタンスは、独立的に、１次アプリケーション２０６とインターフェースする。したがって、図４の２次アプリケーション２１０の各インスタンスは、同じコア機能コンポーネント４１０および同じユーザーインターフェースコンポーネント４１２を実行して、要求されたタスクを実施し、選択された弁３０８および３１０の各々に対応する第１および第２の２次ユーザーインターフェース４０６ａ〜ｂを生成する。
【００３２】
第１および第２の２次ユーザーインターフェース４０６ａ〜ｂが１次ユーザーインターフェース４０２内でレンダリングされることを可能にするために、周知のソフトウェアアーキテクチャ４０４の２次アプリケーション２１０の各インスタンスは、２次アプリケーション２１０の各インスタンスと１次アプリケーション２０６との間のインターフェースを確立するために、アプリケーションインターフェースフレームワーク（例えば、ＦＤＴ技術）に準拠する規格化されたコードを含むアプリケーションインターフェースコンポーネント４１４を有してもよい。こうすることによって、２次アプリケーション２１０の各インスタンスは、１次アプリケーション２０６からリクエストを受信し、１次ユーザーインターフェース４０２内に埋め込まれる対応する出力（例えば、２次ユーザーインターフェース４０６ａ〜ｂ）を提供してもよい。同様に、１次アプリケーション２０６は、２次アプリケーション２１０にリクエストを通信するために、アプリケーションインターフェースフレームワークによって定義される規格化されたコードを含み、２次アプリケーション２１０の出力がレンダリングされる、１次ユーザーインターフェース４０２内のフレーム４０８を提供してもよい。より具体的には、１次アプリケーション２０６と２次アプリケーション２１０との間に確立されるインターフェース関係の一部は、フレーム４０８の場所をポイントする、１次アプリケーション２０６によって提供される、ハンドルまたは他のスマートポインタ等のポインタを含むので、２次アプリケーション２１０は、ポインタを介して、１次ユーザーインターフェース４０２にレンダリングされるコンテンツを直接渡すことができる。フレーム４０８内に表示されてもよいグラフィカルコンテンツに加えて、２次ユーザーインターフェース４０６ａ〜ｂは、オペレータおよび／またはエンジニアが１次ユーザーインターフェース４０２のフレーム４０８内にレンダリングされるコンテンツと相互作用することを可能にする、ボタン４１６および／または他の相互作用要素を含んでもよい。
【００３３】
図５は、図４Ａおよび４Ｂのディスプレイ４００を生成するために使用されてもよい、例示的なソフトウェアアーキテクチャ５００を示す。図５のディスプレイ４００は、図４Ａのディスプレイ４００と同じであり、第１の２次ユーザーインターフェース４０６ａは、１次ユーザーインターフェース４０２のフレーム４０８内にレンダリングされるが、基底のソフトウェアアーキテクチャ５００が異なる。
【００３４】
２次アプリケーション２１０の各インスタンスが完全にインスタンス化されたユニタリアプリケーションである、図４Ａおよび４Ｂの周知のソフトウェアアーキテクチャ４０４とは異なり、例示的ソフトウェアアーキテクチャ５００内の２次アプリケーション２１０の第１および第２のインスタンスは、クライアントアプリケーション部２１２の第１および第２のインスタンス（第１および第２の弁３０８および３１０に対応）、およびクライアントアプリケーション２１２の両方のインスタンスを機能させるサーバーアプリケーション部２１４の単一のインスタンスに分かれる。図示されるように、クライアントアプリケーション２１２の各インスタンスは、図４Ａおよび４Ｂのユニタリ２次アプリケーション２１０と同じ様式で１次アプリケーション２０６（図２）と相互作用するために、アプリケーションインターフェースコンポーネント４１４を含む。図示される例において、サーバーアプリケーション２１４は、２次アプリケーション２１０の機能コンポーネント４１０および関連ビジネスロジックを含み、第１および第２の弁３０８および３１０と関連付けられた任意のタスク（例えば、校正、構成、診断等）を実施してもよい。さらに、サーバーアプリケーション２１４は、特に、機能コンポーネント４１０によって実施される任意の計算または他のタスクの結果に基づいて、第１および第２の２次ユーザーインターフェース４０６ａ〜ｂのコンテンツを生成するために、２次アプリケーション２１０のユーザーインターフェースコンポーネント４１２を含んでもよい。サーバーアプリケーション２１４は、２次アプリケーション２１０のユーザーインターフェースコンポーネント４１２および機能コンポーネント４１０全てを含むと示されるが、他の例において、２次アプリケーション２１０のコンポーネントは、任意の適切な様式において、サーバーアプリケーション２１４とクライアントアプリケーション２１２との間で分割されてもよい。
【００３５】
前述のように、クライアントアプリケーション２１２の２つのインスタンスが存在するが、サーバーアプリケーション２１４のインスタンスは１つしか存在しない。このように、機能コンポーネント４１０が２次アプリケーション２１０のそれぞれ別のインスタンスで複数回インスタンス化される、図４に示される周知のソフトウェアアーキテクチャ４０４とは異なり、図５の例示的ソフトウェアアーキテクチャ５００の機能コンポーネント４１０は、クライアントアプリケーション２１２の両方のインスタンスを機能させるために１回しかインスタンス化されず、第１および第２の弁３０８および３１０に対応する、構成、校正、診断、および／または他のタスクを実施する。同様に、図４に示される周知のソフトウェアアーキテクチャ４０４は、２次アプリケーション２１０の各インスタンスにおいて、ユーザーインターフェースコンポーネント４１２を複数回インスタンス化するが、図５の図示される例において、サーバーアプリケーション２１４は、クライアントアプリケーション２１２の両方のインスタンスを機能させるために、ユーザーインターフェースコンポーネント４１２の１つのインスタンスだけをインスタンス化する。
【００３６】
サーバーアプリケーション２１４の単一インスタンス内にコア機能コンポーネントおよび／またはコアユーザーインターフェースコンポーネントを配置することによって、クライアントアプリケーション２１２のメモリフットプリントをはるかに削減することができる。例えば、オペレータおよび／またはエンジニアは、特定のデバイスの診断、構成、校正等を実施することを所望する場合、以前と同様に、１次アプリケーション２０６を介して、対象のデバイスと関連付けられた例示的な２次アプリケーション２１０を起動してもよい。ただし、開示される例において、対象のデバイスが共通の２次アプリケーション２１０を有する場合、２次アプリケーション２１０のクライアントアプリケーション部２１２だけが、各デバイスに対してインスタンス化され、一方、単一のサーバーアプリケーション２１４は、クライアントアプリケーション２１２の両方のインスタンスを機能させるためにインスタンス化される。このように、クライアントアプリケーション２１２には依然として２つのインスタンスが存在するが（各々が同じアプリケーションインターフェースコンポーネント４１４を含む）、サーバーアプリケーション２１４に含まれる機能コンポーネント４１０およびユーザーインターフェースコンポーネント４１２は１回しかインスタンス化されず、それによって、これらのコンポーネントの重複を回避する。さらに、機能コンポーネント４１０およびユーザーインターフェースコンポーネント４１２は典型的に、２次アプリケーション２１０のバルクを含む。この結果、例示的なソフトウェアアーキテクチャ５００の全体的なメモリフットプリントは、サーバーアプリケーション２１４が１回しかインスタンス化されず、クライアントアプリケーション２１２の２つのインスタンスは相対的に少ない（すなわち、相対的に小さいメモリフットプリントを有する）ため、図４で説明される周知のソフトウェアアーキテクチャ４０４によって使用されるメモリ量のサイズのほぼ半分である。
【００３７】
加えて、第１および第２のインスタンス以外にクライアントアプリケーション２１２の追加のインスタンスがインスタンス化されると、これらも同じサーバーアプリケーション２１４を共有する場合があるため、節約されるメモリ空間は一層さらに明らかである。このように、クライアントアプリケーション２１２の３つの例示的なインスタンスは全て単一のサーバーアプリケーション２１４を共有してもよく、すなわち、メモリフットプリント合計は、図４で説明される周知のソフトウェアアーキテクチャ４０４に従って実装される２次アプリケーション２１０の３つの全てのインスタンスのメモリフットプリントのほぼ３分の１である。したがって、本明細書に記載される例示的なソフトウェアアーキテクチャ５００は、２次アプリケーション２１０の複数のインスタンスのメモリフットプリントを有利に削減することができ、それによって、他のアプリケーションのためにメモリを解放し、システムの効率を高め、および／または所望のアプリケーションを実行するためのメモリ要件全体を低下させることによってコストを削減する。
【００３８】
上述のように、クライアントアプリケーション２１２の各インスタンスは、任意の適切なアプリケーションインターフェースフレームワークに基づいて１次アプリケーション２０６とクライアントアプリケーション２１２との間のインターフェースを確立することによって、１次アプリケーション２０６と相互作用する。図５のクライアントアプリケーション２１２の第１および第２のインスタンスのアプリケーションインターフェースコンポーネント４１４は、図４の２次アプリケーション２１０の第１および第２のインスタンスのアプリケーションインターフェースコンポーネント４１４と同じであるため、１次アプリケーション２０６とクライアントアプリケーション２１２との間のインターフェースは、図４を参照した上記の１次アプリケーション２０６と２次アプリケーション２１０との間のインターフェースと同じである。したがって、１次アプリケーション２０６の観点から、図４Ａおよび４Ｂで説明される周知のアーキテクチャ４０４と図５に示される例示的なソフトウェアアーキテクチャ５００との間に機能的な差異は存在しない。この結果、１次アプリケーション２０６のソフトウェア開発者は、１次アプリケーション２０６が１次アプリケーション２０６とクライアントアプリケーション２１２との間の関係を確立するために、アプリケーションインターフェースフレームワーク規格を既にサポートしている限り、ソフトウェア製品を変更することなく、例示的なソフトウェアアーキテクチャ５００を実施することができる。さらに、１次アプリケーション２０６は、本明細書に記載の例示的なソフトウェアアーキテクチャ５００を実装しないデバイスに対応するユニタリ２次アプリケーション２１０（図４で説明）と変わらず相互作用することができる。
【００３９】
クライアントアプリケーション２１２の第１および第２のインスタンスが１次アプリケーション２０６とインターフェースすることに加えて、クライアントアプリケーション２１２の第１および第２のインスタンスは、サーバーアプリケーション２１４ともインターフェースする。いくつかの例において、クライアントアプリケーション２１２およびサーバーアプリケーション２１４は、１次アプリケーション２０６およびクライアントアプリケーション２１２が上記のように通信および／または相互作用するのと同じ方式で通信および／または相互作用する。すなわち、サーバーアプリケーション２１４は、各アプリケーションが他のコンポーネントを認識、インスタンス化、および／または相互作用することを可能にするために、アプリケーションが実装しているアプリケーションインターフェースフレームワークをサポートするクライアントアプリケーション２１２のインスタンスのアプリケーションインターフェースコンポーネント４１４に類似の規格化されたコードも含むことができる。この結果、１次アプリケーション２０６およびサーバーアプリケーション２１４は、クライアントアプリケーション２１２が１次アプリケーション２０６およびサーバーアプリエーション２１４の両方とインターフェースするため、クライアントアプリケーション２１２のインスタンスのうちの１つを介して、間接的に通信および／または相互作用することができる。いくつかの例において、クライアントアプリケーション２１２は、１次アプリケーション２０６とサーバーアプリケーション２１２との間に言わば通過機能を提供する場合がある。例えば、１次アプリケーション２０６がクライアントアプリケーション２１２のインスタンスのうちの１つにポインタを提供する場合、クライアントアプリケーション２１２のインスタンスは、サーバーアプリケーション２１４とポインタを共有してもよい。このため、サーバーアプリケーション２１４が、１次ユーザーインターフェース２０８内にレンダリングされるデータを計算、またはその他コンテンツを決定すると、コンテンツは、サーバーアプリケーション２１４から、クライアントアプリケーション２１２によって共有されるポインタを介して、１次ユーザーインターフェース４０２のフレーム４０８に直接渡される。同様に、特定のデバイスに関する１次ユーザーインターフェース２０６を介してデータ、グラフィックス、および／または他のタスクがリクエストされると、対応するクライアントアプリケーション２１２は、リクエストされたデータ、グラフィックス、および／または他のタスクを提供および／または実行するために、機能および／またはユーザーインターフェースコンポーネントを含むサーバーアプリケーション２１４とリクエストを共有することができる。
【００４０】
前述の例示的なソフトウェアアーキテクチャ５００は、ＦＤＴ規格に従って実装されてもよいが、１次アプリケーション２０６とクライアントアプリケーション２１２との間のインターフェース、ならびにクライアントアプリケーション２１２とサーバーアプリケーション２１４との間のインターフェースは、ソフトウェアアプリケーションのコンポーネントがどのように相互作用するかを規定する任意の他の適切なインターフェースフレームワークに基づいてもよい。具体的には、インターフェースフレームワークによって可能になるソフトウェアアプリケーションの相互作用は、別のソフトウェアアプリケーションのオブジェクト／コンポーネントの存在および／または可用性を判定すること、他のソフトウェアアプリケーションのオブジェクト／コンポーネントの能力を判定すること、他のソフトウェアアプリケーションのオブジェクト／コンポーネントをインスタンス化すること、他のソフトウェアアプリケーションの他のオブジェクト／コンポーネントとの通信を確立すること（相互通信）、および／または同じソフトウェアアプリケーションの他のオブジェクト／コンポーネントとの通信を確立すること（内部通信）等を含むことができる。
【００４１】
図６Ａ〜６Ｃは、図５のソフトウェアアーキテクチャ５００を実装するための例示的なプロセス空間アーキテクチャ６００および６０２を図示する。具体的には、図６Ａは、例示的なシングルユーザー／シングルプロセスアーキテクチャ６００を図示し、図６Ｂは、例示的なアウトオブプロセスサーバーアーキテクチャ６０４を含むマルチユーザー／マルチプロセスアーキテクチャ６０２を図示し、図６Ｃは、図６Ｂのプロセス空間アーキテクチャ６０２内に実装されてもよい、代替の例示的なアウトオブプロセスサーバーアーキテクチャ６０６を図示する。
【００４２】
図６Ａを詳細に検討すると、図２の１次アプリケーション２０６のインスタンスを実行するために、シングル１次プロセス空間６０８が図示される。図示される例において、１次アプリケーション２０６は、図５の例示的なソフトウェアアーキテクチャ５００に従ってクライアントアプリケーション２１２の複数のインスタンスを起動している。さらに、図６Ａの１次プロセス空間６００は、クライアントアプリケーション２１２の複数のインスタンスを機能させるためにサーバーアプリケーション２１４も含む。図示される例において、クライアントアプリケーション２１２の３つのインスタンスが示されるが、１次アプリケーション２０６を介して、クライアントアプリケーション２１２の任意の適切な数のインスタンスが起動されてもよい。
【００４３】
図６Ｂは、各々が１次アプリケーション２０６のインスタンスを実行する、２つの別々の１次プロセス空間６０８を有する例示的なマルチユーザー／マルチプロセスアーキテクチャ６０２を図示する。示されるように、マルチユーザー／マルチプロセスアーキテクチャ６０２は、例示的なアウトオブプロセスサーバーアーキテクチャ６０４も含み、サーバーアプリケーション２１４は、１次プロセス空間６０８とは別であるサーバープロセス空間６１０において実行される。１次アプリケーション２０６の２つのインスタンスだけが示されるが、本明細書に記載のマルチクライアント／マルチプロセスアーキテクチャ６０２によって、任意の適切な数の１次アプリケーション２０６が実装されてもよい。同様に、１つのアウトオブプロセスサーバーアーキテクチャ６０４だけが示されるが、個別のサーバーアプリケーション２１４を含む任意の適切な数のサーバープロセス空間６１０が実装されてもよい。
【００４４】
図６Ａと６Ｂとの間の重要な違いは、図６Ｂのサーバーアプリケーション２１４は、サーバープロセス空間６１２においてアウトオブプロセスで実行される独立実行可能（ＥＸＥ）ファイルであってもよいが、図６Ａのサーバーアプリケーション２１４は、１次アプリケーション２０６とのインプロセスで実行される動的リンクライブラリ（ＤＬＬ）ファイルであってもよいことである。他の点では、プロセス空間アーキテクチャ６００および６０２は、同じ様式での異なるアプリケーション機能である。例えば、プロセス空間アーキテクチャ（図６Ａまたは図６Ｂに従うか）に関係なく、１次アプリケーション２０６の１つ以上のインスタンスの各々、クライアントアプリケーション２１２の１つ以上のインスタンスの各々、サーバーアプリケーション２１４の１つ以上のインスタンスの各々は、図４および５に関して上記と同じ様式で通信および／または相互作用するためにインターフェース関係を確立する。
【００４５】
異なるプロセス空間アーキテクチャ６００および６０２は、プロセス空間アーキテクチャ６００および６０２が実装される特定のアプリケーションおよび条件に応じて使用されてもよい、異なる利点を提供する。例えば、図６Ａの例示的なシングルユーザー／シングルプロセスアーキテクチャ６００は、同じプロセス空間（すなわち、１次プロセス空間６０８）に存在するため、１次アプリケーション２０６とクライアントアプリケーション２１２との間の通信性能を向上するように、シングルプロセス空間内で有利に実行される。しかしながら、図６Ａの例示的なアーキテクチャ６００のサーバーアプリケーション２１４が誤動作すると、同じプロセス空間（すなわち、１次プロセス空間６０８）に存在するため、１次アプリケーション２０６も誤動作する。対照的に、図６Ｂの例示的なマルチユーザー／マルチプロセスアーキテクチャ６０２は、その独自のプロセス空間にサーバーアプリケーション２１４を配置することによって、この問題を軽減する。したがって、マルチユーザー／マルチプロセスアーキテクチャ６０２において実装された場合、サーバーアプリケーション２１４が誤動作すると、異なるプロセス空間（すなわち、１次プロセス空間６０８）で稼動しているため、１次アプリケーション２０６に影響を与えない。さらに、マルチクライアント／マルチプロセスアーキテクチャ６０２の利点は、サーバーアプリケーション２１４が複数のユーザーにサービスできることである（例えば、図１および／または２に記載の別々のオペレータステーション１０４）。
【００４６】
図６Ｃは、図６Ｂのマルチクライアント／マルチプロセスアーキテクチャ６０２内に実装されてもよい、代替の例示的なアウトオブプロセスサーバーアーキテクチャ６０６を図示する。図示されるように、サーバーアプリケーション２１４は、実行可能ラッパー（例えば、サーバーアプリケーションラッパー６１２）内に配置されるＤＬＬファイルであってもよい。この様式において、サーバーアプリケーション２１４は、ＤＬＬファイルとして、サーバーアプリケーションラッパー６１２とともにインプロセスで稼動し、サーバーアプリケーションラッパー６１２（ＥＸＥファイル）は、別のサーバープロセス空間６１０において図６Ｃに示される１次プロセス空間６０８に関して、アウトオブプロセスで稼動する。このため、図６Ａのシングルユーザー／シングルプロセスアーキテクチャ６００および図６Ｂのマルチクライアント／マルチプロセスアーキテクチャ６０２は、マルチクライアント／マルチプロセスアーキテクチャ６０２のサーバーアプリケーションラッパー６１２内にサーバーアプリケーション２１４を配置することによって、同じファイル形式（すなわち、ＤＬＬ）を有するサーバーアプリケーション２１４を含めて実装されてもよい。
【００４７】
図７は、図５の例示的なソフトウェアアーキテクチャ５００、図６Ａ〜６Ｃの例示的なプロセス空間アーキテクチャ６００および６０２、および／またはより一般的には、図１および／または２の例示的なオペレータステーションを実装するために実行されてもよい、例示的なプロセスを表すフローチャートである。より具体的には、図７の例示的プロセスは、図８を参照して以下に記載する例示的コンピュータ８００内に示されるプロセッサ８１２等のプロセッサによって実行するためのプログラムを含む機械可読命令の表現であってもよい。プログラムは、プロセッサ８１２と関連付けられたＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、ＢｌｕＲａｙディスク、またはメモリ等、有形のコンピュータ可読媒体上に記憶されるソフトウェアに具現化されてもよい。代替として、図７の例示的なプロセスの一部または全ては、特定用途向け集積回路（複数可）（ＡＳＩＣ（複数可））、プログラマブルロジックデバイス（複数可）（ＰＬＤ（複数可））、フィールドプログラマブルロジックデバイス（複数可）（ＦＰＬＤ（複数可））、離散ロジック、ハードウェア、ファームウェア等の任意の組み合わせ（複数可）を使用して実装されてもよい。また、図７の例示的な動作の１つ以上は、手動で、または例えば、ファームウェア、ソフトウェア、離散ロジックおよび／またはハードウェアの任意の組み合わせという、前述の技法のうちの任意の組み合わせ（複数可）として実装されてもよい。さらに、例示的なプロセスは、図７に図示されるフローチャートを参照して説明されるが、図５の例示的なソフトウェアアーキテクチャ５００、図６Ａ〜６Ｃの例示的なプロセスアーキテクチャ６００および６０２、および／または図１および／または２の例示的なオペレータステーション１０４を実装する多数の他の方法が、代替として使用されてもよい。例えば、ブロックの実行順序が変更されてもよく、および／あるいは記載されるブロックのうちのいくつかが変更、排除、または組み合わされてもよい。加えて、図７の例示的なプロセスのうちの任意または全ては、例えば、個別の処理スレッド、プロセッサ、デバイス、離散ロジック、回路等によって、順次および／または並列に実施されてもよい。
【００４８】
前述のように、図７の例示的プロセスは、情報が任意の期間（例えば、長期間、永久、短期間、一時的バッファ、および／または情報のキャッシュ）にわたって記憶されるハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）、および／または任意の他の記憶媒体等、有形のコンピュータ可読媒体上に記憶されるコード化された命令（例えば、コンピュータ可読命令）を使用して実装されてもよい。本明細書に使用される場合、有形のコンピュータ可読媒体という用語は、任意の種類のコンピュータ可読記憶を含め、伝播信号を除外するために明示的に定義される。加えて、または代替として、図７の例示的プロセスは、情報が任意の期間（長期間、永久、短期間、一時バッファ、および／または情報のキャッシュ）にわたって記憶される、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、および／または任意の他の記憶媒体等、非一時的なコンピュータ可読媒体上に記憶されるコード化された命令（例えば、コンピュータ可読命令）を使用して実装されてもよい。本明細書に使用される場合、非一時的コンピュータ可読媒体という用語は、任意の種類のコンピュータ可読媒体を含み、伝播信号を排除するために明示的に定義される。本明細書に使用される場合、「少なくとも」という語句は、請求項の前置きの推移語句として使用される場合、「含む」という語句に制限がないのと同じ様式で制限がない。このため、その前置きに推移語句として「少なくとも」を使用する請求項は、請求項に明示的に記載される要素に加えて要素を含むことができる。
【００４９】
図７の例示的なプロセスは、ブロック７００で開始し、２次アプリケーション２１０（図２）が、１次アプリケーション２０６（図２）からの２次アプリケーション２１０のコンポーネント（複数可）を実行するリクエスト（複数可）を受信する。図２の図示される例に示されるように、２次アプリケーション２１０は、クライアントアプリケーション部２１２と、サーバーアプリケーション部２１４とを含む。さらに、２次アプリケーション２１０のコア機能コンポーネント４１０（図５）および／またはコアユーザーインターフェースコンポーネント４１２（図５）は、サーバーアプリケーション２１４内に存在してもよく、アプリケーションインターフェースコンポーネント４１４（図５）は、１次アプリケーション２０６と相互作用するために、クライアントアプリケーション２１２のインスタンス内に存在してもよい。したがって、ブロック７０２で、１次アプリケーション２０６とクライアントアプリケーション２１２のインスタンス（複数可）との間のインターフェースが確立される。具体的には、クライアントアプリケーション２１２のインスタンスは、１次アプリケーション２０６によって起動されると、メモリ２０２（図２）内にインスタンス化される。クライアントアプリケーション２１２のインスタンスおよび１次アプリケーション２０６は、クライアントアプリケーション２１２内のアプリケーションインターフェースコンポーネント４１４、および１次アプリケーション２０６の対応するアプリケーションインターフェースコンポーネントを介して関係を確立する。特に、１次アプリケーション２０６は、１次ユーザーインターフェース４０２内のフレーム４０８（図５）に対するポインタをクライアントアプリケーション２１２に提供してもよく、２次アプリケーション２１０の対応する２次ユーザーインターフェース（例えば、図５の２次ユーザーインターフェース４０６ａ〜ｂ）がレンダリングされてもよい。
【００５０】
１次アプリケーション２０６によってリクエストされたコンポーネント（複数可）を実行するために、クライアントアプリケーション２１２のインスタンスは、サーバーアプリケーション２１４がリクエストされたコンポーネント（複数可）を含むために、サーバーアプリケーション２１４との接続を確立することを模索してもよい。このために、図７のプロセスは、サーバーアプリケーション２１４がクライアントアプリケーション２１２の別のインスタンスのために既にインスタンス化されているかを判定する（ブロック７０４）。サーバーアプリケーション２１４がクライアントアプリケーション２１２の任意の他のインスタンスによって起動されていない場合、サーバーアプリケーションがインスタンス化される（ブロック７０６）。サーバーアプリケーション２１４がインスタンス化されると、クライアントアプリケーション２１２は、サーバーアプリケーション２１４とのインターフェースを確立する（ブロック７０８）。しかし、図７の例示的なプロセス中に、サーバーアプリケーション２１４が既にインスタンス化されていたと判定された場合（ブロック７０４）、制御はブロック７０８に直接進み、クライアントアプリケーション２１２のインスタンスが、既にインスタンス化されていたサーバーアプリケーション２１４とのインターフェースを確立する。クライアントアプリケーション２１２のインスタンスとサーバーアプリケーション２１４との間のインターフェースは、クライアントアプリケーション２１２と１次アプリケーション２０６との間のインターフェースに類似する。すなわち、クライアントアプリケーション２１２は、クライアントアプリケーション２１２のアプリケーションインターフェースコンポーネント４１４、およびサーバーアプリケーション２１４内の対応するインターフェースコンポーネントを介して、サーバーアプリケーション２１４と接続する。サーバーアプリケーション２１４は次いで、サーバーアプリケーション２１４とのインターフェースを既に確立していたクライアントアプリケーション２１２の任意の他のインスタンスと共にクライアントアプリケーションのインスタンスを機能させてもよい。
【００５１】
ブロック７１０で、クライアントアプリケーション２１２のインスタンスは、１次アプリケーションから受信されたポインタをサーバーアプリケーションと共有してもよい。この様式において、クライアントアプリケーション２１２のインスタンスに対応する２次ユーザーインターフェース（例えば、図５の２次ユーザーインターフェース４０６ａ〜ｂ）は、１次ユーザーインターフェース２１０のフレーム４０８に直接送信されてもよい。図７の例示的なプロセスは次いでブロック７１２に進み、サーバーアプリケーション２１４は、サーバーアプリケーション２１４が機能させているクライアントアプリケーション２１２のインスタンスと関連付けられた２次ユーザーインターフェースを生成する。サーバーアプリケーション２１４は、サーバーアプリケーション２１４内に含まれる機能コンポーネント４１０のうちの任意または全て、および／またはサーバーアプリケーション２１４内に含まれるユーザーインターフェースコンポーネント４１２のうちの任意または全てを実行することによって、２次ユーザーインターフェースを生成するためにデータを判定してもよい。サーバーアプリケーション２１４はまた、１次ユーザーインターフェース２０６を介して行われた追加のユーザー入力に基づいて、２次ユーザーインターフェースのコンテンツを判定してもよい。サーバーアプリケーション２１４は、クライアントアプリケーションのインスタンスによって共有されるポインタを介して、クライアントアプリケーション２１２のインスタンスと関連付けられた生成された２次ユーザーインターフェースを１次アプリケーション２０６へ送信する（ブロック７１４）。２次ユーザーインターフェースが１次アプリケーション２０６に提供されると、１次アプリケーション２０６は、１次ユーザーインターフェース２０８のフレーム４０８内に２次ユーザーインターフェースをレンダリングしてもよい。
【００５２】
図７の例示的なプロセスは、次いで、クライアントアプリケーション２１２のインスタンスがサーバーアプリケーション２１２を使用して終了されるかを判定する（ブロック７１６）。クライアントアプリケーション２１２のインスタンスがまだサーバーアプリケーション２１４を使用している場合、制御はブロック７１２および７１４に戻り、サーバーアプリケーション２１４は、引き続き、クライアントアプリケーション２１２のインスタンスのために２次ユーザーインターフェースを生成する。しかし、クライアントアプリケーション２１２のインスタンスがサーバーアプリケーション２１４を使用することを終了した場合、クライアントアプリケーション２１２とサーバーアプリケーション２１４との間のインターフェースはドロップされる（ブロック７１８）。図７の例示的なプロセスは、次いで、クライアントアプリケーション２１２の他のインスタンスがサーバーアプリケーション２１４とまだインターフェースしているかを判定する（ブロック７２０）。インターフェースしている場合、制御はブロック７１２および７１４に戻り、サーバーアプリケーション２１４は、クライアントアプリケーション２１２の他のインスタンス（複数可）を引き続き機能させる。サーバーアプリケーションを使用しているクライアントアプリケーション２１２の他のインスタンスがない場合、制御はブロック７２２に進み、例示的なプロセスは、１次アプリケーション２０６からの２次アプリケーション２１０のコンポーネント（複数可）を実行する新しいリクエストを待機するかを判定する。待機する場合、制御はブロック７００に戻り、図７の例示的なプロセスが繰り返されてもよい。図７のプロセスが、１次アプリケーション２０６からの追加のリクエストを待機しないと判定した場合、プロセスは終了する。
【００５３】
図８は、図７の例示的なプロセスを実行するために、および／または、より具体的には、図５のソフトウェアアーキテクチャ５００、図６Ａ〜６Ｃの例示的なプロセス空間アーキテクチャ６００および６０２、および／または図１および／または２の例示的なオペレータステーション１０４を実装するために、使用および／またはプログラムされてもよい、例示的なコンピュータ８００の模式図である。インスタント例のシステム８００は、プロセッサ８１２を含む。例えば、プロセッサ８１２は、任意の所望のファミリまたは製造元の１つ以上のマイクロプロセッサまたはコントローラによって実装することができる。
【００５４】
プロセッサ８１２は、ローカルメモリ８１３（例えば、キャッシュ）を含み、揮発性メモリ８１４および不揮発性メモリ８１６を含むメインメモリと、バス８１８を介して通信状態にある。揮発性メモリ８１４は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ＲＡＭＢＵＳダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）、および／または任意の他の種類のランダムアクセスメモリデバイスによって実装されてもよい。不揮発性メモリ８１６は、フラッシュメモリおよび／または任意の他の所望の種類のメモリデバイスによって実装されてもよい。メインメモリ８１４および８１６へのアクセスは、メモリコントローラによって制御される。
【００５５】
コンピュータ８００は、インターフェース回路８２０も含む。インターフェース回路８２０は、イーサネットインターフェース、ユニバーサルシリアルバス（ＵＳＢ）、および／またはＰＣＩエクスプレスインターフェース等、任意の種類のインターフェース規格によって実装されてもよい。インターフェース回路８２０には、１つ以上の入力デバイス８２２が接続される。入力デバイス８２２（複数可）は、ユーザーが、プロセッサ８１２へデータおよびコマンドを入力することを可能にする。入力デバイス（複数可）は、例えば、キーボード、マウス、タッチ画面、トラックパッド、トラックボール、イソポイント、および／または音声認識システムによって実装することができる。インターフェース回路８２０には、１つ以上の出力デバイス８２４も接続される。出力デバイス８２４は、例えば、ディスプレイデバイス（例えば、液晶ディスプレイ、ブラウン管ディスプレイ（ＣＲＴ）、プリンタ、および／またはスピーカーによって、実装することができる。このため、インターフェース回路８２０は、典型的に、グラフィックスドライバカードを含む。
【００５６】
インターフェース回路８２０は、ネットワーク８２６（例えば、イーサネット接続、デジタルサブスクライバライン（ＤＳＬ）、電話線、同軸ケーブル、セルラー電話システム等）を介して、外部のコンピュータとのデータの交換を促進するために、モデムまたはネットワークインターフェースカード等、通信デバイスも含む。
【００５７】
コンピュータ８００は、ソフトウェアおよびデータを記憶するための１つ以上の大容量記憶デバイス８２８も含む。このような大容量記憶デバイス８２８の例として、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、およびデジタル多用途ディスク（ＤＶＤ）ドライブが挙げられる。
【００５８】
図７の例示的なプロセスを実装するためにコーディングされた命令８３２は、大容量記憶デバイス８２８、揮発性メモリ８１４、不揮発性メモリ８１６、および／あるいはＣＤまたはＤＶＤ等のリムーバブル記憶媒体に記憶されてもよい。
【００５９】
本明細書には所定の例示的な方法、装置、および製造物品が記載されるが、本特許の対象範囲は、これらに限定されない。このような例は、非限定的な記載例であることが意図される。そうではなく、本特許は、文言上または均等論の下で添付の請求項の正当な範囲内である、全ての方法、装置、および製造物品を網羅する。
【図１】
2015510204.tif 000003
【図２】
2015510204.tif 000004
【図３】
2015510204.tif 000005
【図４Ａ】
2015510204.tif 000006
【図４Ｂ】
2015510204.tif 000007
【図５】
2015510204.tif 000008
【図６Ａ】
2015510204.tif 000009
【図６Ｂ】
2015510204.tif 000010
【図６Ｃ】
2015510204.tif 000011
【図７】
2015510204.tif 000012
【図８】
2015510204.tif 000013
【国際調査報告】
2015510204.tif 000014
2015510204.tif 000015
2015510204.tif 000016