(57)【要約】      （修正有）【課題】ウェブファームのメンバー間でデータを同期させるための方法および装置を提供する。【解決手段】ウェブファームは、１つの主メンバーと、少なくとも１つのバックアップメンバーとを含む。ウェブファームメンバーは、モジュールを含み、モジュールは、新しいデータがウェブファームに使用可能であるかどうかを判断し（602）、新しいデータが使用可能であるときは、ウェブファームを準備状態にし（604）、ウェブファームのメンバーが新しいデータを受信することに成功したときは、ウェブファームをコミット状態にし、ウェブファームメンバーの何れかが新しいデータを受信することに失敗したときは、ウェブファームをアボート状態にする（606）。【選択図】図６
2010108510.tif 000002
【特許請求の範囲】
【請求項１】
ウェブファームのメンバー間でデータを同期させるための方法であって、
新しいデータがウェブファームに使用可能であるかどうかを判断することと、
新しいデータが使用可能であるときは、ウェブファームを準備状態にすることと、
ウェブファームの全メンバーが前記新しいデータを受信するのに成功したときは、ウェブファームをコミット状態にすることと、
前記ウェブファームの前記メンバーの何れかが前記新しいデータを受信するのに失敗したときは、ウェブファームをアボート状態にすることとを含む方法。
【請求項２】
新しいデータがウェブファームに使用可能であるかどうかを判断する前記動作が、定期的に行われる請求項１記載の方法。
【請求項３】
ウェブファームを準備状態にする前記動作が、前記ウェブファームメンバーによって、前記新しいデータを仮リポジトリ内に入れる動作をさらに含む請求項１記載の方法。
【請求項４】
ウェブファームを準備状態にする前記動作が、前記ウェブファームメンバーによって、前記新しいデータの記憶状態を配布マネージャに通知する動作をさらに含む請求項１記載の方法。
【請求項５】
ウェブファームを準備状態にする前記動作が、前記配布マネージャによって、前記記憶状態の通知を受信するために所定の時間待つ動作をさらに含む請求項４記載の方法。
【請求項６】
ウェブファームをコミット状態にする前記動作が、前記仮リポジトリのデータを、前記ウェブファームの現在のデータにする動作をさらに含む請求項３記載の方法。
【請求項７】
ウェブファームをアボート状態にする前記動作が、ロールバックアクションを実行する動作をさらに含む請求項１記載の方法。
【請求項８】
前記ウェブファームメンバーによって、主メンバーのためのフェイルオーバーサポートを行う動作をさらに含む請求項１記載の方法。
【請求項９】
前記ウェブファームメンバーによって、前記主メンバーの可用性を定期的に検査する動作をさらに含む請求項８記載の方法。
【請求項１０】
前記主メンバーが使用可能でないときは、所定のウェブファームメンバーによって、前記ウェブファームの制御を引き受ける動作をさらに含む請求項９記載の方法。
【請求項１１】
前記所定のウェブファームメンバーが、制御を引き受ける前に、前記主メンバーの可用性を所定回数検査する請求項９記載の方法。
【請求項１２】
前記ウェブファームメンバーが、所定の順序で制御を引き受ける請求項１０記載の方法。
【請求項１３】
ウェブファームのメンバー間でデータを同期させる方法が、
１つの主メンバーと、少なくとも１つのバックアップメンバーとを用意することと、
ウェブファームメンバーに新しいデータを受信するように命令することと、
前記ウェブファームメンバーの何れかが前記新しいデータを受信することに失敗したかどうかを判断することと、
前記ウェブファームメンバーの全てが前記新しいデータを受信したときは、前記新しいデータを記憶するように前記ウェブファームメンバーに命令することと、
前記ウェブファームメンバーの何れかが前記新しいデータを受信することに失敗したときは、データの前の組に戻るように前記ウェブファームメンバーに命令することとを含む方法。
【請求項１４】
新しいデータを受信するようにウェブファームのメンバーに命令する前記動作が、前記新しいデータを仮リポジトリに入れる動作をさらに含む請求項１３記載の方法。
【請求項１５】
ウェブファームのメンバーに新しいデータを受信するように命令する前記動作が、前記少なくとも1つのバックアップメンバーによって、前記新しいデータの記憶状態を前記主メンバーに通知する動作をさらに含む請求項１３記載の方法。
【請求項１６】
ウェブファームのメンバーに新しいデータを受信するように命令する前記動作が、前記主メンバーによって、前記記憶状態の通知を受信するために所定の時間待つ動作をさらに含む請求項１５記載の方法。
【請求項１７】
前記新しいデータを記憶するように前記ウェブファームメンバーに命令する前記動作が、前記仮リポジトリのデータを前記ウェブファームの現在のデータにする動作をさらに含む請求項１４記載の方法。
【請求項１８】
前記少なくとも１つのバックアップメンバーによって、主メンバーのためのフェイルオーバーサポートを行う動作をさらに含む請求項１３記載の方法。
【請求項１９】
前記少なくとも１つのバックアップメンバーによって、前記主メンバーの可用性を定期的に検査する動作をさらに含む請求項１８記載の方法。
【請求項２０】
前記主メンバーが使用可能でないときは、所定のバックアップメンバーによって、前記ウェブファームの制御を引き受ける動作をさらに含む請求項１９記載の方法。
【請求項２１】
前記所定のバックアップメンバーが、制御を引き受ける前に、前記主メンバーの可用性を所定回数検査する請求項１９記載の方法。
【請求項２２】
前記少なくとも１つのバックアップメンバーが、所定の順序で制御を引き受ける請求項
２０記載の方法。
【請求項２３】
同期したウェブファームであって、
配布サーバからデータを受信するように構成された１つの主ウェブファームメンバーと、
配布サーバからデータを受信するように構成された少なくとも１つのバックアップメンバーとを含み、
前記主メンバーが、
新しいデータがウェブファームに使用可能であるかどうかを判断し、
新しいデータが使用可能であるときは、ウェブファームを準備状態にし、
ウェブファームのメンバーが、前記新しいデータを受信するのに成功したときは、ウェブファームをコミット状態にし、
前記ウェブファームの前記メンバーの何れかが、前記新しいデータを受信するのに失敗したときは、ウェブファームをアボート状態にするように構成された同期したウェブファーム。
【請求項２４】
前記主メンバーが、さらに加えて、新しいデータがウェブファームに使用可能であるかどうかを判断することが定期的に行われるように構成されている請求項２３記載のウェブファーム。
【請求項２５】
前記ウェブファームメンバーが、さらに加えて、仮リポジトリ内に前記新しいデータを記憶するように構成されている請求項２３記載のウェブファーム。
【請求項２６】
前記少なくとも1つのバックアップメンバーが、さらに加えて、前記新しいデータの記憶状態を前記主メンバーに通知するように構成されている請求項２３記載のウェブファーム。
【請求項２７】
前記主メンバーが、さらに加えて、前記記憶状態の通知を受信するために所定の時間待つように構成されている請求項２６記載のウェブファーム。
【請求項２８】
前記ウェブファームが、さらに加えて、前記アボート状態の際に、ロールバックアクションを実行するように構成されている請求項２３記載のウェブファーム。
【請求項２９】
前記ウェブファームが、さらに加えて、前記主メンバーのためにフェイルオーバーサポートを行うように構成されている請求項２３記載のウェブファーム。
【請求項３０】
前記ウェブファームが、さらに加えて、前記主メンバーの可用性を定期的に検査するように構成されている請求項２９記載のウェブファーム。
【請求項３１】
前記ウェブファームが、さらに加えて、前記主メンバーが使用可能でないときは、所定のウェブファームメンバーによって、前記ウェブファームの制御を引き受けるように構成されている請求項３０記載のウエブファーム。
【請求項３２】
前記所定のウェブファームメンバーが、さらに加えて、制御を引き受ける前に、前記主メンバーの可用性を所定回数検査するように構成されている請求項３１記載のウェブファーム。
【請求項３３】
前記ウェブファームメンバーが、さらに加えて、所定の順序で制御を引き受けるように構成されている請求項３１記載のウェブファーム。
【請求項３４】
ウェブファームのメンバー間でデータを同期させるためのシステムであって、
新しいデータがウェブファームに使用可能であるかどうかを判断するための手段と、
新しいデータが使用可能であるときは、ウェブファームを準備状態にするための手段と、
ウェブファームの全メンバーが、前記新しいデータを受信するのに成功したときは、ウェブファームをコミット状態にするための手段と、
前記ウェブファームの前記メンバーの何れかが、前記新しいデータを受信するのに失敗したときは、ウェブファームをアボート状態にするための手段とを含むシステム。
【請求項３５】
新しいデータがウェブファームに使用可能であるかどうかを判断することを定期的に行なうための手段をさらに含む請求項３４記載のシステム。
【請求項３６】
ウェブファームを準備状態にするための手段が、前記ウェブファームメンバーによって、前記新しいデータを仮リポジトリ内に入れる動作をさらに含む請求項３４記載のシステム。
【請求項３７】
前記ウェブファームメンバーによって、前記新しいデータの記憶状態を配布マネージャに通知するための手段をさらに含む請求項３４記載のシステム。
【請求項３８】
前記配布マネージャによって、前記記憶状態の通知を受信するために所定の時間待つための手段をさらに含む請求項３７記載のシステム。
【請求項３９】
前記仮リポジトリのデータを、前記ウェブファームの現在のデータにするための手段をさらに含む請求項３６記載のシステム。
【請求項４０】
ロールバックアクションを実行するための手段をさらに含む請求項３４記載のシステム。
【請求項４１】
前記ウェブファームメンバーによって、主メンバーのためのフェイルオーバーサポートを行うための手段をさらに含む請求項３４記載のシステム。
【請求項４２】
前記ウェブファームメンバーによって、前記主メンバーの可用性を定期的に検査するための手段をさらに含む請求項４１記載のシステム。
【請求項４３】
前記主メンバーが使用可能でないときは、所定のウェブファームメンバーによって、前記ウェブファームの制御を引き受けるための手段をさらに含む請求項４２記載のシステム。
【請求項４４】
制御を引き受ける前に、前記主メンバーの可用性を所定回数検査するための手段をさらに含む請求項４３記載のシステム。
【請求項４５】
所定の順序で制御を引き受けるための手段をさらに含む請求項４３記載のシステム。
【請求項４６】
機械によって読み出し可能なプログラム記憶装置であって、機械によって実行可能な命令のプログラムを具体的に具現して、ウェブファームのメンバー間でデータを同期させる方法を実行するためのプログラム記憶装置であって、前記方法が、
新しいデータがウェブファームに使用可能であるかどうかを判断することと、
新しいデータが使用可能であるときは、ウェブファームを準備状態にすることと、
ウェブファームの全メンバーが前記新しいデータを受信するのに成功したときは、ウェブファームをコミット状態にすることと、
前記ウェブファームの前記メンバーの何れかが前記新しいデータを受信するのに失敗したときは、ウェブファームをアボート状態にすることとを含むプログラム記憶装置。
【請求項４７】
新しいデータがウェブファームに使用可能であるかどうかを判断する前記動作が、定期的に行なわれる請求項４６記載のプログラム記憶装置。
【請求項４８】
ウェブファームを準備状態にする前記動作が、前記ウェブファームメンバーによって、前記新しいデータを仮リポジトリ内に入れる動作をさらに含む請求項４６記載のプログラム記憶装置。
【請求項４９】
ウェブファームを準備状態にする前記動作が、前記ウェブファームメンバーによって、前記新しいデータの記憶状態を配布マネージャに通知する動作をさらに含む請求項４６記載のプログラム記憶装置。
【請求項５０】
ウェブファームを準備状態にする前記動作が、前記配布マネージャによって、前記記憶状態の通知を受信するために所定の時間待つ動作をさらに含む請求項４９記載のプログラム記憶装置。
【請求項５１】
ウェブファームをコミット状態にする前記動作が、前記仮リポジトリデータを、前記ウェブファームの現在のデータにする動作をさらに含む請求項４８記載のプログラム記憶装置。
【請求項５２】
ウェブファームをアボート状態にする前記動作が、ロールバックアクションを実行する動作をさらに含む請求項４６記載のプログラム記憶装置。
【請求項５３】
前記ウェブファームメンバーによって、主メンバーのためのフェイルオーバサポートを行う動作をさらに含む請求項４６記載のプログラム記憶装置。
【請求項５４】
前記ウエブファームメンバーによって、前記主メンバーの可用性を定期的に検査する動作をさらに含む請求項５３記載のプログラム記憶装置。
【請求項５５】
前記主メンバーが使用可能でないときは、所定のウェブファームメンバーによって、前記ウェブファームの制御を引き受ける動作をさらに含む請求項５４記載のプログラム記憶装置。
【請求項５６】
前記所定のウェブファームメンバーが、制御を引き受ける前に、前記主メンバーの可用性を所定回数、検査する請求項５４記載のプログラム記憶装置。
【請求項５７】
前記ウェブファームメンバーが所定の順序で制御を引き受ける請求項５６記載のプログラム記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信、とくに、新奇で向上したウェブファームデータ同期化システムに関する。
【背景技術】
【０００２】
ウェブサイトの可用性は、いくつかのウェブファーム“メンバー”の間で処理タスクを分散させことによって高まるために、ウェブファームは高ボリュームのウェブサイトに一体化されている。
【０００３】
図１は、従来技術のウェブファーム100の模式図であり、ウェブファーム100はメンバー１．．．ｎを含む。各メンバーは、この技術において知られているウェブサーバとして機能するように構成され、プロセッサ102と、データの記憶および検索のためのデータベース104とを含む。
【０００４】
ウェブファームを実行することにおける1つの問題は、ウェブファームの全メンバー間でデータファイルを同期させるのを保証することである。一般に、新しいデータは、ウェブファーム100の全メンバーへゲートウエイ106を介して同時に提示される。ウェブサイトが効率的に機能するために、ウェブファームへ提示されるデータを、個々の各メンバー内に記憶しなければならず、その結果メンバーからメンバーへのデータの保全性が維持される。例えば、ウェブファームへ提示された新しいデータが、顧客データベース内に記憶されることになる新しい顧客を表わすとき、ウェブファームの全メンバーは、新しいトランザクションが行われる前に、新しい顧客データを記憶しなければならない。ウェブファームのメンバーの何れかが新しいデータを記憶するのに失敗すると、将来のトランザクションの保全性が損われることがある。
【０００５】
従来技術において、データの同期化の重要性が認識され、配布されるデータの保全性を保証する試みが行われた。例えば、従来技術のウェブファームは、時間遅延を用いて、ウェブファームの全メンバーが、遅れを取り戻して、新しいデータを記憶できるようにする。しかしながら、このアプローチには、ある特定の欠点がある。このような時間遅延は、ウェブファームの個々のメンバーの可用性、したがってホストされるウェブサイトの可用性全体を必然的に制限する。さらに加えて、時間遅延の間に、新しいデータは、ウェブファームの一部のメンバーに記憶され、一方で残りのメンバーは遅れを取り戻している。したがって、ウェブファームは、時間期間中に同期しない。メンバーの少なくとも１つが、新しいデータを記憶するのに失敗すると、ウェブファームをロールバックする必要があり、メンバー上でデータを前の既知の状態へ回復するプロセスが行われる。ウェブファームのロールバックは、好ましくない手続きであり、時間がかかり、かつ潜在的にエラーを起こし易い。
【発明の概要】
【０００６】
ウェブファームのメンバー間でデータを同期させるための方法および装置が開示される。１つの実施形態において、方法は、新しいデータがウェブファームに使用可能であるかどうかを判断することと、新しいデータが使用可能であるときは、ウェブファームを準備状態にすることと、ウェブファームのメンバーが新しいデータを受信するのに成功したときは、ウェブファームをコミット状態にすることと、ウェブファームのメンバーの何れかが新しいデータを受信するのに失敗したときは、ウェブファームをアボート状態にすることとを含む。
【０００７】
別の態様において、ウェブファームのメンバー間でデータを同期させるための方法であって、新しいデータを受信するようにウェブファームのメンバーに命令することと、ウェブファームメンバーの何れかが新しいデータを受信するのに失敗したかを判断することと、ウェブファームメンバーの全てが新しいデータを受信したときは、ウェブファームメンバーに新しいデータを記憶するように命令することと、ウェブファームメンバーの何れかが新しいデータを記憶するのに失敗したときは、データの前の組に戻るようにウェブファームメンバーに命令することとを含む方法が開示される。
【０００８】
同期したウェブファームも開示される。１つの態様において、ウェブファームは、アプリケーションダウンロードサーバからデータを受信するように構成された１つの主ウェブファームメンバーと、同じくアプリケーションダウンロードサーバからデータを受信するように構成された少なくとも１つのバックアップウェブファームメンバーとを含む。主メンバーは、新しいデータがウェブファームに使用可能であるかどうかを判断し、新しいデータが使用可能であるときは、ウェブファームを準備状態にし、ウェブファームメンバーが新しいデータを受信するのに成功したときは、ウェブファームをコミット状態にし、ウェブファームメンバーの何れかが新しいデータを受信するのに失敗したときは、ウェブファームをアボート状態にするように構成される。
【０００９】
本発明の特徴、目的、および長所は、別途記載される詳細な説明を、図面に関連して取り入れるとき、同じ参照符号が全体的に対応して同定され、より明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】従来技術のウェブファームの模式図。
【図２】この開示の教示にしたがって構成されたウェブファームの１つの態様の模式図。
【図３】この開示の教示にしたがって構成された主メンバーの１つの態様の模式図。
【図４】この開示の教示にしたがって構成されたバックアップメンバーの１つの態様の模式図。
【図５】この開示の教示にしたがって構成された記憶メンバーの１つの態様の模式図。
【図６】この開示の教示にしたがうウェブファームの同期化の１つの態様のフローチャート。
【図７】この開示の教示にしたがうウェブファームの同期化の１つの態様の状態図。
【図８】この開示の教示にしたがうフェイルオーバーサポートを特徴とするウェブファームの1つの態様の模式図。
【発明を実施するための形態】
【００１１】
当業者には、本発明の次の記述は、単に例示的であって、全く制限していないことが分かるであろう。このような当業者には、本発明の他の実施形態からも、この開示の成果を受けることが容易に分かるであろう。
【００１２】
本発明は、種々のコンピュータおよび機械読み出し可能データ構造において具現されると考えられる。さらに加えて、本発明を具現するデータ構造は、コンピュータおよび機械読み出し可能媒体を横切って、かつこの技術において知られている標準プロトコルを使用することによって、通信システムを通って、伝送されることが分かるであろう。
【００１３】
本発明は、さらに加えて、本発明の実施形態が記憶される機械読み出し可能媒体に関する。本発明に関係する命令を記憶するのに適した媒体も本発明の技術的範囲内であると考えられる。例えば、このような媒体は、磁気、光、または半導体媒体の形をとってもよい。
【００１４】
本発明は、フローチャートを使用することによって記載される。多くの場合に、本発明の実施形態の１つの例が示される。しかしながら、当業者には分かるように、本明細書に記載されている必要を満足させるために、ここに記載されているプロトコル、プロセス、および手続きは連続的に、または必要な回数、反復される。したがって、フローチャートを使用することによって本発明を表現することは、本発明の技術的範囲を制限するのに用いられない。
【００１５】
ここでは、開示される装置および方法の例示的な実施形態が開示される。ここでは“例示的”という用語は、“例、事例、または例示として働く”ことを意味するためにのみ使用される。“例示的な実施形態”として記載されている実施形態は、ここに記載されている他の実施形態よりも、好ましいまたは優れていると必ずしも解釈されない。
【００１６】
例示的な構造
図２は、この開示の教示にしたがって構成されるウェブファーム200の模式図である。ウェブファーム200は、１つの主メンバー202および少なくとも1つのバックアップメンバー204を含み、各々の構成は、別途詳しく記載する。ウェブファームは、少なくとも1つの記憶メンバー206も含む。
【００１７】
ウェブファームの種々のメンバーは、オペレーティングシステム、例えば、Microsoft Windows（登録商標）、ＵＮＩＸ(登録商標)、ＬＩＮＵＸ(登録商標)、または他の所望のオペレーティングシステムを実行するための、この技術において知られているハードウエアおよびソフトウエアを含み、Java(登録商標)言語で書込まれたアプリケーションを実行するように構成されることが好ましいと考えられる。メンバー機械は、スタンドアローンコンピュータ、マルチＣＰＵ機械、またはラックに取付けられたサーバであって、ラック上の他のサーバと共に収容されたサーバを含む。
【００１８】
ウェブファーム200のメンバーは、この技術において知られているハードウエアおよびソフトウエアを使用して、Oracle(商標)のようなデータベースを管理するようにも構成される。例示的な実施形態において、ウェブファーム200のメンバーは、拡張可能なマーク付け言語（Extended Markup Language, XML）のフォーマットで受信されるデータを記憶し、検索するように構成される。
【００１９】
ウェブファーム200のメンバーは、配布サーバ（Distribution Server, DS）300からデータを受信するように構成されていることが好ましい。ＤＳ300は、ウェブファーム200と、ウェブファームをホストしている企業の内部ネットワークとの間のトランザクションゲートウエイとして機能するようにも構成される。秘密トランザクション能力を与えるために、ウェブファーム200およびＤＳ300は、ＶＰＮ上のＳＳＬのような、この技術において知られている秘密プロトコルを使用して、ファイアーウォール302を通って通信する。
【００２０】
ここで、ウェブファーム200の各メンバーを、さらに詳しく記載する。
【００２１】
主メンバー
この開示のウェブファーム200では、１つの主メンバー202が、ウェブファームの種々のメンバーの同期化を担当すると考えられる。ウェブファーム内の各ファームメンバーは、データ状態を表わすので、主メンバー202は、配布マネージャとして機能し、ウェブファームの全メンバーがデータの組をもつことを保証する。例示的な実施形態において、主メンバー202は、所与の時間に、全てのメンバーが、同じＸＭＬおよびアプリケーションパッケージファイルをもつことを保証する。
【００２２】
図３は、この開示の教示にしたがって構成された主メンバー202の機能ブロック図を示している。主メンバー202は、各ウェブファームメンバー内の、ＸＭＬおよびパッケージファイルのような全てのデータのスケジューリングおよび同期化を制御するための主同期化マネージャ（synchronization manager, SyncMgr）モジュール302を含む。SyncMgrモジュール302は、Java(登録商標)アプリケーションとしてプログラムされる。SyncMgrモジュールは、確実性のために、別々のJava(登録商標)仮想機械を使用して、ウェブファーム機械の各々の上で実行される。別途詳しく記載されるように、主SyncMgr302は、また、ウェブファーム200の他のメンバーへ動作的に接続され、主同期化制御を行う。
【００２３】
主マネージャ202は、図２のＤＳ300からデータをダウンロードするためのアプリケーションダウンロードクライアント（Application Download Client, AdaClt）モジュール304も含む。AdaCltモジュール304は、ＨＴＴＰＳを介して、ファイアーウォール302を通ってＤＳ300と通信し、ＸＭＬおよびパッケージファイルのようなデータを受信することが好ましい。AdaCltモジュール304は、Java(登録商標)アプリケーションとしてプログラムされる。
【００２４】
主マネージャ202は、AdaCltモジュール304とインターフェイスするための分散クライアント（Distribution Client, DistClt）サーブレット306も含む。DistCltサーブレット306は、ウェブファームメンバーによって使用され、AdaClt304を作動し、ダウンロードプロセスを起動し、データをデータベース308へダウンロードする。DistCltサーブレット306は、ブートタイムを始動するように構成されたJava(登録商標)サーブレットエンジンを含む。
【００２５】
図４は、この開示の教示にしたがって構成されたバックアップメンバー204の機能ブロック図を示している。バックアップメンバー204は、既に記載したような、SyncMgrモジュール402も含む。しかしながら、バックアップSyncMgr402は、ウェブファーム200の他のメンバーに動作的に接続され、別途より詳しく記載するように、バックアップ同期制御を行うことが好ましい。
【００２６】
バックアップメンバー204は、ＤＳ300からデータを受信するために、上述のような、AdaCltモジュール304およびDistCltサーブレット306も含む。バックアップモジュール204は、ＤＳ300から受信したデータの記憶および検索のためのデータベース308を含み、主メンバー202の制御のもとで、ＤＳ300から受信したデータを記憶するように構成されていることが好ましい。
【００２７】
図５は、この開示の教示にしたがって構成された記憶メンバー206の機能ブロック図を示している。記憶メンバー206は、主メンバー202の制御のもとで、ＤＳ300から受信したデータを記憶するように構成されていることが好ましい。
【００２８】
記憶メンバー206は、既に記載したような、AdaCltモジュール304、DistCltサーブレット306、データベース308を含む。
【００２９】
ここで、この開示のウェブファームの動作の種々の態様を記載する。
【００３０】
動作
SyncMgrモジュールは、二相コミットアルゴリズムを実行し、ウェブファームメンバーが配布局から新しいデータを同時に受信することを保証するように構成されている。
【００３１】
図６は、この開示の教示にしたがうデータ同期化の１つの態様のフローチャートである。図６のプロセスは、動作600で始まり、ここでは、ウェブファームメンバーは新しいデータを得るように命令される。この開示の１つの態様において、この動作は、主メンバーが、ウェブファームの別のメンバーに、配布サーバからデータをフェッチするように命令することによって達成される。
【００３２】
プロセスは続いて、照会602において、何れかのウェブファームメンバーが、新しいデータを受信する試みに失敗したかどうかを判断する。ウェブファームメンバーの何れも新しいデータを受信することに失敗しなかったときは、動作604において、ウェブファームメンバーは新しいデータを記憶するように命令される。
【００３３】
しかしながら、ウェブファームメンバーの何れかが、新しいデータを適切に受信することに失敗したときは、動作606において、ウェブファームの全メンバーが前のデータに戻るように命令される。したがって、ウェブファームの何れかのメンバーが、新しいデータを適切に受信できなかったときは、全ウェブファームメンバーが既存のデータの組に戻る。
【００３４】
したがって、図６のプロセスは、全ウェブファームメンバーが新しいデータを受信することか、またはウェブファームメンバーの何れか１つが新しいデータを受信することに失敗したときは、ウェブファームメンバーの何れも新しいデータを受信しないことを保証する。したがって、図６のプロセスは、ウェブファームメンバー間のデータの不一致を無くす。
【００３５】
図７は、この開示にしたがうデータの同期化の別の態様の状態図である。図７のプロセスは、ウェブファームが準備状態であるときに始まる。１つの態様において、上述の主メンバーは、配布局からデータをダウンロードまたは受信するように、各ウェブファームメンバーに要求することによって、配布マネージャとして機能する。配布マネージャは、新しいデータを定期的に検査すると考えられる。新しいデータが使用可能であるときは、配布マネージャはウェブファームを準備状態にする。
【００３６】
準備状態の間は、各ウェブファームメンバーは、新しいデータベースファイルのような、仮リポジトリ内に、新しく受信したデータを記憶すると考えられる。
【００３７】
各ウェブファームメンバーは、準備状態であり続ける間は、新しいデータの記憶状態、すなわち、各受信プロセスが成功したがどうかを配布マネージャに通知する。配布マネージャは、準備状態中に全ウェブファームメンバーが応答するための所定の時間待つと考えられる。
【００３８】
全ウェブファームメンバーが、新しいデータを記憶するのに成功したという表示で応答すると、ウェブファームは、コミット状態へ移る。コミット状態では、配布マネージャは、新しいデータを永久データにするようにウェブファームメンバーに要求する。これは、配布マネージャが、仮リポジトリ内の新しく記憶されたデータを現在のデータにするように要求することによって達成される。
【００３９】
ウェブファームメンバーの何れかが、新しいデータを記憶するのに失敗したことを示すと、ウェブファームはアボート状態になる。アボート状態では、配布マネージャは、ロールバックアクションを実行する。ロールバックアクションでは、準備状態はアボートされ、かつ仮データは現在のデータにされない。さらに加えて、ウェブファームメンバーの何れかが、所定の時間に応答しなかったときは、配布マネージャは、準備状態がタイムアウトしたと判断し、ウエブファームをアボート状態にする。
【００４０】
この開示のウェブファームは、主メンバーが故障した場合に、フェイルオーバーサポートも行う。図８は、この開示の教示にしたがって、フェイルオーバーサポートを行うように構成されたウェブファーム800のブロック図である。図８は、１つの主メンバー202と、１つ以上のバックアップメンバー204とを含み、各々は、実質的に、既に示され、かつ記載されているように構成されている。
【００４１】
図８は、さらに加えて、主メンバーおよびバックアップメンバーのSyncMgrが、動作的に接続されて、フェイルオーバーサポートを行うことを示している。既に記載したように、ウェブファーム内には、主SyncMgr202は１つのみであるが、バックアップSyncMgr204は１つ以上ある。主SyncMgrの識別は、ハードワイヤリングまたはプリプログラミングのような方法によって予め定められ、したがって主ウェブファームメンバーが始動時に存在することを保証する。
【００４２】
バックアップメンバー204の1つは、主メンバー202を監視するように構成される。例示的な実施形態において、バックアップメンバー204のSyncMgrモジュールは、主マネージャ202が使用可能であることを定期的に検査する。バックアップメンバー204は、主メンバー202が使用可能でないと判断すると、バックアップマネージャ204は、主マネージャ202が故障していると結論する。別の例示的な実施形態において、バックアップマネージャは、試みを所定回数、連続的に失敗すると、主マネージャは故障していると結論する。
【００４３】
主メンバーの故障の際は、バックアップマネージャは、主メンバーになることによって、ウェブファームの制御を引き受ける。
【００４４】
図８は、複数のバックアップメンバーがあり、Ｎを、ウェブファーム内に存在するバックアップメンバーの数であるとして、バックアップメンバーが、Ｎ個のメンバーの連鎖において互いに監視するように構成されている事例も示している。多数の故障の際は、列内の次のバックアップメンバーが、主メンバーの役割を引き受ける。したがって、この開示のウェブファームは、最初の主マネージャを含めて、Ｎ＋１の冗長レベルを用意している。
【００４５】
例示的な実施形態において、構成ファイル内に記録されているホスト名の順序は、何れのバックアップSyncMgrが主デューティを引き継ぐかを決定する。
【００４６】
さらに加えて、開示されているウェブファームのモジュールが使用する構成ファイル内に、種々のサイト別情報を収めてもよい。
【００４７】
好ましい実施形態を含む、種々の実施形態のこれまでの記述は、当業者がこの開示の実施形態を作成または使用できるようにするために与えられている。これらの実施形態に対する種々の変更は、当業者には容易に明らかであり、ここに定められている一般的な原理は、発明の機能を使用することなく、他の実施形態に適用される。したがって、提示されている開示は、ここに示されている実施形態に制限されることを意図されておらず、ここに開示されている原理および新奇な特徴にしたがう最も広い範囲に一致することを意図されている。
【符号の説明】
【００４８】
100,200,800・・・ウェブファーム、102・・・プロセッサ、104・・・データベース、106・・・ゲートウエイ、202・・・主メンバー、204・・・バックアップメンバー、206・・・記憶メンバー、300・・・配布サーバ（ＤＳ）、302・・・主同期化マネージャ（SyncMgr）、304・・・アプリケーションダウンロードクライアント（AdaClt）モジュール、306・・・分散クライアント（DistClt）サーブレット、308・・・データベース、402・・・バックアップSyncMgrモジュール。
【図１】
2010108510.tif 000003
【図２】
2010108510.tif 000004
【図３】
2010108510.tif 000005
【図４】
2010108510.tif 000006
【図５】
2010108510.tif 000007
【図６】
2010108510.tif 000008
【図７】
2010108510.tif 000009
【図８】
2010108510.tif 000010
【手続補正書】
【提出日】平成21年12月22日(2009.12.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ウェブファームのメンバー間でデータを同期させるための方法であって、
新しいデータがウェブファームに使用可能であるかどうかを判断することと、
新しいデータが使用可能であるときは、ウェブファームを準備状態にすることと、
ウェブファームの全メンバーが前記新しいデータを受信するのに成功したときは、ウェブファームをコミット状態にすることと、
前記ウェブファームの前記メンバーの何れかが前記新しいデータを受信するのに失敗したときは、ウェブファームをアボート状態にすることとを含み、
新しいデータがウェブファームに使用可能であるかどうかを判断する前記動作が、定期的に行われる
方法。
【外国語明細書】
2010108510000001.pdf