(57)【要約】  コントローラ（１０４ａ〜１０４ｂ）は、処理環境（１００）内のプロセス要素（１０２ａ〜１０２ｂ）を制御するためのアプリケーションを実行することが可能な実行環境（２００）を含む。コントローラ（１０４ａ〜１０４ｂ）はまた、実行環境（２００）内での実行が可能なウェブサーバ（２２２）を含む。ウェブサーバ（２２２）はまた、Ｗｅｂブラウザ上に表示するために、ネットワーク（１１０、１１４ａ〜１１４ｂ）全体に、コントローラ（１０４ａ〜１０４ｂ）及びプロセス要素（１０２ａ〜１０２ｂ）の少なくとも１つに関連付けられた情報を提供することにより、直接ウェブアクセスをコントローラ（１０４ａ〜１０４ｂ）に提供することが可能である。情報は、ウェブページ（３０２）に埋め込まれたグラフィカルイメージ（３０４〜３０６）の形態で、又はウェブサービス、ウェブフォーム、又はスマートクライアントアプリケーションを使用して提供される。また、ウェブサーバ（２２２）は、実行環境（２００）内の背景タスクとして実行される。実行環境（２００）とは、決定的実行環境であり、アプリケーションとは、リアルタイムアプリケーションである。
2009501968.tif 000002
【特許請求の範囲】
【請求項１】
処理環境（１００）内のプロセス要素（１０２〜１０２ｂ）を制御するためのアプリケーションを実行することが可能な実行環境（２００）と、
前記実行環境（２００）内での実行が可能なウェブサーバ（２２２）とを含むコントローラ（１０４ａ〜１０４ｂ）であって、
前記ウェブサーバ（２２２）がまた、Ｗｅｂブラウザ上に表示するために、ネットワーク（１１０、１１４ａ〜１１４ｂ）上で、前記コントローラ（１０４ａ〜１０４ｂ）及び前記プロセス要素（１０２ａ〜１０２ｂ）の少なくとも１つに関連付けられた情報を提供することにより、直接ウェブアクセスを前記コントローラ（１０４ａ〜１０４ｂ）に提供することが可能である
コントローラ（１０４ａ〜１０４ｂ）。
【請求項２】
前記ウェブサーバ（２２２）が、前記実行環境（２００）内の背景タスクとして実行されることが可能である請求項１に記載のコントローラ（１０４ａ〜１０４ｂ）。
【請求項３】
前記ウェブサーバ（２２２）が、
前記コントローラ（１０４ａ〜１０４ｂ）及び前記プロセス要素（１０２ａ〜１０２ｂ）の少なくとも１つに関連付けられた情報の少なくともいくつかを含むグラフィカルイメージ（３０４〜３０６）を生成することにより、及び
前記グラフィカルイメージ（３０４〜３０６）を有するウェブページ（３０２）を前記ネットワーク（１１０、１１４ａ〜１１４ｂ）上で前記Ｗｅｂブラウザに提供することにより、
前記情報を提供することが可能である請求項１に記載のコントローラ（１０４ａ〜１０４ｂ）。
【請求項４】
前記ウェブサーバ（２２２）が、ハイパーテキスト転送プロトコルサーバを含み、
前記グラフィカルイメージ（３０４〜３０６）が、ジェイペグイメージを含み、
前記ウェブページ（３０２）が、ハイパーテキストマークアップ言語ウェブページを含む請求項３に記載のコントローラ（１０４ａ〜１０４ｂ）。
【請求項５】
前記ウェブサーバ（２２２）が、前記Ｗｅｂブラウザと組み合わせた、ウェブサービス、ウェブフォーム、及びスマートクライアントアプリケーションの１つ以上を使用して、前記ネットワーク（１１０、１１４ａ〜１１４ｂ）上でユーザとインタラクトすることにより、前記情報を提供することが可能である請求項１に記載のコントローラ（１０４ａ〜１０４ｂ）。
【請求項６】
前記実行環境（２００）が、決定的実行環境を含み、
前記アプリケーションが、リアルタイムアプリケーションを含む請求項１に記載のコントローラ（１０４ａ〜１０４ｂ）。
【請求項７】
コントローラ（１０４ａ〜１０４ｂ）内の実行環境（２００）において、処理環境（１００）内のプロセス要素（１０２ａ〜１０２ｂ）を制御するためのアプリケーションを実行するステップと、
前記実行環境（２００）においてウェブサーバ（２２２）を実行するステップと、
前記ウェブサーバ（２２２）を使用して、直接ウェブアクセスを前記コントローラ（１０４ａ〜１０４ｂ）に提供するステップと
を含む方法であって、
前記直接ウェブアクセスを提供するステップが、Ｗｅｂブラウザ上に表示するために、ネットワーク（１１０、１１４ａ〜１１４ｂ）上で、前記コントローラ（１０４ａ〜１０４ｂ）及び前記プロセス要素（１０２ａ〜１０２ｂ）の少なくとも１つに関連付けられた情報を提供するステップを含む方法。
【請求項８】
前記ウェブサーバ（２２２）を実行するステップが、前記実行環境（２００）内の背景タスクとして前記ウェブサーバ（２２２）を実行するステップを含む請求項７に記載の方法。
【請求項９】
前記実行環境（２００）が、決定的実行環境を含み、
前記アプリケーションが、リアルタイムアプリケーションを含む請求項１０に記載の方法。
【請求項１０】
コンピュータ読取可能記憶媒体上に具現化され、かつプロセッサによって実行されるよう動作可能なコンピュータプログラムであって、
コントローラ（１０４ａ〜１０４ｂ）内の実行環境（２００）において、処理環境（１００）内のプロセス要素（１０２ａ〜１０２ｂ）を制御するためのアプリケーションを実行し、
前記実行環境（２００）内のウェブサーバ（２２２）を実行する
ためのコンピュータ読取可能プログラムコードを有し、
前記ウェブサーバ（２２２）が、ネットワーク（１１０、１１４ａ〜１１４ｂ）上で、前記コントローラ（１０４ａ〜１０４ｂ）及び前記プロセス要素（１０２ａ〜１０２ｂ）の少なくとも１つに関連付けられた情報を提供することにより、直接ウェブアクセスを前記コントローラ（１０４ａ〜１０４ｂ）に提供することが可能であるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に制御システムに関し、、より詳細には、プロセス制御環境において直接ウェブアクセスをコントローラに提供するシステム及び方法に関する。
【０００２】
本出願は、以下の特許出願、即ち、
「ヒープメモリの決定的ガーベジコレクションのための装置及び方法（ＡＰＰＡＲＡＴＵＳ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＤＥＴＥＲＭＩＮＩＳＴＩＣ  ＧＡＲＢＡＧＥ  ＣＯＬＬＥＣＴＩＯＮ  ＯＦ  Ａ  ＨＥＡＰ  ＭＥＭＯＲＹ）」と題された、米国特許出願第  ／  ，  号明細書「整理番号第Ｈ０００６９２２」（    日出願）、及び
「決定的ランタイム実行環境及び方法（ＤＥＴＥＲＭＩＮＩＳＴＩＣ  ＲＵＮＴＩＭＥ  ＥＸＥＣＵＴＩＯＮ  ＥＮＶＩＲＯＮＭＥＮＴ  ＡＮＤ  ＭＥＴＨＯＤ）」と題された、米国特許出願第  ／  ，  号明細書「整理番号第Ｈ０００６８７９」（    日出願）
に関するものであり、これらの両方が参照により本明細書に援用される。
【背景技術】
【０００３】
処理設備は、通常、プロセス制御システムを使用して管理されている。これらの制御システムは、数ある機能の中で、処理設備内の、モータ、接触分解器、バルブ、及び他の工業機器の使用を管理することが多々ある。処理設備の例には、製造プラントと、化学プラントと、原油製油所と、鉱石処理プラントとが含まれる。これらの設備において、工業機器は、通常、処理設備内で材料を処理する必要のある作業を遂行する。
【０００４】
従来のプロセス制御システムにおいて、様々なコントローラが、処理設備内のモータ及び他の工業機器のオペレーションを制御するのに使用されている。コントローラは、たとえば、工業機器のオペレーションを監視し、制御信号を工業機器に提供し、工業機器が誤動作した場合には警報を生成する。従来のコントローラには、通常、ユーザが従来のコントローラとインタラクト（相互作用）できるようにするための、簡単かつ容易にアクセス可能なユーザインターフェースがない。その上、ユーザインターフェースを提供するためのプログラムを実行すると、従来のコントローラによって遂行される他のオペレーションを妨げる恐れがある。これは、たとえば、ユーザインターフェースプログラムの実行がリアルタイム制御アプリケーションの実行を妨げる場合である。
【発明の開示】
【課題を解決するための手段】
【０００５】
本開示は、プロセス制御環境において直接ウェブアクセスをコントローラに提供するシステム及び方法を提供する。
【０００６】
一実施形態において、コントローラは、処理環境内のプロセス要素を制御するためのアプリケーションを実行することが可能な実行環境を含む。コントローラはまた、実行環境内での実行が可能なウェブサーバを含む。ウェブサーバはまた、Ｗｅｂブラウザ上に表示するためにネットワーク上でコントローラ及びプロセス要素の少なくとも１つに関連付けられた情報を提供することにより、直接ウェブアクセスをコントローラに提供することが可能である。
【０００７】
特定の実施形態において、情報は、ウェブページに埋め込まれたグラフィカルイメージの形態で、又はウェブサービス、ウェブフォーム、又はスマートクライアントアプリケーションを使用して提供される。また、ウェブサーバは実行環境内の背景タスクとして実行されるが、実行環境とは決定的実行環境であり、アプリケーションとはリアルタイムアプリケーションである。
【０００８】
当業者には、図面、以下の説明、及び特許請求の範囲より、他の技術的な特徴が容易に明らかとなろう。
【発明を実施するための最良の形態】
【０００９】
図１は、本開示の一実施形態のプロセス制御システム１００の例を示している。図１に示されているプロセス制御システム１００の実施形態は、あくまで例示である。プロセス制御システム１００の他の実施形態が、本開示の範囲から逸脱することなく使用可能である。
【００１０】
この実施形態の例において、プロセス制御システム１００は、１つ以上のプロセス要素１０２ａ〜１０２ｂを含む。プロセス要素１０２ａ〜１０２ｂとは、多様な機能の任意のものを遂行する処理環境内の構成要素である。たとえば、プロセス要素１０２ａ〜１０２ｂとは、処理環境内の、モータ、接触分解器、バルブ、及び他の工業機器である。プロセス要素１０２ａ〜１０２ｂは、任意の好適な処理環境内の任意の他の即ち別の構成要素であってもよい。プロセス要素１０２ａ〜１０２ｂのそれぞれが、処理環境内の１つ以上の機能を遂行するための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。本明細書において、「プロセス要素」という語句は、処理環境内の１つ以上の材料を操作する、改変する、或いは処理するために、１つ以上の機能を遂行することが可能な、任意の構成要素、デバイス、又はシステムを指す。また、「処理環境」という語句は、製造プラント又は生産プラント又は他の設備を含む、１つ以上の材料を操作する、改変する、或いは処理する、１つ以上の処理要素の集合を指す。
【００１１】
２つのコントローラ１０４ａ〜１０４ｂが、プロセス要素１０２ａ〜１０２ｂに結合される。本明細書において、「結合する」という用語及びその派生語は、２つ以上の要素が互いに物理的に接触しているかどうかにかかわらず、これらの要素間の任意の直接又は間接的な通信関係を指す。コントローラ１０４ａ〜１０４ｂは、プロセス要素１０２ａ〜１０２ｂのオペレーションを制御する。たとえば、コントローラ１０４ａ〜１０４ｂは、制御信号をプロセス要素１０２ａ〜１０２ｂに周期的に提供することが可能である。特定の例として、プロセス要素がモータである場合、コントローラ１０４ａ〜１０４ｂの１つが、１ミリ秒毎に一回ずつ制御情報をモータに提供する。コントローラ１０４ａ〜１０４ｂのそれぞれが、プロセス要素１０２ａ〜１０２ｂの１つ以上を制御するための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。コントローラ１０４ａ〜１０４ｂとは、たとえば、Ｃ３００コントローラである。
【００１２】
２つのサーバ１０６ａ〜１０６ｂが、コントローラ１０４ａ〜１０４ｂに結合される。サーバ１０６ａ〜１０６ｂは、オペレーションをサポートし、コントローラ１０４ａ〜１０４ｂ及びプロセス要素１０２ａ〜１０２ｂを制御するための、様々な機能を遂行する。たとえば、サーバ１０６ａ〜１０６ｂは、プロセス要素１０２ａ〜１０２ｂのオペレーションに関係するステータス情報などの、コントローラ１０４ａ〜１０４ｂによって収集された又は生成された情報を、時間を追って記録する。サーバ１０６ａ〜１０６ｂはまた、コントローラ１０４ａ〜１０４ｂのオペレーションを制御するアプリケーションを実行し、これにより、プロセス要素１０２ａ〜１０２ｂのオペレーションを制御する。その上、サーバ１０６ａ〜１０６ｂは、安全なアクセスをコントローラ１０４ａ〜１０４ｂに提供する。サーバ１０６ａ〜１０６ｂのそれぞれが、コントローラ１０４ａ〜１０４ｂへのアクセスを提供する又はこれを制御するための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。サーバ１０６ａ〜１０６ｂとは、たとえば、マイクロソフト社のＷＩＮＤＯＷＳ２０００を実行するパーソナルコンピュータ（デスクトップコンピュータなど）である。本明細書において、「アプリケーション」という用語は、好適なコンピュータ言語で実施されるよう適応された、１つ以上のコンピュータプログラム、数組の命令、手順、機能、オブジェクト、クラス、インスタンス、又は関連データを指す。
【００１３】
１つ以上のオペレータステーション１０８ａ〜１０８ｂが、サーバ１０６ａ〜１０６ｂに結合される。オペレータステーション１０８ａ〜１０８ｂとは、ユーザアクセスをサーバ１０６ａ〜１０６ｂに提供し、次いでユーザアクセスをコントローラ１０４ａ〜１０４ｂ及びプロセス要素１０２ａ〜１０２ｂに提供することができる計算デバイス又は通信デバイスである。たとえば、オペレータステーション１０８ａ〜１０８ｂは、ユーザが、コントローラ１０４ａ〜１０４ｂ及びサーバ１０６ａ〜１０６ｂによって収集された情報を使用して、プロセス要素１０２ａ〜１０２ｂの運用履歴を検討できるようにする。オペレータステーション１０８ａ〜１０８ｂはまた、ユーザが、プロセス要素１０２ａ〜１０２ｂ、コントローラ１０４ａ〜１０４ｂ、又はサーバ１０６ａ〜１０６ｂのオペレーションを調整できるようにする。オペレータステーション１０８ａ〜１０８ｂのそれぞれが、ユーザアクセスをサポートし、システム１００を制御するための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。オペレータステーション１０８ａ〜１０８ｂとは、たとえば、マイクロソフト社のＷＩＮＤＯＷＳ９５、ＷＩＮＤＯＷＳ２０００、又はＷＩＮＤＯＷＳ  ＮＴを実行するパーソナルコンピュータである。
【００１４】
この例では、オペレータステーション１０８ｂの少なくとも１つが遠隔ステーションである。遠隔ステーションは、ネットワーク１１０を通じてサーバ１０６ａ〜１０６ｂに結合される。ネットワーク１１０は、システム１００内の様々な構成要素間の通信を容易にする。たとえば、ネットワーク１１０は、ネットワークアドレス間で、インターネットプロトコル（ＩＰ）パケット、フレームリレーフレーム、非同期転送モード（ＡＴＭ）セル、又は他の好適な情報を通信することがある。ネットワーク１１０は、１つ以上のローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットなどのグローバルネットワークのすべて又は一部、又は１つ以上の場所における他の任意の通信システムを含むことがある。
【００１５】
この例では、システム１００は、２つのさらなるサーバ１１２ａ〜１１２ｂを含む。サーバ１１２ａ〜１１２ｂは、システム１００の全オペレーションを制御するための様々なアプリケーションを実行する。たとえば、システム１００は、処理又は生産プラント又は他の設備において使用され、サーバ１１２ａ〜１１２ｂは、プラント又は他の設備を制御するのに使用されるアプリケーションを実行する。特定の例として、サーバ１１２ａ〜１１２ｂは、企業全体リソース管理計画（ＥＲＰ）、製造実行システム（ＭＥＳ）、又は任意の他の即ち別のプラント又はプロセス制御アプリケーションなどの、アプリケーションを実行する。サーバ１１２ａ〜１１２ｂのそれぞれが、システム１００の全オペレーションを制御するための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。
【００１６】
図１に示されているように、システム１００は、システム１００内の構成要素間の通信をサポートする、様々な冗長ネットワーク１１４ａ〜１１４ｂと単一ネットワーク１１６ａ〜１１６ｂとを含む。これらのネットワーク１１４ａ〜１１４ｂ、１１６ａ〜１１６ｃのそれぞれが、システム１００内の構成要素間の通信を容易にする、任意の好適なネットワーク又はネットワークの組合せである。ネットワーク１１４ａ〜１１４ｂ、１１６ａ〜１１６ｃは、たとえば、イーサネットネットワークである。
【００１７】
オペレーションの一態様において、コントローラ１０４ａ〜１０４ｂの１つ以上が、実行環境へのアクセスを実行し、サポートし、或いは提供する。実行環境は、実行中にアプリケーションが使用する様々な機能をサポートする。たとえば、実行環境は、アプリケーションによって使用される、数学的関数、入力／出力関数、及び通信関数をサポートする。実行環境はまた、アセンブリコードのコンパイル、ヒープメモリの管理、及び任意の他の即ち別の機能をサポートすることができる。本明細書において、「管理対象アプリケーション(managed application)」という語句は、実行環境内で実行されるアプリケーションを指す。管理対象アプリケーションは、たとえば、システム１００内のプロセス要素１０２ａ〜１０２ｂを制御するための、コントローラ１０４ａ〜１０４ｂによって実行されるリアルタイムアプリケーションを含む。リアルタイムアプリケーションは、外部環境とインタラクトするか、或いは注意深く時間調整された形で動作するプログラムである。
【００１８】
いくつかの実施形態において、管理対象アプリケーションを実行するためにコントローラ１０４ａ〜１０４ｂ内で使用される実行環境は、決定的である。決定的実行環境とは、その挙動が予測可能であるか又は正確に指定可能な実行環境である。実行環境の実施形態の一例が図２に示されており、以下、これについて説明する。また、実行環境の例のさらなる詳細が、「決定的ランタイム実行環境及び方法（ＤＥＴＥＲＭＩＮＩＳＴＩＣ  ＲＵＮＴＩＭＥ  ＥＸＥＣＵＴＩＯＮ  ＥＮＶＩＲＯＮＭＥＮＴ  ＡＮＤ  ＭＥＴＨＯＤ）」と題された、米国特許出願第  ／  ，  号明細書「整理番号第Ｈ０００６８７９」に開示されている。これは、参照により本明細書に援用される。
【００１９】
コントローラ１０４ａ〜１０４ｂへのアクセスを提供するために、コントローラ１０４ａ〜１０４ｂの少なくとも１つが、ウェブサーバを含むか、或いはウェブサーバをサポートする。ウェブサーバは、たとえば、リアルタイム制御アプリケーションの実行を妨げることなく、コントローラ内で実行される背景タスクであってもよい。ウェブサーバにより、コントローラへの直接ウェブベースのユーザアクセスが可能となる。たとえば、オペレータステーション１０８ａ〜１０８ｂを使用するユーザが、標準Ｗｅｂブラウザを使用するコントローラにアクセスできるようになる。このようにして、ユーザは、より容易にコントローラにアクセスし、このオペレーションを制御できるようになる。本明細書において、「直接ウェブアクセス」という語句は、（コントローラなどの）デバイスで直接動作する（埋め込みウェブサーバなどの）ウェブサーバを介するアクセスを指す。これにより、デバイスに関連付けられた要求をそのデバイスにそのまま経路設定できるようになる。
【００２０】
コントローラ１０４ａ〜１０４ｂのそれぞれが、ウェブサーバに関係する、任意の適切なレベルの機能性をサポートする。たとえば、いくつかの実施形態において、コントローラは、グラフィカルイメージを生成し、かつこれをユーザに提供するだけであるウェブサーバを含んでいる。イメージは、たとえば、コントローラ又はそのコントローラによって監視されるプロセス要素のための診断情報を含む。とりわけ、これは、コントローラ又はそのコントローラによって監視されるプロセス要素の非対話型監視を可能にする。特定の例として、コントローラ１０４ａ〜１０４ｂの１つによって実行されるウェブサーバとは、埋め込まれたＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）イメージを含む、ハイパーテキストマークアップ言語（ＨＴＭＬ）ウェブページに供することが可能な、ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバである。
【００２１】
他の実施形態において、コントローラは、コントローラのより十分なユーザインタラクション及び制御を可能にする、より複雑なウェブサーバを含む。たとえば、コントローラ内のウェブサーバは、より複雑な情報及びグラフィックスをユーザと交換できるようにするウェブサービスを提供又はサポートする。特定の例として、コントローラ内のウェブサーバは、オープンな接続性（ＯＰＣ）の拡張マークアップ言語データアクセス（ＸＭＬ−ＤＡ）サービス又はアクティブサーバページネット（ＡＳＰ．Ｎｅｔ）アプリケーションをサポートする。また、コントローラ内のウェブサーバは、（オペレータステーション１０８ａ〜１０８ｂなどの）ユーザデバイスにダウンロードされ、該ユーザデバイスによって実行される、Ｃ＃又はビジュアルベーシックネット（ＶＢ．ＮＥＴ）で書き込まれたアプリケーションなどの、リッチ又はスマートクライアントアプリケーションをサポートする。
【００２２】
特定の実施形態において、コントローラ内のウェブサーバが、ＡＳＰ．Ｎｅｔの使用をサポートする場合、任意のＡＳＰ．Ｎｅｔコンパイル機能が動作不能にされることがある。これらの実施形態において、ＡＳＰ．Ｎｅｔコンパイル機能は、（アセンブリコードなどの）中間言語コードを生成するために、（ユーザのデバイスなど）どこか別の場所で遂行される。次いで、アセンブリコードはコントローラにダウンロードされ、このコントローラが、コントローラのバックグラウンドでそのコードを実行用コードにコンパイルする。このようにして、ＡＳＰ．Ｎｅｔコンパイル機能の性能は、コントローラ内のリアルタイムアプリケーションの実行を妨げず、実行環境がより決定的となることがある。
【００２３】
他の特定の実施形態において、コントローラ内のウェブサーバは、ウィンフォームなどの、リッチ又はスマートクライアントアプリケーションをサポートする。コントローラ自体は、ウィンフォームを理解するのに必要なものではなく、コントローラは、ユーザにウィンフォームを供して、（オペレータステーション１０８ａ〜１０８ｂの１つなどの）ユーザのデバイスが、ウィンフォームに必要なオブジェクトを生成できるようにする。
【００２４】
コントローラ１０４ａ〜１０４ｂの１つ以上にウェブサーバを備えることにより、ユーザは、より容易にコントローラ１０４ａ〜１０４ｂにアクセスすることが可能となる。たとえば、ユーザは、任意の好適なネットワーク化されたコンピュータ又は他のユーザデバイスを使用して、コントローラ１０４ａ〜１０４ｂに直接アクセス可能である。また、コントローラ１０４ａ〜１０４ｂは、標準Ｗｅｂブラウザを使用してアクセス可能である。その上、ウェブサーバは、動的ＨＴＭＬ、ウェブフォーム、及びスマートクライアントウィンフォームを含む、任意の静的又は動的コンテンツをユーザに提供することができる。
【００２５】
図１は、プロセス制御システム１００の一例を示しているが、図１に対して様々な変更が行われることがある。たとえば、制御システムは、任意の数のプロセス要素、コントローラ、サーバ、及びオペレータステーションを含むことができる。また、図１は、ウェブサーバをサポートする１つ以上のコントローラが使用可能な１つの動作環境を示している。コントローラは、他の任意の好適なデバイス又はシステム内でも使用可能である。
【００２６】
図２は、本開示の一実施形態のプロセス制御システムにおいて直接ウェブアクセスをコントローラに提供する実行環境２００の例を示している。図２に示されている実行環境２００の実施形態は、あくまで例示である。実行環境の他の実施形態が、本開示の範囲から逸脱することなく使用可能である。また、図２に示されている実行環境２００は、コントローラ１０４ａ〜１０４ｂ内で実施されるが、実行環境２００は、他の任意の好適なデバイス又はシステム内でも使用可能である。
【００２７】
この実施形態の例において、実行環境２００は、グローバルアセンブリキャッシュ（ＧＡＣ）２０２を含む。グローバルアセンブリキャッシュ２０２とは、実行環境２００内で実行される、異なるアセンブリコードプログラムを格納することが可能なメモリである。アセンブリコードプログラムとは、実行環境２００内で実行される管理対象アプリケーションである。一例として、グローバルアセンブリキャッシュ２０２は、図１のプロセス要素１０２ａ〜１０２ｂの１つ以上を制御することが可能なアセンブリコードプログラムを格納する。グローバルアセンブリキャッシュ２０２は、多くのアセンブリコードプログラム及び／又は同じアセンブリコードプログラムの異なるバージョンを格納可能である。グローバルアセンブリキャッシュ２０２とは、任意の好適な記憶装置及び検索デバイスである。
【００２８】
アセンブリローダ２０４は、実行するために、アセンブリコードを実行環境２００内にロードする。たとえば、アセンブリローダ２０４は、ユーザによりグローバルアセンブリキャッシュ２０２内にダウンロードされた新しいアセンブリコードを検索する。次いで、アセンブリローダ２０４は、実行環境２００内でコンパイルし使用するために、識別されたアセンブリコードをコンパイラ内にロードする。アセンブリローダ２０４は、コンパイルするためにアセンブリコードをロードするための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。アセンブリローダ２０４とは、たとえば、実行環境２００のバックグラウンドで実行されるソフトウェアスレッドである。
【００２９】
事前（ａｈｅａｄ−ｏｆ−ｔｉｍｅ）（ＡＯＴ）コンパイラ２０６が、アセンブリローダ２０４によってロードされたアセンブリコードをコンパイルする。ＡＯＴコンパイラ２０６とは、アセンブリコードがロードされた場合にそのアセンブリコードをコンパイルする、ロードタイム（ｌｏａｄ−ｔｉｍｅ）コンパイラである。たとえば、ＡＯＴコンパイラ２０６は、中間言語から、実行環境２００内での実行が可能なネイティブ実行用コードに、アセンブリコードを変換する。また、ＡＯＴコンパイラ２０６は、実行環境２００内のコードの適切な実行を確実にするよう、ネイティブ実行用コードに命令を挿入する。ＡＯＴコンパイラ２０６は、アセンブリコードをコンパイルするための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。ＡＯＴコンパイラ２０６とは、たとえば、実行環境２００のバックグラウンドで実行されるソフトウェアスレッドである。
【００３０】
ＡＯＴコンパイラ２０６は、ネイティブ実行用コード２０８ａ〜２０８ｂなどの、ネイティブ実行用コードを作成する。ネイティブ実行用コード２０８ａ〜２０８ｂとは、実行環境２００内での実行が可能な実行用コードである。ネイティブ実行用コード２０８ａ〜２０８ｂは、図１の１つ以上のプロセス要素１０２ａ〜１０２ｂの制御を提供するなどの、実行環境２００内の任意の好適な機能性を提供する。ネイティブ実行用コード２０８ａ〜２０８ｂは、実行環境２００内の任意の他の即ち別の機能性を提供可能である。
【００３１】
１つ以上のアプリケーションドメイン２１０とは、（ネイティブ実行用コード２０８ａ〜２０８ｂによって実施されるアプリケーションなどの）１つ以上の管理対象アプリケーションが実行ドメイン２００内で実行されるドメインである。それぞれのアプリケーションドメイン２１０とは、１つ以上の管理対象アプリケーションを実行するための、任意の好適なドメインである。図２には１つのアプリケーションドメイン２１０として示されているが、多くのアプリケーションドメイン２１０も使用可能である。
【００３２】
実行環境２００内のアセンブリコード及びネイティブ実行用コードは、コードマネージャ２１２によって管理される。たとえば、コードマネージャ２１２は、実行環境２００内のアセンブリコードのロード及びアンロードを制御する。特定の例として、コードマネージャ２１２は、実行環境２００にアセンブリコードプログラムをロードするよう指示するコマンドを、ユーザ又は管理対象アプリケーションから受信する。次いで、コードマネージャ２１２は、アセンブリローダ２０４にアセンブリコードをＡＯＴコンパイラ２０６内にロードさせ、ＡＯＴコンパイラ２０６は、アプリケーションドメイン２１０内にロードされるネイティブ実行用コードを生成する。コードマネージャ２１２はまた、実行環境２００にアセンブリコードプログラムをアンロードするよう指示するコマンドを、ユーザ又は管理対象アプリケーションから受信する。次いで、コードマネージャ２１２は、アプリケーションドメイン２１０から、識別されたアセンブリコードに関連付けられたネイティブ実行用コードをアンロードする。アセンブリコードをアンロードするプロセスには、そのアセンブリコードに関連付けられたメモリを再要求するステップと、アンロードされるアセンブリコードと実行環境２００又は他のプログラムとの間の関連付けが除去されることを確実にするステップとが含まれる。コードマネージャ２１２は、実行環境２００内で使用されるアセンブリコード及び／又はコンパイルされたコードを管理するための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。コードマネージャ２１２は、たとえば、実行環境２００のバックグラウンドで実行されるソフトウェアスレッドである。
【００３３】
実行環境２００はまた、メモリマネージャ２１４を含む。メモリマネージャ２１４とは、ヒープメモリの使用を管理する決定的メモリマネージャである。たとえば、メモリマネージャ２１４は、ヒープメモリのブロックを、アプリケーションドメイン２１０内で実行される管理対象アプリケーションに割り当てる。メモリマネージャ２１４はまた、管理対象アプリケーションによってもはや使用されていないヒープメモリのブロックを解放するために、ガーベジコレクション情報２１６を使用する。ガーベジコレクション情報２１６は、たとえば、メモリマネージャ２１４によって提供され、かつ実行環境２００のバックグラウンドで実行されるガーベジコレクションプロセスによって生成される。その上、メモリマネージャ２１４は、ヒープメモリのためのデフラグメンテーションプロセスをサポートする。デフラグメンテーションプロセスは、ヒープメモリの未使用ブロックを組み合わせて、より大きいブロックにするよう使用される。メモリマネージャ２１４は、ヒープメモリを管理するための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。メモリマネージャ２１４とは、たとえば、実行環境２００のバックグラウンドで実行されるソフトウェアスレッドである。
【００３４】
実行環境２００は、さらに、例外情報２２０を格納する例外テーブル２１８を含む。例外情報２２０は、実行環境２００内で経験された様々な問題を識別する。問題の例には、明示的に指定された場所内に即ちグローバルアセンブリキャッシュ２０２内に存在しないアセンブリコードのロードを試みること、ロードされたアセンブリコードのコンパイル中のエラー、又は以前にロードされたものでないアセンブリコードのアンロードを試みることが含まれる。実行環境２００内で実行されるアプリケーション又はプロセスが、検出された問題を識別する例外を生成する。例外は、例外情報２２０によって識別されるが、この例外情報は、後に使用するために（デバッギング中など）又はランタイム中の自動回復のためにアプリケーション又はプロセスによって使用するために、例外テーブル２１８内に格納されている。
【００３５】
埋め込みウェブサーバ２２２が、実行環境２００を実施するコントローラへのユーザアクセスを可能にするのに使用される。たとえば、ウェブサーバ２２２は、コントローラによって収集された情報を使用して（ＪＰＥＧイメージなどの）グラフィカルイメージを生成し、ＨＴＭＬページに埋め込まれたグラフィカルイメージを提供する。ウェブサーバ２２２はまた、より高度なウェブサービスをユーザに提供する、ＡＳＰ．ＮＥＴ又は他のアプリケーションをサポートする。その上、ウェブサーバ２２２は、（オペレータステーション１０８ａ〜１０８ｂの１つなどの）ユーザデバイスにコードをダウンロードすることが可能であり、次いで、このデバイスが、コードを実行し、ウェブサーバ２２２とインタラクトする。ウェブサーバ２２２は、実行環境２００をサポートするコントローラにウェブベースのアクセスを提供するための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。ウェブサーバ２２２とは、たとえば、実行環境２００のバックグラウンドで実行されるソフトウェアスレッドである。
【００３６】
スケジューラ２２４が、ネイティブ実行用コード２０８ａ〜２０８ｂなどの、管理対象アプリケーションの実行をスケジュールするのに使用される。スケジューラ２２４はまた、実行環境２００内の背景タスクの実行をスケジュールするのに使用される。背景タスクは、とりわけ、ウェブサーバ２２２を使用してウェブベースのアクセスを提供すること、ヒープメモリの管理、アセンブリのロード及びアンロード、及びアセンブリのコンパイルを含む。たとえば、スケジューラ２２４は、多くのスレッドを実行できるようにするためのタイムスライシングをサポートする。スレッドとは、背景タスク及び管理対象アプリケーションである。スケジューラ２２４は、アプリケーション及び他のタスクの実行をスケジュールするための、任意のハードウェア、ソフトウェア、ファームウェア、又はこれらの組合せを含む。
【００３７】
いくつかの実施形態において、スケジューラ２２４及び実行環境２００は、管理対象アプリケーション及び背景タスクが適切に実行されることを確実にするよう協働し、協力しあう。たとえば、スケジューラ２２４は、いつ及びどのぐらいの間、背景タスクが実行環境２００内で実行されるかを制御する。特定の例として、スケジューラ２２４は、管理対象アプリケーションを実行するすべてのスレッドを先取りし、次いで、１つ以上の背景タスクを実行するよう実行環境２００を呼び出す。スケジューラ２２４は、実行環境２００に、背景タスクを遂行するのに利用可能な時間の量を通知する。実行環境２００は、その時間の終了時に又はこの前に、制御がスケジューラ２２４に戻ることを保証する。実行環境２００が背景タスクを遂行している間、データを読み込む又はヒープメモリに書き込む管理対象アプリケーションが、背景タスクを中断しないようにする。（割込みサービスルーチン又はＩＳＲなどの）ヒープメモリにアクセスしない他のスレッドは、背景タスクを中断できる。時間に関して平均化され、スケジューラ２２４は、実行環境２００に、管理対象アプリケーションが適切に実行するのに必要な背景タスクを遂行するのに十分な時間を提供する。一例として、管理対象アプリケーションは、利用可能なタイムスライスの約８０％まで使い果たすことがあり、残りの２０％は背景タスクによって使用される。
【００３８】
この種のスケジューリングは、管理対象アプリケーションに対して一定の要求条件を課すことがある。たとえば、管理対象アプリケーションは、時間に関して、充分な処理リソースを背景タスクに提供し、背景タスクが使用できるようにすべきである。また、管理対象アプリケーションは、「クリーンポイント」に達するか、又は制御を背景タスクに転送する前に読み込みバリア及び書き込みバリアを使用するかのいずれかであるべきである。「クリーンポイント」とは、一般に、一連の関連命令の実行中に発生した時点ではなく、管理対象アプリケーションのために実行される一連の関連命令が完了した時点である。一例として、管理対象アプリケーションは、データを読み込んでいる又はデータを書き込んでいる途中ではなく、制御の転送が発生した時にデータ構造又はファイル内のデータにアクセスすることを完了すべきである。管理対象アプリケーションが制御の転送が発生するクリーンポイントにない場合に、読み込みバリア及び書き込みバリアが使用される。読み込みバリア又は書き込みバリアとは、一般に、特定のデータが管理対象アプリケーションにより現在使用されていることを、背景タスクに通知するのに使用されるマーカ又はフラグである。これにより、たとえば、背景タスクが、デフラグメンテーション中にデータを動かすか又はガーベジコレクション中にデータを廃棄するのが防止される。
【００３９】
いくつかの実施形態において、図２に示されている様々な構成要素が、プラットフォーム／オペレーティングシステムの抽象レイヤ上で動作する。プラットフォーム／オペレーティングシステムの抽象レイヤは、実行環境２００を下位ハードウェアプラットフォーム又はオペレーティングシステムから論理的に分離する。このようにして、実行環境２００は、特定のハードウェアプラットフォーム又はオペレーティングシステムのために特に設計された実行環境２００を必要とせずに、異なるハードウェアプラットフォーム及びオペレーティングシステムと共に使用される。
【００４０】
図２では、プロセス制御システムにおいて直接ウェブアクセスをコントローラに提供する実行環境２００の一例を示しているが、図２に対して様々な変更が行われることがある。たとえば、図２に示されている機能部分は、あくまで例示である。特定の必要性に応じて、図２の様々な構成要素が組み合わせられたり省略されたりしてもよく、またさらなる構成要素が追加されてもよい。
【００４１】
図３Ａ〜図３Ｅは、本開示の一実施形態のプロセス制御システムにおいて、直接ウェブアクセスを通じてコントローラに提供された表示の例を示している。特に、図３Ａ〜図３Ｅは、コントローラ内のウェブサーバによって作成された、異なるウェブページにアクセスするために、ユーザによって使用されるＷｅｂブラウザを示している。説明を簡単にするために、図３Ａ〜図３Ｅに示されている表示は、図１のコントローラ１０４ａ内の図２の実行環境２００を使用して実行されるウェブサーバによって生成されるものとして示されている。他の任意の表示もウェブサーバによって生成可能である。また、ウェブサーバは、他の任意の実行環境内でも及び他の任意のデバイス、システム、又は環境内でも動作可能である。
【００４２】
図３Ａに示されているように、Ｗｅｂブラウザが、コントローラ１０４ａによって生成されたウェブページ３０２を表示している。この例では、コントローラ１０４ａは、プロセス制御システム１００内のバルブのオペレーションを識別するウェブページ３０２を生成している。ウェブページ３０２は、２つのグラフ３０４〜３０６を含む。この特定の例において、グラフ３０４は、たとえば、如何にバルブが時間とともに開閉するかを識別することによって、バルブのオペレーション履歴を識別する。グラフ３０６は、コントローラ１０４ａにより、たとえば、時間とともにバルブを開閉させる制御信号を識別することによって、バルブに提供された制御信号を識別する。ウェブページ３０２はまた、ボタン３０８を含む。ボタン３０８は、ユーザがウェブページ３０２を見ることによって選択される。この例では、ユーザは、ボタン３０８を使って、別のウェブページにアクセスでき、バルブのための任意の好適な動作パラメータを確立する。
【００４３】
図３Ｂにおいて、Ｗｅｂブラウザが、コントローラ１０４ａによって生成されたウェブページ３２２を表示している。この例では、コントローラ１０４ａは、ユーザにとって利用可能な、異なるウェブサービスを識別するウェブページ３２２を生成している。この特定の例において、実行環境２００は、グラフの形で又はテキストベースの言語を使用して作成される、アプリケーション、又はブロックの形態のアプリケーションモジュールの上位装置として働く。とりわけ、ウェブページ３２２により、ユーザが、現在実行されているブロックを見ることが可能となり、かつブロックの記述及びランタイムの状態（「値」と呼ばれる）を見ることが可能となる。ウェブページ３２２により、ユーザが、（バージョン及びオーバランカウントなどの）実行環境２００についての情報を見ることも可能となる。
【００４４】
図３Ｃにおいて、Ｗｅｂブラウザが、コントローラ１０４ａによって生成されたウェブページ３４２を表示している。この例では、コントローラ１０４ａは、ウェブフォームを含むウェブページ３４２を生成している。ウェブフォームは、特定のコントローラのための、ロードされたブロック、これらのブロック内のフィールド、及びこれらのブロックフィールド内の値を識別する。
【００４５】
図３Ｄにおいて、Ｗｅｂブラウザが、コントローラ１０４ａによって生成されたウェブページ３６２を表示している。この例では、コントローラ１０４ａは、バックビルダ機能を含むウェブページ３６２を生成している。バックビルダとは、ブロックコンフィギュレーションをリバースエンジニアリングするのに使用されるウェブベースのソリューションである。次いで、このコンフィギュレーションを見るのが可能となるか、又はビルド環境全体を必要とせずに、コンフィギュレーション変更が実施される。この例では、バックビルダ機能は、スマートクライアントウィンフォームを使用して提供される。
【００４６】
図３Ｅにおいて、Ｗｅｂブラウザが、コントローラ１０４ａによって生成されたウェブページ３８２を表示しており、２つのさらなるフォーム３８４〜３８６がユーザに提供される。この例では、フォーム３８６は、フォーム３８４のブロックのユーザ選択に応答して、ユーザに提供される。図３Ｅに示されているように、ウェブページ３８２は、フォーム３８６と同様のフォームを表示している。これは、たとえば、（マイクロソフト社のインターネットエクスプローラなどの）Ｗｅｂブラウザ内のフォーム及びビルディングツールのためのウィンフォームを再使用することによって、ウェブフォームが再使用されることがあることを示している。
【００４７】
コントローラ１０４ａの実行環境２００内で実行されるウェブサーバ２２２は、任意の好適な方法で、図３Ａ〜図３Ｅに示されているウェブページを生成する。たとえば、ウェブサーバ２２２は、（管理対象アプリケーション及び他の背景タスクによって使用されるタイムスライスでインターリーブされた）一定のタイムスライス中に実行される。タイムスライス中に、ウェブサーバ２２２は、コントローラ１０４ａによって収集されたデータを使用して（図３Ａのグラフ３０４〜３０６などの）イメージを生成する。コントローラ１０４ａへのウェブベースのアクセスの要求が受信された場合には、ウェブサーバ２２２は、以前に生成されたイメージを含む（ウェブページ３０２などの）ウェブページを生成する。次いで、このウェブページは、ウェブベースのアクセスを要求しているユーザに提供される。これは、ウェブサーバ２２２がウェブページを生成する１つの可能な方法である。ウェブサーバ２２２は、要求が受信される前ではなく、要求に応答して、イメージ又は他のコンテンツを生成することを含む、他の任意の好適な技術を使用可能である。
【００４８】
図３Ａ〜図３Ｅは、プロセス制御システムにおいて直接ウェブアクセスを通じてコントローラに提供された表示の例を示しているが、図３Ａ〜図３Ｅに対して様々な変更が行われることがある。たとえば、ウェブページのコンテンツは、あくまで例示である。コントローラ１０４ａは、任意の好適なコンテンツを含む、任意の他のすなわち別のウェブページを生成可能である。また、すべてのユーザ入力メカニズムが、ウェブページから除外可能である。また、ウェブページは、ユーザとのさらなるインタラクションをサポートすることなく、情報をユーザに受動的に提示するだけの場合もある。
【００４９】
図４は、本開示の一実施形態のプロセス制御システムにおいて直接ウェブアクセスをコントローラに提供する方法４００の例を示している。説明を簡単にするために、図４に示されている方法４００は、図１のコントローラ１０４ａ内の図２の実行環境２００内で遂行される方法として説明されている。方法４００は、他の任意の実行環境内でも及び他の任意のデバイス、システム、又は環境内でも使用可能である。
【００５０】
コントローラ１０４ａは、ステップ４０２で、１つ以上のプロセス要素１０２ａのオペレーションを監視する。これは、たとえば、コントローラ１０４ａが、プロセス要素１０２ａのオペレーションについての（診断情報などの）情報を収集することを含む。特定の例として、これは、コントローラ１０４ａが、プロセス要素１０２ａの動作パラメータについての情報を収集することを含む。これはまた、コントローラ１０４ａが、プロセス要素１０２ａのオペレーションを制御するための制御信号を生成することを含み、収集された情報は、生成された制御信号についての情報を含む。
【００５１】
コントローラ１０４ａは、ステップ４０４で、監視されるプロセス要素１０２ａに関連付けられた情報を格納する。これは、たとえば、コントローラ１０４ａが、プロセス要素１０２ａの動作パラメータ及びコントローラ１０４ａによって生成された制御信号を識別する情報を格納することを含む。情報は、コントローラ１０４ａの内部のメモリ又はコントローラ１０４ａの外部のデータベース内などの、任意の好適な場所に格納される。
【００５２】
コントローラ１０４ａは、ステップ４０６で、コントローラ１０４ａへのウェブベースのアクセスの要請を受信する。これは、たとえば、コントローラ１０４ａが、ユーザがＷｅｂブラウザを使用してコントローラ１０４ａへのアクセスを試みていることを示す情報を、オペレータステーション１０８ａ〜１０８ｂの１つから受信することを含む。これはまた、コントローラ１０４ａが、ウェブサーバ２２２の実行を起動することを含む。
【００５３】
コントローラ１０４ａは、ステップ４０８で最小アクセスのみをサポートする場合、ステップ４１０で、１つ以上のグラフィカルイメージを生成する。これは、たとえば、ウェブサーバ２２２が、コントローラ１０４ａによって収集された情報を使用して、１つ以上のＪＰＥＧイメージ又は他のイメージを生成することを含む。特定の例として、これは、ウェブサーバ２２２が、監視されるプロセス要素１０２ａによって使用される動作パラメータ及び制御信号のタイムプロットを表すグラフィカルイメージを生成することを含む。
【００５４】
コントローラ１０４ａは、ステップ４１２で、グラフィカルイメージを１つ以上のウェブページに埋め込む。これは、たとえば、ウェブサーバ２２２が、生成されたＪＰＥＧイメージ又は他のイメージを含む１つ以上のＨＴＭＬウェブページを生成することを含む。
【００５５】
コントローラ１０４ａは、ステップ４１４で、生成されたウェブページをユーザに提供する。これは、たとえば、ウェブサーバ２２２が、生成されたＨＴＭＬウェブページを、ＨＴＴＰを使用したオペレータステーション１０８ａ又は１０８ｂに通信することを含む。この時点で、ユーザは、グラフィカルイメージ内の診断情報を検討するなどの、任意の好適なアクションをとることができる。ユーザはまた、プロセス要素１０２ａのオペレーションを検討し、プロセス要素１０２ａの潜在的な問題を識別することができる。
【００５６】
コントローラ１０４ａが、ステップ４０８で最小以上のアクセスをサポートする場合、コントローラ１０４ａ及びユーザは、ステップ４１６で、情報をインタラクトし、交換する。これは、たとえば、ウェブサーバ２２２が、（グラフィカルイメージを使用することを含むが、これに限定されるものではない）収集された情報及び他の情報をユーザに任意の好適な方法で提供することを含む。これはまた、ユーザが、情報をウェブサーバ２２２に提供することを含む。提供された情報は、コントローラ１０４ａのオペレーションを改変するのに使用される。その上、これは、実行するために、ウェブサーバ２２２が、（Ｃ＃又はＶＢ．ＮＥＴコードなどの）コードをユーザのオペレータステーションに提供することを含む。ユーザ及びウェブサーバ２２２は、ウェブフォーム及びスマートクライアントウィンフォームを含む、任意の好適なメカニズムを使用してインタラクト可能である。
【００５７】
図４に、プロセス制御システムにおいて直接ウェブアクセスをコントローラに提供する方法４００の一例が例示されているが、図４に対して様々な変更が行われることがある。たとえば、コントローラ１０４ａ内でサポートされるウェブサーバは、コントローラ１０４ａへの最小アクセスのみを可能にする（したがって、ステップ４０８及び４１６がスキップされる）場合もあれば、又はコントローラ１０４ａへの最小以上のアクセスのみを可能にする（したがって、ステップ４０８〜４１４がスキップされる）場合もある。
【００５８】
本特許文献全体に使用されている、一定の単語及び語句の定義について記載することが好ましいであろう。「含む」、「有する」、及び「備える」という用語、及びこれらの派生語は、包括的なものであり、何ら限定的なものではない。「又は」という用語は包括的である。つまり、「及び／又は」を意味する。「に関連付けられた」及び「これらに関連付けられた」という語句、及びこれらの派生語は、を含む、内に含まれる、にインタラクトする、含む、内に含まれる、に接続する又はと接続する、に結合する又はと結合する、と通信する、と協働する、インターリーブする、並べる、の近くに、に結合された又はと結合された、有する、所有するなどを意味することがある。「コントローラ」という用語は、少なくとも１つのオペレーションを制御する、任意のデバイス、システム、又はこれらの一部を意味する。ハードウェア、ファームウェア、ソフトウェア、又はこれらの少なくとも２つの組合せ内に、コントローラが実装されることがある。任意の特定のコントローラに関連付けられた機能性は、集中されたり分散されたりすることがある。つまり、局所的に又は遠隔に置かれることがある。
【００５９】
本開示を、一定の実施形態及び一般に関連付けられた方法について説明してきたが、これらの実施形態及び方法の改変形態及び代替形態が、当業者には明らかであろう。したがって、実施形態の例についての上記の説明は、本開示を規定する又は限定するものではない。頭記の特許請求の範囲に規定されているように、本開示の趣旨及び範囲から逸脱することなく、他の変更形態、代替形態、及び改変形態も可能である。
【図面の簡単な説明】
【００６０】
【図１】本開示の一実施形態のプロセス制御システムの例を示す図である。
【図２】本開示の一実施形態のプロセス制御システムにおいて直接ウェブアクセスをコントローラに提供する実行環境の例を示す図である。
【図３Ａ】本開示の一実施形態のプロセス制御システムにおいて直接ウェブアクセスを通じてコントローラに提供される表示の例を示す図である。
【図３Ｂ】本開示の一実施形態のプロセス制御システムにおいて直接ウェブアクセスを通じてコントローラに提供される表示の例を示す図である。
【図３Ｃ】本開示の一実施形態のプロセス制御システムにおいて直接ウェブアクセスを通じてコントローラに提供される表示の例を示す図である。
【図３Ｄ】本開示の一実施形態のプロセス制御システムにおいて直接ウェブアクセスを通じてコントローラに提供される表示の例を示す図である。
【図４】本開示の一実施形態のプロセス制御システムにおいて直接ウェブアクセスをコントローラに提供する方法の例を示す図である。
【図１】
2009501968.tif 000003
【図２】
2009501968.tif 000004
【図３Ａ】
2009501968.tif 000005
【図３Ｂ】
2009501968.tif 000006
【図３Ｃ】
2009501968.tif 000007
【図３Ｄ】
2009501968.tif 000008
【図３Ｅ】
2009501968.tif 000009
【図４】
2009501968.tif 000010
【手続補正書】
【提出日】平成20年3月11日(2008.3.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コントローラであって、
処理環境内のプロセス要素を制御するためのアプリケーションを実行することが可能な実行環境と、
前記実行環境内での実行が可能なウェブサーバと
を備え、
前記ウェブサーバは、ウェブブラウザ上に表示するために、ネットワーク上で、前記コントローラ及び前記プロセス要素の少なくとも１つに関連付けられた情報を提供することにより、直接ウェブアクセスを前記コントローラに提供することが可能である
ことを特徴とするコントローラ。
【請求項２】
請求項１記載のコントローラにおいて、
前記ウェブサーバは、前記実行環境内の背景タスクとして実行されることが可能であり、
前記アプリケーションは、リアルタイムアプリケーションである
ことを特徴とするコントローラ。
【請求項３】
請求項１記載のコントローラにおいて、前記ウェブサーバは、
前記コントローラ及び前記プロセス要素の少なくとも１つに関連付けられた情報の少なくともいくつかを含むグラフィカルイメージを生成し、かつ
前記グラフィカルイメージを有するウェブページを前記ネットワーク上で前記Ｗｅｂブラウザに提供することにより、
前記情報を提供することが可能であることを特徴とするコントローラ。
【請求項４】
請求項１記載のコントローラにおいて、前記ウェブサーバは、ウェブサービス、ウェブフォーム、及びスマートクライアントアプリケーションの１又は複数と前記Ｗｅｂブラウザとの組み合わせを用いて、前記ネットワーク上でユーザとインタラクトすることにより、前記情報を提供することが可能であることを特徴とするコントローラ。
【請求項５】
方法であって、
コントローラ内の実行環境において、処理環境内のプロセス要素を制御するためのアプリケーションを実行するステップと、
前記実行環境においてウェブサーバを実行するステップと、
前記ウェブサーバを使用して、直接ウェブアクセスを前記コントローラに提供するステップであって、Ｗｅｂブラウザ上に表示するために、ネットワーク上で、前記コントローラ及び前記プロセス要素の少なくとも１つに関連付けられた情報を提供するステップと
を含むことを特徴とする方法。
【請求項６】
コンピュータ読取可能な記憶媒体に記憶された、プロセッサによって実行されるコンピュータプログラムにおいて、
コントローラ内の実行環境において、処理環境内のプロセス要素を制御するためのアプリケーションを実行するステップと、
前記実行環境内のウェブサーバにより、ネットワーク上で、前記コントローラ及び前記プロセス要素の少なくとも１つに関連付けられた情報を提供することにより、直接ウェブアクセスを前記コントローラに提供するステップと
を実行するためのプログラムコードを備えていることを特徴とするコンピュータプログラム。
【国際調査報告】
2009501968.tif 000011
2009501968.tif 000012