(57)【要約】ネットワークで遠隔データベース210を更新する方法およびシステムである。ローカルデータベース200に対するインクリメント変化に基づいた複数の周期的な更新が発生される。各周期的な更新は少なくとも１つのトランザクションを含んでいる。開始時間におけるローカルデータベースのバージョンを含んでいる初期化送信ファイルと呼ばれる初期化更新が発生される。さらに、開始時間前に発生された最新の周期的な更新に関連される識別子と、開始時間前に与えられた最新のトランザクションに関連される識別子が発生される。
2005510782.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで遠隔データベースを更新する方法において、
ローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を発生し、複数の周期的な更新はそれぞれ少なくとも１つのトランザクションを有し、
ネットワークで遠隔データベースへ複数の周期的な更新を送信し、
複数の周期的な更新を発生しながら、
開始時におけるローカルデータベースのバージョンを含んでいる初期化更新を発生し、
開始時間に基づいて複数の周期的な更新の最新の周期的更新を決定し、
開始時間に基づいて最新のトランザクションを決定し、
初期化更新、最新の周期的な更新識別子、最新のトランザクション識別子をネットワークで遠隔データベースへ送信するステップを含んでいる方法。
【請求項２】
初期化更新の送信は、
最新の周期的な更新識別子を最新の周期的な更新に関連付け、
最新のトランザクション識別子を最新のトランザクションに関連付けるステップを含んでいる請求項１記載の方法。
【請求項３】
複数の周期的な更新は規則的または不規則な間隔で発生される請求項１記載の方法。
【請求項４】
初期化更新発生の開始時間は、周期的な更新発生の開始時間と同じである請求項１記載の方法。
【請求項５】
初期化更新発生の開始時間は、周期的な更新発生の開始時間よりも後である請求項１記載の方法。
【請求項６】
周期的な更新は複数のトランザクションを含んでおり、複数のトランザクションのそれぞれは特有のトランザクション識別子を有している請求項１記載の方法。
【請求項７】
ネットワークで遠隔データベースを更新する方法において、
ネットワークでローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を受信し、複数の周期的な更新はそれぞれ少なくとも１つのトランザクションを有し、
ネットワークで、開始時間におけるローカルデータベースのバージョンを含んでいる初期化更新を受信し、
初期化更新から最新の周期的な更新識別子を読取り、
初期化更新から最新のトランザクション識別子を読取り、
最新の周期的な更新識別子から最新の周期的な更新を決定し、前記最新の周期的な更新の決定は開始時間に基づいており、
最新のトランザクション識別子から最新のトランザクションを決定し、前記最新のトランザクションの決定は開始時間に基づいており、
最新のトランザクションの後に発生されたトランザクションを遠隔データベースへ供給し、
最新の周期的な更新の後に発生された周期的な更新を遠隔データベースへ供給するステップを含んでいる方法。
【請求項８】
さらに、初期化更新の開始時間よりも早期の時間で発生された周期的な更新を廃棄するステップを含んでいる請求項７記載の方法。
【請求項９】
複数の周期的な更新は、規則的な間隔で一度に１つ受信される請求項７記載の方法。
【請求項１０】
複数の周期的な更新は、周期的な間隔でバッチで受信される請求項７記載の方法。
【請求項１１】
周期的な更新は複数のトランザクションを含み、各複数のトランザクションは特有のトランザクション識別子を有している請求項７記載の方法。
【請求項１２】
ネットワークで遠隔データベースを更新する方法において、
ローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を発生し、複数の周期的な更新はそれぞれ少なくとも１つのトランザクションを有し、
開始時間におけるローカルデータベースのバージョンを含んでいる初期化更新と、開始時間前に発生された最新の周期的な更新に関連する更新識別子と、開始時間前に与えられた最新のトランザクションに関連するトランザクション識別子とを発生するステップを含んでいる方法。
【請求項１３】
複数の周期的な更新は規則的な間隔で発生される請求項１２記載の方法。
【請求項１４】
複数の周期的な更新は不規則な間隔で発生される請求項１２記載の方法。
【請求項１５】
初期化更新の発生の開始時間は周期的な更新発生の開始時間と同じである請求項１２記載の方法。
【請求項１６】
初期化更新の発生の開始時間は周期的な更新発生の開始時間よりも後である請求項１２記載の方法。
【請求項１７】
ネットワークで遠隔データベースを更新するシステムにおいて、
ネットワークに結合されている少なくとも１つのプロセッサと、
そのプロセッサに結合され、ローカルデータベースと、ネットワークで遠隔データベースを更新する方法を行うようにプロセッサにより実行されるように適合された命令とを含んでいるメモリとを具備し、前記更新する方法は、
ローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を発生し、複数の周期的な更新はそれぞれ少なくとも１つのトランザクションを有し、
ネットワークで遠隔データベースへ複数の周期的な更新を送信し、
複数の周期的な更新を発生しながら、
開始時におけるローカルデータベースのバージョンを含んでいる初期化更新を発生し、
開始時間に基づいて複数の周期的な更新の最新の周期的更新を決定し、
開始時間に基づいて最新のトランザクションを決定し、
初期化更新、最新の周期的な更新識別子、最新のトランザクション識別子をネットワークで遠隔データベースへ送信するステップを含んでいるシステム。
【請求項１８】
初期化更新の送信は、
最新の周期的な更新識別子を最新の周期的な更新に関連付け、
最新のトランザクション識別子を最新のトランザクションに関連付ける請求項１７記載のシステム。
【請求項１９】
複数の周期的な更新は規則的または不規則な間隔で発生される請求項１７記載のシステム。
【請求項２０】
初期化更新発生の開始時間は、周期的な更新発生の開始時間と同じである請求項１７記載のシステム。
【請求項２１】
初期化更新発生の開始時間は、周期的な更新発生の開始時間よりも後である請求項１７記載のシステム。
【請求項２２】
周期的な更新は複数のトランザクションを含んでおり、複数のトランザクションのそれぞれは特有のトランザクション識別子を有している請求項１７記載のシステム。
【請求項２３】
ネットワークで遠隔データベースを更新するシステムにおいて、
ネットワークに結合される少なくとも１つのプロセッサと、
プロセッサに結合され、遠隔データベースと、ネットワークで遠隔データベースを更新する方法を行うようにプロセッサにより実行されるように適合された命令とを含んでいるメモリとを具備し、その更新方法は、
ネットワークでローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を受信し、複数の周期的な更新はそれぞれ少なくとも１つのトランザクションを有し、
ネットワークで、開始時間におけるローカルデータベースのバージョンを含んでいる初期化更新を受信し、
初期化更新から最新の周期的な更新識別子を読取り、
初期化更新から最新のトランザクション識別子を読取り、
最新の周期的な更新識別子から最新の周期的な更新を決定し、その最新の周期的な更新は開始時間に基づいており、
最新のトランザクション識別子から最新のトランザクションを決定し、その最新のトランザクションは開始時間に基づいており、
最新のトランザクションの後に発生されたトランザクションを遠隔データベースへ供給し、
最新の周期的な更新の後に発生された周期的な更新を遠隔データベースへ供給するステップを含んでいるシステム。
【請求項２４】
さらに、初期化更新の開始時間よりも早期の時間で発生された周期的な更新を廃棄する請求項２３記載のシステム。
【請求項２５】
複数の周期的な更新は、規則的または不規則の間隔で、一度に１つ受信される請求項２３記載のシステム。
【請求項２６】
複数の周期的な更新は、規則的または不規則の間隔で、バッチで受信される請求項２３記載のシステム。
【請求項２７】
周期的な更新は複数のトランザクションを含み、複数のトランザクションのそれぞれは特有のトランザクション識別子を有し、トランザクション識別子はランダムな順序である請求項２３記載のシステム。
【請求項２８】
ネットワークで遠隔データベースを更新する方法をプロセッサにより実行させるように適合されたプログラム命令を含んでいるマシーンの読取り可能な媒体において、この方法は、
ローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を発生し、複数の周期的な更新はそれぞれ少なくとも１つのトランザクションを有し、
ネットワークで遠隔データベースへ複数の周期的な更新を送信し、
複数の周期的な更新を発生しながら、
開始時におけるローカルデータベースのバージョンを含んでいる初期化更新を発生し、
開始時間に基づいて複数の周期的な更新の最新の周期的更新を決定し、
開始時間に基づいて最新のトランザクションを決定し、
最新の周期的な更新識別子を最新の周期的な更新に関連付け、
最新のトランザクション識別子を最新のトランザクションに関連付け、
初期化更新、最新の周期的な更新識別子、最新のトランザクション識別子をネットワークで遠隔データベースへ送信するステップを含んでいるマシーンの読取り可能な媒体。
【請求項２９】
ネットワークで遠隔データベースを更新する方法をプロセッサにより実行させるように適合されたプログラム命令を含んでいるマシーンの読取り可能な媒体において、この方法は、
ネットワークでローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を受信し、複数の周期的な更新はそれぞれ少なくとも１つのトランザクションを有し、
ネットワークで、開始時におけるローカルデータベースのバージョンを含んでいる初期化更新を受信し、
初期化更新から最新の周期的な更新識別子を読取り、
初期化更新から最新のトランザクション識別子を読取り、
最新の周期的な更新識別子から最新の周期的な更新を決定し、その最新の周期的な更新は開始時間に基づいており、
最新のトランザクション識別子から最新のトランザクションを決定し、その最新のトランザクションは開始時間に基づいており、
最新のトランザクションの後に発生されたトランザクションを遠隔データベースへ供給し、
最新の周期的な更新の後に発生された周期的な更新を遠隔データベースへ供給するステップを含んでいるマシーンの読取り可能な媒体。
【請求項３０】
ネットワークで遠隔データベースを更新する方法において、
ローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を発生し、複数の周期的な更新はそれぞれ少なくとも１つのトランザクションを有し、
開始時におけるローカルデータベースのバージョンを含んでいる初期化更新を発生し、
初期化更新を周期的な更新に関連付け、更新識別子を開始時間前に発生された最新の周期的な更新に関連付け、トランザクション識別子を開始時間前に与えられた最新のトランザクションに関連付けるステップを含んでいる方法。
【請求項３１】
周期的な更新はドメインネームサーバへの更新を含んでいる請求項３０記載の方法。
【請求項３２】
更新識別子はドメインネームサーバへの最新の周期的な更新に関連されている請求項３０記載の方法。
【請求項３３】
トランザクション識別子はドメインネームサーバへ与えられた最新のトランザクションに関連される請求項３０記載の方法。
【請求項３４】
ローカルデータベースに対するインクリメント変化に基づいてそれぞれ少なくとも１つのトランザクションを有する複数の周期的な更新を発生する手段と、
開始時におけるローカルデータベースのバージョンを含んでいる初期化更新を発生し、更新識別子を開始時間前に発生された最新の周期的な更新に関連付け、トランザクション識別子を開始時間前に与えられた最新のトランザクションに関連付ける手段とを含んでいる更新発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はコンピュータデータベースに関し、特に確実にデータベースを更新する方法およびシステムに関する。
【背景技術】
【０００２】
この非暫定出願は、全体を参考文献としている2001年11月１日出願の米国特許暫定出願第60/330,842号明細書と、全体を参考文献としている2002年３月19日出願の米国特許暫定出願第60/365,169号明細書の利点を主張している。
【０００３】
データベースのサイズの増加と高い分配性により、ネットワーク中の関連するデータベースがデータの同一のバージョンを含んでいることを確認することが非常に困難になっている。１つのデータベースに対して大きな変化が存在するならば、他のデータベースは可能な限りこれらの変更を含むように更新される必要がある。これらの更新を行うことは更新する多量のデータ量を多数のデータベースへ頻繁に移動することを含んでいる。このようなプロセスの潜在的な複雑性は膨大なものである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この問題は、通信が確実ではないシステムではさらに大きくなる。この場合、データは転送中に失われる可能性がある。このような結果、データは再度送信され、他のデータベースは再度全て更新されなければならない。このような反復はシステムの効率と、データベースが更新データを含む程度を著しく減少させる。
【課題を解決するための手段】
【０００５】
本発明の実施形態はネットワークによって遠隔データベースを確実に更新する方法およびシステムを提供する。実施形態では、ローカルデータベースに対するインクリメント的な変化に基づいて複数の周期的更新（以後、“送信ファイル”という）が行われる。各周期的更新は少なくとも１つのトランザクションを含んでいる。開示時間のローカルデータベースのバージョンを含んでいる初期化更新（以後“送信ファイルの初期化”）が行われる。さらに、開始時間前に行われる最新の周期的な更新に関連する識別子と、開始時間前に行われた最新のトランザクションに関連する識別子が発生される。実施形態は有効に、遠隔データベースを確実に更新するため、送信ファイルの結合解除と、送信ファイルの初期化を行う。
【発明を実施するための最良の形態】
【０００６】
図１は、本発明の１実施形態にしたがったシステムを示すブロック図である。一般的に、システム100は大きいメモリに内在するデータベースをホストし、サーチリクエストを受信し、サーチ応答をネットワークで提供する。例えばシステム100は例えばニューヨーク、ArmonkのInternational Business Machines社により製造されたIBM RS/6000(R) M80またはS80および、カリフォルニア、サンタクララのSun Microsystems社により製造されているSun Enterprise（商標名）1000のような対称的な多処理（ＳＭＰ）コンピュータであってもよい。システム100はまた例えばカリフォルニア、Palo AltoのHewlett-Packard Companyによる製造の（２つのIntel Pentium(R) III 866 MHzプロセッサを含む）Compaq ProLiant（商標名）ML530のようなマルチプロセッサパーソナルコンピュータであってもよい。システム100は例えばIBM AIX(R) 4、Sun Solaris（商標名）8 Operating Environment、Red Hat Linux(R) 6.2等のような多処理オペレーティングシステムを含んでもよい。システム100はネットワーク124で定期的な更新を受信し、それは同時にデータベースに含まれる。本発明の実施形態はデータベースのロックまたはアクセス制御を使用せずにデータベースに各更新を含ませることによって非常に高いデータベース検索および更新を実現することができる。
【０００７】
１実施形態では、システム100はバス101に結合されている少なくとも１つのプロセッサ102-1を含んでいる。プロセッサ102-1は内部メモリキャッシュ（例えば明白には示さないがＬ１キャッシュ）を含んでいてもよい。二次メモリキャッシュ103-1（例えばＬ２キャッシュ、Ｌ２／Ｌ３キャッシュ等）はプロセッサ102-1とバス101との間に存在する。好ましい実施形態では、システム100はバス101に結合された複数のプロセッサ102-1…102-Pを含んでもよい。複数の二次メモリキャッシュ103-1…103-Pもまた複数のプロセッサ102-1…102-Pとバス101（例えばルックスルーアーキテクチャ）の間に存在し、またはその代わりに少なくとも１つの二次メモリキャッシュ103-1はバス101（例えばルックアサイドアーキテクチャ）に結合されている。システム100は複数のプロセッサ102-1…102-Pにより実行される情報および命令を記録するために例えばバス101に結合されたランダムアクセスメモリ（ＲＡＭ）等のようなメモリ104を含んでいる。
【０００８】
メモリ104は例えばインターネットドメイン名をインターネットアドレスに変換し、名称または電話番号をネットワークアドレスへ変換し、加入者プロフィールデータを提供し更新し、ユーザの現在のデータを提供し更新するための大きいデータベースを記憶している。データベースのサイズと、毎秒のトランザクション数の両者は非常に大きいと有効である。例えばメモリ104はＲＡＭにおいて少なくとも６４ＧＢを含み、５００Ｍ（即ち５００×１０６）記録ドメイン名データベース、５００Ｍ記録加入者データベース、４５０Ｍ記録電話番号ポータブルデータベース等を含んでいる。
【０００９】
例えば少なくとも６４ビットバス101と６４ビットメモリ104に結合されている少なくとも１つの６４ビットのビッグエンディアンプロセッサ102-1を含んでいる例示的な６４ビットシステムアーキテクチャでは、８バイトポインタ値は単一の割り込み可能ではない動作を使用して８バイト境界のメモリアドレス（即ち８または例えば８Ｎにより分割可能なメモリアドレス）に書き込まれる。通常、二次メモリキャッシュ103-1の存在は単にメモリ104への８バイトポインタの書込みを遅延する。例えば１実施形態では、二次メモリキャッシュ103-1はライトスルーモードで動作するルックスルーキャッシュであり、それによって単一の８バイトの記憶命令は割込みなしに、２程度の少数のシステムのクロックサイクルでプロセッサ102-1からメモリ104へデータの８バイトを移動する。別の実施形態では、二次メモリキャッシュ103-1はライトバックモードで動作するルックスルーキャッシュであり、それによって８バイトのポインタが最初に二次メモリキャッシュ103-1に書き込まれ、これはその後、例えば８バイトのポインタが記憶されるキャッシュラインがメモリ104に書き込まれるとき（即ち例えば特定のキャッシュラインまたは二次メモリキャッシュ全体が“フラッシュ”されるとき）のような後の時間に８バイトポインタをメモリ104へ書き込む。
【００１０】
最終的に、プロセッサ102-1の図から、データが一度プロセッサ102-1の出力ピンにラッチされると、データの全ての８バイトは１つの隣接する割込みされない転送でメモリ104に書き込まれ、これは存在するならば二次メモリキャッシュ103-1の効果により遅延される。プロセッサ102-2…102-Pの図から、一度データがプロセッサ102-1の出力ピンにラッチされると、データの全ての８バイトは１つの隣接する割込みされない転送でメモリ104に書き込まれ、これは二次メモリキャッシュ103-1…103Pを横切ってキャッシュのコヒーレンシープロトコルにより強化され、存在するならばメモリ104への書き込みを遅延する。
【００１１】
しかしながら、８バイトポインタ値は８バイト境界を横切るメモリアドレスのようなメモリ104中の誤整列された位置に書き込まれるならば、データの全ての８バイトは単一の８バイト記憶命令を使用してプロセッサ102-1から転送されることができない。その代わりにプロセッサ102-1は２つの別々の異なる記憶命令を発生する可能性がある。例えばメモリアドレスが８バイト境界前の４バイトで開始するならば（例えば８Ｎ―４）、第１の記憶命令は４つの上位桁バイトをメモリ104へ転送し（例えば８Ｎ―４）、第２の記憶命令は４つの最小桁バイトをメモリ104へ転送する（例えば８Ｎ）。重要なことは、これらの２つの別々の記憶命令間では、プロセッサ102-1は割込みされず、またはプロセッサ102-1は別のシステムコンポーネント（例えばプロセッサ102-P等）へのバス101の制御を失う可能性がある。結果として、メモリ104に位置するポインタ値はプロセッサ102-1が第２の記憶命令を完了できるまで、無効である。別のコンポーネントがこのメモリ位置への単一の割込み可能ではないメモリ読取りを開始するならば、無効な値は恐らく有効値１として戻される。
【００１２】
同様に、新しい４バイトポインタ値は単一の割込み可能ではない動作を使用して４（例えば４Ｎ）により分割可能なメモリアドレスへ書き込まれる。前述の例では、４バイトポインタ値は単一の記憶命令を使用して８Ｎ−４メモリ位置に書き込まれることに注意する。勿論、４バイトポインタ値が４バイト境界を横切る位置、例えば４Ｎ−２へ書き込まれるならば、データの全ての４バイトは単一の記憶命令を使用してプロセッサ102-1から転送されることができず、メモリ104に存在するポインタ値は幾らかの時間期間で無効である。
【００１３】
システム100はまたプロセッサ102-1に対する静的情報および命令を記憶するためバス101に結合された読取り専用メモリ（ＲＯＭ）106、または他の静的記憶装置を含んでいる。磁気または光ディスクのような記憶装置108は情報および命令を記憶するためバス101に結合されている。システム100はまたバス101に結合されているディスプレイ110（例えばＬＣＤモニタ）および入力装置112（例えばキーボード、マウス、トラックボール等）を含んでいる。システム100は複数のネットワークインターフェース114-1…114-Qを含んでおり、これは種々のタイプの情報を表すデジタルデータストリームを有する電気、電磁または光信号を送信し受信する。１実施形態では、ネットワークインターフェース114-1はバス101と構内網（ＬＡＮ）122に結合され、一方、ネットワークインターフェース114-Oはバス101と広域網（ＷＡＮ）124に結合されている。複数のネットワークインターフェース114-1…114-Oは例えばギガビットイーサネット（Ｒ）（例えば2002年出版のＩＥＥＥ標準802.3-2002）、ファイバチャンネル（例えば1994年出版のＡＮＳＩ標準X.3230-1994）等を含んでいる種々のネットワークプロトコルをサポートする。複数のネットワークコンピュータ120-1…120-NはＬＡＮ122とＷＡＮ124に結合されている。１実施形態ではＬＡＮ122とＷＡＮ124は物理的に異なったネットワークでもよく、一方別の実施形態ではＬＡＮ122とＷＡＮ124はネットワークゲートウェイまたはルータ（明白には示さない）を介している。代わりに、ＬＡＮ122とＷＡＮ124は同一のネットワークであってもよい。
【００１４】
前述したように、システム100はＤＮＳ解決サービスを提供してもよい。ＤＮＳ解決実施形態では、ＤＮＳ解決サービスは通常ネットワーク転送とルックアップ機能との間で分割されている。例えばシステム100は大きいデータセットのデータルックアップに最適化されているバックエンドルックアップエンジン（ＬＵＥ）であり、一方複数のネットワークコンピュータ120-1…120Nはネットワーク処理と転送に最適化された複数のフロントエンドプロトコルエンジン（ＰＥ）である。ＬＵＥは高速度で高スループットのサーチおよび更新を促すためメモリ104中にＤＳＮ記録セット全体を記憶する強力なマルチプロセッササーバである。代わりの実施形態では、ＤＳＮ解決サービスは一連の強力なマイクロプロセッササーバまたはＬＵＥにより提供され、それぞれ高速度で高スループットのサーチおよび更新を促すためにメモリにＤＳＮ記録セット全体のサブセットを記憶する。
【００１５】
反対に、複数のＰＥは一般的な低プロフィールでＰＣベースの効率的にマルチタスクオペレーティングシステムを動作するマシーン（例えばRed Hat Linus (R) 6.2）であり、ＤＳＮ解決のために利用可能なリソースを最大にするためにＬＵＥにおけるネットワーク処理転送ロードを最少にする。ＰＥはワイヤラインＤＳＮプロトコルのニュアンスを管理し、ＬＡＮ122によってＬＵＥに対する無効なＤＮＳの問い合わせと多重の有効なＤＮＳの問い合わせに応答する。ＤＮＳ記録サブセットを記憶する多数のＬＵＥを含む代わりの実施形態では、ＰＥは適切なＬＵＥに対する各有効なＤＳＮ問い合わせと多重の有効なＤＳＮ問い合わせを受信するＬＵＥを決定する。単一のＬＵＥに対するＰＥ数は、例えば毎秒処理されるＤＳＮ問い合わせ数と、特定のシステムの性能特性によって決定される。他の計算も適切なマッピング比および動作態様の決定に使用されてもよい。
【００１６】
通常、例えば電話機番号の解決、ＳＳ７シグナリング処理、地上位置決定、電話番号と加入者のマッピング、加入者位置、存在決定等を含む他の大容量の問い合わせベースの実施形態がサポートされる。
【００１７】
１実施形態では、中央オンライントランザクション処理（ＯＬＴＰ）サーバ140-1はＷＡＮ124に結合され、データベース142-1に対する付加、変更および消去（即ち更新トラフィック）を種々のソースから受信する。データベース142-1のローカルコピーを含んでいるＯＬＴＰサーバ140-1はＷＡＮ124によってシステム100へ更新を送信する。ＯＬＴＰサーバ140-1はHyper Text Transmission Protocol (HTTP)、Registry Registrar Protocol (RRP)、Extensible Provisioning Protocol (EPP)、Service Management System/800 Mechanized Generic Interface (MGI)およびその他のオンライン規定プロトコルを含む種々のフォーマットおよびプロトコルでの更新トラフィックの処理に最適化されている。読取り専用ＬＵＥのコンステレーションはＯＬＴＰサーバ140-1からの高容量のインクリメント更新と結合する高速度サーチ能力を提供するためにハブおよびスポークアーキテクチャに配備される。
【００１８】
代わりの実施形態では、データは多数のＯＬＴＰサーバ140-1…140-Sにわたって分配され、それぞれＷＡＮ124に結合される。ＯＬＴＰサーバ140-1…140-Sは種々のソースからそれらのそれぞれのデータベース142-1…142-S（明白には図示せず）に対する付加、変更、消去（即ち更新トラフィック）を受信する。データベース142-1…142-Sのコピーと他のダイナミックに生成されたデータ等を含んでもよいＯＬＴＰサーバ140-1…140-SはＷＡＮ124によってシステム100へ更新を送信する。例えば、地上位置の実施形態では、ＯＬＴＰサーバ140-1…140-Sは遠隔センサのグループから更新トラフィックを受信する。別の代わりの実施形態では、複数のネットワークコンピュータ120-1…120-NもまたＷＡＮ124またはＬＡＮ122にわたって種々のソースから付加、変更、消去（即ち更新トラフィック）を受信する。この実施形態では、複数のネットワークコンピュータ120-1…120-Nは問い合わせと同様に更新をシステム100へ送信する。
【００１９】
ＤＮＳ解決実施形態では、各ＰＥ（例えば複数のネットワークコンピュータ120-1…120-N）は広域網（例えばＷＡＮ124）で受信された幾つかのＤＮＳ問い合わせメッセージを単一のリクエストスーパーパケットへ結合または多重化し、リクエストスーパーパケットを構内網（例えばＬＡＮ122）でＬＵＥ（例えばシステム100）ヘ送信する。ＬＵＥは幾つかのＤＮＳ問い合わせメッセージ応答を単一の応答スーパーパケットへ結合または多重化し、応答スーパーパケットを構内網で適切なＰＥヘ送信する。通常、リクエストまたは応答スーパーパケットの最大のサイズは物理的なネットワーク層の最大の送信単位ＭＴＵ（例えばギガビットイーサネット（Ｒ））により限定される。例えば１００バイトまたは２００バイトよりも小さい典型的なＤＮＳ問い合わせおよび応答メッセージのサイズはそれぞれ３０を超える問い合わせが単一のリクエストスーパーパケットへ多重化されることを可能にし、１５を超える応答が単一の応答スーパーパケットに多重化されることを可能にする。しかしながら、さらに少数の問い合わせ（例えば２０の問い合わせ）が応答（例えば１０応答）のＭＴＵオーバーフローを避けるために単一のリクエストスーパーパケットに含まれる。さらに大きいＭＴＵサイズでは、多重化された問い合わせおよび応答数はしたがって増加されてもよい。
【００２０】
各マルチタスクＰＥはそれぞれＤＮＳ問い合わせおよび応答を管理するため、インバウンドスレッドとアウトバウンドスレッドを含んでいる。例えばインバウンドスレッドは広域網で受信された入来するＤＮＳ問い合わせパケットからＤＮＳ問い合わせコンポーネントの整列を解除し、問合せの数ミリ秒を単一のリクエストスーパーパケットへ多重化する。インバウンドスレッドはその後、構内網によってリクエストスーパーパケットをＬＵＥへ送信する。反対に、アウトバウンドスレッドはＬＵＥから応答スーパーパケットを受信し、そこに含まれる応答をデマルチプレクスし、種々のフィールドを有効なＤＮＳ応答へ整列し、これはその後、広域網で送信される。一般に、前述するように、他の大容量の問い合わせベースの実施形態がサポートされる。
【００２１】
１実施形態では、リクエストスーパーパケットはまた例えばソースアドレス、プロトコルタイプ等のような各ＤＮＳ問い合わせに関連する状態情報を含んでいる。ＬＵＥは状態情報と、関連されるＤＮＳ応答を応答スーパーパケット内に含んでいる。各ＰＥはその後、ＬＵＥから送信された情報を使用して有効なＤＮＳ応答メッセージを構成し戻す。結果として、各ＰＥは状態のないマシーンとして有効に動作し、即ち有効なＤＮＳ応答は応答スーパーパケットに含まれる情報から形成される。通常、ＬＵＥは入来するスーパーパケットが発生されたＰＥへ応答スーパーパケットを戻し、他の変更が可能であることは明らかである。
【００２２】
別の実施形態では、各ＰＥは各ＤＮＳ問い合わせに関連する状態情報を維持し、リクエストスーパーパケット内の状態情報に対する基準を含み、または処理する。ＬＵＥは状態情報の基準と、関連するＤＮＳ応答を応答スーパーパケット内に含んでいる。各ＰＥはその後、ＬＵＥから送信される状態情報の基準と、そこに維持された状態情報を使用して有効なＤＮＳ応答メッセージを構成し戻す。この実施形態では、ＬＵＥは入来するスーパーパケットが発生されたＰＥへ応答スーパーパケットを戻す。
【００２３】
図２は、本発明の１実施形態にしたがったハブおよびスポークアーキテクチャのブロック図である。通常システムは（中央ＯＬＴＰハブ140に含まれていてもよい）ローカルデータベース200と、例えばインターネットまたはＬＡＮ122のような任意の接続機構によりローカルデータベース200に接続されている（ＬＵＥ100に含まれていてもよい）１以上の遠隔データベース210を含んでいる。データベースは更新データを送信し、受信する。
【００２４】
図３を参照すると、本発明の１実施形態で、ローカルデータベース200は遠隔データベース210を更新するために遠隔データベース210へＦ送信ファイル300-1…300-Fと、初期化送信ファイル310を送信する。更新ファイルは、多数の送信ファイル300と１つの送信ファイル300と１つの初期化送信ファイル310、多数の送信ファイル300と１つの初期化送信ファイル310、送信ファイル300単独、または初期化送信ファイル310単独のように、個別にまたはバッチで送信されることができる。
【００２５】
本発明の１実施形態では、プロセッサ104はローカルデータベース200から更新データを含んでいる送信ファイル300および／または初期化送信ファイル310を受信する。システム150は送信ファイル300と初期化送信ファイル310を通信インターフェース118を介して遠隔データベース210で受信する。プロセッサ104はその後、送信ファイル300または初期化送信ファイル310の更新データを遠隔データベース210の対応するデータと比較する。データが遠隔データベース210で異なっているならば、プロセッサ104は送信ファイル300または初期化送信ファイル310を遠隔データベース210へ供給する。したがって遠隔データベース210は結果としてローカルデータベース200中の更新データと一致する更新されたデータを有することができる。
【００２６】
図４は本発明の１実施形態にしたがった送信ファイル300を示している。ファイル300のフィールドは例えばファイル識別子400、ファイル発生時間402、ファイル中のトランザクション数Ｎ404、ファイルの全サイズ406、チェックサムまたは任意のこのようなエラーチェックインジケータ408、（トランザクション識別子を含んでいる）トランザクション410-1…410-Nを含んでいる。これらの送信ファイルフィールドは例示であり、本発明の実施形態の技術的範囲を限定することを目的とするものではない。任意の有効なフィールドは送信ファイル300に含まれることができる。
【００２７】
送信ファイル300は時間における２つのポイント間のローカルデータベース200に対する変更を含んでいる。これらの変更は例えば新しい識別子（即ちデータ記録の識別子）の付加、既存の識別子の消去、識別子に関連する１以上のデータ記録の変更、識別子の名称変更、ｎｏ−ｏｐ等を含んでいる。１以上のこれらの変化は順番に行われ、トランザクションと呼ばれる、送信ファイル300はこれらのトランザクションの特有の識別子を含んでいる。トランザクションはこれらがローカルデータベース200で行われるように送信ファイル300に記録される。さらに１よりも多数の変化を含んでいるトランザクションに対しては、変更はこれらがローカルデータベース200で行われる順序でトランザクション内で記録される。
【００２８】
一般に、トランザクション識別子は任意の順序でトランザクションに割当てられる。即ち、トランザクション識別子は時間にわたって単調に増加する必要はない。例えば、２つの連続的なトランザクションは１０００２が後続する１０００４のトランザクション識別子を有する。したがってトランザクションが発生される順序は現在のファイル300-F中の位置付けまたは先行するファイル300-(F-1)の位置により決定される。通常、トランザクションは、１つの送信ファイルのアプリケーション内で遠隔データベースの更新を十分に完成するため隣接ファイル300の範囲を含めない。これはネットワーク遅延による更新の中断を防止し、これは遠隔データベース210でエラーのあるデータを生じる可能性がある。
【００２９】
図５は、本発明の１実施形態にしたがった初期化送信ファイル310を示している。初期化送信ファイル310のフィールドは例えばファイル識別子500、ファイル発生時間502、ファイル中のトランザクションの数Ｎ504、ファイルの全サイズ506、チェックサムまたは任意のこのようなエラーチェックインジケータ508、ローカルデータベース（データ）全体のコピー516を含んでいる。初期化送信ファイル310はさらに、ファイル310の発生前に発生された最新の送信ファイル300のファイル識別子400であるフィールド510と、ファイル310の発生前にローカルデータベース200へ与えられた最新のトランザクションの識別子であるフィールド512を含んでいる。ローカルおよび遠隔データベース200、210中のデータはデータベース200、210に存在するテーブルに割当てられる。データベース200、210は任意の数のテーブルをサポートする。データベースがテーブルを有するとき、初期化送信ファイル310はテーブルに記録された多数の記録を示す各テーブルのフィールドを含んでいる。例えば、ドメイン名データベースはドメインテーブルとネームサーバテーブルを含んでいる。したがって、初期化送信ファイルは、ドメインテーブル中の多数の記録を示すフィールドおよびネームサーバテーブル中の記録の数を示すフィールドを含むことができる。フィールドは例えばテーブル名、テーブルの記録のインデックスに使用されるキー、テーブル中の記録の数を特定する。さらに、初期化送信ファイル310は初期化送信ファイル310のバージョンを示すフィールド、通常は1.0を含んでいる。これらの初期化送信ファイルフィールドは例示として示されたものであり、本発明の実施形態の技術的範囲を限定する目的ではない。任意の有効なフィールドは初期化送信ファイル310に含まれることができる。
【００３０】
初期化送信ファイル310は例えば前述したように、ローカルデータベース200全体の読取り一致コピーを含んでいる。初期化送信ファイル310はｔｓとｔｆとの間の時間ｔのポイントでローカルデータベース200と一貫するようになり、ここでｔｓは初期化送信ファイル310の発生が開始する時間であり、ｔｆは発生が終了する時間である。このようにして、初期化送信ファイル310で行われる唯一の動作は“付加”動作である。即ち初期化送信ファイル310が発生されるとき、時間ｔにおけるローカルデータベース200全体のコピーは初期化送信ファイル310中に記録される。したがって“付加”動作は初期化送信ファイル310でローカルデータベース200を記録するために行われる。識別子は任意の順番で初期化送信ファイル310に記録されることができる。代わりに、外部の識別子が存在すると、参照されたデータ記録は基準データ記録の前に記録される。
【００３１】
フィールド510、512の追加は、初期化送信ファイル310が発生されながら、初期化転送ファイル310に、発生され遠隔データベース210へ与えられる送信ファイル300の認知を与える。しかしながら、送信ファイル300と初期化送信ファイル310の発生は、発生において他方への依存性がないことに関して相互から分離される。このような構造およびプロセスは送信ファイルの発生と供給が初期化送信ファイル発生が完了されるまで中止される効率の劣る方法を防止する。本発明の１実施形態のように初期化送信ファイル310を発生しながら、送信ファイル300を発生して供給し続けることにより、送信ファイル300の強力なエラーチェックが行われ、同様に遠隔データベース210における制約、例えば特有の制約または外部の識別子の制約の設定が行われる。制約の設定は遠隔データベース210の関連性のあるモデルを侵害するトランザクションを却下することにより遠隔データベース210のデータの完全性を保護する。例えば特有の制約は同一のキーが一度よりも多数回、データベース210に記憶されることを防止する。
【００３２】
図６は本発明の１実施形態にしたがった送信ファイルと初期化送信ファイルの発生の例示的なタイミングチャートである。図６では、送信ファイル300（sf-1乃至s-21）は規則的な時間間隔で発生される。別の実施形態では、送信ファイル300は不規則な時間間隔で発生されてもよい。通常送信ファイルの発生は時間間隔全体を取らない。例えばファイルが５分間の間隔で発生されるならば、ファイルの発生を完了するために５分間全てを取らない。さらに、送信ファイル300が発生されているあいだにローカルデータベース200に変更が生じるならば、これらの変更は次の送信ファイル300で捕捉される。例えば送信ファイルsf-4が１２：０５：００で発生を開始し、１２：０５：０２で完了するならば、１２：０５：００と１２：０５：０２の間で生じたローカルデータベース200に対する変更は送信ファイルsf-5（例えば300-5）で捕捉され、これは１２：０５：００から１２：１０：００の時間期間を捕捉する。
【００３３】
送信ファイル300-5と300-19は図６で示されている。これらのファイルは他のフィールドの中で、ファイル識別子601（sf-5、sf-19）、ファイル発生時間603、トランザクション識別子605（例えば10002）を示している。トランザクション識別子は単調に順序付けされていないことに注意する。前述したように、トランザクション識別子はランダム値を有してもよい。しかしながら、関連されるトランザクション自体はこれらがローカルデータベース200で生じた順序で送信ファイル300に記録される。
【００３４】
初期化送信ファイル310の発生と送信ファイル300の発生は分断されてよいので、初期化送信ファイル310は任意の時間に発生されることができる。例えば初期化送信ファイル310は送信ファイル300の発生前、発生中、発生後に発生されてもよい。図６は第４と第５の送信ファイル（例えばsf-4とsf-5）の間の中点で発生される初期化送信ファイル310を示している。
【００３５】
１実施形態では、初期化送信ファイル310は他のフィールドの中で、ファイル識別子610（isf-1）、初期化送信ファイルの発生前に発生された最新の送信ファイルのファイル識別子615、初期化送信ファイルの発生前に与えられた最新のトランザクションのトランザクション識別子620を含んでいてもよい。この例では、発生された最新の送信ファイルは送信ファイルsf-4であり、与えられた最新のトランザクションはトランザクション10001である。初期化送信ファイル310は１２：０７：２９で発生611を開始する。送信ファイル300-5（sf-5）の最初の半分のトランザクション、即ちトランザクション10002、10005、10001は、初期化送信ファイル310が発生を開始するとき、ローカルデータベース200へ既に与えられている。したがって、初期化送信ファイル310はこれらのトランザクションを認知し、初期化送信ファイル310でこれらのトランザクションを捕捉する。しかしながら、初期化送信ファイル310は初期化送信ファイルの発生の開始後に生じるその後のトランザクション10003と10004を認知することはできない。
【００３６】
初期化送信ファイル310が発生され、送信ファイル300-5で開始する送信ファイルは規則的な間隔で発生され続ける。これらのファイルは遠隔データベース210へ送信され、供給される。
【００３７】
初期化送信ファイル310は１８番目と１９番目の送信ファイル300（sf-18およびsf-19）の発生の中点で、１：１５：２９で発生を完了し、１９番目の送信ファイル300-19の発生に影響しない。
【００３８】
遠隔データベース210で初期化送信ファイル310を受信しロードした後、遠隔データベース210は初期化送信ファイル310の発生前に発生された送信ファイルを考慮しない。これは例えば先の送信ファイル300に記録されたローカルデータベース200に対する全ての変化を含んでいる初期化送信ファイル310のためである。この例では、遠隔データベース210は第１乃至第４の送信ファイル（sf-1乃至sf-4）を考慮する必要はない。これらの送信ファイルsf-1乃至sf-4に記録された変更は初期化送信ファイル310にも記録されることができる。これらの先の送信ファイル（sf-1乃至sf-4）は消去され、または代わりにアーカイブされてもよい。同様に、遠隔データベース210は後に発生される送信ファイル300に含まれた初期化送信ファイル310の発生前に与えられたトランザクションを考慮しない。初期化送信ファイル310は初期化送信ファイル310が発生されるときにこれらのトランザクションを含む。例えば遠隔データベース210はこれらのトランザクションのために送信ファイルsf-5の最初の３つのトランザクション10002、10005、10001を考察する必要はない。sf-5に記録されるこれらのトランザクションはまた初期化送信ファイル310に記録されることができる。これらの与えられたトランザクションは消去されるか、代わりにアーカイブされてもよい。
【００３９】
図７はローカルデータベースの更新ファイルが発生される本発明の１実施形態のフローチャートである。システムは(705で)ローカルデータベースに対するインクリメント変化に基づいて複数の周期的な更新を発生する。各更新は１以上のトランザクションを含んでいる。システムはその後、（710で）周期的な更新を遠隔データベースへ送信する。定期的な更新が発生される一方で、システムは（715で）開始時間で初期化更新を発生し始める。初期化更新はローカルデータベース全体のバージョンを含んでいる。システムは開始時間前に発生される最新の定期的な更新と、開始時間前に与えられる最新のトランザクションを決定することができる。その後、システムは（725で）初期化更新を遠隔データベースへ送信する。初期化更新は発生される最新の定期的な更新に関連される更新識別子と、与えられる最新のトランザクションに関連するトランザクション識別子とを含んでいる。
【００４０】
例えば、ＯＬＴＰ140は（705で）幾つかの規則的または非規則的な時間間隔で送信ファイル300を発生する。ＯＬＴＰ140はその後（710で）、遠隔データベース210へ送信ファイル300を送信する。送信ファイル300が発生されるあいだに、ＯＬＴＰ140は（715で）開始時間611で初期化送信ファイル310を発生し始める。初期化送信ファイル310はローカルデータベース200のコピーを含んでいる。ＯＬＴＰ140はその後、（720で）初期化送信ファイル310の発生のため開始時間611前に発生される最新の送信ファイル300と、初期化送信ファイル310の発生のため開始時間611前に与えられる最新のトランザクションを決定する。ＯＬＴＰ140はその後、（725で）初期化送信ファイル310を遠隔データベース210へ送信する。初期化送信ファイル310は発生された最新の送信ファイル300に関連する送信ファイル識別子615と、与えられた最新のトランザクションに関連するトランザクション識別子620を含んでいる。
【００４１】
図８は遠隔データベースがローカルデータベースから更新ファイルを受信する本発明の１実施形態のフローチャートである。システムは（805で）複数の定期的な更新を受信する。各更新は１以上のトランザクションを含んでいる。定期的な更新は個別にまたはバッチで受信される。システムは（810で）ある時間に、初期化更新を受信する。初期化更新はローカルデータベース全体のバージョンを含んでいる。システムは（815で）最新の定期的な更新識別子と、最新のトランザクション識別子を初期化更新から読取る。システムはその後、（820で）更新識別子に関連する最新の定期的な更新と、トランザクション識別子に関連する最新のトランザクションを決定する。定期的な更新およびトランザクションは初期化更新の発生前にそれぞれ発生され与えられた最新のものである。システムは（825で）対応する定期的な更新の残りの与えられていないトランザクションを遠隔データベースに適用する。システムはその後、（830で）最新の定期的な更新後に発生された残りの定期的な更新を遠隔データベースへ供給する。初期化更新を有効に供給することは任意の先に失われた定期的な更新の埋め合わせをする。
【００４２】
例えば、ＬＵＥ100は（805で）幾つかの定期的または非定期的な時間間隔で送信ファイル300を受信する。送信ファイル300は個別にまたはバッチで受信される。ＬＵＥ100は（810で）ある時間に初期化送信ファイル310を受信する。ＬＵＥ100は（815で）送信ファイル識別子615と、トランザクション識別子620を初期化送信ファイル310から読取る。その後、ＬＵＥ100は（820で）送信ファイル識別子615に関連した送信ファイル300とトランザクション識別子620と関連するトランザクション605を決定する。送信ファイルとトランザクションは初期化送信ファイル310の発生前にそれぞれ発生され与えられた最新のものである。ＬＵＥ100は、（825で）対応する送信ファイル300の残りの与えられていないトランザクション605を遠隔データベース210へ適用する。ＬＵＥ100はその後、（830で）最新の送信ファイルsf-4後に、残りの送信ファイル300を遠隔データベース210へ適用する。
【００４３】
別の実施形態では、例えばＬＵＥ100は遠隔データベース210へ与えられないおよび／または初期化送信ファイル発生時間611前の発生時間603を有する送信ファイル300を廃棄またはアーカイブする。廃棄またはアーカイブされる送信ファイル300は送信ファイル識別子615に関連される送信ファイルsf-4を含んでいる。
【００４４】
初期化送信ファイル310が与えられた後、既に遠隔データベース210へ与えられている任意の後の送信ファイル300は、遠隔データベース210が初期化送信ファイル310との読取り一致になるために失われることが理解されよう。したがって、これらの後の送信ファイル300は再度与えられる。
【００４５】
本発明の１実施形態では、送信ファイル300と初期化送信ファイル310は、承認なしに、即ちファイルが適切に受信されたことを示すためのＡＣＫ／ＮＡＣＫ信号なしにローカルデータベース200から遠隔データベース210へ送信されることができる。これは有効にＡＣＫ／ＮＡＣＫ信号が生成するオーバーヘッドを減少する。
【００４６】
別の実施形態では、ＡＣＫ／ＮＡＣＫ信号はファイルの適切な受信を示すために遠隔データベース210から送信される。この実施形態では、ＡＣＫ／ＮＡＣＫ信号は確実ではない通信によるシステムで送信される。
【００４７】
図９は、ローカルデータベースから送信され、遠隔データベースで受信される更新ファイルをシステムが確認する本発明の別の実施形態のフローチャートである。ここで、システムは（905で）複数の定期的な更新を送信する。各更新は１以上のトランザクションを含んでいてもよい。定期的な更新は個別またはバッチで送信される。システムは（910で）ある時間に初期化更新を送信し、初期化更新を遠隔データベースへ与える。初期化更新はローカルデータベース全体のバージョンを含んでいる。システムは最初に（915で）データベースを比較することによりローカルおよび遠隔データベース間の不一致を識別する。システムは（920で）不一致が有効であるかエラーを有するかを決定する。システムはその後（925で）本発明の実施形態にしたがって定期的な更新を遠隔データベースへ与える。この実施形態はローカルデータベースからの更新の受信結果として遠隔データベースにエラーが存在しないことを確実にする。
【００４８】
例えば、ＯＬＴＰ140は（905で）幾つかの規則的または不規則の時間間隔で送信ファイル300を遠隔データベース210へ送信する。送信ファイル300は個別またはバッチで送信される。ＯＬＴＰ140は（910で）ある時間に初期化送信ファイル310をＬＵＥ100へ送信し、ＬＵＥ100は初期化送信ファイル310を遠隔データベース210へ送信する。ＯＬＴＰ140はローカルデータベース200を遠隔データベース210と比較し、（915で）それらの間の不一致を識別する。ＯＬＴＰ140はその後（920で）不一致が有効またはエラーがあるかを決定する。ＯＬＴＰ140はその後本発明の１実施形態にしたがって、ＬＵＥ100に（925で）送信ファイル300を遠隔データベース210へ与えることを通知する。ＬＵＥ100はその後、送信ファイル300を遠隔データベース210へ与える。
【００４９】
別の実施形態では、システムは不一致を識別し、確認する前に送信ファイルと初期化送信ファイルの両者を供給する。その代わりに、システムは不一致を識別し、確認した後に送信ファイルと初期化送信ファイルの両者を供給することができる。
【００５０】
確認プロセスは送信されたデータを目的地へ与える目的で、ソースから目的地へネットワークで送信された任意のデータで行われることが理解されるであろう。
【００５１】
図１０Ａは、本発明にしたがった送信ファイルと初期化送信ファイルの確認の１実施形態のフローチャートである。複数の定期的な更新と初期化更新を遠隔データベースへ送信した後、システムはこれらの更新を確認する。各更新はローカルデータベースで行われた１以上のトランザクションを含んでいる。各トランザクションは１以上の事象を含んでいる。事象はデータベース中のデータに関し、データベースのアクションまたは発生、例えば付加、変更、消去などである。
【００５２】
最初に、システムは（1000で）遠隔データベース中の記録を、ローカルデータベース中の対応する記録と比較する。システムは（1005で）遠隔およびローカルデータベース間の不一致を説明する例外を発生し、例外は各不一致に対して発生される。不一致は同一の記録の２つのバージョン間の少なくとも１つのデータ値の任意の差である。例えば、ローカルデータベース中のデータ記録は（１２３４５，ｘｙｚ．ｃｏｍ，１２３．２３４．３４５）である。同一であると想定される遠隔データベース中の対応するデータ記録は（１２３４５，ａｂｃ．ｃｏｍ，１２３．２３４．３４５）である。したがって、記録の第２のデータ値には不一致が存在する。したがって、本発明の１実施形態はこの不一致を説明する例外を発生する。例外は不一致が存在することを単に示し、不一致の位置を特定し、不一致の２つのデータ値間の差を説明すること等によって不一致を記述する。２つの記録が同一のデータを含んでいることが想定されるならば、ローカルデータベースのデータ記録は遠隔データベースのデータ記録に対応する（その逆もある）。
【００５３】
不一致は記録または、その全体の記録の１以上のデータ値の差を指していることが理解されよう。
【００５４】
システムは（1010で）例外識別子を各例外に関連付け、例外識別子は記録の識別子と関連される。例えばデータ記録（１２３４５，ｘｙｚ．ｃｏｍ，１２３．２３４．３４５）は、識別子ｄ１０を有する。したがって例外識別子もまたｄ１０である。各例外は多数の例外（または不一致）タイプのうちの任意の１つに属すとして分類される。例外リストは例外タイプと、そこで区分された例外の例外識別子を含むように形成される。例外リストおよび異なる例外タイプについては後に詳細に説明する。システムはまた（1015で）事象識別子を更新の各事象に関連付け、事象識別子は記録の識別子と関連付けされる。例えばデータ記録（１２３４５，ｘｙｚ．ｃｏｍ，１２３．２３４．３４５）は識別子ｄ１０を有する。したがって、事象識別子もまたｄ１０である。更新の各事象は事象経歴から発見される。事象経歴は時間期間にわたってローカルデータベース中の記録について行われる事象のリスト等である。事象経歴を後に詳細に説明される。
【００５５】
システムはその後、（1020で）記録の更新が有効であるか否かを決定する。図１０Ｂは確認決定の１実施形態のフローチャートである。この決定は以下のように行われる。各事象は（1022で）各例外と比較される。各例外が（1024で）事象により正当化されないならば、更新は（1026で）有効として指定され、更新は遠隔データベースに供給される。そうでなければ、各例外が（1024で）事象により正当化されないならば、更新は（1028で）無効として指定され、例外はエラーとしてログされる。例外は事象識別子が例外識別子に対応し、関連する事象が例外タイプに関連される事象の有効なシーケンスに対応するとき正当化される。有効なシーケンスについては後に詳細に説明する。例外が正当化されるならば、システムは例外識別子を例外リストから除去する。正当化された例外は不一致が有効なものであることを示し、例えば遠隔データベースは更新をまだ受信していないが、更新が受信されるときにローカルデータベースと一致する。
【００５６】
確認中、システムは定期的および初期化更新の潜在的エラーまたは故障を識別する。システムはこれらの更新が構造的および意味的に正しく、これらの更新が例外を発生せずにまたはそうでなければ不適切に停止せずに適用され、ローカルおよび遠隔データベース間の比較が正確にエラーを検出し、高いプロフィールデータが偶然に消去されないことを確実にする。システムは定期的および初期化更新が適切に遠隔データベースに供給されることを確実にする。
【００５７】
多数のエラーは有効に、確認中に更新を遠隔データベースへ供給することを試みることにより発見される。例えばデータ中心エラー、オブジェクトが既に遠隔データベースに存在するという警告、または外部の識別子の侵害が存在するという警告は、供給を試みる期間中に発見される。したがって、本発明の実施形態の確認プロセスの実行後、システムはこれらの更新中を遠隔データベースに適用しようとする。この試みは失敗し、更新を無効にする付加的なエラーが更新中に存在することを示す。したがって、これらの更新を遠隔データベースに適用する試みはさらに行われない。
【００５８】
別の実施形態では、確認を実行する前に、少なくとも１つの更新を供給する試みが行われる。試みが失敗したならば、確認はスキップされ、更新は廃棄される。他方で、試みが成功したならば、確認が実行され、有効な更新が維持され、無効な更新は不一致のためにログされる。
【００５９】
例示的な実施形態では、ＯＬＴＰ140は送信ファイル300と初期化送信ファイル310が適切に遠隔データベース210へ供給されることを確実にするために、送信ファイル300と初期化送信ファイル310を確認する。
【００６０】
別の実施形態では、ネットワークコンピュータ121、ＬＵＥ100、または既存のシステムの任意の組合わせが確認を実行する。
【００６１】
図１０Ａを参照すると、ＯＬＴＰ140はローカルデータベース200と遠隔データベース210とを比較し、それらの間の任意の例外（または不一致）を決定する。例外は３つのタイプを含んでおり、即ちそれらはデータがローカルデータベース200ではなく遠隔データベース210に存在し、データが遠隔データベース210ではなくローカルデータベース200に存在し、または対応するデータがローカルデータベース200と遠隔データベース210に存在するがデータが異なるタイプである。勿論、対応するデータはローカルデータベース200と遠隔データベース210とに存在し、データは同一であり、この場合データは有効であると考えられ、したがってさらにＯＬＴＰ140による処理を必要としない。
【００６２】
不一致は記録またはその全体の記録の１以上のデータ値を指していることが理解されよう。
【００６３】
したがって、ＯＬＴＰ140は（1000で）ローカルデータベース200と遠隔データベース210の対応する記録を比較する。ＯＬＴＰ140は(1005で)遠隔データベース210の記録と、ローカルデータベース200の記録との不一致を記述する例外を発生し、ここで例外は各不一致に対して発生される。ＯＬＴＰ140は(1010で)例外識別子を各例外に関連付け、各例外識別子は記録の識別子に関連される。例外リストは例外タイプと、例外タイプに属す例外の例外識別子とを含むように形成される。１実施形態では、例外はそれが第１の例外タイプに属すならば、“リスト１”例外（または不一致）として指定され、例外が第２の例外タイプに属すならば、“リスト２”例外、または例外が第３の例外タイプに属すならば、“リスト３”例外として指定される。図１１は例示的な例外リスト1140を示している。
【００６４】
例えばローカルデータベース20に対する変更と遠隔データベース210に供給される更新との間の時間遅延のために全ての３つのタイプの例外が正当に生じるので、例外リストの例外識別子の存在は送信ファイル300または初期化送信ファイル310が悪いことを示唆しないことが理解されよう。このような遅延は例えばネットワークの混雑により生じる可能性がある。このようにして、確認はエラーのあるデータから正当性を取り除く機構を与える。
【００６５】
初期化送信ファイル310に対しては、ＯＬＴＰ140はデータベース200と210の両者で双方向フルテーブル走査を実行することによりローカルデータベース200と遠隔データベース210とを比較する。即ち、ローカルデータベース200中の全てのデータは遠隔データベース210中の全てのデータに対して比較される。その後、遠隔データベース210中の全てのデータはローカルデータベース200中の全てのデータに対して比較される。これは全ての不一致を発見するためとデータベース200、210の徹底的な比較を与える利点がある。
【００６６】
送信ファイル300では、ＯＬＴＰ140は送信ファイル300に記録されているローカルデータベース200と遠隔データベース210のデータ記録だけを比較する。これはターゲットとする不一致を発見するための迅速な問い合わせを与える利点がある。
【００６７】
その代わりに、初期化送信ファイル310および／または送信ファイル300のデータのランダムなサンプリングが行われる。ＯＬＴＰ140はその後、ローカルデータベース200と遠隔データベース210のサンプルされたデータをランダムに比較する。
【００６８】
例外リスト1140は、遠隔データベース210と一貫しないローカルデータベース200に対する失った事象、例えば付加（ａｄｄ）、変形（ｍｏｄ）、消去（ｄｅｌ）に対応する。これらの候補事象を識別するために、ＯＬＴＰ140はローカルデータベース200に与えられた最近のトランザクションを検査する。通常、与えられる各トランザクションに対して、エントリはローカルデータベース200に記憶されたログテーブル中に行われる。エントリは変更された記録に対する識別子と、記録を変更したトランザクション（または事象）（例えばａｄｄ、ｍｏｄおよび／またはｄｅｌ事象）、トランザクションの順序を示すログシーケンス番号等を含んでいてもよい。
【００６９】
例示的なログテーブル1100が図１１で示されている。この例では、送信ファイル300はログテーブル1100で示されているトランザクション1108-1114を含んでいる。第１のエントリ1101は第１のトランザクション1108で、データｎ１、ｎ２（ネームサーバ）が識別子ｄ１に関連されるデータ（ドメイン）に付加されたことを示している。識別子はｄ１であり、事象は“ａｄｄ”であり、ログシーケンス番号は１１５２６である。同様に、第２のエントリ1102は第２のトランザクション1109で、データｎ８とｎ９が識別子ｄ２と関連されるデータに付加されたことを示している。第３のエントリ1103は第３のトランザクション1110で、識別子ｄ３と関連されるデータが消去されたことを示している。第４のエントリ1104は第４のトランザクション1111で、識別子ｄ１と関連されるデータがデータｎ５を付加するように変更されたことを示している。第５のトランザクション1112では、第５のエントリ1105は、データｎ６とｎ７が識別子ｄ３と関連されるデータに付加されたことを示している。第６のトランザクション1113では、第６のエントリ1106は、識別子ｄ４に関連されるデータがデータｎ３を除去するために変更されたことを示している。第Ｒ番目のエントリ1107は、第Ｒ番目のトランザクション1114で、識別子ｄ５に関連されるデータが消去されたことを示している。
【００７０】
したがって、図１０Ａに示されているように、ＯＬＴＰ140は（1015で）事象識別子を更新の各事象に関連付け、事象識別子は記録の事象に関連されている。更新の各事象は事象経歴から発見される。事象識別子によりインデックスされ順序付けされた事象経歴はログテーブル1100から発生されることができる。例示的な事象経歴1120は図１１で示されている。ここで、ログテーブル1100の第１および第４のエントリ1101、1104は識別子ｄ１に関連されるデータに対する変更を示している。したがって事象経歴1120はｄ１識別子1121と、識別子ｄ１に関連されるデータにおいて“ａｄｄ”とその後に“ｍｏｄ”が行われる２つの事象1126を含んでいる。第２のエントリ1102は識別子ｄ２に関連されるデータに対する変更を示している。したがって事象経歴1120はｄ２識別子1122と“ａｄｄ”事象1127を含んでいる。事象経歴1120はｄ３識別子1123と、“ｄｅｌ”とその後に“ｍｏｄ”が行われる２つの事象1128を含み、第３および第５のエントリ1103と1105を示し、識別子ｄ３に関連するデータへの変更を含んでいる。第６のエントリ1106は識別子ｄ４に関連されるデータに対する変更を示している。したがって、事象経歴1120はｄ４識別子1124と“ｍｏｄ”事象1129を含んでいる。第Ｒのエントリ1107は識別子ｄ５に関連されるデータに対する変更を示し、事象経歴1120はｄ５識別子1125と“ｄｅｌ”事象1130を含んでいる。識別子1121-1125はｄ１乃至ｄ５に順序付けされる。
【００７１】
図１０Ａを再度参照すると、ＯＬＴＰ140は（1020で）更新が有効であるか否かを決定する。この決定は例えば図１０Ｂの実施形態にしたがって行われる。最初に、ＯＬＴＰ140は（1022で）どの識別子が対応するかを決定するために事象識別子1121-1125を例外識別子1140と比較する。例えば図１１では、事象経歴1120のｄ１事象識別子1121は例外リスト1140の“リスト２”のｄ１例外識別子に対応する。対応する事象および例外を発見後、ＯＬＴＰ140は（1024で）事象が例外を正当化するか否かを決定する。正当化は以下のように行われる。事象経歴1120の各事象識別子1121-1125では、ＯＬＴＰ140は事象経歴1120の事象1126-1130の各システムが有効であるか否かを決定する。これは例えば各例外識別子が属する例外タイプを決定するために例外リスト1140を検査し、その例外タイプの事象の有効なシーケンスが何であるべきかを決定し、その後対応する事象識別子と事象の事象識別子のシーケンスの事象経歴1120をサーチすることによって行われる。各例外タイプの有効なシーケンスについて以下詳細にする。事象経歴1120の事象1126-1130のシーケンスが有効なシーケンスと一致するならば、対応する事象識別子1121-1125は有効なシーケンスを有する。このように、例外識別子に関連する例外は正当化される。その事象を含んでいる対応するトランザクション1108-1114は正当化されたものでありエラーがない。この場合、ＯＬＴＰ140は例外リスト1140から例外識別子を除去する。
【００７２】
“リスト１”例外タイプの事象の有効なシーケンスは（ｍｏｄ）＊（ｄｅｌ）である。このシーケンスはゼロ以上の“ｍｏｄ”事象と、それに後続する“ｄｅｌ”事象と、その後に何かが続くシーケンスを含んでいる。“リスト１”例外タイプは遠隔データベース210に存在するデータに対応するが、ローカルデータベース200に存在するデータには対応しない。この場合、データはローカルデータベース200から最近消去され、トランザクションはまだ送信ファイル300に書き込まれていない。したがって送信ファイル300はまだ遠隔データベース210に供給されていない。それ故データは遠隔データベース210に存在しない。これは幾つかのポイントで、送信ファイル300が発生されて遠隔データベース210に適用されることが予測されるので、正当化の不一致であると考慮される。任意のこのようなシーケンス1126-1130が例外リスト1140のリスト１の例外識別子の事象経歴1120で発見されるならば、対応するトランザクションは有効であると考えられてもよい。
【００７３】
例えば、図１１では、ｄ５識別子1125とその関連されるデータは、ログテーブル1100の第Ｒのエントリ1114で示されているようにローカルデータベース200から消去され、事象経歴1120でインデックスされる。確認のときに、ｄ５はローカルデータベース200から消去されるが、遠隔データベース210から消去されない。例外リスト1140はリスト１に識別子ｄ５を含んでいる。事象経歴1120にしたがって、ｄ５識別子1125に関連される事象1130は“ｄｅｌ”である。ＯＬＴＰ140は“リスト１”例外タイプの有効なシーケンス、即ち（ｍｏｄ）＊（ｄｅｌ）を事象経歴1120のｄ５事象1130に対して比較する。“リスト１”の有効なシーケンスと事象1130が一致するので、識別子ｄ５に関連する消去トランザクション1114は正当であり、エラーとは考えられない。したがって識別子ｄ５は例外リスト1140から除去されることができる。
【００７４】
“リスト２”例外タイプの事象の有効なシーケンスは（ａｄｄ）である。このシーケンスは“ａｄｄ”事象と、その後に何かが続くシーケンスを含んでいる。“リスト２”例外タイプはローカルデータベース200に存在するデータに対応するが、遠隔データベース210に存在するデータには対応しない。この場合、データはローカルデータベース200へ最近付加され、トランザクションはまだ送信ファイル300に書き込まれていない。送信ファイル300はまだ遠隔データベース210に適用されていない。データは遠隔データベース210に存在しない。これは幾つかのポイントで、送信ファイル300が発生されて遠隔データベース210に適用されることが予測されるので、正当化の不一致であると考えられる。したがって、任意のこのようなシーケンス1126-1130が例外リスト1140のリスト２の例外識別子の事象経歴1120で発見されるならば、対応するトランザクションは有効であると考えられる。
【００７５】
図１１を参照すると、ｄ１、ｄ２識別子1121、1123は例えばローカルデータベース200に最初に付加されたデータに関連されている。事象1126、1127のシーケンスは“ａｄｄ”事象で開始するので、ｄ１、ｄ２識別子1121、1123は“リスト２”例外タイプの有効なシーケンスと一致する。したがって、これらの識別子を含んでいるトランザクション1108、1109は有効であると考えられ、識別子ｄ１、ｄ２は例外リスト1140から除去される。ｄ３識別子1123もそのシーケンス1128で“ａｄｄ”事象を含むことに注意する必要がある。しかしながら、“ａｄｄ”事象はシーケンス1128で最初ではない。したがってシーケンス1128は“リスト２”タイプとして適格とされない。さらにｄ３は例外リスト1140のリスト２で指定されないので、ＯＬＴＰ140はそれをリスト２の有効なシーケンスでチェックしない。
【００７６】
“リスト３”例外タイプの事象の有効なシーケンスは（ｄｅｌ）＊（ａｄｄ）または（ｍｏｄ）である。これらのシーケンスは“ｍｏｄ”事象と、それに後続し、その後に何かが続く“ａｄｄ”事象またはその後に何かが続く“ｍｏｄ”事象を含んでいる。“リスト３”例外タイプはデータベース200、210の両者に存在するデータに対応するが、異なっている。この場合、データはローカルデータベース200で最近変更され、トランザクションはまだ送信ファイル300に書き込まれていない。送信ファイル300はまだ遠隔データベース210に適用されていない。識別子に関連されているデータは遠隔データベース210でまだ変更されていない。これは幾つかのポイントで、送信ファイル300が発生されて遠隔データベース210に適用されることが予測されるので、正当化の不一致であると考えられる。したがって任意のこのようなシーケンス1126-1130が例外リスト1140のリスト３の例外識別子の事象経歴1120で発見されるならば、対応するトランザクションは有効であると考えられる。
【００７７】
例えば、図１１では、ｄ３、ｄ４識別子1123、1124はローカルデータベース200デ変更されたデータに関連されている。ｄ３識別子1123の場合、ｄ３識別子1123とそのデータは最初に消去され、その後新しいデータを付加され、それによって事象1128のシーケンスは“ｄｅｌ”とそれに後続する“ａｄｄ”を含んでいる。ｄ４識別子1124の場合、ｄ４データはデータを除去するように変更され、それによって事象1129のシーケンスは“ｍｏｄ”を含んでいる。事象1128、1129のこれらのシーケンスは“リスト３”例外タイプの有効なシーケンスと一致するので、これらの対応するトランザクション1110、1112、1113は有効であると考慮され、識別子ｄ３、ｄ４は例外リスト1140から除去される。
【００７８】
図１０Ｂを参照すると、例外リスト1140の識別子により示されている全ての例外が（1024で）事象により正当化されるならば、即ち例外リスト1140がエンプティならば、ＯＬＴＰ140は（1026で）送信ファイル300または初期化送信ファイル310を有効として指定し、ＬＵＥ100に送信ファイル300または初期化送信ファイル310を遠隔データベース210へ適用するように通知する。ＬＵＥ100はその後、送信ファイル300または初期化送信ファイル310を遠隔データベース210へ供給する。
【００７９】
反対に、全ての例外が（1024で）事象により正当化されないならば、即ち例外リスト1140がエンプティではないならば、残りの例外は（1028で）送信ファイル300または初期化送信ファイル310を無効として指定し、エラーをエラーファイルにログする。
【００８０】
別の実施形態では、例えば送信ファイル300または初期化送信ファイル310は無効として指定されるならば、予め定められた期間後、ＯＬＴＰ140は不一致が本当にエラーであることを確実にするため無効な送信ファイル300または初期化送信ファイル310で確認プロセスを反復する。この予め定められた遅延は任意の低速度の送信ファイル300、310とデータベース200、210を送信するためのネットワークのより多くの時間と、読取りを一貫するためのより多くの時間を可能にする。
【００８１】
本発明の１実施形態では、遠隔データベース210のデータは大きな時間期間によりローカルデータベース200のデータを“遅延”する。したがって、データベース200、210と検出エラーを比較するため、データベース200、210は時間の同一点で読取りを一貫され、したがってこれらは相互の正確なコピーである。通常、遠隔データベース210はローカルデータベース200へロールフォワードされ、ここで遠隔データベース210のデータは基本的にローカルデータベース200のデータと同じにされる。
【００８２】
したがって、変更の速度を上げるため、任意の現在発生された初期化送信ファイル310およびその後の送信ファイル300は確認の開始前に遠隔データベース210へ供給される。このようにして、不一致の数は非常に減少される。送信ファイル300と310のこのバッチ処理はチャンキングと呼ばれる。チャンクのこれらの送信ファイル300と310の最初および最後はそれぞれ低および高い透かしマークと呼ばれる。最初のチャンクと呼ばれる第１のチャンクは初期化送信ファイル310を含んでいる。終端チャンクと呼ばれる全ての次のチャンクは送信ファイル300だけを含んでいる。
【００８３】
チャンキングは分離した確認ではなくグループでの確認を行う。したがって、エラーがチャンクで検出されるならば、チャンク全体はエラーが生じた単なる送信ファイル300または初期化送信ファイル310ではなく無効として指定される。
【００８４】
本発明の実施形態の機構および方法は、実施形態の教示にしたがってプログラムされた汎用目的のマイクロプロセッサを使用して実行されよう。本発明の実施形態はしたがって、マシーンの読取り可能な媒体を含んでおり、これは本発明の実施形態による方法を実行するためプロセッサのプログラムに使用される命令を含んでいる。この媒体はフロッピー（Ｒ）ディスク、光ディスク、ＣＤ−ＲＯＭを含む任意のタイプのディスクを含んでいるが、これらに限定されない。
【００８５】
本発明の幾つかの実施形態をここで特別に示し説明した。しかしながら、本発明の変更および変形は本発明の技術的範囲を逸脱せずに、前述の考察により、特許請求の範囲でカバーされることが認識されるであろう。
【図面の簡単な説明】
【００８６】
【図１】本発明の１実施形態にしたがったシステムのブロック図。
【図２】本発明の１実施形態にしたがったシステムハブのブロック図。
【図３】本発明の１実施形態にしたがったローカルデータベースから遠隔データベースへのデータベース更新の例示的な送信を示す図。
【図４】本発明の１実施形態にしたがった送信ファイルを示す図。
【図５】本発明の１実施形態にしたがった初期化送信ファイルを示す図。
【図６】本発明の１実施形態にしたがった送信ファイルと初期化送信ファイルの発生のタイミングチャート。
【図７】ローカルデータベースの更新ファイルが発生される本発明の１実施形態のフローチャート。
【図８】遠隔データベースがローカルデータベースから更新ファイルを受信する本発明の別の実施形態のフローチャート。
【図９】遠隔データベースがローカルデータベースから更新ファイルを受信し、確認する本発明の別の実施形態のフローチャート。
【図１０Ａ】更新ファイルが確認される本発明の１実施形態のフローチャート。
【図１０Ｂ】更新ファイルが確認される本発明の別の実施形態のフローチャート。
【図１１】本発明の１実施形態にしたがった更新ファイル確認を示す図。
【図１】
2005510782.tif 000003
【図２】
2005510782.tif 000004
【図３】
2005510782.tif 000005
【図４】
2005510782.tif 000006
【図５】
2005510782.tif 000007
【図６】
2005510782.tif 000008
【図７】
2005510782.tif 000009
【図８】
2005510782.tif 000010
【図９】
2005510782.tif 000011
【図１０Ａ】
2005510782.tif 000012
【図１０Ｂ】
2005510782.tif 000013
【図１１】
2005510782.tif 000014
【国際調査報告】
2005510782.tif 000015