(57)【要約】【課題】  クライアント−サーバアクティビティ（即ち、制限されたバンド幅、高いデータ伝送コスト、通信チャネルの待ち時間など）の通信の効率の悪さ及び困難性を解消した分散データのアクセス方法及びプロセス制御システムのための装置を提供する。【解決手段】  プロセス制御システムに関連するデータベースをアクセスするシステム及び方法は、クラアントアプリケーションからの情報に対する要求を中間データサーバに送り、その情報がその中間データサーバプロセスに関連するデータソース内に格納されているかを決定する。また、このシステム及び方法は、もしその情報がそのデータソース内に格納されていなければ、中間データサーバからの情報に対する要求を他の中間データサーバに送り、そして、その情報の要求を受け取った他のプロセスに続いてその情報を検索するためにそのデータベースにアクセスする。【選択図】  図１
2004280813.tif 000002
【特許請求の範囲】
【請求項１】
プロセス制御システムに関連するデータベースにアクセスするための方法であって、
中間データサーバプロセスに於けるクラアントアプリケーションからの情報に対する要求を受け取るステップと、
その情報が前記中間データサーバプロセスに関連するデータソース内に格納されているかを決定するステップと、
もし、その情報がそのデータソース内に格納されていないなら、その情報に対する要求を、その中間データサーバプロセスから他のプロセスに送るステップと、
前記情報に対する要求を受け取った他のプロセスに続いてその情報を検索するためにデータベースにアクセスするステップと
を包含している方法。
【請求項２】
請求項１記載の方法であって、前記中間データサーバプロセスに於ける前記クラアントアプリケーションからの前記情報に対する要求を受け取るステップが、データ及びそのデータに関連する少なくとも一つのルールに対する要求を受け取るステップを包含している方法。
【請求項３】
請求項１記載の方法であって、前記中間データサーバプロセスに於ける前記クラアントアプリケーションからの前記情報に対する要求を受け取るステップが、オブジェクト情報及びルールの少なくとも一つに対する要求を受け取るステップを包含している方法。
【請求項４】
請求項１記載の方法であって、その情報がデータソース内に格納されているかを決定するステップが、前記データベースに格納されているオブジェクトの第２のセットのサブセットに相当する階層的に関連するオブジェクトの第１のセットを詳細に検討するステップを含んでいる方法。
【請求項５】
請求項４記載の方法であって、階層的に関連するオブジェクトの第１のセットを詳細に検討するステップが、クラアントアプリケーションの状態に対応するクライアントルートを詳細に検討するステップを包含いている方法。
【請求項６】
請求項１記載の方法であって、その情報に対する要求をその中間データサーバプロセスから他のプロセスに送るステップが、データベース接続と通信リンクとを介してその情報に対する要求を送るステップを包含している方法。
【請求項７】
請求項１記載の方法であって、前記他のプロセスが、他の中間データサーバプロセスである方法。
【請求項８】
請求項１記載の方法であって、前記情報に対する要求を受け取った他のプロセスに続いてその情報を検索するためにデータベースにアクセスするステップが、前記データベースに通信可能に接続されたデータベースアクセッサーに前記情報に対する要求を送るステップを包含している方法。
【請求項９】
請求項１記載の方法であって、前記データソース及びデータ接続に通信可能に接続されたセッションを介して前記情報に対する要求を処理するステップを包含している方法。
【請求項１０】
請求項１記載の方法であって、追加の情報を検索するためにデータベースにアクセスするステップを含み、該追加の情報が前記クラアントアプリケーションに特徴的なデータアクセスパターンに関連している方法。
【請求項１１】
請求項１記載の方法であって、その情報に対する要求をその中間データサーバプロセスから他のプロセスに送るステップが、その情報に対する要求を送るために、拡張マークアップ言語、伝送プロトコル及びメッセージエンコーディングの少なくとも一つを使用するステップを包含している方法。
【請求項１２】
プロセス制御システムに関連するデータベースにアクセスするためのシステムであって、
前記データベースに通信可能に接続された中間データサーバを備え、該中間データサーバプロセスは、
クラアントアプリケーションからの情報に対する要求を受け取り、
その情報が前記中間データサーバに関連するデータソース内に格納されているかを決定し、及び
もし、その情報がそのデータソース内に格納されていないなら、その情報に対する要求を、その中間データサーバから他の中間データサーバに送る
ようにプログラムされているシステム。
【請求項１３】
請求項１２記載のシステムであって、前記中間データサーバは、データソース及びデータ接続との通信を調整するセッションを確立するようにプログラムされているシステム。
【請求項１４】
請求項１２記載のシステムであって、前記情報に対する要求は、データ及びそのデータに関連する少なくとも一つのルールに対する要求を包含しているシステム。
【請求項１５】
請求項１２記載のシステムであって、前記情報に対する要求は、オブジェクト情報及びルールの少なくとも一つに対する要求を包含しているシステム。
【請求項１６】
請求項１２記載のシステムであって、前記データソースは、前記データベースに格納されているオブジェクトの第２のセットのサブセットに相当する階層的に関連するオブジェクトの第１のセットを含んでいるシステム。
【請求項１７】
請求項１２記載のシステムであって、前記中間データサーバは、その情報に対する要求をデータベース接続と通信リンクとを介して他の中間データサーバに送るシステム。
【請求項１８】
請求項１２記載のシステムであって、前記他の中間データサーバは、前記情報を検索するためにデータベースアクセッサーを介して前記データベースにアクセスするシステム。
【請求項１９】
請求項１２記載のシステムであって、前記中間データサーバは、拡張マークアップ言語、伝送プロトコル及びメッセージエンコーディングの少なくとも一つを使用することにより、その情報に対する要求を他の中間データサーバに送るようにプログラムされているシステム。
【請求項２０】
指令をその上に格納し、実行時に機械に対して以下の動作をさせる機械読み取り可能な媒体であって、該動作が、
中間データサーバプロセスに於けるクラアントアプリケーションからのプロセス制御システムに関連する情報の要求を受け取り、
その情報が前記中間データサーバプロセスに関連するデータソース内に格納されているかを決定し、
もし、その情報がそのデータソース内に格納されていないなら、その情報に対する要求を、その中間データサーバプロセスから他のプロセスに送り、
前記情報に対する要求を受け取った他のプロセスに続いて、その情報を検索するためにデータベースにアクセスする
動作を行う機械読み取り可能な媒体。
【請求項２１】
請求項２０記載の機械読み取り可能な媒体であって、データ及びそのデータに関連する少なくとも一つのルールに対する要求を受け取ることにより、前記中間データサーバプロセスに於ける前記クラアントアプリケーションからの前記情報に対する要求を受け取るように構成されている媒体。
【請求項２２】
請求項２０記載の機械読み取り可能な媒体であって、中間データサーバオブジェクトに於けるオブジェクト情報及びルールの少なくとも一つに対する要求を受け取ることにより、前記中間データサーバプロセスに於ける前記クラアントアプリケーションからの前記情報に対する要求を受け取るように構成されている媒体。
【請求項２３】
請求項２０記載の機械読み取り可能な媒体であって、前記データベースに格納されているオブジェクトの第２のセットのサブセットに相当する階層的に関連するオブジェクトの第１のセットを詳細に検討することにょり、その情報がデータソース内に格納されているかを決定するように構成されている媒体。
【請求項２４】
請求項２０記載の機械読み取り可能な媒体であって、クラアントアプリケーションの状態に対応するクライアントルートオブジェクトを詳細に検討することにより、階層的に関連するオブジェクトの第１のセットを詳細に検討するように構成されている媒体。
【請求項２５】
請求項２０記載の機械読み取り可能な媒体であって、データベース接続と通信リンクとを介してその情報に対する要求を送ることにより、その情報に対する要求をその中間データサーバプロセスから他のプロセスに送るように構成されている媒体。
【請求項２６】
請求項２０記載の機械読み取り可能な媒体であって、前記データソース及びデータ接続に通信可能に接続されたセッションを介して前記情報に対する要求を処理するように構成されている媒体。
【請求項２７】
請求項２０記載の機械読み取り可能な媒体であって、追加の情報を検索するためにデータベースにアクセスし、該追加の情報は前記クラアントアプリケーションに特徴的なデータアクセスパターンに関連している媒体。
【請求項２８】
プロセス制御システムであって、
通信可能に接続された複数の中間データサーバと
前記中間データサーバの少なくとも一つと通信を行う複数のクラアントアプリケーションと、
少なくともデータ及び前記プロセス制御システムに関連するルールを含む情報を包含するデータベースと
を備え、前記中間データサーバは、クラアントアプリケーションの少なくとも幾つかの情報の要求に基づいて、前記情報のサブセットを検索し及びそれぞれのローカルデータソースに格納するように相互運用するように構成されているシステム。
【請求項２９】
請求項２８記載のプロセス制御システムであって、前記中間データサーバのそれぞれは、中間データサーバオブジェクト、データソースオブジェクト、データベース接続オブジェクト、並びに前記中間データサーバオブジェクト、前記データソースオブジェクト及びデータベース接続オブジェクトのアクティビティを調整するセッションオブジェクトを生成するように構成されているプロセス制御システム。
【請求項３０】
請求項２８記載のプロセス制御システムであって、前記中間データサーバの少なくとも２つが、ネットワークに関連する通信リンクを介して接続されているプロセス制御システム。
【請求項３１】
請求項３０記載のプロセス制御システムであって、オブジェクトの階層内の前記オブジェクトのそれぞれは、関連するオブジェクト、特性及び役割を含んでいるプロセス制御システム。
【請求項３２】
請求項２８記載のプロセス制御システムであって、前記中間データサーバは、拡張マークアップ言語を使用して通信するように構成されているプロセス制御システム。
【請求項３３】
請求項２８記載のプロセス制御システムであって、前記クラアントアプリケーションは、ブラウザアプリケーションを含んでいるプロセス制御システム。
【請求項３４】
請求項２８記載のプロセス制御システムであって、前記中間データサーバは、前記プロセス制御システムに関連するルールの幾つかを実行するように構成されているプロセス制御システム。
【請求項３５】
請求項２８記載のプロセス制御システムであって、前記中間データサーバのそれぞれによって検索された情報のサブセットは、その中間データサーバのデータアクセス特性に一致する情報を包含しているプロセス制御システム。
【請求項３６】
プロセス制御システムに関連するデータベース内の情報を変更する方法であって、
第１の中間データサーバからの情報のセットを第２の中間データサーバに送るステップと、
前記第２の中間データサーバからの情報のセットをデータベースサーバに送るステップと、
前記データベース内の情報を変更するために、前記情報のセットを前記データベースに書き込むステップと
を包含している方法。
【請求項３７】
請求項３６記載の方法であって、前記第１及び第２の中間データサーバのそれぞれは、データソース、セッション及びデータベース接続を含んでいる方法。
【請求項３８】
請求項３６記載の方法であって、前記情報のセットは、拡張マークアップ言語を含んでいる方法。
【請求項３９】
請求項３６記載の方法であって、第１の中間データサーバからの情報のセットを第２の中間データサーバに送るステップは、通信リンクを介して前記情報のセットを送るステップを包含している方法。
【請求項４０】
請求項３６記載の方法であって、前記情報のセットは、前記プロセス制御システム及び企業体の少なくとも一つに関連する情報を含んでいる方法。
【請求項４１】
ネットワークシステム内でデータベースの変更を伝達する方法であって、
データベース内の情報のセットを変更して第２の情報のセットを形成するステップと、
前記第２の情報のセットを前記ネットワークシステム内の第１の中間データサーバに送るステップと、
前記第１の中間データサーバから前記第２の情報のセットを第２の中間データサーバに送るステップと、
前記第２の情報のセットの少なくとも一部をクラアントアプリケーションに関連するデータソースに格納するステップと
を包含している方法。
【請求項４２】
請求項４１記載の方法であって、前記第１の中間データサーバから前記第２の情報のセットを第２の中間データサーバに送るステップが、拡張マークアップ言語文書を前記第１の中間データサーバから前記第２の中間データサーバに送るステップを包含している方法。
【請求項４３】
請求項４１記載の方法であって、前記第２の情報のセットの少なくとも一部をクラアントアプリケーションに関連するデータソースに格納するステップが、そのデータソースによって先に要求された情報に関連する情報を格納するステップを包含している方法。
【請求項４４】
プロセス制御システムに関連するデータベースをアクセスするための方法であって、
データとそのデータに関連する少なくとも一つのルールとに対する要求を、中間データサーバプロセス内のクラアントアプリケーションから受け取るステップと、
前記データ及び前記データに関連する少なくとも一つのルールを検索するためにデータベースにアクセスするステップと
を包含している方法
【請求項４５】
請求項４４記載の方法であって、前記データの少なくとも一部を変更する要求に応答して、少なくとも一つのルールを実行するステップを更に包含している方法。
【請求項４６】
請求項４４記載の方法であって、前記データベースにアクセスするステップが、前記データベースに接続されている他の中間データサーバプロセスと通信を行うステップを包含している方法。
【請求項４７】
プロセス制御システムデータベースを編集する方法であって、
前記プロセス制御システムデータベースに関連する実質的に全てのデータを要求するステップと、
クラアントアプリケーション内の要求された前記プロセス制御システムデータベースに関連する実質的に全てのデータを受け取るステップと、
前記クラアントアプリケーションが前記プロセス制御システムデータベースに対してオフラインとなっている間に、前記クラアントアプリケーション内の前記プロセス制御システムデータベースに関連する実質的に全てのデータの少なくとも幾つかを編集するステップと、
前記クラアントアプリケーションが前記プロセス制御システムデータベースに対してオフラインとなっている間に、前記プロセス制御システムデータベースに関連する少なくとも一つのルールを実行し、クラアントアプリケーションによるアクセスを可能にするステップと
を包含している方法。
【請求項４８】
請求項４７記載の方法であって、編集に続いて、前記プロセス制御システムに関連する実質的に全てのデータの少なくとも幾つかを調整するステップを更に包含している方法。
【請求項４９】
請求項４７記載の方法であって、前記前記プロセス制御システムに関連する実質的に全てのデータは、プロセス制御システムデータベースのコピーを含んでいる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概略的にはプロセス制御システムに関し、より詳細には、分散データのアクセス方法及びプロセス制御システムのための装置に関する。
【背景技術】
【０００２】
化学、石油等のプロセスで使用されるプロセス制御システムは、少なくとも一つのホスト又はオペレータワークステーション及び一又はそれ以上のフィールドデバイスに、アナログ、デジタル又はアナログ／デジタル複合バスを介して接続された、一又はそれ以上の中央集中化されたプロセスコントローラを典型的に含んでいる。例えば、バルブ、バルブポジショナ、スイッチ及びトランスミッタ（例えば、温度、圧力及び流速センサ）であり得るフィールドデバイスは、バルブの開又は閉やプロセスパラメータの測定のようなプロセス内の機能を実行する。プロセスコントローラは、フィールドデバイス及び／又はそのフィールドデバイスに関連する他の情報によって生成されるプロセス測定値を表す信号を受領し、この情報を、制御ルーチンを実装し次にプロセスのオペレーションを制御するためにバス又は他の通信ライン上をフィールドデバイスに送信される制御信号を生成するのに使用する。フィールドデバイス及びコントローラからの情報は、オペレータが、プロセスの現状を見たり、プロセスのオペレーションを修正する等のプロセスに関する所望の機能を実行するのを可能とする等のために、オペレーションワークステーションによって実行される一又はそれ以上のアプリケーションに利用可能とされ得る。
【０００３】
典型的には、プロセス制御システムは、広大な地理的領域又は幾つかの場合には世界に亘る幾つかのプロセス制御プラント、構成要素並びに／又はサービス提供者及び顧客を含み得る企業体内で稼働する。プロセス制御プラント、提供者及び顧客は、例えばインターネット、衛星中継、地上無線通信、電話回線等の種々の通信メディア、技術又はプラットフォームを使用して、互いに通信し得る。インターネットは、それが通信インフラストラクチャーを提供し及び確立し、それによって企業体の通信インフラストラクチャーコストを最小化し又は減少させるので、多くの企業体にとって好ましい通信プラットフォームとなってきている。加えて、インターネットを介する情報通信に使用される技術は、汎用的で、安定で、安全である。
【０００４】
企業体内の各プロセス制御プラントは、プロセス制御システムの全体に亘る稼働を支持し及び維持し又は補うために必要な多くの他のビジネス関連の又は情報技術システムと同様に、一又はそれ以上のプロセス制御システムを含んでいる。一般的には、プロセス制御プラントに関連する情報技術システムは、例えば、保守管理システム等の生産実行システムを含み得、そしてまた、例えば、スケジューリング、経理、調達システム等の企業体資源計画システムを含み得る。これらの情報技術システムは、物理的にプラントの内部又は近傍に配置されているけれども、これらのシステムのある場合又は全ての場合に、プラントに対して離れた位置に配され得て、インターネット又は無線及び／又は有線の通信媒体及び技術の所望の組み合わせを使用する他の適当な通信回線を使用して、プラントと通信を行い得る。
【０００５】
企業体内の各プロセス制御プラントは、プラント内のプロセス制御システムの活動を調整し又は実行する一又はそれ以上のサーバ、ワークステーション又は他のコンピュータ上で実行され得るユーザ対話式のアプリケーションもまた含み得る。このようなユーザ対話式のアプリケーションは、活動管理機能、履歴データ管理機能、資産管理機能バッチ管理機能等を実行し得る。加えて、プロセス制御システムのそれぞれは、例えば通信を管理し並びに警告及び／又は他のプロセスイベントに関連する情報を提供し、プロセス制御プラントによって実行されるプロセス又は複数のプロセスの状態に関連する情報又はデータを提供し、プロセス制御プラントに関連する装置の状態又は性能に関連する情報又はデータを提供する。特に、プロセス管理アプリケーションは、振動モニタリングアプリケーション、リアルタイム最適化アプリケーション、エキスパートシステムアプリケーション、予知保全アプリケーション制御ループモニタリングアプリケーション又は他の制御、モニタリング及び／又はプロセス制御システム又はプラントの維持に関連するアプリケーションを含み得る。
【０００６】
更に、プロセス制御プラント又は企業体は、プロセス制御システムをユーザに種々の異なる通信メディア及びプラットフォームを介して伝達するのに使用され得る一又はそれ以上の通信アプリケーションを含み得る。例えば、これらの通信アプリケーションは、電子メールアプリケーション、ページングアプリケーション、音声メッセージアプリケーション、ファイルベースのアプリケーションなどを含み得、これらは全て、無線又は有線の媒体を介してデスクトップコンピュータ、ラップトップコンピュータ、個人データアシスタント、携帯電話、ポケットベル、又はデバイスの他のタイプ若しくはハードウエアプラットフォームを介して情報を送り得る。
【０００７】
一般的に言えば、相互通信並びに情報技術システム、ユーザ対話式アプリケーション、プロセス管理アプリケーション及び通信アプリケーションの統合を可能とすることは、これらのシステム及びアプリケーションが典型的に企業体中に広範囲に分散し、ある場合には地理的に分散しているので、極端に困難となっている。更に、上述のシステム及びアプリケーションの多くは、例えば、ラップトップコンピュータ、携帯電話、ポケットベル、個人データアシスタント等のハンドヘルド又は携帯型のハードウエアプラットフォームを介して実行され、これらの多くは、例えばウエブブラウザ等の通信機能を有する複雑な顧客のアプリケーション又はソフトウエアを実行するのに適した動作環境を提供するように構成されている。
【０００８】
加えて、これらのシステム及びアプリケーションは、異なるシステム及びアプリケーションが互いに通信することを可能とする特注の通信インターフェイス又はソフトウエアドライバを典型的に要求している。結果として、企業体内のどのようなシステム、アプリケーションデバイス又はコンポーネントも、例えばファームウエアアップグレード、デバイスの交換等により変更された場合、そのシステム、デバイス又はコンポーネントのための特注の通信ドライバ又はインターフェイスもまた、変更されなければならない。明らかに、必要とされる多くの特注のドライバは、ドライバの保守に多くの時間を要する結果を生じ、このことは、高い企業体の保守コストを生ずる。更に、企業体又はプロセス制御プラントにシステム又はアプリケーションを付加するには、複数の特注のドライバ又はインターフェイスは新たなシステム又はアプリケーションが企業体内の他のシステム又はアプリケーションと通信することを可能とするために改変されなければならないので、莫大なプログラム上の努力をしばしば必要とする。従って、このような特注の通信インターフェイスを使用するシステムは、全く柔軟性及び拡張性がなく、例えば、あるプロセス制御システムを、プロセス制御システムの製造業者及び／又はサードパーティの製造業者若しくは開発会社によって提供される他のシステム又はアプリケーションと統合することは容易ではない。
【０００９】
更に、企業体内のシステムの柔軟性及び拡張性の改善に向けた最近の開発は、例えばＷｉｎｄｏｗｓ  ＸＰ（Ｒ），  Ｍｉｃｒｏｓｏｆｔ．ＮＥＴ（Ｒ）等の改良されたオペレーティングシステムの発展及び普及と、イーサネット（Ｒ）、ボイスオーバーインターネットプロトコル（ＩＰ）、ストリーミングビデオ等の通信プロトコルの発展とともに行われている。加えて、例えば、拡張マークアップ言語規約（ＸＭＬ）、シンプルオブジェクトアクセス制御（ＳＯＡＰ）、ユニバーサルディスクリプションディスカバリーアンドインテグレーション（ＵＤＤＩ）等の改良された情報及びデータ移送並びに中央データ格納のデバイス及び技術、例えば、Ｂｉｚｔａｌｋ（Ｒ）のような改良された統合システム又はサーバ、例えば、Ｊａｖａのような実行プラットフォームに依存しない改良されたプログラム言語、他の改良された通信のホスト、データ管理ツール、規約、プロトコル、プログラム言語などが開発されている。
【００１０】
最近の多くの発展は、企業体を構成している複数のシステムが互いに通信するように構成され得る容易さを向上させているが、これらのシステムが相互運用される全体に亘るシステムアーキテクチャは、公知のクライアント−サーバアーキテクチャから有意に変更されてはいない。多くの公知のクライアント−サーバアーキテクチャでは、クライアントは集められたデータ又は情報をサーバに送り、そしてシステムオペレータによって表示され及び／又は別に使用された処理された結果をサーバから受け取る。加えて、サーバは、一又はそれ以上のクライアントから受け取ったプロセスデータ上で動作するように、ビジネス又はデータベース規約を典型的に保持し実装し又は実行する。
【００１１】
不幸にも、一又はそれ以上の通信ネットワークを介して通信する複数の分散システムを有する企業体、プロセス制御プラント又はプロセス制御システム内の公知のクライアント−サーバアーキテクチャの使用は、サーバが典型的にビジネスロジック、データベース規約及び／又は他の集中的なデータ処理を保持し及び実行するため、比較的効率が悪い。その結果として、クライアントは、サーバとの多くの往復通信（即ち、情報又はデータのサーバへの送信要求、並びにサーバからの応答通信の受領）によって典型的に忙殺されることとなる。公知のクライアント−サーバアーキテクチャに基づく分散システム内の多くの往復通信は、制限され、従って貴重な通信ネットワーク又はチャネルのバンド幅の多くを消費してしまう。例えば、無線通信リンク（即ち、セルラー及びサテライトリンク）の場合、チャネルのバンド幅は比較的高価であり、従って、パケット、ビット等の単位当たりのコストは比較的高い。加えて、通信チャネル待ち時間（往復伝送時間）は実質的な時間遅延を生じ、これは多くのプロセス指向機能、特に実時間プロセス制御機能にとっては、受け入れることができない。
【００１２】
いずれにせよ、バンド幅の制限、コスト、通信チャネル待ち時間などによる通信の効率の悪さ又は困難性は、クライアントがプロセス指向機能に関与し、及び／又はサーバがプロセス指向ビジネスロジックを実装している状況に於いて深刻化するが、これは、これらのプロセス指向機能及びビジネスロジックを実行したサーバが、データ及びルールの頻繁な実行、従って頻繁な往復通信を要求するからである。同様に、例えば、企業体最適化アクティビティなどの企業体レベルのプロセスアクティビティに関与するクライアント及び／又はサーバもまた、頻繁な調整及び多量の情報又はデータの通信に典型的に巻き込まれる。従って、このような企業体レベルのアクティビティも、公知のクライアント−サーバアクティビティ（即ち、制限されたバンド幅、高いデータ伝送コスト、通信チャネルの待ち時間など）の通信の効率の悪さ及び困難性に悩まされる。
【００１３】
プロセス制御システム、プラント及び／又は企業体内の通信チャネル上に置かれる要求（並びにこれに関連する実装及び保守コスト）を低減させるために、幾つかのシステムは、公知の又は従来のクライアント−サーバアクティビティを維持しているが、しかし、サーバからクライアントへ、データ、ビジネスロジック、データベースルール及びデータ処理ロジックを移動しなければならない。一般的には、クライアントによって潜在的に使用され得る情報又はデータ及びルールの全ては、それらのクライアントに関連するローカルな格納装置に移動される。このような方法で、クライアントは、必要な情報、データ、ルール等にローカルに、それらのアクティビティを実行するためにアクセスし、それによってそうすることを要求されるネットワーク通信の量を減少させ又は最小化する。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
不幸にも、データ、ルールの実行、及び他の処理の義務を押し進めると、インストール及び運用が困難な「重たい」クライアントとなる。更に、公知のクライアント−サーバアーキテクチャで構成されているシステム内のこのような重たいクライアントの使用に基づくシステムは、比較的柔軟性に欠け、容易には拡張できないシステムとなる。特に、現存するクライアント−サーバアーキテクチャを使用する多くのシステムは、重いアドホッククライアントロジック及びデータ移送フォーマットに重く依存している。換言すれば、クライアントアプリケーションのそれぞれは、それ自身のバージョンのルールとデータベース構造を実行し得る。その結果、単純なデータベースの変更又は１以上のクライアントによって使用されるルールへの変更は、そのデータベース及び／又はルールを潜在的に使用する多くのクライアントアプリケーションの独自のそして時間を要する再構築を必要とする。更に、クライアントは、異なる製造者、開発チームなどが関連している異なるタイプのシステムに依存するので、与えられたルールが実装されるべき特定の方法がクライアントからクライアントへと大きく変化し、そのためにシステム保守（即ち、改変又は改良）アクティビティを非常に複雑にし及び高価にしている。更に、このような現存するシステムにクライアント−サーバを付加することは、そのクラアントが所望の方法で一又はそれ以上のルールを実行することを可能とし並びに他のクラアント及びシステム内のサーバが付加されたクラアント又はサーバと相互運用することを可能とするために、そのクラアントの時間のかかる構築を必要としている。不幸にも、現存するクラアントアプリケーションのために開発されたアドホックコードは、新たなクラアントアプリケーションに使用（即ち、再使用）するように適合されていない。その結果、このようなシステムへのクラアントアプリケーションの付加は、追加の新たなアドホックソフトウエア又はコードの開発を典型的に生ずることとなる。
【課題を解決するための手段】
【００１５】
本発明の一実施形態に従えば、プロセス制御システムに関連するデータベースをアクセスするシステム及び方法は、クラアントアプリケーションから中間データサーバプロセスに情報の要求を送り、そして、その中間データサーバプロセスに関連するデータソース内にその情報が格納されているかを決定する。開示されているシステム及び方法はまた、中間データサーバプロセスから他のプロセスへのその情報がそのデータソース内に格納されているかどうかの情報の要求を送り、そして、その情報に対する要求を受け取る他のプロセスに続いて、その情報の検索を行うためにそのデータベースにアクセスする。
【００１６】
本発明の他の実施形態に従えば、プロセス制御システムは複数の通信可能に接続された中間データサーバと、中間データサーバの一又はそれ以上と通信可能な複数のクラアントアプリケーションと、プロセス制御システムに関連する少なくともデータ及びルールを含む情報を包含するデータベースとを備えている。中間データサーバは検索を行い、クラアントアプリケーションの少なくとも幾つかの情報要求に従って情報のサブセットをそれぞれのローカルデータソースに格納するよう相互運用されるように適合している。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明に係る分散データ装置及び方法を使用する例示的な企業体１０のブロックダイヤグラムである。図１に示すように、企業体１０は、コントローラ１４を有するプロセス制御システム１２と、オペレータステーション１６と、ワークステーション１８及び２９を有し、これらは全て、一般的にはアプリケーション制御ネットワーク（ＡＣＮ）と称されるバス又はローカルエリアネットワーク（ＬＡＮ）２２を介して通信可能に接続されている。ワークステーション１８及び２０は、一又はそれ以上の情報技術アプリケーション、ユーザ対話アプリケーション及び／又は通信アプリケーションとして構成され得る。例えば、情報アプリケーションステーション１８は、主としてプロセス制御関連のアプリケーションを実行するように構成され得、一方、アプリケーションステーション２０は、主としてプロセス制御システム１２が他のデバイス又はシステムと他の通信媒体（例えば、無線、有線等）及びプロトコル（例えばＨＴＴＰ、ＳＯＡＰ等）の何れかを使用して通信するのを可能とする通信アプリケーションを実行するように構成され得る。もちろん、オペレータステーション１６並びにワークステーション１８及び２０は、一又はそれ以上のワークステーション又は他のどのような適切なコンピュータシステム若しくは処理システムを使用しても実装され得る。例えば、オペレータステーション及び／又はワークステーション１８及び２０は、単一プロセッサのパーソナルコンピュータ、単一又は多重プロセッサのワークステーション等を使用して実装され得る。
【００１８】
ＬＡＮ２２は、所望の通信メディア及びプロトコルを使用して実装され得る。例えば、ＬＡＮ２２は、周知の従ってここでは詳細について述べない有線又は無線のイーサネット（Ｒ）通信スキームに基づき得る。しかしながら、当業者によって容易に認識されるように、他のどのような通信媒体及びプロトコルも使用し得る。更に、単一のＬＡＮが示されているけれども、一つを超える数のＬＡＮと、オペレータステーション１６内の適当な通信ハードウエアと、ワークステーション１８及び２０が、これらのシステム間の冗長通信パスを提供するために使用され得る。
【００１９】
コントローラ１４は、複数のコンピュータ化したフィールドデバイス２４,２６及び２８に、デジタルデータバス３０及び入力／出力（Ｉ／Ｏ）デバイス３２を介して接続され得る。コンピュータ化したフィールドデバイス２４〜２８は、Ｆｉｅｌｄｂｕｓに準拠したバルブ、アクチュエータ、センサ等であり得、この場合には、フィールドデバイス２４〜２８は、周知のＦｉｅｌｄｂｕｓプロトコルを使用してデジタルデータバス３０を介して通信を行う。もちろん、他のタイプのコンピュータ化したフィールドデバイス及び通信プロトコルも、代わりに使用することができる。例えば、コンピュータ化したフィールドデバイス２４〜２８は、代わりに、周知のＰｒｏｆｉｂｕｓ又はＨＡＲＴを使用してデータバス３０を介して通信を行うＰｒｏｆｉｂｕｓ又はＨＡＲＴ準拠のデバイスであってもよい。追加のＩ／Ｏデバイス（デバイス３２と同様又は同じ）が、Ｆｉｅｌｄｂｕｓデバイスであり得るコンピュータ化したフィールドデバイスの追加のグループがコントローラ１４と通信し得るように、コントローラ１４に接続され得る。
【００２０】
コンピュータ化したフィールドデバイス２４〜２８に加えて、一又はそれ以上のコンピュータ化していないフィールドデバイス３４及び３６がコントローラ１４に通信可能に接続され得る。コンピュータ化していないフィールドデバイス３４及び３６は、例えば、それぞれの有線リンク３８及び４０を介してコントローラ１４と通信を行う通常の４〜２０ミリアンペア（ｍＡ）又は０〜１０ボルトの直流（ＶＤＣ）のデバイスであり得る。
【００２１】
コントローラ１４は、例えば、Fisher-Rosemount Systems, Inc. により販売されているＤｅｌｔａＶ（Ｒ）コントローラであり得る。しかしながら、他のどのようなコントローラであっても、使用することができる。更に、図１には１つのコントローラのみが記載されているが、所望の他のタイプの追加のコントローラ、又はそれらの組み合わせもＬＡＮ２２に接続され得る。何れの場合にも、コントローラ１４は、システムエンジニア又は他のシステムオペレータによってオペレータステーション１６を使用して生成され、コントローラ１４にダウンロードされインスタンスを作成された、プロセス制御システム１２に関連する一又はそれ以上のプロセス制御ルーチンを実行し得る。
【００２２】
図１に示されているように、例示の企業体１０はまた、プロセス制御システム１２に通信リンク４４、ＬＡＮ２２並びにワークステーション１８及び２０を介して通信可能に接続されたワークステーション４２を含んでいる。ワークステーション４２は、企業体レベルの機能を果たすように構成され、他のプロセス制御システム（図示せず）に関連づけられ及び主としてプロセス制御機能を果たし、一又はそれ以上の通信機能を果たすように構成される、などが可能である。加えて、ワークステーション４２は、地理的に離れて位置し得て、この場合には通信リンク４４は、例えば、無線通信リンク、インターネットベース又は他の切り替えパケットリンクベースの通信ネットワーク、電話回線（即ち、デジタル加入者線）、又はそれらの任意の組み合わせである。
【００２３】
例示の企業体１０は、以下の詳述されるデータ分散装置及び方法が有利に採用され得るシステムの一つのタイプを示すために掲げられている。しかしながら、本明細書に記載されているデータ分散装置及び方法は、所望なら、図１に示されている例示の企業体１０より複雑又は簡単な他のシステム、及び／又はプロセス制御アクティビティ、企業体管理アクティビティ、通信アクティビティなどに関連して使用されるシステムに於いても有利に採用され得る。
【００２４】
本明細書に記載されているデータ分散装置及び方法は、クラアントアプリケーションが共通のデータベース内に格納されているデータ及び／又はルールにアクセスし得る効率を最大化するために、複数の相互接続され又は通信可能に接続された中間データサーバとともに、階層化されたオブジェクト指向データベーススキーマを使用している。より詳細には、中間データサーバは、データベースから情報を選択的に検索するためにクラアントアプリケーションの予期された又は予め決められた情報又はデータ要求に関連する情報を使用し、及びクラアントアプリケーションがデータ又は情報に迅速かつ効率的にアクセスし得るように、このように選択的に検索された情報又はデータをローカルに格納する。
【００２５】
それらのローカルに格納されたデータに加えて、中間データサーバはまた、必要に応じて、ビジネス又はデータベースルールをローカルに格納し実行する。このように、中間データサーバは、ローカルクラアントアプリケーションによって必要とされる情報又はデータとともにロードされると、クラアントアプリケーションのアクティビティを実行するのに必要な往復の通信（及び時間）の量を実質的に減少させることができる。換言すれば、中間データサーバは、十分な量の情報及び関連するルールをローカルに格納（即ち、キャッシュ）する。このような情報及びルールは、企業体データベースから検索された情報及びルールのサブセットであり、これにより、ローカルクラアントアプリケーションが必要とする情報及びルールに迅速にアクセスし、その変更をデータベースに返す前に複数の連続した動作を実行することを可能とする。結果的に、クラアントアプリケーションは、中央の又は共通のデータベース（即ち、プラントレベル又は企業体レベルデータベース）に由来する情報、データ及び／又はルールへのアクセスを要求するクラアントアプリケーションの実行へと導くデータ待ち時間（通信チャネル待ち時間による）の量を最小化することができる。データと関連するルールのこのような分散により得られる処理速度の効率は、特に中央リポジトリ又はデータベースが企業体の全体に亘って分布する多くのシステムによってアクセスされる場合、及びクラアントアプリケーションとデータベースとの間の通信リンクが高度にストレスを受けている（即ち、そのリンクに接続されているシステムによって要求される情報を供給する固有の容量近く又はそれ以上）場合に、重要である。
【００２６】
図２は、周知のオブジェクト階層に基づいた、本明細書に記載されているデータ分散装置及び方法を実装するのに使用され得る例示のデータベーススキーマのダイヤグラムである。一般的には、図２に示されている例示のデータベーススキーマは、階層的に関連するオブジェクトのウエブとして構成されている。換言すれば、図２に示されているデータベーススキーマは、実質的に情報の全ての断片が階層内で別々のオブジェクトとして表現されるように、要素ごとの方法で情報を表すように構築されている。図２に示されている特定の実施例は、図１に示した企業体１０及びプロセス制御システム１２のようなプロセス制御システム又は企業体の制御システムの特徴を表すのに使用され得るスキーマの典型である。もちろん、図２のデータベーススキーマはほんの一実施例であり、多くの他のスキーマが代わりに使用され得る。例えば、スキーマの実行は、特定のスキーマが、実行時間中に、オフライン編集若しくは構成アクティビティのために、又は他の目的のために、使用されるべきかどうかに依存して変化する。
【００２７】
図２の例示の階層に示されているように、物理的なプラントを表すサイトオブジェクト５０（ＳＩＴＥ）は、図１の企業体１０のような企業体の全部又は一部であり、複数のエリアオブジェクト５２及び５４（ＡＲＥＡ Ａ及びＡＲＥＡ Ｂ）からなる。エリアオブジェクト５２及び５４は、サイトオブジェクト５０によって表されているプラント内の特定の物理的エリアに関連している。例えば、エリアオブジェクト５２は、プラントの特定の物理的位置に於ける生産工程の特定部分に関連し得、エリアオブジェクト５４は、サイトオブジェクト５０によって表されるプラントの他の物理的位置に位置し得るその生産工程（又は他の生産工程）の他の部分に関連づけ得る。
【００２８】
エリアオブジェクト５２及び５４は、それぞれの制御モジュール５６（ＭＯＤ Ａ）,５８（ＭＯＤ Ｂ），６０（ＭＯＤ Ｂ）及び６２（ＭＯＤ Ｃ）からなる。制御モジュールは、それぞれのプラントエリアに関連する制御機能又はアクティビティを実現するためにインスタンス化され実行され得る制御ルーチンを含んでいる。より詳細には、制御モジュール５６〜６２のそれぞれは、物理的な装置又はデバイスの一又はそれ以上の部分に関連づけられ得、従って、その装置又はデバイスをモニタし及び／又は制御するのに使用され得る。図２の例示の階層はエリア５２及び５４のそれぞれを２つの制御モジュールを有するとして記述しているが、単一又は２つ以上の制御モジュールがエリア５２及び５４のそれぞれに関連づけられ得る。
【００２９】
モジュール５６〜６２のそれぞれは、更なるオブジェクト及びサブオブジェクトからなっていてもよい。しかし、議論のために、このようなオブジェクト及びサブオブジェクは、モジュール５８（ＭＯＤ Ｂ）に関連してのみ以下に記述する。図２に示すように、モジュール５８は一又はそれ以上の属性６４及び６６（ＡＴＴＲ２及びＡＴＴＲ１）並びに一又はそれ以上の機能ブロック６８及び７０（ＢＬＯＣＫ１及びＢＬＯＣＫ２）に関連づけられ得る。属性６４及び６６は、例えば、入力変数、出力変数、又はプラント若しくは企業体内の物理的及び／若しくは制御条件に関連する同様のもののようなパラメータであり得る。機能ブロック６８及び７０は、それぞれ一又はそれ以上の数学的関数（例えば、加算演算、乗算演算、除算演算など）、論理関数又は表現（例えば、論理ＯＲ、ＡＮＤなど）、又は他の所望の関数を含み得る。機能ブロック６８及び７０のそれぞれは、また、一又はそれ以上の属性７２及び７４に関連づけられ得る。
【００３０】
属性及び機能ブロックに加えて、モジュール５８は、アルゴリズム７８に更に関連づけることができ、これは、一連の数学的及び／又は論理的演算を実行する一又はそれ以上のソフトウエアからなる。更に、図２に示す例示の階層は、一又はそれ以上のワイヤオブジェクト８０（ＷＩＲＥ）を含み得、これは、図２の例示によって表される全体に亘る制御階層の図式的表示に関連して使用されるワイヤの図式的表現に相当している。
【００３１】
図２の実施例に示されているようなオブジェクト階層及びデータベーススキーマは、ユーザ又はシステムオペレータが、グラフィカルユーザインターフェース等を介してプラントの構成及び制御システムについての詳細又は情報の所望のレベルを顕在化させるのを可能とする。換言すれば、ユーザ又はシステムオペレータは、必要な詳細レベルを顕在化させるために、オブジェクトから関連する一又はそれ以上のサブオブジェクトへ階層を詳細に検討する（即ち、階層を通過して移動する）ことができる。例えば、オブジェクト５２（ＡＲＥＡ Ａ）に関連する情報又はデータを顕在化した後、ユーザはモジュール５８（ＭＯＤ Ｂ）に関連し、続いてモジュール５８に関連するオブジェクト６４〜８０の何れかの情報又はデータを顕在化するために階層を詳細に検討することができる。
【００３２】
図３は、本明細書に記載されている方法及び装置に使用され得る例示のオブジェクト構成１００のより詳細な図である。図３の例示のオブジェクト構成１００は、図２に示されているオブジェクト及びサブオブジェクトのそれぞれを構成するための基本構造又はテンプレートとして一般化され使用され得る。図３に示すように、オブジェクト構成１００は、メインオブジェクト部１０２及び関連オブジェクト部１０４を含んでいる。メインオブジェクト部１０２は、関連オブジェクト１０６、特性１０８及び役割１１０を含んでいる。関連オブジェクト１０６は、情報又はデータの中で、一意の名称と同様に、メインオブジェクト部１０２によって表されるオブジェクトの名称を含み得る。特性１０８は、例えば、メインオブジェクト部１０２がモジュールの場合の記述及びスキャン速度のような、関連オブジェクト１０６のタイプの特性を含み得る。
【００３３】
役割１１０は、関連オブジェクト１０６と関連オブジェクト部１０４内の関連オブジェクト１１２及び１１４の一又はそれ以上との間の関連づけを特徴づける。役割１１０は、順方向及び逆方向に関連オブジェクト１０６と関連オブジェクト１１２及び１１４との間の関連性（即ち、またがり又は境界）を特徴づける。このような特徴付けは、例えば、関連オブジェクト１０６と関連オブジェクト１１２及び１１４との間の動作の許容される多様性及び許容される進展に関連する情報を含んでいる。例えばモジュールタイプのオブジェクトは、特定のブロックオブジェクトの多重インスタンスを有し得る。しかしながら、それらの使用の何れの一つも、単一のモジュールにのみ関連している。加えて、もし、ブロックオブジェクトの使用が削除されたなら（例えば、ユーザインターフェイスを介して）、そのブロックオブジェクト内の全ての属性及びブロック（即ち、それに依存する属性及びブロック）もまた、削除される。しかし、もし、ノード（例えば、エリア又はサイト）が現時点で割り当てられたモジュールを有しているなら、ノードの削除を避けることは好ましい。
【００３４】
特定の実施例では、メインオブジェクト部１０２は、例えば、モジュール５８（即ち、ＭＯＤ Ｂ）に相当し、従って、特性１０８は記述及びスキャン速度に相当し得る。役割１１０は、モジュール５８（即ち、関連オブジェクト１０６）を属性６４及び６６（即ち、関連オブジェクト１１２及び１１４）に関連づけ、更に、その属性が順方向に（即ち、関連オブジェクト１１２及び１１４から）、関連オブジェクト１０６へ進むべきことと、削除は関連オブジェクト１０６から関連オブジェクト１１２及び１１４へ（即ち、モジュール５８から属性６４及び６６へ）進むべきことを特定する。
【００３５】
図２及び図３に示されている例示のオブジェクト階層及びオブジェクト構造並びに上記のことは、ユーザ又はシステムオペレータが、プロセス制御システム、プラント又は企業体の構成情報（例えば、制御構成情報、物理的構成情報など）を含むデータベースを生成するのを可能とする。このような階層構造のデータベースは、そのデータベースによて表されるシステムの態様に関連する詳細の所望のタイプと量的なものとを顕在化させるように容易に詳細に検討され又はナビゲートされ得る。
【００３６】
過去の又は公知のシステムは、一又はそれ以上のクラアントアプリケーション又は他のエンティティによって通信ネットワークを介してアクセス可能なデータベースを維持している中央のリポジトリ又はサーバに、図２及び図３に示すようなオブジェクト構造を典型的に維持している。加えて、データベース内の情報に関連するルールは、データベース内に典型的に格納され、そしてクラアントアプリケーションのためにサーバによって実行される。このように、公知のシステムに於けるクラアントアプリケーションは、データ要求、ルール処理要求等を中央のサーバに依存している。結果的として、企業体又は他のシステムが複雑になるに従って、クラアント及びサーバを接続するネットワークを介して運ばれる通信の量が動的に増大し、これにより、クラアントアプリケーションの実行速度と処理効率が大幅に低減してしまうこととなる。
【００３７】
以下に記述する例示の分散データアクセス方法及び装置は、クラアントアプリケーションによるローカルなアクセス及び実行のために情報及びルール情報を分散させる一又はそれ以上の中間データサーバを使用している。換言すれば、図２の例と同様又は同じ方法で構築されたオブジェクトベースの階層型データベースが中央データリポジトリ（例えばサーバ）に常駐し、中間データサーバは、中間データサーバに対してローカルであるクラアントアプリケーションによって必要とされる関連するルールに従って、そのデータベースの負荷部分を要求し得る。データ及びルールはクラアントアプリケーションによって必要に応じてロードされた要求であり得るけれど、データ及び／又はルール処理要求の幾つか又は全てが実行時間に先立ってローカルな格納場所にロードされ得る。例えば、同じセット又はルールが、それぞれのクラアントの位置でネットアッセンブリ（例えば、ＤＬＬ）の共通のセットを用いてロードにロードされ得る。その場合には、実行時間の間に要求されたデータは特定のクラアントプロセスに到着し、そのデータは、そのローカルに格納されているルールのセットを用いて適当な階層的なデータ構造に自動的に変換される。
【００３８】
何れの場合も、本明細書に記載されている例示されたデータアクセス方法及び装置は、全てのクラアントアプリケーションがサーバ内に常駐している単一の中央データベースにその情報要求及びルール処理要求のためにインターフェイスするように要求するのではなく、データベース情報及び関連するルールを、ローカル又はクラアントアプリケーションに近接した中間データサーバに配信することができる。このように、本明細書に記載されているデータ分散装置及び方法は、クラアントアプリケーションが必要なデータにアクセスし及びそれらの機能を実行するために要求されるネットワーク通信（例えば、往復通信）の量を減少させ又は最小化するために採用され、これにより、クラアントアプリケーションにより早い実行時間と、アプリケーションの改善された流通をもたらす。
【００３９】
図４は、データベース１２６にアクセスするように相互運用される通信可能に接続された複数のデータサーバプロセス１２２及び１２４を有する例示のシステム１２０を表すブロックダイヤグラムである。データサーバプロセス１２２は、ワークステーション又はプロセッサシステム（例えば、図１のワークステーション１８，２０及び４２）内で実行される中間データサーバプロセスであり、一又はそれ以上のクラアントアプリケーション１２８及び１３０に近接して通信可能に接続されている。クラアントアプリケーション１２８及び１３０は、中間データサーバプロセス１２２及び／又はクラアントアプリケーション１２８及び１３０に通信可能に接続された他のワークステーション又はプロセッサシステムと同じワークステーション又はプロセッサシステム内にインストールされ得る。
【００４０】
中間データサーバプロセス１２２は、中間データサーバ１３２及びローカルデータソース１３６とデータベース接続１３８との間の情報又はデータの交換を調整するセッション１３４を含んでいる。一般に、中間データサーバ１３２は、一又はそれ以上のクラアントアプリケーション１２８及び１３０からデータの要求を受け取ったとき、中間データサーバ１３２はセッション１３４を介してデータソース１３６について要求されている情報又はデータがローカルで利用可能か（即ち、中間データサーバプロセス１２２のデータソース１３６内で利用可能か）を決定するために詳しく調べる。セッション１３４がデータソース１３６をどのようにして詳しく調べるのかについてのより詳細な記述は、以下の図５に関連して提供される。
【００４１】
図４には示されていないけれども、クラアントアプリケーション１２８及び１３０のそれぞれは、中間データサーバプロセス１２２に関連して示したセッション１３４、データソース１３６及びデータベース接続１３８と同様又は同じセッション、データソース及びデータベース接続をそれぞれ含み得る。このようにして、クラアントアプリケーション１２８及び１３０は、データサーバプロセス１２４と直接通信することができる（即ち、クラアントアプリケーション１２８及び１３０は、中間データサーバプロセス１２２を介してデータサーバプロセス１２４と通信する必要がない）。
【００４２】
もし、クラアントアプリケーション１２８及び１３０によって要求される情報がデータソース１３６からローカルに利用可能ではないなら、セッション１３４は、データベース接続１３８に、通信リンク４０を介して中間データサーバ１２４への情報に対する要求を送らせるようにする。これに加えて又はこれに代えて、クラアントアプリケーション１３０がデータベース１２６内に常駐するデータを要求した場合、クラアントアプリケーション１３０は、通信リンク１４１を介してデータサーバプロセス１２４から直接このようなデータ又は情報を要求することができる。もちろん、クラアントアプリケーション１２８は、それ自身のリンク（図示せず）を介してデータサーバプロセス１２４から直接情報を要求することができる。どのような場合にも、通信リンク１４０及び１４１は、無線又は有線媒体のどのような所望の組み合わせを使用しても実装され得、そして、通信プロトコル又は技術のどのような所望の組み合わせも採用し得る。例えば、通信リンク１４０及び１４１は、電話回線及び／又は切り替えパケット通信ネットワーク（例えば、インターネット）を含み得る。通信リンク１４０を介して送られるデータ又は情報は、好ましくは、しかし必ずではないが、拡張マークアップ言語（ＸＭＬ）を使用してフォーマットされ、例えば周知の伝送プロトコル（ＴＣＰ）又はハイパーテキスト伝送制御プロトコル（ＨＴＴＰ）に基づいた伝送メカニズムを使用して伝送される。加えて、例えばシンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）等のメッセージエンコーディングプロトコルがＨＴＴＰを使用して送られる情報とともに使用される。
【００４３】
データサーバプロセス１２４は、中間データサーバ１４２と、セッションプロセス１４４と、データソース１４６と、データベース１２６へのアクセスに使用されるデータベースアクセッサー１４８とを含んでいる。中間データサーバ１４２は、通信リンク１４０を介して中間データサーバプロセスプロセス１２２から、及び／又は例えば通信リンク１４１を介して一又はそれ以上のクラアントアプリケーション１２８及び１３０から、情報又はデータに対する要求を受け取る。上述のように、このような情報又はデータに対する要求は、セッションプロセスによって調整され、データベース結合を介して運ばれ、結局セッションプロセスはデータソースを詳しく検討し、要求された情報又はデータがローカルに利用可能ではない（例えば、ローカル中間データサーバプロセス内にキャッシュされていない）ことを決定する。中間データサーバ１４２は、要求される情報（即ち、最初に一又はそれ以上のクラアントアプリケーション１２８及び１３０によって要求された情報）がローカルに利用できるか（例えば中間データサーバプロセス１２４内にキャッシュされているか）を決定するために、セッションプロセス１４４を使用し、そのローカルデータソース１４６を詳細に検討する。もし、セッションプロセス１４４が要求される情報又はデータがデータソース１４６内で利用可能でないことを決定すると、セッションプロセス１４４は要求される情報又はデータをデータベース１２６からデータベースアクセッサー１４８を介して検索する。データベースアクセッサー１４８は、情報又はデータが、例示されている図２に示されているデータベース構造のような階層的に配されたオブジェクト指向データベース内に格納されるのを可能とするどのような所望のデータベースサーバプロセスであってもよい。
【００４４】
一度要求された情報又はデータがデータベース１２６から検索されると、情報又はデータは中間データサーバプロセス１２４によって通信リンク１４０を介して中間データサーバプロセス１２２に送られ、及び／又は例えば通信リンク１４１を介して一又はそれ以上のクラアントアプリケーション１２８及び１３０に直接送られる。中間データサーバプロセス１２２が検索された情報又はデータをデータベース接続１３８を介して受け取る場合は、それは検索された情報又はデータをセッションプロセス１３４及び中間データサーバ１３２を介してクラアントアプリケーション１２８及び１３０に送る。
【００４５】
このように、中間データサーバプロセス１２２は、クラアントアプリケーション１２８及び１３０によって必要とされる（即ち、オンデマンドで）場合に、クラアントアプリケーション１２８及び１３０によって要求された情報又はデータを格納するのにそのローカルデータソース１３６（例えば、ローカルキャッシュ）を使用する。情報又はデータ（例えばクラアントアプリケーション１２８及び１３０の一つ）及び中間データサーバプロセス１２２を要求しているクラアントアプリケーションに対して近接し又はローカルである中間データサーバプロセスが、そのローカルデータソース（例えば、ローカルデータソース１３６）内に要求された利用可能な情報をその時点で有していない場合、その情報又はデータに対する要求は、一又はそれ以上の他の中間データサーバプロセス（例えば、中間データサーバプロセス１２４）を通じて、究極的に企業体（例えば、企業体１０）に関連する構成データベース又はクラアントアプリケーションが動作している他のシステムを含むデータベース（例えばデータベース１２６）にアクセスするサーバ又は他のプロセスに送られる。
【００４６】
図４の実施例は、互いにチェインする２つの中間データサーバプロセスを記載しているが、所望なら２つより多くの中間データサーバプロセスを互いにチェインさせてもよい。その場合には、データベースアクセッサー１４８は、代わりに、他の中間データサーバプロセスに、究極的にはデータベース１２６のようなデータベースに通信可能に接続された他のデータベース接続（即ち、データベース接続１３８と同様又は同じ）であり得る。もちろん、クラアントアプリケーション１２８及び１３０はそれら自身のセッション、データソース及びデータ接続をそれぞれ有しているので、これらのアプリケーション１２８及び１３０は、データサーバプロセス１２４又は所望なら上述の他の同様若しくは同じデータサーバプロセスに直接アクセスすることができる。しかしながら、幾つかの場合には、データサーバプロセス１２４のクラアントアプリケーション１２８及び１３０による直接のアクセスは、中央データベース１２６上の通信要求を最小化するために、可能なら避けられる（即ち、もし、要求されたデータが例えば中間データサーバプロセス１２２でよりローカルに利用可能なら）。
【００４７】
データベース１２６に格納され、クラアントアプリケーション１２８及び１３０による使用のために中間データサーバプロセス１２４を介して運ばれた情報又はデータは、企業体に対するオブジェクト指向構成モデルを構成する情報又はデータを含んでいる。例えば、属性、データベースルール又は関連事項などを含む階層的に配されたオブジェクトに関連する全ての情報は、必要に応じ（又は、ルールの場合には、所望なら実行時間に先立って）、データベース１２６からクラアントアプリケーション１２８及び１３０の一つに運ばれ、ローカルに実行される。一度クラアントアプリケーション１２８及び１３０によって必要とされた情報又はデータがデータソース１３６にローカルに格納されると、クラアントアプリケーション１２８及び１３０によるその同じ情報に対する引き続く要求は、通信リンク１４０及び１４１を介する通信を生じない。結果として、図４に示されている例示のシステム１２０は、企業体又は他のシステムを作り上げている複雑な階層型オブジェクト指向構成データベース内に含まれている情報が、ローカルに分散されそして必要なら必要な場所に格納されるのを可能とし、これにより、企業体又は他のシステムを作り上げているクラアントアプリケーションの情報要求をサポートするのに必要なネットワーク通信の全体量を減少させる。
【００４８】
中間データサーバプロセス１２２及び１２４は、通信ネットワークの一部である通信リンク１４０を介して通信可能に接続されている物理的に離れたワークステーション又はプロセスシステム内にインスタンス化され得る。しかし、中間データサーバプロセス１２２及び１２４は、これに代えて、同じワークステーション又はプロセスシステム内にインスタンス化されることも可能である。
【００４９】
図４の例示のシステム１２０に示されている機能ブロックは、ソフトウエア、ファームウエア及びハードウエアの所望の組み合わせを使用して、オブジェクト、プロセス等として実装され得る。例えば、一又はそれ以上のマイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）等は、本明細書に記載されている装置及び方法を実装するために、マシン又はプロセッサがアクセス可能な格納媒体に格納された命令又はデータにアクセスし得る。格納媒体は、デバイスと、例えばランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消去可能な読み出し専用メモリ（ＥＥＰＲＯＭ）等の半導体格納媒体、光学格納媒体、磁気的格納媒体などの媒体とのどのような組み合わせも含み得る。加えて、図４に示されている機能ブロックを実装するのに使用される何れのソフトウエア又はファームウエアも、及びインターネット、電話回線、衛星通信等を介して追加的に又は代替的に送られ、そのソフトウエアを実行しているプロセッサ、単一のデバイス又は複数のデバイスによってアクセスされ得る。
【００５０】
図５は、クラアントアプリケーションが中間データサーバプロセスデータソース内に格納されている情報又はデータにアクセスし得る一つの方法の例を示す詳細な線図である。特にクラアントアプリケーションに対する状態が、一又はそれ以上のクライアントルート２００及び２０２によって保持されている。クライアントルート２００及び２０２はデータソース２０４上のウィンドウである。セッション２０は、クライアントルート２００及び２０２とデータソース２０４との間の相互作用を管理する。例えば、クライアントルート２００及び２０２はそれぞれのクラアントアプリケーション１２８及び１３０（図４）に対する状態を保持し、データソース２０４はデータソース１３６に対応し、セッション２０６はセッション１３４に対応している。このように、クラアントアプリケーション１２８及び１３０はデータソース１３６に直接アクセスする必要はなく、その代わりに、中間データサーバプロセス１２２内にその時点でローカルに格納されているデータに対して迅速かつ繰り返しアクセスされ得るそれぞれのアプリケーションの状態（クライアントルート２００及び２０２に対応する）を保持することができる。例えば、もし、クライアントルート２００に関連するクラアントアプリケーションがモジュールオブジェクト２０８（ＭＯＤ  Ａ）に関連づけられている情報を要求しているなら、セッション２０６は、モジュールオブジェクト２０８により必要とされている情報を検索するために、クライアントルート２００及びサイトオブジェクト２１０を詳細に検討する。他方、もし、クライアントルート２００に関連するクラアントアプリケーションが属性２１２（ＡＴＴＲ１）に関連する情報を要求するなら、セッションプロセス２０６は、属性２１２に関連する情報を検索するためにデータソース２０４詳細に調べ、このような情報がクライアントルート２００に関連するアプリケーション状態に加えられるように送る。更にまた、クライアントルート２００に関連するクラアントアプリケーションがローカルに格納されていない（即ち、データソース２０４に既に格納されていない又はロードされていない）情報を要求したなら、セッションプロセス２０６は、中間データサーバプロセス２１４からこのような情報を検索し得る。中間データサーバプロセス２１４は、例えば、図４に示されている中間データサーバプロセス１２２及び１２４に相当し得る。２つのクライアントルートが図５に記載されているが、一又は二より多い数のクライアントルートがこれに代えて使用し得る。
【００５１】
上述の図４及び５に関連して概略的に記載したように、クラアントアプリケーションによって必要とされている情報（即ち、属性値、ルール等を含むオブジェクトデータ）は、デマンドロード（即ち、データベースから検索され必要に応じてローカルにキャッシュされる）であり得る。本明細書に記載されている装置及び方法は、要素ベース（即ち、同時に一つのオブジェクト）で情報をデマンドロードにする一方、更なる通信効率が、データベースアクセスのパターン及びアプリケーションによって本質的に要求されるより幾分多い情報をデマンドロードすることにより達成される。換言すれば、データベースアクセスのパターンは、情報の特定の断片に対する次のアプリケーションの要求に必要とされそうな情報が何であるかを予測するのに使用され得る。例えば、クラアントアプリケーションが、モジュールオブジェクトから属性役割へと詳細に検討し（即ち、クラアントアプリケーションが他のデータサーバからの属性役割情報を要求する）、次に属性値に対する要求が通常は続いて起こるが、これは、このような情報が属性名称とタイプに従って通常は表示されるからである。このように、通信効率を向上させるために（即ち、ネットワーク通信の全体の量を減少させるために）、属性値は属性役割情報に従って常に送られる。より詳細には、通信効率は、アプリケーションに特有の情報要求パターンを予測し、次に情報をこれらのアクセスパターンに一致してネットワーク通信（即ち、クラアントアプリケーションによって必要とされている情報を得るのに必要な往復通信の回数）を最小化するようにまとめる。
【００５２】
クラアントアプリケーションがシステムデータベースにオフラインアクセスを要求したなら（例えば、オフライン編集セッションが望まれているとき）、データベース全体の内容（即ち、全てのルール及びデータ）は要求され、そしてローカルにキャッシュされる。このように、クラアントアプリケーションはシステムユーザがオフラインの完全な編集セッションに関与するのを可能とする。全てのルールはローカルに利用可能であるので、ローカルルールのチェックは、続くデータ同期とクラアントアプリケーションの中央データベースへの再接続（即ち、オフライン編集セッションの終了）に際してのアクティビティの調整を容易とするために、このようなオフライン編集セッションの間に使用され得る。このような同期とアクセスの調整は、以下の例示のオブジェクト変更技術を使用して実装され得る。
【００５３】
クラアントアプリケーション（即ち、アプリケーション１２８及び１３０）は、ローカルに格納されキャッシュされたデータソース（例えば、データソース１３６）内に格納されている情報にアクセスし、この情報を変更又は改変し得る。例えば、クラアントアプリケーション１２８（図４）はクライアントルート２００（図５）に対応し、モジュール２０８に関連する情報にアクセスするためにクライアントルート２００を詳細に検討する。クラアントアプリケーション１２８が、そのデータベースルールの対象となっている（即ち、ルールチェック）トランズアクションの状況内のモジュール２０８の情報（例えば、役割及び／又は特性）を変更しようとする。もし、トランスアクションがネストされ、従ってモジュール２０８に関連する情報の変更又は改変への更なる試みが行われ、他の汚れたオブジェクトが生成されて更に変更されたものが格納される。追加の汚れたオブジェクトは、付加的な内部のネストされたトランスアクションが実行されるに伴って生成し得る。一度最も内部のネストされたトランスアクションが関与すると、最も内部の汚れたオブジェクトに反映された変更は、次の外部のトランスアクションに関連する汚れたオブジェクトに伝達される。汚れたオブジェクト変更情報の内部トランスアクションから次の外部トランスアクションへの伝達は、内部オブジェクトが関与している場合に続けられ、全ての変更が最も外側のトランスアクションに関連するその汚れたオブジェクトに伝達されるまで継続される。最も外側のトランスアクションの関与は、恒久的な変更を生じ、それにより、どのような変更の巻き返し（即ち、そのトランスアクションの開始前のアプリケーションの状態への変更）をも阻止する。
【００５４】
上述のように、トランスアクション（及びネストされたトランスアクション）は、アプリケーションがそれぞれのクライアントルート内のオブジェクト情報への変更をもたらし及び記録するのを可能とする。しかしながら、クラアントアプリケーションは、データベース（例えば、データベース１２６）にオブジェクトの変更を追加的に書き込み又は記録し、それにより、必要に応じて、そのデータベースに接続された中間データサーバの全てが、それぞれのクラアントアプリケーションに変更された情報を提供するのを可能とする。好ましくは、しかし必ずではないが、クラアントアプリケーションによるオブジェクト情報への恒久的な変更は、クラアントアプリケーションからの自動指令に応答し、及び／又はシステムユーザ又はオペレータからの指令に応答して、そのデータベース（例えば、図４のデータベース１２６）に書き戻されることができる。
【００５５】
最初に、クライアントルート（例えば、クライアントルート２００）に関与する（即ち、恒久化される）変更がそのクライアントルートに関連するデータソース（例えば、データソース２０４）にセッションプロセス（例えば、セッションプロセス２０６）を介して書き込まれる。セッションプロセスは次に、クライアントルートに行われた幾つかの変更をデータソース（例えば、それに接続されるオブジェクトの何れかを含むデータソース２０４）に伝達する。セッションプロセス２０６は、次に、変更されたデータソース情報をそのデータベースが接続されている中間データサーバに送る。中央データベースと変更された情報を送っているデータソースとの間に介在する中間データサーバが２つ又はそれ以上の場合、その変更はデータサーバからデータサーバへとそれらがデータベースに到達するまで送られる。プラットフォーム非依存性及びシステム全体の柔軟性向上を容易にするために、好ましくは、しかし必ずではないが、情報はＸＭＬ文書の形式で中間データサーバの間を伝送される。データベースがデータベースルールを強要され、そして、もし、データベースに提供される情報の何れかが（例えば、受け取ったＸＭＬ文書のうちで）、このようなルールに従わないなら、データベースはその変更を拒絶する（即ち、記録しない）。
【００５６】
データベースによって受け取られ及び容認された変更は、次に、一又はそれ以上の中間データサーバを介し企業体に関連するデータソースの全てに伝達される。例えば、データベースに受け取られ及びこれに保存された変更の全ての包括的なリストを含むＸＭ文書は、その変更を生成したクライアント及び／又はその企業体若しくはシステム内の中間データサーバの幾つか若しくは全てに戻すように非同期的に伝達され得る。同様に、変更情報の結果ではないデータベース内に生成した、一又はそれ以上のクラアントアプリケーションによって中央データベースに伝達されている変更は、データサーバ及び従ってその企業体を構成しているデータソースに、変更通知メカニズムとして同期的に伝達され得る。このような変更通知メカニズムは、データのデータソースによる十分な活用を可能とするため、例えば、階層的な方法で配置されたデータを含むＸＭＬ文書を使用して実装され得る。このようなＸＭＬ文書を受け取るデータソースは、先にロードされている文書内のオブジェクトをスキップし、そして、そのデータソースに接続されたクライアントに関連するそれらの変更のみを含んだ新たな縮小されたＸＭＬ文書を生成することができる。
【００５７】
図６は、複数の処理システム３０２,３０４,３０６及び３０７を有する例示のシステム３００を表すブロックダイヤグラムである。処理システム３０２,３０４,３０６及び３０７は、データベース３１４にアクセスするためのそれぞれの中間データサーバ３０８,３１０及び３１２を使用する。加えて、処理システム３０４及び３０７は、実行時サーバ３１７にアクセスするために、それぞれの中間データサーバ３１５及び３１６を使用する。システム３０２は、例えば、一又はそれ以上のウィンドウズ（Ｒ）ベースのクラアントアプリケーション３１８を実行するアプリケーションステーション（例えば、図１のワークステーション１８,２０及び４２の一つ）であり得る。クラアントアプリケーション３１８は、データソース３２２に接続されたクライアントルート３１９及び３２０を含んでいる。データソース３２２は、データベースサーバ３２４を介する中間データサーバ３１２を介してデータベース３１４に接続され得る。システム３０２はまた、以下により詳細に記載するように、システム３０４に通信可能に接続されているウエブクライアント３２６を含み得る。
【００５８】
システム３０４は、例えば、一又はそれ以上のセッション状態３３０（これはアプリケーション状態に類似している）を有するインターネットサーバプロセス３２８を実行するウエブサーバ（これはワークステーション又はその他の処理システムを使用して実装される）であり得る。セッション状態３３０は、クライアントルート３３２及び３３４とそれぞれのデータソース３３６及び３３８とを有し、これらは中間データサーバ３１０及び３１５に通信可能に接続されている。従って、セッション状態３３０は、データベース３１４及び／又は実行時サーバ３１７内に格納された情報（例えば、データ、ルール等）にアクセスすることができる。また、システム３０４は、インターネットサーバプロセス３２８に通信可能に接続されたウエブクライアント３４０を含み得る。このように、ウエブクライアント３２６及び３４０は、それぞれ一又はそれ以上のセッション状態３３０の一つ（即ち、クライアントルート３３２及び３３４の一つ）に相当し得、そして、データベース３１４及び／又は実行時サーバ３１７とここで記述した方法を使用して情報を交換するために、中間データサーバ３１０,３１２,３１５及び３１６と同時に使用される。
【００５９】
上述のように、本発明は特定の実施形態を参照して記述されているが、これらは例示のみを意図し、本発明を限定するものと解してはならなず、本発明の思想から逸脱することなく、開示されている実施形態に変更、付加又は削除が為され得ることは、当業者に明らかであろう。
【図面の簡単な説明】
【００６０】
【図１】本発明に係る装置及び方法が実行される企業体に一例を部分的に示すブロックダイヤグラムである。
【図２】公知のオブジェクト階層に基づく、本発明に係る装置及び方法を実行するために使用されるデータベーススキームの一例を示すダイヤグラムである。
【図３】本発明に係る装置及び方法に使用されるオブジェクト構成の一例を示すダイヤグラムである。
【図４】データベースをアクセスするように相互運用される複数の中間データサーバを含むシステムの一例を示すブロックダイヤグラムである。
【図５】クラアントアプリケーションが中間データサーバに関連するデータソース内に格納される情報又はデータにアクセスする一つの方法の例を示す詳細ダイヤグラムである。
【図６】データベースをアクセスするために中間データサーバを使用する複数の処理システムを有するシステムの一例を示すブロックダイヤグラムである。
【符号の説明】
【００６１】
１０  企業体
１４  コントローラ
１２  プロセス制御システム
１６  オペレータステーション
１８  ワークステーション
２２  ＬＡＮ
２０  ワークステーション
２２  ＬＡＮ
２４  フィールドデバイス
２６  フィールドデバイス
２８  フィールドデバイス
２９  ワークステーション
３０  データバス
３２  デバイス
３４  フィールドデバイス
３６  フィールドデバイス
３８  有線リンク
４０  有線リンク
４２  ワークステーション
４４  通信リンク
５０  サイトオブジェクト
５２  エリアオブジェクト
５４  エリアオブジェクト
５６  制御モジュール
６２  制御モジュール
６８  機能ブロック
７０  機能ブロック
７２  属性
７４  属性
７８  アルゴリズム
８０  ワイヤオブジェクト
１００  オブジェクト構成
１０２  メインオブジェクト部
１０４  関連オブジェクト部
１０６  関連オブジェクト
１０８  特性
１１０  役割
１１２  関連オブジェクト
１１４  関連オブジェクト
１２０  システム
１２２  データサーバプロセス
１２４  データサーバプロセス
１２６  中央データベース
１２８  クラアントアプリケーション
１３０  クラアントアプリケーション
１３２  中間データサーバ
１３４  セッション
１３６  ローカルデータソース
１３６  データソース
１３８  データベース
１４１  通信リンク
１４２  中間データサーバ
１４４  セッションプロセス
１４６  ローカルデータソース
１４８  データベースアクセッサー
２００  クライアントルート
２０２  クライアントルート
２０４  データソース
２０６  セッション
２０８  モジュールオブジェクト
２１０  サイトオブジェクト
２１２  属性
２１４  中間データサーバプロセス
３００  システム
３０２  処理システム
３０４  処理システム
３０６  処理システム
３０７  処理システム
３０８  中間データサーバ
３１０  中間データサーバ
３１２  中間データサーバ
３１４  データベース
３１５  中間データサーバ
３１６  中間データサーバ
３１７  実行時サーバ
３１８  クラアントアプリケーション
３１９  クライアントルート
３２０  クライアントルート
３２２  データソース
３２４  データベースサーバ
３２６  ウエブクライアント
３２８  インターネットサーバプロセス
３３０  セッション状態
３３２  クライアントルート
３３４  クライアントルート
３３６  データソース
３３８  データソース
３４０  ウエブクライアント
【図１】
2004280813.tif 000003
【図２】
2004280813.tif 000004
【図３】
2004280813.tif 000005
【図４】
2004280813.tif 000006
【図５】
2004280813.tif 000007
【図６】
2004280813.tif 000008
【外国語明細書】
2004280813000001.pdf