(57)【特許請求の範囲】
【請求項１】
分散コンピューティング環境（ＤＣＥ）を形成する、それぞれがローカルＬＡＮサーバ・データベースを有する複数の分散コンピューティング・システムにおける、複数のローカルＬＡＮサーバ・データベースを同期化するデータベース同期化システムにおいて、
ＤＣＥシステム・サーバと、
前記ＤＣＥシステム・サーバに結合されたＤＣＥ登録簿データベースと、
前記ＤＣＥシステム・サーバに結合され、ＬＡＮサーバに転送する更新に関してフィルタとして働くＬＡＮサーバ同期化ライブラリと、
前記ＬＡＮサーバ同期化ライブラリに結合されたローカル・エリア・ネットワーク（ＬＡＮ）同期化サーバであって、前記ＤＣＥ登録簿データベースの一つの更新を、前記ローカル・エリア・ネットワーク（ＬＡＮ）同期化サーバに結合されたＬＡＮサーバに転送する、前記ローカル・エリア・ネットワーク（ＬＡＮ）同期化サーバと、
前記ＬＡＮ同期化サーバおよびＬＡＮを形成する前記複数の分散コンピューティング・システムの選択されたいくつかに結合された前記ＬＡＮサーバとを含み、
前記ＤＣＥシステム・サーバ、前記ＬＡＮサーバ同期化ライブラリ、および前記ＬＡＮ同期化サーバは、同一の機械上に実装され、
前記ＤＣＥシステム・サーバが、前記ＤＣＥ登録簿データベースの中の登録簿更新が前記複数のローカルＬＡＮサーバ・データベースの少なくとも一つに影響する場合の、当該影響された前記ローカルＬＡＮサーバ・データベースの同期化を、前記ＬＡＮサーバ同期化ライブラリの呼出により行うことを特徴とする、前記データベース同期化システム。
【請求項２】
前記ＤＣＥシステム・サーバが、前記ＬＡＮサーバ同期化ライブラリが存在し活動中であるかどうかを決定する手段をさらに含む請求項１記載のデータベース同期化システム。
【請求項３】
前記ＬＡＮサーバ同期化ライブラリが、前記ＬＡＮサーバに転送する更新に関してフィルタおよび待ち行列として働く請求項１記載のデータベース同期化システム。
【請求項４】
前記ＬＡＮ同期化サーバが、前記ＤＣＥシステム・サーバから事象通告を受け取り、前記ローカルＬＡＮサーバ・データベースへの伝送を制御する請求項１記載のデータベース同期化システム。
【請求項５】
前記ＬＡＮ同期化サーバが、前記ＤＣＥシステム・サーバに登録することを許可されたローカルＬＡＮサーバ・データベースのリストを維持する請求項４記載のデータベース同期化システム。
【請求項６】
前記ＬＡＮ同期化サーバが、その関連のＬＡＮに属するすべてのユーザおよびグループ情報を前記ＤＣＥ登録簿から検索し、前記ローカルＬＡＮサーバ・データベースを同期化する、請求項１記載のデータベース同期化システム。
【請求項７】
前記ＤＣＥシステム・サーバが、前記ＤＣＥ内の前記ローカルＬＡＮサーバ・データベースに対して更新を加えるために呼び出されるコールアウト手段をさらに含む請求項６記載のデータベース同期化システム。
【請求項８】
前記ＤＣＥシステム・サーバが一次レプリカまたは二次レプリカのいずれかとして動作する請求項１記載のデータベース同期化システム。
【請求項９】
前記ＤＣＥシステム・サーバが、前記ＬＡＮ同期化サーバと通信するために共用メモリ・オブジェクトを生成する初期化手段をさらに含む請求項８記載のデータベース同期化システム。
【請求項１０】
前記ＤＣＥシステム・サーバが一次レプリカとして動作し、第一の登録簿オブジェクトが、スタブ・データベース内に配置され、次の登録簿更新の順序番号が先の更新の順序番号よりも１だけ大きくなるように指定された順序番号を与えられる請求項８記載のデータベース同期化システム。
【請求項１１】
前記ＤＣＥシステム・サーバが二次レプリカとして動作し、前記ＤＣＥの全登録簿を一次レプリカから受け取り、最初の伝搬に所与の順序番号が割り当てられ、登録簿更新のためのその後の伝搬ごとに１だけ増した順序番号が割り当てられる伝搬待ち行列を確立する請求項８記載のデータベース同期化システム。
【請求項１２】
前記ＤＣＥシステム・サーバが、前記ＤＣＥ内の前記ローカルＬＡＮサーバ・データベースに対して更新を加えるために呼出されるコールアウト手段をさらに含み、
前記ＬＡＮサーバ同期化ライブラリが、前記コールアウト手段が更新をログ・ファイルおよび更新待ち行列に加えることを許可するイン・サービス状態を含む請求項１記載のデータベース同期化システム。
【請求項１３】
前記ＬＡＮサーバ同期化ライブラリが、二次レプリカが一次レプリカから一括伝搬更新を受け取る時更新を処理しない初期化状態を含む、請求項１１記載のデータベース同期化システム。
【請求項１４】
前記ＤＣＥシステム・サーバが、前記ＤＣＥ内の前記ローカルＬＡＮサーバ・データベースに対して更新を加えるために呼び出されるコールアウト手段をさらに含み、
前記ＬＡＮサーバ同期化ライブラリは、前記コールアウト手段が更新をログ・ファイルまたは更新待ち行列に加えることができないエラー状態を含む、請求項１記載のデータベース同期化システム。
【請求項１５】
前記ＬＡＮサーバ同期化ライブラリが、前記ＤＣＥシステム・サーバから受け取りＬＡＮサーバに転送するすべての妥当な更新の持続性コピーを更新ログ・ファイル中に維持する請求項１記載のデータベース同期化システム。
【請求項１６】
前記ＤＣＥ内でセキュリティを提供する手段をさらに含む請求項１記載のデータベース同期化システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、複数のコンピューティング装置とともに使用するためのサーバ・システムに関し、具体的には、異なるコンピュータ・サーバ環境の間で同期化を提供するサーバ・システムに関する。より具体的には、本発明は、分散コンピューティング環境に適合したローカル・エリア・ネットワークに使用される同期化システムに関する。
【０００２】
【従来の技術】
データ処理およびコンピュータ・システムは当該技術において周知である。より具体的には、互いに結ばれた多数の処理システムを使用してローカル・エリア・ネットワーク（ＬＡＮ）を形成することもまた周知である。より広範なＬＡＮの応用は、分散コンピューティング環境（ＤＣＥ）として公知であり、ＬＡＮサーバ・システム中で通常扱うことができるよりも多数のコンピュータ・システムをサーバ・システム内で扱うことができる。
【０００３】
事業や企業は、最初に起こされたとき、通常は小さく、そのような特定の企業のすべてのデータ処理のニーズを提供するのに１、２台のコンピュータしか要らない。その企業が成長するにつれ、さらなるデータ処理システムが追加され、最終的にはＬＡＮが加えられ、同時にシステム・セキュリティを提供し、ＬＡＮ上の種々のコンピュータどうしの通信の同期化を提供するためにＬＡＮサーバが使用される。企業がさらに大きくなると、ＬＡＮサーバの能力に対する負担が大きくなり、企業は、分散コンピューティング環境（ＤＣＥ）に対して準備する。ＤＣＥセキュリティ・アーキテクチャは通常、ＬＡＮサーバのためのアーキテクチャとは実質的に異なり、その同期化処理もまた、追加されるリソースおよびＤＣＥサーバに求められる能力のため、いっそう複雑である。
【０００４】
ＤＣＥセキュリティ・サーバは通常、以下のサービス、すなわち、登録簿サービス、認証サービス、特権サービスおよびアクセス制御リストからなる。登録簿サービスは、プリンシパル（principal）、グループ、組織、アカウントおよび管理方針の複製データベースである登録簿データベースを維持するために提供される。認証サービスは、ユーザ認証、すなわち、プリンシパルが正しく識別されることを立証するプロセスを扱う。認証サービスはまた、プリンシパルが遠隔サービスにアクセスするために使用するチケットを発行する。このチケットは、サービスを要求するプリンシパルによってサービスを提供するプリンシパルに提示されるデータを含む。特権サービスは、プリンシパルが要求された操作を実行する権利を有することを保証するために使用されるユーザの特権属性を供給する。アクセス制御リスト（ＡＣＬ）機能は、あるオブジェクトへのアクセス権をそのオブジェクトのアクセス許可に基づいて判定する。
【０００５】
ＤＣＥセキュリティはさらに、セキュリティ・クライアントとして働くＤＣＥホスト・デモン（ＤＣＥＤ）を含む。登録簿、認証および特権サービスは、通常「セキュリティ・サーバ」と呼ばれる一つのデモンとして具現化される。オブジェクトへのアクセス権の実際の承認は、ＡＣＬ機能によって実行される。ＡＣＬ編集ツールがオブジェクトに関するアクセス許可を確立する。認証サービスは、登録簿データベース、セキュリティ・サーバおよびセキュリティ・クライアントからなる。セキュリティ・クライアントは、セキュリティ・サーバと通信して、情報および操作を要求する。セキュリティ・サーバは、登録簿データベースにアクセスして、問い合わせおよび更新を実行し、ユーザ・ログインの妥当性を検証する。登録簿データベースへのアクセスを取得するためには、認証サービスが登録簿サービスに交信しなければならない。
【０００６】
図１は、セキュリティ・クライアント１１と、サーバ１３と、登録簿データベース１５との関係を表すブロック図である。この図はまた、データベース操作を要求するセキュリティ・サーバ・クライアントの例である。
【０００７】
登録簿データベース１５は、ＵＮＩＸグループ中に見られるものと同様な情報およびパスワード・ファイルを含む。このデータベースは、以下の項目、すなわち、プリンシパル、グループ、組織およびアカウントを含む。プリンシパルが含まれており、これらはシステムのユーザである。プリンシパルは、対話型プリンシパル、例えば人間のユーザであることもできるし、非対話型プリンシパル、例えばサーバ、機械およびセルであることもできる。プリンシパルは、アクセス許可に関与することができる。グループは、グループ名によって識別されるプリンシパルの集合体である。グループは、アクセス許可に関与することができる。組織は、プリンシパルの集合体である。これらのプリンシパルは、組織名によって識別される。組織は、登録簿中のプリンシパルに関連する方針を定義する。組織は、アクセス許可に関与することができない。アカウントは、認証されたプリンシパルがセル内のオブジェクトにアクセスすることを許すパスワードおよびアカウンティング情報を含む。
【０００８】
登録簿データベース１５はまた、登録簿全体としての、また組織ごとの、方針およびプロパティに関する情報を含む。方針およびプロパティは、パスワード長、書式および特定の要求事項の認証のような物事を規制する。
【０００９】
登録簿データベースによって管理される、プリンシパル、グループ、組織およびアカウントの集合体が「セル」として知られるエンティティである。セルが、登録簿データベース中の、通信の相手として望むセルに特殊なアカウントを有する場合にのみ、そのようなセルの間で認証された通信が可能である。これらの特殊なアカウントは、異なるセル間の認証をセットアップし、それが、ある認証されたセルのプリンシパルが別のセルにアクセスすることを許す。
【００１０】
ＬＡＮサーバのサーバをＤＣＥシステムに加えたり、ＤＣＥシステムのサーバをＬＡＮサーバに加えたりすることは、企業にとって複雑かつやっかいになりうるが、そのような苦悩を最小限にするため、ＬＡＮサーバから、ＬＡＮシステムとＤＣＥシステムとが重複する能力および処理を有するところのＤＣＥサーバ環境へと徐々に移行することがしごく一般的である。さらには、ＬＡＮサーバが単にＤＣＥ環境のサブセットであってもよい。いずれにしても、費用を最小限にし、システム非互換性を回避するため、二つのシステムの間で互換性を有することが有用である。
【００１１】
ＬＡＮサーバの一例は、International Business Machines社が提供するＯＳ／２ＬＡＮサーバ４．０である。ＬＡＮサーバ４．０は、巨大ネットワークに対応する機能性を企業に提供する。現在のＬＡＮサーバのベースは、別個の製品として存在、進化し続けて、中小規模の作業グループのためのファイルおよびプリント共用サービスを提供することができる。このＬＡＮサーバはまた、ＬＡＮサーバのベース・ディレクトリおよびセキュリティ構造に代えて同等のＤＣＥサービスを用いることにより、ベース機能性を巨大企業にまで拡張することを許す。これが、中小規模の作業グループから巨大なＤＣＥタイプ環境への移行を考慮する。
【００１２】
ＯＳ／２ＬＡＮサーバ４．０システムからより強健なＤＣＥ企業用サーバへの移行の一つの制限は、同期化プロセスがＤＣＥセキュリティ・サーバ・システムと完全に互換性でなければならないことである。残念ながら、従来のＬＡＮサーバ・システムおよび現在のＤＣＥセキュリティ・サーバとの間では、二つのシステムを単に合わすだけでそれら二つの環境に共通のシステムに到達することを許さない非互換性が存在する。具体的には、ＤＣＥセキュリティ・サーバは、登録簿データベースの作業コピーを常に維持する。この登録簿データベースは、そのセルの内部で複製することができる。
【００１３】
セル中のセキュリティ・サーバの各実例がデータベースの作業コピーを維持する。セキュリティ・サーバとそのデータ、すなわち登録簿データベースとの組み合わせを「レプリカ（replica）」と呼ぶ。通常、セキュリティ・サーバはセル中にいくつかのレプリカを作成して、性能および信頼性を高める。セルのレプリカの整合性を維持するタスクは、セキュリティ・サーバによって自動的に扱われる。データに対して加えられる変更があるならば、それらは、すべてのレプリカ中に自動的に反映される。レプリカ内では、一つの主レプリカもしくは一次レプリカおよびいくつかの二次レプリカからなる階層が存在する。
【００１４】
ＬＡＮサーバを含むＤＣＥ企業においては、登録簿同期化プロセス（ＲＳＰ）は、ＤＣＥセキュリティ・サーバがインストールされている同じ機械上で動作することができないため、定義域制御装置をインストールするために二つの別個のシステムを維持しなければならない。そして、ＬＡＮサーバ内のＲＳＰが、ＤＣＥ企業中の二次セキュリティ・サーバの変更バージョンになる。このＲＳＰは、一次レプリカから適時の更新を受け取るために、それ自体を二次レプリカとして登録する。ＤＣＥセキュリティ・アーキテクチャは、二つ以上のレプリカが同じ機械上で動作することを許さないため、ＲＳＰの現在バージョンは、一次レプリカまたは二次レプリカがインストールされている機械上で動作することができない。このため、ＬＡＮサーバＲＳＰとＤＣＥセキュリティ・サーバとが、レプリカの生成および登録簿の同期化において互いに競合することなく、一つのシステム上で共存することを許す解決方法が必要とされている。
【００１５】
【発明が解決しようとする課題】
したがって、本発明の一つの目的は、複数のコンピューティング装置とともに使用するためのサーバ・システムを提供することにある。
【００１６】
本発明のもう一つの目的は、異なるコンピュータ・サーバ環境の間で同期化を提供するサーバ・システムを提供することにある。
【００１７】
本発明のさらに別の目的は、分散コンピューティング環境に適合したローカル・エリア・ネットワークに使用される登録簿データベース同期化システムを提供することにある。
【００１８】
【課題を解決するための手段】
本発明によると、複数の分散コンピューティング・システムにおいて複数のローカルデータベースを同期化するためのデータベース同期化システムが開示される。複数の分散コンピューティング・システムが分散コンピューティング環境（ＤＣＥ）を形成する。同期化システムは、システム・サーバと、システム・サーバに結合された登録簿データベースと、システム・サーバに結合されたローカル・エリア・ネットワーク（ＬＡＮ）同期化サーバと、システム・サーバに結合されたＬＡＮサーバ同期化ライブラリと、ＬＡＮ同期化サーバおよびＬＡＮを形成する複数の分散コンピューティング・システムの選択されたいくつかに結合されたＬＡＮサーバとを含む。複数のローカルＬＡＮデータベースの少なくとも一つに影響する登録簿データベース中の登録簿変更がＬＡＮサーバ同期化ライブラリを呼び出して、影響されたデータベースを同期化するとき、ＬＡＮとＤＣＥ登録簿との同期化が起こる。
【００１９】
同期化システムは、ローカル・データベースのそれぞれに結合された登録簿データベースを利用する。一次レプリカが登録簿データベースに結合され、この一次レプリカが、ＤＣＥ内の各ローカル・データベースを登録簿データベースと同期化する。さらに、二次レプリカが一次レプリカに結合され、この二次レプリカが、複数のコンピューティング・システムおよびそれらそれぞれのデータベースの選択されたいくつかを含む少なくとも一つのローカル・エリア・ネットワーク（ＬＡＮ）サーバを登録簿データベースと同期化する。
【００２０】
上記ならびに本発明のさらなる目的、特徴および利点は、以下の詳細な記述において明らかになるであろう。
【００２１】
本発明に特徴的であると考えられる新規な特徴は、請求の範囲に記載されている。しかし、本発明そのものならびにその好ましい利用形態、さらなる目的および利点は、例示的な実施態様に関する以下の詳細な説明を添付の図面と合わせて参照することにより、明確に理解されるであろう。
【００２２】
【発明の実施の形態】
図面、特に図２を参照すると、本発明の方法およびシステムを具現化するのに使用することができる分散データ処理システム８または分散コンピューティング・システム（ＤＣＥ）の絵画図が示されている。見てとれるように、分散データ処理システム８は、複数のネットワーク、例えばローカル・エリア・ネットワーク（ＬＡＮ）１０および３２を含むことができる。これらのネットワークは、好ましくは、それぞれが複数の個々のコンピュータ１２および３０を含む。当然ながら、当業者であれば、ホスト・プロセッサに結合された複数の知的ワークステーション（ＩＷＳ）をこのようなネットワークそれぞれに用いてもよいことを察知するであろう。
【００２３】
このようなデータ処理システムに一般的であるように、個々のコンピュータは、記憶装置１４および／またはプリンタ／出力装置１６に結合されていてもよい。１個以上のそのような記憶装置１４を本発明の方法にしたがって利用して、分散データ処理システム８内でユーザが本発明の方法およびシステムにしたがって定期的にアクセスし、処理することができる種々のデータ・オブジェクトまたはドキュメントを記憶してもよい。従来技術において周知の方法で、そのようなデータ処理手続きまたはドキュメントそれぞれを、関連するすべてのリソース・オブジェクトを維持し、更新する責任を負うリソース・マネージャまたはライブラリ・サービスに接続した記憶装置１４の中に記憶してもよい。
【００２４】
さらに図２を参照すると、分散データ処理システム８はまた、通信リンク２２によってローカル・エリア・ネットワーク（ＬＡＮ）１０に結合されていることが好ましい多数のメインフレーム・コンピュータ、例えばメインフレーム・コンピュータ１８を含んでもよいことが見てとれる。メインフレーム・コンピュータ１８はまた、ローカル・エリア・ネットワーク（ＬＡＮ）１０の遠隔記憶装置として働くことができる記憶装置２０に結合されていてもよい。第二のローカル・エリア・ネットワーク（ＬＡＮ）３２が、ゲートウェイ・サーバ２８に至る通信制御装置２６および通信リンク３４を介してローカル・エリア・ネットワーク（ＬＡＮ）１０に結合されていてもよい。ゲートウェイ・サーバ２８は、好ましくは、ローカル・エリア・ネットワーク（ＬＡＮ）３２をローカル・エリア・ネットワーク（ＬＡＮ）１０に結合するように働く個々のコンピュータまたは知的ワークステーション（ＩＷＳ）である。
【００２５】
ローカル・エリア・ネットワーク（ＬＡＮ）３２およびローカル・エリア・ネットワーク（ＬＡＮ）１０に関して上記に論じたように、複数のデータ処理手続きまたはドキュメントを記憶装置２０の中に記憶し、そのように記憶されたデータ処理手続きおよびドキュメントのためのリソース・マネージャまたはライブラリ・サービスとしてのメインフレーム・コンピュータ１８によって制御することができる。
【００２６】
当然、当業者であれば、メインフレーム・コンピュータ１８をローカル・エリア・ネットワーク（ＬＡＮ）１０から大きな地理的距離をおいて設置してもよく、同様に、ローカル・エリア・ネットワーク（ＬＡＮ）１０をローカル・エリア・ネットワーク（ＬＡＮ）３２から相当な距離をおいて設置してもよいことを察知するであろう。すなわち、ローカル・エリア・ネットワーク（ＬＡＮ）３２をカリフォルニアに設置する一方、ローカル・エリア・ネットワーク（ＬＡＮ）１０をテキサスに設置し、メインフレーム・コンピュータ１８をニューヨークに設置してもよい。
【００２７】
上記を参照して察知されるように、分散データ処理ネットワーク８の一部分にいるユーザにとって、データ処理ネットワーク８の別の部分に記憶されたデータ・オブジェクトまたはドキュメントにアクセスすることが望ましいことがしばしばある。データ処理ネットワーク８内に記憶されたドキュメントの中で順序の類似を維持するため、一方向アクセス制御プログラムを実施することがしばしば望ましい。これは一般に、各個のデータ・オブジェクトまたはドキュメントにアクセスする権限を有するユーザを、各ユーザがリソース・マネージャまたはライブラリ・サービス中のドキュメントに関して享受する権限のレベルとともにリストすることによって達成される。このようにして、データ処理手続きおよびドキュメントは、分散データ処理システム８内の登録ユーザによってアクセスされ、他のユーザによってアクセスされないよう定期的に「ロック」することができる。通常、アクセスを制御し、セキュリティのための変更を実行するのはシステム管理者である。このためにこそ、データ登録簿同期化および整合性を維持することができるよう、ＬＡＮサーバ能力を有する改良されたＤＣＥサーバが必要なのである。
【００２８】
図２のＤＣＥはさらにセキュリティ・サーバを含む。セキュリティ・サーバ構成の一例を図３に示す。セキュリティ・サーバ４０は、登録簿データベースの作業コピーを仮想メモリ４２中に維持し、登録簿データベースの永久コピーをディスク４４上に維持する。これらすべての更新は、仮想メモリ中にある同じコピーに対して処理を加える。サーバは、起動すると、ディスク上にあるそのコピーを使用して、仮想メモリ中のコピーを初期化する。サーバが障害を起こした場合にデータベースの状態を保証するために最小単位（atomic）更新ログが使用される。セキュリティ・サーバは定期的にその全データベースを仮想メモリからディスクにセーブする。
【００２９】
登録簿データベースは、そのセル内で複製することができる。セル中のセキュリティ・サーバの各実例がデータベースの作業コピーを維持する。セキュリティ・サーバとその登録簿データベースとの組み合わせを「レプリカ」と呼ぶ。セル内では、クライアントからそのデータベースに対する更新を受け取る一つの一次レプリカと、クライアントからの読出しのみを受け取るいくつかの二次レプリカとがある。
【００３０】
ＤＣＥセキュリティ・サーバ・システムにおいては、ＤＣＥセル内の個々の機械にレプリカを一つしか維持することができなかった。ＤＣＥサーバの能力に限りがあるＬＡＮサーバの従来バージョンでは、ＲＳＰは、一次レプリカからの適時更新を受け取るために、それ自体を二次レプリカとして登録する。ＤＣＥセキュリティ・アーキテクチャは、二つ以上のレプリカが同じ機械上で動作することを許さないため、ＲＳＰの現在バージョンは、一次レプリカまたは二次レプリカがそのときインストールされている機械上で動作することができない。
【００３１】
一次および二次レプリカは、同じセットのインタフェースを登録する。一次レプリカと二次レプリカとの間で遠隔手続き呼出し（ＲＰＣ）が行われると、同じオブジェクトである汎用一意識別名（ＵＵＩＤ）またはアーキテクチャ的に定義されたセキュリティ・サーバＵＵＩＤが一次レプリカおよび二次レプリカによって使用されて、それをＲＰＣハンドルに関連させる。一次レプリカがこのオブジェクトＵＵＩＤを作成し、すべての二次レプリカが一次レプリカからオブジェクトＵＵＩＤを取得する。二次レプリカが、同じインタフェースの一次レプリカによって作成されたエンド・ポイント・マップ・エントリを置換することのないよう、ＰＲＣ呼出し「rpc ep register no replace()」を使用してそのインタフェースを登録すると仮定する。一次レプリカと二次レプリカとが同じ機械上で動作しており、一次レプリカが二次レプリカに対してＰＲＣ呼出しを行うならば、ローカル・エンド・ポイント・マッパが、ＲＰＣ束縛（binding）ハンドルを、二次レプリカのルーチンに対してではなく、一次レプリカのＲＰＣルーチンに対して分解する。このような問題は、二つのエントリのインタフェースＩＤ、オブジェクトＵＵＩＤおよびネットワーク・アドレスが同一であるために起こる。以下、同じ機械上で動作する一次レプリカおよび二次レプリカによって登録された同じインタフェースのエンド・ポイント・マップ中に存在する二つのエントリの例を示す。
【００３２】
（一次レプリカによって登録されるインタフェース）
＜オブジェクト＞  53a7c2c0-3149-11ce-bc2f=10005a8d1971
＜インタフェースｉｄ＞  4c878280-5000-0000-0d00-028714000000,1.0
＜文字列束縛＞  ncacn ip tcp:129.35.68.105^[2254]
＜注釈＞  ＤＣＥユーザ登録簿
【００３３】
（二次レプリカによって登録されるインタフェース）
＜オブジェクト＞  53a7c2c0-3149-11cd-bc2f=10005a8d1971
＜インタフェースｉｄ＞  4c878280-5000-0000-0d00-028714000000,1.0
＜文字列束縛＞  ncacn ip tcp:129.35.68.105[2307]
＜注釈＞  ＤＣＥユーザ登録簿
【００３４】
セルのセキュリティＩＤ「53a7c2c0-3149-11ce-bc2f-10005a8d1971」が、両インタフェースによって使用されるオブジェクトＵＵＩＤである。
【００３５】
この問題を解消するため、ＤＣＥセキュリティ・サーバ・デモン（secd.exe）が、ＬＡＮサーバ６２によって要求される登録簿同期化機能を支持するためのコールアウト（callout）能力を提供する。登録簿同期化ＤＬＬ６０が、ＬＡＮサーバ企業によって要求されるコールアウトを提供する。ＤＣＥセキュリティ・サーバ５８は、ＬＡＮサーバ・ユーザおよびグループ・データベース６６をＤＣＥ登録簿４４と同期化した状態に維持する登録簿同期化ＤＬＬ６０に対するコールアウトを含む。このようなコールアウト、換言するならばアプリケーション・プログラム・インタフェース（ＡＰＩ）は、別個の動的に連結されたライブラリ（ＤＬＬ）中に構築される。ＤＣＥセキュリティ・サーバ５８は、登録簿同期化ＤＬＬ６０がインストールされており、かつ登録簿同期化がイネーブルされた場合にのみ、これらのＡＰＩを呼び出す。
【００３６】
コールアウト能力は、ＬＡＮサーバ登録簿同期化ＤＬＬ６０の存在を試験する。存在が見いだされたならば、登録簿変更のタイプごとにエントリ・ポイント、すなわちコールアウトが呼び出される。登録簿変更がＬＡＮサーバのユーザまたはグループに影響するならば、登録簿更新がローカルＬＡＮサーバ（ＬＳ）データベース６６と同期化される。同じセキュリティ・サーバは、一様なＤＣＥ環境またはＬＳ環境のいずれにもインストールすることができる。
【００３７】
図３は、ＤＣＥセル５０内の一つまたは二つのコンピュータ・システムを示すブロック図である。コンピュータ・システム５２は、登録簿同期化能力を有するＤＣＥセキュリティ・サーバであり、一方、コンピュータ・システム５４は、ＬＳ同期化クライアント５６がインストールされているＬＡＮサーバ・エンタプライズ（ＬＳ  Ｅ）定義域制御装置である。
【００３８】
システム５２は、ＤＣＥセキュリティ・サーバ５８、登録簿同期化ＤＬＬ６０およびＬＳ同期化サーバ６２を含む。システム５４はさらに、ＬＳデータベース・ファイル６６を含む。ＤＣＥセル５０は、ＬＳ同期化クライアント５６をシステム５２中にＬＳ同期化サーバ６２に結合した状態で含むことにより、システム５２をＬＳ  Ｅ定義域制御装置としても作動させる。
【００３９】
セキュリティ・サーバ５８は、ＬＳ登録簿同期化ＤＬＬ６０の存在を試験する。存在が見いだされたならば、登録簿変更のタイプごとにエントリ・ポイントが呼び出される。登録簿更新が妥当なＬＡＮサーバ名またはＬＡＮサーバ・モーダルズ（modals）情報を含むならば、それは、共用待ち行列６８を介して、別のＬＳ同期化サーバである別のプロセスに通される。ＬＳ同期化サーバ６２プロセスは、更新を、登録ＲＰＣライン４６を使用して、ＬＳ同期化サーバ６２に登録するすべての定義域制御装置（またはＬＳ同期化クライアント５６）に伝搬する。ＬＳ同期化サーバ６２は、認証されたＲＰＣを使用して、更新を更新ＲＰＣライン４８に載せてＬＳ同期化クライアント５６に伝搬する。
【００４０】
一つ以上のＬＳ同期化サーバ６２を一つのセルにインストールすることができ、任意の数の、通常は図２のＤＣＥ８内のシステムごとに一つずつのＬＳ定義域制御装置を、登録簿４４の中のＬＳユーザ／グループ情報に対する更新を受け取るために、一つのＬＳ同期化サーバ・プロセスに登録することができる。
【００４１】
一次レプリカまたは二次レプリカとしてインストールすることができるＤＣＥセキュリティ・サーバ５８は、妥当なＬＳ名に基づいて更新をろ波し、更新をＬＳ同期化サーバ６２プロセスの待ち行列に入れるＬＳ登録簿同期化ＤＬＬ６０に対するコールアウトを実行する。登録簿同期化ＤＬＬ６０およびＬＳ同期化サーバ・プロセス６２は、ＤＣＥセキュリティ・サーバ５８と同じ機械にインストールされていなければならない。
【００４２】
登録簿同期化ＤＬＬから事象通告を受け入れるＬＳ同期化サーバ６２は、クライアント定義域制御装置への伝送を管理する。ＬＳ同期化サーバ６２は、ＬＳリクエスタであろうとＬＳサーバであろうと、いかなるタイプのＬＳシステム・コンピュータにもインストールすることができる。ＬＳ同期化サーバ６２は、そこに登録することを許されたＬＳクライアントのリストを登録簿中に維持する。
【００４３】
ＬＳ同期化クライアント５６または「lsesync」サービスは、同期化サーバ６２からＰＲＣ呼出しを介して通知を受け取り、ＬＳ  ＡＰＩコールを使用してローカル・データベース６６を更新する。このプロセスは、初めて開始すると、その定義域に属するすべてのユーザおよびグループ情報を登録簿から検索し、ローカル・データベース６６を同期化する。場合によっては、それはまた、再起動されたとき、完全同期化を実行することもできる。ＬＳ同期化クライアント５６は、ＬＳ定義域制御装置５４にインストールされていなければならない。これは、ＬＳ同期化サーバ６２がインストールされている同じシステム５２にインストールしてもよい。ＬＳ同期化クライアント５６は、インストールされるように構成されると、リクエスタ・サービスによって自動的に起動されるＬＡＮサーバ・サービスである。リクエスタ・サービスを停止させることは、「lsesync」サービスを停止させることになる。
【００４４】
「lsesync」サービスがＬＡＮサーバ・データベースに対して更新を行うためには、少なくともＬＡＮサーバ・リクエスタ・サービスを起動しなければならない。エンタプライズ定義域制御装置が先進のサーバ、例えば３８６高性能ファイル・システム（ＨＰＦＳ）サーバであり、ローカル・セキュリティがインストールされているならば、特権コマンド・ファイルからサービスを呼び出すことにより、「lsesync」サービスは特権プログラムとして起動される。
【００４５】
セキュリティ・サーバ５８は、同じタイプの登録簿更新について二つの異なるＲＰＣインタフェース処理を使用する。セキュリティ・サーバが一次レプリカとして動作しているとき一方のＲＰＣ処理が呼び出され、セキュリティ・サーバが二次レプリカとして動作しているとき他方のＲＰＣ処理が呼び出される。ひとたびセキュリティ・サーバがシステムを初期化すると、それは登録簿に対する更新を受け入れることに利用できる。
【００４６】
処理中、図４の流れ図に示すようにセキュリティ・サーバ・デモン５８が起動されると、システムは、初期化時に、登録簿同期化ＤＬＬがローカル機械にインストールされているかどうかをチェックする（ブロック４１０）。インストールされており、登録簿同期化がイネーブルされるならば（ブロック４１６）、ブロック４２４で、広域フラグをセットして、ＬＡＮサーバ・データベースを同期化しなければならないことを示す。そうでなければ、システムは、登録簿同期化ＤＬＬによって提供されるコールアウトＡＰＩを呼び出さない（ブロック４１４）。
【００４７】
ＬＳデータベースを同期化しなければならないならば、セキュリティ・サーバは、コールアウト・ルーチンを含むＤＬＬをロードする（ブロック４１８）。そうでなければ、ブロック４２０で、同期化は実行されない。更新が起こるたびにコールアウト・ルーチンのアドレスを検索するＡＰＩを呼び出すことを避けるため、ブロック４２２で、すべてのコールアウト・ルーチンのテーブルを初期化する。そして、ブロック４２４で、サーバが広域フラグをセットする。
【００４８】
ＤＣＥセキュリティ・サーバ５８の初期化の間、登録簿同期化が要求されるならば、セキュリティ・サーバ５８（ＳＥＣＤ）がＬＳ初期化のために初期コールアウトＡＰＩを呼び出す。ＬＳ初期化ＡＰＩは、同期化サーバ・プロセスをバックグラウンド・プロセスとして開始し、ＬＳ同期化サーバと通信するための共用メモリ・オブジェクトを作成する。コールアウトＡＰＩは、共用更新待ち行列に対して更新を加え、ＬＳ同期化サーバ・プロセスの伝搬更新タスクが伝搬待ち行列から更新を読み出し、それらの更新をＬＳ同期化クライアントに伝搬する。ひとたび同期化サーバ・プロセスが始まると、それは、ＤＣＥセキュリティ・サーバが停止されない限り停止しない。ＤＣＥセキュリティ・サーバが停止すると、それは、クリーンアップ・コールアウトＡＰＩを呼び出して、同期化サービス・プロセスを停止させる。
【００４９】
図５のブロック図は、ユーザ・アプリケーションが登録簿を更新するためにＤＣＥセキュリティＡＰＩを呼び出したときに、ローカルＤＣＥ登録簿がどのように同期化されるかを示す流れ図である。ブロック５１０で、ユーザ・アプリケーションがＤＣＥセキュリティＡＰＩを呼び出す。次にブロック５１２で、ＡＰＩが登録簿データベースを更新する。ブロック５１４で、システムは、登録簿同期化が要求されているかどうかを判断し、要求されていなければ、ブロック５１６で、次のセキュリティ処理の監視に戻る。そうでなければ、ブロック５１８で、更新が妥当なＬＡＮサーバのユーザ名またはグループ名を含むならば、ブロック５２０で適当な更新コールアウトを呼び出し、それが、更新をＬＳ同期化サーバの待ち行列に入れる。
【００５０】
ＤＣＥセキュリティ・サーバ５８が一次レプリカとして動作しているとき、「スタブ（stub）」データベースに加えられる最初の登録簿オブジェクトは順序番号「１００」で始まる。次の登録簿更新の順序番号は、その前の更新の番号よりも１だけ大きい。順序番号を記憶するのには６４ビット数が使用される。登録簿更新は、一次レプリカおよびそのすべての二次レプリカに対する同じ順序番号によって知られる。
【００５１】
ＤＣＥセキュリティ・サーバ・プロセスが停止されるならば、最新の更新の順序番号が、ＤＣＥセキュリティ・サーバによって維持される更新ログ・ファイル中にセーブされる。ＤＣＥセキュリティ・サーバが再起動されるとき、この順序番号が使用される。例えば、順序番号「９７１」が、セキュリティ・サーバが停止したときの最新の更新の順序番号であったならば、セキュリティ・サーバが再起動されたのちの最初の更新の順序番号は「９７２」となる。
【００５２】
セキュリティ・サーバ５８が二次レプリカとして動作するように選択されている場合、そのセキュリティ・サーバは、インストール後に初めて起動されると、全登録簿を受け取る。全登録簿は、一次レプリカから一連の登録簿更新として受け取られる。一次レプリカからの伝搬の最初の更新は、順序番号１００を有する。伝搬ののち二次レプリカが受け取る最初の更新の順序番号は、主レプリカまたは一次レプリカの、伝搬開始の前の最新の登録簿更新の順序番号よりも１だけ大きい。例えば、二次レプリカへの伝搬開始時の最新の登録簿更新の順序番号が「２５７８」であったならば、その伝搬ののち二次レプリカが受け取る最初の更新の順序番号は「２５７９」である。
【００５３】
二次レプリカが停止され、再起動されるならば、たいていの場合、一次レプリカは、二次レプリカへの伝搬を再開し、二次レプリカが停止する前に二次レプリカによって受け取られた最新の更新の次の更新から開始する。一次レプリカが、二次レプリカが必要とするすべての更新を有していないならば、一次レプリカは、二次レプリカに対し、自らを「再初期化」するように指示する。この再初期化が、主レプリカをして、その全データベースを一括伝搬で二次レプリカに送出させる。
【００５４】
二次レプリカは、それが停止した後で再初期化することもできるし、それが動作している間に再初期化することもできる。二次レプリカが再初期化されると、主レプリカは、その全データベースを順序番号１００から出発して送出する。
【００５５】
登録簿同期化ＤＬＬ６０は、ＬＳ同期化サーバ６２と通信するためにセキュリティ・サーバ５８にコールアウトを提供する。登録簿変更がＬＡＮサーバのユーザ、グループまたは登録方針に影響するならば、セキュリティ・サーバ５８は、登録簿同期化が要求された場合にこれらのコールアウトを呼び出す。ＬＳ同期化ＤＬＬ６０はその状態を広域変数で維持し、以下の状態を有している。
【００５６】
登録簿同期化作動中
ＬＳ同期化ＤＬＬ６０がこの状態にあるとき、コールアウトＡＰＩが更新をログ・ファイルに加え、待ち行列を更新する。
【００５７】
登録簿同期化初期化
二次レプリカとして動作中のセキュリティ・サーバが一次レプリカから「一括（bulk）」伝搬更新を受け取るプロセスにあるとき、登録簿同期化ＤＬＬ６０はこの状態にある。この状態では、コールアウトは更新を処理しない。すなわち、すべての「一括」伝搬更新が登録簿同期化ＤＬＬコールアウトによって無視される。
【００５８】
登録簿同期化ＤＬＬ６０は、セキュリティ・サーバ５８から受け取る、すべての妥当なＬＡＮサーバ更新の持続性コピーを、登録簿更新ログ・ファイル６１としても知られる更新ログ・ファイル中に維持する。各ＬＡＮサーバ更新は、まずこのログ・ファイルに書き込まれたのち、更新待ち行列６９に加えられる。セキュリティ・サーバ５８が、更新待ち行列中のすべての更新を伝搬しないうちに停止したならば、セキュリティ・サーバ５８が再起動したとき、このログ・ファイルを使用して更新待ち行列が構築される。活動中の同期化サーバ判定タスクが定期的に更新待ち行列を更新ログ・ファイルと同期化し、更新待ち行列中に存在しないすべての更新をログ・ファイルから削除する。更新ログ・ファイルの書式は、ＤＣＥセキュリティ・サーバのログ・ファイルの書式と同じである。
【００５９】
まず、更新ログ・ファイルがＬＳ初期化コールアウトによって作成される。更新コールアウトＡＰＩが更新をログ・ファイルに加え、活動中の同期化サーバ判定タスクが定期的にログ・ファイルを更新待ち行列と同期化する。ＬＳ同期化サーバ６２は更新ログ・ファイルを認知していない。
【００６０】
以下のコールアウトが登録簿同期化ＤＬＬ６０によって提供される。
【００６１】
セキュリティ・サーバ５８の初期化の際にＬＳ初期化コールアウトがセキュリティ・サーバ５８によって呼び出され、これを以下さらに詳述する。
【００６２】
セキュリティ・サーバ５８が停止するとき、クリーンアップ（clean up）コールアウトが呼び出される。
【００６３】
ＬＳプリント・メッセージは、登録簿同期化ＤＬＬ６０がその自らのメッセージを表示することができるよう、セキュリティ・サーバ５８によって呼び出される。
【００６４】
新規のプリンシパル、グループまたは組織がローカル登録簿に追加されるとき、ＰＧＯ追加コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００６５】
プリンシパル、グループまたは組織がローカル登録簿から削除されるとき、ＬＳ  ＰＧＯ削除コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００６６】
プリンシパル、グループまたは組織がローカル登録簿中で変更されるとき、ＬＳ  ＰＧＯ置換コールアウトがセキュリティ・サーバによって呼び出される。
【００６７】
プリンシパル、グループまたは組織がローカル登録簿中でリネームされるとき、ＬＳ  ＰＧＯリネーム・コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００６８】
プリンシパルがローカル登録簿中のグループまたは組織に追加されるとき、ＬＳ  ＰＧＯ追加メンバ・コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００６９】
プリンシパルがローカル登録簿中のグループまたは組織から削除されるとき、ＬＳ  ＰＧＯ削除メンバ・コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００７０】
新規アカウントがローカル登録簿中に作成されるとき、ＬＳアカウント追加コールアウトがセキュリティ・サーバによって呼び出される。
【００７１】
既存のアカウントがローカル登録簿から削除されるとき、ＬＳアカウント削除コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００７２】
既存のアカウントがローカル登録簿中で変更されるとき、ＬＳアカウント置換コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００７３】
既存のアカウントがローカル登録簿中でリネームされるとき、ＬＳアカウントリネーム・コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００７４】
延長登録簿属性（ＥＲＡ）がローカル登録簿中で更新されるとき、ＬＳ属性更新コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００７５】
登録簿の方針が全体としてローカル登録簿中で更新されるとき、ＬＳ方針更新コールアウトがセキュリティ・サーバによって呼び出される。
【００７６】
一次セキュリティ・サーバからの「一括」伝搬の開始時に、ＬＳ開始再初期化コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００７７】
一次セキュリティ・サーバからの「一括」伝搬の終了時に、ＬＳ終了再初期化コールアウトがセキュリティ・サーバ５８によって呼び出される。
【００７８】
ＬＳ同期化サーバ５８を正常に起動したのち、活動中同期化サーバ判定タスクがＬＳ初期化コールアウトＡＰＩによって作成される。このタスクは、同期化サーバ６２を監視し、それが異常に終了した場合に再起動するために作成される。正常ならば、同期化サーバ６２は、セキュリティ・サーバ５８が停止するとき、ＬＳクリーンアップ・コールアウトによって停止される。このタスクはまた、更新待ち行列６８を更新ログ・ファイル６１と同期化する。ＬＳ同期化サーバ６２は、すべてのＬＳクライアントに正常に伝搬された更新が更新ログ・ファイルから削除されることを保証する。
【００７９】
ＬＳ同期化サーバ６２は、セキュリティ・サーバ５８からコールアウトＡＰＩを介して更新を受け取り、その更新を、そこに登録されたＬＳ同期化クライアントのリストに伝搬する。ＬＳ同期化サーバ６２は、セキュリティ・サーバ５８が起動するときにＬＳ初期化コールアウトＡＰＩによって起動され、セキュリティ・サーバ５８が停止するときに正常に停止する。ＬＳ同期化サーバ６２は、ＬＳ同期化サーバ６２が動作しているコンピュータ・システム５２のホスト名である登録簿プリンシパルとして動作する。
【００８０】
ＬＳ同期化サーバ６２に登録することを許されたＬＳクライアントのリストを含む多数値ＥＲＡがＬＳ同期化サーバのプリンシパルに添付される。ＬＳ同期化サーバ６２は、更新が伝搬される登録簿同期化クライアントの揮発性リスト（メモリ中）および持続性リスト（ディスク上）を維持する。ＬＳクライアントが同期化サーバに正常に登録するたびに、クライアント・エントリがこのリストに加えられる。ＬＳ同期化サーバはまた、ＬＳ同期化サーバ６２が再起動されたときに伝搬しなければならない更新の持続性ログ・ファイルを維持する。同期化サーバ６２が正常に停止するならば、ログ・ファイルは、すべてのクライアントに正常に伝搬されていない更新を含む。ＬＳ同期化サーバ６２は、認証されたＲＰＣを使用して更新をＬＳ同期化クライアントに伝搬する。
【００８１】
ＬＳ同期化サーバ６２が再起動されるか、セキュリティ・サーバ５８が再起動されると、ＬＳ同期化サーバ６２は、持続性リストから揮発性ＬＳ同期化クライアント・リストを構築する。ＬＳ同期化サーバはまた、持続性ログ・ファイルから更新待ち行列を構築する。クライアント・リストが空ではないならば、ＬＳ同期化サーバ６２は、再起動時に、すべてのクライアントに「再接続」ＲＰＣを送出する。同期化サーバ・プロセスは、二次レプリカによって駆動されるとき、ＬＳ同期化クライアントへの「一括」伝搬（全登録簿データベースの伝搬）を支持しない。ＬＳ同期化クライアントは、同期化サーバプロセスに登録する前に、初期の同期化の責任を負う。
【００８２】
登録簿同期化ＤＬＬ６０と同期化サーバ６２とは特定のメモリ・オブジェクトを共用する。第一のメモリ・オブジェクトは更新待ち行列である。ＬＳ初期化コールアウトＡＰＩが、ＬＳクライアントに伝搬しなければならない登録簿更新を含む共用更新待ち行列を作成する。更新待ち行列は、各エントリが特定のタイプの登録簿更新を含む「連結されたリスト」である。
【００８３】
ＬＳ初期化コールアウトＡＰＩは、更新待ち行列のための「拘束されていない（uncommitted）」共用メモリの大きなブロックを作成する。新たな更新が更新待ち行列に加えられると、メモリが割り当てられ、動的に拘束される。そして、更新が更新待ち行列から削除されると、メモリの割当てが解除される。更新ログ・ファイルが存在しないか、それが空であるならば、順序番号「１００」の疑似ログ・ファイルが更新待ち行列に加えられる。更新ログ・ファイルが空ではないならば、ＬＳ初期化コールアウトＡＰＩがログ・ファイルから更新を読み出し、それらを更新待ち行列に加える。
【００８４】
登録簿同期化ＤＬＬの状態が活動中であり（登録簿同期化が作動中）、少なくとも一つのＬＳクライアントがクライアント・リスト中にあるならば、更新コールアウトＡＰＩは更新を更新待ち行列に加える。
【００８５】
ＬＳ同期化サーバ６２は、更新を伝搬し、すべてのＬＳクライアントに正常に伝搬された更新を定期的に更新待ち行列から削除する。
【００８６】
同期化サーバを駆動している二次レプリカが再初期化されるならば、ＬＳ開始再初期化コールアウトＡＰＩがすべてのエントリを更新待ち行列から削除し、「疑似」の空更新を空の待ち行列に加える。ＬＳ開始再初期化コールアウトによるこの再初期化の場合を除いては、待ち行列中の更新は、待ち行列リフレッシュ・タスクによってしか削除されない。
【００８７】
共用状態ブロック中に記憶される、更新待ち行列の開始時のアドレスは、初めにＬＳ初期化コールアウトＡＰＩによってセットされる。伝搬開始時アドレスは、待ち行列リフレッシュ・タスクおよびＬＳ開始再初期化コールアウトＡＰＩによってしか変更されない。
【００８８】
更新待ち行列に加えられる最新の更新のアドレス、換言するならば伝搬終了時アドレスは、初めにＬＳ初期化コールアウトＡＰＩによってセットされる。伝搬待ち行列終了時アドレスは、更新コールアウトＡＰＩおよびＬＳ開始再初期化コールアウトによって変更される。待ち行列リフレッシュ・タスクは、伝搬待ち行列終了時アドレスを変更しない。登録簿更新を待ち行列に加えなければならない場合、メモリが新規アドレスに割り当てられ、伝搬待ち行列終了後の次のエントリが、割り当てられたメモリにセットされ、伝搬待ち行列終了時のアドレスが、新規更新を指すように変更される。
【００８９】
同期化サーバ６２は、そのときそこに登録されているＬＳクライアントの揮発性リストをメモリ中に維持し、その持続性リストをディスク・ファイルとして維持する。持続性リストは、ＬＳクライアント・リスト・ファイルに記憶され、揮発性リストは、一つの連結されたリストとして維持される。
【００９０】
持続性クライアント・リスト中の各エントリは、以下のデータ構造によって表される。
【００９１】
0004222642.tif 000002
【００９２】
揮発性クライアント・リスト中の各エントリは、以下のデータ構造によって表される。
【００９３】
0004222642.tif 000003
【００９４】
client name
これは、クライアント・プロセスが動作している機械の「computername」である。ＬＳ同期化サーバは、この名称を、ＲＰＣハンドルをクライアントに対して認証するためのプリンシパル名として使用する。
【００９５】
client uuid
これは、ＬＳクライアントの実例ＵＵＩＤである。クライアントは、このＵＵＩＤを、クライアントがエンド・ポイント・マップに登録するインタフェースと関連させる。ＬＳ同期化サーバは、ＵＵＩＤをクライアント束縛ハンドル「client handle」と関連させる。
【００９６】
realm name
これは、ＬＳクライアントの定義域制御装置に関連する領域名である。このフィールドは、領域に基づいて更新をろ波するのに使用される。
【００９７】
client state
クライアントの現在の通信状態。この状態が「in service」である場合にのみ、「prop updates」タスクが更新をクライアントに伝搬する。クライアントは、以下の状態のいずれかであることができる。
【００９８】
initializing
クライアントは、登録簿からのその全データベースを同期化するプロセスにある。
【００９９】
in service
クライアントは活動中であり、更新をクライアントに伝搬することができる。
【０１００】
sync error
クライアントは、クライアントに伝搬された登録簿更新を同期化できなかった。「resume prop」タスクが１０分ごとにこの状態を「in service」に変更する。
【０１０１】
comm error
クライアントは動作しておらず、更新を受け取ることができない。クライアントがこの状態にあるとき、ＬＳ同期化サーバは、更新をクライアントに伝搬しない。
【０１０２】
client ver num
これは、ＬＳ同期化サーバにより、ダウンレベル（down-level）クライアントを識別するのに使用される。
【０１０３】
client last seqno
これは、クライアントに正常に伝搬された最新の更新の順序番号である。クライアントが最初に登録するとき、この順序番号が、更新待ち行列に加えられた最新の更新（S end of propq）の順序番号にセットされる。
【０１０４】
client handle
これは、ＬＳクライアントへのＲＰＣ束縛ハンドルである。ＬＳ同期化サーバは、登録簿ＲＰＣによって受け取られたクライアント束縛ハンドルからこのハンドルを構築する。
【０１０５】
last state time
これは、クライアントが「comm error」または「initializing」状態に入った時間である。クライアントが長期間「comm error」または「initializing」状態にあるならば、ＬＳ同期化サーバは、そのクライアント・リストからこのクライアントを削除する。クライアントが「in service」状態にあるときには、この時間は無視される。
【０１０６】
client last update
これは、クライアントに正常に伝搬された最新の更新のアドレス（更新待ち行列中の）である。クライアントが最初に登録するとき、このアドレスが、更新待ち行列に加えられた最新の更新（S end of propq）のアドレスにセットされる。持続性リストから揮発性リストを構築するとき、このアドレスは、順序番号「client last seqno」をもつ更新のアドレスにセットされる。
【０１０７】
next client
これは、クライアント・リスト中の次のエントリを指すポインタである。
【０１０８】
ＬＳ同期化サーバは、以下のＲＰＣをＬＳ同期化クライアントに提供する。
【０１０９】
登録ＲＰＣ
ＬＳクライアントが、ＬＳ同期化サーバに登録するために、このＲＰＣを呼び出す。同期化サーバのプリンシパルのＥＲＡリスト中にそのクライアントが存在しないならば、登録は拒絶される。クライアントは、その状態情報を登録ＲＰＣに通す。クライアントの状態が「initializing」であるならば、同期化サーバはそのクライアントをそのリストに加え、そのクライアントの状態を「initializing」としてマークする。クライアントは、登録簿からそのデータベース（net.acc およびＤＣＤＢ）を正常に初期化したのち、状態を「in service」にセットした状態で登録ＲＰＣを再び送出する。同期化サーバは、「in service」の登録要求を受け取ると、クライアントの状態を「in service」に変更する。
【０１１０】
クライアントはまた、同期化サーバに対し、クライアントへの伝搬を再開するように要求するため、「re-start」状態で登録ＲＰＣを呼び出す。状態が「re-start」であるならば、クライアントは、正常に同期化された最新の更新の順序番号およびタイムスタンプを送出しなければならない。同期化サーバは、この情報を使用して、クライアントへの伝搬を再開できるかどうか、または、クライアントを再初期化しなければならないかどうかを判定する。クライアントは、その同期化サーバが停止したと判定するならば、「re-start」登録ＲＰＣを新規の同期化サーバに発することにより、セル中の他の同期化サーバに接触を試みることができる。登録ＲＰＣの状態が「re-start」ではないならば、同期化サーバは最新の更新の順序番号およびタイムスタンプを無視する。
【０１１１】
状態が「unregister」であるならば、同期化サーバはクライアントをそのクライアント・リストから削除する。
【０１１２】
状態が「out of service」であるならば、同期化サーバはクライアントの状態を「comm error」に変更して、そのクライアントが停止したことを示す。
【０１１３】
ＬＳクライアントは、登録ＲＰＣを介して以下の情報を送出する。
「lse clientp list」データ構造の「client name」、「client uuid」、「realm name」および「client ver num」
【０１１４】
クライアントの状態
以下の状態のいずれかである。
initializing
in service
re start
unregister
out of service
【０１１５】
この状態が「initializing」または「in service」であるならば、クライアント・リスト中のクライアントの「client state」がこの状態にセットされる。
【０１１６】
クライアントによって正常に同期化された最新の更新の順序番号およびタイムスタンプ。これは「re start」状態の場合にのみ有効である。
【０１１７】
ＬＳクライアントは、同期化サーバが活動中であるかどうかを見いだすため、ＲＰＣ  ＡＰＩ「rpc mgmt is server listening」を頻繁に呼び出す。クライアントがrpc s ok以外の戻りコードを受け取るならば、クライアントは、その同期化サーバが停止していると仮定し、別の同期化サーバに接触を試みる。同期化サーバは、その束縛情報を、同期化サーバがインストールされている機械の最新の名称がsevobj nameであるＣＤＳオブジェクト /∴/subsys/realms/rgysync/(sevobj name>に送り出す。
【０１１８】
ＬＳクライアントは、同期化サーバから「lse sync updates」ＲＰＣを介して受け取られた最新の更新セットの同期化を完了したのち、同期化完了（sync complete）ＲＰＣを呼び出す。同期化クライアントは、正常に同期化された最新の更新の順序番号およびすべての更新が正常に同期化されたかどうかを示す戻りコードを渡す。同期化サーバは、このＲＰＣを受け取ると、クライアント・リスト中のクライアントの「client last seqno」を更新し、クライアントから受け取る戻りコードの数値に応じてクライアントの状態「client state」を変更する。クライアントによって送出される戻りコードは、以下の値を有することができる。
【０１１９】
rpc s ok
クライアントは、最新の呼出しでクライアントに伝搬されたすべての更新を正常に同期化した。
【０１２０】
update error
クライアントは、最新の呼出しからの一つ以上の更新を同期化できなかった。
【０１２１】
lse seqno error
クライアントは、最新の呼出しでクライアントに伝搬された更新を予定していなかった。最初の更新の順序番号が、クライアントによってすでに同期化されていた最新の更新の順序番号よりも小さかった。
【０１２２】
同期化サーバ・プロセスは、以下のタスクを開始する。
【０１２３】
「prop updates」タスクが、更新を更新待ち行列から同期化サーバに現在登録されているＬＳ同期化クライアントのリストに伝搬する。このタスクは、更新が空の伝搬待ち行列に加えられたときに起動する。クライアント・リスト中の各クライアント・エントリは、そのクライアントに正常に伝搬された最新の更新（client last update）のアドレスを含む。伝搬待ち行列は更新を順序どおりに含む。すなわち、待ち行列中のもっとも以前の更新が最小の順序番号を有し、もっとも最近の更新が最大の順序番号を有する。「prop update」タスクは、動作するたびに、更新を、待ち行列中の、クライアントの「client last update」の次の更新から出発して、ＬＳ同期化クライアントに伝搬する。クライアントの「client last update」が、待ち行列に加えられた最新の更新と同じならば、そのクライアントに伝搬すべき更新はない。すべての登録簿クライアントに正常に伝搬された更新は、「queue refresh」タスクによって伝搬待ち行列から削除される。「prop updates」タスクはまた、伝搬待ち行列のサイズを制御する。このタスクは、長期間どのクライアントにも伝搬されていない更新を除くことにより、伝搬待ち行列があまり大きくならないようにする。
【０１２４】
多数の更新を伝搬するのに使用される、先に引用した従来のプログラミング・コードすべてと同様にＣ言語で記されるデータ構造を以下のように定義する。
【０１２５】
0004222642.tif 000004
【０１２６】
upd reclenは、「lse log hdr t」サイズを含む、更新レコードのバイト単位の長さである。
【０１２７】
upd moduleは、以下の更新モジュールのいずれかである。
【０１２８】
#define RS LOG MODULE ACCT      ０
#define RS LOG MODULE PGO       １
#define RS LOG MODULE ATTR      ２
#define RS LOG MODULE PLCY      ３
【０１２９】
upd opは、「upd module」によって定義されるモジュールの特定の登録簿更新を識別する。例えば、「upd module」がRS LOG MODULE ACCTであるならば、「upd op」は次のいずれかである。
【０１３０】
#define rs log acct add op      ０
#define rs log acct delete op   １
#define rs log acct replace op  ２
#define rs log acct rename op   ３
【０１３１】
あるモジュールの「upd op」の各値は、そのモジュールの特定の登録簿に対応する。
【０１３２】
upd seqno は、登録簿更新の順序番号である。
【０１３３】
upd tsは、登録簿更新のタイムスタンプである。
【０１３４】
upd dataは、「upd module」および「upd op」によって定義される登録簿更新の可変長データのアドレスである。
【０１３５】
「queue refresh」タスクは、すべての同期化クライアントに正常に伝搬されたすべてのエントリを伝搬待ち行列から削除する。このタスクはまた、長期間（１日）「initializing」または「comm error」状態にあるクライアントを削除する。このタスクは、持続性クライアント・リストを揮発性クライアント・リストと同期化する。具体的には、クライアント・リスト中の各クライアントの「client last update」が揮発性クライアント・リスト中の現在の情報によって更新される。待ち行列リフレッシュ・タスクは、定期的に、通常は１時間ごとに動作し、さらに、「syncsrvr」プロセスが終了するときにも動作する。
【０１３６】
再開伝搬タスクは頻繁に動作し、「sync error」状態にあるクライアントを「in service」状態に変える。クライアントは、登録簿更新を正常に同期化できない場合に「sync error」状態に陥り、「sync error」を同期化サーバに戻す。このタスクは、一つ以上のクライアントが「sync error」状態にあるとき、ネットワーク通信量を減らすために生成される。ＬＳ同期化サーバは、更新を、「in service」状態にあるクライアントにだけ伝搬する。
【０１３７】
ＬＳ同期化サーバ・プロセスは、管理者にとって関心事となるかもしれないすべての活動を記録する。以下の事象が「syncsrv.aud」ファイルに記録される。
【０１３８】
新規ＬＳクライアントの登録
ＬＳクライアントの登録解除
ＬＳクライアントから受け取ったre-start
ＬＳクライアントへの「re-init」ＲＰＣの送出
【０１３９】
ＬＳクライアント・プロセスは、ＬＳ  Ｅ定義域制御装置にインストールされたＬＡＮサーバ・サービス（lsesync）である。「lsesync」サービスがＬＳ  Ｅ定義域制御装置上で構成されているとき、それは、リクエスタ・サービスとともに開始し、リクエスタ・サービスが終了するときに終了する。これは、プリンシパル「ibm/ibmlan/rgysync/<computername rgyclient」として動作し、ＬＳ同期化サーバ・プロセスから更新を受け取るための認証されたＲＰＣを提供する。ＬＳinstall/configプログラムが「lsesync」プリンシパルを「acct-admin」グループに加えて、このサービスがすべてのユーザおよびグループ情報を登録簿から検索することができるようにする。
【０１４０】
ＬＳクライアント・プロセスは、ＬＡＮサーバ構成ファイル中に指定されるその一次ＬＳ同期化サーバ・プロセス（syncsrvr）に登録する。これは、その状態情報ならびに正常に同期化された最新の更新の順序番号およびタイムスタンプを含む持続性状態ファイル（lsesync.st）を維持する。
【０１４１】
lsesyncは、初めて起動すると、その領域に属するすべてのユーザおよびグループ情報を登録簿から検索し、ローカルnet.accおよびＤＣＤＢファイルを同期化する。また、管理者が構成ファイル中の「reinit required」パラメータの値を「yes」にセットすることにより、再同期化を強制することができる。デフォルト値によると、「reinit required」は「no」にセットされる。「lsesync」サービスは、休止させたり継続させたりすることができない。
【０１４２】
何らかの理由により、ＬＳ同期化クライアントが停止しなければならないならば、正常に同期化された最新の更新の順序番号およびタイムスタンプならびにその状態が状態ファイル「lsesync.st」にセーブされる。最新の更新の順序番号およびタイムスタンプはまた、「beacon」タスクにより、１０分ごとに状態ファイルに書き込まれる。lsesyncプロセスは、再開すると、状態ファイルから最新の更新の順序番号およびタイムスタンプを読み出し、「re-start」登録ＲＰＣをＬＳ同期化サーバに送出する。
【０１４３】
図３の再同期化データベース・ルーチン８０が、主登録簿中のＬＳクライアントの領域に属するすべてのユーザおよびグループ情報をＬＳクライアントのデータベース（net.acc およびＤＣＤＢ）と同期化する。ＬＳクライアントは、初めに開始すると、その一次同期化サーバに登録する前に、このルーチンを呼び出して、そのnet.acc およびＤＣＤＢを主登録簿と同期化する。
【０１４４】
ＬＳ同期化クライアントは、ＬＳ同期化サーバから更新を受け取るために以下のＲＰＣを登録する。
【０１４５】
ＬＳ同期化クライアントは、一つの更新ＲＰＣをＬＳ同期化サーバの「prop updates」タスクに提供する。同期化サーバは、一度に一つ以上（１０個まで）の登録簿更新を伝搬する。更新ＲＰＣは、登録簿更新をローカル・バッファに複写し、「process updates」タスクを起動し、「rpc s ok」を戻す。
【０１４６】
同期化サーバは、更新ＲＰＣから「rpc s ok」を受け取ると、クライアント・リスト中のＬＳクライアントの状態を「updates in progress」に変更する。同期化サーバ・プロセスの「prop updates」タスクは、同期化サーバがＬＳクライアントから「sync complete」ＲＰＣを受け取るまで、クライアントへの更新の伝搬を中止する。
【０１４７】
ＬＳ同期化サーバは、あるＬＳクライアントを再初期化したいのならば、Re-init ＲＰＣをそのクライアントに送出する。例えば、同期化サーバの伝搬待ち行列がセキュリティ・サーバ更新との同期を逸するならば、同期化サーバは、「re-init」ＲＰＣを送出して、すべてのクライアントに再初期化するように伝える。ＬＳクライアントは、このＲＰＣを受け取ると、登録簿からそのnet.accおよびＤＣＤＢ（データベース・ファイル）を再同期化し、ＬＳ同期化サーバに再登録する。
【０１４８】
ＬＳ同期化サーバは、Shutdown  ＲＰＣを呼び出して、クライアントに、「syncsrvr」プロセスが終了しようとしていることを知らせる。クライアントは、このＲＰＣを受け取ると、警報メッセージを送出し、警告メッセージをエラー・ログ・ファイルに記録する。クライアントは、ＬＳクライアントの状態を「out of service」に変更し、それがビーコン・タスクに合図して別の同期化サーバに接触させる。
【０１４９】
ＬＳ同期化サーバは、再起動されると、Reconnect ＲＰＣをそのリスト中の各クライアントに送出する。ＬＳクライアントは、このＲＰＣを受け取ると、常に「rpc s ok」を同期化サーバに戻す。ＬＳクライアントがまだ別の同期化サーバに接触していなければ、ＬＳクライアントはこの同期化サーバと再接続する。
【０１５０】
ＬＳクライアント・プロセスは以下のタスクを開始する。
【０１５１】
ビーコン・タスクは、頻繁に、約１０分ごとに動作し、クライアントが現在登録しているＬＳ同期化サーバが活動中であるかどうかをチェックする。このタスクは、ＲＰＣ  ＡＰＩ「rpc mgmt is server listening」を呼び出し、これが、同期化サーバが活動中であるならば「rpc s ok」を戻す。ＬＳ同期化クライアントがＲＰＣ  ＡＰＩから「rpc s ok」以外の何かを戻すならば、クライアントは、そのサーバが停止中であると仮定し、「ibm/lan/rgysync」のもとで同期化サーバ・プリンシパルのリストの別の同期化サーバに接触を試みる。クライアントは、それが接触したい新規の同期化サーバに対して「re-start」登録ＲＰＣを発する。
【０１５２】
ビーコン・タスクは、状態ファイルと正常に同期化された最新の更新の順序番号およびタイムスタンプを書き込む。
【０１５３】
ＬＳクライアントのローカル・データベースが登録簿と再同期化されなければならない場合、再初期化タスクが「lse reinit lsdb」ＲＰＣによって起動される。
【０１５４】
「process update」タスクは、同期化サーバ・プロセスから受け取った更新を処理する。一つ以上の更新がＬＳ同期化サーバ・プロセスによって伝搬されるとき、「lse sync update」ＲＰＣがこのタスクを起動する。更新が処理されたのち、このタスクが同期化サーバに対して「sync complete」ＲＰＣを発し、これが同期化サーバをしてこのクライアントへの伝搬を再開させる。このタスクは、ローカル・クライアントのデータベースと正常に同期化された最新の更新の順序番号を送出する。
【０１５５】
「process update」タスクは、以下の戻りコードのいずれかを「sync complete」ＲＰＣに送出する。
【０１５６】
rpc s ok
すべての更新が正常に同期化された。ＬＳ同期化サーバ・プロセスが、そのクライアント・リスト中のクライアントの「client last seqno」を、「sync complete」ＲＰＣで送られた順序番号で更新する。
【０１５７】
update error
クライアントは一つ以上の更新を同期化できなかった。サーバが「client last seqno」を更新し、クライアントの状態を「sync error」に変更する。
【０１５８】
lse seqno error
同期化サーバが、最新の順序番号よりも小さな順序番号の更新を伝搬した。
【０１５９】
図６は、登録簿データベースを維持するのに使用される主レプリカ更新プロセスを示す図である。ここでもまた、セル中には、一次レプリカとしても知られる主レプリカが一つだけが許される。主セキュリティ・サーバ７０が主または一次レプリカを確立し、クライアントからその登録簿データベース７２に対する更新を受け取る。通常はスレーブまたは二次レプリカとして知られる他のレプリカは、クライアントからの読出しのみを受け入れる。主レプリカは、いかなる更新をもスレーブ・レプリカに伝搬する。例えば、一次レプリカまたは二次レプリカのいずれかは、アカウント情報をクライアント・プログラムに提供することができる。しかし、アカウントまたは変更パスワード情報を追加することが望まれるならば、これらの更新は、主レプリカのみが扱うことができる。レプリカにアクセスするセキュリティ・ツールは、それらが実行している処理に求められるレプリカのタイプに自動的に結合する。
【０１６０】
一次レプリカ（主セキュリティ・サーバ７０）は、更新、この例ではデータベース更新を受け取ると、その更新を仮想メモリ７４中のそのデータベースに加え、各更新のコピーを、ディスク上に記憶されたログ・ファイル７６にセーブする。更新は順序番号の順序でログ・ファイル７６中に蓄積する。サーバが予想外に再起動するとしても、このログ・ファイルが、更新が失われないことを保証する。レプリカは定期的に仮想メモリ７４中のデータベースをディスク７２に書き込み、こうして、ディスク・コピーを最新にする。そして、レプリカが二次レプリカであるならば、それは、すべての更新をログ・ファイルからクリアする。レプリカが主レプリカであるならば、それは、スレーブ・レプリカに伝搬されたすべての更新をログ・ファイルからクリアする。二次レプリカに伝搬されなかった更新は保持され、必要ならば、伝搬待ち行列を再構成するのに使用される。レプリカ・リスト７８が、セル中のレプリカごとに、レプリカのネットワーク・アドレスおよびＩＤ、セル相対名ならびにレプリカの最新の更新の順序番号を含む。さらに、サーバ７０は、各更新のコピーをログ・ファイル７６に記憶する。このファイルは、サーバ再起動の場合に、顕著な更新をデータベースのディスク・コピーに加え、伝搬待ち行列８０を再構成するのに使用される。サーバはまた、更新を仮想メモリ中のデータベースおよびその伝搬待ち行列８０に加える。サーバ７０は定期的に仮想メモリ７４中のデータベースをディスク７２に書き込む。主レプリカは、その伝搬待ち行列８０を使用して、更新を二次レプリカに伝搬する。主レプリカが再起動するとき、主レプリカはログ・ファイル７６から伝搬待ち行列６０を復元する。
【０１６１】
主レプリカだけが、二次レプリカに伝搬すべき変更を保持するのに使用される伝搬待ち行列８０を維持する。主レプリカは、更新を受け取ると、それを、その仮想メモリのデータベース７４およびそのログ・ファイル７６の他に、伝搬待ち行列８０にも加える。伝搬待ち行列８０中の各更新は、順序番号およびタイムスタンプによって識別される。順序番号は、二次レプリカへの更新の伝搬を制御するのに内部的に使用される。タイムスタンプは、更新の日時をユーザに示すために提供される。
【０１６２】
主レプリカまたは二次レプリカは、起動すると、仮想メモリ７４中のそのデータベースを初期化したのち、ログ・ファイル７６中の顕著な更新をそのデータベース７２に加える。そのレプリカが主レプリカであるならば、それはまた、顕著な二次更新を伝搬することができるよう、ログ・ファイル７６から伝搬待ち行列８０を再構成する。この機構は、サーバが停止した場合でも更新が失われないことを保証する。これらの処理のためにこそ、同期化が重要なのである。
【０１６３】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）分散コンピューティング環境（ＤＣＥ）を形成する、それぞれがローカル・データベースを有する複数の分散コンピューティング・システムにおける、複数のローカル・データベースを同期化するデータベース同期化システムにおいて、
システム・サーバと、
前記システム・サーバに結合された登録簿データベースと、
前記システム・サーバに結合されたローカル・エリア・ネットワーク（ＬＡＮ）同期化サーバと、
前記システム・サーバに結合されたＬＡＮサーバ同期化ライブラリと、
前記ＬＡＮ同期化サーバおよびＬＡＮを形成する前記複数の分散コンピューティング・システムの選択されたいくつかに結合されたＬＡＮサーバとを含み、
前記複数のローカルＬＡＮデータベースの少なくとも一つに影響する前記登録簿データベース中の登録簿変更が、前記ＬＡＮサーバ同期化ライブラリを呼び出して、影響された前記データベースを同期化することを特徴とする、前記データベース同期化システム。
（２）前記システム・サーバが、前記ＬＡＮ同期化ライブラリが存在し活動中であるかどうかを決定する手段をさらに含む上記（１）記載のデータベース同期化システム。
（３）前記ＬＡＮサーバ同期化ライブラリが、前記ＬＡＮサーバの更新に関してフィルタおよび待ち行列として働く上記（１）記載のデータベース同期化システム。
（４）前記ＬＡＮ同期化サーバが、前記システム・サーバから事象通告を受け取り、前記ローカル・データベースへの伝送を制御する上記（１）記載のデータベース同期化システム。
（５）前記ＬＡＮ同期化サーバが、前記システム・サーバに登録することを許可されたＬＡＮローカル・データベースのリストを維持する上記（４）記載のデータベース同期化システム。
（６）前記ＬＡＮ同期化サーバが、その関連のＬＡＮに属するすべてのユーザおよびグループ情報を前記分散コンピューティング環境内の各ローカル・データベースから検索し、前記ＤＣＥ内の各登録簿中の前記ローカル・データベースを同期化する上記（１）記載のデータベース同期化システム。
（７）前記システム・サーバが、前記ＤＣＥ内の前記ローカル登録簿データベースに対して更新を加えるために呼び出されるコールアウト手段をさらに含む上記（６）記載のデータベース同期化システム。
（８）前記システム・サーバが一次レプリカまたは二次レプリカのいずれかとして動作する上記（１）記載のデータベース同期化システム。
（９前記システム・サーバが、前記ＬＡＮ同期化サーバと通信するために共用メモリ・オブジェクトを生成する初期化手段をさらに含む上記（８）記載のデータベース同期化システム。
（１０）前記システム・サーバが一次レプリカとして動作し、第一の登録簿オブジェクトが、スタブ・データベース内に配置され、次の登録簿更新の順序番号が先の更新の順序番号よりも１だけ大きくなるように指定された順序番号を与えられる上記（８）記載のデータベース同期化システム。
（１１）前記システム・サーバが二次レプリカとして動作し、前記ＤＣＥの全登録簿データベースを一次レプリカから受け取り、最初の伝搬に所与の順序番号が割り当てられ、登録簿更新のためのその後の伝搬ごとに１だけ増した順序番号が割り当てられる伝搬待ち行列を確立する上記（８）記載のデータベース同期化システム。
（１２）前記ＬＡＮ同期化ライブラリが、コールアウトが更新をログ・ファイルおよび更新待ち行列に加えることを許可するイン・サービス状態を含む上記（１）記載のデータベース同期化システム。
（１３）二次レプリカが一次レプリカから一括伝搬更新を受け取り、受取り段階で更新を処理しないとき、前記ＬＡＮ同期化ライブラリが初期化状態を含む上記（１）記載のデータベース同期化システム。
（１４）コールアウトが更新をログ・ファイルまたは更新待ち行列に加えることができないとき、前記ＬＡＮ同期化ライブラリがエラー状態を含む上記（１）記載のデータベース同期化システム。
（１５）前記ＬＡＮ同期化ライブラリが、前記システム・サーバから受け取ったすべての妥当なＬＡＮサーバ更新の持続性コピーを更新ログ・ファイル中に維持する上記（１）記載のデータベース同期化システム。
（１６）前記ＤＣＥ内でセキュリティを提供する手段をさらに含む上記（１）記載のデータベース同期化システム。
（１７）分散コンピューティング環境（ＤＣＥ）内の各コンピューティング・システム内の複数のローカル・データベースのそれぞれに結合された登録簿データベースと、
ＤＣＥ内の各ローカル・データベースを前記登録簿データベースと同期化する、前記登録簿データベースに結合された一次レプリカと、
複数のコンピューティング・システムおよびそれらそれぞれのデータベースの選択されたいくつかを含む少なくとも一つのローカル・エリア・ネットワーク（ＬＡＮ）サーバを前記登録簿データベースと同期化する、前記一次レプリカに結合された二次レプリカと、
を含むことを特徴とする、同期化システム。
（１８）前記一次レプリカが、同期化される特定のＬＡＮサーバに対する登録簿同期化コールアウトを含む上記（１７）記載の同期化システム。
（１９）前記ＬＡＮサーバが、
前記一次レプリカに結合されたＬＡＮ同期化サーバと、
前記ＬＡＮサーバに結合されたＬＡＮサーバ同期化ライブラリとを含み、
ＤＣＥ内のローカル・データベースまたはグループ・データベースに影響する登録簿データベース中の登録簿変更が、前記ＬＡＮサーバ同期化ライブラリを呼び出して、影響された前記データベースを同期化する上記（１７）記載の同期化システム。
（２０）前記同期化システム・サーバが、それぞれがローカル登録簿データベースを有する複数の分散コンピューティング・システムのためのＤＣＥセルとしてセキュリティおよび同期化を提供する上記（１９）記載の同期化システム。
（２１）前記ＬＡＮ同期化ライブラリが存在し、活動中であるかどうかを決定する手段をさらに含む上記（１９）記載の同期化システム。
（２２）前記ＬＡＮサーバ同期化ライブラリが、前記ＬＡＮ同期化サーバのための更新に関してフィルタおよび待ち行列として働く上記（１９）記載の同期化システム。
（２３）ＤＣＥ内でセキュリティを提供する手段をさらに含む上記（１６）記載の同期化システム。
（２４）分散コンピューティング環境（ＤＣＥ）を形成する、それぞれがローカル・データベースを有する複数の分散コンピューティング・システムにおける、複数のローカル・データベースを同期化する方法において、
ＤＣＥ内で一つのコンピューティング・システムから別のコンピューティング・システムまで、また、登録簿データベースとの間で一次通信を設けるステップと、
ＤＣＥ中の複数のコンピューティング・システムから選択されたコンピューティング・システムのローカル・エリア・ネットワーク（ＬＡＮ）のための二次通信サーバを確立するステップと、
ＬＡＮサーバ同期化ライブラリを確立するステップと、
登録簿データベース中の登録簿変更が、ＬＡＮ内の複数のローカル・データベースの少なくとも一つに影響するかどうかを決定するステップと、
前記ＬＡＮサーバ同期化ライブラリを呼び出して、影響されたデータベースを同期化するステップと、
を含むことを特徴とする方法。
（２５）前記ＬＡＮサーバ同期化ライブラリを確立する前記ステップが、前記ＬＡＮ同期化ライブラリが存在し、活動中であるかどうかを決定するステップをさらに含む上記（２４）記載の方法。
（２６）前記ＬＡＮ同期化ライブラリが、前記登録簿データベースと前記ローカルＬＡＮデータベースとの間の同期化のために更新をろ波し、待ち行列に入れるステップを実行する上記（２４）記載の方法。
（２７）登録簿変更が必要であるかどうかを決定する前記ステップが、
プロセスに対する更新の事象通告を受け取るステップと、
前記登録簿データベースから前記ローカル・データベースへの更新伝送を制御するステップと、
をさらに含む上記（２４）記載の方法。
（２８）前記システム・サーバに登録することを許可されたＬＡＮローカル・データベースのリストを維持するステップをさらに含む上記（２４）記載の方法。
（２９）前記ＬＡＮサーバ同期化ライブラリを呼び出す前記ステップが、
その関連のＬＡＮに属するすべてのユーザおよびグループ情報を、前記分散コンピューティング環境内の各ローカル・データベースから検索するステップと、
前記ＤＣＥ内の各登録簿中の前記ローカル・データベースを前記ユーザおよびグループ情報と同期化するステップと、
を含む上記（２４）記載の方法。
（３０）前記ＬＡＮ同期化ステップが、コールアウトを呼び出して、前記ＤＣＥ内の前記ローカル登録簿データベースに対して更新を加えるステップをさらに含む上記（２９）記載の方法。
（３１）一次通信を提供する前記ステップが、前記二次通信サーバと通信するための共用メモリ・オブジェクトを生成するステップを含む上記（２４）記載の方法。
（３２）一次通信を提供する前記ステップが、
前記一次通信を一次レプリカとして確立するステップと、
第一の登録簿オブジェクトをスタブ・データベース内に配置し、次の登録簿更新の順序番号が先の更新の順序番号よりも１だけ大きくなるように指定された順序番号を与えるステップと、
を含む上記（２４）記載の方法。
（３３）前記二次通信サーバを確立する前記ステップが、
前記二次通信サーバを二次レプリカとして確立するステップと、
前記ＤＣＥの前記全登録簿データベースを一次レプリカから受け取るステップと、
最初の伝搬に所与の順序番号が割り当てられ、登録簿更新のためのその後の伝搬ごとに１だけ増した順序番号が割り当てられる伝搬待ち行列を確立するステップと、
を含む上記（２４）記載の方法。
（３４）前記ＬＡＮサーバ同期化ライブラリが、前記一次通信から受け取ったすべての妥当なＬＡＮサーバ更新の持続性コピーを更新ログ・ファイル中に維持する上記（２４）記載の方法。
（３５）前記ＤＣＥ内でセキュリティを提供するステップをさらに含む上記（２４）記載の方法。
（３６）分散コンピューティング環境（ＤＣＥ）内の各コンピューティング・システム内の複数のローカル・データベースのそれぞれに結合された登録簿データベースを確立するステップと、
前記ＤＣＥ内の各ローカル・データベースを前記登録簿データベースと同期化する一次レプリカを確立するステップと、
前記複数のコンピューティング・システムおよびそれらそれぞれのデータベースの選択されたいくつかを含む少なくとも一つのローカル・エリア・ネットワーク（ＬＡＮ）サーバを前記登録簿データベースと同期化する二次レプリカを確立するステップと、
を含むことを特徴とする、ＤＣＥを同期化する方法。
（３７）前記一次レプリカを確立する前記ステップが、同期化される特定のＬＡＮサーバのための登録簿同期化コールアウトを生成するステップを含む上記（３６）記載の方法。
（３８）分散コンピューティング環境（ＤＣＥ）を形成する、それぞれがローカル・データベースを有する複数の分散コンピューティング・システムにおいて使用し、前記複数のローカル・データベースを同期化するコンピュータ・プログラム製品において、
前記ＤＣＥ内で一つのコンピューティング・システムから別のコンピューティング・システムまで、また、登録簿データベースとの間で一次通信を設けるコンピュータ使用可能コード手段と、
前記ＤＣＥ中の前記複数のコンピューティング・システムから選択されたコンピューティング・システムのローカル・エリア・ネットワーク（ＬＡＮ）用の二次通信サーバを確立するコンピュータ使用可能コード手段と、
ＬＡＮサーバ同期化ライブラリを確立するコンピュータ使用可能コード手段と、
前記登録簿データベース中の登録簿変更が、前記ＬＡＮ内の前記複数のローカル・データベースの少なくとも一つに影響するかどうかを決定するコンピュータ使用可能コード手段と、
前記ＬＡＮサーバ同期化ライブラリを呼び出して、前記影響されたデータベースを同期化するコンピュータ使用可能コード手段と、
を含むことを特徴とするコンピュータ・プログラム製品。
（３９）前記ＬＡＮサーバ同期化ライブラリを確立するための前記コード手段が、前記ＬＡＮ同期化ライブラリが存在し、活動中であるかどうかを決定するコンピュータ使用可能コード手段をさらに含む上記（３８）記載のコンピュータ・プログラム製品。
（４０）前記ＬＡＮ同期化ライブラリが、前記登録簿データベースと前記ローカルＬＡＮデータベースとの間の同期化のために更新をろ波し、待ち行列に入れるコンピュータ使用可能コード手段を含む上記（３８）記載のコンピュータ・プログラム製品。
（４１）登録簿変更が必要であるかどうかを決定する前記コード手段が、
プロセスに対する更新の事象通告を受け取るコンピュータ使用可能コード手段と、
前記登録簿データベースから前記ローカル・データベースへの更新伝送を制御するコンピュータ使用可能コード手段と、
をさらに含む上記（３８）記載のコンピュータ・プログラム製品。
（４２）前記システム・サーバに登録することを許されたＬＡＮローカル・データベースのリストを維持するコンピュータ使用可能コード手段をさらに含む上記（３８）記載のコンピュータ・プログラム製品。
（４３）前記ＬＡＮサーバ同期化ライブラリを呼び出す前記コード手段が、
その関連のＬＡＮに属するすべてのユーザおよびグループ情報を、前記分散コンピューティング環境内の各ローカル・データベースから検索するコンピュータ使用可能コード手段と、
前記ＤＣＥ内の各登録簿中の前記ＬＡＮローカル・データベースを前記ユーザおよびグループ情報と同期化するコンピュータ使用可能コード手段と、
を含む上記（３８）記載のコンピュータ・プログラム製品。
（４４）前記ＬＡＮ同期化コード手段が、コールアウトを呼び出して、前記ＤＣＥ内の前記ローカル登録簿データベースに対して更新を加えるコンピュータ使用可能コード手段を含む上記（４３）記載のコンピュータ・プログラム製品。
（４５）一次通信を提供する前記コード手段が、前記二次通信サーバと通信するための共用メモリ・オブジェクトを生成するコンピュータ使用可能コード手段を含む上記（３８）記載のコンピュータ・プログラム製品。
（４６）一次通信を提供する前記コード手段が、
前記一次通信を一次レプリカとして確立するコンピュータ・プログラム製品手段と、
第一の登録簿オブジェクトをスタブ・データベース内に配置し、次の登録簿更新の順序番号が先の更新の順序番号よりも１だけ大きくなるように指定された順序番号を与えるコンピュータ・プログラム製品手段と、
を含む上記（３８）記載のコンピュータ・プログラム製品。
（４７）前記二次通信サーバを確立する前記コード手段が、
前記二次通信サーバを二次レプリカとして確立するコンピュータ使用可能コード手段と、
前記ＤＣＥの前記全登録簿データベースを一次レプリカから受け取るコンピュータ使用可能コード手段と、
最初の伝搬に所与の順序番号が割り当てられ、登録簿更新のためのその後の伝搬ごとに１だけ増した順序番号が割り当てられる伝搬待ち行列を確立するコンピュータ使用可能コード手段と、
を含む上記（３８）記載のコンピュータ・プログラム製品。
（４８）前記ＬＡＮサーバ同期化ライブラリが、前記一次通信から受け取ったすべての妥当なＬＡＮサーバ更新の持続性コピーを更新ログ・ファイル中に維持する上記（３８）記載のコンピュータ・プログラム製品。
（４９）前記ＤＣＥ内でセキュリティを提供するコンピュータ使用可能コード手段をさらに含む上記（３８）記載のコンピュータ・プログラム製品。
（５０）分散コンピューティング環境（ＤＣＥ）内の各コンピューティング・システム内の複数のローカル・データベースのそれぞれに結合された登録簿データベースを確立するコンピュータ使用可能コード手段と、
前記ＤＣＥ内の各ローカル・データベースを前記登録簿データベースと同期化する一次レプリカを確立するコンピュータ使用可能コード手段と、
前記複数のコンピューティング・システムおよびそれらそれぞれのデータベースの選択されたいくつかを含む少なくとも一つのローカル・エリア・ネットワーク（ＬＡＮ）サーバを前記登録簿データベースと同期化する二次レプリカを確立するコンピュータ使用可能コード手段と、
を含むことを特徴とする、ＤＣＥを同期化するコンピュータ・プログラム製品。
（５１）前記一次レプリカを確立する前記コード手段が、同期化される特定のＬＡＮサーバのための登録簿同期化コールアウトを生成するコンピュータ使用可能コード手段を含む上記（５０）記載のコンピュータ・プログラム製品。
【図面の簡単な説明】
【図１】従来技術のＤＣＥセキュリティ・サーバを表すブロック図である。
【図２】本発明による分散データ処理システムを表す絵画図である。
【図３】本発明によるセキュリティ・サーバを備えたＤＣＥセルを表すブロック図である。
【図４】同期化サーバ初期化を説明する流れ図である。
【図５】登録簿更新コールアウト後の登録簿同期化を説明する流れ図である。
【図６】図３による主レプリカを表すブロック図である。
【符号の説明】
８        分散データ処理システム
１０、３２  ローカル・エリア・ネットワーク
１２、３０  コンピュータ
１４、２０  記憶装置
１６        プリンタ／出力装置
１８        メインフレーム・コンピュータ
２２、３４  通信リンク
２６        通信制御装置
２８        ゲートウェイ・サーバ
【図１】
0004222642.tif 000005
【図２】
0004222642.tif 000006
【図３】
0004222642.tif 000007
【図４】
0004222642.tif 000008
【図５】
0004222642.tif 000009
【図６】
0004222642.tif 000010