(57)【要約】データ項目のローカルコピーを格納するネットワークサーバ１０６上の更新要求１０４を処理するとき、キャッシングがクラスター内で同時に維持されることができる。データ項目のローカルコピーを用いて前記要求が処理されることができる。断定的な更新要求がデータ項目を格納するネットワークデータベース１１４へ送信されることができる。ここで、ローカルコピーがデータ項目に関して最新の場合、データベースは更新をコミットすることができる。ローカルコピーが最新でない場合、ネットワークサーバは新たなコピーを要求し、最新コピーを用いてその要求を処理し、別の断定的な要求を試みる。この処理は、更新がデータベースへコミットされるか打ち切られるまで続く。コミットされると、クラスターのどんな他のサーバもデータ項目が更新されたことを通知される。これら他のサーバはデータ項目のローカルコピーを捨てて、更新コピーを要求することができる。【選択図】図１
2005502131.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークデータベースのデータ項目を更新する要求を受信し、前記要求は前記データ項目のローカルコピーを格納するネットワークサーバによって受信され、
前記ローカルコピーを用いて前記要求を処理し、
前記ローカルコピーが前記データ項目の最新コピーであるかを検証し、
前記ローカルコピーが最新コピーである場合、前記要求に応答して前記データベースのデータ項目を更新することを含む、ネットワークデータベースのデータ項目を更新する方法。
【請求項２】
前記データベースのデータ項目が更新されたことを前記ネットワーク上の他のサーバに通知することをさらに含む請求項１に記載の方法。
【請求項３】
前記ネットワークサーバ上のローカルキャッシュに前記ローカルコピーを格納することをさらに含む請求項１に記載の方法。
【請求項４】
前記ローカルコピーが前記データ項目の最新コピーでない場合、前記データ項目の最新コピーを要求することをさらに含む請求項１に記載の方法。
【請求項５】
クラスターサーバの更新要求を処理し、当該クラスターサーバは前記要求を処理するのに用いられるデータ項目のローカルコピーを格納するものであり、
前記データ項目を含むクラスターデータベースに断定的な更新要求を送信し、これにより、前記ローカルコピーが前記更新前のデータ項目に関して最新である場合、前記データベースは前記データ項目を更新し、そして、前記ローカルコピーが前記更新前のデータ項目に関して最新でない場合、前記データベースは前記データ項目を更新しないことを含む、クラスターのデータ項目を更新する方法。
【請求項６】
前記データ項目が更新されたかどうかを示すメッセージを、前記データベースから前記クラスターサーバへ受信するようにすることをさらに含む請求項５に記載の方法。
【請求項７】
前記データベースからデータ項目を読み出し、かつ、前記データ項目のローカルコピーを、前記クラスターサーバ上のローカルキャッシュ内に格納することをさらに含む請求項５に記載の方法。
【請求項８】
クラスターサーバに対するクライアントからの更新要求を受信することをさらに含む請求項５に記載の方法。
【請求項９】
前記更新要求が処理されることができるかどうかを決定するために、前記ローカルコピーをチェックすることをさらに含む請求項５に記載の方法。
【請求項１０】
前記データベース内のデータ項目が更新される場合、前記クラスターサーバ上のローカルコピーを更新することをさらに含む請求項５に記載の方法。
【請求項１１】
前記ローカルコピーが前記データ項目に関して最新でない場合、前記クラスターサーバ上の前記ローカルコピーを削除するとともに、前記データ項目の新たなコピーを格納することをさらに含む請求項５に記載の方法。
【請求項１２】
前記データ項目を含むクラスターデータベースに追加の断定的な更新要求を送信し、これにより、前記新たなコピーが前記更新前のデータ項目に関して最新である場合、前記データベースは前記データ項目を更新し、そして、前記新たなコピーが前記更新前のデータ項目に関して最新でない場合、前記データベースは前記データ項目を更新しないことをさらに含む請求項１１に記載の方法。
【請求項１３】
前記更新要求を開始するクライアントが、前記新たなコピーで前記データ項目を最新状態に更新する試みを望んでいるかどうかを決定することをさらに含む請求項１１に記載の方法。
【請求項１４】
前記データベースのデータ項目が更新されたことを前記クラスター内の他のサーバに通知することをさらに含む請求項５に記載の方法。
【請求項１５】
更新メッセージを前記クラスター内の他のサーバにマルチキャスト送信することをさらに含む請求項５に記載の方法。
【請求項１６】
前記データ項目を更新後、前記データ項目のバージョン番号を前記クラスター内の他のサーバへマルチキャスト送信することをさらに含む請求項５に記載の方法。
【請求項１７】
前記データ項目が更新されたことを示すために、前記クラスター内の各サーバと直接連絡を取り合うことをさらに含む請求項５に記載の方法。
【請求項１８】
前記更新されたデータ項目のバージョン番号を、前記ネットワーク上の他の任意サーバへハートビートする（heartbeating）ことをさらに含む請求項５に記載の方法。
【請求項１９】
前記データ項目が更新されたことが通知される任意のクラスターサーバ上に格納された前記データ項目のローカルコピーをドロップする（dropping）ことをさらに含む請求項１４に記載の方法。
【請求項２０】
前記データ項目が更新されたことが通知される任意のクラスターサーバ上のデータ項目の更新コピーを要求することをさらに含む請求項１４に記載の方法。
【請求項２１】
前記データ項目が更新されたことが通知される任意のクラスターサーバ上のデータ項目のローカルコピーを削除することをさらに含む請求項１４に記載の方法。
【請求項２２】
前記データベースのデータ項目が更新される予定であることを、前記クラスター内の他のサーバに通知することをさらに含む請求項５に記載の方法。
【請求項２３】
前記データベースのデータ項目の更新を拒否することを前記他のサーバに許可することをさらに含む請求項２２に記載の方法。
【請求項２４】
前記クラスター内の他のサーバへパケット情報を送信し、前記更新の影響で当該パケット情報は前記データ項目への変化をさらに含む請求項５に記載の方法。
【請求項２５】
前記パケット情報は、前記更新後の前記データ項目の状態と、前記更新前の前記データ項目の前の状態との間の変化を含むことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記クラスター内の他のサーバが、前記データ項目に対する前記更新を受け入れることができるかどうかを決定することをさらに含む請求項５に記載の方法。
【請求項２７】
前記他のサーバが前記更新を受け入れることができない場合、前記更新をロールバックすることをさらに含む請求項２６に記載の方法。
【請求項２８】
クラスターサーバ上にキャッシュされたデータ項目のコピーを同時に維持する方法であって、
更新要求を受信し、当該更新要求はデータ項目のローカルコピーをローカルキャッシュに格納するクラスターサーバによって受信され、
前記データ項目のローカルコピーを用いて前記要求を処理し、
前記データ項目を格納するクラスターデータベースへ断定的な更新要求を送信し、これにより、前記ローカルコピーに関するデータ項目が最新である場合、前記クラスターデータベースは前記データ項目を更新し、そして前記ローカルコピーに関するデータ項目が最新でない場合、前記データベースは前記データ項目を更新せず、
前記クラスターサーバのために前記データ項目の最新コピーを要求するとともに、前記ローカルコピーが前記クラスターデータベースのデータ項目に関して最新でない場合、他の断定的な更新を送信し、当該最新コピーを要求しかつ他の断定的な更新を送信するステップは、前記クラスターデータベースの１つが前記データ項目を更新しかつ前記方法が打ち切られるまで継続し、
前記データベースのデータ項目が更新されたことを前記クラスター内の他のサーバに通知することを含むことを特徴とする方法。
【請求項２９】
前記クラスター内の他のサーバに通知するステップは、前記データ項目のローカルコピーを格納する前記クラスター内の他のサーバに、更新メッセージをマルチキャスト通信することをさらに含む請求項２８に記載の方法。
【請求項３０】
前記クラスター内の他のサーバに通知するステップは、前記データ項目が更新された後、前記データ項目のバージョン番号を前記クラスター内の他のサーバにマルチキャスト通信することをさらに含む請求項２８に記載の方法。
【請求項３１】
前記クラスター内の他のサーバに通知するステップは、前記データ項目が更新されたことを示すために、前記クラスター内の他のサーバとポイントツー・ポイント結合によって連絡を取り合うことをさらに含む請求項２８に記載の方法。
【請求項３２】
前記クラスター内の他のサーバに通知するステップは、前記データ項目が更新された後、前記データ項目のバージョン番号を前記クラスター内の他のサーバにハートビートする（heartbeating）ことをさらに含む請求項２８に記載の方法。
【請求項３３】
前記データ項目が更新されたことが通知される前記クラスター内の任意の他のサーバに、前記データ項目のローカルコピーをドロップする（dropping）ことをさらに含む請求項２８に記載の方法。
【請求項３４】
前記データ項目が更新されたことが通知される前記クラスター内の任意の他のサーバに、前記データ項目の更新コピーを要求することをさらに含む請求項２８に記載の方法。
【請求項３５】
クラスターサーバ上の更新要求を処理する手段と、当該クラスターサーバは前記要求を処理するのに用いられるデータ項目のローカルコピーを格納し、
断定的な更新要求を前記データ項目を含むクラスターデータベースへ送信する手段と、これにより、前記ローカルコピーが前記更新前のデータ項目に関して最新である場合、前記データベースは前記データ項目を更新し、そして、前記ローカルコピーが前記更新前のデータ項目に関して最新でない場合、前記データベースは前記データ項目を更新しない、ことを含むコンピュータ読み出し可能な記録媒体。
【請求項３６】
クラスターサーバ上の更新要求を処理することが可能なコンピュータコードと、当該クラスターサーバは前記要求を処理するのに用いられるデータ項目のローカルコピーを格納し、
断定的な更新要求を前記データ項目を含むクラスターデータベースへ送信することが可能なコンピュータコードと、これにより、前記ローカルコピーが前記更新前のデータ項目に関して最新である場合、前記データベースは前記データ項目を更新し、そして、前記ローカルコピーが前記更新前のデータ項目に関して最新でない場合、前記データベースは前記データ項目を更新しない、ことを含むネットワーク上のデータ項目を更新するサーバコンピュータによって実行されるコンピュータプログラム製品。
【請求項３７】
クラスターサーバ上の更新要求を処理する手段と、当該クラスターサーバは前記要求を処理するのに用いられるデータ項目のローカルコピーを格納し、
断定的な更新要求を前記データ項目を含むクラスターデータベースへ送信する手段と、これにより、前記ローカルコピーが前記更新前の前記データ項目に関して最新である場合、前記データベースは前記データ項目を更新し、そして、前記ローカルコピーが前記更新前のデータ項目に関して最新でない場合、前記データベースは前記データ項目を更新しない、ことを含むネットワーク上のデータ項目を更新するシステム。
【請求項３８】
プロセッサと、
前記プロセッサによって実行されるオブジェクトコードとを含み、
前記オブジェクトコードは、
クラスターサーバ上の更新要求を処理し、当該クラスターサーバは前記要求を処理するのに用いられるデータ項目のローカルコピーを格納し、
断定的な更新要求を前記データ項目を含むクラスターデータベースへ送信し、これにより、前記ローカルコピーが前記更新前のデータ項目に関して最新である場合、前記データベースは前記データ項目を更新し、そして、前記ローカルコピーが前記更新前のデータ項目に関して最新でない場合、前記データベースは前記データ項目を更新しない、ように構成されることを含むコンピュータシステム。
【請求項３９】
更新要求を受信するとともに、クラスターデータベースに格納されるデータ項目のローカルコピーを用いて前記要求を処理するように適合されたクラスターサーバを含み、
ここで前記クラスターサーバは、断定的な更新要求を前記データ項目を含むクラスターデータベースへ送信するように適合され、これにより、前記ローカルコピーが前記更新前のデータ項目に関して最新である場合、前記クラスターデータベースは前記データ項目を更新し、そして、前記ローカルコピーが前記更新前のデータ項目に関して最新でない場合、前記データベースは前記データ項目を更新しない、ことを含むクラスターのデータ項目を更新するコンピュータシステム。
【請求項４０】
クラスターデータベースが前記データ項目を含むよう適合されたことをさらに含む請求項３９に記載されたシステム。
【請求項４１】
クライアントが前記更新要求を開始するよう適合されたことをさらに含む請求項３９に記載されたシステム。
【請求項４２】
前記クラスターサーバは、前記データ項目が更新されたかどうかを示すメッセージを前記データベースから受信するよう適合されることを特徴とする請求項３９に記載のシステム。
【請求項４３】
前記クラスターサーバは、前記更新要求が処理されることが可能かどうかを決定するために前記ローカルコピーをチェックするようさらに適合されることを特徴とする請求項３９に記載のシステム。
【請求項４４】
前記クラスターサーバは、前記データベースのデータ項目が更新される場合、前記ローカルコピーを更新するようさらに適合されることを特徴とする請求項３９に記載のシステム。
【請求項４５】
前記クラスターサーバは、前記ローカルコピーが前記データ項目に関して最新でない場合、前記ローカルコピーを削除するとともに、前記データ項目の新たなコピーを格納するようさらに適合されることを特徴とする請求項３９に記載のシステム。
【請求項４６】
前記クラスターサーバは、前記データ項目を含むクラスターデータベースに追加の断定的な更新要求を送信するようさらに適合され、これにより、前記新たなコピーが前記更新前のデータ項目に関して最新である場合、前記データベースは前記データ項目を更新し、そして、前記新たなコピーが前記更新前のデータ項目に関して最新でない場合、前記データベースは前記データ項目を更新しないことを特徴とする請求項４５に記載のシステム。
【請求項４７】
前記データ項目のローカルコピーを格納することが可能な前記クラスター内に追加のクラスターサーバをさらに含むことを特徴とする請求項３９に記載のシステム。
【請求項４８】
前記データベースのデータ項目が更新されたことを、前記追加のクラスターサーバに通知するようさらに適合されることを特徴とする請求項４７に記載のシステム。
【請求項４９】
前記クラスターサーバは、マルチキャスト通信及びポイントツー・ポイントメッセージの１つによって、追加のクラスターサーバに通知するようさらに適合されることを特徴とする請求項４７に記載のシステム。
【請求項５０】
前記追加のクラスターサーバに通知するとき、前記クラスターサーバは、前記データ項目のバージョン番号を含むようさらに適合されることを特徴とする請求項４８に記載のシステム。
【請求項５１】
前記クラスターサーバは、前記更新後のデータ項目のバージョン番号を前記追加のクラスターサーバへハートビート（heartbeat）するようさらに適合されることを特徴とする請求項５０に記載のシステム。
【請求項５２】
前記追加のクラスターサーバは、前記データ項目のローカルコピーを削除すること、及び前記データ項目の更新コピーを要求することの少なくとも１つを行うようそれぞれ適合されることを特徴とする請求項４７に記載のシステム。
【請求項５３】
前記クラスターサーバは、前記データベースのデータ項目が更新される予定であることを、前記追加のクラスターサーバに通知するようさらに適合されることを特徴とする請求項４７に記載のシステム。
【請求項５４】
前記追加のクラスターサーバは、前記データベースのデータ項目の更新をそれぞれに拒否することができることを特徴とする請求項４７に記載のシステム。
【請求項５５】
前記クラスターサーバは、パケット情報を前記追加のクラスターサーバに送信するようさらに適合され、前記更新の影響で当該パケット情報は前記データ項目への変化を含むことを特徴とする請求項４７に記載のシステム。
【請求項５６】
前記クラスターサーバは、前記追加のクラスターサーバが前記更新を受け入れることができる場合、前記追加のクラスターサーバが前記データ項目の更新を受け入れるとともに、前記追加のクラスターサーバに対する前記更新をコミットすることが可能かどうかを決定するようさらに適合されることを特徴とする請求項４７に記載のシステム。
【請求項５７】
前記クラスターサーバは、前記追加のクラスターサーバが前記更新を受け入れることができない場合、前記更新をロールバックするようさらに適合されることを特徴とする請求項４７に記載のシステム。
【請求項５８】
前記ネットワーク上で要求を行うよう適合されたネットワーククライアントと、
データ項目を格納するとともに、前記ネットワーク上のそのデータ項目に対するアクセスを準備するよう適合されたネットワークデータベースと、
前記ネットワーククライアントから要求を受信するとともに、前記要求を処理することが可能なネットワークサーバと、当該ネットワークサーバは前記要求を処理するのに用いられる前記データ項目のローカルコピーを格納し、前記処理後、前記ネットワークサーバは断定的な更新要求を前記ネットワークデータベースに送信するよう適合され、これにより、前記ローカルコピーが前記更新前のデータ項目に関して最新である場合、前記ネットワークデータベースは前記データ項目を更新し、そして前記ローカルコピーが前記更新前のデータ項目に関して最新でない場合、前記ネットワークデータベースは前記データ項目を更新しないこと含む、ネットワーク上のデータ項目を更新するシステム。
【請求項５９】
顧客の会計残高に関する要求を受信し、当該要求は前記会計残高のローカルコピーを格納する会計処理システムによって受信され、
前記ローカルコピーを用いて前記要求を処理し、
前記ローカルコピーが、前記ユーザにとって前記最新の会計残高を反映しているかを検証し、
前記要求に応答して前記ネットワーク上の会計残高を更新することを含む、ネットワーク化された会計処理システムにおける会計残高の整合性を維持する方法。
【請求項６０】
前記会計残高が更新されたことを、前記ネットワーク上の他の会計処理システムに通知することをさらに含む請求項５９に記載の方法。
【請求項６１】
前記ローカルコピーが前記会計残高に関して最新でない場合、前記会計残高を要求することをさらに含む請求項５９に記載の方法。
【請求項６２】
会計処理システム上の更新要求を処理し、当該会計処理システムは前記要求を処理するのに用いられる会計残高のローカルコピーを格納し、
前記会計残高を含む会計データベースに断定的な更新要求を送信し、これにより、前記ローカルコピーが前記更新前の会計残高に関して最新である場合、前記会計データベースは前記会計残高を更新し、そして、前記ローカルコピーが前記更新前の会計残高に関して最新でない場合、前記会計データベースは前記会計残高を更新しないことを含む、ネットワーク化された会計処理システムにおける会計残高の整合性を維持する方法。
【請求項６３】
前記会計残高が更新されたかどうかを示すメッセージを、前記会計データベースから前記会計処理システムへ受信するようにすることをさらに含む請求項６２に記載の方法。
【請求項６４】
前記会計データベースから会計残高を読み出し、かつ、前記会計残高のローカルコピーを前記会計処理システムに格納することをさらに含む請求項６２に記載の方法。
【請求項６５】
会計処理システムに対するクライアントからの更新要求を受信するようにし、当該クライアントは更新される会計残高を特定することをさらに含む請求項６２に記載の方法。
【請求項６６】
前記更新要求が処理されることができるかどうかを決定するために、前記ローカルコピーをチェックすることをさらに含む請求項６２に記載の方法。
【請求項６７】
前記会計データベース内の会計残高が更新される場合、前記会計処理システム上のローカルコピーを更新することをさらに含む請求項６２に記載の方法。
【請求項６８】
前記ローカルコピーが前記会計残高に関して最新でない場合、前記会計処理システム上の前記ローカルコピーを削除するとともに、前記会計残高の新たなコピーを格納することをさらに含む請求項６２に記載の方法。
【請求項６９】
前記会計残高を含む会計データベースに追加の断定的な更新要求を送信し、これにより、前記新たなコピーが前記更新前の会計残高に関して最新である場合、前記会計データベースは前記会計残高を更新し、そして、前記新たなコピーが前記更新前の会計残高に関して最新でない場合、前記会計データベースは前記会計残高を更新しないことをさらに含む請求項６８に記載の方法。
【請求項７０】
前記更新要求を開始するクライアントが、前記新たなコピーで前記会計残高を最新状態に更新する試みを望んでいるかどうかを決定することをさらに含む請求項６８に記載の方法。
【請求項７１】
前記会計データベースの会計残高が更新されたことを前記ネットワーク上の他の会計処理システムに通知することをさらに含む請求項６２に記載の方法。
【請求項７２】
更新メッセージを前記ネットワーク上の他の会計処理システムにマルチキャスト送信することをさらに含む請求項６２に記載の方法。
【請求項７３】
前記更新された会計残高のバージョン番号を前記ネットワーク上の他の会計処理システムへマルチキャスト送信することをさらに含む請求項６２に記載の方法。
【請求項７４】
前記更新された会計残高のバージョン番号を、前記ネットワーク上の他の会計処理システムへハートビートする（heartbeating）ことをさらに含む請求項６２に記載の方法。
【請求項７５】
前記会計残高が更新された後、前記ネットワーク上の他の任意の会計処理システムにおける会計残高のローカルコピーをドロップする（dropping）ことをさらに含む請求項６２に記載の方法。
【請求項７６】
前記ネットワーク上の他の任意の会計処理システム上の会計残高の更新コピーを要求することをさらに含む請求項６２に記載の方法。
【請求項７７】
前記会計残高が更新されたことが通知される前記ネットワーク上の他の任意の会計処理システム上の会計残高のローカルコピーを削除することをさらに含む請求項７１に記載の方法。
【請求項７８】
前記データベースの会計残高が更新される予定であることを、前記ネットワーク上の他の会計処理システムに通知することをさらに含む請求項６２に記載の方法。
【請求項７９】
前記データベースの会計残高の更新を拒否することを前記他の会計処理システムに許可することをさらに含む請求項７８に記載の方法。
【請求項８０】
前記ネットワーク上の他の会計処理システムへパケット情報を送信し、前記更新の影響で当該パケット情報は前記会計残高への変化をさらに含む請求項６２に記載の方法。
【請求項８１】
前記パケット情報は、前記更新後の前記会計残高の状態と、前記更新前の前記会計残高の前の状態との間の変化を含むことを特徴とする請求項６２に記載の方法。
【請求項８２】
前記ネットワーク上の他の会計処理システムが、前記会計残高に対する前記更新を受け入れることができるかどうかを決定することをさらに含む請求項６２に記載の方法。
【請求項８３】
前記他の会計処理システムが前記更新を受け入れることができない場合、前記更新をロールバックすることをさらに含む請求項８２に記載の方法。
【請求項８４】
自動化された銀行用端末装置から顧客の取引残高から引き出すことを許可する前に、十分な資金の可能性を迅速に検証する方法であって、
顧客の取引残高から自動化された銀行用端末装置へ資金を引き出す要求を受信し、当該自動化された銀行用端末装置は、前記会計残高のローカルコピーを格納し、
前記ローカルコピーを用いて前記要求を処理し、
前記会計データベース内のローカルコピーが、前記ユーザの会計残高に関して最新であることを検証し、
前記ローカルコピーが前記会計残高に関して最新である場合、前記要求に応答して前記会計データベース会計残高を更新し、
前記要求に応答して前記ユーザに資金を支払うことを含む方法。
【請求項８５】
取引の参加者から電子取引システムへ取引要求を受信し、当該電子取引システムは、前記取引の参加者に関係した情報のローカルコピーを格納し、
前記ローカルコピーに関する前記要求を処理し、
前記ローカルコピーが、主なデータベースの参加者にとって前記最新の情報を反映していることを検証し、
前記要求に応答して前記主なデータベースの参加者のための情報を更新することを含む迅速な電子取引を提供する方法。
【請求項８６】
ネットワーク上のキャッシュされた会計情報の同時性を維持する方法であって、
ネットワークサーバに対する更新要求を受信し、当該ネットワークサーバはローカルキャッシュの会計情報に関するローカルコピーを格納し、
前記会計情報に関するローカルコピーを用いて前記要求を処理し、
前記会計情報のオリジナルコピーを格納するネットワークデータベースへ断定的な更新要求を送信し、これにより、前記ローカルコピーが前記会計情報に関して最新である場合、前記データベースは前記会計情報を更新し、そして前記ローカルコピーが前記会計情報に関して最新でない場合、前記データベースは前記会計情報を更新せず、
前記ネットワークサーバに対する前記会計情報の最新コピーを受信するとともに、前記ローカルコピーが前記オリジナルコピーと同じバージョンでなかった場合、他の断定的な更新を送信し、
前記オリジナルコピーが更新された会計情報のローカルコピーを格納することを前記ネットワーク上の任意の他のサーバに通知することを含む方法。
【請求項８７】
ネットワーク上の会計処理システム間の同時性を保証するシステムであって、
取引要求を顧客から受信し、かつ前記顧客の会計情報に関するローカルコピーを用いて前記要求を処理するよう適合された会計処理システムと、当該会計情報は会計データベースに格納され、
ここで、前記会計処理システムは、断定的な更新要求を前記会計データベースへ送信するよう適合され、これにより、前記ローカルコピーが前記更新前の会計情報に関して最新である場合、前記会計データベースは前記会計情報を更新し、そして、前記ローカルコピーが前記更新前の会計情報に関して最新でない場合、前記会計データベースは前記会計情報を更新しないことを含むことを特徴とするシステム。
【請求項８８】
前記顧客の会計情報を含むよう適合された会計データベースをさらに含む請求項８７に記載されたシステム。
【請求項８９】
顧客が前記更新要求を開始することを許可するよう適合されたクライアント端末をさらに含む請求項８７に記載されたシステム。
【請求項９０】
前記会計処理システムは、前記会計情報が更新されたかどうかを示すメッセージを前記会計データベースから受信するよう適合されることを特徴とする請求項８７に記載のシステム。
【請求項９１】
前記会計処理システムは、前記更新要求が処理されることが可能かどうかを決定するために前記ローカルコピーをチェックするようさらに適合されることを特徴とする請求項８７に記載のシステム。
【請求項９２】
前記会計処理システムは、前記会計データベースの会計情報が更新される場合、前記ローカルコピーを更新するようさらに適合されることを特徴とする請求項８７に記載のシステム。
【請求項９３】
前記会計処理システムは、前記ローカルコピーが前記会計情報に関して最新でない場合、前記ローカルコピーを削除するとともに、前記会計情報の新たなコピーを格納するようさらに適合されることを特徴とする請求項８７に記載のシステム。
【請求項９４】
前記会計処理システムは、前記会計データベースに追加の断定的な更新要求を送信するようさらに適合され、これにより、前記新たなコピーが前記更新前の会計情報に関して最新である場合、前記会計データベースは前記会計情報を更新し、そして、前記新たなコピーが前記更新前の会計情報に関して最新でない場合、前記会計データベースは前記会計情報を更新しないことを特徴とする請求項９３に記載のシステム。
【請求項９５】
前記会計情報のローカルコピーを格納することが可能な前記ネットワーク上の追加の会計処理システムをさらに含むことを特徴とする請求項８７に記載のシステム。
【請求項９６】
前記会計処理システムは、前記会計データベースの会計情報が更新されたことを、前記追加の会計処理システムに通知するようさらに適合されることを特徴とする請求項９５に記載のシステム。
【請求項９７】
前記会計処理システムは、マルチキャスト通信及びポイントツー・ポイントメッセージの１つによって、前記追加の会計処理システムに通知するようさらに適合されることを特徴とする請求項９６に記載のシステム。
【請求項９８】
前記追加の会計処理システムに通知するとき、前記会計処理システムは、前記会計情報のバージョン番号を含むようさらに適合されることを特徴とする請求項９５に記載のシステム。
【請求項９９】
前記会計処理システムは、前記更新後の会計情報のバージョン番号を前記追加の会計処理システムへハートビート（heartbeat）するようさらに適合されることを特徴とする請求項９８に記載のシステム。
【請求項１００】
前記追加の会計処理システムは、前記会計情報のローカルコピーを削除すること、及び前記会計情報の更新コピーを要求することの少なくとも１つを行うようそれぞれ適合されることを特徴とする請求項８７に記載のシステム。
【請求項１０１】
前記会計処理システムは、前記会計データベースの会計情報が更新される予定であることを、前記追加の会計処理システムに通知するようさらに適合されることを特徴とする請求項８７に記載のシステム。
【請求項１０２】
前記追加の会計処理システムは、前記データベースの会計情報の更新をそれぞれに拒否することができることを特徴とする請求項８７に記載のシステム。
【請求項１０３】
前記会計処理システムは、パケット情報を前記追加の会計処理システムに送信するようさらに適合され、前記更新の影響で当該パケット情報は前記会計情報への変化を含むことを特徴とする請求項８７に記載のシステム。
【請求項１０４】
前記会計処理システムは、前記追加の会計処理システムが前記更新を受け入れることができる場合、前記追加の会計処理システムが前記会計情報の更新を受け入れるとともに、前記追加の会計処理システムに対する前記更新をコミットすることが可能かどうかを決定するようさらに適合されることを特徴とする請求項８７に記載のシステム。
【請求項１０５】
前記会計処理システムは、前記追加の会計処理システムが前記更新を受け入れることができない場合、前記更新をロールバックするようさらに適合されることを特徴とする請求項８７に記載のシステム。
【請求項１０６】
会計処理システムネットワーク上の取引を許可するシステムであって、
顧客が銀行会計情報を含む取引要求を行うことを許可するように適合されたＡＴＭ端末と、
前記顧客の銀行会計情報のコピーを格納するとともに、前記取引要求を処理するよう適合された会計処理システムと、
前記顧客の銀行会計情報を格納するとともに、前記ネットワーク上でその銀行会計情報に対するアクセスを提供するよう適合された銀行会計データベースとを備え、
前記会計処理システムは、前記要求を処理した後で、断定的な更新要求を銀行会計データベースに送信するよう適合され、これにより、前記ローカルコピーが前記更新前の銀行会計情報に関して最新である場合、前記銀行会計データベースは前記銀行会計情報を更新し、そして、前記ローカルコピーが前記更新前の銀行会計情報に関して最新でない場合、前記銀行会計データベースは前記銀行会計情報を更新しないよう適合されることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータを格納するシステムに一般的に関係し、より詳しくはデータをキャッシュし、かつ同時にチェックするシステム及び方法に関するものである。
【背景技術】
【０００２】
データ項目がネットワーク上でアクセス可能な単一データベース又はデータ記憶装置に格納されるとき、複数のサーバ又はクライアントがそのデータ項目にアクセスすることを要求するだろう。従来、これは、データ項目がアクセスされる各時点で、データベースから読み出されるデータを要求する。データベースから読み出される各データは、比較的資源が集中しており、かつ比較的非効率であった。
【０００３】
効率性及び拡張性の問題を克服する一つの方法は、データ項目がアクセスされる各時点でデータベースから読み出されるためにサーバ又はクライアントに要求することに関係するが、キャッシュメモリにデータ項目を格納することである。この方法の場合、サーバ又はクライアントがデータベースからデータ項目を読み出すと、その項目のコピーをローカルキャッシュに単純に格納したりする。データ項目のローカルコピーは、後にアクセスが必要とされる場合に使用されることができる。この処理は決して変更されることのないデータ項目にとって適切かつ効率的であるが、データ項目がデータベース内で更新されるときに問題が生じる。
【０００４】
データベースに格納されたデータ項目が更新される場合、その更新を自動的に受け入れなければ、ネットワーク上のローカルキャッシュに格納されたデータ項目のコピーは、そのデータベース内の項目と相違する可能性がある。この問題は、ネットワーク上の異なるサーバ及び／またはクライアントに複数のローカルコピーが存在するときに大きくなる。これらのローカルコピーのそれぞれは異なる時に生成されているので、複数のバージョンによるデータ項目がネットワーク上に存在し得る。ユーザがデータ項目を更新又は参照しようとする場合、ユーザによってアクセスされたコピーは現時点のものでなかったり及び／または正確でないかもしれない。
【０００５】
同時にこれらの問題は、例えばユーザが銀行の差引残高を示すデータ項目にアクセスするときのような大胆な結末を持ち得る。この銀行差引残高のローカルコピーが、預金の引きおろしを更新しない場合には、例えば、実際の差引残高とは大きく異なって（不正確に）ユーザに示されてしまうかもしれない。これはユーザが気づかずに残高以上に引き出しすぎてしまうことを導いてしまう。さらに、差引残高にアクセスする第三者又はＡＴＭのような装置が、示された残高が不正確であることを知るすべがないことになる。
【０００６】
＜著作権の公示＞
本特許文書の開示の一部は、著作権保護の規定に従った内容を含んでいる。著作権の所有者は、それが特許商標庁の特許ファイル又は記録においてあらわれるときに、特許文書又は特許開示に関する任意の者によるファクシミリの複製については何ら異議を唱えない。しかしその他の場合には、どんなことでもすべての著作権を留保する。
【０００７】
＜優先権主張された特許請求の範囲＞
本出願の特許請求の範囲は、以下の出願を優先権主張し、それらは引用によってここに組み入れられる。
２００１年８月３０日に出願された、”同時チェックによるクラスタキャッシュ”という表題の出願番号６０／３１６,１８７号の米国仮特許出願である。
２００２年８月２日に出願された、”同時チェックによるクラスタキャッシュ”という表題の出願番号１０／２１１,７１３号の米国特許出願である。
２００１年８月３０日に出願された、”アカウントの整合性を保持する方法”という表題の出願番号６０／３１６,１９０号の米国仮特許出願である。
２００２年８月２日に出願された、”アカウントの整合性を保持する方法”という表題の出願番号１０／２１１,７１２号の米国特許出願である。
【０００８】
＜クロスリファレンス（相互参照）＞
次の出願は相互参照され、引用によってここに組み入れられる。
２００１年７月１６日に出願された、Dean Bernard Jacobs, Reto Kramer,及びAnathan Bala Srinvasanによる”データ複製プロトコル”という表題の出願番号６０／３０５,９８６号の米国仮特許出願である。
【０００９】
（発明の概要）
したがって、キャッシュされたコピーの正確さを保証するキャッシュデータ項目及びデータオブジェクトのためのシステム及び方法を開発することが述べられる。
【００１０】
さらに、コピーがデータベースにおけるデータ項目の現在（最新）の状態を反映しない場合は、データ項目のコピーに対するいかなる変更も認められないことを保証するシステム及び方法を開発することが述べられている。
【００１１】
本発明に従ったシステム及び方法は、データ項目のキャッシングの同時性を保持する方法を提供する。項目を更新する要求がネットワークサーバによって受信されると、それはローカルキャッシュのようなデータ項目のローカルコピーを格納することができる。ネットワークサーバは、データ項目のローカルコピーを用いてその要求を処理することができる。”条件付の（conditional）”又は”断定的な（predicated）”更新要求が、ネットワークサーバからネットワークデータベースへ送信され、これによって、データ項目がローカルコピーと同じバージョンのデータを含んでいる場合、データベースはデータ項目を更新することができる。データ項目がローカルコピーと同じバージョンでない場合、データベースはデータ項目を更新しない。
【００１２】
コピーが同じバージョンを含まない場合、ネットワークサーバはデータ項目の現在（最新）コピーを要求することができ、そしてデータ項目の新たなコピーを用いてその更新要求を処理することができる。ネットワークサーバはそのデータベースに別の断定的な更新を送信することができる。この処理はデータベースのデータ項目が更新されるまで継続する。データ項目が更新されると、共通クラスタ内のサーバのような他のネットワークサーバは、データ項目が更新されたことを通知することができる。この時点で、これらネットワークサーバは、データ項目の任意のローカルコピーを捨て、ローカルキャッシュに格納する新たなコピーを要求することができる。
【００１３】
ネットワークサーバへの通知は、ネットワーク上の他の任意のサーバへ更新メッセージ又はバージョン番号をマルチキャスト通信するなどの適当な任意の方法によって行われる。また、ネットワークサーバはポイントツー・ポイントプロトコルなどによって互いに直接的に接続することができたり、又は他のサーバへ情報を絶えまなく送る（heartbeatする）ことができる。明細書、図面、及び特許請求の範囲を見直しすることにより、本発明の他の特徴、態様、及びオブジェクトを得ることができる。
【００１４】
（発明の詳細な説明）
本発明に従うシステムは、ローカルエリアネットワーク（ＬＡＮ）、イーサネット（登録商標）、又はインターネットのようなネットワークで同時アクセスを保持する間のデータをキャッシすることを許可する。このようなシステムは、同時性を保持する間、データ項目を更新する２部構成のアプローチの１つ又は両方を利用することができる。このようなシステムは、コンピュータ分野又は以下に記載の開発において知られ又は用いられる任意のソフトウェア又はハードウェア手段を通して、同時キャッシングを実行することができる。また、これらのシステムは、例えばＪａｖａ（登録商標）、ＨＴＭＬ、及びＸＭＬを用いて設計されるような、適当なソフトウェアアプリケーション、オブジェクト、言語、又は実行可能なファイルを利用することができる。
【００１５】
本発明に従うあるアプローチの第１の部分において、ネットワーク上のクライアント又はサーバはデータ項目をデータベースから読み出し、そのデータ項目のコピーをローカルキャッシュに格納する。サーバ又はクライアントがデータベースのデータ項目を更新することを望む場合、ローカルキャッシュに格納されたデータ項目が、データベースに格納された現在（最新）のバージョンのデータ項目に一致するかどうかで、更新が”条件付き”又は”断定的”となり得る。このアプローチは、データ項目及びデータベースを更新することを望むクライアント／サーバ間における同時性を保持する。また、この方法でデータをキャッシュすることは、実行性能と拡張性を改善することができる。
【００１６】
アプローチ１００の第１の部分に関する一例が、図１に示されている。ここで、クライアント１０２はネットワークサーバ１０６へ更新要求１０４を行う。本例のネットワークサーバ１０６は、更新されるデータ項目１１０のコピーをローカルキャッシュ１０８に格納する。ネットワークサーバ１０６が更新要求１０４を受信するとき、サーバ１０６は更新が処理されたかどうかをみるために項目１１０のローカルコピーをチェックする。データ項目１１０のローカルコピーの情報を用いて更新が処理されているかをサーバ１０６が判断する場合、このサーバ１０６は、データ項目１１６のオリジナルコピーを格納するデータベース１１４へ断定的な（predicated）更新１１２を送信する。データ項目１１６のオリジナルコピーの情報が、ローカルコピー１１０の情報と同じ場合、更新がデータベースへコミット(確定)される。その情報が異なる場合には、更新がコミット（確定）されない。サーバ１０６は更新状態メッセージ１１８をデータベース１１４から受信し、その更新がコミットされたかどうかを表示する。
【００１７】
また、前記更新がコミットされた場合、サーバはローカルキャッシュ１０８内のデータ項目１１０のコピーにその更新をコミットすることができる。データ項目１１０，１１６が非同期であったことから、更新がコミットされなかった場合、サーバはローカルキャッシュ１０８からデータ項目１１０のコピーを捨てるとともに、データベース１１４からの新たなコピーを要求することができる。
【００１８】
サーバ１０６が新たなデータ項目を有すると、サーバ１０６は、断定的な更新１１２をデータベース１１４へ再度送信することができる。あるいはまた、そのサーバは、新たなデータ項目に更新を試みるか否かを尋ねるメッセージをクライアント１０２へ送信することができる。サーバ１０６は、その更新を打ち切るか或いはまた断定的な更新を試みるとともにその更新がコミットされるまで必要とされるデータ項目の新たなコピーを得る処理を続けることができる。更新がコミットされたり打ち切られたりすると、サーバ１０６５は、更新応答１２０をクライアントに送信することができ、更新の試みの最終結果を示す。
【００１９】
クライアント／サーバがデータベース内のデータ項目を更新した後に、本アプローチの第２の部分が生じる。また、ネットワーク上の他のクライアント及び／またはサーバがローカルキャッシュに格納されたデータ項目のコピーを有しているので、更新を行うクライアント及び／またはサーバは、ネットワーク上の他のサーバと連絡をとりあうことができ、データ項目が更新されるたかを他のサーバに気づかせる。次に、ネットワーク上の他のクライアント及び／またはサーバは、ローカルキャッシュに格納されたデータ項目のコピーを更新し、そのデータ項目の現在（最新）コピーを要求することができたり、又はデータ項目のローカルコピーを単に捨てるとともに必要とされる場合にデータベースからコピーを要求できたりする。コピーが後に要求される場合、そのコピーはそのときにローカルキャッシュに格納されることが可能である。
【００２０】
図２は、図１に関して述べられたアプローチ１００の第２ステージを示す。図２において、サーバ１０６がデータベース１１４のデータ項目１１６及びローカルキャッシュ１０８におけるデータ項目１１０のコピーを更新すると、サーバ１０６は更新メッセージ１２８，１３０をクラスター１２６内の他のサーバ１２２，１２４へ送信する。これらのメッセージは、前述したようなポイントツー・ポイントメッセージ又は絶えることのない（heartbeating）マルチキャスト通信の形態をとることができる。
【００２１】
例えば、銀行システムでは、銀行システムネットワーク上の各サーバが、ユーザの銀行取引残高のコピーをローカルキャッシュに格納することができる。各ローカルキャッシュは、ユーザの取引に関する、取引情報及び処理経緯などの他の情報を含むことができる。この情報は全部又は一部をネットワーク上の各サーバでキャッシュされることができる。
【００２２】
このようなシステムでは、ＡＴＭ取引（ATM transaction）などの取引が生じる。ＡＴＭと通信するサーバは、取引を開始するユーザの取引残高のキャッシュコピーを格納することができる。例えば、ＡＴＭのユーザが、ユーザの取引口座から１００ドルを引きおろすことを望む場合、サーバはメモリからその残高を読み出し、その残高が取引を行うのに十分な資金を蓄えているかどうかを判断し、そして資金から支払う前か後の何れかで、取引残高より１００ドルを引き出す。
【００２３】
ユーザが取引口座から過剰に引きおろさないようにするため、サーバはまず、ユーザの取引残高のローカルコピーが、データベースに格納された残高による最新な値であるかを検証する。例えば、ローカルに格納された前の残高が５００ドルである場合、サーバは”更新残高＝４００ドル”などの更新メッセージをデータベースに対して送信することができる、またローカルキャッシュの取引口座における現在（最新）の残高値を含むことができる。そして、データベースの現在（最新）の取引残高がローカルキャッシュの取引口座における現在（最新）の残高と同じという事実に根拠が置かれた更新を行う。
【００２４】
データベースに格納された取引残高がローカルキャッシュの取引残高と同じでない場合、サーバはその更新をロールバック（roll back；後退復帰）する。更新がロールバックされると、サーバはローカルキャッシュのそのコピーを捨ててデータベースから口座取引情報を読み出すことができ、再度その更新を試みる。
【００２５】
例えば、取引残高のローカルコピーが、その残高は５００ドルであることを示し、かつデータベースが１０００ドルの残高を示す場合、サーバは４００ドルの更新企てをロールバックするとともに断定的な９００ドルの更新を試みて、現在（最新）の１０００ドルの残高より１００ドルの引き出しをする。この第２の更新は、再度、サーバによって最後に読み出されてから取引残高が変更されていないという事実に根拠が置かれている。取引残高が適切に更新されるか、取引が不十分な資金などのために打ち切られるの何れかになるまで、この処理が続く。
【００２６】
サーバによりデータベースのデータ項目を更新することに成功する場合、そのサーバはローカルキャッシュのコピーを更新することができ、その結果、ローカルコピーは、データベースにおけるデータ項目のバージョンで最新となる。複数のサーバ（又はクライアント）がローカルキャッシュのデータ項目のコピーを有することができるネットワークのために、データ項目を更新するサーバは、そのデータ項目が更新されたことを他のサーバに通知することができる。これは、ドメイン、クラスター、又は他の任意のネットワーク集合におけるネットワーク上の、任意又は全ての他のサーバ又はクライアントを含む。この通知は、各サーバ／クライアントとのポイントツー・ポイント接続による、マルチキャスト通信によって、１フェーズ分配方法、２フェーズ分配方法、更新又は変化量（delta）を絶えることなく送る（heartbeating）方法又は他の適切メッセージ手法によるなど多数の方法のどれかで達成されることができる。
【００２７】
障害面での信頼性と拡張性の両方で、通知の送信が行われることが望ましい。この結果、その処理はネットワークを有効に使用させる。ある単純なアプローチは、データ項目を更新するサーバ（”更新サーバ”）を、ネットワーク上の各サーバ又はクライアント（ネットワークサーバ）と個別に連絡を取り合うようにさせ、かつ、ＴＣＰ／ＩＰ接続のようなポイントツー・ポイントリンク上でメッセージを送信させることである。このメッセージは、データ項目が更新されたこと、そしてローカルキャッシュにおけるこのデータ項目のどんなコピーも打ち切るべきであることを、ネットワークサーバがこれらのネットワークサーバに告げることができる。前記アプローチは、１以上のネットワークサーバが一時的に成し遂げられない場合、又はネットワークサーバが更新処理においてエラーに遭遇する場合に、データのコピーを一致しないものへと導くことができる。
【００２８】
本発明に従って用いられることが可能な全体処理におけるステップが図３〜図５に示されている。図３の処理２００において、クライアントなどからの更新要求がネットワークサーバで受信され、更新されるデータ項目のローカルコピーを格納する（２０２）。この更新は、データ項目のローカルコピーを用いてネットワークサーバによって処理される（２０４）。断定的な更新要求は、ネットワークサーバから、データ項目のオリジナルコピーを含むネットワークデータベースへ送信される（２０６）。データ項目のオリジナルコピーとローカルコピーが、そのデータ項目に関して同じバージョンを含む場合、更新要求がコミット（確定）される（２０８）。そうでない場合、断定的な更新要求が打ち切られる（２１０）。
【００２９】
図４は、前記断定的な更新要求が打ち切られる場合に用いられることが可能な処理３００を示す。ネットワークサーバは、データ項目の現在（最新）コピーを要求することができる（３０２）。次に、ネットワークサーバは、データ項目の現在（最新）コピーを用いて更新要求を処理することができる（３０４）。断定的な更新要求は、ネットワークサーバから、データ項目のオリジナルコピーを含むネットワークデータベースへ再度送信される（３０６）。データ項目のオリジナルコピーとローカルコピーが、そのデータ項目に関して同じバージョンを含む場合、更新要求がコミット（確定）される（３０８）。そうでない場合、断定的な更新要求が再度打ち切られ（３１０）、そして、処理３００は更新がコミットされるまで繰り返される。
【００３０】
図５は、更新がコミットされることを用いた処理４００を示す。更新の範囲におけるサーバ、又は共通のクラスターやドメインのサーバなど、ネットワーク上の任意の他のサーバは、データ項目が更新される予定であることが通知される（４０２）。次に、通知されるサーバは、ローカルキャッシュなどに格納されるデータ項目に関する任意のローカルコピーを捨てる（４０４）。ローカルコピーを捨てるかまたはそのデータ項目に関する次の要求を受信するかの何れかの直後に、これらのサーバはデータ項目に関する更新されたコピーを要求することを選択する（４０６）。
【００３１】
２相コミットの場合、更新の範囲又は同じクラスターなどにおけるネットワーク上の他の任意のサーバは、コミットの間に項目が更新される予定であることが通知されることができる。例えば、更新は、その更新が成功してコミットされることができるか否かが判断される準備ステージをまず通過することができる。このフェーズの間、又は少なくとも更新がコミットされる前に、更新が通知される任意のサーバが当該コミットを拒否することができる。コミットを拒否することによって、任意の準備がロールバックされ、かつその更新をデータベースに書き込ませない。更新が準備フェーズをうまくやり終えるとともにサーバによって拒否されない場合、この更新はデータベース内のデータ項目をコミットさせることができる。
【００３２】
また、通知の送信は、データ項目のローカルコピーをキャッシュするかもしれない他のサーバ／クライアントに対してその通知をマルチキャスト通信することによって送信することができる。この具体例におけるマルチキャスト通信は、ネットワーク／クラスター／ドメインに通知を一度でも送信する更新サーバを含み、ネットワークのサーバ／クライアントへ進行する。単純なマルチキャスト通信では、メッセージが一度だけ単に送信されるだけなので、その結果、更新を受信しないサーバが古くなった項目のコピーを捨てることに失敗してしまう。これは、結果として、次の要求を処理するときにそのデータ項目に関する断定的な更新試みの２以上の繰り返しをやり終えるサーバを生じさせ得る。
【００３３】
また、通知の送信は、絶えることなく送ること（”heartbeat”）を通して送信されることができる。このアプローチにおけるheartbeatは、他のメッセージ手段が用いられるのであるが、周期的メッセージであり典型的にはマルチキャスト通信である。それは、データ項目のローカルコピーを格納するかもしれないサーバ／クライアントに送信される。各サーバ／クライアントがheartbeatや他の任意の適切な目安（measure）を受信したことを応答するまで、所定数のheartbeatのために、更新サーバは所定の期間最後の更新を絶えることなく送る（heartbeatする）ことを続ける。
【００３４】
データ項目に対する各更新は、バージョン間の増加変化量（delta）としてパッケージされることができる。他のアプローチ手法がそれに応じて用いられることができるのであるが、本発明に従うプロトコルは更新の配信に関する２つの手法を統合する。これらの配信手法は一相手法（one-phase method）及び二相手法（two-phase method）に関して引用され、そして整合性と拡張性との間のトレードオフを与える。一相手法の場合、それは拡張性に有利となることが可能であって、ネットワークサーバのそれぞれがそれ自身のペースで更新を得るとともに処理する。ネットワークサーバは異なる時点で更新サーバから更新を得るが、更新が受信されるとすぐに各更新をコミットする。ネットワークサーバの１つは、更新処理においてエラーに遭遇し得るが、一相手法においてこれはネットワークサーバが更新を処理しないようにするものではない。
【００３５】
本発明に従う二相手法において、それは整合性に有利となることが可能であって、配信は、更新を成功して処理するネットワークサーバが全部又は全くないの何れかという”アトミック（atomic）”である。準備とコミットフェーズの分離フェーズがあり、それは拒否の可能性を許可することができる。分離フェーズにおいて、更新サーバは各ネットワークサーバが更新をとることができるかどうかを判断する。全てのネットワークサーバが更新を受け入れることができることを示す場合、新たなデータがネットワークサーバへ送られ、コミットフェーズでコミットされる。少なくとも１つのネットワークサーバが更新をとることができない場合、その更新は拒否されることができ、結果として何のコミットも生じない。この場合、更新サーバはその準備をロールバックされるべきで何の変化も無いことを知らされる。いずれかの手法において更新がコミットされるとき、達成されないネットワークサーバの１つが最後はその更新を得るように、本発明に従うこのようなプロトコルは信頼できる。
【００３６】
また、本発明に従うシステムは、一時的に利用不可能なサーバが、最後にはすべての更新を受信することを保証することができる。例えば、サーバがネットワークから一時的に隔離され、次に再起動することなくネットワークへ戻る。サーバが再起動しないので、サーバは通常、更新をチェックしないであろう。サーバに新たな更新を周期的にチェックさせることによって、又はネットワークサーバが更新を受信したかどうかをみることを更新サーバに周期的にチェックさせることによって、ネットワークサーバに戻ってくるサーバを考慮することができる。
【００３７】
ある実施例において、更新サーバは、所定の周期又は所定数のハートビート（heartbeat）等のために、マルチキャスト通信の”ハートビート（heartbeat）”をネットワークサーバに規則的に送信する。マルチキャスト通信アプローチは信頼できないので、ネットワークサーバの１つがハートビート（heartbeat）の任意の順序をミスする可能性がある。このため、ハートビート（heartbeat）は、最近の更新に関する情報ウィンドウを含むことができる。以前の更新に関するこのような情報は、前述したように、ネットワークトラフィックの量を減少させるのに用いられてきた。取引残高などの例において、経過情報は必要ではなく、ハートビート（heartbeat）が現在（最新）の残高を単に含んでいる。
【００３８】
更新サーバは、バージョン番号を含むマルチキャスト通信のハートビート（heartbeat）をネットワークサーバへ周期的に送信することを続けることができる。スレーブ（slave）がシステムに戻るときのように、これは、利用可能であること又は増加変化量（delta）を受信及び処理できない任意のサーバを許可し、ハートビート（heartbeat）がデータ項目の現在（最新）のバージョンにないことを判断し、かつ増加変化量（delta）を要求したり又は後に更新したりする。ハートビート（heartbeat）に現在（最新）値が含まれていない場合、サーバはこの新たな値を単にコミットする。
【００３９】
一相手法の更新のために、これらのハートビート（heartbeat）は、ネットワークサーバのそれぞれに、データ項目に関するサーバの現在（最新）バージョンより開始する増加変化量（delta）を結果として要求するように生じさせることができる。このような処理は図６のフローチャートに示されている。
【００４０】
本基本処理５００において、更新サーバ又はデータベース内の現在（最新）のデータ項目に関するバージョン番号は、更新サーバから他のネットワークサーバの１つへ送信される（５０２）。ネットワークサーバは、それが現在（最新）のバージョン番号に更新されたかどうかを判断する（５０４）。ネットワークサーバが現在（最新）のバージョンにない場合、それは、データ項目を更新するために必要とされた情報を含む更新サーバより送信される増加変化量（delta）を要求する（５０６）。増加変化量が送信されるとき、ネットワークサーバは現在（最新）のバージョンに更新するために増加変化量を処理する（５０８）。また、ネットワークサーバは、データ項目に関するバージョン番号を現在（最新）のバージョン番号に更新する。
【００４１】
二相手法による更新のために、更新サーバは、直前のバージョンからの増加変化量（delta）を、先を見越して各ネットワークサーバに送信する準備フェーズから始まる。このプロセスが図７のフローチャートに示されている。本基本処理６００において、情報パケットが、更新サーバから少なくとも１つの他のネットワークサーバへ送られる（６０２）。このパケットを受信する各ネットワークサーバは、パケットを処理することができ、かつ現在（最新）バージョンに更新することが可能か判断する（６０４）。パケットを受信する各サーバは更新サーバに応答し、ネットワークサーバがパケットを処理できるかどうかを示す（６０６）。（データが送信される）すべてのネットワークサーバが、あるタイムアウト期間内に増加変化量（delta）に関する成功した処理を認める場合、更新サーバは更新をコミットすることを決定することができる。その他の場合、更新サーバは更新を打ち切ることを決定することができる。この決定がなされると、更新サーバは、更新がコミット又は打ち切られるべきかどうかを示すメッセージをネットワークサーバに送信する（６０８）。前記決定がコミットである場合、各ネットワークサーバはコミットを処理する（６１０）。さらに、コマンドがスレーブ（slave）の１つによって見過ごされる場合に、ハートビート（heartbeat）はコミット又は打ち切りが生じたかどうかの信号に用いられることができる。
【００４２】
増加変化量（delta）を引き出すサーバの能力に加え、更新サーバは二相配信の間に増加変化量（delta）を引き出す能力を有することができる。一実施例において、これらの増加変化量（delta）は、常に、連続したバージョンのデータ間にある。この二相配信手法は、参加者の間での不一致の可能性を最小にすることができる。サーバは、更新をクライアントにさらしたりロールバック（後退復帰）できない更新を行うことなく、プリペア（準備）をできるかぎり処理することができる。これは矛盾（conflict）のためにサーバをチェックするようなタスク（task）を含んでいる。どんなサーバのエラー信号でも、例えば、”ディスクが一杯です”又は”コンフィグレーションが矛盾しています”というメッセージを送ることによって、更新が統一的にロールバックされることができる。
【００４３】
しかしながら、不一致が起きる可能性がまだある。例えば、ソケット（socket）をオープンできないという理由から、コミット処理でエラーが生じる。また、サーバは異なる時点で更新をコミットしかつ露出（expose）することができる。データは管理されたすべてのサーバに厳密な同時点で到着できないので、あるさざなみ効果が存在し得る。マルチキャストの使用は、さざなみ効果を最小にするという試みにおいて、小さな時間ウィンドウを提供する。一実施例において、信号をミスし、マスターがクラッシュしたなどにかかわらず、コミットに失敗する場合に、準備されたサーバは打ち切るだろう。
【００４４】
マルチキャスト通信への最大効果のアプローチは、サーバにコミット信号をミスするようにさせることができる。更新サーバがコミットフェーズを介して一部をクラッシュする場合、リカバリーのためのログ（履歴）又は手段が全くない。更新サーバが残りのサーバに対して、コミットのために必要とされていることを知らせる方法も全くない。打ち切りによって、バージョンが正しくロールバックされない場合、サーバはデータをコミットすることで終わる。一実施例では、残りのサーバは一相配信を用いて更新を得ることができた。これは、例えば、更新サーバから受信したハートビート（heartbeat）に応答して、サーバが増加変化量（delta）を引き出すときに起こるのかもしれない。本アプローチは拡張性のあるシステムを維持することができ、どんなコミット又はバージョンエラーも避けるためにシステムが配信を制限する場合に、本アプローチは滅ぼされるだろう。
【００４５】
前のバージョンに関する情報が増加変化量（delta）に含まれなかった場合、サーバは打ち切られなければならず、そしてサーバが準備されたもののコミットに失敗した場合には再スタートされなければならない。旧バージョン情報を含むことで、サーバは準備を予定していた更新のある一部をコミットし、そして新たな増加変化量（delta）のためにより最近の更新を処理するよう要求することができる。速射（rapid-fire）の更新がそのウィンドウを受け入れ不可能なサイズに大きくさせるのではあるが、与えられたバージョンに関する情報は、少なくとも固定され、適合性のあるハートビート（heartbeat）の数のために包含されることができる。他の実施例では、旧バージョンに関する情報が一度捨てられ、更新サーバは、全てのネットワークサーバが更新を受信したことを決定する。
【００４６】
マルチキャスト通信のハートビート（heartbeat）は、考慮される必要のある幾つかの属性（property）を持つことができる。これらのハートビート（heartbeat）は、非同期又は”一方向”となり得る。その結果、サーバがハートビート（heartbeat）に応答するまでに、更新サーバ又はデータベースが新たな状態に進んでしまっている。さらに、全てのサーバが全く同時に反応することはない。更新サーバは、サーバがその状態の知識を全く有していないとみなすことができるとともに、増加変化量（delta）が更新のために意図されていることを含むことができる。
【００４７】
また、スレーブが連続した任意のハートビート（heartbeat）をミスするかもしれないので、これらのハートビートは信頼性がない可能性がある。これは、ハートビートにおける旧バージョンの情報の包含に再度つながることができる。ある実施例では、ハートビートは、それらが送信されるためにサーバによって受信される。例えば、サーバはバージョン６をコミットするまでバージョン７をコミットしない。そのサーバはバージョン６を受信するまで待つことができたり、又はバージョン６を単に捨ててバージョン７をコミットしたりすることができる。この命令は、逆戻りのバージョンによって生成される可能性のある混乱を排除する。
【００４８】
本発明の好ましい実施例に関する先の記述は、図及び説明のために提供されている。それは、本発明が開示された厳密な形式に徹底させたり制限されたりすることを意図していない。本技術分野の当業者であれば多くの修正及びバリエーションが適用可能であろう。本発明の原理及びその実際の応用を最良に説明するために実施例が選択されかつ記載されていた。したがって、本技術分野の当業者であれば、様々な実施例及び考慮された特定の使用に適合させるための様々な修正によって本発明を理解することが可能であろう。本発明の範囲は、特許請求の範囲及びその均等物により定義されることが意図される。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施例に従うアプローチの第１の部分の図である。
【図２】本発明の一実施例に従うアプローチの第１及び第２の部分の図である。
【図３】本発明の一実施例に従う更新処理に関するフローチャートである。
【図４】本発明の一実施例に従い、ローカルコピー及びオリジナルコピーが同期しないときにデータ項目を更新する処理に関するフローチャートである。
【図５】本発明の一実施例に従い、ネットワーク上のネットワークサーバを更新する処理に関するフローチャートである。
【図６】本発明の一実施例に従う１フェーズ目の処理に関するフローチャートである。
【図７】本発明の一実施例に従う２フェーズ目の処理に関するフローチャートである。
【図１】
2005502131.tif 000003
【図２】
2005502131.tif 000004
【図３】
2005502131.tif 000005
【図４】
2005502131.tif 000006
【図５】
2005502131.tif 000007
【図６】
2005502131.tif 000008
【図７】
2005502131.tif 000009
【国際公開パンフレット】
2005502131.tif 000010
2005502131.tif 000011
2005502131.tif 000012
2005502131.tif 000013
2005502131.tif 000014
2005502131.tif 000015
2005502131.tif 000016
2005502131.tif 000017
2005502131.tif 000018
2005502131.tif 000019
2005502131.tif 000020
2005502131.tif 000021
2005502131.tif 000022
2005502131.tif 000023
2005502131.tif 000024
2005502131.tif 000025
2005502131.tif 000026
2005502131.tif 000027
2005502131.tif 000028
2005502131.tif 000029
2005502131.tif 000030
2005502131.tif 000031
2005502131.tif 000032
2005502131.tif 000033
2005502131.tif 000034
2005502131.tif 000035
2005502131.tif 000036
2005502131.tif 000037
2005502131.tif 000038
2005502131.tif 000039
2005502131.tif 000040
2005502131.tif 000041
2005502131.tif 000042
2005502131.tif 000043
2005502131.tif 000044
2005502131.tif 000045
2005502131.tif 000046
2005502131.tif 000047
2005502131.tif 000048
2005502131.tif 000049
2005502131.tif 000050
2005502131.tif 000051
2005502131.tif 000052
2005502131.tif 000053
【国際公開パンフレット（コレクトバージョン）】
2005502131.tif 000054
2005502131.tif 000055
【国際調査報告】
2005502131.tif 000056