(57)【特許請求の範囲】
【請求項１】
少なくとも１対の装置を含むフォールトトレーラントネットワーク用のファイル同期方法であって、該少なくとも１つの対の各々を構成する一方の装置は、該対を構成する他方の装置がスタンバイ状態を有する場合にアクティブ状態を有し、
（ａ）  アクティブ状態を有する該一方の装置においてファイルにアクセスするステップと、
（ｂ）  アクティブ状態を有する該一方の装置内での該ファイルへのアクセスに応答してファイルアクセス要求を実時間で生成し、スタンバイ状態を有する該他方の装置に該ファイルアクセス要求を実時間で送信するステップと、該ファイルアクセス要求は、複数のファイルアクセス要求から選択され、該複数のファイルアクセス要求は、読み取り要求と、書き込み要求と、開く要求と、閉じる要求とを含み、該方法は、さらに、
（ｃ）  スタンバイ状態を有する該他方の装置内で該ファイルアクセス要求を実行して、スタンバイ状態を有する該他方の装置内にそのファイルアクセスを実時間で二重化するステップと、
（ｄ）  スタンバイ状態を有する該他方の装置を使用してファイルアクセス確認を生成し、該ファイルアクセス確認をアクティブ状態を有する該一方の装置に送信するステップと、
（ｅ）  アクティブ状態を有する該一方の装置の該ファイルアクセス要求がスタンバイ状態を有する該他方の装置の対応するファイルアクセス確認を有しているかを判断するステップと、
（ｆ）  アクティブ状態を有する該一方の装置の該ファイルアクセス要求がスタンバイ状態を有する該他方の装置の対応するファイルアクセス確認を有する場合に、該ファイルアクセス要求と該対応するファイルアクセス確認とを削除するステップと、
（ｇ）  アクティブ状態を有する該一方の装置の該ファイルアクセス要求がスタンバイ状態を有する該他方の装置の対応するファイルアクセス確認を有していない場合に、エラーメッセージを生成し、アクティブ状態を有する該一方の装置のエラーログに該ファイルアクセス要求を転送するステップとを含む方法。
【請求項２】
請求項１に記載の方法において、該ステップ（ｂ）は、該ファイルアクセス要求をアクティブ状態を有する該一方の装置の要求待ち行列へと転送するステップを更に含む方法。
【請求項３】
請求項１に記載の方法において、該ステップ（ｄ）は、該ファイルアクセス確認をアクティブ状態を有する該一方の装置の確認待ち行列に転送するステップをさらに含む方法。
【請求項４】
請求項１に記載の方法において、該ステップ（ｃ）は、返し値を生成するステップを更に含む方法。
【請求項５】
請求項１に記載の方法において、該ステップ（ａ）は、複数のネットワークアプリケーションのうちの１つのネットワークアプリケーションによって実行される方法。
【請求項６】
請求項５に記載の方法において、ステップ（ｂ）乃至（ｇ）の実行はいずれも、該ネットワークアプリケーションに対して透過的である方法。
【請求項７】
請求項５に記載の方法において、該ステップ（ｂ）乃至（ｇ）の実行はいずれも、該ネットワークアプリケーションに依存しない方法。
【請求項８】
請求項１に記載の方法において、該ステップ（ｂ）乃至（ｇ）の実行はいずれも、アクティブ状態を有する該一方の装置とスタンバイ状態を有する該他方の装置内の動作プラットホームに依存しない方法。
【請求項９】
少なくとも１対の装置を含むフォールトトレーラント用にファイルを同期するシステムであって、該少なくとも１つの対の各々を構成する一方の装置は、該対を構成する他方の装置がアクティブ状態を有する場合にスタンバイ状態を有し、
（ａ）  スタンバイ状態を有する該一方の装置は、ファイルアクセス要求を実行し、アクティブ状態を有する該他方の装置内で発生している１つ又は複数のファイルアクセスをスタンバイ状態を有する該一方の装置内に実時間で二重化して、ファイルアクセス確認を生成し送信するプログラム命令を備え、
（ｂ）  アクティブ状態を有する該他方の装置は、通信リンクを通してスタンバイ状態を有する該一方の装置に接続され、ネットワークアプリケーションによる１つ又は複数のファイルアクセスの発生に応答してファイルアクセス要求を実時間で生成し、該生成したファイルアクセス要求をスタンバイ状態を有する該一方の装置に送信する命令を備え、該ファイルアクセス要求は、複数のファイルアクセス要求から選択され、該複数のファイルアクセス要求は、読み取り要求と、書き込み要求と、開く要求と、閉じる要求とを含み、
アクティブ状態を有する該他方の装置は、アクティブ状態を有する該他方の装置内で発生している該１つ又は複数のファイルアクセスの該実時間での二重化に応答してスタンバイ状態を有する該一方の装置が生成した該ファイルアクセス確認を受信し、スタンバイ状態を有する該一方の装置から受信した対応するファイルアクセス確認を該ファイルアクセス要求が有するかどうかを判断し、スタンバイ状態を有する該一方の装置から受信した該対応するファイルアクセス確認を該ファイルアクセス要求が有する場合に、アクティブ状態を有する該他方の装置は、該ファイルアクセス要求と該対応するファイルアクセス確認とを削除する命令を更に備え、スタンバイ状態を有する該一方の装置から受信した対応するファイルアクセス確認を該ファイルアクセス要求が有していない場合に、エラーメッセージを生成し、アクティブ状態を有する該他方の装置のエラーログに該ファイルアクセス要求を転送する命令をさらに含むシステム。
【請求項１０】
請求項９に記載のシステムにおいて、スタンバイ状態を有する該一方の装置は、該ファイルアクセス要求の実行の際に返し値を生成するシステム。
【請求項１１】
請求項９に記載のシステムにおいて、該ファイル同期は、該ネットワークアプリケーションに対して透過的であるシステム。
【請求項１２】
請求項９に記載のシステムにおいて、該ファイル同期は、該ネットワークアプリケーションに依存しないシステム。
【請求項１３】
請求項９に記載のシステムにおいて、該ファイル同期は、アクティブ状態を有する該他方の装置とスタンバイ状態を有する該一方の装置内の動作プラットホームに依存しないシステム。
【請求項１４】
少なくとも１対の装置を含むフォールトトレーラントネットワーク用のファイル同期装置であって、該少なくとも１つの対の各々を構成する一方の装置は、該対を構成する他方の装置がスタンバイ状態を有する場合にアクティブ状態を有し、該少なくとも１つの対の各々を構成する該装置の各々は、
（ａ）  ファイルアクセス要求の送信および受信とファイルアクセス確認の送信および受信のためのネットワークインターフェースと、
（ｂ）  該ファイルアクセス要求と該ファイルアクセス確認とを記憶するメモリと、
（ｃ）  該ネットワークインターフェースと該メモリーとにつながれたプロセッサとを含み、該プロセッサは、動作時に、１つのネットワークアプリケーションが該アクティブ状態を有する該装置内で１つ又は複数のファイルアクセスを実行した場合に、該ファイルアクセス要求を実時間で生成するように該アクティブ状態を有する装置に指示する命令を実行し、該ファイルアクセス要求は、複数のファイルアクセス要求から選択され、該複数のファイルアクセス要求は、読み取り要求と、書き込み要求と、開く要求と、閉じる要求とを含み、該プロセッサは、該装置がアクティブ状態にある時に、該ネットワークインターフェースを介して該ファイルアクセス要求を実時間で送信し、該ファイルアクセス要求が対応するファイルアクセス確認を有するか否かを判断するように指示する命令をさらに含み、該プロセッサは、該装置がアクティブ状態にある場合において、該ファイルアクセス要求が対応するファイルアクセス確認を有するときに、該メモリから該ファイルアクセス要求と該対応するファイルアクセス確認とを削除するように指示し、又は、該ファイルアクセス要求が対応するファイルアクセス確認を有しない場合に、エラーメッセージを生成し、該メモリ内のエラーログにファイルアクセス要求を転送するように指示するプログラム命令をさらに備え、該プロセッサは、該装置がスタンバイ状態にある場合において、該対を構成しアクティブ状態を有する該他方の装置のネットワークアプリケーションによる１つ又は複数のファイルアクセスに応答して実時間で生成された該ファイルアクセス要求を実行し、該他方の装置内で発生している該１つ又は複数のファイルアクセスを該スタンバイ状態を有する該装置内に実時間で二重化し、該１つ又は複数のファイルアクセスの該実時間での二重化に応答して該ファイルアクセス確認を生成し、そして、該ネットワークインターフェースを介して該ファイルアクセス確認を送信するように指示する命令をさらに含む装置。
【請求項１５】
請求項１４に記載の装置において、該プロセッサは、該ファイルアクセス要求の実行の際に返し値を生成する命令を更に含む装置。
【請求項１６】
請求項１４に記載の装置において、該メモリは、該ファイルアクセス要求を格納する要求待ち行列を備え、該ファイルアクセス確認を格納する確認待ち行列をさらに備える装置。
【請求項１７】
請求項１４に記載の装置において、該ファイル同期は、該ネットワークアプリケーションに対して透過的である装置。
【請求項１８】
請求項１４に記載の装置において、該ファイル同期は、該ネットワークアプリケーションに依存しない装置。
【請求項１９】
請求項１４に記載の装置において、該ファイル同期は、動作プラットホームに依存しない装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピューターおよび通信ネットワークに関し、特に、フォールトトレーラント通信ネットワークのためのファイル同期に関する。
【０００２】
【従来の技術】
洗練された通信サービスが益々増えているので、通信ネットワークが益々普及してきている。例えば、複数のプロセッサーを有する中央コンピューターによって通信サービスを行うよりも、コンピューターとサーバーの分散されたネットワークにより通信サービスを行わせることが多くなっており、このようなコンピューターやサーバーはそれぞれ、Intel Pentium（登録商標）クラスのプロセッサーのようなシングルプロセッサー、すなわち中央プロセッサーを備える。このようなコンピューターとサーバーの分散ネットワークは通常、イーサーネットや光ファイバーケーブルの高速バスによってお互い接続され、コスト効率や段階的にネットワークを成長できるというような利点を有する。
【０００３】
このような分散ネットワークコンピューターによる問題としてフォールトトレーランス(fault tolerance)の問題がある。すなわち、もし１つのコンピューターが故障すると、その故障したコンピューターがそれまで行っていた全ての機能を直ちにネットワーク上の別のコンピューターが受け継いでサービス故障を最小にすることである。例えば、もし通信サービスを提供しているプライマリーコンピューター（アクティブアプリケーションプロセッサー（アクティブＡＰ）（ディスティングイッシュト(distinguished)アプリケーションプロセッサーとしても知られる）と呼ばれる）が、故障（クラッシュ）となると、サービスの中断を防ぐため、フォールトトレーラントシステムはセカンダリーコンピューター（スタンバイアプリケーションプロセッサー（スタンバイＡＰ）と呼ばれる）にそれまでアクティブＡＰが提供していた全てのサービスのパフォーマンスを直ちに受け継ぐようにする。
【０００４】
スタンバイＡＰがサービスの中断を最小にして直ちにオンラインに復帰させるため、すなわち、故障や大きな事態が発生しなかったように、スタンバイＡＰは、アクティブＡＰと同じ情報にアクセスでき同期状態であることが好ましい。
【０００５】
従来技術において、このような同期状態を維持する試みは、アクティブＡＰからスタンバイＡＰによってファイルをコピーすることを伴っている。このようなコピープロセスは非常に時間がかかり、ギガビットのサイズのファイル群をコピーするのに何分間もかかり、サービスの損失や中断を発生させてしまう。結果として、数秒を越えるサービス中断を避けるため、このような遅れや中断を劇的に減らす必要性がある。
【０００６】
同期状態を与える他の従来技術のシステムにおいて、コンピューターをオートノマス(autonomous：自律的)に動作させることは可能ではなく、ロックされたステップにおいてのみ動作する。他のフォールトトレーラントシステムはスタンバイメカニズムを用意せず、ディスクに記憶された情報を自動的にバックアップするディスクアレー（レイド：RAID）を単に用意するだけである。また他のシステムは、コンピューターの冗長性クラスタリングのために追加的ハードウェアを必要とし、またプラットフォームに依存してしまう。
【０００７】
【発明が解決しようとする課題】
結果として、フォールトトレーラントネットワークにおいて情報同期状態を与える装置、方法、システムの必要性がある。このような同期状態は、サービス中断を防ぐため、非常に小さい時間フレーム内においてのみ発生されるべきである。また、このような装置、方法、システムは、追加的ハードウェアを必要とせず、プラットホームに依存せず、アプリケーションに依存しないことを必要とし、そのフォールトトレーランスがユーザーおよびアプリケーションに対して透過的（transparently）に発生すべきである。
【０００８】
【課題を解決するための手段】
本発明により、フォールトトレーラントネットワークに対してファイル同期を与える装置、方法、システムが提供される。概して、通信サーバーのようなアクティブネットワークエンティティーと、およびそのアクティブネットワークエンティティーが故障した場合に、そのアクティブネットワークエンティティーの機能を受け継ぐためのスタンバイネットワークエンティティーとを備える。本発明は、数秒間のような非常に小さい時間フレームにおいてこのような情報の同期状態を与え、アクティブネットワークエンティティーが故障しスタンバイネットワークエンティティーがアクティブになった場合にサービス中断を防ぐ。また、本発明は、追加的ハードウェアを必要とせず、プラットホームおよびアプリケーションに依存せず、そのフォールトトレーラントがユーザーおよびアプリケーションに対して透過的に発生する。
【０００９】
本発明の方法は、アクティブネットワークエンティティー内のファイルにアクセスすることにより始まる。これは、いずれかのネットワークアプリケーションの読み取りまたは書き込み要求によって行われる。アクティブネットワークエンティティーにてファイルアクセス要求が生成され、スタンバイネットワークエンティティーに送信され、このスタンバイネットワークエンティティーもまたファイルアクセス要求を行う。次にスタンバイネットワークエンティティーはアクティブネットワークエンティティーに対してファイルアクセス確認を生成し送信する。次にアクティブネットワークエンティティーは、アクティブネットワークエンティティーのファイルアクセス要求がスタンバイネットワークエンティティーからの対応するファイルアクセス確認を有するかどうかを判断する。
【００１０】
そのファイルアクセス要求が対応するファイルアクセス確認を有するのであれば、このことはアクティブおよびスタンバイネットワークエンティティーの間でファイルが同期状態であることを意味し、次にアクティブネットワークエンティティーは、メモリーからファイルアクセス要求および対応するファイルアクセス確認を削除する。しかし、ファイルアクセス要求がファイルアクセス確認を持っていなければ、これは同期状態が失われていることを意味し、アクティブネットワークエンティティーはエラーメッセージを生成しエラーログへとファイルアクセス要求を転送する。エラーログはその後で用いる。このような後のエラーログの使用は、アラーム状態を作ること、スタンバイネットワークエンティティーをアクティブ状態へと移すことを伴うことができる。
【００１１】
上述のように、本発明の方法は、ネットワークアプリケーションに対して透過性があり独立である。また本発明の方法は、アクティブおよびスタンバイネットワークエンティティーにおいて用いられる動作プラットホームに依存しない。多くのファイルアクセス要求には、読み取り要求、書き込み要求、オープン要求、クローズ要求を含み、ネットワークアプリケーションのいずれの種類のものによっても呼び出しされることができる。
【００１２】
【発明の実施の形態】
本発明は多くの異なる形態の実施形態において適用することができるが、明細書や図面においては特定の実施例のみを示している。
【００１３】
上述のように、フォールトトレーラントネットワークにおいて情報の同期状態を与える必要性がある。本発明に従い、フォールトトレーラントネットワークにおけるこのような情報やファイルの同期状態は数秒間のような非常に小さい時間フレーム内にて行われ、サービスの中断を避ける。また、本発明は、追加的ハードウェアを必要とせず、プラットホームに依存せず、アプリケーションに依存せず、ユーザーおよびアプリケーションに対してこのようなフォールトトレーラントを透過的にする。
【００１４】
図１には、本発明の実施例の装置２０およびシステム１０を示したブロック図である。各装置２０は、いずれの通信媒体の他のリンク（Ｔ１／Ｅ１光ファイバーケーブル、同軸ケーブルなど）やイーサーネットのような通信リンク１５を介してつながった複数の装置を備える。
【００１５】
図１において、各装置２０（２０A、２０S）はプロセッサー（ＣＰＵ）３０、ネットワークインターフェース（ＮＩＣ）３５、第１メモリー４０（ＲＡＭなど）、二次的な長期メモリー５０（磁気ハードドライブ、光記憶デバイス、他のデータ記憶デバイスなど）を備える。各装置２０はいかなる時でも、アクティブ（２０A）またはスタンバイ（２０S）と呼ばれる動作状態を有し、好ましい実施例において、各装置２０Aおよび２０Sは、対応するアクティブＡＰまたはスタンバイＡＰである。
【００１６】
装置２０A、２０Sはお互い（および他の装置２０にも）通信リンク１５（イーサーネットや他のネットワーク伝送媒体など）につながれ、それらのネットワークインターフェース３５を介してお互い通信し、本発明に従ってシステム１０を形成する。各装置２０の内部またはこれにつながれるものとして、磁気ハードドライブのような第２の長期メモリー５０があり、データや他のファイルの記憶手段として用いられる。
【００１７】
本発明に従い、データや他のファイルアクセス（下に詳細に説明する）がアクティブＡＰ（装置２０Aなど）とスタンバイＡＰ（２０Sなど）の間同期される。各装置２０の中にて好ましい実施例において第１メモリー４０が用いられ、下で説明するようにプログラム命令を記憶する。プロセッサー３０は第２メモリー５０へと双方向アクセスを備え、例えば、第２メモリー５０に記憶されたファイルを開いたり、読み込んだり、書き込んだり、閉じたりする。
【００１８】
図１において、各プロセッサー（ＣＰＵ）３０は、あるいは複数のＩＣないし部品を備えることができ、これらはお互い接続されたり、お互いと構成されたり、お互いグルーピングされてもよく、マイクロプロセッサー、デジタルシグナルプロセッサー（ＤＳＰ)、ＡＳＩＣ、対応するメモリー（ＲＡＭ、ＲＯＭなど)、他のＩＣや部品などがある。従って、本明細書において、「プロセッサー」は、１つのプロセッサー、複数のプロセッサー、マイクロプロセッサー、コントローラーの構成、あるいは下で図２、３に関連して説明するような機能を行うようなＩＣの集合などをも意味する。これには、マイクロプロセッサーメモリー、追加的ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなども含まれる。
【００１９】
下の図２、３に関連して説明するように本発明は、プロセッサー３０とともに対応するメモリー（第１メモリー４０など）や他の同等な部品において、プロセッサー３０が動作したとき（電源がオンにされ機能しているとき）に実行プログラム命令のセットとしてプログラミングされ記憶することができる。
【００２０】
下で説明するように、装置２０AのようなアクティブＡＰにおけるアプリケーションが第２メモリー５０Aにおけるファイルにアクセスすると、そのファイルアクセスは、スタンバイＡＰ（装置２０S）やその対応する第２メモリー５０Sにおいて実時間で二重化される。アクティブ装置２０Aにおいてファイルアクセスが発生した場合は必ず、各プロセッサー３０A、３０Sにおいて、「ＦＳＹＮＣ」プロセスを用いると、アクティブプロセッサー３０Aによって（ネットワークインターフェース３５A、通信リンク１５、ネットワークインターフェーススタンバイネットワークエンティティーを介して）スタンバイプロセッサー３０Sへと対応するアクセス要求が送信される。
【００２１】
次にスタンバイプロセッサー３０Sは、そのファイルアクセス要求を処理し、アクティブプロセッサー３０Aへと（また、通信リンク１５、対応するネットワークインターフェース３５Sを介して）確認を返す。ＦＳＹＮＣプロセスを通して、アクティブプロセッサー３０Aはファイルアクセス要求（アクティブＡＰにおける）すべてがスタンバイＡＰから対応する確認を得たことからモニタリングする。従って、本発明による方法は、スタンバイＡＰがアクティブＡＰにより記憶された現在の情報全てに仮想的には直ちにアクセスすることが出きる。
【００２２】
図２は、本発明の方法を示す動作流れ図であり、本発明に従ってアクティブＡＰ１００およびスタンバイＡＰ２００にて発生するプロセスにより実行される「ＦＳＹＮＣ」と呼ばれるファイル同期プロセスの集合があり、これはアクティブＡＰ１００からスタンバイＡＰ２００へと「第２メモリーにて記憶された」選択されたファイルの同期に関連する。図２に示したように、これらのファイル同期（ＦＳＹＮＣ）プロセスは、ＦＳＹＮＣオーディター１０５、ＦＳＹＮＣデーモン１１０、ＦＳＹＮＣファイルアクセスプロセス１１５（ＦＳＹＮＣ（ｆｔｓｐ）ファイルアクセスとも呼ばれる。ここで「ｆｔｓｐ」はフォールトトレーラントシステムプロセスを意味する）である。
【００２３】
これらＦＳＹＮＣプロセスは、アクティブＡＰ１００とスタンバイＡＰ２００において同等であり、下付添字によって区別する。従って、下付添字Ａは、アクティブＡＰ１００にて達成するアクティブプロセスを意味し、下付添字Ｂは、スタンバイＡＰにて発生するスタンバイプロセスを意味する。いかなる時間においても装置２０（ＡＰや他のコンピューターなど）は、アクティブ状態から非アクティブないし故障ＡＰの状態へと、アクティブＡＰからスタンバイＡＰへと遷移することがある。従って、各プロセスは、アクティブＡＰとスタンバイＡＰにおいて異なるプロセスが機能していることもあるが、両方において各プロセスが備えられる。
【００２４】
図２において、本発明のファイル同期方式は、図１に示した第２メモリー５０のようなメモリー１３０に位置する情報、データあるいは他のファイル（個別および集合的に「ファイル」と呼ぶ）にいかなるアプリケーション（ないしプロセス）１２０がアクセスした場合に発生する。このようなメモリー１３０は例えば、磁気ハードドライブ、磁気テープドライブ、あるいは光記憶媒体であってもよい。
【００２５】
図２に示すように、アプリケーション（ないしプロセス）１２０によるメモリー１３０へのこのようなアクセスは、アクセス１４０として示してあり、これは、メモリー１３０に記憶されたこのようなファイルに対して、ファイルを開いたり、ファイルから読み取ったり、ファイルへ書き込んだり、ファイルを閉じたりする要求とすることができる。いずれの種類の１２０もこれに関わり、本発明のファイル同期方式はいかなるアプリケーション１２０および装置２０（ＡＰ）のいかなるプラットホームに完全に透過性があり依存しない。
【００２６】
好ましい実施例において、このようなアプリケーション１２０がメモリー１３０へのアクセスが伴うと、必ず、機能のライブラリーが呼び出される。これは、ＦＳＹＮＣファイルアクセス機能１１５と呼ばれる。従って、ファイルがアプリケーション（ないしプロセス）１２０によってアクセスされると（１４０)、そのターゲットファイルはＦＳＹＮＣファイルアクセス機能によってアクセスされ、ファイルアクセス（１４１）の結果が、アプリケーション（ないしプロセス）１２０へと返される。
【００２７】
アプリケーション（ないしプロセス）１２０が、メモリー１３０におけるファイルへのアクセスを要求すると、それは、ＦＳＹＮＣ＿Ｄｉｓｋ＿ＩＯ（）のようなクラスないしライブラリーＦＳＹＮＣ１１５の新しいオブジェクトをインスタンス化する。コンストラクタＦＳＹＮＣ＿Ｄｉｓｋ＿ＩＯ（）が実行されると、ＦＳＹＮＣデーモン１１０は、信号、すなわち中断（１４２)を受信し、ファイルアクセスの要求もまた要求待ち行列１５０において登録される（１４３)。現在中断しているＦＳＹＮＣデーモン１１０は要求待ち行列１５０を検査し（１４４）、（要求待ち行列１５０内にあった）ファイルアクセス要求をアプリケーションプロセッサーノードマネージャー（ないし管理）（ＡＰＮＭ）１５５へと送る（１４５)。このＡＰＮＭ１５５は、記憶および転送ソフトウェアであり、ネットワーク上あるいは他のシステム上の他のコンピューターやサーバーへと情報を送る（ネットワークインターフェース３５、通信リンク１５を介して)。ＡＰＮＭ１５５ＡはスタンバイＡＰ２００へとファイルアクセス要求を送信し（１４６）、これは次にスタンバイＡＰのＡＰＮＭ１５５Sによって受信される。
【００２８】
次にスタンバイＡＰ２００のＡＰＮＭ１５５SはスタンバイＡＰ２００上のプロセッサー３０Sないで動作しているＦＳＹＮＣデーモン１１０Sへとファイルアクセスするためにこの遠隔要求を転送する（１４７)。ＦＳＹＮＣデーモン１１０Sは次に、メモリー１３０S（第２メモリー５０Sなど）に記憶された特定のファイルを開いたり書き込んだりするファイルアクセス要求を行い（１４８）、「num_bytes_written」のような返し値を受信する（１４９)。次にＦＳＹＮＣデーモン１１０Sはこの返られた結果を確認としてＡＰＮＭ１５５Sへと転送し（１５１)、これは次にその確認をアクティブＡＰ１００へと送信する（１５２）（同様にネットワークインターフェース３５と通信リンク１５を介して)。次にアクティブＡＰ１００のＡＰＮＭ１５５Aは、確認をＦＳＹＮＣデーモン１１０Aへと転送し（１５３)、これは確認待ち行列１６０に受信された確認を登録する（１５４)。
【００２９】
ＦＳＹＮＣオーディター１０５AはＦＳＹＮＣデーモン１１０の動作状態を規則的にモニタリングし、これはＦＳＹＮＣオーディター１０５Aとアナウンスメントないし「ハードビート」を規則的に送信する（１５６)。ＦＳＹＮＣオーディター１０５Aもまたファイル同期プロセスを規則的ないし同期的にモニタリングする。ＦＳＹＮＣオーディター１０５Aは、確認待ち行列１６０を読み取り（１５７)、要求待ち行列１５０を読み取る（１５８)。次にＦＳＹＮＣオーディター１０５Aは、全ての確認を対応する要求と比較し、もしそれら両方が有効であれば、それらの対応する待ち行列１５０、１６０からそれらを削除することができる。スタンバイＡＰ２００からのマッチング確認が要求待ち行列１５０における対応する要求とマッチしなければ、ＦＳＹＮＣオーディター１０５Aは要求待ち行列からの要求をエラーログ１７０へと転送し（１５９)、後で状態をオーディット（監査）したり警告したりするのに用いる。
【００３０】
図２に示したように、本発明の様々なプロセスは、アクティブＡＰにおける全てのファイルアクセスがスタンバイＡＰにおけるファイルアクセスによってマッチングすることを提供し、スタンバイＡＰがいつでも最新情報を有することを確実にする。またアクティブＡＰがそのような要求をスタンバイＡＰへと送信せず、アクティブＡＰによって確認が受信されなければ、スタンバイＡＰにおける失った情報がエラーログ１７０から回復させることができる。
【００３１】
図３は、本発明に従う方法を示した流れ図である。この方法は、開始ステップ２０５において始まり、ここでは、アクティブＡＰにおけるプロセスがファイルへのアクセスを要求する。このファイルアクセス要求は要求待ち行列にて登録され、割り込み信号などによってＦＳＹＮＣデーモンプロセスが呼び出される（２１０)。次に２１２においてＦＳＹＮＣデーモンがＡＰＮＭへとファイルアクセス要求を送り（２１２)、ＡＰＮＭはこのファイルアクセス要求をスタンバイＡＰへと送る（２１４)。スタンバイＡＰにおけるＡＰＮＭは、このファイルアクセス要求を受信し（２１６)、そのファイルアクセス要求をスタンバイＡＰにおけるＦＳＹＮＣデーモンへと送る（２１８)。
【００３２】
スタンバイＡＰにおけるＦＳＹＮＣデーモンはＦＳＹＮＣｆｔｓｐファイルアクセス機能を呼び出す（２２０)。ターゲットファイルがアクセスされ、スタンバイＡＰにおけるＦＳＹＮＣデーモンへと返し値が返させる（２２２)。次にＦＳＹＮＣデーモンはその返し値から確認をスタンバイＡＰのＡＰＮＭを介してアクティブＡＰへと送る（２２６)。次にアクティブＡＰのＡＰＮＭはその確認を受け取り（２２８)、その確認をＦＳＹＮＣデーモンへと転送する。ＦＳＹＮＣデーモンは確認を確認待ち行列へと送る（２３０)。
【００３３】
ＦＳＹＮＣオーディターは要求待ち行列および確認待ち行列を同期的に読み取り、各確認を各要求と比較する（２３４)。各要求に対して有効な確認があれば（２３６)、対応する確認および要求をそれらそれぞれの待ち行列から削除することができる（２３８)。この方法のこの部分はリターンステップ２４２にて終わる。ステップ２３６にて有効な確認が対応する要求に対して対で見つけることができなければ、ファイルアクセス要求はエラーログに送られ（２４０)、その後に可能なアラームコンディションによって継続され、その方法は同様にリターンステップ２４２にて終わる。
【００３４】
ファイル同期のための本発明に従って、Ｃ＋＋言語によるプログラム例を示した。これは、アクティブおよびスタンバイＡＰSにおけるいかなる特定のアプリケーションないしプロセスに対して透過性であり独立である方式にて、Ｃ＋＋派生クラスを用いている。Ｃ＋＋言語のオブジェクト指向プログラミングを用いて、オリジナルな基礎クラスから継承して派生される。
【００３５】
このような新しいクラスは、本発明に従う同期方法を含む。例えば、iofstreamを元々含むftspクラスは、fsync_iofstreamに派生される。この後者は、アクティブスタンバイの両方にてファイル書き込みが複製されることを保証する。ＡＰデーモンは、どのＡＰがアクティブ、スタンバイ、故障状態であるかをいかなる時間においても確実にするため用いられる。
【００３６】
下のプログラム例は新しく派生したクラスsyn_Disk_IOがどのようにftspクラスDisk_IOから派生したのかを示すＣ＋＋プログラム言語コードである。
【００３７】
0004282850.tif 000002
これは、ディスク読み取り、書き込み、シークをサポートするクラスである。コンストラクタが指定されたファイルを開き、デストラクタがファイルを閉じる。ファイルサイズが指定された場合、これらルーティングは指定されたブロック数をファイルサイズが越えないように管理する。
0004282850.tif 000003
【００３８】
同期を備える新しく発生したクラスは以下の通りである。
0004282850.tif 000004
【００３９】
上に述べた本発明に従って、アクティブＡＰにおける全てのファイルアクセスが有効に、スタンバイＡＰにおいて実時間で二重化される。従ってスタンバイＡＰがアクティブＡＰの機能を受け継ぎアクティブモードへと移る必要が発生した場合に、スタンバイＡＰは、（以前にアクティブであった）アクティブＡＰによって用いられた全ての現在の情報にすでに直ちにアクセスすることができる。従って、フォールトトレーラントネットワークにおけるこのような遷移が発生した場合に、サービスの中断が最小化することができる。
【００４０】
本発明には他の多くの利点が明らかであろう。本発明は、フォールトトレーラントネットワークにおいて情報同期を提供し、数秒間のような非常に小さな時間フレーム内にてフォールトトレーラントネットワークにこのような情報ないしファイル同期を提供しサービスの中断を避けることができる。また、本発明は、追加的なハードウェアを必要とせず（用いてもよいが)、プラットホームに依存せず、アプリケーションに依存せず、ユーザーやアプリケーションに対してこのようなフォールトトレーラントを透過的に提供する。
【図面の簡単な説明】
【図１】本発明の装置およびシステムの実施例を示すブロック図。
【図２】本発明に従うアクティブＡＰとスタンバイＡＰにおいて発生するプロセスを示した動作フロー図。
【図３】本発明に従う方法を示した流れ図。
【符号の説明】
１０  システム
１５  通信リンク
２０  装置
３０  プロセッサー（ＣＰＵ）
３５  ネットワークインターフェース（ＮＩＣ）
４０  第１メモリー
５０  第２長期メモリー
１００  アクティブＡＰ
２００  スタンバイＡＰ
１０５  ＦＳＹＮＣオーディター
１１０  ＦＳＹＮＣデーモン
１１５  ＦＳＹＮＣファイルアクセス機能
１２０  アプリケーション
１３０  メモリー
１４０  アクセス
１４１  ファイルアクセス
１５０  ファイルアクセス要求（要求待ち行列）
１５５  ＡＰＮＭ
１６０  確認待ち行列
２０５  開始：アクティブＡＰにおけるプロセスがファイルアクセスを要求
２１０  ファイルアクセス要求を要求待ち行列に登録し、ＦＳＹＮＣデーモンを呼び出す
２１２  ＦＳＹＮＣデーモンがＡＰＮＭへファイルアクセス要求を送る
２１４  ＡＰＮＭがスタンバイＡＰとファイルアクセス要求を送信する
２１６  スタンバイＡＰにおけるＡＰＮＭがファイルアクセス要求を受ける
２１８  スタンバイＡＰにおけるＦＳＹＮＣデーモンへとファイルアクセス要求が送られる
２２０  ＦＳＹＮＣデーモンがＦＳＹＮＣ（ｆｔｓｐ）ファイルアクセス機能を呼び出す
２２２  スタンバイＡＰにてターゲットファイルがアクセスされＦＳＹＮＣデーモンへと返し値が返される
２２４  ＦＳＹＮＣデーモンが返し値から確認を生成する
２２６  アクティブＡＰへとＡＰＮＭを介して確認が送信される
２２８  アクティブＡＰのＡＰＮＭが確認を受ける
２３０  ＦＳＹＮＣデーモンが確認待ち行列へと確認を送る
２３２  ＦＳＹＮＣオーディターが要求待ち行列および確認待ち行列を読み取る
２３４  ＦＳＹＮＣオーディターが要求を確認と比較する
２３６  確認と要求は有効か？
２３８  それらそれぞれの待ち行列から確認と要求を削除
２４０  エラーログへとファイルアクセス要求を送り、警告状態を示す
２４２  戻る
【図１】
0004282850.tif 000005
【図２】
0004282850.tif 000006
【図３】
0004282850.tif 000007