(57)【特許請求の範囲】
【請求項１】
データを第１データベースから第２データベースにレプリケートするための方法であって、
第１更新コマンドが、主サーバと関連した主データベースの主テーブルにおいてデータを修正したことを確認し、
前記第１更新コマンドが前記主データベースの前記主テーブルにおいてデータを修正したことを確認するのに応答して、前記第１更新コマンドに基づき第２更新コマンドを確認し、
前記主テーブルに連結された副連合テーブルを使用して副サーバと関連した副データベースの副テーブルにおいてデータをレプリケートするために、前記第２更新コマンドを適用する、
方法。
【請求項２】
前記第１更新コマンドに基づき前記第２更新コマンドを確認することが、前記主データベースから、前記副データベースに適用するための１以上の修正命令文を取得することを含む、請求項１に記載の方法。
【請求項３】
前記第１更新コマンドに基づき前記第２更新コマンドを確認することが、前記第１更新コマンドによって更新された前記主テーブルと関連したテーブルスキーマを取得し、前記テーブルスキーマに基づき前記第２更新コマンドを生成することを含む、請求項１に記載の方法。
【請求項４】
１以上の修正命令文の各々が、前記副連合テーブルに対する参照を備える、請求項２に記載の方法。
【請求項５】
前記データが、前記副データベースと関連した前記副サーバと関連した構成に関する情報を含む、請求項１に記載の方法。
【請求項６】
前記主データベースは、前記主サーバと関連した第１記憶装置に記憶され、前記副データベースは、前記副サーバと関連した第２記憶装置に記憶される、請求項１に記載の方法。
【請求項７】
前記主サーバ及び前記副サーバが、メディアアプリケーションサーバを含む、請求項６に記載の方法。
【請求項８】
前記主テーブル、前記副テーブル、及び前記副連合テーブルの各々が、同じテーブル定義を有する、請求項１に記載の方法。
【請求項９】
前記第１更新コマンドが前記主テーブルを修正したことを確認することが、前記第１更新コマンドが前記主データベースを修正したとの通知を、前記主サーバから受信することを含む、請求項１に記載の方法。
【請求項１０】
前記第１更新コマンドを前記主サーバの前記主テーブルに適用し、前記第１更新コマンドに基づき前記第２更新コマンドを生成し、前記第２更新コマンドを前記主データベースの更新テーブルに記憶することをさらに含む、請求項１に記載の方法。
【請求項１１】
前記第２更新コマンドが、前記副テーブル及び前記副連合テーブルを参照する１以上の修正命令文を含む、請求項１０に記載の方法。
【請求項１２】
前記副テーブルを修正するために前記第２更新コマンドを適用することが、前記副連合テーブルを生成し、前記副連合テーブルを使用して前記副テーブルを修正するために前記第２更新コマンドを適用し、前記第２更新コマンドを適用した後に前記副連合テーブルを取り除くことをさらに含む、請求項１に記載の方法。
【請求項１３】
前記第２更新コマンドは、前記副連合テーブルに対する参照を備え、前記第２更新コマンドの適用時に、前記副連合テーブルに対する前記参照によって、前記主データベースの前記主テーブルから前記副連合テーブルにデータが自動的に伝えられる、請求項１に記載の方法。
【請求項１４】
前記副連合テーブルは、前記主データベースの前記主テーブルの仮想的なビューを含み、前記副連合テーブルは、前記主テーブルに収容されるデータのすべてを収容しない、請求項１に記載の方法。
【請求項１５】
更新すべき前記副テーブルを確認することをさらに含み、前記第２更新コマンドは、前記副テーブルに適用するための構造化問い合わせ言語（ＳＱＬ）命令文を含む、請求項１に記載の方法。
【請求項１６】
それぞれの関連した副データベースを各々が有する複数の副サーバをさらに含み、前記第１更新コマンドが、前記主データベースの前記主テーブルの前記データを修正したことを確認するのに応答して、前記複数の副サーバの各々は、前記第１更新コマンドに基づき前記第２更新コマンドを確認し、前記主テーブルに連結されたそれぞれの副連合テーブルを実質的に同時に使用して前記副データベースのそれぞれの副テーブルの前記データをレプリケートするために前記第２更新コマンドを適用する請求項１に記載の方法。
【請求項１７】
前記主サーバ及び前記複数の副サーバの各々は、サーバのクラスタ内でノードを含む、請求項１６に記載の方法。
【請求項１８】
前記副テーブルが、前記副データベースの複数の副テーブルの１つである、請求項１に記載の方法。
【請求項１９】
前記主テーブルに連結された前記副連合テーブルを使用して前記副データベースの前記副テーブルの前記データをレプリケートするために前記第２更新コマンドを適用することが、前記副テーブルの第１の複数の行を更新し、前記副テーブルの第２の複数の行が更新されない、請求項１に記載の方法。
【請求項２０】
テーブルを更新するための装置であって、
ネットワークと通信するよう適応されるインターフェースと、
前記インターフェースに連結される制御システムとを備え、
前記制御システムは、
第１更新コマンドが、主サーバと関連した主データベースの主テーブルにおいてデータを修正したことを確認し、
前記第１更新コマンドが前記主データベースの前記主テーブルにおいてデータを修正したことを確認するのに応答して、前記第１更新コマンドに基づき第２更新コマンドを確認し、
前記主テーブルに連結された副連合テーブルを使用して副サーバと関連した副データベースの副テーブルにおいてデータをレプリケートするために、前記第２更新コマンドを適用する、
ように適用される装置。
【請求項２１】
前記第２更新コマンドを確認するために、前記制御システムが更に前記主データベースから前記副データベースに適用するための１以上の修正命令文を取得するように適応される請求項２０に記載の装置。
【請求項２２】
１以上の修正命令文の各々は、前記副連合テーブル参照する請求項２１に記載の装置。
【請求項２３】
前記第２更新コマンドを確認するために、前記制御システムは更に、前記第１更新コマンドによって更新された前記主テーブルと関連したテーブルスキーマを取得し、前記テーブルスキーマに基づき前記第２更新コマンドを生成するように適応される請求項２０に記載の装置。
【請求項２４】
前記副連合テーブルは、前記主データベースの前記主テーブルの仮想的なビューを含み、前記副連合テーブルは、前記主テーブルに収容されるデータのすべてを収容しない請求項２０に記載の装置。
【請求項２５】
前記制御システムは更に更新すべき前記副テーブルを確認するように適応され、前記第２更新コマンドは、前記副テーブルに適用するための構造化問い合わせ言語（ＳＱＬ）命令文を含む請求項２０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、データベースをレプリケートすることに関し、特に、クラスタ内で動作するデータベースの選択的なレプリケーションに関する。
【背景技術】
【０００２】
コンピュータ・アプリケーションは、情報を記憶するため、データベースを使用する。データベースは典型的には、データベース管理システム（ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ：ＤＢＭＳ）と通常呼ばれるソフトウェア機能の精巧な組を備え、ＤＢＭＳは、ユーザがデータベースの特定及び生成をし、当該データベースを更新及び問い合わせをし、そして当該データベースを維持することを可能にする。データベースは、セキュリティを提供し、更新が不可分性、頑強性、一貫性とを有することを確保するが、複雑さという犠牲をしばしば払っている。ビジネス用のデータベースを維持するため、専任のデータベースの専門家を雇用することは、ビジネスにとって珍しいことではない。アプリケーションプロバイダは、構成データのような、重要なデータを記憶するのにデータベースを使用しようとしてもよいが、複雑なデータベースソフトウェアの維持と関連した追加のサポートコストを負うことを顧客に要求すること、又はある場合には、アプリケーションが特定のＤＢＭＳを使用していることを知られることさえ望まない。したがって、アプリケーションプロバイダは、ＤＢＭＳの利益を望んでもよいが、ＤＢＭＳと関連した複雑さから顧客を守ることを望んでもよい。
【０００３】
あるアプリケーションは、ネットワーク上で分散した態様で協同して動作するように設計される。たとえば、通信システムは、クラスタ内で互いにネットワークが組まれた多数のデータサーバを伴ってもよい。クラスタ内の各サーバは、当該クラスタ内の他のサーバと通信する。各サーバは、構成情報のような情報が維持される関連したデータベースを有してもよい。データベースに維持される情報は、ホストネーム又はインターネット・プロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：ＩＰ）アドレスのような独立したサーバに関してもよく、サーバがシンプルネットワークマネジメントプロトコル（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ：ＳＮＭＰ）を実装しているか否かのように、ネットワーク上の各サーバに共通していてもよい。１つのサーバがマスタ即ち主サーバとして識別され、残りのサーバがスレーブ即ち副サーバとして指定されることは、分散型システムでは珍しいことではない。主サーバに対してなされるある構成変更が、副サーバの各々に対してなされることを必要とされてもよい。実際には、このような変更が主サーバに対してなされる毎に、適当な構成変更は、人間がかかわらずに、副サーバに対してなされる。多くの最新のＤＢＭＳは、今日データベースのレプリケーションを介してのように、分散型データベース間でデータを伝達するための一定の能力を有しているが、レプリケートされたデータベースの構築及び維持は、かなりの専門技術を必要とするおそれがある。さらに、レプリケーションは、破損したデータベースを修復し又は新たな副データベースをクラスタに加えるという複雑さを増大させ、副データベースの選択的な更新を許容せず、各データベースが同じＤＢＭＳベンダーからのものであることを必要とする。このようにして、顧客による多大なデータベースの専門技術を必要とせず、マルチベンダー環境において確実に機能し、そして分散型ネットワーク上で実質的に同時に選択的なレプリケーションを可能にする、分散型データベース間でデータベース情報をレプリケートするための仕組みに対する要請がある。
【発明の概要】
【０００４】
当業者は、添付図面を参照して好ましい実施形態に関する以下の詳細な説明を読むと、本発明の範囲を認識し、その付加的な態様を理解するであろう。
【０００５】
本発明は、構成データのようなデータを、主データベースから１以上の副データベースに選択的にレプリケートすることに関する。レプリケーションタスクは、主サーバと関連した主データベースの更新を備え、主サーバは、副サーバと関連した１以上の副データベース上でレプリケートされる必要がある。副サーバは、主データベースの主テーブルが第１更新コマンドで修正されたことを確認する。第１更新コマンドは、１以上のデータベース修正命令文を含むことができる。副サーバは、第１更新コマンドに基づく第２更新コマンドを確認する。副サーバは、主サーバの主テーブルに連結された副サーバにおいて副連合テーブルを生成する。副連合テーブルは、構造化問い合わせ言語（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ：ＳＱＬ）命令文のような従来のデータベースコマンドを使用して、主テーブルからのデータを副サーバ上にアクセスさせる。副サーバは、副連合テーブルを使用して第２更新コマンドを副テーブルに適用し、これにより主データベースからの更新を副データベースにレプリケートする。
【０００６】
本発明の一の実施形態によれば、主サーバは、第１更新コマンドに基づき第２更新コマンドを生成し、第２更新コマンドを主データベースの更新コマンドテーブルに記憶する。主サーバは、第１更新コマンドがトリガ又はアラートを介して主テーブルに適用されていたとき、副サーバに通知する。主サーバからの通知を受けると、副サーバは、主データベースの更新コマンドテーブルにアクセスし、第２更新コマンドを検索する。副サーバは、主テーブルに連結された副連合テーブルを生成し、副連合テーブルを介して副テーブルを更新する。主テーブル、副テーブル、及び副連合テーブルはすべて、同じテーブル定義を有する。
【０００７】
本発明の他の実施形態によれば、各レプリケーションタスクは、関連した固有のタスク識別子と、固有のシグネチャとを有する。各レプリケーションタスクと関連したタスク識別子及びシグネチャは、レプリケーションタスクが主データベース上で実行されるとき、主データベースに記憶され、レプリケーションタスクと関連した同じ固有のタスク識別子及び固有のシグネチャは、レプリケーションタスクが副データベース上で実行された後、副データベースに記憶される。副サーバが、主データベースの主テーブルに更新が発生したことを通知されるとき、副サーバは、レプリケーションタスクと関連したタスク識別子及びシグネチャを主データベースから取得して、当該シグネチャと副データベースに予め記憶されたシグネチャと比較する。主データベースからのシグネチャが副データベースからのシグネチャに合致しない場合には、副サーバは、副データベース上でレプリケーションタスクを実行し、次いで、レプリケーションタスクが再び実行されないように、主データベースからのシグネチャを副データベースに記憶する。
【０００８】
本発明の他の実施形態によれば、第２更新コマンドは、副データベースのデータに基づいた基準で副テーブルの更新を調整する。たとえば、主サーバにインストールされたアプリケーションはレプリケーションタスクを開始し、レプリケーションタスクは、アプリケーションと関連した構成データが維持される主データベースに新たな構成テーブルを設定する。副サーバは、レプリケーションタスクが主データベース上で実行されたことを通知される。副サーバは、レプリケーションタスクと関連したタスク識別子及びシグネチャを主データベースから取得して、レプリケーションタスクが副データベース上で実行されなかったことを確認する。副サーバは、新たな構成テーブルを作成するのに使用された第１更新コマンドに基づき、第２更新コマンドを取得する。しかしながら、第２更新コマンドは、副データベースの副構成テーブルの存在に関して、副データベースの副構成テーブルの修正を調整する。アプリケーションが未だ副サーバにインストールされていなかったので、副構成テーブルは副データベースに未だ存在せず、主データベースの新たな構成テーブルから副データベースにレプリケートされるデータはない。将来の時点で、アプリケーションが副サーバにインストールされ、副構成テーブルが副データベースに作成されるとき、副サーバは、レプリケーションのプロセスを開始するように指示されることができる。副サーバは、レプリケーションタスクと関連したタスク識別子及びシグネチャを主データベースから再び取得し、主データベースからのシグネチャが副データベースからのシグネチャに合致しないことを確認し、副データベース上でレプリケーションタスクを実行する。
【０００９】
本発明のさらに他の実施形態によれば、第２更新コマンドは、副データベースのデータに基づいた基準で副テーブル内の或る行の更新を調整する。たとえば、主サーバ上のアプリケーションは、特定の基準に基づき主テーブル内の或る行を修正するレプリケーションタスクを開始する。副サーバは、レプリケーションタスクが主データベース上で実行されたことを通知される。副サーバは、レプリケーションタスクと関連したタスク識別子及びシグネチャを主データベースから取得し、レプリケーションタスクが副データベース上で実行されなかったことを確認する。副サーバは、新たな構成テーブルを作成するのに使用された第１更新コマンドに基づき、第２更新コマンドを取得する。副サーバは、レプリケーションタスクを実行し、副テーブルのある行のみが、特定の基準に基づいて更新される。
【００１０】
本発明のさらに他の実施形態によれば、新たな副サーバが、既存の副サーバのクラスタに加えられる。新たな副サーバは、起動して主データベースにアクセスし、主サーバ上でレプリケーションタスクと関連した固有のタスク識別子及びシグネチャを取得する。次いで、各レプリケーションタスクは、新たな副サーバと関連した副データベース上で実行される。従って、新たな副データベースは、無駄な手動構成無しに、主データベース又は任意の他の副データベースを破損させずに、主データベースから選択的にレプリケートされる。
【００１１】
本明細書中に組み込まれ、本明細書の一部を形成する添付図面は、本発明の原理を説明するのに役立つ記載とともに、本発明の幾つかの態様を説明する。
【図面の簡単な説明】
【００１２】
【図１】本発明の一の実施形態によるデータベースを選択的にレプリケートするためのシステムのブロック図である。
【図２】図１に説明されるシステムの態様をより詳細に示すブロック図である。
【図３】本発明の一の実施形態による、主データベースにおける主テーブルを更新するためのプロセスを説明するフローチャートである。
【図４】図３に例示された実施形態による、副データベースにおける副テーブルを更新するためのプロセスを説明するフローチャートである。
【図５】本発明の他の実施形態による、選択的レプリケーションのためのプロセスにおける典型的なデータを説明するブロック図である。
【図６】本発明の一の実施形態によるサーバのブロック図である。
【発明を実施するための形態】
【００１３】
【００１４】
【００１５】
【００１６】
【００１７】
【００１８】
以下に記載される実施形態は、当業者が本発明を実施し、本発明を実施する最良の形態を説明することを可能にするのに必要な情報を表す。添付図面に照らして以下の説明を読むと、当業者は、本発明の概念を理解し、ここで特に扱われていないこれらの概念の応用を認識するであろう。これらの概念及び応用は、開示及び添付の特許請求の範囲の範囲内に属することを理解すべきである。
【００１９】
本発明は、主サーバと関連した主データベースが、クラスタ内で動作する複数の副サーバと関連した複数の副データベースに選択的にレプリケートされるのを可能にする。本発明は、通常のデータベース修正命令文を使用してレプリケーションを実行し、通常のデータベースのレプリケーションと関連した複雑さを解消し、通常のデータベースのレプリケーションよりも著しく大きなフレキシビリティを提供する。本発明は、複数のクラスタ状のデータベースが、処理オーバーヘッドがほとんどなく又はネットワーク帯域をほとんど利用せずに互いに実質的に同時に選択的にレプリケートされるのを可能にする。本発明はまた、人間の介在又は複雑なデータベースコマンドの知識なしに、データベースの自動的な復元を可能にする。レプリケーションタスクを実行する通常のデータベース命令文の使用を通して、本発明は、マルチベンダー環境における選択的データベースのレプリケーションを提供する。
【００２０】
図１は、本発明の一の実施形態によるデータベースを選択的にレプリケートするためのシステムのブロック図である。主サーバ１０が、ネットワーク１４を介して複数の副サーバ１２に連結されている。主サーバ１０及び副サーバ１２は、好ましくは、クラスタ内で動作し、１以上のサービスをネットワーク１４を介して他の装置（図示せず）に提供する。主サーバ１０は、主データベース１６に通信可能に連結され、主データベース１６と関連しており、各副サーバ１２は、副データベース１８に通信可能に連結され、副データベース１８と関連している。主サーバ１０及び副サーバ１２は、時として、本明細書ではクラスタ内のノードと呼ばれてもよい。クラスタ内の特定のノードについての主ノード又は副ノードとしての指定は、設備次第としてもよい。しかしながら、主サーバ１０のような、主サーバとして表示されたノードは、副サーバ１２のような、すべての他のノードが、クラスタ内の各ノードと共通する構成情報のようなある情報を受信するように通信するのが好ましいノードである。主サーバ又は副サーバとしての役割以外に、主サーバ１０と副サーバ１２との間には物理的な相違が殆どなくともよい。主サーバ１０及び副サーバ１２は、本明細書ではサーバ１０、１２として一括して呼ばれてもよく、その場合には、当該説明は、主サーバ１０と副サーバ１２に等しく関する。
【００２１】
サーバ１０、１２は、本明細書に記載された機能を組み込むのに適した任意のデータ処理装置を含むことができる。サーバ１０、１２は、通常の又は固有のオペレーティングシステムを作動させる一般的な目的のコンピュータサーバでもよく、これらのサーバは、サーバ１０、１２上で遂行する１以上のアプリケーションを通して通常の又は特別な機能を組み込んでいる。或いは、サーバ１０、１２は、限定された機能を提供する特別な目的の装置でもよい。本発明の一の実施形態によれば、サーバ１０、１２は、音声、ビデオ、オーディオ、及び他のサービスの提供のような種々の通信サービスを、電話、コンピュータなどのような複数のエンドユーザ装置（図示せず）に提供できるメディアアプリケーションサーバを含む。
【００２２】
ネットワーク１４は、サーバ１０、１２間の通信を有線又は無線でできる、任意の適当な通信技術を含むことができ、トランスミッションコントロール・プロトコル／インターネット・プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：ＴＣＰ／ＩＰ）、リアルタイムトランスポート・プロトコル（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ    Ｐｒｏｔｏｃｏｌ：ＲＴＰ）、メディアリソースコントロール・プロトコル（Ｍｅｄｉａ  Ｒｅｓｏｕｒｃｅ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ：ＭＲＣＰ）などのような、任意の通常のメッセージ・プロトコルを使用してもよく、或いは固有のメッセージ・プロトコルを使用してもよい。主データベース１６及び副データベース１８は、通常のリレーショナル又は階層型ＤＢＭＳのような、任意の適当なデータベース管理システム（ＤＢＭＳ）を含んでもよい。特に、主データベース１６及び副データベース１８は、データベースが構造化問い合わせ言語（ＳＱＬ）命令文のような同じ通常のデータベース命令文と同じ方法で応答する限り、同じベンダーによって又は異なるベンダーによって提供されてもよい。主データベース１６及び副データベース１８は、本明細書ではデータベース１６、１８としてひとまとめに呼ばれてもよく、その場合には、当該説明は、主データベース１６と副データベース１８の両方に等しく関係する。
【００２３】
データベース１６、１８がサーバ１０，１２と別個の記憶装置と関連しているものとしてそれぞれ示されているが、ＤＢＭＳが、記憶装置に記憶されてもよいテーブル、データセット、及びデータを収容するインデックスのようなデータ構造体のみならず、関連したサーバ１０、１２上で又は特化したデータベースプロセッサ上で遂行し、かつ、アプリケーションプログラムがデータベース１６、１８を作成し更新しアクセスし問い合わせするのを可能にする比較的複雑な組のデータベースアクセスアルゴリズムを備えることを、当業者は認識するであろう。主データベース１６に対して主サーバ１０「上に」又は主サーバ１０「と関連した」ということは、ネットワーク１４上で又は別のネットワーク又は通信路上で主データベース１６が物理的に主サーバ１０上にあり又は主サーバ１０と一体であり又は単に主サーバ１０によってアクセス可能であろうとなかろうと、主データベース１６と主サーバ１０との関連付けのことを意味する。同様に、副データベース１８に対してそれぞれの副サーバ１２「上に」又はそれぞれの副サーバ１２「と関連した」ということは、ネットワーク１４上で又は別のネットワーク又は通信路上で副データベース１８が物理的に副サーバ１２上にあり又は副サーバ１２と一体であり又は単に副サーバ１２によるアクセス可能／不可に拘わらず、副データベース１８とそれぞれの副サーバ１２との関連付けのことを意味する。ここでデータベース情報をサーバ１０、１２から取得するということは、それぞれのサーバ１０、１２がそれぞれのデータベース１６、１８からのデータを提供することに実際に関与しているいないに拘わらず、ケース・バイ・ケースで、それぞれのサーバ１０、１２と関連したそれぞれのデータベース１６、１８から情報を得ることを意味する。
【００２４】
サーバ１０、１２の所望の機能を提供するアプリケーションは、種々の目的のために、それぞれのアプリケーションの動作に関する情報を備えたデータを記憶するため、データベース１６、１８を使用してもよい。たとえば、データベース１６、１８は、例えば関連したサーバ１０、１２のホストネーム又はインターネット・プロトコル（ＩＰ）アドレスのような、データベース１６、１８が関連した特定のサーバ１０、１２のみに関するノーダル・データを備えてもよい。データベース１６、１８はまた、シンプルネットワークマネジメント・プロトコル（ＳＮＭＰ）がサーバ１０、１２を管理するのに使用されるかどうかのような、クラスタ内におけるすべてのノードに関するクラスタデータを備えてもよい。本発明の一の実施形態により選択的にレプリケートされてもよいデータの種類は、ＳＩＰドメイン、ＳＩＰプロキシアトリビュート、ＳＩＰトラステッドノード、オペレーショナル・メジャーメント構成情報がアーカイブされるか否かのような、オペレーショナル・メジャーメント構成情報、コーデックがイネーブルにされることを識別するメディアコーデック情報、コーデックと関連した優先順位付け、最大中央処理ユニット限度のようなエンジニアリングパラメータ、タイムシンクロナイゼーション・サーバのアドレス、ライセンス・キーなどを備えた、セッションイニシエーション・プロトコル（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ：ＳＩＰ）構成情報を備えてもよいが、これらに限定されなくてもよい。本発明によれば、主データベース１６上で修正されるクラスタデータは、たとえば２又は３秒以内の実質的に同時のタイムフレームで副データベース１８上で自動的にレプリケートされてもよいが、主データベース１６上で修正されたノーダル・データは、副データベース１８にレプリケートされない。
【００２５】
図２は、図１に説明された主サーバ１０及び関連した主データベース１６と副サーバ１２及び関連した副データベース１８のより詳細なブロック図であり、本発明の一の実施形態による選択的レプリケーションを実行するのに使用されてもよいテーブル定義を備える。主サーバ１０は、主サーバ１０の特定の機能を提供するアプリケーションを備える。副サーバ１２は、テーブル・シンクロナイザ２２を備え、テーブル・シンクロナイザ２２はここでは、１以上の副サーバ１２上で実行される本発明の態様を記載し、データを主データベース１６から副データベース１８に選択的にレプリケートするのに使用される。図２は、図３に関連して論じられており、図３は、本発明の一の実施形態による主データベース１６中の主テーブル２４を更新するためのプロセスを説明するフローチャートである。図２はまた、図４に関連して論じられており、図４は、本発明の一の実施形態によるデータを主テーブル２４から副データベース１８中の副テーブル２６にレプリケートするためのプロセスを説明するフローチャートである。図２から図４はまた、図５に関連して論じられており、図５は、本発明の一の実施形態によるデータベースの選択的なレプリケーションを実行するのに使用されてもよい、あるテーブルのテーブル定義を説明するブロック図である。
【００２６】
次に図２及び図３を参照すると、アプリケーションが、１以上の構成パラメータを含むデータの新たな行２８を主テーブル２４に挿入することによって主テーブル２４を修正し（ステップ１００）、この修正が副データベース１８にレプリケートされるべきレプリケーションタスクであるものと仮定する。本発明は、説明のため、テーブル、挿入、結合などのような、ＳＱＬ  ＤＢＭＳ及びリレーショナル・データベースの術語を使用して記載されているが、当業者は、ここに記載されている概念が、階層型ＤＢＭＳを備えた多数の異なるタイプのＤＢＭＳに適用でき、本発明がリレーショナルＤＢＭＳの使用に限定されないことを認識するであろう。新たな行２８を主テーブル２４に挿入した後、アプリケーション２０は、主テーブル２４への更新と関連したデータの新たな行をＴＡＳＫ＿ＣＦＧテーブル３０に挿入する。データの新たな行は、ＳＹＮＣＴＡＳＫＩＤフィールド３２を備えてもよく、ＳＹＮＣＴＡＳＫＩＤフィールド３２は、レプリケーションタスクを識別する固有のタスク識別子を収容する。当業者は、固有の識別子が、要求時に固有の識別子を提供するベンダーが提供するオペレーティングシステム機能又はＤＢＭＳ機能を呼び出すことを備えた、多くの異なる方法で取得されてもよいことを認識するであろう。ＴＡＳＫ＿ＣＦＧテーブル３０における新たな行はまた、ＳＹＮＣＭＯＤＥフィールド３４を備えてもよく、ＳＹＮＣＭＯＤＥフィールド３４は、副データベース１８上でレプリケーションを実行するのに使用されるデータベース命令文に関する情報を収容する。ＳＹＮＣＭＯＤＥフィールド３４は、レプリケーションタスクが、ＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８から取得されることができる単一のデータベース命令文又は多数のデータベース命令文で実行され、或いは副サーバ１２が、多数のデータベース命令文を生成して、主テーブル２４のスキーマ定義に基づきレプリケーションタスクを実行することを示すことができる。新たな行はまた、ＳＹＮＣＦＩＧフィールド３６を備えてもよく、ＳＹＮＣＦＩＧフィールド３６は、レプリケーションタスクが副テーブル２６にレプリケートされるべきか否かを示す指標を収容する。新たな行はまた、ＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８を備えてもよく、ＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８は、ＳＹＮＣＭＯＤＥフィールド３４に基づきレプリケーションタスクを副テーブル２６上で実行する（ステップ１０２）ため、副サーバ１２によって使用される実際のデータベース命令文を収容してもよい。特に、ここでより詳細に記載されるように、ＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８に収容されるデータベース命令文は、新たな行２８を主テーブル２４に挿入するため、アプリケーション２０によって使用される同じデータベース命令文でなくともよい。これは、ＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８におけるデータベース命令文が、データを主テーブル２４から副テーブル２６にレプリケートするため、副サーバ１２で遂行されるデータベース命令文であるからである。
【００２７】
次に、アプリケーション２０は、新たな行をＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０に挿入する。ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０における新たな行は、上述（ステップ１０４）と同じＳＹＮＣＴＡＳＫＩＤを収容するＳＹＮＣＴＡＳＫＩＤフィールド４２を備えてもよい。ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０における新たな行はまた、主テーブル２４を識別する識別子を収容するＳＹＮＣＴＡＢＬＥＩＤフィールド４４を備えてもよい。ＳＹＮＣＴＡＢＬＥＩＤフィールド４４からのＳＹＮＣＴＡＢＬＥＩＤを使用して、主データベース１６の各テーブルの行を備えるＦＥＤ＿ＴＡＢＬＥ＿ＣＦＧテーブル４６をクロスリファレンスしてもよい。ＦＥＤ＿ＴＡＢＬＥ＿ＣＦＧテーブル４６の各行は、主データベース１６の特定のテーブルと関連した固有の識別子であるＳＹＮＣＴＡＢＬＥＩＤフィールド４８、主データベース１６における実際のテーブル名称を収容するＳＹＮＣＴＡＢＬＥＮＡＭＥフィールド５０、及び主データベース１６の実際の名称を収容するＳＹＮＣＤＢＮＡＭＥフィールド５２を備えてもよい。ＦＥＤ＿ＴＡＢＬＥ＿ＣＦＧテーブル４６は、特定のＳＹＮＣＴＡＢＬＥＩＤを主データベース１６における特定の主テーブルとクロスレファレンスするのに使用される。
【００２８】
次に、アプリケーション２０は、新たな行をＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４に挿入する。ＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４における新たな行は、ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０及びＴＡＳＫ＿ＣＦＧテーブル３０を参照して上述したＳＹＮＣＴＡＳＫＩＤを収容するＳＹＮＣＴＡＳＫＩＤフィールド５６と、それぞれのＳＹＮＣＴＡＳＫＩＤと関連した固有のシグネチャを備えたＬＡＳＴＳＩＧフィールド５８とを備えることができる（ステップ１０６）。新たな行はまた、ＳＹＮＣＯＲＤＥＲフィールド６０を備えてもよく、ＳＹＮＣＯＲＤＥＲフィールド６０は、効率性のため又はデータ保全の目的のために特定の順番でレプリケーションが行われることを確保するため、副サーバ１２によって使用されることができるデータを備える。ＴＡＳＫ＿ＣＦＧテーブル３０、ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０、ＦＥＤ＿ＴＡＢＬＥ＿ＣＦＧテーブル４６、及びＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４は、ここでは主データベース１６におけるテーブルとして全て記載されているが、当業者は、このようなテーブルが主データベース１６とは別個のデータベース中にあるものでもよいことを認識するであろう。
【００２９】
次に、アプリケーション２０は、レプリケーションタスクが主データベース１６上で実行されたことを、副サーバ１２で実行するテーブル・シンクロナイザ２２に通知する（ステップ１０８）。アプリケーション２０は、第１サーバ上で実行するタスクが、第１サーバ上でのイベントの発生を第２サーバ上で実行するタスクに通知するのを可能にする任意の通常のメカニズムを使用して、レプリケーションタスクについて副サーバ１２に通知することができる。本発明の一の実施形態によれば、アプリケーション２０は、レプリケーションタスクがＳＱＬトリガを介して主データベース１６上で実行されたことを、テーブル・シンクロナイザ２２に通知する。トリガは、新たな行をＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４に挿入するとき作動されてもよい。トリガは、レプリケーションタスクが主データベース１６上で実行されたことをテーブル・シンクロナイザ２２に通知して、テーブル・シンクロナイザ２２が発生するのを待機しているイベントを生じさせてもよい。
【００３０】
次に図２及び図４を参照すると、テーブル・シンクロナイザ２２は、更新が主テーブル２４に適用されたことを確認する（ステップ２００）。テーブル・シンクロナイザ２２は、主データベース１６のＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４から各行を取得する（ステップ２０２）。テーブル・シンクロナイザ２２は、副データベース１８上で予め実行された各レプリケーションタスクと関連した行を備える副データベース１８のＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣテーブル６２にアクセスする。ＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣテーブル６２の各行は、それぞれのレプリケーションタスクと関連した主データベース１６からＳＹＮＣＴＡＳＫＩＤを収容するＳＹＮＣＴＡＳＫＩＤフィールド６４と、それぞれのＳＹＮＣＴＡＳＫＩＤと関連したＬＡＳＴＳＩＧを備えるＬＡＳＴＳＩＧフィールド６６とを備える。テーブル・シンクロナイザ２２は、ＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４の各行からのＬＡＳＴＳＩＧをＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣ  テーブル６２の各行からのＬＡＳＴＳＩＧと比較して、ＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４の各行に対するＬＡＳＴＳＩＧがＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣテーブル６２の行におけるＬＡＳＴＳＩＧに合致するか否かを確認する（ステップ２０４）。ＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣテーブル６２の行からのＬＡＳＴＳＩＧが、ＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４における任意の行のＬＡＳＴＳＩＧに合致しない場合には、当該ＳＹＮＣＴＡＳＫＩＤと関連したレプリケーションタスクは、副データベース１８上で実行されなければならない。アプリケーション２０が新たな行２８を具える主テーブル２４の更新を伴う新たなレプリケーションタスクを実行したので、ＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４における新たな行からのＬＡＳＴＳＩＧは、ＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣテーブル６２における任意の行からのＬＡＳＴＳＩＧに合致しないであろう。
【００３１】
次いで、テーブル・シンクロナイザ２２は、主データベース１６のＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０にアクセスし、ＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４の新たな行からＳＹＮＣＴＡＳＫＩＤを使用してＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０にアクセスし、それぞれのＳＹＮＣＴＡＳＫＩＤに対してＳＹＮＣＴＡＢＬＥＩＤを取得する（ステップ２０６）。次いで、テーブル・シンクロナイザ２２は、ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０からＳＹＮＣＴＡＢＬＥＩＤを使用して主データベース１６のＦＥＤ＿ＴＡＢＬＥ＿ＣＦＧテーブル４６にアクセスし、テーブルのＳＹＮＣＴＡＢＬＥＮＡＭＥ、及びそれぞれのシンクロナイゼーション・タスクで使用されたデータベースのＳＹＮＣＤＢＮＡＭＥを取得する（ステップ２０８）。次いで、テーブル・シンクロナイザ２２は、ＦＥＤ＿ＴＡＢＬＥ＿ＣＦＧテーブル４６のＳＹＮＣＴＡＢＬＥＮＡＭＥフィールド５０によって識別される特定の主テーブル２４に指示し又は連結される副連合テーブル６８を設定する（ステップ２１０）。当業者によって理解されるように、連合テーブルは、リモートサーバ上のデータベースのテーブルが、当該データベースのテーブルがローカルサーバ上にマウントされたか或いはローカルサーバ上に存在するかのように表示されるのを可能にする。「連合テーブル」という語句が、あるＤＢＭＳで使用される際、連合テーブルの容量及び概念が多くの異なるＤＢＭＳにおいて存在し、ここでの語句「連合テーブル」の使用が、任意の特別なＤＢＭＳにおいてこのような特徴を記載するのに使用される特定の術語に関係なく、ローカルデータベースのテーブルに適用されるデータベース命令文がデータをリモートデータベースからアクセスさせるように、リモートデータベースからローカルデータベース上のテーブルを表示する能力を包含することが認識されるであろう。本発明の副連合テーブル６８は好ましくは、副連合テーブル６８が連結される主テーブル２４と副テーブル２６の両方について同じテーブル定義を有する。
【００３２】
テーブル・シンクロナイザ２２は、それぞれのＳＹＮＣＴＡＳＫＩＤを使用して主データベース１６のＴＡＳＫ＿ＣＦＧテーブル３０にアクセスし、ＴＡＳＫ＿ＣＦＧテーブル３０のそれぞれの行のＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８から更新コマンドを取得する（ステップ２１２）。データベースの更新コマンドは、それぞれのＤＢＭＳと関連した１以上のデータベース命令文を含む。データベースの更新コマンドが単一のデータベース命令文を含む場合には、ＳＹＮＣＭＯＤＥフィールド３４は、「０」の値を有してよい。データベースの更新コマンドが多数のデータベース命令文を含む場合には、ＳＹＮＣＭＯＤＥフィールド３４は、「１」の値を有してよい。次いで、テーブル・シンクロナイザ２２は、副連合テーブル６８を使用してデータベース命令文を副テーブル２６に適用し、主データベース１６において主テーブル２４の新たな行２８からデータをレプリケートする新たな行７０を作成する。次いで、テーブル・シンクロナイザ２２は、引き続きレプリケーションタスクを繰り返さないようにＳＹＮＣＴＡＳＫＩＤとＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４から取得されたそれぞれのレプリケーションタスクと関連したＬＡＳＴＳＩＧとを備えたＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣテーブル６２に新たな行を挿入する（ステップ２１４）。次いで、テーブル・シンクロナイザ２２は、一定の期間の後、副連合テーブル６８を取り除いてもよい。
【００３３】
他の実施形態では、ＳＹＮＣＭＯＤＥフィールド３４は「２」の値を有し、これは、テーブル・シンクロナイザ２２が主テーブル２４のテーブルスキーマに基づき第２のコマンドを生成することの表示である。このような実施形態では、テーブル・シンクロナイザ２２は、主データベース１６のスキーマを問い合わせし、主テーブル２４及び副テーブル２６を定めるテーブルスキーマを確認する。テーブル・シンクロナイザ２２は、挿入、更新、及び削除のＳＱＬ命令文を生成し、これらの命令文は、副連合テーブル６８に対して各フィールド上で結合を実行する。挿入のＳＱＬ命令文は、副テーブル２６中には事前にはなかった新たな行を、主テーブル２４から副テーブル２６に加える。更新のＳＱＬ命令文は、主テーブル２４からの同じ行のデータに基づき副テーブル２６の任意の行を更新する。削除のＳＱＬ命令文は、主テーブル２４中に存在しない行を副テーブル２６から取り除く。
【００３４】
図５は、本発明の他の実施形態によるアプリケーション２０によって実行される典型的なレプリケーションタスクの典型的なデータを説明するブロック図である。ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０、ＴＡＳＫ＿ＣＦＧテーブル３０、ＦＥＤ＿ＴＡＢＬＥ＿ＣＦＧテーブル４６、ＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４、及びＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣテーブル６２は、図２を参照して論じられたものと同一のフィールドを収容する。しかしながら、図５には、説明のため、実際の見本データが示されている。それぞれのテーブルの各行には、それぞれのテーブルの後にアルファベット文字を付したのと同じ参照符号が記載されている。たとえば、ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０は、３つの行４０Ａ，４０Ｂ，４０Ｃを収容する。ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０の各行は、ここで論じられているように、特定の値を収容するＳＹＮＣＴＡＳＫＩＤフィールド４２と、特定の値を収容するＳＹＮＣＴＡＳＫＩＤフィールド４４とを備える。フィールド内のデータは、ここでは、それぞれのフィールドの名称で呼ばれる。アプリケーション２０が、ＳＹＮＣＴＡＳＫＩＤが「１０１」に等しいレプリケーションタスクでちょうど終了したものと仮定する。アプリケーション２０は、行３０ＡをＴＡＳＫ＿ＣＦＧテーブル３０に記憶し、そこでは、ＳＹＮＣＴＡＳＫＩＤは「１０１」に等しく、ＳＹＮＣＭＯＤＥは「０」に等しく、ＳＹＮＣＦＩＧは「１」に等しく、ＳＹＮＣＳＱＬＳＴＭＴＳは、テーブル・シンクロナイザ２２が副テーブル２６に適用してレプリケーションタスクを実行するＳＱＬ命令文を収容する。アプリケーション２０はまた、同じＳＹＮＣＴＡＳＫＩＤを収容し、主テーブルが「８２８２」に等しいＳＹＮＣＴＡＢＬＥＩＤを参照するＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０に、行４０Ａを挿入した。アプリケーション２０は、同じＳＹＮＣＴＡＳＫＩＤ及び「６２」に等しいＬＡＳＴＳＩＧを収容するＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４に、行５４Ａを挿入した。行５４Ａは、「０」に等しいＳＹＮＣＯＲＤＥＲを収容し、これは、このレプリケーションタスクの順序が他のレプリケーションタスクの順序と無関係であることを表示する。アプリケーション２０がレプリケーションタスクの終了時点でテーブル・シンクロナイザ２２に通知するものと仮定する。テーブル・シンクロナイザ２２は、主データベース１６のＴＡＳＫ＿ＬＡＳＴ＿ＵＰＤＡＴＥテーブル５４から行５４Ａ、５４Ｂを読み込む。テーブル・シンクロナイザ２２は、行５４Ａ、５４Ｂの各々からのＬＡＳＴＳＩＧを、副データベース１８のＴＡＳＫ＿ＬＡＳＴ＿ＳＹＮＣテーブル６２の行６２Ａ、６２ＢからのＬＡＳＴＳＩＧと比較する。テーブル・シンクロナイザ２２は、行６２ＡのＬＡＳＴＳＩＧが行５４ＡのＬＡＳＴＳＩＧと合致しないことを確認する。テーブル・シンクロナイザ２２は、「１０１」のＳＹＮＣＴＡＳＫＩＤ値を使用して、ＴＡＳＫ＿ＦＥＤ＿ＡＳＳＯＣテーブル４０を読み込み、同一のＳＹＮＣＴＡＳＫＩＤ値「１０１」を収容する行４０Ａを取得する。テーブル・シンクロナイザ２２は、行４０ＡのＳＹＮＣＴＡＢＬＥＩＤが「８２８２」に等しいことを確認する。テーブル・シンクロナイザ２２は、行４６ＣからのＳＹＮＣＴＡＢＬＥＩＤを使用して、ＦＥＤ＿ＴＡＢＬＥ＿ＣＦＧテーブル４６から行４６Ｃを取得する。行４６Ｃは、ＳＹＮＣＴＡＢＬＥＮＡＭＥフィールド５０に収容されるテーブル名称が「ＯＭ＿ＣＦＧ」であり、ＳＹＮＣＤＢＮＡＭＥフィールド５２のデータベース名称が「ＥＭＰＬＡＴＣＯＲＥ」に等しいことを表示する。テーブル・シンクロナイザ２２は、「ＯＭ＿ＣＦＧ＿ＦＥＤ」と名付けられた副連合テーブル６８を副データベース１８上に生成する。テーブル・シンクロナイザ２２が、レプリケーションタスクにおいて更新され、サフィックス「＿ＦＥＤ」が付された主テーブル２４の名称に基づき、連合データベーステーブルを生成したことに留意されたい。副データベース１８に適用してそれぞれのレプリケーションタスクを実行するＴＡＳＫ＿ＣＦＧテーブル３０のＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８に記憶された更新コマンドに対するものと同じ名称規則を主サーバ１０が使用する限り、副連合テーブル６８を生成するのに、任意の適当な名称規則を使用することができる。
【００３５】
副連合テーブル６８は、主データベース１６の主テーブル２４に連結される。副連合テーブル６８は、副連合テーブル６８を参照する副データベース１８に適用されるＳＱＬ命令文が、主テーブル２４全体を副データベース１８にコピーせずに、副連合テーブル６８と主テーブル２４との連合した連結によって主テーブル２４にアクセスするという点で、主テーブル２４の副データベース１８から主サーバ１０上に、仮想的なビューを実質的に提供する。テーブル・シンクロナイザ２２は、ＴＡＳＫ＿ＣＦＧテーブル３０にアクセスし、「１０１」に等しいＳＹＮＣＴＡＳＫＩＤ値を使用して、ＴＡＳＫ＿ＣＦＧテーブル３０から行３０Ａを取得する。ＳＹＮＣＭＯＤＥフィールド３４における「０」の値は、更新コマンドが単一のデータベース命令文であることを表示する。ＳＹＮＣＦＩＧフィールド３６における「１」の値は、このタスクが副サーバ１２上でレプリケートされるべきであることを表示する。テーブル・シンクロナイザ２２は、図５に示されるように「更新」ＳＱＬ命令文である特定のデータベース命令文をＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８から得て、そこで、ＯＭ＿ＣＦＧ副テーブル２６の「ＩＮＤ」フィールドが主テーブル２４の「ＩＮＤ」フィールドに等しい場合には、「ＯＭ＿ＣＦＧ」副テーブル２６の「ＣＦＧ」フィールドは、主テーブル２４からの「ＣＦＧ」フィールドの値に設定される。ＳＹＮＣＳＱＬＳＴＭＴＳフィールド３８に収容された「更新」命令文が副連合テーブル６８を参照することに留意されたい。副連合テーブル６８の使用は、通常のＳＱＬ命令文が副サーバ１２上でレプリケーションタスクを実行するのに使用されることを可能にする。図５に説明されたテーブルの各々が、ＳＹＮＣＴＡＳＫＩＤの値が「６５３」に等しい第２レプリケーションタスクが主データベース１６上と副データベース１８上の両方で事前に実行されたこと、及びこのようなレプリケーションタスクが多数の主テーブル２４と多数のＳＱＬ命令文を伴うことを反映していることにも留意されたい。
【００３６】
図６は、本発明の一の実施形態による副サーバ１２のブロック図である。副サーバ１２は、ここに記載されるようなテーブル・シンクロナイザ２２の機能を実施するのに適したソフトウェア８４が記憶されたメモリ８２を収容する制御システム８０を備える。副サーバ１２は、適宜、ネットワーク１４又は副データベース１８とインターフェース接続するための通信インターフェース８６を備える。ここでは図示されていないが、主サーバ１０のブロック図は、副サーバ１２のブロック図と同様のものでもよく、そこでは、メモリの関連したソフトウェアは、アプリケーション２０に関して記載された機能を実施するのに適しているであろう。
【００３７】
当業者は、本発明の好ましい実施形態に対する改良及び修正を認識するであろう。このような改良及び修正はすべて、本明細書に開示された概念及び以下の特許請求の範囲の範囲内であるとみなされる。
【図１】
0005514834.tif 000002
【図２】
0005514834.tif 000003
【図３】
0005514834.tif 000004
【図４】
0005514834.tif 000005
【図５】
0005514834.tif 000006
【図６】
0005514834.tif 000007