"複数のクライアントに、共有キャッシュを有するデータベースに格納されたコンポーネントへの並列アクセスを提供するためにデータベースサーバを使用する方法において、クライアントが前記データベース内のコンポーネントへのアクセスを要求するときに、前記コンポーネントに関してクライアントと通信するデータベースサーバ内に通信コンポーネントオブジェクトを生成し、共有メモリオブジェクトが前記共有キャッシュ内で確立されなかったか否かを判断し、前記共有メモリオブジェクトが、前記共有キャッシュ内で確立されなかった場合に、前記共有キャッシュ内の前記コンポーネントのために前記共有メモリを生成し、前記共有メモリオブジェクトと前記通信コンポーネントと間に通信回線を提供するステップと、前記データベースから読み出し、該データベースへ書き込むための前記共有メモリオブジェクトを使用し、これによって、前記データベースから前記コンポーネントを読み出し、前記データベース内へ前記コンポーネントを書き込むステップとを有し、2つ以上のクライアントが同一のコンポーネントにアクセスするときに、2つ以上の通信コンポーネントオブジェクトは、同一の共有メモリオブジェクトに通信可能に結合されることを特徴とする方法。前記コンポーネントのうちの1つへの変更を検出し、前記コンポーネントのうちの1つにアクセスする前記クライアントの各々に、前記検出された変更について通知するステップを更に有することを特徴とする請求項1記載の方法。前記コンポーネントのうちの1つのための共有メモリオブジェクトに、前記データベースから前記変更されたコンポーネントを読み出させるステップを更に有することを特徴とする請求項2記載の方法。前記通信コンポーネントのうちの1つが前記共有メモリオブジェクトのうちの1つにアクセスするときに、前記共有メモリオブジェクトのうちの1つをロックし、これによって、前記通信オブジェクトのうちの1つが前記共有メモリオブジェクトにアクセスするときに、前記通信オブジェクトのその他のものが前記共有メモリコンポーネントにアクセスすることを防止するステップを更に有することを特徴とする請求項2記載の方法。近年、しかしながら、幾つかのプロセス制御システムのサイズに対する一般的な増加があり、また、より大きい又は離隔された地理的なエリアに亘って拡散又は分配されたプロセス制御ネットワーク用に、コンフィギュレーション情報を統合したいという要望があった。例えば、或るユーザは、異なるプロセスサイトに関連するコンフィギュレーションデータを結合することを望み、当該プロセスサイトは、異なる郡,州,又は更には異なる国に存在する可能性がある。それによって、第1のサイトにおけるオペレータに対して、第2のサイトについてのコンフィギュレーション情報へのアクセスおよび該コンフィギュレーション情報の閲覧を許容し、更には、第1のサイトから第2のサイトに影響を与えるコンフィギュレーション動作を行うことさえ許容することも可能である。別の例では、ユーザが、海洋を遠く離れ、精油プロセス制御システムを備えたプラットフォーム上での油井を、本土に存在する多数のコントローラおよびユーザインタフェース等を用いて統合したいと要望するかも知れない。この場合、精油サイトにおけるユーザに対して、前記プラットホームまで実際に飛んで行くことなしに、油井プラットホームでのデバイスの再設定又は設定コンフィギュレーションに影響を与えることを可能とすることが望ましい。つまり、現在一般的に必要であるように、油井プラットホームのターミナルにユーザインタフェースを接続し、油井コントローラを再設定するのである。さらに、複数のプロセス制御サイトの統合にあっては、これらのサイトのコンフィギュレーションデータベースに同時にアクセスすべく用いられ得るユーザインタフェースの数はかなり増加する。複数の地理的に離隔したサイトを統合する際には、しかしながら、それは、距離に起因して、イーサネット登録商標バスの如き共通の専用バスを使用する異なるサイトを接続することが、実際には不可能である。しかしながら、衛星,セルラー,若しくはその他の種類の無線接続、又はインターネット若しくはT1回線の如き広域ネットワーク接続を使用すること、プロセス制御システムの異なるサイト間の通信接続を確立することは可能であり、それによって、プロセス制御ネットワークの地理的に離隔した部分の統合を可能にする。しかし、衛星,セルラー,およびその他の広域無線通信接続は、概して、その使用に際して非常に高価であり、これらが、イーサネット登録商標バスの如き専用バスと比較して限られた帯域幅のみを提供することができるように一般に共有される。同様に、インターネット,T1回線,およびその他の共有広域ネットワークは、限られた帯域幅又はスループットだけを提供するので、専用のイーサネット登録商標ローカルエリアネットワークバスと比較して、概してデータ転送が非常に遅い。また、異なるサイト間の地理的な距離と、例えばデータパケットの認証を用いるサイト間の安全な保証された通信を提供するために必要なこととは、IF,TCP,およびUDP通信プロトコルにおいて提供されるように、サイト間の通信の遅れを更に増大する。プロセス制御システムの地理的に多様なサイト間の通信における遅れと、コンフィギュレーションデータベースにアクセスするユーザインタフェース又はその他のデバイスの数の増加との結果として、異なるサイトの全てにおけるユーザによるアクセスのような、また、現状のコンフィギュレーションデータベースのアクセス手順を用いて異なるサイトにおけるユーザによる変更のような、地理的に多様なサイトの各々でのデバイスを含むプロセス制御システム全体のためのデータを格納するコンフィギュレーションデータベースを提供することは難しい。特に、コンフィギュレーションデータベースがメインサイトにあるならば、リモートサイトにおけるユーザが、遅いリンク又はリモートリンクを通じてリフレッシュ単位でコンフィギュレーションデータの全てをダウンロードしなければならなず、甚大な時間をとられることになる。また、コンフィギュレーションデータベースにアクセスしているユーザの数の顕著な増加は、コンフィギュレーションデータベース内の如何なる情報へのアクセス時間をも容認できないレベルにまで増大することになる。同様に、プロセス制御システムを再設定する際、メインサイトおよびリモートサイト間の通信の遅れは、2人の異なるユーザに対して、混乱およびエラーに導く、プロセス制御システムの同一のコンポーネントの再設定を行わせる。このように、例えば、リモートサイトにおけるユーザは、メインサイトでのコンフィギュレーションデータベースからのプロセスの現在のコンフィギュレーションを要求し、得ることが可能であり、リモートサイトでのプロセス制御システムの部分を再設定し、それから、メインサイトでのコンフィギュレーションデータベースに新しいコンフィギュレーションデータを送信することが可能である。一方、しかしながら、メインサイトにおけるユーザは、プロセス制御システムの同一部分を再設定することが可能である。なぜなら、メインサイトでの通信に比較的遅れがないからであって、リモートサイトにおけるユーザは、エラーを導く、格納のためにコンフィギュレーションデータベースへリモートサイトで生成された新しいコンフィギュレーションデータを送ろうとする前に、この新しいコンフィギュレーションをコンフィギュレーションデータベースに格納することが可能である。場合によっては、異なるサイト間での遅く小さい帯域幅の通信リンクを提供することでさえ、不可能であるか又は実用的ではないかも知れない。この場合、リモートサイトのコンフィギュレーションは、リモートサイトでなされなくてはならず、従ってメインサイトでコンフィギュレーションデータベースにアップロードされなければならない。しかし、このオフラインのコンフィギュレーションは、異なるユーザが同時又は略同時にリモートサイトを再設定しようとする場合に、又はリモートサイトを既に再設定した別のユーザが該リモートサイトに既になされた変更を反映するためにコンフィギュレーションデータベースを更新する前に、最初ののユーザが再設定しようとした場合に、問題を引き起こすことがあり得る。本願発明は、プロセス制御システムの異なる位置が、小さい帯域幅若しくは遅い即ち、遅延された通信回線を介して通信可能に接続されるか、又は例えばモデム接続を介して間欠的に通信可能に接続されるときであっても、異なる位置の各々におけるユーザに、タイムリーで、安全で、且つ非矛盾したコンフィギュレーションデータベースの変更を可能とするように、共通のコンフィギュレーションデータベースを用い、プロセス制御システムの多数の地理的に離隔した位置を統合することを可能にするための、コンフィギュレーションデータを格納および使用する方法、データベースコンポーネントへのアクセスを提供する方法、およびデータベースに格納されたコンポーネントへの並列アクセスを提供するためにデータベースサーバを使用する方法、並びにコンフィギュレーションデータベースシステム、分散型のコンフィギュレーションデータベースシステム、およびプロセス制御システム、並びに、本システムに用いるデータベースサーバを提供することを目的とする。本願発明の1つの観点によれば、共有されたコンフィギュレーションデータ、例えば、複数の位置に関連する又は複数の位置に適用可能なコンフィギュレーションデータが、遅い又は小さい帯域幅の一又は複数の通信回線を介してその他の位置の各々によって評価可能なデータベースに格納されるように、また、特定の位置だけに関連するデータが、その位置でコンフィギュレーションデータベースに格納されるように、プロセス制御システムの異なる地理的な部分上又は部分を介して分散されたコンポーネントを備える分散型のコンフィギュレーションデータベースを提供する。このように、特定の位置で最もアクセスされると思われるコンフィギュレーション情報例えば、その位置に関連するコンフィギュレーション情報は、その他の位置に関連するコンフィギュレーション情報が遅い又は小さい帯域幅の通信回線を通じてアクセスされ得る一方、ローカルエリアネットワークを通じてアクセス可能である。その結果、共有通信データと異なる位置に関連するデータだけは、遅い又は小さい帯域幅の通信回線を通じて送信される必要がある。プロセス制御システム内でユーザによって見られているコンフィギュレーションデータが古くなることを防ぐ目的から、各位置でのコンフィギュレーションデータベースアクセスシステムは、そのデータを現在見ているユーザの各々に、コンフィギュレーションデータベースになされた変更を自動的に送信することが可能であって、あたかもコンフィギュレーションデータベース内にそのデータが存在するかのように、ユーザがコンフィギュレーションの状態を見ることができる。1つの実施形態において、コンフィギュレーションデータベースの各部分は、コンフィギュレーションデータベースへの読み出し回数を低減するように、コンフィギュレーションコンポーネントの伝達をそのデータを現在見ているユーザの各々に又は予約者に調整する共有キャッシュを使用するデータアクセスルーチンを有しており、コンフィギュレーションデータベースからデータにアクセスする速度を増大する。この共有キャッシュは、コンフィギュレーションデータベース内でコンポーネントのロックと予約とを可能にするロックメカニズムを組み込むことが可能である。望むならば、たとえ、その情報のマスターコピーを格納するコンフィギュレーションデータベースへの通信回線が、切断されるか、又は利用できなくなるとしても、各々のユーザによって得られたコンフィギュレーション情報は、ユーザがコンフィギュレーション情報を見ることができるように、ローカルに格納されることが可能である。以下、本願発明の実施形態を図面を参照しながら説明する。図1において、プロセス制御システム10は、双方向チャネルからなる第1の上り回線/下り回線チャネル20と第2の上り回線/下り回線チャネル22とを有する衛星18によって構成された衛星通信回線16を介して通信可能に接続された地理的に離隔した第1および第2のサイト又は位置12,14を備えている。第1のサイト12ここでは、ローカル又はメインサイト12と称すは、例えば、イーサネット登録商標又はその他の任意の好ましいバス又は通信線である専用のローカルエリアネットワークバスLANバス34を介してユーザインタフェース28に接続された、2つのプロセスコントローラ24,26と、コンフィギュレーションデータベース30と、データサーバ32とを備えている。ユーザインタフェース28は、任意の好ましい種類のホストワークステーション又はコンピュータであり、例えば、任意の種類のパーソナルコンピュータ,ラップトップコンピュータ等である。この際、コンフィギュレーションデータベース30は、スタンドアローン型のデータベース装置、又は例えばユーザインタフェース28若しくはデータサーバ32の如きその他の任意のデバイスに統合されていてもよい。データサーバ32は、データサーバ32が第2のプロセス制御サイト14へ遅い又は小さい帯域幅の通信回線16を通じて通信するために使用するアンテナ39を備える。なお、ここでは、第2のプロセス制御サイト14をリモートサイト14と称す。前記プロセスコントローラ24,26の各々は、一又は複数の入力/出力IO装置36に接続されている一方、該IO装置36は、従来の420ミリアンペアのデバイス38又は任意の好ましい種類のフィールドデバイスFD例えば、HART商標,PROFIBUS商標,アクチュエータセンサインタフェースASInterface,WORLDFIP商標,DeviceNet商標,CAN,FOUNDATION登録商標Fieldbus以下にFieldbusと称す等のような高性能フィールドデバイス40に接続され得る。勿論、前記デバイス38,40は、プロセス制御システム10内で任意の制御,測定,又はその他の機能を行い得る任意の好ましい種類のデバイス例えば、センサ,送信機,バルブ,ファン,ミキサー,ポジショナー等とすることが可能である。前記プロセスコントローラ24,26は、任意の公知の又は好ましい種類のIO装置36と、前述した何れかに関連する通信プロトコルとを用いるフィールドデバイス38,40と通信することが可能である。概括して言えば、プロセスコントローラ24,26は、その一例として、本願出願人であるフィッシャーローズマウントシステムズインコーポレイテッド社から販売されているDeltaV登録商標コントローラとすることが可能であり、各々は、プロセッサと、データを格納するメモリと、プログラムと、メインサイト12でプロセスプロセス制御システム10の制御を実行すべく用いられる制御ルーチン例えば、プロセス制御モジュールとを備えている。概括して言えば、前記プロセスコントローラ24,26は、フィールドデバイス38,40から信号を受信し、プロセス制御ルーチンを実行して、それによってプロセスプロセス制御システム10の制御を実行するために前記デバイス38,40に制御信号を与える。同様に、前記リモートサイト14は、専用のローカルエリアネットワークバスLANバス58例えば、イーサネット登録商標又はその他の好ましいバス又は通信線を介してユーザインタフェース52,53に接続された、プロセスコントローラコントローラ50と、コンフィギュレーションデータベース54と、データサーバ56とを備えている。前記コントローラ50は、2つの高性能フィールドデバイスFD62にIO装置60を介して接続されているように図示してあるが、その他の任意の個数又は種類のフィールドデバイスに接続され得るものである。前記データサーバ56は、遅い又は小さい帯域幅の回線16を介してデータサーバ32と通信するためにアンテナ64を利用し、これによって、ローカルサイト12とリモートサイト14との間における通信を達成する。リモートサイト14内の各デバイスは、ローカルサイト12内の対応する各デバイスと同一又は同様のものであり得、リモートサイト14においてプロセス制御および報告動作を行う。同様に、任意の好ましい方法でプロセス制御およびコンフィギュレーション動作を行うために、サイト12,14の何れか一方又は両方において、その他のデバイス又は更にその他の個数のデバイスが接続できるということである。実際、前記サイトのうちの1つ例えば、リモートサイト14は、望むならば、ユーザインタフェースのような単一のデバイスであり得る。前記データサーバ32は、直接コンフィギュレーションデータベース30に接続され得、また、同様に、前記データサーバ56は、イーサネット登録商標バスを介して接続される代わりに、直接コンフィギュレーションデータベース54に接続され得る。このように、前記データサーバ32,56は、2つのLANバス34,58間の通信接続を提供するために動作するものであって、これによって、ローカルサイト12およびリモートサイト14内のデバイス間の通信を可能にする。前記通信回線16が衛星回線として図示されているが、代わりに、例えば、セルラー回線,モデム,電話回線、インターネット回線,その他の任意の無線回線,又は広域若しくは共有ローカルエリアネットワーク回線等のその他の任意の通信回線が用いられ得る。勿論、任意の好ましい通信方法が、前記回線16を介したデータ通信を提供すべく、通信回線16内で使用されることが可能である。従って、任意の通信プロトコル例えば、IP,TCP,又はUDPプロトコルが使用されることが可能であり、例えば、任意の変調技術,エラー符号化技術等が、例えばスペクトル拡散技術を含む回線16を介して通信を行うことに使われ得る。好ましくは、或る種のデータ認証方法が、雑音又はその他の干渉が存在する中で安全で信頼できる通信を保証するために通信回線16で使用される。望むならば、本願発明の譲受人に譲渡され、また、ここで参照することによってここに明白に取り込まれる、1999年10月15日に出願された遅延認証通信および警報管理という米国特許出願No09418747号に記述されたデータ認証方法又は技術を、通信回線16を介した通信を達成することに使用することも可能である。概括して言えば、前記通信回線16の使用は、互いに統合されるべき地理的に離隔したプロセス制御サイト又はシステムを、1つのプロセス制御ネットワークとして構成することを可能する。ここで、1つのサイト内のデバイスは、制御動作およびとコンフィギュレーション動作を行うべく、他のサイトにおけるデバイスと通信することができる。残念なことに、前記通信回線16を通じた通信は、概して、前記サイト12,14間の距離のために、LANバス34,58を通じた通信よりも非常に遅いものである。さらに、前記通信回線16は、専用のLANバス34,58と比較して小さい帯域幅を有するかもしれなくて、該LANバス34,58を通じた通信よりも一般に雑音およびその他のエラーに影響され易い。これらの要因は、一般に、プロセス制御システム10内に通信のボトルネックの原因を、通信回線16に作ることに繋がる。本願発明によれば、プロセス制御システム10が設定される方法に関連するコンフィギュレーションデータは、コンフィギュレーションデータベース30,54の一方又は両方に格納される。また、一又は複数のユーザインタフェース28,52,53、又はその他のデバイスは、コンフィギュレーションアプリケーションを格納し、また、オペレータの要求によって、該アプリケーションを実行することが可能である。このコンフィギュレーションアプリケーションは、コンフィギュレーション情報例えば、プロセス制御ネットワーク10内のデバイスのコンフィギュレーション,ソフトウェアモジュール等に関連する情報を得るコンフィギュレーションデータベース30,54のうちの1つ以上にアクセスすることが可能であり、ユーザは、得られたコンフィギュレーション情報を画面上に表示させることが可能である。前記コンフィギュレーションアプリケーションは、また、ユーザに対して、新しいデバイス,ソフトウェアコンポーネント,又はその他のコンポーネントを前記システムへ付加し、前記システム内のデバイス間の新しい通信を提供し、前記システム内の既存のコンポーネントを変更する等して、前記プロセス制御システム10の再設定を可能とする。別の例では、第1のデータベースサーバ例えば、データサーバ32において実行されたコンフィギュレーションアプリケーションは、更に異なるリモート位置図1においては図示せずにこの情報を提供するために、前記遅い回線16を介してもう1つのデータベースサーバ例えば、データサーバ56から情報にアクセスすることが可能である。勿論、本願出願人であるフィッシャーローズマウントシステムズインコーポレイテッド社から販売されている製品DeltaVを備えた前記コンフィギュレーションアプリケーションのような、任意の好ましいプロセス制御コンフィギュレーションアプリケーション又はルーチンを使用することが可能である。特に、前記DeltaVのコンフィギュレーションアプリケーションは、プロセス制御のコンフィギュレーション情報をウィンドウズ登録商標エクスプローラー式のツリー構造で表示し、ユーザ又はオペレータがコンポーネントをコンフィギュレーションツリー内で一方から他方へドラッグアンドドロップすることによって、前記システム10を再設定することが可能であって、これにより、異なるデバイス内のこれらのコンポーネントをロードするか、プロセスの異なるエリアでプロセス制御コンポーネントの配置を示すか、異なるコントローラ,バス,若しくはIOデバイス等へデバイスの接続を示すか、又は異なるデバイス内でソフトウェアコンポーネントをロードする。ドーブDoveらの米国特許出願第5838563号プロセス制御環境を最設定するシステム、ニクソンNixonらの米国特許出願第5828851号標準デバイスおよび非標準デバイスの標準プロトコル制御を用いたプロセス制御システム、1996年4月12日に出願されたニクソンらの米国特許出願第08631519号ネットワークへのデバイスの接続を自動的に検出する方法および装置を有するプロセス制御システム、および1996年4月12日に出願されたドーブの米国特許出願第08631458号プロセス制御環境の設定を支援するシステムは、全て本願発明の譲受人に譲渡されており、また、ここで参照することによってここに明白に取り込まれる。これらは、ユーザに対して、プロセス制御ルーチンおよびコンポーネントを視覚的に作成すること、プロセス制御システム内のデバイスの制御を自動検出すること、およびプロセス制御システム内のデバイスの制御を提供することを可能にするプロセス制御コンフィギュレーションアプリケーションについて記述したものである。勿論、その他の任意のグラフィックコンフィギュレーションアプリケーションおよび非グラフィックコンフィギュレーションアプリケーションを含むその他の任意のコンフィギュレーションアプリケーションが、前記コンフィギュレーションデータベース30,54にアクセスするために、ユーザインタフェースにおいて又はサーバデータベース又はその他のデバイスにおいて実行され得る。図2は、プロセス制御システムのコンフィギュレーションを表示するために用いられることが可能であり、また、プロセス制御システムのコンフィギュレーションへの変更を視覚的に特定するための用いられることが可能である、プロセス制御のコンフィギュレーションツリー65の一例を示している。概括して言えば、図2のコンフィギュレーションツリー65は、トレイシーアイランドと名付けられたプラントのコンフィギュレーションに関連する情報を図示および提供している。前記トレイシーアイランドのコンフィギュレーションシステムは、例えば、異なるデバイスの設定,デバイスの定義,ソフトウェアコンポーネント等のテンプレート例えば、制御モジュール、又は前記トレイシーアイランドのプラントで使用されるその他のオブジェクトを有することが可能であるライブラリセクション66を有している。これらのテンプレートは、前記ツリー65において示されていないが、ライブラリアイコン66を選択する例えば、ダブルクリックすることによって、これらを表示することが可能である。前記コンフィギュレーションツリー65は、また、前記デバイス例えば、コントローラ,IO装置,フィールドデバイス,ユーザインタフェース等が前記プロセス内で物理的に配置されるようなシステムコンフィギュレーションセクション67を有することが可能である。前記トレイシーアイランドのプラントのための図示のシステムコンフィギュレーションは、レシピ例えば、異なる製品を製造するプラントにおいて行われるプロセス,セットアップ情報,および制御方法を有している。図示の如く、前記制御方法のアイコン又はコンポーネントは、未割当のIOリファレンス,設備,およびAreaAおよびArealと名付けられた2つのエリア物理的なエリアを含む多数の子コンポーネントを有している。前記AreaAは、Module1制御モジュールがトレイシーアイランドのプラントのAreaAの部分内でロードされたことを図示するModule1子コンポーネントを有している。前記システムコンフィギュレーションは、また、非稼動中のコントローラと制御ネットワークのアイコンとのリストを有する物理ネットワークを備えている。前記制御ネットワークのアイコン又はコンポーネントは、一又は複数の稼動中のコントローラコントローラCTLR1のみを図示と、該コントローラCTRL1の操作に関連付けられたユーザインタフェースGovernmintと名付けられているとを有している。各コントローラは、これに取り付けられた一又は複数のIO装置を備えることが可能であり、また、各IO装置は、これに取り付けられ、前記ツリー65内で前記コントローラに通信可能に結合されるべき一又は複数のフィールドデバイスを備えることが可能である。しかし、これらのコンポーネントは、図2には示されていないが、例えば、CTRL1のアイコンがユーザによって選択された場合に表示されるようになっている。なお、図2に図示されたコンフィギュレーションコンポーネントは、親子関係を有し、ここで、例えば、前記システムコンフィギュレーションセクション67は、レシピ,セットアップ,制御方法,および物理ネットワークの子供を示すことを注記しておく。同様に、前記制御方法は、非割当のIOリファレンス,設備,AreaA,およびArealの親である。また、AreaAは、Module1コンポーネントの親である。勿論、子コンポーネントの各々は、更なる子供を有することが可能であり、そのため、前記ユーザは、オブジェクトがどのデバイスに格納されているか、どのデバイスがどの物理的なゾーンに配置されているか、また、異なるデバイスがどの様に通信可能に相互接続されているかについて見るために、コンフィギュレーションツリー65の如何なるレベルでも見ることが可能である。通常、図2の階層は、親コンフィギュレーションコンポーネントの次にプラスのシンボルを配置することによって、非表示の子コンポーネントの存在を示している。また、その子供を含む選択されたコンポーネントに関する情報は、図2の制御方法コンポーネントで図示されるように、画面の右側に表示される。勿論、これらのコンポーネントに関する更なる情報は、図2の階層内でこれらのコンポーネントを選択することによって得られる。図2にコンフィギュレーション階層の一例を示すように、プロセス制御ネットワークのための前記コンフィギュレーション階層は、その他のデバイスおよびモジュールを示すことができ、また、その他の従属関係をとることができると言える。また、プロセスは、多数の物理サイト、および/又はゾーンに分割されることが可能である。そして、これらのサイト又はゾーンの各々は、前記階層において示されるような、自体に関連するコントローラ,ユーザインタフェース等を有することが可能である。勿論、ユーザは、初めに図2のツリー65の一部を見るかもしれないが、それからコンフィギュレーションツリー65例えば、AreaA内のコンポーネントを選択して、コンフィギュレーションツリー階層ツリー65内へ更に掘り下げていくことが可能である。この選択によって、階層ツリー65を提供しているコンフィギュレーションアプリケーションに対して、選択されたオブジェクトの子供にアクセスして、表示画面上にこれらの子供を表示させる。場合によっては、前記コンフィギュレーション情報は、オブジェクト指向データベース内にオブジェクトとして格納されることが可能であり、また、前記データベース内のオブジェクトは、前記コンフィギュレーションアプリケーションによって表示された前記コンフィギュレーションツリー内に示されるものと同様の関係を有することが可能である。図2の階層ツリー65において図示されるコンフィギュレーションオブジェクト又はコンポーネントは、図1のコンフィギュレーションデータベース30,54に格納されることが可能であり、また、コンフィギュレーションデータベース30,54からアクセスされることが可能であると言える。前記コンフィギュレーションデータベース30,54例えば、任意の好ましい種類のオブジェクト指向データベースに格納される情報は、任意の好ましい方法で格納されるかもしれなくて、また、図2に示した関係に関連して又は該関係と同様の関係を有している。従来技術のプロセス制御ネットワークには、概して、離隔されたサイト例えば、遅い又はリモート通信回線を介して接続されたサイトがない。このように、各プロセス制御システムは、概して、コンフィギュレーションデータをそのシステム内のデバイスのコンフィギュレーションだけに関連するそれ自身のコンフィギュレーションデータベースを備えている。さらに、このコンフィギュレーションデータベースは、概して、ユーザインタフェース又は前記プロセス制御システムのLANに接続されたその他のデバイスの全てによってアクセスされることができ、LANバスの大きい帯域幅と、LAN内のユーザインタフェースおよびコンフィギュレーションデータベースの間の比較的短い距離のために、非常に速くアクセスされ得る。このように、例えば、従来技術のシステムにおいて、前記サイト12,14の各々は、前記サイト即ち、サイト12又はサイト14、但し、両方ではないのうちの1つ内のデバイスだけに関連する情報を格納するそれ自身のコンフィギュレーションデータベースを備えている。これらの場合、前記サイト12,14間の通信回線16を提供することは、これらのサイト間の通信を可能にすることであって、1つのサイトのためのコンフィギュレーションデータベースは、その他のサイト内のデバイスのコンフィギュレーションを反映せず、図2のそれのような、コンフィギュレーションアプリケーションが、別々のコンフィギュレーションデータベースに格納されたコンフィギュレーションコンポーネントを信号のコンフィギュレーション階層又はツリーに統合することはない。また、従来技術のコンフィギュレーションアプリケーションは、ユーザが前記コンフィギュレーション階層内で更なる情報のために掘り下げる操作又はその他の要求を行う都度、ユーザによって要求されている情報を得るためにコンフィギュレーションデータベースに概してアクセスするものである。残念なことに、実際のデータをコンフィギュレーションデータベースから読むことは、データを引き出すプロセスの最も遅い部分である。従って、多数のユーザの各々がコンフィギュレーション階層を見て、前記コンフィギュレーションデータベースに読み書きすることは、単一のデータベースからこの情報にアクセスすることができることを過度に遅れさせることになる。このことは、より多くのユーザが一又は複数のリモート通信回線を介して前記システムに加えられるときに悪化し、前記コンフィギュレーションデータベースにアクセスすることができるユーザの数を増大する。同様に、データをこれらの離れて配置されたユーザのために引き出すことは、リモート回線例えば、図1の通信回線16に関連する通信におけるボトルネックによって、更に遅らせられる。前記データベース30,54および前記プロセス制御システム10内の通信は、前記プロセス制御システム10についてのコンフィギュレーション情報を前記ローカルサイト12およびリモートサイト14の一方又は両方における多数のコンフィギュレーションアプリケーションに提供するための多くの方法によって、また、前記リモート回線16を通じた通信量を低減する方法によって、構成され得、前記プロセス制御システム10の全て又は任意の部分の統合図を提供し、また、前記コンフィギュレーション情報をプロセス制御システム10内の任意の位置から変更することを許容する。最初のケースでは、コンフィギュレーションデータベース例えば、図1のコンフィギュレーションデータベース30のうちの1つは、全てのコンフィギュレーション項目のマスターコピー又はその中のコンポーネントを格納するマスターコンフィギュレーションデータベースに指定される。その他のコンフィギュレーションデータベース54は、ブリーフケースデータベースと称され、該ブリーフケースデータベースは、必要に応じて、マスターコンフィギュレーションデータベース30内の情報の幾つか又は全てにアクセスし、このデータを前記通信回線16を介してダウンロードし、また、リモートサイト14におけるユーザインタフェース又はその他のデバイスにそのデータを見て、変更することを可能にする。変更されたデータは、その他のユーザが前記マスターコンフィギュレーションデータベース30を介して当該データにアクセスをすることを保証する通信回線16を介して前記マスターコンフィギュレーションデータベース30にアップロードされ得る。この場合、必要とされたコンフィギュレーションデータの全てが前記ブリーフケースデータベース54にダウンロードされることができ、また、リモートサイト14においてこのデータベース54からアクセスされ得るので、前記遅い又は小さい帯域幅の通信回線16を介した前記マスターコンフィギュレーションデータベース30への個々のユーザインタフェースによる呼び出しは低減される。さらに、ブリーフケースデータベース52に多数のコンフィギュレーションコンポーネントを一度にダウンロードするプロセスは、通信回線16の使用に関しては、少しずつこの情報をダウンロードしようとすることよりも効率的である。別のケースでは、コンフィギュレーションデータベース54は、マスターコンフィギュレーションデータベース30の状態を反映するミラーデータベースであることが可能である。ミラーデータベース54は、それが生成されるとき、マスターコンフィギュレーションデータベース30の状態を反映するためにマスターコンフィギュレーションデータベース30からデータの全てをコピーする。この方法によれば、例えばミラーデータベース54内のルーチンは、遅い通信回線16を介してマスターコンフィギュレーションデータベース30に定期的にアクセスし、ミラーコンフィギュレーションデータベース54においてなされた変更をマスターコンフィギュレーションデータベース30に提供することによって、また、マスターコンフィギュレーションデータベース30になされた変更をミラーコンフィギュレーションデータベース54にコピーすることによって、マスターコンフィギュレーションデータベース30と整合させる。ここでは、リモートサイト14におけるユーザが、遅い回線16を通じた個々のユーザによってなされたデータの呼び出しの回数を減らすか又は該呼び出しを無くすミラーコンフィギュレーションデータベース54にアクセスする一方、メインサイト12におけるユーザは、マスターコンフィギュレーションデータベース30にアクセスする。更に別のケースでは、コンフィギュレーションデータの異なる部分は、分散型のコンフィギュレーションデータベースを構築するために、コンフィギュレーションデータベース30,54に格納される。ユーザインタフェース又はその他のデバイスにおいて実行されるコンフィギュレーションアプリケーションは、ユーザが、見ること、又はこのデータが元々格納されて、これらのコンポーネントへの変更を予約するデータベースから、操作することを望むコンフィギュレーションコンポーネントにアクセスする。1つの実施形態において、規則的に受信するsubscription回線又はスレッドは、各々のユーザ又はクライアントと、ユーザ又はクライアントがコンフィギュレーションデータを引き出すためにアクセスしているデータベースの各々との間で確立される。コンフィギュレーションデータベース54に格納され、ユーザインタフェース53これらの両方ともリモートサイト14にあるによって予約されたコンフィギュレーションデータに対しては、前記スレッドは、通信回線16を介した通信を必要としない。しかし、コンフィギュレーションデータベース30に格納され、ユーザインタフェース53これらは異なるサイトにあるによって予約されたデータに対しては、前記スレッドは、通信回線16を介した通信を必要とする。その結果、前記サイトにある又はこのデータが最もアクセスされそうであるその他の位置にあるコンフィギュレーションデータベース内のコンフィギュレーションデータの各部分を格納することが望ましい。この方法の詳細は後で更に説明する。ここに記述された技術は、多くの雑音が存在する中多数のリトライを引き起し得るで、遅い又はリモート通信回線を通じてリモートシステムにコンフィギュレーションの変更をユーザにさせるための方法を提供するものである。これらの技術は、また、メインネットワークから切り離されたプロセス制御システムの一部を設定するか、又は同一の設定機器から複数のプロセス制御システムを設定するための機構をユーザに提供するものである。これらの技術は、また、複数のユーザに、リモートでシステムの異なる部分のコンフィギュレーションについて作業することを可能にし、プロセス制御システムの開発の全体的な並列性を改善することができる。プロセス制御システムに用いられるブリーフケースデータベースの概念について、図3~図5に基づいて説明する。概括して言えば、この構成を用いるプロセス制御システムは、メインサイトおよび異なるリモートサイトを含む、プロセス制御システムの全てのサイトのために、コンフィギュレーションデータの全てを格納するマスターコンフィギュレーションデータベースを備えるようになされてある。前記メインサイトおよびリモートサイトは、衛星又はセルラー回線のような遅い又は小さい帯域幅の通信回線を介して通信可能に接続されても、モデム又は電話回線を介して間欠的に接続されても、又は全く接続されなくてもよいが、コンフィギュレーションデータを1つのサイトから別のサイトへ転送するために、携帯型コンピュータ又はその他の携帯型メモリに依存している。一般的に、メインサイトをリモートサイトに接続する各リモートサイト又はラップトップ若しくはその他のコンピュータは、リモートサイトで使用されるべきマスターコンフィギュレーションデータベース内の幾つか又は全てのコンフィギュレーションデータのコピーを格納するブリーフケースデータベースを備えており、メインサイトは、マスターコンフィギュレーションデータベースを備えている。前記ブリーフケースコンフィギュレーションデータベースは、ダウンロードおよび格納操作を用いてユーザによってマスターコンフィギュレーションデータベースから初期化される。ダウンロード操作において、前記ブリーフケースデータベースは、リモートサイトで作業するために、また、リモートサイトを再設定、変更、デバッグ等するために必要であるマスターコンフィギュレーションデータベース内のデータの一部のダウンロードをコピー又は受信する。前記ダウンロード操作では、リモートサイトの状態を見ること等、リモートサイトでの要求操作を実行するためにユーザによって必要とされるコンフィギュレーション情報の全てを自動的にダウンロードすることができる。任意の操作のために必要とされるコンフィギュレーションコンポーネントの全てのリストは、生成され、格納され、また、前記ダウンロードを実行するために使用されることが可能である。これに代えて、ユーザが、リモートサイトでの動作に必要とされる重要なコンフィギュレーションオブジェクトを選択するようにしてもよく、また、これらの選択されたコンポーネントの親および/又は子供の幾つか又は全部が、ブリーフケースデータベースに自動的にダウンロードされるようにしてもよい。望むならば、しかしながら、ユーザは、特定のコンポーネントをダウンロードすべく選択することも可能である。このデータがブリーフケースデータベースによって使用されている一方、コンフィギュレーションデータがマスターコンフィギュレーションデータベース内で変更されることを防ぐために予約操作を使用する。ブリーフケースデータベースによってマスターコンフィギュレーションデータベース内で予約された項目だけは、リモートサイトで変更することができる。項目を予約するために、コンフィギュレーションアプリケーションは、マスターコンフィギュレーションデータベースに予約メッセージを送信することが可能であり、そして、予約済であるとしてマスターコンフィギュレーションデータベース内のこの項目に目印を付け、他のユーザがマスターコンフィギュレーションデータベース内の該当する項目に変更を行うことから防ぐようにしてある。この項目の読み込みの防止を予約したときには、前記項目を任意にロックすることが可能である。このようなロック状態は、他人がこの項目を編集又は予約することを防止する。勿論、要求に応じて、前記ダウンロードおよび予約操作を、遅いか、小さい帯域幅であるか、又は間欠的な回線を介して実行することも可能である。しかし、コンフィギュレーションデータの全てが一緒に又は同時にダウンロードされるので、このようなダウンロードは、必要に応じて、個々に基づく遅い又は小さい帯域幅の回線を介してマスターコンフィギュレーションデータベースから前記データのコピーを得ることよりも効率的である。コンフィギュレーション項目をダウンロードおよび予約した後に、ブリーフケースデータベースが、リモートサイトブリーフケースデータベースが既にリモートサイトにない場合へ持っていかれて、コンフィギュレーション動作を実行するためにリモートサイトでコンフィギュレーションアプリケーションによって使用される。特定の操作を実行するのに必要なコンフィギュレーション情報の全てがブリーフケースデータベースに提供されたので、ブリーフケースデータベースが直接的にリモートサイトで使用され得るか、リモートサイトでローカルデータベースを構築するために使用され得る。そして、このローカルデータベースがリモートサイトで実行される任意のコンフィギュレーションアプリケーションによって使用され得る。一般的に、ブリーフケースデータベースを使用するコンフィギュレーションアプリケーションは、そのブリーフケースデータベースによってマスターコンフィギュレーションデータベースから予約されている項目を編集することのみができる。例えば、ユーザが、接続された複合体linkedcompositeでモジュールを予約したならば、マスターコンフィギュレーションデータベースは、ブリーフケースデータベースへ、モジュールと、そのモジュールの従属物又は子供の全部とを転送し、前記モジュールを予約するだけである。勿論、前記接続された複合体を、モジュールとして同様を予約することもできる。ユーザがダウンロード能力を必要とするならば、システムは、また、ユーザに特定のノード上でのダウンロード権利を予約させ、ブリーフケースデータベースで、それらのノードのためのダウンロード記録と状態情報とを含むコンフィギュレーション情報を交換させることができる。望むならば、ブリーフケースデータベースを使用するコンフィギュレーションアプリケーションは、ユーザが編集することができる項目を明らかに示すように、ブリーフケースデータベースに格納されるコンフィギュレーションデータを表示することが可能である。例えば、編集可能な項目は、ソリッドタイプsolidtypeにおいてコンフィギュレーション階層ツリー上で確認されることが可能であり、ユーザが変えることができない全ての項目は、灰色にされて表示され得る。勿論、どの項目又はコンポーネントが予約されているかについてのその他の方法もまた、同様に使用され得る。上述のように、予約されているマスターコンフィギュレーションデータベースの項目は、マスターコンフィギュレーションデータベースにおいてロックされており、それらの項目を予約したブリーフケースデータベースによって発生した起用操作promoteoperation、下記以外には、それに対しては全く変更がなされないようにすることが可能である。ユーザがブリーフケースデータベース内で予約された項目に変更をした後で、ブリーフケースデータベースは、それから、起用操作を通じて、マスターコンフィギュレーションデータベースと整合させることができ、予約されたコンフィギュレーションコンポーネントになされる変更は、マスターコンフィギュレーションデータベースへリリースされて戻される。特に、起用操作は、これらの変更が反映されるか又はマスターコンフィギュレーションデータベースに格納されるマスターコンフィギュレーションデータベースへ、該マスターコンフィギュレーションデータベースから予約されているコンフィギュレーション項目を起用する。望むならば、このような操作は、マスターコンフィギュレーションデータベース内の項目の予約解除をする。コンフィギュレーションアプリケーションは、遅い通信回線でのロードを低減するために、起用されている項目への値又は変更と共にマスターコンフィギュレーションデータベースに起用メッセージを一度に送信することが可能である。勿論、予約および起用する操作は、コンフィギュレーションデータの単一の項目例えば、ライブラリ項目,モジュール、ノード,カード等についてなされることができる。又はツリーの全部のセクションについて例えば、親の、および、その子供および孫の全部についてなされることができる。望むならば、コンフィギュレーションアプリケーションは、例えば、ブリーフケースデータベースから予約された項目をエクスポートする、当該エクスポートファイルをジップで圧縮zipする、また、マスターデータベース内のノード即ち、遅い又は小さい帯域幅の通信回線を介してへジップで圧縮されたエクスポートファイルを転送する等によって、マスターコンフィギュレーションデータベースにブリーフケースデータベースの全体と整合させることが可能である。マスターデータベースでは、アプリケーションは、エクスポートファイルをジップで解凍し、任意の公知の方法によってマスターデータベース内へこのファイルをインポートし、マスターデータベースにおいて使用されるテキスト又はデータ形式のフォーマットへマスターデータベースのための現在の設定を取り出し、エクスポートファイルをジップで圧縮し、また、ブリーフケースデータベースを備えるノードへジップで圧縮されたエクスポートファイルを転送し返すことが可能である。ブリーフケースデータベースでのアプリケーションは、それから、エクスポートファイルをジップで解凍して、このジップで解凍されたファイルをブリーフケースデータベースへインポートし戻す。この処理は、マスターコンフィギュレーションデータベースおよびブリーフケースコンフィギュレーションデータベース内の項目の全てが同一であることを保証する。さて、図3には、上述の如くブリーフケースデータベースを使用するプロセス制御システム100のコンフィギュレーション動作を図示してある。プロセス制御システム100は、制御動作を行うコントローラプロセス制御システム10に接続されたユーザインタフェース102,104を有するメインサイト101を備えている。また、ユーザインタフェース102,104は、ランタイムデータサーバランタイムサーバ108に接続され、更に、遅い通信回線例えば、衛星回線,モデム回線接続,セルラー回線等を介して、リモートサイト111と通信するコンフィギュレーションデータベースサーバデータベースサーバ110に接続されている。また、メインサイト101は、データベースサーバ110によってアクセス可能なマスターコンフィギュレーションデータベース112を備えている。同様に、リモートサイト111は、ランタイムサーバ118に、また、前記遅い回線を介してメインサイト101と通信するコンフィギュレーションデータベースサーバ120に接続されたユーザインタフェース114,116を備えている。また、リモートサイト111は、ブリーフケースコンフィギュレーションデータベース122を備えている。ブリーフケースコンフィギュレーションデータベース112は、リモートサイト111のためのローカルデータベースとして使用されることができ、メインサイト101でマスターコンフィギュレーションデータベース112から遅い回線を通じてコンフィギュレーション情報を得ることが可能である。ユーザインタフェース114,116のうちの1つからのリモート,閲覧,予約,および整合操作を提供するコンフィギュレーションアプリケーションを使用することにより、エンジニアは、マスターコンフィギュレーションデータベース112からブリーフケースデータベース122へコンフィギュレーション情報をダウンロードすることができる。この手順の一部として、ユーザは、マスターデータベース112をコピーし、マスターデータベース112のためのツリー構造をコピーし、マスターデータベース112から如何なる構造をもコピーすることなくローカル又はブリーフケースデータベースを構築する機会を与えられる。この際に、マスターコンフィギュレーションデータベース112内で、リモートサイト111におけるユーザは、また、ダウンロードされた情報の幾つか又は全てを予約することができ、これによって、その情報が変更されること、また、他人がマスターデータベース112内のその情報を変更しようとすることを防止することができる。好ましくは、前記ダウンロード操作は、遅い通信回線を通じて直ぐに必要なコンフィギュレーション情報の全てを提供する。そして、それは遅い回線を通じて少しずつこのデータを得ることよりも効率的である。その後で、ユーザは、コンフィギュレーションアプリケーションを使用しているリモートサイト111又はそのコンポーネントと、リモートサイト111でのブリーフケースデータベース122とを設定することができる。望むならば、これに加えて又はこれに代えて、ユーザがリモートサイト111からメインサイト101の一部を設定することもできる。この際に、例えばユーザインタフェース116において実行されるコンフィギュレーションアプリケーションは、ブリーフケースデータベース122にアクセスすることが可能であり、ブリーフケースデータベース122内に格納されたコンフィギュレーション階層若しくはツリーの一部を表示又は使用することが可能である。ユーザがマスターデータベース112において構造を見たいならば、ユーザは、整合操作を実行させることができる。遅い回線を介してマスターデータベース112に、その中の情報の全てについて、ツリー構造について、又はマスターデータベース112内のコンフィギュレーション情報のその他の要求された部分について照会し、この情報でブリーフケースデータベース122を更新する。予約された項目についてのコンフィギュレーション動作が終了すると、ユーザは、変更がマスターコンフィギュレーションデータベース112に格納されるようにするために、遅い回線を介してマスターデータベース112へ前記予約された項目になされた変更を起用することが可能である。さて、図4においては、一又は複数のブリーフケースデータベースが、非接続のワークステーションからコンフィギュレーション動作を実行するために使用されることが可能である。特に、図4は、マスターコンフィギュレーションデータベースマスターデータベース132,コンフィギュレーションデータベースサーバデータベースサーバ133,およびこれに関連付けられたユーザインタフェース134を備えたメインサイト131を含むプロセス制御システム130を示している。リモートサイト135,136の各々は、データベースサーバ138と、一又は複数のユーザインタフェースと、コンフィギュレーションアプリケーションを実行することが可能であるワークステーション140と、マスターコンフィギュレーションデータベース132において任意の項目についてのコンフィギュレーション動作を実行することが可能である一又は複数のブリーフケースコンフィギュレーションデータベース142とを同様に備えている。望むならば、ブリーフケースデータベース142は、ユーザインタフェース装置140のうちの1つ内に存在することが可能である。図3のシステムと同様に、ワークステーション140におけるユーザは、マスターデータベース132に接続するために、そこからコンフィギュレーション情報をダウンロードするために、そして、変更されるべき項目の全てについてマスターコンフィギュレーションデータベース132内で予約するために、例えば、インタフェース140のうちの1つにおいて実行されるコンフィギュレーションアプリケーションを使用することが可能である。このようなダウンロードは、例えば、ダイアルアップ接続又は携帯型の取り外し可能な物理的な接続例えば、ラップトップコンピュータのような、遅い回線を通じて又は間欠的な接続を介して実行され得る。何れにしても、異なるサイト135,136は、マスターコンフィギュレーションデータベース132からブリーフケースデータベース142へ、同一のコンフィギュレーション情報の幾つか又は全てをダウンロードする。しかし、異なるリモートサイト135,136におけるユーザは、変更すべき別々の項目を予約することが可能である。ダウンロード手順が実行された後で、コンフィギュレーションアプリケーションは、各ブリーフケースデータベース142内で予約されている項目を変更又は修正するために、ワークステーション140上で実行されることが可能であり、若干の点で、これらの予約された項目への変更は、起用手順を使用するマスターコンフィギュレーションデータベース132内へアップロードし戻されることが可能である。このように、例えば、エンジニアが、どこか他で働くために項目をワークステーション140内へ引き入れ、これらの項目を変更し、これらの項目のより新しいバージョンをマスターデータベース132内へ後日起用するために、ブリーフケースデータベース142は、メインネットワーク131から完全に非接続とされた又は遅い通信回線を介して接続されたワークステーション140上で使用されることが可能である。同時に構築されるべき多数の異なるブリーフケースデータベース142を可能にすることによって、コンカレントエンジニアリングを向上することができる。特に、コンフィギュレーション操作が論理的に分けられ、また、異なるエンジニアによって割り当ておよび完了されるように、各ブリーフケースデータベース142は、マスターコンフィギュレーションデータベース132内のコンフィギュレーションのサブセットを含むことが可能である。望むならば、新しいコンフィギュレーションデータを、異なるブリーフケースデータベース142間でデータが流れるのを可能にするために、マスターデータベース132へ定期的に起用し戻すことができる。例えば、実際には、1人のエンジニアが1つの設備に取り組み、他の人がその設備を作動している制御モジュールに取り組むことが可能である。後者は、制御モジュールのコンフィギュレーションコンポーネントを完了する前に、設備のコンフィギュレーションコンポーネントの最終的なバージョンを必要とする。しかし、最終的な設備定義については、前者のエンジニアが、前記設備定義を完了し、マスターデータベース132内へこの定義の内容を起用した後で、マスターデータベース132から引き出すことができる。図5は、ブリーフケースデータベースが有利に使用されることが可能であるプロセス制御システム145の別の例を示す。該プロセス制御システム145は、データベースサーバ148,ユーザワークステーション149,およびランタイムサーバ150に接続されたマスターコンフィギュレーションデータベースマスターデータベース147を有する制御室を備えている。また、前記システム145は、LAN接続共有LANを含む任意の種類のLAN接続であることが可能であるにより制御室に接続され、データベースサーバ152およびランタイムサーバ154を有するプラントフロアを備えている。また、前記プラントフロアは、これに接続された又はこれが備えるブリーフケースデータベース156例えば、ラップトップコンピュータ158又はその他のコンピュータ,ユーザインタフェース,又は例えばプラント技術者又はエンジニアがプラントフロアで変更を行うことによって使用されるワークステーションを備えている。プラントフロアにおけるユーザは、LANを介してマスターデータベース147に格納されたコンフィギュレーションデータの項目を得るために、また、これらの項目の少なくとも幾つかを予約するために、コンピュータ158からコンフィギュレーションアプリケーションを実行させることができる。その後で、プラントフロアでコンフィギュレーションの変更をするためにコンフィギュレーションアプリケーションで必要とされるその他の任意の項目と共に、予約された項目が、ブリーフケースデータベース156に一旦ダウンロードされたときに、前記プラントフロアにおけるユーザは、予約された項目に変更をするためにローカル又はブリーフケースデータベース156を使用してコンフィギュレーションアプリケーションを実行させることができ、また、LANを介してマスターデータベース147へこれらの変更を起用することができる。この処理は、マスターデータベース147に共有LANを通じて多数の呼び出しをする必要性を排除するが、能率が悪い。同時に、家庭におけるユーザは、データベースサーバ164を介してマスターデータベース147に接続されたコンピュータ160およびブリーフケースデータベース162を備えることが可能であって、例えば、ダイアルップモデムであり得る。このユーザは、モデム164を介してマスターデータベース147からコンフィギュレーションデータを得ることができ、この情報をブリーフケースデータベース162に格納することができ、また、このユーザが変更を要望する項目を予約することができる。完了すると、家庭におけるユーザは、暇なときに、ブリーフケースデータベース162内でコンフィギュレーション情報を操作するコンフィギュレーションアプリケーションを実行し、ダイアルップモデムを介してマスターデータベース147へ変更を起用することができる。望むならば、例えば、ユーザは、2つの異なるプロセス制御システムに変更をしたいと要望すれば、同一のブリーフケースデータベースにおける異なるプロセス制御システム,サイト等に関連する情報をダウンロード又は配置することができる。このような状況においては、複数のブリーフケースデータベースは、1つのコンピュータに格納されることが可能であり、この1つのコンピュータが同じプロセスの異なるサイトを設定するか、異なるプロセスに関連する異なるサイトを設定するために使用され得る。一般的に、このようなコンピュータは、コンフィギュレーションアプリケーションを格納および実行し、コンフィギュレーションデータベースを有するラップトップ又はその他の携帯型コンピュータであって、アプリケーションにロードおよびアクセスするデータベースを伴っている。望むならば、図1および図3~図5の任意のシステムのマスターデータベースは、コンフィギュレーション項目への変更に対するソース制御を提供するために、そこにコンフィギュレーション項目の改訂履歴を自動的に格納することが可能である。同様に、ブリーフケースのバージョンが変更され、起用動作が実行される必要があることを示すために、修正されているブリーフケースデータベース内の項目は、それに付けられた視覚的なチェックマークを有するように表示されることが可能である。ブリーフケースデータベースを提供する代わりに、ミラーデータベースは、プロセス制御システムのリモートサイトに保持されることが可能である。前記ミラーデータベースは、2つのデータベース即ち、整合されたリモートデータベースおよびマスターデータベースを保持することによってブリーフケースのモデルを拡張するものであって、例えば、遅い回線を通じてデータベースを編集することが実現可能ではない陸上/沖合でのプロセス制御構成においては、望ましいことである。また、前記ミラーデータベースは、冗長性をサポートするために使用されることが可能である。ミラーデータベースにおいて、例えば、ライブラリ,セットアップ,および制御データを含む全てのコンフィギュレーション項目は、マスターデータベースからミラーデータベースによって予約される。このような予約は、望むならば、ここで図7~図15に関連して記述される方法において実行されることが可能である。さらに、コンフィギュレーション項目がミラーデータベースにおいて編集される際、当該コンフィギュレーション項目は、マスターデータベースから自動的に予約される。このように、前記ミラーデータベースにおける編集は、その項目を予約するために、遅い通信回線を通じて、メッセージをマスターコンフィギュレーションデータベースへ自動的に送信する。予約操作がマスターコンフィギュレーションデータベース内のその項目のロックのために失敗した場合、前記ミラーデータベース内の編集は防止される。その後の適当な時間で、変更がミラーデータベースにおいてなされた後で、コンフィギュレーション項目は、ミラーデータベースからマスターコンフィギュレーションデータベースへ起用し戻される。このような起用動作は、変更がなされるとき、定期的な時間単位で例えば、10分毎に、又は起用動作を実行するためのユーザコマンドに応じて手動で、自動的に達成されることが可能である。逆に、マスターデータベースへのミラーデータベースによる予約のために、マスターコンフィギュレーションデータベースへの変更は、直ちに強制されるか、又は前記遅い通信回線を通じてミラーデータベースに送信される。ミラーデータベースとともに、通信回線がダウンしているときには、両方のデータベースは独立して動作することができる。しかし、前記通信回線が回復されたときには、前記データベースへの変更は手動で統合されなければならない。一般に、複数のミラーデータベースは、同一のマスターデータベースの予約者として存在することができる。ミラーデータベースおよびマスターデータベース間の接続の予約特性のために、ミラーデータベースが一旦確立された場合、ミラーデータベースおよびマスターデータベース内のデータへの変更だけが、遅い又は小さい帯域幅の通信回線を通じて送信される必要がある。そして、それは、ミラーデータベースのユーザの各々によって必要に応じて少しずつコンフィギュレーションデータをダウンロードしようとすることよりも効率的である。マスターコンフィギュレーションデータベースと、又はこのセットアップに加えて、定期的に整合させることが可能である単一のマスターコンフィギュレーションデータベースおよび一又は複数のブリーフケース又はミラーデータベースを有する代わりに、コンフィギュレーションデータの異なるコンポーネントがプロセス制御システムの異なる物理サイトに存在する異なる物理データベースに格納されるように、コンフィギュレーションデータベースは、プロセス制御システムの異なる部分に亘って分散されることが可能である。この分散型のコンフィギュレーションデータベースが、2つ以上の地理的に離隔したサイト又は位置に関連するコンフィギュレーション情報を一つに統合することに使用されることが可能であり、また、プロセス制御システム全体の継ぎ目の無い表示を提供することが可能である。ここで、この継ぎ目の無い表示とは、異なるサイト又は位置の各々におけるプロセス制御コンフィギュレーションのコンポーネントの幾つか又は全部を含むことが可能である。図6は、異なる論理的なおよび/又は物理的な位置に関連付けられたコンフィギュレーションデータベースの階層を有するプロセス制御システム170を示す。該プロセス制御システム170は、ZoneA172,ZoneB174,およびZoneC176と名付けられた3つのゾーンと、Site1180およびSite2182と名付けられた2つのサイトと、企業ネットワーク企業システム184とを備えている。ゾーン172,174は、コンフィギュレーションデータベース172a,174aをそれぞれ備えており、これらのゾーン172,174は、例えば、衛星,モデム,その他の遅く小さい帯域幅であるか、又は間欠的な通信回線を介して、サイト180に通信可能に接続されているゾーン172,174とサイト180との間で実線により示す。同様に、ゾーン176は、コンフィギュレーションデータベース176aを備え、任意の好ましい通信回線を介してサイト182に通信可能に接続されている。さらに、サイト180,182は、コンフィギュレーションデータベース180a,182aをそれぞれ備え、任意の好ましい通信回線を介して企業システム184に接続されている。また、該企業システム184は、コンフィギュレーションデータベース184aを備えている。ゾーン172,174,176の何れかのように、ゾーンは、概して論理的であり、多くの場合に大きい制御システムの物理的な区域であることが可能である。このように、ゾーンは、一般に外界との繋がり無しで機能することができる。ゾーンは、例えば、特定の地理的な位置での相互接続されたデバイスを有する任意の従来のプロセス制御システムであることが可能である。サイトサイト180,182の何れかは、エリア,範囲等の論理的な定義であって、これとともに関連付けられる任意の数のゾーンを有することが可能である。企業システム184は、プロセス制御システム170内のコンフィギュレーションデータベースの階層内の最も高水準のシステムであって、前記サイトの各々に、また、それによって、プロセス制御システム170内のゾーンの各々に通信可能に接続されている。勿論、その他のサイト,ゾーン,およびエリア、又はその他の論理的な単位は、遅い又はその他の通信回線を介して、プロセス制御システム170の階層に相互接続されることができる。そして、任意のゾーン,サイト,エリア等のコンフィギュレーションデータベースがその他の任意のゾーン,サイト,エリア等から、2つ以上の通信回線の一又は一連のものを介してアクセスできる限り、プロセス制御システムの異なる地理的な位置は、その他の方法で相互接続されることが可能である。また、図6の分散型のコンフィギュレーションデータベースの階層が3つのレベルゾーン,サイト,および企業を含んでいるが、2つのレベル又は4つ以上のレベルを代わりに使用することもできる。図6に示す如く、プロセス制御システム170の各部分は、これに関連付けられたコンフィギュレーションデータベースを有し、プロセス制御システム170全体のためのコンフィギュレーション情報又はそれの異なる要素コンポーネントは、データベース172a,174a,176a,180a,182a,184aを介して分散される。好ましい実施形態において、前記コンフィギュレーションデータ又はコンフィギュレーションコンポーネントは、そのデータがユニークな名前を付けられている企業,サイト,およびゾーンによって形成される階層において最も低いレベルで、コンフィギュレーションデータベースに格納される。このように、例えば、プロセス制御システム170において、何処にでも使用され得るデバイスとソフトウェアコンポーネントとのテンプレートを格納することが可能であるライブラリデータは、概して、階層において例えば、企業システム184のコンフィギュレーションデータベース184aにおいて最も高いレベルに格納され、また、最も高いレベルからアクセスできる。同様に、ライブラリコンフィギュレーションコンポーネントとサイトのシステムコンフィギュレーションとに関連する情報は、ゾーンにおける特定のデバイス,制御モジュール等に関連するコンフィギュレーション情報が、そのゾーンのコンフィギュレーションデータベースに格納される一方、前記サイトのコンフィギュレーションデータベースに格納されることが可能である。さらに、このコンフィギュレーション情報がそのゾーン内の物理的なデバイスに直接関連があるので、制御のコンフィギュレーション情報は、ゾーンコンフィギュレーションデータベースに概して格納される。概括して言えば、目標は、このコンフィギュレーションデータが最もアクセスされそうであるように、又はコンフィギュレーションデータの任意の特定の部分がプロセス制御システム170のその他の位置におけるユーザによって容易に見つけられるように、データベースの階層のコンフィギュレーションデータベース内の任意の特定の部分を格納することにある。図6に示した分散型のコンフィギュレーションデータベースの方法によれば、プロセス制御システム170のゾーン,サイト,エリア等のうちの任意の1つ内で動作するコンフィギュレーションアプリケーションは、同一のサイト,ゾーン等、および/又はその他のサイト,ゾーン等に配置されることが可能である一又は複数のコンフィギュレーションデータベースから、コンフィギュレーションデータにアクセスし、また、プロセス制御システム170の現在の状態を示すために、又はその他の何らかのコンフィギュレーション操作を実行するために必要であるとして、そのデータにアクセスする。このように、図6のゾーン,サイト,又は企業システムのうちの何れから実行されるコンフィギュレーションアプリケーションは、プロセス制御システム170の任意の部分又は全部の現在のコンフィギュレーションの表示を生成するために、異なるコンフィギュレーションデータベースの何れかに格納されたコンフィギュレーションデータにアクセスすることができ、また、プロセス制御システム170のサイト,ゾーン等の何れかの要素コンポーネントの何れかを再設定可能にすることもできる。分散型のコンフィギュレーションデータベース例えば、図6に示したものは、遅い通信回線を通じて発生する必要がある通信量を減少させる傾向がある。それは、概して言って、サイト又はゾーンにおけるユーザは、異なるサイト又はゾーンのそれよりもむしろそのサイト又はゾーンのコンフィギュレーションデータを見て、使用して、また、変更しそうであるからである。即ち、より少ない読み書きが一又は複数の遅い通信回線を介してその他のゾーン又はサイトからやって来るが、サイト又はゾーン内のコンフィギュレーションデータベースへの読み書きの殆どは、そのサイト又はゾーン内のユーザインタフェースからやって来るのである。しかし、プロセス制御システム170の任意の部分のコンフィギュレーション情報の全てに対しては、プロセス制御システム170のその他の任意の部分におけるユーザインタフェース又はその他のデバイスが依然として利用可能である。異なるゾーン,サイト等の間での通信を可能にするために、前記システム内の各データベースは、コンフィギュレーション階層の一般的なセットアップに関連する情報を格納することが可能である。例えば、各データベースは、全ての位置でのコンフィギュレーションに共通である幾つかのオブジェクトルーツobjectrootを格納することが可能であり、これらのルーツに関する更なるコンフィギュレーション情報を有する特定のデータベースを示す、又はこの情報を求めるために次のデータベースを示す、ポインタを格納することが可能である。このように、ZoneA172におけるユーザは、ルーツオブジェクトにアクセスし、そのルーツの子供を要求しようとすることが可能である。これに応じて、コンフィギュレーションデータベース172aは、選択されたルーツのためのポインタを見ることによって、子供が格納されているデータベースを見つけることが可能である。そして、このポインタは、そのルーツのためのデータが企業システムデータベース184aからアクセスされなければならない、又はSite1データベース180aがそのデータへ更なるポインタのためにアクセスされなければならないことを示すことが可能である。データベース172aは、遅い回線を介したデータベース180aの読み出しをさせ、データベース180aに企業システムデータベース184aの読み出しを実行させることが可能なである。勿論、企業システムデータベース184aは、Site2データベース182aにアクセスする必要がでてくる可能性があり。そのデータのためにZoneCデータベース176aにアクセスする必要がでてくる可能性がある。代わりに、ブラウザ又はスニッフアプリケーションsniffingapplicationは、例えば、ZoneAデータベース172aを、分散型のコンフィギュレーションシステム170内のコンフィギュレーションデータの任意の特定の部分の位置を見つけるためにSite1データベース又はその他のデータベースを閲覧することが可能なようにするために、各データベースに提供されることが可能である。望むならば、システム170内の各データベースは、元々異なるサイト,ゾーン等に格納されたデータのローカルコピーを格納することが可能である。特に、特定のデータベースに格納されないデータに対する要求が受信された場合、該データベースは、そのデータを異なるデータベースから引き出すことが可能であり、このデータを取り戻すことに際して、直接、データベース例えば、同じサイト又はゾーンにおけるユーザに接続されたユーザによって使用されるように、又はデータベースの階層内の他のデータベースによる要求に応じて送信されるように、それをローカルに格納することが可能である。このように、上の例では、データベース180a,184a,182aの各々は、ZoneCデータベース176aに元々格納されたコンフィギュレーションデータのローカルコピーを格納することが可能であり、これは、そのデータがZoneAでZoneAデータベース172a又はユーザによって要求されたからである。任意のユーザインタフェースで表示された特定のコンフィギュレーション表示のためのコンフィギュレーションデータの幾つか又は全部が、一又は複数の遅い通信回線を介してアクセスされなければならないかも知れないので、同一のサイト若しくはゾーン又は異なるものの何れかにおいて、別のユーザによってコンフィギュレーション情報になされた変更を基準として、特定のユーザインタフェースで表示されたコンフィギュレーションデータが新鮮ではないか又は古くなる状況に出くわすことがある。各コンフィギュレーションアプリケーションが画面上に提示されているコンフィギュレーション情報をリフレッシュrefreshするために適当なコンフィギュレーションデータベースに定期的にアクセスすることができる。この周期的なリフレッシュは、遅い通信回線を通じて発生する筈の、また、コンフィギュレーションデータベースからの読み出しを増加する、通信量を実質的に増大し、プロセス制御システム170内の通信を遅くし、そのコンフィギュレーションデータベースの各々へのロードを増加する。この問題を解決するために、コンフィギュレーションデータにアクセスしている各コンフィギュレーションアプリケーションは、画面上に表示されている又は使用されている各コンフィギュレーションコンポーネントのために、適当なコンフィギュレーションデータベースを予約することが可能である。そして、このデータを格納するコンフィギュレーションデータベースは、コンフィギュレーションデータベース内で前記情報になされた如何なる変更をも各予約のコンフィギュレーションアプリケーションクライアントに自動的に通知する。それから、これらの変更は、例えばユーザ画面上に表示されるべきクライアントに自動的に送信されることが可能であるか、又はユーザによって要求されることが可能である。このように、たとえ何処にこの情報を使用するクライアントアプリケーションがプロセス制御システム170内で位置しようとも、各コンフィギュレーションアプリケーション例えば、各画面上に示されている情報の各部分によって使用されているコンフィギュレーション情報は最新である。勿論、クライアントアプリケーションがコンフィギュレーション情報の特定の部分をもはや必要としないとき、即ち、例えば、ユーザがもはやコンフィギュレーション階層におけるコンフィギュレーション情報の特定の部分を見たくないときには、コンフィギュレーションアプリケーションは、変更通知および更新が予約中のコンフィギュレーションアプリケーションにもはや送り返されないように、その情報の部分を格納するコンフィギュレーションデータベースから予約解除する。このように、コンフィギュレーションアプリケーションは、例えば、図2のツリー65内におけるコンフィギュレーション情報の各部分を格納するコンフィギュレーションデータベースを見つけ、必要に応じて一又は複数の遅い通信回線を通じてその情報を取り出し、この情報が格納されるコンフィギュレーションデータベース内における該情報になされた更新を受信するためにその中の情報の各部分を予約し、受信に際しては、表示された情報見られているシステムのコンフィギュレーションへの変更をしている別のユーザによるものであることが可能を更新し、新しい又は更新された情報を表示する。ユーザ又はオペレータが、表示されているコンフィギュレーションツリーのセクションを掘り下げていくならば、コンフィギュレーションアプリケーションは、同様に、新しい情報にアクセスし、この情報を予約し、そして、この情報を表示する。表示された情報の幾つかがユーザ画面から落とされるならば、コンフィギュレーションアプリケーションは、落とされたデータからの予約を解除する。望むならば、得られる例えば、特定のユーザインタフェースの画面上で見られるコンフィギュレーション情報の全ては、ローカルキャッシュ又は実行されているコンフィギュレーションアプリケーションに関連したメモリに格納されることが可能であるか、前記アプリケーションが実行されているゾーン,サイト等内のコンフィギュレーションデータベースに格納されることが可能である。そして、適当なデータベースとの接続を失った場合には、そのサイト,ゾーン等におけるユーザは、ローカルキャッシュからこのコンフィギュレーション情報をまだ引き上げることが可能である。しかし、ユーザがこの情報が最新ではないことを知るように、この情報は、ローカルキャッシュ例えば、灰色表示のようなから来たこの情報を示すように表示されることが可能である。一又は複数の遅い回線を介して既に得られたコンフィギュレーションデータを格納するためのこのようなローカルキャッシュを使用することは、通信線又は回線がダウンした場合に、ユーザに対して、該ユーザによって既に見られるた又はアクセスされた任意のコンフィギュレーション情報を見ることを可能にする。また、ユーザがその画面から落とされた情報を見たいならば、この情報は、該情報のために適当なコンフィギュレーションデータベースとの接続がその情報を更新するために再確立されている間、それをより速く表示させるためにローカルキャッシュから引き出されることが可能である。図6が遅い回線を介して相互接続されるようなサイトおよびゾーンの各々を示しているが、このような構成は必須ではない。例えば、サイトのためのコンフィギュレーションデータベースは、ゾーンにあるかも知れず、遅い通信回線を介してそのサイトに関連したその他のゾーンへアクセスできれば、そのゾーンから直接アクセスできるかも知れない。例えば、図6で図示されるような分散型のコンフィギュレーションデータベースを確立するために、ZoneA172におけるユーザは、ZoneAデータベース172aと同じマシン上で又は直接の高速接続を通じてZoneAデータベース172aに接続している異なるマシン上でサイトデータベース即ち、Site1データベース180aを構築することが可能である。代わりに、Site1データベース180aは、遅い回線を介してZoneAデータベース172aに接続していることが可能である。ユーザは、Site1データベース180aにおよび/又は企業システムデータベース184aにZoneAでライブラリおよびセットアップデータの幾つか又は全てを公開する。その後で、ZoneA172でのデータベース172aは、ユーザ又はZoneA172内のアプリケーションがそれらの項目を必要とするか、又はそれらの項目にアクセスしたいときに、Site1データベース180a,企業システムデータベース184a等内でコンフィギュレーション項目のうちの1つ以上に自動的に予約することが可能である。望むならば、システム170の如何なるコンフィギュレーションデータベースであっても、そのシステムのその他のコンフィギュレーションデータベースのうちの1つ以上内で、コンフィギュレーション情報の幾つか又は全てに常を予約することができる。次に、ZoneB174におけるユーザは、ZoneB174のためのサイトデータベースとしてZoneAにおけるユーザによって構築されるSite1データベース180aを選択することが可能である。それから、同一の名前の項目がSite1データベース180aおよびZoneBデータベース174a内に存在するような衝突に終わり得るSite1データベース180aにおいて、ZoneB174におけるユーザは、ライブラリおよびセットアップデータの幾つか又は全てを予約する。コンフィギュレーションアプリケーションは、ZoneB174におけるユーザへこの問題について通知することが可能であり、ZoneB174のユーザは、Site1データベース180aにおける項目を予約する前に、ローカルの項目の名前を変えるオプションを与えられることが可能であるか、ローカルの項目に上書きすることが可能である。加えて、ZoneB174におけるユーザは、Site1データベース180aに項目を公開することが可能であり、そして、その後で、ZoneA172は、ZoneAが予約するSite1データベース180aへの追加を知らせられ、それから、これらの追加のコンフィギュレーション項目を予約することが可能である。勿論、企業/サイト階層は、サイト180,182の間と、ゾーン172,174,176の間とでの通信を可能にするために、同様の方法で設定される。ZoneA172およびZoneC176間の接続を確立するために、例えば、ZoneA172におけるユーザがZoneC176のデータベース176aに格納されたコンフィギュレーションコンポーネントを見たいとき、この情報を予約し、Site2182からこの情報を予約する企業システムデータベース184aにこの情報を公開するSite2データベース182に、ZoneCデータベース176aはこのデータを公開する。ZoneA172がSite1データベース180からこの情報を予約する一方、Site1180は、企業システムデータベース184aからこの情報を予約する。確立された予約者関係は、それから、ZoneCデータベース176aに格納されたコンフィギュレーションコンポーネントへの変更について、ZoneA172におけるクライアント又はユーザに通知するために使用されることが可能である。上述のように、ゾーン,サイト等は、項目について個々に、又は親および関連する子供の全てを含むオブジェクトのサブツリー全体を予約することができる。また、予約は、これらの項目をローカルゾーンのコンフィギュレーションデータベースに加え、公開された項目とローカルコピーとの間の進行中の通信関係を確立して、項目のコピーをとることを課すことが可能である。本来の情報がどこに格納されたかについて、予約中のデータベースがトラッキングする一方、公開者のデータベースは、予約者についてトラッキングすることが可能である。このソース/デスティネイションsourcedestination情報が、コンフィギュレーションデータベース内の項目の予約を指示して、リモート位置から変更をなすために使用され得る。同様に、データベースがバックアップから回復しなければならないならば、この情報は、公開/予約関係を再確立するために使用されることが可能である。勿論、ゾーン間の通信は、該ゾーン間の遅い通信回線の存在のために必ずしも保証されることができないので、通信回線がダウンしているときには、ゾーンは独立して機能し続ける。しかし、通信が再確立されるとき、如何なる衝突であっても手動で解決されなければならない。ゾーン,サイト,および企業の間の通信が、公開又は予約単位で実行されると言える。ここで、一又は複数の予約者がその項目を予約するときに、コンフィギュレーション項目のマスターコピーを有するコンフィギュレーションデータベースが、その項目を公開する。予約者は、例えば、異なるサイト又はゾーン内のユーザインタフェース例えば、ワークステーション又はその他のコンピュータにおいて実行されるコンフィギュレーションアプリケーションであることが可能であり、これらのサイト又はゾーン内のデータベースそれらのゾーンにおいて実行されるコンフィギュレーションアプリケーションによって使用されるであることが可能であり、又はコンフィギュレーションデータを使用するその他の任意のデバイス又はアプリケーションであることが可能である。その他のサイト又はゾーンによって予約され得るデータベース内の項目は、共有オブジェクトと呼ばれる。勿論、次のような異なる種類の操作が共有オブジェクトについて行われることが可能である。1閲覧:予約者のコンフィギュレーションアプリケーションが、公開者から入手可能な共有オブジェクトのリストを見ること。2予約:予約者のコンフィギュレーションアプリケーションが、予約者の位置でのコンフィギュレーション動作に使用される前記共有オブジェクトのローカルコピーを要求すること。3ローカルオブジェクトへのコピー:予約者のコンフィギュレーションアプリケーションが、項目を非共有ローカルオブジェクト又はデータベースへコピーすること。4削除:予約者のコンフィギュレーションアプリケーションが、公開者において共有例を削除すること。5予約解除:予約者のコンフィギュレーションアプリケーションが、予約者でのコンフィギュレーション項目のローカルコピーと、公開者のコピーとの間の予約リンクを切断すること。6変更の取り出し:予約者のコンフィギュレーションアプリケーションが、公開者から共有項目の最新のバージョンを取り出すこと。7予約:予約者のコンフィギュレーションアプリケーションが、このオブジェクトが別のユーザによって変更されるのを防止するために、共有オブジェクトを公開者のデータベースにロックすること。8起用:予約者のコンフィギュレーションアプリケーションが、予約された項目になされた変更を公開者のデータベースに戻すこと。これらの操作は、予約者と公開者との間でメッセージを送信することによって、また、メッセージを扱い、上記定義のような適切な動作をとるために、予約者の位置と公開者の位置とでソフトウェアを実行することによって行われ得る。コンフィギュレーションの観点からは、セットアップおよびライブラリデータを共有すること、別のゾーンからセットアップ,ライブラリ,およびコンフィギュレーションデータを閲覧又は見ること、ゾーン間において、ゾーン間関係およびネーム空間調整を設定することを含む、幾つかのゾーン間動作がある。1つの実施形態において、コンフィギュレーションオブジェクト又は項目は、階層内の直近の親から共有される。例えば、ゾーン172,174は、サイト180から合成定義compositedefinitionを共有し、全てのゾーンは、企業システム184から設定される共通の一覧表を共有する。ゾーン176がサイト182で定義を予約する一方、ゾーン172,174は、サイト180で定義を予約する。同様に、両サイト180,182は、企業システム184において共通の定義を予約する。閲覧サービスは、企業/サイト/ゾーン階層においてサーバを見つけるために、また、それらの位置のうちの1つに関連付けられたコンフィギュレーションデータベースを閲覧するために、コンフィギュレーションアプリケーション内に提供される。閲覧サービスは、共有オブジェクトへの予約をセットアップし、ゾーン間リファレンスを設定するために利用される。特に、閲覧情報は、ユーザ要求に応じてリモートサーバから照会され、ローカルにキャッシュされる。閲覧ルーツbrowserootは、ネットワークをスニッフィングsniffingすることによって検出可能であるか、又はその他の任意の好ましい若しくは公知の閲覧技術を利用して検出可能である。検出された又は設定された閲覧ルーツについての知識は、持続的であってもよく、電源スイッチを切って直ぐに入れなおすことpowercycleを通じてもキャッシュされたままでいる。これらのコンフィギュレーションオブジェクトのルーツの存在は、ユーザに対して、分散型のコンフィギュレーション階層内のこの情報の位置又はこの情報への経路を見つけるために、前記ルーツに関連付けられたその他の情報を閲覧することを可能にする。ゾーン間リファレンスは、直接的にリファレンスを入力することによって、又はリモートデータベースにおける属性を閲覧することによって、設定されることが可能である。リファレンスは、例えば、ZoneNameTaggedltem...AttributeNameのような形式又はその他の任意の好ましい形式をとることが可能である。ゾーン名は、ゾーン間リファレンスを解決するために企業階層内でユニークでなければならないと言える。各ゾーン内には、タグを付けられた項目のためのネーム空間があり、コンフィギュレーションシステムは、ゾーン内でタグのユニーク性を強要され得る。このように、各コンフィギュレーションアプリケーションは、分散型のコンフィギュレーションデータベース内の名前付けにおいて、ユニーク性を強要されるのに合わせて、タグがサイトか企業内でユニークかどうかについて判断するツールを有することが可能である。望むならば、ゾーン間の安全は、任意の好ましい方法で提供されることが可能であり、ゾーン管理者は、ユーザ,グループ等のための共有オブジェクトへアクセスする権限が与えられ得る。このような権限は、閲覧して共有オブジェクトを予約する能力と、オブジェクト又はコンフィギュレーション項目のための変更を公開者から引き出す能力と、変更を予約,修正,および起用する能力とを含むことが可能である。また、望むならば、異なるゾーンは、異なる言語を使用することが可能である。これは、会社が多くの異なる言語を使用している地域、例えば、ヨーロッパにおいて有益である。この場合、一覧化された値は、数値として、又は異なる言語で同一の単語又はフレーズのためにプロセス制御システムを通じて共通である数値とともに表示されることが可能であるローカルデータの文字列例えば、単語として、ゾーン間を通過することが可能である。このように、ユーザは、1つの言語から他の言語への変換の容易性を可能にする、それに応じた数値によって、一覧化された値,コマンド等を特定することが可能である。何れにしても、異なる言語を使用するデータベースを閲覧するためには、関連するフォントが閲覧マシン又はゾーン上にインストールされることが必要である。1つの実施形態において、ゾーン間リファレンスは、リモートゾーンの言語で設定される。そして、ユニコードストリングUnicodeは、ユニコードによってサポートされた任意のキャラクタについての検出又は変換を可能にするために排他的にシステムを通じて使用される。この場合、単一のデータベースは、複数の言語のストリングを格納することが可能であり、データベースのエクスポートファイルは、ユニコードフォーマットに交換される。言い換えれば、異なるローカルからのファイルは、ユニコードフォーマットを使用して各データベースにインポートされる。修正が干渉無しに実行され得ることを保証するために、共有データへの修正が上述した予約/起用手順の対象となることが可能である。この場合、項目が修正され得る前に、修正するユーザは、該ユーザのゾーンへこの項目を予約しなければならない。1人のユーザ又はゾーンだけが、任意の特定の時間にでも項目を予約することができる。項目が予約された後で、この項目を予約したローカルデータベースにおいて、変更が当該項目になされる。そして、この項目を予約したユーザによって、このような変更が新しいコンフィギュレーション動作の結果としてなされる。その後で、予約され、修正された項目又は項目のグループは、このデータがデータのマスターセットとして格納されているコンフィギュレーションデータベースへ起用される。このような予約/起用手順は、それに2人のユーザが同時に、同一の項目を変更しようとすることができないことを保証する。その代わりに、項目を予約しようとする第2のユーザは、その項目を予約する第1のユーザが該項目のマスターバージョンを格納するコンフィギュレーションデータベースへこの項目の変更を起用するまで、如何なる修正であっても、なすことも防止される。通常、予約については2つのモードが使用される。最初のモードここでは、安全予約モードと称すにおいて、既に存在する項目への修正および該項目の削除が手動で引き入れられる一方、新しい共有項目は、予約しているゾーン又はサイトに自動的に引き入れられる例えば、ユーザからの直接コマンドが前記変更又は削除情報の引き入れを実行するのに要求される。この場合、ユーザは、ユーザシステムが予約しているコンフィギュレーションの変更又は削除について通知されることが可能であり、また、コンフィギュレーションアプリケーションがその変更をローカルデータベースへ引っ張ていくことになっているかどうかを尋ねられることが可能である。代わりに、共有データベースへの如何なる変更に対しても、ユーザの干渉無しで予約中のデータベースにインポートされるように、全ての修正は、自動的に引かれるpullことができる。安全予約モードには、変更通知が全階層を通じて移行しない点に留意する必要がある。このように、例えば、企業の項目が修正されれば、依存しているサイトに通知される。しかし、その変更がサイトに実際に引き下げられるまで、そのサイトに関連付けられたゾーンがその変更について通知されることはない。その結果、公開者即ち、そのコンフィギュレーション項目のマスターコピーを格納するデータベースは、予約者が項目の最新バージョンをとったかどうかについてトラッキングすることが可能である。そして、どちらかのデータベースをバックアップから回復しなければならないならば、この情報は、公開者/予約者関係を再整合するために使用されることが可能である。さらに、変更を引く予約者の失敗が、コンフィギュレーションデータベースの階層における下位のレベルでのコンフィギュレーション階層の違いにつながると言える。例えば、企業システム184が図6のサイト180,182に変更について通知し、Site1180がこの変更を引かないで、Site2182がこの変更を引くならば、サイト180,182で見られるコンフィギュレーション階層は異なる。さらに、変更を引いているSite2182について、この変更を引くことができるか、又は変更が発生したということを少なくとも知ることができるZoneC176における予約者に変更通知が送信される。しかし、Site1180が変更を引かなかったので、ZoneA172とZoneB174とにおける予約者は変更について知らず、従って、ZoneA172とZoneB174とは変更を引くことができない。この場合、ゾーン172,174で利用できるコンフィギュレーション階層は、ゾーン176で利用できるものとは異なっている。望むならば、ユーザが変更に関して何が起こっているかについてわかるのを手伝うために、上流および下流の従属リストを表示するコンフィギュレーションアプリケーションを提供してもよい。ユーザが項目を引こうとするとき、コンフィギュレーションアプリケーションは、如何なる上流の改訂の不一致でも見つけることができ、また、これらの項目が引かれなければならないか否かをユーザに尋ねることができる。さて、図7~図15を参照して、プロセス制御システム内のデータベースから効率的にアクセスおよび分散するためのシステムについて説明する。概括して言えば、データベースアクセスシステムは、そのデータの一又は複数の予約者クライアントとも称されるへ、データベースに格納されたデータを公開するために、また、データへの変更がデータベース内で発生するときに、予約者又はクライアントへ更新又は変更通知を提供するために共有キャッシュを使用する。ここに記述されているデータベースアクセスシステムは、プロセス制御システム例えば、図1のコンフィギュレーションデータベース30,54のうちの何れか,図3~図5のマスターコンフィギュレーションデータベースの何れか,又は図6のコンフィギュレーションデータベースの何れか内で、データベースの何れかに使用されることが可能であると言える。同様に、アクセスされているデータベース内のデータの予約者又はクライアントは、その他の任意のコンフィギュレーションデータベースであることができ、また、システム内の任意のユーザインタフェース又はコンフィギュレーションデータを使用する任意のコンフィギュレーションアプリケーションにおいて実行される任意のアプリケーションであることができる。そして、これらのクライアントは、例えば直接又は高い速度の通信回線,遅い又は小さい帯域幅の通信回線,又は間欠的な通信回線を使用してアクセスされるデータベースに通信可能に接続されることが可能である。このように、例えば、図7~図15において記述されるクライアントは、図1および図3~図6のゾーン又はサイトの何れかに配置され得る。概括して言えば、各クライアントは、該クライアントが予約するコンフィギュレーションコンポーネントを格納するコンフィギュレーションデータベースに関連するデータベースサーバと通信する。前記予約プロセスの起動において、コンフィギュレーションデータベースに接続する各々の異なるクライアントのために、クライアントスレッドが、データベースサーバ内で確立される。そして、このスレッドは、コンフィギュレーションデータベース内で一又は複数の特定のコンポーネントへのアクセスを提供する。その後で、コンフィギュレーションデータベース内のコンポーネントへの変更が認識され、これらの変更の通知と、望むならば、この変更自体とが、そのコンフィギュレーションコンポーネントを予約している各々のクライアントに送り返される。コンフィギュレーションコンポーネントからクライアントが予約解除するならば、変更通知は、そのコンポーネントのためにクライアントへ提供されない。また、クライアントは、ロックし、予約し、起用するクライアントスレッドを使用することが可能である一方、コンポーネントに変更をなすことが可能である。用語スレッドthreadは、データベースサーバ内のプロセッサによって実行される処理パス又は処理手順を参照するものであり、並列処理を実行する公知の技術であると言える。概括して言えば、プロセッサは、実行されている異なるスレッドに関連するタスクをインターリーブinterleavingすることによって、同時に複数のスレッドを実行することが可能である。例えば、前記プロセッサは、順に、第1のスレッドに関連付ける第1のステップ、第2のスレッドに関連付ける第1のステップ、第3のスレッドに関連付ける第1のステップ、それから、第1のスレッドに関連付けられた第2のステップは、第2のスレッドに関連付けられた第2のステップ、第3のスレッドに関連付けられた第2のステップ等を実行することが可能である。スレッドは、実行中の他のスレッドに影響を与えることなく、付加又は削除されることが可能である。スレッドは、スレッド間通知又はメッセージを使用している各々のその他のスレッドと通信することが可能である。また、格納され、異なるスレッドによって使用されるデータは、データを生成又は格納するスレッドによってアクセスされることが単に知られているか、又はアクセスされることができる、例えば、ローカルのスレッドであり得る。さて、図7において、複数のクライアントとコンフィギュレーションデータベースとの予約者関係を実現するコンフィギュレーションデータベースの通信システム200のブロック図は、コンフィギュレーションデータベース203と複数のクライアント206~208との間で通信可能に結合されたデータベースサーバ202を含んでいる。コンフィギュレーションデータベース203は、2つのデータストア210,212を備えるように図示してあり、各々は、クライアント206~208のうちの一又は複数によって予約されているコンフィギュレーションコンポーネントを格納する。データベース203は、図示の明確化のために、2つのデータストア210,212を有するように示してあるが、より多くの又はその他のデータストアをその中に備えることができる。さらに、任意の数のクライアントがサーバ202を使用してデータベース203にアクセスすることが可能である。また、各データストア210,212は、1つのサーバが1つ以上の異なるデータベースにアクセスするために使用され得るように、異なる物理データベースに関連付けられ得る。クライアント206~208は、イーサネット登録商標回線のような、直接の、高い速度回線であることが可能である、又は、例えば、衛星回線,セルラー回線,モデム回線接続等のような、遅く小さい帯域幅の又は間欠的な回線であることが可能である通信回線213を介して、サーバ202と通信する。クライアント206~208によるコンフィギュレーションコンポーネントのための各々の最初の要求は、サーバ202内にクライアントスレッドを生成する。そして、以下に更に詳細に記述されるように、このクライアントスレッドは、サーバ202内の共有キャッシュ214を使用している適切なデータストア210および/又は212から、クライアント206~208に要求されたコンポーネントを提供するために使用される。また、クライアントスレッドは、データストア210,212に変更を書き込むために、データベース203へコンポーネントデータを加えるか又はデータベース203からコンポーネントデータを削除するために、また、データストア210,212内のコンポーネントデータのロックを実行するために、使用され得る。概括して言えば、共有キャッシュ214は、クライアント206~208の何れかによって任意の特定の時間に予約されているデータベース203内の異なるデータ項目の各々のための、ライトウェイトlightweightと呼ばれるデータメモリオブジェクトをセットアップする。1つのライトウェイトは、データベース203内の任意のコンフィギュレーションコンポーネントのために確立されることを必要とする。そして、そのコンフィギュレーションコンポーネントを予約している全てのクライアントのためのクライアントスレッドは、同一のライトウェイトにアクセスする。このように、図7のシステムのために、クライアント206~208のうちの少なくとも1つがデータストア210で前記コンポーネントを予約するときに、ライトウェイトは、データストア210,212の中でコンフィギュレーションコンポーネントの各々のために共有キャッシュ214内に確立される。そして、クライアント206~208のうちの少なくとも1つは、データストア212で前記コンポーネントを予約する。クライアント206~208の各々が異なるコンフィギュレーションコンポーネントを予約するならば、各クライアントのためのスレッドは、コンフィギュレーションデータベース203内で異なるデータストアに連結された異なるライトウェイトを含んでいる。しかし、1つ以上のクライアントがデータベース203内で同一のコンポーネントを予約するときには、これらのクライアントのためのスレッドは、共有キャッシュ214内で同一のライトウェイトを使用する。この理由のため、共有キャッシュ内のライトウェイトは、ローカルのスレッドではない。通常、第1のクライアントがデータベース203内で最初にコンフィギュレーションコンポーネントを予約するときはいつでも、ライトウェイトは、共有キャッシュ214内でそのコンフィギュレーションコンポーネントのために確立される。そして、このライトウェイトは、データベース203からコンフィギュレーションコンポーネントのコピーを読み込み、格納する。その後で、同一のコンフィギュレーションコンポーネントを予約するその他の全てのクライアントは、同一のライトウェイトに接続されたそのクライアントスレッドを有する。これは、このコンフィギュレーションコンポーネントに予約する第2,第3等のクライアントがコンフィギュレーションデータベース203からでなく、前記ライトウェイトからコンポーネントを読み込むことができる。つまり、コンフィギュレーションデータベース203からの読み込み回数を低減する。図7に示すデータベースサーバ202は、クライアント206,207,208のそれぞれのために、異なる読み書き動作を実行する3つのクライアントスレッド216,217,218と、クライアントスレッド216,217,218に対して、通知動作を実行する2つの通知スレッド220,222とを備える。概括して言えば、各クライアントスレッド216,217,218は、通信回線230を通じて前記クライアントと通信するために、サーバコンポーネントオブジェクト226,227,228をそれぞれ使用する。特定のクライアントスレッド内のサーバコンポーネントオブジェクトは、前記クライアントによってアクセスされている異なるコンポーネントの各々のための共有キャッシュ214内の異なるライトウェイトと通信し、このような各ライトウェイトに関連付けられたコンポーネントデータラッパーcomponentdatawrapperを使用してこの通信を実行する。各コンポーネントデータラッパーは、関連付けられたライトウェイトへのアクセスを制御し、1つ以上のクライアントスレッドによってアクセスされ得る。図7のシステムにおいては、クライアント206は、データストア210,212内のコンポーネントを予約し、クライアント207は、データストア210内のコンポーネントを予約し、クライアント208は、データストア212内のコンポーネントを予約している。図7に示すように、クライアント206のためのクライアントスレッド216は、データストア210と通信するライトウェイト234に順に接続された第1のコンポーネントデータラッパー232と通信するために、サーバコンポーネントオブジェクト226のうちの1つを使用する。確立の際、ライトウェイト234は、データストア210内の前記データをコピーし、このデータを、該データを予約している各クライアントがアクセスできるようにする。クライアントスレッド216のサーバコンポーネントオブジェクト226のうちの1つは、データストア212と通信するライトウェイト242に順に接続するコンポーネントデータラッパー240と通信する。同様に、確立の際、ライトウェイト242は、前記データをデータストア212からコピーし、このデータを、該データを予約している各クライアントがアクセスできるようにする。クライアント207のためのクライアントスレッド217は、コンポーネントデータラッパー232と、従って、ライトウェイト234内の前記データ即ち、データストア210内の前記データにアクセスするために、ライトウェイト234と通信するためにサーバコンポーネントオブジェクト227を使用する。一方、クライアント208のためのクライアントスレッド218は、データストア212に関連付けられたライトウェイト242内のデータにアクセスするためにコンポーネントデータラッパー240と通信すべく、サーバコンポーネント228を使用する。このように、このコンフィギュレーションにおいて、クライアント206,207は、同一のコンフィギュレーションコンポーネントを予約し、その結果、クライアント206,207の両方が、このコンポーネントのためにライトウェイト234にアクセスする。同様に、クライアント206,208は、同一のコンフィギュレーションコンポーネントを予約し、両者が、このコンポーネントのためにライトウェイト242にアクセスする。その結果、ライトウェイト234,242は、2つのクライアントスレッドによってそれぞれ共有され、異なるクライアントによって共有キャッシュ214内のデータの共有を可能にする。更に詳細に説明するように、クライアントがデータベース203内のコンフィギュレーションコンポーネントを予約するときに、サーバ202は、クライアントスレッドを生成又は拡張するために、サーバコンポーネントオブジェクト,コンポーネントデータラッパーオブジェクト,およびライトウェイトを確立する。生成の際、クライアントスレッド216,217,218は、サーバコンポーネントオブジェクト226,227,228からの読み出しおよびサーバコンポーネントオブジェクト226,227,228への書き込みをなすべく、つまり、そこに生成された前記コンポーネントデータラッパーとライトウェイトとを介して共有キャッシュ214へ読み込み、および共有キャッシュ214から読み出すべく、前記クライアントによって使用される。共有キャッシュ214は、必要があれば、コンフィギュレーションデータベース203からの読み出しおよびコンフィギュレーションデータベース203への書き込みを行う。異なるクライアントスレッドが各クライアントのために生成されていれば、各クライアントスレッドは、クライアントのためにコンポーネントデータの一又は複数の予約を扱うことが可能である。通常、異なるサーバコンポーネントオブジェクトは、クライアントによってコンポーネントの各予約のために生成される。通知スレッド220は、データベース203になされた変更を検出し、そして、特に、データベース203内で保たれる変更リスト244の状態をチェックすることによってライトウェイトが生成しているデータストア210,212になされた変更を検出する。変更がなされたとき、通知スレッド220は、変更が発生した変更コンポーネントを予約する前記クライアントスレッドの各々へメッセージを送信させる。このような各クライアントスレッドは、それから、適当なサーバコンポーネントオブジェクトを使用して、そのクライアントスレッドをクライアントに通知することが可能である。クライアントに送信された通知メッセージは、新しいコンポーネントデータを含むことが可能であるか、又は、単に新しいデータが存在すること、また、変更されたコンフィギュレーションコンポーネントのために確立されたクライアントスレッドを介してこのデータをクライアントが引くか又は読むかをしなければならないことを、クライアントに通知することが可能である。同様に、ランタイムスレッド222は、如何なるランタイムサービス246によって実行されるプロセス制御システムへなされる特定の変更をも検出し、該変更のデータに関連付けられたコンポーネントを予約しているクライアントスレッドを通知する。概括して言えば、コンフィギュレーションデータベース203内のデータへのアクセスは、コンポーネントに対してコンポーネント単位で実行される。各コンポーネントは、エリア,コントローラ,デバイス,制御モジュール等のようなコンフィギュレーションデータベース内の単一の項目であることが可能であり、望むならば、複数の項目の単一のツリーであることが可能である。さらに、任意のコンポーネントが親コンポーネントであることが可能であり、該親コンポーネントは、これに関連付けられた一又は複数の子コンポーネントを有すること、および/又は任意のコンフィギュレーションコンポーネントが親コンポーネントの子コンポーネントであることが可能である。このように、エリアは、特定のエリアを示す多数の子コンポーネントを伴った親コンポーネントであることが可能である。各特定のエリアは、特定のエリアの中のコントローラ,ユーザインタフェース,制御モジュール等を示す子コンポーネントを伴った親コンポーネントであることが可能である。さて、図8には、図7の共有キャッシュ通信システムを実現すべく使用されるオブジェクトのためのオブジェクトマップが図示されている。特に、クライアント300任意のクライアントであることが可能は、例えば、図2のようなコンフィギュレーション階層でユーザに表示させる如き、クライアントによる任意の目的でアクセス又は予約されるコンフィギュレーションデータの任意の部分であるクライアントコンポーネントオブジェクト301を有することが可能である。子供側にてドットを有し、また、親側にてドットを欠如しているクライアントコンポーネント301とフィードバックパスによって示すように、クライアントコンポーネント301は、それに関連付けられた一又は複数の子コンポーネントを有する親オブジェクトであることが可能である。図8において、ドットの欠如が1対1関係を示す一方、ドットの使用は1対1又は1対多の関係を示している。このように、クライアントコンポーネントオブジェクト301を図示するように、各子クライアントコンポーネントが1つの直接の親コンポーネントだけを持つことができる一方、各親クライアントコンポーネントは一又は複数の子クライアントコンポーネントを持つことが可能である。各クライアントコンポーネント301は、クライアント300でのそのクライアントコンポーネントに関連付けられたスマートプロキシ302に結合されている。該スマートプロキシ302は、クライアントコンポーネント301に代わり、通信回線304を通じた通信を担っている。特に、前記スマートプロキシは、コンポーネントに関連するクライアント要求を受ける分散オブジェクトであって、それらの要求を通信するサーバ306への通信回線304を通じてサーバ306を呼び出し、更新イベントを受信し、サーバ306から送信されるキャッシュデータとメッセージとを格納し、このデータをクライアントコンポーネントオブジェクト301に渡す。勿論、スマートプロキシ302は、任意の好ましい方法によって、又は任意の好ましい通信技術を使用する遅延認証通信および警報管理というタイトルの米国特許出願に記述された遅延認証ルーチンを使用することによって、通信回線304を通じて通信するために必要な操作を実行する。通信回線304は、遅い又は小さい帯域幅の回線例えば、衛星,セルラー,インターネット,又はその他の共有広域ネットワーク回線を含む任意の好ましい通信回線であることが可能であり、また、望ならば、間欠的な接続例えば、モデム回線接続であり得るか、直接接続又は高速接続例えば、専用のイーサネット登録商標回線であり得る。サーバ306は、通信回線304を通じたクライアントのスマートプロキシ302との通信を担うサーバコンポーネントオブジェクト308を含んでいる。各サーバコンポーネント308は、コンフィギュレーションデータベース内のコンフィギュレーションコンポーネントの特性にアクセスするインタフェースを提供するために、また、クライアントに対して、イベントの更新を受け、これらのイベントをスマートプロキシ302に転送するために、特定のクライアントによってアクセス又は予約される少なくともコンフィギュレーション階層の一部を記録又は保持することを担う。図8に示すように、サーバコンポーネント308は、親子関係を通じてその他のサーバコンポーネントに関連付けられることが可能である。そして、この親子関係は、関連付けられたクライアントコンポーネント301のために確立された親子関係を反映する。特に、この関係は、クライアント階層即ち、クライアントにより予約されているコンフィギュレーション階層を反映する。各サーバコンポーネント308は、サーバ306の共有キャッシュ部分内でセットアップされたオブジェクトである唯一のコンポーネントデータラッパー310に、着目され、また、通信可能に結合され得る。しかし、図8によって示されるように、コンポーネントデータラッパー310は、異なるクライアント又はクライアントスレッドのための多数のサーバコンポーネントに接続されることが可能である。コンポーネントデータラッパー310は、共有データ即ち、複数のクライアント又はクライアントスレッドによって、図7の共有キャッシュ214内で共有されるデータへのインタフェースである。コンポーネントデータラッパー310は、階層関係全ての予約中のクライアントによって見られている全てのクライアント階層の上位集合supersetであるを記録することが可能であり、サーバコンポーネントへのリファレンスを登録することが可能であり、変更イベントが検出されたときにサーバコンポーネントに通知することが可能であり、最後に修正された日付コンフィギュレーションデータベースからのイベントを受け入れるか又は拒絶するために使用されるを記録することが可能であり、また、共有データをロックすることが可能である。サーバコンポーネント308と同様に、サーバコンポーネント308の全てとクライアントコンポーネント301の全てとのために確立された関係を反映する関係をもって、コンポーネントデータラッパー310は、親子関係において、その他のコンポーネントデータラッパーに関連付けられる又は関連することが可能である。特定のコンフィギュレーションコンポーネントにアクセスしている全てのクライアントスレッドが同一のコンポーネントデータラッパー310を通過するので、各コンポーネントデータラッパー310は、多数のサーバコンポーネント308に接続され得ると言える。第1のクライアントがコンフィギュレーションデータベース内で最初に項目を予約するときに、コンポーネントデータラッパーファクトリcomponentdatawrapperfactory312によって生成されるコンポーネントデータラッパー310は、どのサーバコンポーネント308がコンフィギュレーションデータベース内の特定のコンポーネントを予約しているかをトラッキングし、予約中のサーバコンポーネント308の各々にこのデータへの変更について通知するように動作する。各コンポーネントデータラッパー310は、一又は複数のサーバコンポーネント308が予約しているコンフィギュレーションデータベース内で、コンポーネントデータのコピーを格納する唯一のライトウェイトオブジェクト314に接続されるか、又は該ライトウェイトオブジェクト314を含む。言い換えると、コンポーネントデータラッパー310は、複数のサーバコンポーネント308の各々によるライトウェイト314のアクセスを取り扱うために、一又は複数のサーバコンポーネント308と、単一のライトウェイト314との間に挿入される。概括して言えば、ライトウェイト314は、サーバコンポーネント308間で供給されるデータのための貯蔵所であって、図7のコンフィギュレーションデータベース203になされた変更に関連する更新通知のために、図7の通知スレッド220とともに登録することに使用される。コンポーネントデータラッパーファクトリ312は、コンポーネントデータラッパー310とライトウェイト314との取得/生成を担う。クライアントがそれがコンフィギュレーションデータベース203内でコンポーネントを予約したいことを示すとき、コンポーネントデータラッパーファクトリ312は、このコンポーネントのためのコンポーネントデータラッパー310が既に生成されているか否かを確認すべく最初にチェックする。もしそうならば、コンポーネントデータラッパーファクトリ312は、このコンフィギュレーションコンポーネントのためにクライアントスレッドをコンポーネントデータラッパー310に接続する。もしそうでなければ、コンポーネントデータラッパーファクトリ312は、コンフィギュレーションデータベース203からの要求情報をライトウェイト314へロードさせるように、新しいコンポーネントデータラッパー310とライトウェイト314とを生成し、この新しいコンポーネントデータラッパー310と、関連付けられたライトウェイト314とを使用するクライアントのためのスレッドを生成又は拡張する。コンポーネントデータラッパーファクトリ312が新しいラッパー310を生成するときに、コンポーネントデータラッパーファクトリ312は、ラッパー310にユニークな不変の識別子を割り当てる。この識別子は、リファレンスしているサーバコンポーネント308と、これらの対応するクライアントコンポーネント301とへ渡されるものであって、グループの又は個々のコンポーネントをユニークに識別し、また、これに代えて、多くの煩雑な名前変更の問題を回避し、遅い通信回線例えば、ツリーの全てのツリー又はブランチ枝がクライアントで要求される時を通じてIDのリストのより効率的な整列を提供する。ロックマネージャ316は、各コンポーネントデータラッパー310に対して、異なるクライアントによってその関連付けられたライトウェイト314へのアクセスを制御させることを可能にする。ライトウェイト314をロックすることで、一又は複数の他のライトウェイトをロックすることを引き起こすことが可能であるので、例えば、親コンポーネントデータを格納するライトウェイトをロックすることで、その親コンポーネントのために子コンポーネントを保持するライトウェイトをロックすることを自動的に引き起こすことが可能である。同様に、各ライトウェイト314は、別のライトウェイトをロックする際に自動的にロックされることが可能であるので、その子コンポーネントのために親コンポーネントを保持するライトウェイトがロックされるときに、子コンポーネントを保持するライトウェイトがロックされることが可能である。このように、そのライトウェイトからの読み出し又は該ライトウェイトへの書き込みが任意の特定のクライアントスレッド内で実行されるときに、ロックマネージャ316によって、コンポーネントデータラッパー310がそれに関連付けられたライトウェイト314をロックさせることが可能であり、このライトウェイトをロックすることで、他のライトウェイト例えば、ロックされているライトウェイトに関連付けられた子コンポーネントを保持するライトウェイトをロックすることを自動的に引き起こすことが可能である。さらに、各ライトウェイト314は、コンテキストメモリcontextmemoryを使用する図7のコンフィギュレーションデータベース203からの又は該コンフィギュレーションデータベース203へのコンポーネント特性の読み書きのための、一又は複数のトランザクショナルメモリオブジェクトXM:transactionalmemoryobject318を使用する。ライトウェイト314がコンフィギュレーションデータベース203に対して読み書きする必要がある都度、XM318が始動される。該XM318は、この読み書きをなすために使用するポインタを、前記コンテキストメモリローカルのクライアントスレッドであるに提供し、前記コンテキストメモリを使用するコンフィギュレーションデータベース203への読み込み又は書き出しをさせる。また、前記XM318は、データベース203内のデータベースオブジェクトを生成/削除するために、そして、コンフィギュレーションデータベース203に関係を持たせた通知を登録解除するために使用され得る。適当な読み書きがライトウェイト314に一旦実行されると、XM318は開放される。しかし、前記コンテキストメモリに格納されたデータは、未だ存在し、必要ならば、このメモリへのポインタは、後で使用されるスレッドローカル記憶装置に格納される。XMの使用については、オブジェクトデータベースマネージャにおいては標準であって、ここでは更なる説明はしない。通知エンジン320は、各XM318に登録し、XM318によってに示されるコンフィギュレーションデータベース203内のデータ記憶装置の位置におけるデータ値の何れかへの変更を検出する。このような変更は、例えば、クライアントがコンフィギュレーションデータベース203への読み込みを引き起こすことランタイムプロセス又はその他の何らかの外部の処理等によって、なされることが可能である。通知エンジン320は、これが、XM318の何れかによって示されたデータベースの項目への変更を検出したときに、このXM318と関連付けられたライトウェイト314を有するコンポーネントデータラッパー310に通知し、変更がなされ、そして、コンポーネントのためのその新しい値が利用可能なコンポーネントを予約しているクライアントの全てに通知する。この操作を実行するために、通知エンジン320は、コンポーネントデータレジスタラッパーマップとも呼ばれる322を使用する。これは、XM318によって示されたデータベース位置に、各コンポーネントデータラッパー310をマッピングするマップである。より詳しくは、コンポーネントデータレジスタ322は、データベース203にアクセスしているXM318の操作の結果として生成された通知クッキー又はIDにコンポーネントデータラッパー310を関係付けるルックアップテーブルである。時々、これらのIDは、マジックナンバーとも呼ばれ、概括して言えば、これらのIDは、データベース203内に格納されたコンポーネントの位置又はそのものについて識別する。通知エンジン320は、マジックナンバーに関連付けられたデータベース位置の各々に関係する更新イベントのリストを得て、変更が発生した各コンポーネントに関連付けられたコンポーネントデータラッパー310を見つけるためにコンポーネントデータレジスタ322を使用する。その結果として、通知エンジン320は、コンフィギュレーションデータベース203から定期的に変更リストを得て、変更が発生したコンポーネントデータラッパー310への変更イベントを始動するイベントジェネレータである。概括して言えば、クライアントスレッドは、それによって変更通知を得るために生成されるので、各コンポーネントデータラッパー310は、コンポーネントデータレジスタ322で、そのライトウェイトに関連付けられたXMの全てを登録する。代わりに、コンポーネントデータラッパー310は、ユニークなクッキーを登録毎に受け、これらのクッキーは、コンポーネントデータレジスタ又はラッパーマップ322に格納される。変更通知に応じて、コンポーネントデータラッパー310は、その関連付けられ得たライトウェイト314に対して、前記データベースから再ロードすることを、また、必要ならば、コンフィギュレーション階層を更新することを強制する。さらに、コンポーネントデータラッパー310は、該コンポーネントデータラッパー310に関係がある又はアクセスしているサーバコンポーネント308の各々へ更新メッセージを送信する。そして、サーバコンポーネント308は、それから、共有キャッシュ即ち、ライトウェイト314と再整合させる。最後に、サーバコンポーネント308は、クライアントコンポーネント301に更新メッセージを送り、サーバコンポーネント308と再整合させる。さて、図9を参照して、データベースサーバ306例えば、図7のデータベースサーバ202、又は図1,図3~図6のデータベースサーバの何れかであることが可能であるの状態は、例えば、任意のクライアントがコンフィギュレーションデータベース325例えば、図7のデータベース203又は図1および図3~図6のコンフィギュレーションデータベースの何れかであることが可能である内のデータの何れかを予約する前の、プレスタート起動時を示している。サーバ306は、その中にサーバコンポーネントオブジェクトを有していないプレスタートクライアントスレッド326を含んでいる。つまり、共有キャッシュ327は、コンポーネントデータラッパー又はライトウェイトおよび空のデータベースコンテキストメモリ部分328を有していない。サーバ306の共有キャッシュ327は、データベース325から読まれているコンポーネントをロックすることを調整するコンポーネントデータラッパーファクトリ312とロックマネージャ316とを備えている。図9に示すように、通知スレッドは、上述した如きデータベース325内のデータになされた変更を検出する通知エンジン320、およびコンポーネントデータレジスタ、又はコンフィギュレーションデータベース325内の位置で共有キャッシュ327内のコンポーネントデータラッパーをマッピングするラッパーマップ322を備えている。勿論、データラッパーは、共有キャッシュ327内に存在しないので、ラッパーマップ322は、空である。同様に、ランタイムスレッドは、任意のサービス例えば、自動検出サービスであり得るランタイムサービス338によって、又はランタイム動作若しくはコンフィギュレーション動作の間に実行するその他のアプリケーションによって、コンフィギュレーションデータの或る部分になされた変更を検出する通知エンジン336と、ランタイム通知エンジン336に、サーバ306で実行しているクライアントスレッド内の適当なコンポーネントデータラッパーへ変更メッセージを送らせることを可能にするマップ340とを備える。起動時に、ランタイム通知エンジン336は、プロセス制御ネットワークのコンフィギュレーション内の特定の変更例えば、新しいノードの追加又はシステム内の新しいデバイス非稼動中のコントローラのようなの追加を検出することを実行するオブジェクトの一例を生成する。1つの実施形態において、通知エンジン336は、非稼動中のコントローラとFieldbusデバイスとのリストのためのランタイムサービス338それは、任意のランタイムサービス又はアプリケーションであり得るをポーリングする。マップ340は、一般に、適当なデータラッパー生成の際がプロセス制御システム内の新しいノード,デバイス等の生成に関連する情報を受けるために登録する記憶位置又は記憶領域を指し示している。勿論、全てのデータラッパーがランタイムスレッドに登録する必要があるというわけではないが、新しく加えられたデバイス例えば、図2に図示された非稼動中のコントローラのコンポーネントに関係するコンポーネントに関連付けられたそれらのラッパーだけは登録する必要がある。起動時に、マップ340は、どのラッパーも登録されていない記憶位置を指し示している。さて、図10においては、第1のクライアント342がコンフィギュレーションデータベース325内のコンポーネントに接続し、予約するときの、サーバ306の操作が図示されている。特に、クライアントアプリケーションが、起動し、コンフィギュレーション階層内のコンポーネント348を要求するためにスマートプロキシ346を使用している通信回線344を介してサーバ306に接続する。この際に、サーバ306は、プレスタートクライアントスレッド326をクライアント342に割り当て、サーバ306に接続する次のクライアントによって使用される新しいプレスタートクライアントスレッド図示せずを生成する。一般的に、クライアント342は、ルーツオブジェクト例えば、エリアコンポーネントを要求することから始める。この時点で、エリアサーバコンポーネント350は、サーバ306において生成され、エリアサーバコンポーネント350は、ラッパーファクトリ312からエリアコンポーネントを要求する。ラッパーファクトリ312は、コンポーネントデータラッパー以下、ラッパーと称すが共有キャッシュ327内のエリアコンポーネントのために生成されず、このようなラッパー354エリアラッパーを生成することを認識する。そして、ラッパー354をクライアントスレッド326内のエリアサーバコンポーネント350と結び付ける。ラッパーファクトリ312は、新しく生成されたラッパー354にユニークに関連付けられ、前記クライアントスレッドのためにデータベースサイトコンテキスト362に結び付けられたライトウェイト360を生成する。前記ルーツエリアコンポーネントが要求されたので、前記サイトコンテキストが使用される。そして、このコンポーネントは、データベース325内のサイトオブジェクトに関連付けられる。この際に、ライトウェイト360は、XM図示せずを生成することによって前記エリアコンポーネントのためにデータベース325に呼び出しを行う。前記XMは、クライアントスレッド326によって使用されるべきコンテキストメモリ328内の記憶位置を指し示しており、前記データベースマネージャに、前記エリアコンポーネントを読み出させ、前記コンポーネントデータをサイトコンテキストメモリ362に格納させる。次に、このデータが、ライトウェイト360にロードされ、前記XMが、開放される。この処理の間、変更がそのデータベースの対応するものこの場合、データベース325のエリアコンポーネント内のものに発生するとき、ラッパーファクトリ312又は前記XMは、変更通知のためにラッパーマップ322で新しく生成されたエリアラッパー354を登録する。この登録は、線363で図示されている。この登録を実行するために、ユニークな識別子IDがラッパー/データベースサイトの組合せのために生成され、このIDが、通知スレッドに送信される登録メッセージ内に掲示される。登録メッセージの処理に際して、前記通知スレッドは、前記IDによってロックされたエリアラッパー354のために、エントリをラッパーマップ322に加える。このエントリは、ラッパー354とともに、XMデータベース325内のオブジェクト又は位置を指し示すに関連付けられたマジックナンバーに関係している。次に、前記エリアコンポーネントは、ラッパー354から、エリアコンポーネントデータで更新されるサーバコンポーネント350へ送信される。サーバコンポーネント350は、それから、コンポーネントデータがクライアントコンポーネント348に提供されるクライアント342のスマートプロキシ346へエリアコンポーネントデータを送信する。その後で、前記通知スレッドは、データベース325内のエリアコンポーネントへの変更を監視し、そして、変更がなされれば、ラッパーマップ322によって定義されているように、データベース325内のこのコンポーネントに関連付けられたラッパーのためにIDを参照する。前記通知スレッドは、それから、変更について前記ラッパーこの場合、ラッパー354に通知する。必要ならば、ラッパー354は、データベース325の読み出しを引き起こすことによって変更を反映するためにライトウェイト360を更新する。その後で、ラッパー354は、変更についてサーバコンポーネント350に指示し、サーバコンポーネント350は、前記エリアコンポーネントのために新しいデータを要求することができる、そして、新しいデータは、ライトウェイト360から読み出され得る。次に、サーバコンポーネント350は、変更についてクライアント342に通知し、該クライアント342は、エリアコンポーネントのための新しいデータをサーバコンポーネント350から要求するので、前記エリアコンポーネントにおける変更は、自動的に、又は変更についてクライアントへ通知し、クライアントが新しいコンポーネントデータを要求するのを待機することによって、クライアントコンポーネント348に反映される。クライアント342は、サーバコンポーネント350から新しいコンポーネントデータの手動で引き出すことができるが、変更が検出されたときに、新しいデータ又は変更されたデータがクライアントに自動的に送信されることについては、議論のために以下のように想定する。同様に、前記ランタイム通知スレッドは、ランタイムサービス338の操作に基づくプロセス制御システムのコンフィギュレーションにおいてなされた特定の変更を検出する通知エンジン336を使用する。特定の変更が発生した例えば、ノード又はデバイスが加えられたならば、通知エンジン336は、検出された変更の表示を何れかのラッパーが受けるために登録したかどうか見るために、マップ340によってその変更のために指定された記憶位置を参照する。もしそうならば、通知エンジン336は、通知エンジン320によって生成されたイベントメッセージが処理される方法と同様に、そのメッセージを処理することができる、登録したラッパーに、イベントメッセージを送信する。ランタイム通知スレッドによって検出された変更の通知を受けたいデータラッパーが、マップ340によって、即ち、例えば、データラッパーが生成されたときに、その記憶位置での変更通知を受けるために前記ラッパーのIDを格納することによって、その変更のために指定された記憶位置で登録すると言える。さて、図11において、クライアント342は、次に、エリアクライアントコンポーネント348のために子供をロードすることを要求し得る。この場合、クライアント342は、子供コマンドおよびエリアルーツコンポーネントのロードを呼び出し、このコマンドは、プロキシ346を介してサーバコンポーネント350へ渡され、そこから、エリアライトウェイト360へ渡される。エリアライトウェイト360は、前記エリア子コンポーネントについての情報を得るためにクライアントスレッド326に対するコンテキストメモリ362を使用するコンフィギュレーションデータベース325へ問い合わせる。このデータは、返され、そして、ライトウェイトと関連付けられたデータラッパーとは、それから、エリアコンポーネントに関連付けられた各子コンポーネントのために生成される。図11において、前記エリアコンポーネントは、AreaAと名付けられたFredという説明付きの1つの子コンポーネントだけを含むように示されている。そして、この新しい子コンポーネントデータは、新しいライトウェイト370に格納される。しかし、その他のエリア子コンポーネントは、また、エリアコンポーネントに関連付けられることができ、そして、この場合には、新しいライトウェイトは、下記のその他のオブジェクトとともに、これらの子供の各々のために生成される。新しいライトウェイト370の作成の際、エリアラッパー354又はラッパーファクトリ312は、子ラッパーとしてエリアラッパー354に関連付けられた別々のラッパー372内の新しいエリアライトウェイト370をラップwrapする。また、エリアラッパー354は、サーバコンポーネント350に前記新しいエリアコンポーネントを返す。新しいライトウェイト370は、エリア子コンポーネントに関連する特定のデータを得るためにコンテキストメモリ376を介してデータベース325で登録すべくXMを生成する。また、ラッパー372又はライトウェイト370は、新しいラッパーIDこの場合、1つのラッパーIDと、これに関連付けられたデータベースマジックナンバーこの場合、1つの新しいマジックナンバーとのリストとともに、登録メッセージを前記通知スレッドに送信する。前記新しいIDは、線378によって示するように、新しいラッパー372を示すために前記ラッパーマップに格納される。また、データベース325における新しい子エリアコンポーネントの位置を示すマジックナンバーは、ラッパーマップ322に提供され、このIDのために格納される。一方、エリアサーバコンポーネント350は、新しい子エリアコンポーネントのための子エリアサーバコンポーネント380を生成し、そうする際に、子サーバコンポーネント380のために生成されたラッパー372へ、新しい子エリアサーバコンポーネント380内でポインタを埋め込む。また、サーバコンポーネント350は、前記通信回線とプロキシ346とを介してクライアントエリアコンポーネント348へ子コンポーネントこの場合、1つのリストを送信する。そして、エリアクライアントコンポーネント348は、子エリアクライアントコンポーネントを生成し、新しい子クライアントコンポーネント382と新しい子サーバコンポーネント380との間での通信を可能にするために子エリアクライアントコンポーネント382において、サーバコンポーネントリファレンスをサーバコンポーネント380に埋め込む。クライアントコンポーネント382のためのスマートプロキシ384は、それから、生成され、データベース325内で新しい子コンポーネントのための予約を含むためにクライアントスレッド326を拡張する処理を完了する。勿論、同じ手順は、特定のコンポーネントのその他の子コンポーネントのために発生する。そして、複数の子供が存在するならば、クライアントスレッド326は、複数の子コンポーネントを予約するために拡張され得る。同様に、クライアントスレッド326は、新しく予約された子コンポーネント382に関連付けられた子コンポーネントを得ることによって、又は別のルーツコンポーネントを要求することによって、更に拡張され得る。さて、図12を参照して、第2のクライアント386が、第1のクライアント342により予約された同一のコンポーネントを予約する際の処理について、詳述する。ここでは、サーバ306の通知スレッドは、明確化のために図示していない。特に、第2のクライアント386は、第1のクライアントと同様の方法でサーバ306に接続し、前記エリアコンポーネントを予約する。サーバ306への接続に際しては、第2のクライアント386は、第2のプレスタートスレッド387に割り当てられる。この例では、クライアント386は、第2のクライアントスレッドでエリアサーバコンポーネント388を生成するエリアルーツコンポーネントを求める。サーバコンポーネント388は、エリアルーツコンポーネントのためのラッパーをラッパーファクトリ312に求める。なぜなら、ラッパー354は、前記エリアルーツコンポーネントのための共有キャッシュ327内で既に存在するからであり、ラッパーファクトリ312は、ラッパー354にポインタを返す。この時点で、エリアサーバコンポーネント388は、第1のクライアント342のために既に確立されたライトウェイト360から読み出されるエリアルーツコンポーネントデータについてラッパー354に問い合わせる。ライトウェイト360に格納されたエリアルーツコンポーネントデータは、エリアルーツサーバコンポーネント388に返され、そして、そこから、クライアントエリアコンポーネント389に返される。エリアルーツコンポーネント389の子供のための第2のクライアント386による要求に際して、エリアルーツサーバコンポーネント388は、ラッパーファクトリ312に子ラッパーを要求する。そして、これらのラッパーこの場合、1つのラッパーが既に存在するので、ラッパー372へのポインタは、エリアルーツサーバコンポーネント388にラッパーファクトリ312によって提供される。それから、サーバコンポーネント388は、ラッパー372へのポインタを有する子エリアサーバコンポーネント390を生成する。エリアルーツサーバコンポーネント388は、適当なクライアントコンポーネント392を生成する第2のクライアント386とサーバコンポーネント390と通信するスマートプロキシ393とに子供の情報を送信する。また、子エリアサーバコンポーネント390は、ラッパー372を介してライトウェイト370を読み出し、プロキシ393を介してクライアントコンポーネント392にこのデータを送信する。この処理においてはデータベース325への呼び出しがなされなかったので、第2のクライアントのデータベースコンテキストは空である。つまり、全ての情報が、そのデータを得るために第1のクライアントスレッド326のデータベースコンテキストを使用したライトウェイト360,370を介してやって来たのである。しかし、ライトウェイトが生成されなかったというデータを第2のクライアント386が要求するならば、ラッパーファクトリ312は、そのコンポーネントのためのラッパーおよびライトウェイトを生成し、データベース325からそのデータを得るために第2のクライアントスレッド387のためのデータベースコンテキストを介してデータベース325に接続する。エリアルーツ又は子エリアコンポーネントを現在予約するその他の任意のクライアントは、データベース325に如何なる呼び出しもすることなく、共有キャッシュ327からこのデータにアクセスすることができ、これは、データベース325上でのロードを低減すると言える。同様に、イベント通知を通知スレッドから受けるのに際して、データラッパー354は、クライアントの両方ともに変更を通知するために、第2のクライアント386のためのサーバコンポーネント350に、また、第1のクライアント342のためのサーバコンポーネント388に通知する。さて、図13を参照して、コンフィギュレーションデータ項目への変更を検出する通知スレッドに関連付けられた動作と、この変更通知が各々の予約中のクライアントへ自動的に返される方法とについて説明する。この場合、第2のクライアント386は、AreaAの名前をFredからWilmaに変更し、サーバ306へこの変更とともに、書き込み又は起用メッセージを提示する。サーバコンポーネント390は、新しい名前をロードし、ライトウェイト370において新しい名前をロードするラッパー372に、この名前を付与する。ライトウェイト370は、第2のクライアント386のためのデータベースコンテキスト394に自動的に新しい名前をロードする。ここから、前記新しい名前は、データベース325に格納される。しかし、AreaAコンポーネントの第1のクライアントのバージョンには、何も発生しなかった。過去に、第1のクライアント342は、変更のためにデータベース325に定期的にポーリングする必要があって、データベース325からの遅い通信回線を通じた多くの読み出しと多くのダウンロードという結果となる。しかし、この場合、通知エンジン320は、ラッパーマップ322においてマジックナンバーに関連付けられたデータベースの項目の各々のために、更新イベントのリストのためにデータベース325に定期的にポーリングする。各イベントは、どのオブジェクトが変更されたかについて示す情報と、変更の種類名前の変更,削除,特性の変更,子供の追加/削除等のような前記変更についての幾つかの情報と、多分、名前の変更操作の場合の新しいおよび古い名前のような幾つかの手掛かりhintとを含んでいる。通知エンジン320は、ラッパーIDとともに変更されたオブジェクトのマジックナンバーに一致するラッパーマップ322を使用し、前記関連付けられたラッパーこの場合、ラッパー372に更新イベントを処理するように求める。この処理は、このオブジェクトの新しい値又は変更された値を得るためにデータベース325からライトウェイト370を再ロードすることを含むことが可能である。このような再ロードは、ライトウェイト370がデータベース325への変更に関与していなかったときに必要となる。ラッパー372は、例えば、検出された変更が古いか若しくは期限切れの変更であるか、又はその他の任意の好ましい理由であるならば、ライトウェイト370を再ロードすることを拒否することが可能である。また、ラッパー372は、前記変更についてサーバコンポーネント380,390の各々に通知するか、これに代えて、メッセージ例えば、ウインドウメッセージをこのコンポーネントを予約するクライアント342,386の各々へ送信する。ラッパー372からイベントメッセージを処理するときに、サーバコンポーネント380,390は、イベントおよび任意の新しいデータを、対応するクライアント342,386のスマートプロキシへ転送する。第1のクライアント342のプロキシ384は、第1のクライアント342におけるユーザインタフェース上での再表示を引き起こさせるクライアントコンポーネント382に再表示メッセージを掲示する。この場合、ユーザインタフェースが再表示するときに、プロキシ384が新しいデータをクライアントコンポーネント382に譲り渡し、更新が完了する。第2のクライアント386は、前記変更を既に持つので、前記メッセージを無視することが可能である。この予約システムで、第1のクライアント342は、如何なるデータベースの呼び出しもする必要もなく、第1のクライアント342での前記変更された項目の完全な再表示を早めるために、唯1回の呼び出しが例えば、遅い通信回線を介してサーバ306から第1のクライアント342へなされただけである。勿論、この処理は、全てのライトウェイトについて、また、任意のライトウェイトを予約している全てのクライアントについて発生する。従って、データベース325への如何なる変更をも、最小のデータベースの読み出しと、遅い通信回線を介した最小の通信とを伴って、その項目を予約する各クライアントへ自動的に送信することができる。さて、図14を参照して、キャッシュ327への並列アクセスの仲介について、ロックマネージャ316の操作を更に詳細に記述する。前述の説明によってよく理解されるように、共有キャッシュ327におけるライトウェイトの各々は、一又は複数のクライアントスレッドによって共有され得る。その結果、多くのクライアントが、同一のライトウェイトから同時に読み出しを行うことができる。ロックについては、これらの読み出しには一般に必要ではない。しかし、2つのクライアントが、ライトウェイトに、つまりデータベース325に同時に書き込みを行おうとする状況に出くわすことがあり得、これは、デッドロックdeadlockのような問題を引き起こす。これらの問題を防ぐために、ロックマネージャ316は、ロックを渡して、ロックテーブルを保守することによって、前記ライトウェイトの各々へのアクセスを管理する。概括して言えば、ロックマネージャ316は、ラッパー上でのロック要求を与えることによって動作する。クライアントスレッドがライトウェイトにアクセスしたいときには、前記スレッドは、前記ラッパー上でのロックの読み書きを最初に取得しなければならない。例えば、別のクライアントスレッドがそのライトウェイトにアクセスするプロセスにおいて存在するために、前記ロックが利用できないならば、ロックマネージャ316は、前記ロックが自由になるまで追い詰められて、要求しているスレッドを保持する。図14の例においては、第1および第2のクライアント342,386は、AreaAの説明を書き込もうとしている。ここで、第2のクライアント386は、ライトウェイト370への書き込みを実行しようとし、この処理においては、ロックマネージャ316からのラッパー372上でロックを要求し、これを取得する。第1のクライアント342が、それから、ライトウェイト370の特性からの読み出し又は該特性への書き込みをしようとするならば、ロックマネージャ316は、このスレッドがデータラッパー372上での読み出しロック又は書き込みロックを取得しようとしたときに、第1のクライアントスレッド326の実行を待機する。一方、第2のクライアントスレッド387は、AreaAの名前をWilmaに変更するために、それ自身のデータベースコンテキスト394を介してライトウェイト370へ書き込む。この書き込み操作が完了したときに、ロックマネージャ316は、第1のクライアントスレッド326に対して、ライトウェイト370の、つまり、データベース325の読み書きを進めさせる。読み出しロックが開放されるまで、書き込みロックは拒否又は保留され得ることに注意する。しかし、読み出しロックが別のクライアントスレッドに与えられているならば、読み出し要求を保留する理由は通常ない。また、ロックマネージャ316が上述した予約操作を確立するために使用され得る点に注意する。特に、予約ロックは、例えば、ライトウェイト370によって要求され、また、ライトウェイト370上のクライアントへ与えられることが可能である。これ以後においては、任意のクライアントが、ライトウェイト370の読み出しを行うことが可能であるが、該ライトウェイト370への書き込みはできない。予約ロックが与えられたならば、ロックマネージャ316は、ラッパー372に対して、書き込みロックを要求しているクライアントへメッセージを送信するようにさせ、異なるクライアントによって予約中であるように、このデータへの書き込みは許容されない。勿論、ロックマネージャ316は、また、前記予約ロックを与えられたクライアントの識別を提供又は格納することが可能であり、また、起用操作の間、このクライアントによるライトウェイト370への書き込みを可能とする。ロックがあれば、何処であってもデッドロックの可能性がある。例えば、第1のクライアントが、コンポーネントAのロックを取り出し、同時に、第2のクライアントが、コンポーネントAのロックを取り出す。次に、第1のクライアントが、コンポーネントBのロックを取り出そうとするが、第2のクライアントによってコンポーネントBのロックが開放されるまで停止する。しかし、コンポーネントBのロックが開放される前に、第2のクライアントが、コンポーネントAのロックを取り出そうとするならば、両方のコンポーネントAおよびコンポーネントBのロックは開放されることがなく、従って、デッドロックとなる。共有キャッシュ327におけるデッドロックを回避するために、ロックマネージャ316には、如何なる特定のクライアントであっても、ロックを順々に取り出し、開放しなければならないような制約を持たせることが可能である。しかし、この場合、2つのクライアントは、他方によってなされた変更を上書きすることが可能であり、この結果、後者の書き込みが勝つ。例えば、第1のクライアントが、コンポーネントAを修正し、第2のクライアントがコンポーネントBを修正する。第1のクライアントが、それから、コンポーネントBを修正し、第2のクライアントがコンポーネントAを修正する。デッドロックが回避される一方、コンポーネントAは、第2のクライアントの変更を有し、コンポーネントBは、第1のクライアントの変更を有する。ライトウェイトは階層を持たないが、幾つかのライトウェイト間リファレンスが存在することが可能である。もしそうならば、この事実は、例えば、更新操作が同時にロックすべき両方のライトウェイトを要求するならば、デッドロックの潜在的な要因である。この問題を回避するために、ロックマネージャ316は、関連したライトウェイトに関してロック注文を実行することができる。例えば、第1のライトウェイトが第2のライトウェイトに関連付けられるならば、第1のライトウェイトは、第2のライトウェイトのロックリストに加えられる。クライアントが第2のライトウェイトをロックしたいならば、前記クライアントは、最初に第1のライトウェイトをロックしなければならない。ロックマネージャ316は、この注文のリストを保持し、ロック手順の注文を実施することが可能である。この従属ロックを実施するために、関与したオブジェクトが従属ツリーを形成しない限り、ロックマネージャ316は、クライアントにつき1つのロックのみを一度に許容することが可能である。データベース325において一連のコンポーネントを修正することは、1つのデータベース処理について発生する。それは、処理が失敗する可能性があり、従って、変更がデータベース325においてなされる前に、データベースの状態をロールバックrollbackし、キャッシュされたコンポーネント例えば、ライトウェイトがデータベース325に格納されたものと矛盾する結果となる。ロールバックメカニズムを提供するために、クライアントスレッドは、データベース修正処理が稼動している間、前記コンポーネントを加えた、修正されたコンポーネントのリストを保持することが可能である。複数ステップのデータベース処理が中止されるか、又は失敗と見なされたならば、前記リストが横渡しされ、各コンポーネントが再ロードされる。これは、コンポーネントの特性を再ロードし、新しい/削除された子供についてチェックすることである。このような修正されたコンポーネントのリストが既知の順序例えば、ラッパーIDに応じてに保たれるならば、ロックテーブルを生成し、クライアント操作につき複数のロックを引き出すことが可能である。ライトウェイトがロックされる時間を減らすために、ライトウェイトは、データベース325へ特性を書き戻すとき、ライトウェイトに格納されたコンポーネントデータオブジェクトのクローンを最初に生成することが可能である。該クローンは、新しい特性の値を供給され、該値をデータベース325に格納するために使用される。この操作が一旦完了したならば、第1のコンポーネントデータオブジェクトは、変化されるか、又は前記クローンを優先して差し替えられる。前記クローンが作られた後で、前記ライトウェイトをロック解除することができるので、このようなクローン技術を使用することは、キャッシュ327又は前記ライトウェイトがロックされる時間を減じ、前記キャッシュへのアクセスの並列性を改善する。しかし、この状況には、2つのクライアントが、同時に、同一のライトウェイトへの書き込みをしようとする点で、競争条件が存在することになる。特に、第1のクライアントが、第2のクライアントの前に、データベース325へのコンポーネントのそのバージョンを保存するが、第2のクライアントの後で、前記キャッシュ即ち、ライトウェイトを変化させるならば、前記キャッシュは、データベースで矛盾することになる。ここで、前記データベースは、第2のクライアントの変更を有するが、前記ライトウェイトは、第1のクライアントの変更を有する。この状況は、ロックを調整することによって、又はいつでも任意のライトウェイトの1つのクローンだけを許容することによって、回避され得る。これらの手順の全ては、ロックマネージャ316によって仲介され得る。上述のように、新しい子ライトウェイトは、クライアント要求に応じて、又はクライアントが新しい子供を加える時に、データベース325からこれらの子供をロードすることによって生じる。望むならば、クライアントは、親をロックする前に、新しい子コンポーネントデータオブジェクトを生成/ロードする時点で、キャッシュ327を操作することを許容し得る。従って、前記親ライトウェイトが、子供が前記階層に実際に接続されているときか、又は前記親に関連付けられたときにだけ、ロックされる必要がある。言い換えると、全ての子供について完了するまで、生成されている子コンポーネントに関連付けられたオブジェクトの全てが、非共有方式において又はローカルメモリにおいて生成されることが可能である。それから、前記親は、これらの子供へのポインタを含み、これによって、これらの子オブジェクトを前記共有メモリへ移すために、ロックおよび修正されることが可能である。その結果、新しい子コンポーネントに関連付けられるために変えられるとき、且つ子オブジェクトの作成の間でないときにのみ、前記親ライトウェイトはロックされる。さて、図15には、ランタイム操作によってなされたプロセス制御システムのコンフィギュレーションへの変更について、クライアントに通知するために動作するランタイム通知スレッドの操作を示している。この場合、クライアント400が非稼動中のデバイスコンポーネントを予約し、クライアントコンポーネント402,プロキシ404,前記非稼動中のデバイスサーバコンポーネント406,ラッパー408,およびライトウェイト410が、クライアント400およびサーバ306内に既にセットアップされているものと仮定する。また、ラッパー408が生成されたとき、該ラッパー408が、新しいコントローラのシステムへの追加の指示を受けるためにマップ340に登録されているものと仮定する。この例では、前記ランタイム通知スレッドの通知エンジン336が、ランタイムサービス例えば、自動検出アプリケーションを介して加えられた新しいコントローラCTLR001と名付けられているの追加を検出し、この新しいコントローラの存在を示す非稼動中のデバイスラッパー408に更新イベントを送信する。非稼動中のデバイスラッパー408は、前記検出されたコントローラのために子ラッパー412を生成することによって、新しいコントローラのためにライトウェイト414を生成することによって、そして、もし可能であれば、ライトウェイト414にランタイムサービスによって届けられるようなコントローラデータを格納することによって、前記更新イベントに応答する。また、ライトウェイト414は、データベース325のこのデータを格納することが可能であり、望むならば、このデータを、データラッパー412に、および新しいコントローラ情報が前記通知スレッドのためにラッパーマップ322を格納するデータベース位置のマジックナンバーに、登録することが可能である。また、ラッパー412は、マップ340に更新を登録することが可能である。共有キャッシュ327に新しい子供としての新しいコントローラをロードすることに際して、イベントが、新しい子データラッパー412にポインタを埋め込み、新しいコントローラデータをクライアント400へ押す、新しい子コントローラサーバコンポーネント416を生成することによって応答する、前記非稼動中のデバイスサーバコンポーネント406に掲示される。クライアントプロキシ404は、新しい子イベントを受けて、新しい子供の情報を格納し、クライアント400でのユーザインタフェースに再表示メッセージを提示する。非稼動中のデバイスクライアントコンポーネント402が新しい子供をロードするときに、該非稼動中のデバイスクライアントコンポーネント402は、新しい子コントローラコンポーネント418を生成し、非稼動中のデバイスサーバコンポーネント406によってクライアント400に送信されたサーバコンポーネントの識別情報を使用するコントローラコンポーネント418のために、サーバコンポーネント416への接続を確立する。コントローラクライアントコンポーネント418のプロキシ420は、生成され、また、コントローラクライアントコンポーネント418に代わって、サーバコンポーネント416との通信を想定する。このように、通知エンジン336によって検出された前記コントローラの追加およびその変更は、ライトウェイトに格納されたデータを変更することが可能であり、また、ライトウェイトおよび関連付けられたラッパーの生成又は削除を引き起こす、関連付けられたデータラッパー408に送信される。新しいラッパーおよびライトウェイトの作成が、親のオブジェクトを予約している各クライアントスレッドを拡張する結果となる。上述した操作の他に、その他の動作又は操作は、サーバ306によって実行されることが可能である。例えば、クライアントは、該クライアントがデータベース325に格納すべきコンポーネントを生成する生成操作を、実行することが可能である。この生成動作に関連付けられた操作は、データベース325からこのオブジェクトをロードする代わりに、データベース325の根底にあるデータベースオブジェクトを生成する特別なステップとともに、子供をロードすることと非常に似ている。ここで、前記クライアントは、コンポーネントを生成し、生成したコンポーネントの親に関連付けられたサーバコンポーネントに、このコンポーネントを送信する。この動作によって、ラッパーファクトリ312が、前記関連付けられた親のラッパーとライトウェイトとの子供として、ラッパーとライトウェイトとを生成し、新しいライトウェイトが、新しいコンポーネントをロードする。前記ライトウェイトは、それから、通知スレッドにおけるラッパーマップ322でのデータベース位置とラッパーとを登録するのと同じように、新しいコンポーネントをデータベース325に書き込む。新しいサーバコンポーネントは、それから、ラッパーのために生成され、この新しいコンポーネントのためにクライアントとの通信を仮定する。データベース325からコンポーネントを削除するために、クライアントは、関連付けられたサーバコンポーネントを最初に削除し、それから、開放する。サーバコンポーネントの削除は、削除された状態で、前記関連付けられたデータラッパーとライトウェイトとを置き、それは、それから、データベース325からコンポーネントを削除する。前記ラッパーは、その他の参照しているサーバコンポーネントその他のクライアントスレッド内のの各々に削除メッセージを送り、予約中のクライアントに前記削除動作を通知する。前記削除上のとき、前記ラッパーは、コンフィギュレーション階層から除去され、更なる任意のデータベース操作も実行することができない。しかし、全ての参照しているサーバコンポーネントがそれを開放するまで、前記ラッパーは、残ることが可能である。勿論、前記参照しているサーバコンポーネントは、前記サーバコンポーネントが前記削除動作のクライアントに通知した後で、発生する、前記関連付けられたクライアントの開放まで、開放されない。勿論、データベースイベントメカニズムは、前記通知スレッドの通知エンジンによってラッパーに1箇所に集められる削除メッセージを最終的に生産することが可能である。前記ラッパーは、削除された状態にあるので、それはこのメッセージを無視する。コンフィギュレーションコンポーネントの幾つかの操作によってそのコンポーネントの種類が変化するようになるので、該コンポーネントの変化を生じさせることが可能である。この変化は、前記コンポーネントとサブツリーとをデータベース325から再ロードすることを必要とする。この操作を生じさせるために、前記変化されたコンポーネントのための全てのライトウェイトの親/子階層は、既存のライトウェイトへデータベース325から再ロードされる。その後で、前記サーバコンポーネントは、再確立され、これらのサーバコンポーネント内の新しい値は、それから、前記クライアントコンポーネントと整合される。このような整合は、子コンポーネントを通じて繰り返すこと、その種類が変更され、もはや存在しないものを除去することを含む。新しい子供は、ロードされて、必要に応じて加えられる。勿論、クライアントは、単に開放され、又はデータベース325内のコンポーネントを予約解除することが可能である。この場合、前記クライアントは、前記関連付けられたサーバコンポーネントを開放し、それによって、前記関連付けられたラッパーがラッパーの参照回数を減少させるようになる。前記ラッパーのためのラッパーのリファレンス参照回数が零になるとき、サーバコンポーネントは、このラッパーを参照せず、従って、このラッパーを予約しない。この場合、前記ラッパーはアンロードunloadする。望むならば、前記ラッパーは、該ラッパーが直ちに再ロードされる必要がある場合に備えて、アンロードする前にタイムアウト時間を待つことが可能である。アンロードするとき、前記ラッパーは、その関連付けられたライトウェイトを破壊するデータベース325内の更新通知の登録を取り消し、前記ラッパーマップからの登録を取り消す。さらに、コンポーネントが開放されるとき、それは、そのライトウェイトと全ての子ライトウェイト/子ラッパーを開放し、子ライトウェイト/子ラッパーのバックポインタを零にする。ここでは、サーバ306の操作が、1つ又は2つのコンポーネントにアクセスする2つのクライアントのために記述されている一方、同様の技術が、拡張されることができて、データベース内の任意の数のコンフィギュレーションオブジェクトから読み出し、また、該任意の数のコンフィギュレーションオブジェクトへの書き込みを行う任意の数のクライアントおよびクライアントスレッドに使用され得ると言える。さらに、複数のクライアントの予約者関係を確立するために共有キャッシュを使用する技術は、プロセス制御システム内でコンフィギュレーションデータにアクセスするものとしてここに記述されている一方、この技術は、コンフィギュレーションデータベースと関係がないもの、また、プロセス制御データベースと関係がないものを含むその他のどの様なデータベースアクセスシステムにおいても使用されることが可能であると言える。また、ここに記述されているデータベースアクセス技術は、クライアントがコンポーネント単位でサーバと通信すると仮定している一方、コンフィギュレーションツリーの整列は、クライアントとサーバとの間の、より最適な通信を提供するために使用されることが可能である。特に、クライアントがツリー又はサブツリーの全体を引き出さなければならないということを知っているときには、1つのサーバがツリー全体を得るために呼び出しをすることは、むしろ、ツリーの各レベルで子ルーチンのロードの呼び出しを再帰的に行うことよりも効率的である。クライアントがツリー全体をサーバに書き込みたいときには、前記ツリー全体が信号メッセージで送信されることが可能であるように、逆もまた真実である。勿論、これらのメッセージはクライアントとサーバとによって横取りされることが可能である。そして、予約関係を確立するために必要なオブジェクト先に述べたは、前記ツリー又はサブツリーの全体を予約するために、また、ツリー又はサブツリーの全体に書き込むために、前記クライアント又は該クライアントに必要なサーバ内のオブジェクトの全てを直ぐに生成することが可能である。また、前記サーバおよびクライアントによって作成又は実行されるべく、ここに記述されているオブジェクト,その他の要素,およびステップは、任意の好ましいプログラミング技術又はプログラミング言語を使用して実行されることが可能であると言える。そして、これらのプログラムは、メモリに格納され、ここに記述されている前記クライアント,サーバ,およびデータベース内において任意の方法でプロセッサに実行されることが可能であると言える。さらに、ここに記述されているデータアクセス技術は、ソフトウェアにおいて実現することが好ましいが、ハードウェア,ファームウェア等により実現されされても、また、プロセス制御システム10に関連付けられた任意のプロセッサにより実現してもよい。このように、望むならば、この技術は、標準的な多目的CPU又は特別に設計されたハードウェア又はファームウェアにより実現することも可能である。ソフトウェアにより実現するときには、前記ソフトウェアルーチンは、磁気ディスク,レーザーディスク,光ディスク,又はその他の記録媒体、更には、コンピュータ又はプロセッサのRAM,ROM等のような任意のコンピュータが読み取り可能なメモリに格納されることが可能である。同様に、例えば、コンピュータが読み取り可能なディスク若しくはその他の可搬型のコンピュータの記憶メカニズムを介したもの、又は電話線,インターネット等のような通信チャネルを通じたもの可搬型の記録媒体を介してこのようなソフトウェアを提供することと同一視又は置き換え可能であるを含む任意の公知の又は好ましいデータの移動方法を利用して、このソフトウェアをユーザ又はプロセス制御システムに届けることも可能である。このように、本願発明は、説明する目的から、特定の例に関して記述されているものであって、本願発明を限定するものではない。また、本願発明においては、その目的および範囲から逸脱することなく、開示されている実施形態の変更、追加、又は削除がなされ得ることは、当業者にとっては明らかである。発明の効果本願発明に係るコンフィギュレーションデータベースシステム、分散型のコンフィギュレーションデータベースシステム、コンフィギュレーションデータを格納および使用する方法、データベースサーバ、データベースコンポーネントへのアクセスを提供する方法、データベースに格納されたコンポーネントへの並列アクセスを提供するためにデータベースサーバを使用する方法、およびプロセス制御システムにおいては、以上に詳述したように、コンフィギュレーションデータベースが、プロセス制御システム内の複数の物理的な位置に分散された複数のデータベースを備え、各データベースが、コンフィギュレーションデータのサブセットを格納する。該サブセットには、前記システム内の任意のサイトでのユーザからアクセスすることができる。共有キャッシュを有するデータベースサーバは、前記データベースからの最小回数の読み込みのみで、複数の予約者にコンフィギュレーションデータを読み込ませるようにアクセスする。前記システム内で予約者によって見られているコンフィギュレーションデータが古くなることを防止すべく、前記データベースサーバは、前記データベース内の各項目への変更を自動的に検出し、なされた変更の通知を予約者の各々に送信する。これにより、それがコンフィギュレーションデータベース内に実際に存在するかのように、ユーザがコンフィギュレーションの状態を常に見ることができる。"