(57)【要約】【課題】  セルのクライアントとの接続窓口における障害発生に起因するサービス提供の停止を防止することができる分散コンピューティングシステムを提供する。【解決手段】  本発明に係る分散コンピューティングシステム１では、セル２を構成するサーバー４の制御部６が、クライアント３の制御部５から処理要求を受け、処理要求があった旨及びそのクライアント３を特定するクライアントＩＤを他のサーバー４に通知するとともに、クライアント３の制御部５から処理要求を受け、又は、処理要求を受けた他のサーバー４の制御部６から処理要求があった旨の通知を受け、クライアントＩＤに基づいてクライアント３との間でセッションを開設してその処理を行う。【選択図】  図１
2012042607.tif 000002
【特許請求の範囲】
【請求項１】
互いに同期が取られる複数のレプリカを含むセルとクライアントとを備え、
前記クライアントに、前記セルと前記クライアントとの間のセッションを管理するためのセッション情報として、前記クライアントが各レプリカと接続するための接続情報及び前記クライアントを特定するためのクライアントＩＤを記憶する第一の記憶手段と、前記複数のレプリカのいずれかに対し、前記接続情報に基づき所定の処理の要求及び前記クライアントＩＤの通知を行う処理要求手段とが設けられ、
前記各レプリカに、前記処理要求手段からの処理要求を受け、処理要求があった旨及び前記クライアントＩＤを他のレプリカに通知する処理要求通知手段と、前記処理要求手段から処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、前記クライアントＩＤに基づき前記クライアントとの間で前記セッションを開設して前記所定の処理を行う処理実行手段とが設けられていることを特徴とする分散コンピューティングシステム。
【請求項２】
前記所定の処理が、更新処理であることを特徴とする請求項１に記載の分散コンピューティングシステム。
【請求項３】
前記所定の処理の要求が、前記各レプリカに前記セッションを開設させるためのセッション開設要求であることを特徴とする請求項１に記載の分散コンピューティングシステム。
【請求項４】
前記第一の記憶手段が、前記複数のレプリカの一つがマスターとして選ばれる場合に、いずれのレプリカがマスターであるかを特定するためのマスターＩＤを記憶し、
前記処理要求手段が、前記第一の記憶手段に記憶されたマスターＩＤにより特定されるレプリカに対し、前記所定の処理の要求及び前記クライアントＩＤの通知を行うことを特徴とする請求項１乃至請求項３のいずれか１項に記載の分散コンピューティングシステム。
【請求項５】
前記第一の記憶手段が、前記複数のレプリカの一つが参照処理時の参照に供するリファレンスとして選ばれる場合に、いずれのレプリカがリファレンスであるかを特定するためのリファレンスＩＤを記憶し、
前記処理要求手段が、前記第一の記憶手段に記憶されたリファレンスＩＤにより特定されるレプリカに対し、参照処理の要求を行うことを特徴とする請求項４に記載の分散コンピューティングシステム。
【請求項６】
前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターＩＤを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、
前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする請求項４に記載の分散コンピューティングシステム。
【請求項７】
前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターＩＤを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、
前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする請求項５に記載の分散コンピューティングシステム。
【請求項８】
前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターＩＤに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする請求項６に記載の分散コンピューティングシステム。
【請求項９】
前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターＩＤに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする請求項７に記載の分散コンピューティングシステム。
【請求項１０】
前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項４に記載の分散コンピューティングシステム。
【請求項１１】
前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項５に記載の分散コンピューティングシステム。
【請求項１２】
前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項６に記載の分散コンピューティングシステム。
【請求項１３】
前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項７に記載の分散コンピューティングシステム。
【請求項１４】
前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項８に記載の分散コンピューティングシステム。
【請求項１５】
前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項９に記載の分散コンピューティングシステム。
【請求項１６】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項８に記載の分散コンピューティングシステム。
【請求項１７】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項９に記載の分散コンピューティングシステム。
【請求項１８】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項１０に記載の分散コンピューティングシステム。
【請求項１９】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項１１に記載の分散コンピューティングシステム。
【請求項２０】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項１２に記載の分散コンピューティングシステム。
【請求項２１】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項１３に記載の分散コンピューティングシステム。
【請求項２２】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項１４に記載の分散コンピューティングシステム。
【請求項２３】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項１５に記載の分散コンピューティングシステム。
【請求項２４】
前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項１６に記載の分散コンピューティングシステム。
【請求項２５】
前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項１７に記載の分散コンピューティングシステム。
【請求項２６】
前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項１８に記載の分散コンピューティングシステム。
【請求項２７】
前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項１９に記載の分散コンピューティングシステム。
【請求項２８】
前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項２０に記載の分散コンピューティングシステム。
【請求項２９】
前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項２１に記載の分散コンピューティングシステム。
【請求項３０】
前記マスターＩＤ変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項２２に記載の分散コンピューティングシステム。
【請求項３１】
前記マスターＩＤ変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項２３に記載の分散コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いに同期が取られる複数のレプリカを含むセルとクライアントとを備える分散コンピューティングシステムに関し、特に、セルとクライアントとの間のセッション管理技術に関する。
【背景技術】
【０００２】
複数のレプリカを含むセルとクライアントとを備える分散コンピューティングシステムについて、例えば以下のようなレプリケーション技術が知られている。【０００３】
ロードバランサー（負荷分散装置）が用いられたクラスタシステムでは、ロードバランサーの仮想化されたＩＰアドレスがクライアントとの接続窓口となり（特許文献１及び２参照）、クライアントからの要求はロードバランサーを介してレプリカに伝達され、レプリカからの応答がロードバランサーを経てクライアントに送信される。【０００４】
また、高可用性のクラスタシステムでは、本番系（主系）と待機系（予備系）のレプリカが設けられ（特許文献３及び４参照）、クライアントにサービスを提供していた本番系のレプリカが障害によりダウンすると、例えばホット・スタンバイの状態にある待機系のレプリカが本番系のレプリカの処理を引き継いでサービス提供を継続する。【０００５】
仮想マシンでは、ハードウェアレベルの仮想化、つまり、物理的に一つのハードウェアの中に複数の仮想ハードウェアを構築し、それら一つ一つをレプリカとして機能させることにより（特許文献５参照）、上記高可用性のクラスタシステムと同様な可用性を実現している。【０００６】
ＲＡＩＤ装置では、ディスクを仮想化したインターフェースを提供し、ミラー化やプール化によりデータを多重化・冗長化して保存する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−８６１４５号公報
【特許文献２】特開平９−２１８８４２号公報
【特許文献３】特開２００９−２６５６９０号公報
【特許文献４】特開平１０−１０５４２４号公報
【特許文献５】特開２０１０−３３２８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記各レプリケーション技術では、仮想化技術により、レプリカ群がクライアントから一つの仮想システムとしてみえるだけで、レプリカ間の分散協調方式はブラックボックス化されている。すなわち、クライアントとレプリカ群との接続窓口が一つであり、この接続窓口となる箇所に障害が生じると、クライアントはブラックボックス内部のレプリカへのアクセス方法を失うので、たとえレプリケーションにより高可用性が図られていても、セルによるサービス提供が停止する。【０００９】
本発明は、上記の事情に鑑みてなされたもので、セルのクライアントとの接続窓口における障害発生に起因するサービス提供の停止を防止することができる分散コンピューティングシステムを提供することを課題としている。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、請求項１に係る発明は、互いに同期が取られる複数のレプリカを含むセルとクライアントとを備え、前記クライアントに、前記セルと前記クライアントとの間のセッションを管理するためのセッション情報として、前記クライアントが各レプリカと接続するための接続情報及び前記クライアントを特定するためのクライアントＩＤを記憶する第一の記憶手段と、前記複数のレプリカのいずれかに対し、前記接続情報に基づき所定の処理の要求及び前記クライアントＩＤの通知を行う処理要求手段とが設けられ、前記各レプリカに、前記処理要求手段からの処理要求を受け、処理要求があった旨及び前記クライアントＩＤを他のレプリカに通知する処理要求通知手段と、前記処理要求手段から処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、前記クライアントＩＤに基づき前記クライアントとの間で前記セッションを開設して前記所定の処理を行う処理実行手段とが設けられている分散コンピューティングシステムを特徴とする。【００１１】
請求項２に係る発明は、請求項１に記載の分散コンピューティングシステムにおいて、前記所定の処理が、更新処理であることを特徴とする。【００１２】
請求項３に係る発明は、請求項１に記載の分散コンピューティングシステムにおいて、前記所定の処理の要求が、前記各レプリカに前記セッションを開設させるためのセッション開設要求であることを特徴とする。【００１３】
請求項４に係る発明は、請求項１乃至請求項３のいずれか１項に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記複数のレプリカの一つがマスターとして選ばれる場合に、いずれのレプリカがマスターであるかを特定するためのマスターＩＤを記憶し、前記処理要求手段が、前記第一の記憶手段に記憶されたマスターＩＤにより特定されるレプリカに対し、前記所定の処理の要求及び前記クライアントＩＤの通知を行うことを特徴とする。【００１４】
請求項５に係る発明は、請求項４に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記複数のレプリカの一つが参照処理時の参照に供するリファレンスとして選ばれる場合に、いずれのレプリカがリファレンスであるかを特定するためのリファレンスＩＤを記憶し、前記処理要求手段が、前記第一の記憶手段に記憶されたリファレンスＩＤにより特定されるレプリカに対し、参照処理の要求を行うことを特徴とする。【００１５】
請求項６に係る発明は、請求項４に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターＩＤを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする。【００１６】
請求項７に係る発明は、請求項５に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターＩＤを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする。【００１７】
請求項８に係る発明は、請求項６に記載の分散コンピューティングシステムにおいて、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターＩＤに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする。【００１８】
請求項９に係る発明は、請求項７に記載の分散コンピューティングシステムにおいて、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターＩＤに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする。【００１９】
請求項１０に係る発明は、請求項４に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。【００２０】
請求項１１に係る発明は、請求項５に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。【００２１】
請求項１２に係る発明は、請求項６に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。【００２２】
請求項１３に係る発明は、請求項７に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。【００２３】
請求項１４に係る発明は、請求項８に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。【００２４】
請求項１５に係る発明は、請求項９に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。【００２５】
請求項１６に係る発明は、請求項８に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。【００２６】
請求項１７に係る発明は、請求項９に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。【００２７】
請求項１８に係る発明は、請求項１０に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。【００２８】
請求項１９に係る発明は、請求項１１に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。【００２９】
請求項２０に係る発明は、請求項１２に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。【００３０】
請求項２１に係る発明は、請求項１３に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。【００３１】
請求項２２に係る発明は、請求項１４に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。【００３２】
請求項２３に係る発明は、請求項１５に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。【００３３】
請求項２４に係る発明は、請求項１６に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。【００３４】
請求項２５に係る発明は、請求項１７に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。【００３５】
請求項２６に係る発明は、請求項１８に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。【００３６】
請求項２７に係る発明は、請求項１９に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。【００３７】
請求項２８に係る発明は、請求項２０に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。【００３８】
請求項２９に係る発明は、請求項２１に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。【００３９】
請求項３０に係る発明は、請求項２２に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。【００４０】
請求項３１に係る発明は、請求項２３に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。【００４１】
本発明によれば、セルを構成する各レプリカに、クライアントからの処理要求を受け、処理要求があった旨及びそのクライアントを特定するクライアントＩＤを他のレプリカに通知する処理要求通知手段と、クライアントから処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、クライアントＩＤに基づきクライアントとの間でセッションを開設して所定の処理を行う処理実行手段とが設けられているので、各レプリカがクライアントとの間にクライアントＩＤに基づき同一のセッションを開設して処理を行うことにより、セルのクライアントとの接続窓口が複数になって、接続窓口における障害発生に起因するサービス提供の停止を防止することができる。
【発明の効果】
【００４２】
本発明によれば、セルのクライアントとの接続窓口における障害発生に起因するサービス提供の停止を防止することができるという効果を奏する。
【図面の簡単な説明】
【００４３】
【図１】発明を実施するための形態に係る分散コンピューティングシステムを示す説明図である。
【図２】要求パケットの例を示す説明図である。
【図３】応答パケットの例を示す説明図である。
【図４】マスター通知パケットの例を示す説明図である。
【図５】図１の分散コンピューティングシステムにおいて、クライアントにおける処理を示す流れ図である。
【図６】図１の分散コンピューティングシステムにおいて、サーバーにおける要求パケットを受信したときのスレッドを示す流れ図である。
【図７】図１の分散コンピューティングシステムにおいて、サーバーにおける更新処理の実行通知を受信したときのスレッドを示す流れ図である。
【図８】図１の分散コンピューティングシステムにおいて、サーバーにおける応答パケットを送信するときのスレッドを示す流れ図である。
【図９】図７の更新処理の例としてセッション開設処理を示す流れ図である。
【図１０】図７の更新処理の例としてセッション閉鎖処理を示す流れ図である。
【図１１】図７の更新処理の例としてファイル書出処理を示す流れ図である。
【図１２】図７の更新処理の例としてイベント取得開始処理を示す流れ図である。
【図１３】イベント管理開始後イベント発生時の処理を示す流れ図である。
【図１４】図７の更新処理の例としてイベント取得要求処理を示す流れ図である。
【図１５】図７の更新処理の例としてイベント取得終了処理を示す流れ図である。
【図１６】マスター選択配列の例を示す説明図である。
【発明を実施するための形態】
【００４４】
本発明を実施するための形態について、図面を用いて説明する。
〔分散コンピューティングシステムの構成〕
図１は、本形態に係る分散コンピューティングシステムを示す。この分散コンピューティングシステム１は、セル２とクライアント３とを備え、セル２は互いに同期が取られる複数のレプリカにより構成されている。ここでは、レプリカとして、Ｐａｘｏｓにより合意を形成して同期を取る３つのサーバー４（各サーバー４を区別する場合や図面においては、各サーバーをそれぞれ符号４ａ，４ｂ，４ｃで表す。）を例示するが、レプリカはこれに限られるものではない。
【００４５】
サーバー４ａ，４ｂ，４ｃは、専用回線又はインターネット回線を介して互いに接続されるとともに、インターネット回線を介してクライアント３に接続されている。そして、クライアント３のアプリケーションからタスク処理（アプリケーション処理）等の要求を受けると、後述のように当該処理を行い、応答を生成した場合にはこれを次述のマスターがクライアント３に送信する。このようなアプリケーションからの要求には、サーバー４に記憶されたデータを更新してその状態を変更する更新要求と、サーバー４に記憶されたデータを参照してその状態を変更しない参照要求とがあり、サーバー４は各要求に応じて更新処理又は参照処理を行う。
【００４６】
また、サーバー４ａ，４ｂ，４ｃは、そのいずれかが更新要求時にクライアント３との通信等を主として担うマスターになり、そのいずれかが参照要求時にクライアント３からの参照に供するサーバー（以下「リファレンス」という。）になる。サーバー４ａ，４ｂ，４ｃはＰａｘｏｓにより合意を形成するので、Ｐａｘｏｓのリーダーをマスターとすればよい。Ｐａｘｏｓのリーダーの決定は、公知のいずれの方法によっても、あるいは、最長老のサーバー（セル２において起動時刻が最先で連続稼働時間が最長のサーバー）をリーダーとする方法によってもかまわない。また、サーバー４ａ，４ｂ，４ｃは一般に負荷が異なるので、本形態では負荷値を算出してその値が小さいものをリファレンスとする。
【００４７】
クライアント３及びサーバー４は、ここでは、それぞれ汎用のコンピューターであり、それらのＣＰＵ等の制御部に符号５及び６を、メモリ等の記憶装置に符号７及び８を付す（各制御部６や各記憶装置８を区別する場合や図面においては、各制御部をそれぞれ符号６ａ，６ｂ，６ｃで表し、各記憶装置をそれぞれ符号８ａ，８ｂ，８ｃで表す。）。
【００４８】
クライアント３の記憶装置７には、セル２とクライアント３との間のセッションに関する各種のセッション情報を記憶する領域（セッション構造体）が確保され、これをクライアントセッション９と称する。同様に、サーバー４の記憶装置８には、各種のセッション情報を記憶する領域（セッション構造体）が作成・確保され、これらをサーバーセッション１０と称する（各サーバーセッション１０を区別する場合や図面においては、各サーバーセッションをそれぞれ符号１０ａ，１０ｂ，１０ｃで表す。）。
【００４９】
クライアントセッション９には、接続情報、クライアントＩＤ、トランザクション通番、マスターＩＤ、リファレンスＩＤ、マスターテーブルとしてのマスター選択配列及び更新トランザクション通番等が格納される。
【００５０】
「接続情報」とは、サーバー４との接続情報であって、具体的にはサーバー４ａ，４ｂ，４ｃの各ＩＰアドレス及びクライアント３とサーバー４ａ，４ｂ，４ｃとの各接続状態（接続の有無）に関する情報である。
【００５１】
「クライアントＩＤ」とは、クライアント３のＩＰアドレス、クライアント３によるプロセスごとに付されるプロセスＩＤ及びタグごとに付されるタグＩＤからなり、セッションを特定するユニークなＩＤである。
【００５２】
「トランザクション通番」とは、クライアント３が発行するトランザクションに付されるセッション内での通し番号である。
【００５３】
「マスターＩＤ」とは、クライアント３がマスターとして認識しているサーバー４のＩＤである。
【００５４】
「リファレンスＩＤ」とは、クライアント３がリファレンスとして認識しているサーバー４のＩＤである。
【００５５】
「マスター選択配列」とは、マスター交替時の循環の回避に用いられ、詳細については後述する。
【００５６】
「更新トランザクション通番」とは、クライアント３からの要求が更新要求であって、これがサーバー４において適切に処理されたときに、トランザクション通番で置換される番号である。
【００５７】
クライアント３がサーバー４に所定の処理を要求する場合、クライアント３からサーバー４に要求パケットが送信されるが、この要求パケットは、図２に示すように、クライアントＩＤ、トランザクション通番、更新トランザクション通番、要求内容を示すコマンド及びコマンドの処理に必要なデータ（要求データ）を含む。
【００５８】
一方、サーバーセッション１０には、クライアントＩＤ、セッション状態、要求開始トランザクション通番、要求終了トランザクション通番、応答トランザクション通番、保留応答フラグ、保留応答リスト、イベント待ちフラグ及び保留イベントリスト等が格納され、記憶装置８には、サーバーセッション１０とは別に、マスターＩＤ及びリファレンスＩＤが記憶されている。
【００５９】
「マスターＩＤ」は、サーバー４がマスターとして認識しているサーバー４のＩＤであり、クライアントセッション９に記憶されているマスターＩＤとは独立している。
【００６０】
「リファレンスＩＤ」は、サーバー４がリファレンスとして認識しているサーバー４のＩＤである。サーバー４ａ，４ｂ，４ｃは、自身の負荷値を所定の方法で算出し、その情報を互いに交換することにより、最小の負荷値を有するサーバー４をリファレンスと認識し、そのＩＤをリファレンスＩＤとして記憶装置８ａ，８ｂ，８ｃに記憶する。このリファレンスＩＤは、後述の応答パケット又はマスター通知パケットにより、サーバー４からクライアント３に伝えられる。クライアントセッション９におけるリファレンスＩＤは、リファレンスが不明であることを示す「不明」となったときに、このサーバー４から伝えられるリファレンスＩＤで置換される。リファレンスＩＤは、初期値で「不明」と設定されるほか、それに対応するサーバー４の稼働を確認することができない場合等に「不明」と設定される。
【００６１】
「クライアントＩＤ」は、クライアントセッション９におけるクライアントＩＤが要求パケットにより伝えられたものである。サーバー４においては、クライアントＩＤにより同定することができるように、サーバーセッション１０はハッシュ等を用いて管理される。
【００６２】
「セッション状態」は、サーバーセッション１０の状態を示し、クライアント３からサーバー４にセッション開設要求があればオープンとなり、セッション閉鎖要求があればクローズとなる。
【００６３】
「要求開始トランザクション通番」とは、サーバー４が更新処理又は参照処理を開始する段階で要求パケット中のトランザクション通番で置換される番号である。
【００６４】
「要求終了トランザクション通番」とは、サーバー４が更新処理又は参照処理を終了した段階で要求パケット中のトランザクション通番又は要求開始トランザクション通番で置換される番号である。
【００６５】
「応答トランザクション通番」とは、サーバー４が次述の応答パケットを生成した段階で要求パケット中のトランザクション通番又は要求開始トランザクション通番で置換される番号である。
【００６６】
サーバー４がクライアント３に応答する場合、サーバー４からクライアント３に応答パケットが送信されるが、この応答パケットは、図３に示すように、そのパケットを送信するサーバー４のＩＤ（レプリカＩＤ）、リファレンスＩＤ、そのパケットが応答パケットであることを示すパケット種別（応答タイプ）、そのパケットの送信先のクライアント３及びセッションを特定するクライアントＩＤ、応答トランザクション通番並びに応答の内容を示すデータ（応答データ）を含む。サーバー４は、自身がマスターでない場合には、応答パケットではなくマスターを通知するマスター通知パケットを送信することがあるが、このマスター通知パケットは、図４に示すように、そのパケットを送信するサーバー４のＩＤ（レプリカＩＤ）、リファレンスＩＤ、そのパケットがマスター通知パケットであることを示すパケット種別（マスタータイプ）及びマスターＩＤを含む。
【００６７】
「保留応答フラグ」とは、サーバー４が応答パケットを生成したときに、それをクライアント３に送信してよいか、あるいは、保留応答として送信を保留すべきかを示すフラグである。サーバー４は、このフラグが「真」ならばホールド指示と捉え、生成した応答パケットを保留応答として留め、このフラグが「偽」ならばリリース指示と捉え、生成した応答パケットを送信する。
【００６８】
「保留応答リスト」とは、保留応答として保存された一又は複数の応答パケットである。
【００６９】
「イベント待ちフラグ」とは、サーバー４がイベントを管理するときに、発生したイベントをクライアント３に送信してよいか、あるいは、保留イベントとして送信を保留すべきかを示すフラグである。分散コンピューティングシステム１では、サーバーセッション１０によりイベントを管理することができ、クライアント３からイベント管理を指示されたサーバー４は、クライアント３からイベント取得の要求があれば、イベント待ちフラグを「真」として、発生したイベントをクライアント３に送信する。また、クライアント３からイベント取得の要求がない状態では、イベント待ちフラグを「偽」として、発生したイベントをクライアント３に直ちに送信せず、保留イベントとして保留する。なお、イベントはどのようなものであってもよく、例えばディレクトリパスに対するファイルの追加や削除（ファイルの追加や削除によるディレクトリ配下の変更）をイベントとする場合には、ディレクトリパスをイベント資源とする。イベント及びイベント資源は、アプリケーションにより定義される。
【００７０】
「保留イベントリスト」とは、保留イベントとして保存された一又は複数のイベントである。
〔分散コンピューティング方法〕
図５乃至１５は、分散コンピューティングシステム１による分散コンピューティング方法、すなわち、クライアント３のアプリケーションがセル２に対して参照要求又は更新要求を送信し、セル２において参照処理又は更新処理が行われる手順を示す（図２参照）。
【００７１】
〔要求パケットの送信〕
クライアント３の制御部５は、図５に示すように、アプリケーションからの要求があると（ステップ１０１（図面において「Ｓ．１０１」と記載。以下同様。））、トランザクション通番をインクリメントし（ステップ１０２）、それが更新要求であるか否かを判断する（ステップ１０３）。そして、更新要求であればクライアントセッション９のマスターＩＤを参照し（ステップ１０４）、更新要求でなければ参照要求であるとしてリファレンスＩＤを参照し（ステップ１０５）、参照したＩＤにより特定されるサーバー４の制御部６に要求パケットを送信する（ステップ１０６）。ここで、クライアント３は、サーバー４との間で、要求パケットを送り応答パケットを待つ同期型のトランザクション通信を行う。したがって、パケットの順序はクライアント３により保証されている。
【００７２】
要求パケットを送信したクライアント３の制御部５は、サーバー４の制御部６から応答パケット又はマスター通知パケットが届くのを待ち、一定時間経っても応答がなければ、再度マスターＩＤ又はリファレンスＩＤを参照して要求パケットを送信する（ステップ１０７乃至１０９）。
【００７３】
〔要求パケットの受信〕
図６に示すように、要求パケットを受信したサーバー４の制御部６は（ステップ２０１）、要求パケットに含まれるクライアントＩＤに基づいて、サーバーセッション１０をハッシュ等から取得する（そのクライアントＩＤに対応するサーバーセッション１０がなければ、それを新規に作成する：ステップ２０２）。
【００７４】
次いで、制御部６は、要求パケットに含まれるコマンドに基づいて、更新要求であるか否かを判断する（ステップ２０３）。
【００７５】
更新要求であれば、制御部６は、自身のサーバー４がマスターであるかどうかを確認し（ステップ２０４）、マスターであれば要求パケットの内容を全てのサーバー４（マスター自身も含む。）に通知して（ステップ２０５）、その更新処理を行ってよいかどうかにつきＰａｘｏｓにより合意を諮る（ステップ２０６）。また、制御部６は、ステップ２０４においてマスターでなければ（例えばマスター交替があったにもかかわらずそれがクライアント３に未伝達であると、クライアント３とサーバー４で認識しているマスターが異なることになり、このような場合に制御部６はマスターでないと判断する。）、クライアント３の制御部５にマスター通知パケットを送信する（ステップ２０７）。マスター通知パケットを受信した制御部５は、そのマスター通知パケット中のマスターＩＤでクライアントセッション９のクライアントＩＤを置換し、要求パケットを改めて送信する（図５のステップ１０９，１１０参照）。
【００７６】
ステップ２０６において、過半数のサーバー４の同意が得られてＰａｘｏｓにより合意が形成されれば、要求パケットを受信したマスターの制御部６は、全てのサーバー４（マスター自身も含む。）の制御部６に対し、更新処理の実行通知を送信する（ステップ２０８）。これにより、全てのサーバー４で更新要求への対応がとられる。ステップ２０６においてＰａｘｏｓにより合意が形成されなければ、制御部６はステップ２０１に移行して次の要求パケットの待機状態に入る。
【００７７】
これに対し、ステップ２０３において更新要求でなければ、要求パケットを受信したサーバー４で参照要求への対応がとられる。
【００７８】
〔更新要求への対応〕
図７に示すように、更新処理の実行通知を受信したサーバー４の制御部６は（ステップ３０１）、要求パケット中のクライアントＩＤに基づいて、サーバーセッション１０をハッシュ等から取得する（そのクライアントＩＤに対応するサーバーセッション１０がなければ、それを新規に作成する。：ステップ３０２）。
【００７９】
続いて、制御部６は、ステップ３０２で取得したサーバーセッション１０のセッション状態がオープンであるかどうかを確認し（ステップ３０３）、オープンでなければクライアント３の制御部５にエラー応答を送信し（ステップ３０４）、ステップ３０１に移行して次の更新処理の実行通知の待機状態に入る。
【００８０】
ステップ３０３においてセッション状態がオープンであれば、制御部６は要求パケット中のトランザクション通番と、サーバーセッション１０に記憶された応答トランザクション通番（図面において「応答通番」と記載。）が、同一であるか否かを判断する（ステップ３０５）。一要求一応答の場合であれば、トランザクション通番と応答トランザクション通番が同一ならば、その応答トランザクション通番を含み保留応答として保存されている応答パケットは、そのトランザクション通番を含む要求パケットに対応して生成されたものと考えられる（つまり、サーバー４は今回と同様の要求に対して既に対応済みであり、今回の要求は重複要求と考えられる。）。したがって、ステップ３０５においてトランザクション通番と応答トランザクション通番が同一であれば、制御部６は保留応答フラグが「偽」で（ステップ３０６）、その時点においても自身のサーバー４がマスターであることを確認すると（ステップ３０７）、あらためて応答パケットを生成することなく、保留応答として保留されている応答パケットをクライアント３の制御部５に送信する（ステップ３０８）。ステップ３０６において保留応答フラグが「真」であるか、あるいは、ステップ３０７において自身のサーバー４がマスターでなければ、制御部６はステップ３０１に移行して次の更新処理の実行通知の待機状態に入る。
【００８１】
ステップ３０５において、トランザクション通番と応答トランザクション通番が同一でなければ、制御部６は、要求パケット中のトランザクション通番と、サーバーセッション１０に記憶された要求開始トランザクション通番（図面において「要求開始通番」と記載。）が、同一であるか否かを判断する（ステップ３０９）。トランザクション通番と要求開始トランザクション通番が同一であれば、サーバー４は今回と同様の要求を処理している最中であると考えられるので、制御部６は重複処理を避けるべく今回の要求を無視する。
【００８２】
ステップ３０９において、トランザクション通番と要求開始トランザクション通番が同一でなければ、制御部６は、要求開始トランザクション通番をそのトランザクション通番で置換する（ステップ３１０）。そして、要求パケット中のコマンドや要求データに基づいて更新処理を行い（ステップ３１１）、この更新処理が終了すると、要求終了トランザクション通番（図面において「要求終了通番」と記載。）を上記トランザクション通番で置換する（ステップ３１２）。
【００８３】
ところで、更新処理の例は数多考えられるが、例えばクライアント３からサーバー４に送信されるサーバーセッションの開設要求や、開設したサーバーセッションの閉鎖要求は更新要求であり、サーバーセッションの開設処理や閉鎖処理は更新処理である。また、ファイルの書出処理等も更新処理である。
【００８４】
すなわち、要求パケットに含まれるコマンドがサーバーセッションの開設コマンドであれば、ステップ３１１の更新処理として図９に示すようなサーバーセッションの開設処理が行われる（このとき、制御部６は、ステップ３０３を省略し、ステップ３０２からステップ３０５に移行する。）。
【００８５】
制御部６は、まずステップ３０２で取得したサーバーセッション１０のセッション状態をオープンにするとともに（ステップ５０１）、各トランザクション通番等の値を初期化し（ステップ５０２）、これらの処理が完了すると、その旨をクライアント３の制御部５に通知する応答パケットを生成し（ステップ５０３）、この応答パケットの送信処理を行うべく図８のステップ４０１を呼び出す（ステップ５０４）。
【００８６】
同図において、制御部６は、今回の更新処理について応答パケットを送信する必要があるか否かを判断し（ステップ４０１）、必要がなければステップ３１２に移行する（後述のようにロック等があると制御部６は応答パケットを生成しないことがあり、このような場合には一要求一応答ではあるものの、応答がロックの解除等があるまで遅延する。）。
【００８７】
応答パケットを送信する必要があれば、制御部６は保留応答フラグを確認し（ステップ４０２）、フラグが「真」であればステップ５０３で生成した応答パケットを保留応答リストに加えることによって、保留応答リストを更新する（ステップ４０３）。一方、フラグが「偽」であればステップ５０３で生成した応答パケットで保留応答リストを置換することによって、保留応答リストを更新する（ステップ４０４）。
【００８８】
次に、制御部６は、応答トランザクション通番を上記トランザクション通番で置換し（ステップ４０５）、自身のサーバー４がマスターであるかどうかを確認する（ステップ４０６）。制御部６は、マスターであれば保留応答リストの応答パケットを送信して（ステップ４０７）、マスターでなければ応答パケットを送信することなく、ステップ３１２に移行する。
【００８９】
そして、このようなサーバーセッションの開設処理が全てのサーバー４で行われることにより、クライアント３と全てのサーバー４との間で同一のセッションが張られることになる。
【００９０】
要求パケットに含まれるコマンドがサーバーセッションの閉鎖コマンドであれば、ステップ３１１の更新処理として図１０に示すようなサーバーセッションの閉鎖処理が行われる。
【００９１】
制御部６は、ステップ５０１でオープンにしたサーバーセッション１０のオープン状態を解除（セッション状態をクローズ）し（ステップ５１１）、この処理が完了すると、その旨をクライアント３に通知するための応答パケットを生成し（ステップ５１２）、ステップ４０１を呼び出して図８の応答パケットの送信処理を行う（ステップ５１３）。
【００９２】
また、要求パケットに含まれるコマンドがファイル書出コマンドである場合、要求パケットの要求データには、書出対象のファイルのファイルパス名、オフセット、書き出すデータ及び書き出すデータの長さが含まれており、ステップ３０９の更新処理として図１１に示すようなファイル書出処理が行われる。
【００９３】
制御部６は、ファイルをオープンして（ステップ５２１）、オフセットからデータを書き出し（ステップ５２２）、ファイルをクローズする（ステップ５２３）。そして、書き出した長さを含む応答パケットを生成し（ステップ５２４）、ステップ４０１を呼び出して図８の応答パケットの送信処理を行う（ステップ５２５）。
【００９４】
〔参照要求への対応〕
サーバー４がＰａｘｏｓにより合意を形成して処理を進めていく場合には、Ｐａｘｏｓ合意の際に過半数から漏れたサーバー４では直近の更新処理がなされていないこともあり、クライアント３がそのようなサーバー４を参照する事態を回避する必要がある。
【００９５】
そこで、参照処理に際しては、図６に示すように、制御部６は要求終了トランザクション通番が要求パケット中の更新トランザクション通番以上であるか否かを判断し（ステップ２０９）、要求終了トランザクション通番が更新トランザクション通番以上であれば、そのサーバー４は更新が遅れておらず参照に供し得るとして、セッション状態のオープンを確認して参照処理に進む（ステップ２１０）。セッション状態がオープンでなければ、制御部６は、クライアント３の制御部５にエラー応答を送信する（ステップ２１１）。
【００９６】
制御部６は、ステップ２１０においてセッション状態がオープンであると、要求開始トランザクション通番を要求パケット中のトランザクション通番で置換し（ステップ２１２）、要求パケット中のコマンドや要求データに基づいて参照処理を行い（ステップ２１３）、この参照処理が終了すると、要求終了トランザクション通番を上記トランザクション通番で置換する（ステップ２１４）。ステップ２１３の参照処理においても、制御部６は参照内容等を含む応答パケットをクライアント３の制御部５に送信するが、その方法は図８の応答パケットの送信処理と同様（ただし、ステップ３１２ではなくステップ２１４に移行する。）である。
【００９７】
ステップ２０９において、要求終了トランザクション通番が更新トランザクション通番未満であれば、制御部６は処理を中断して待機状態に入る。そして、更新の遅滞が解消して要求終了トランザクション通番が要求パケット中の更新トランザクション通番以上になれば、ウェイクアップして中断していた処理を続行する。
【００９８】
〔応答パケットの受信〕
クライアント３の制御部５は、サーバー４から応答パケットを受信するとステップ１０９（図５参照）の待機状態から脱し、リファレンスＩＤが不明であれば、クライアントセッション９に記憶されたリファレンスＩＤを応答パケット中のリファレンスＩＤで置換する（ステップ１１１，１１２）。
続いて、制御部５は、応答パケット中の応答トランザクション通番が期待する値と同一であるか否かを判断する（ステップ１１３）。この期待値は、トランザクション通番と同一であり、応答トランザクション通番が期待値と同一であれば、要求に対する適切な応答を受信したことになる。制御部５は、更新要求に対する応答を受信した場合には、更新トランザクション通番を上記トランザクション通番で置換し（ステップ１１４）、次の要求のためにステップ１０１に移行するか、又は、アプリケーションによる制御に戻る。
【００９９】
ステップ１１２において応答トランザクション通番が期待値と同一でなければ、要求に対する不適切な応答を受信したことになるので、制御部５は受信した応答パケットを破棄し（ステップ１１５）、ステップ１０７に戻って適切な応答を待つ。
【０１００】
なお、例えばデータベースのＳＱＬ複数文のように、一つの要求から複数の応答パケットが派生する場合には、サーバー４の制御部６は保留応答フラグにより応答パケットを蓄積し、複数（所定数）保留されたところでマスターの制御部６が一つの応答として一括送信すればよい。すなわち、制御部６は要求パケットのコマンドを解析して複数（所定数）の応答パケットが作成されることを知り得るので、その複数（所定数）の応答パケットが作成されるまでは保留応答フラグを「真」とし、生成された応答パケットを直ちに送信しないようにホールドして保留応答に逐次蓄積する。そして、複数（所定数）の応答パケットが全て生成されたときに保留応答フラグを「偽」とし、マスターの制御部６が蓄積された複数（所定数）の応答パケットをヘッダを付して一括送信する。
【０１０１】
〔イベント管理〕
前述のように、サーバー４は、サーバーセッション１０によりイベントを管理することができる。
【０１０２】
クライアント３がサーバー４にイベント管理の開始を要求するには、イベント取得開始要求を送信する。イベント取得開始要求を送信後、クライアント３がサーバー４に対してイベントの取得を要求するには、イベント取得要求を送信する。また、クライアント３がサーバー４にイベント管理の終了を要求するには、イベント取得終了要求を送信する。これらのイベント管理に関する要求は更新要求であるから、具体的にはステップ３１１において以下のような処理を行えばよい。
【０１０３】
つまり、図１２に示すように、サーバー４の制御部６はイベント取得開始要求を受けると、イベント資源とサーバーセッション１０との関連付けを行い、これを記憶装置８に記憶する（ステップ６０１）。この関連付けは、イベント資源とサーバーセッション１０との間にジョイントを設定することにより行い、ここでは、ジョイントには、当該ジョイントとイベント資源を結び付けるイベントリンク、当該ジョイントとサーバーセッション１０を結び付けるセッションリンク、及び、ジョイントを破棄したときの後処理関数が含まれる。なお、関連付けの対象となるイベント資源は、イベント取得開始要求の要求パケットで特定され、関連付けの対象となるサーバーセッション１０は、ステップ３０２（又はステップ２０２）で特定される。
【０１０４】
関連付けが完了すると、制御部６はその旨の応答パケットを生成し（ステップ６０２）、クライアント３の制御部５に送信するが（ステップ６０３）、その方法は図８の応答パケットの送信処理と同様である。
【０１０５】
イベント取得開始要求を受けた後、イベントが発生すると、クライアント３からイベント取得要求を受けているか否かによって、サーバー４の処理が異なる。
【０１０６】
詳しくは、図１３に示すように、サーバー４の制御部６は、イベント資源におけるイベントの発生を知ると（ステップ６１１）、イベント待ちフラグを確認し（既述のように、また、後に詳述するように、クライアント３からイベント取得要求を受けていればイベント待ちフラグが「真」であり、クライアント３からイベント取得要求を受けていなければイベント待ちフラグが「偽」である。：ステップ６１２）、イベント待ちフラグが「真」であれば、発生したイベントをクライアント３に送信すべく応答パケットを生成し（ステップ６１３）、クライアント３の制御部５に図８と同様の方法で送信して（ステップ６１４）、イベント待ちフラグを「偽」とする（ステップ６１５）。
【０１０７】
これに対し、イベント待ちフラグが「偽」であれば、制御部６は発生したイベントを保留イベントに追加して登録し（ステップ６１６）、イベント取得要求又は次のイベント発生等の待機状態に入る。
【０１０８】
図１４に示すように、クライアント３からイベント取得要求があると（ステップ６２１）、制御部６は保留イベントリストで保留イベントがあるか否かを確認し（ステップ６２２）、保留イベントがなければイベント待ちフラグを「真」として（ステップ６２３）、次のイベント取得要求時までに発生したイベントが保留イベントリストに保留されるようにする。
【０１０９】
ステップ６２２において保留イベントがあれば、制御部６は保留イベントリストに登録された全ての保留イベントを一括して刈り取ってこれらを含む応答パケットを生成し（ステップ６２４）、クライアント３の制御部５に図８と同様の方法で送信する（ステップ６２５）。
【０１１０】
図１５に示すように、サーバー４の制御部６はイベント取得終了要求を受けると、イベント資源とサーバーセッション１０との関連付けを解除して（ステップ６３１）、その旨の応答パケットを生成し（ステップ６３２）、クライアント３の制御部５に図８と同様の方法で送信する（ステップ６３３）。
【０１１１】
〔マスター選択配列〕
サーバー４ａ，４ｂ，４ｃは必ずしも常時稼働しているわけではなく（Ｐａｘｏｓにより合意を形成するためには、３台のうち２台が稼働していればよい。）、マスター自体に障害が生じたり、マスターと他のサーバーとの間で通信障害が生じたりすることにより、マスター交替が生じ得る。サーバー４がマスター交替を認識したときには、そのサーバー４がクライアント３と接続中であれば、図４に示すようなマスター通知パケットを送信してクライアント３にマスターの変更を通知することができる。
【０１１２】
ところが、マスター交替時には、サーバー４ａ，４ｂ，４ｃの全てが新しいマスターを認識するのに一定の時間を要するので、セル２全体としては新旧のマスターが併存しているかのような状態になる。このとき、旧マスターが新マスターをマスターとして認識し、新マスターが旧マスターを未だマスターとして認識しているとすると、クライアント３が旧マスターに要求を出すと新マスターを通知するマスター通知パケットが返ってきて、新マスターに要求を出すと旧マスターを通知するマスター通知パケットが返ってくるという循環が発生する。この循環は、時間が経てばサーバー４ａ，４ｂ，４ｃの認識が一つのマスターに収束するので、いずれ自然に解消するが、この間、パケットが連続的に流れてしまってネットワーク負荷を引き起こす。
【０１１３】
そこで、本形態では、クライアントセッション９において、例えば図１６に示すような循環回避用のマスター選択配列を用意する。マスター選択配列では、クライアントセッション９のマスターＩＤが替わる度に、旧いマスターＩＤに対応するサーバー４の配列要素に「１」の印が付される（印が付されない配列要素は「０」である。）。よって、クライアント３が新たにマスター通知パケットを受信し、このマスター通知パケット中のマスターＩＤに対応するサーバー４の配列要素に印が付されていれば、このマスター通知パケットは旧マスターを通知してきたおそれがあるから、クライアント３の制御部５は上記循環が生じているとみなし、クライアントセッション９のマスターＩＤをマスター通知パケットで通知されたマスターＩＤに置換することなく次のマスター通知パケットを待つ。
【０１１４】
具体的には、マスター通知パケット中のレプリカＩＤとマスターＩＤが一致していれば、このマスター通知パケットの送信元のサーバー４は自身をマスターと認識していることになり循環は発生していないから、クライアント３の制御部５は、そのレプリカＩＤをクライアントセッション９のマスターＩＤとし、マスター選択配列の印を全部クリアする。
【０１１５】
また、マスター通知パケット中のマスターＩＤとクライアントセッション９のマスターＩＤが一致していれば、クライアント３とサーバー４でマスターの認識が一致しているから、制御部５はマスター選択配列に対して特に何もしない。
【０１１６】
一方、マスター通知パケット中のマスターＩＤとクライアントセッション９のマスターＩＤが一致していなければ、制御部５は、マスター通知パケット中のマスターＩＤに対応するサーバー４の配列要素に「１」の印が付されているか否かを判断する。そして、印が付されていれば、上記循環が生じていてマスター選択中（Ｊｅｏｐａｒｄ）であると判断し、クライアントセッション９のマスターＩＤを不明として次のマスター通知パケットを待つ。印が付されていなければ、それまでクライアントセッション９に記憶されていたマスターＩＤに対応するサーバー４の配列要素に印を付け、クライアントセッション９のマスターＩＤをマスター通知パケット中のマスターＩＤで置換する。
【０１１７】
なお、制御部５は、接続が切断された旧マスターをマスターと認識することがないように、接続情報によりサーバー４ａ，４ｂ，４ｃのいずれかについて接続の切断を検知したときは、そのＩＤとクライアントセッション９のマスターＩＤが一致していれば、クライアントセッション９のマスターＩＤに対応するサーバー４の配列要素に印を付ける。
【０１１８】
また、マスター選択中に一定時間経ってもマスター通知パケットが送られてこない場合には、制御部５はマスター選択配列の印を全てクリアした上でサーバー４ａ，４ｂ，４ｃに順次要求パケットを送信し、マスター通知パケットが送られてくるのを待つ。
【０１１９】
本形態に係る分散コンピューティングシステム１によれば、セル２を構成する各サーバー４に、クライアント３からの処理要求を受け、処理要求があった旨及びそのクライアント３を特定するクライアントＩＤを他のサーバー４に通知する処理要求通知手段と、クライアント３から処理要求を受け、又は、処理要求を受けた他のサーバー４から処理要求があった旨の通知を受け、クライアントＩＤに基づきクライアント３との間でセッションを開設して所定の処理を行う処理実行手段として機能する制御部６が設けられているので、各サーバー４がクライアント３との間にクライアントＩＤに基づき同一のセッションを開設して処理を行うことにより、セルのクライアントとの接続窓口が複数になって、接続窓口における障害発生に起因するサービス提供の停止を防止することができる。
【０１２０】
以上、本発明を実施するための形態について例示したが、本発明の実施形態は上述したものに限られず、本発明の趣旨を逸脱しない範囲で適宜変更等してもよい。
【０１２１】
例えばセルを構成するサーバーはＰａｘｏｓによらずに同期を取ってもよいし、Ｐａｘｏｓのリーダーをマスターとしなくてもよい。また、要求パケット、応答パケット、マスター通知パケットやクライアントＩＤの構成も、上述したものと異なってもかまわない。
【符号の説明】
【０１２２】
１                      分散コンピューティングシステム
２                      セル
３                      クライアント
４ａ，４ｂ，４ｃ        サーバー（レプリカ）
５                      制御部（処理要求手段、要求送信手段、マスターＩＤ変更手段）
６ａ，６ｂ，６ｃ        制御部（処理要求通知手段、セッション開設手段、応答生成手段、応答送信手段、マスター変更通知手段）
７                      記憶装置（第一の記憶手段）
８ａ，８ｂ，８ｃ        記憶装置（第二の記憶手段）
９                      クライアントセッション
１０ａ，１０ｂ，１０ｃ  サーバーセッション
【図１】
2012042607.tif 000003
【図２】
2012042607.tif 000004
【図３】
2012042607.tif 000005
【図４】
2012042607.tif 000006
【図５】
2012042607.tif 000007
【図６】
2012042607.tif 000008
【図７】
2012042607.tif 000009
【図８】
2012042607.tif 000010
【図９】
2012042607.tif 000011
【図１０】
2012042607.tif 000012
【図１１】
2012042607.tif 000013
【図１２】
2012042607.tif 000014
【図１３】
2012042607.tif 000015
【図１４】
2012042607.tif 000016
【図１５】
2012042607.tif 000017
【図１６】
2012042607.tif 000018
【手続補正書】
【提出日】平成22年9月30日(2010.9.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
請求項６に係る発明は、請求項４又は請求項５に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターＩＤを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
請求項７に係る発明は、請求項６に記載の分散コンピューティングシステムにおいて、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターＩＤに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
請求項８に係る発明は、請求項４乃至請求項７のいずれか１項に記載の分散コンピューティングシステムにおいて、前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】削除
【補正の内容】
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】削除
【補正の内容】
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】削除
【補正の内容】
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
請求項９に係る発明は、請求項７又は請求項８に記載の分散コンピューティングシステムにおいて、前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】削除
【補正の内容】
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】削除
【補正の内容】
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】削除
【補正の内容】
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】削除
【補正の内容】
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】削除
【補正の内容】
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】削除
【補正の内容】
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】削除
【補正の内容】
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
請求項１０に係る発明は、請求項９に記載の分散コンピューティングシステムにおいて、前記マスターＩＤ変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】削除
【補正の内容】
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】削除
【補正の内容】
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】削除
【補正の内容】
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】削除
【補正の内容】
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】削除
【補正の内容】
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】削除
【補正の内容】
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】削除
【補正の内容】
【手続補正２７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
互いに同期が取られる複数のレプリカを含むセルとクライアントとを備え、
前記クライアントに、前記セルと前記クライアントとの間のセッションを管理するためのセッション情報として、前記クライアントが各レプリカと接続するための接続情報及び前記クライアントを特定するためのクライアントＩＤを記憶する第一の記憶手段と、前記複数のレプリカのいずれかに対し、前記接続情報に基づき所定の処理の要求及び前記クライアントＩＤの通知を行う処理要求手段とが設けられ、
前記各レプリカに、前記処理要求手段からの処理要求を受け、処理要求があった旨及び前記クライアントＩＤを他のレプリカに通知する処理要求通知手段と、前記処理要求手段から処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、前記クライアントＩＤに基づき前記クライアントとの間で前記セッションを開設して前記所定の処理を行う処理実行手段とが設けられていることを特徴とする分散コンピューティングシステム。
【請求項２】
前記所定の処理が、更新処理であることを特徴とする請求項１に記載の分散コンピューティングシステム。
【請求項３】
前記所定の処理の要求が、前記各レプリカに前記セッションを開設させるためのセッション開設要求であることを特徴とする請求項１に記載の分散コンピューティングシステム。
【請求項４】
前記第一の記憶手段が、前記複数のレプリカの一つがマスターとして選ばれる場合に、いずれのレプリカがマスターであるかを特定するためのマスターＩＤを記憶し、
前記処理要求手段が、前記第一の記憶手段に記憶されたマスターＩＤにより特定されるレプリカに対し、前記所定の処理の要求及び前記クライアントＩＤの通知を行うことを特徴とする請求項１乃至請求項３のいずれか１項に記載の分散コンピューティングシステム。
【請求項５】
前記第一の記憶手段が、前記複数のレプリカの一つが参照処理時の参照に供するリファレンスとして選ばれる場合に、いずれのレプリカがリファレンスであるかを特定するためのリファレンスＩＤを記憶し、
前記処理要求手段が、前記第一の記憶手段に記憶されたリファレンスＩＤにより特定されるレプリカに対し、参照処理の要求を行うことを特徴とする請求項４に記載の分散コンピューティングシステム。
【請求項６】
前記各レプリカに、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記マスターＩＤを前記第一の記憶手段とは独立して記憶するとともに前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられ、
前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする請求項４又は請求項５に記載の分散コンピューティングシステム。
【請求項７】
前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターＩＤに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする請求項６に記載の分散コンピューティングシステム。
【請求項８】
前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項４乃至請求項７のいずれか１項に記載の分散コンピューティングシステム。
【請求項９】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項７又は請求項８に記載の分散コンピューティングシステム。
【請求項１０】
前記マスターＩＤ変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項９に記載の分散コンピューティングシステム。
【手続補正書】
【提出日】平成24年4月16日(2012.4.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
互いに同期が取られる複数のレプリカを含むセルとクライアントとを備え、
前記クライアントに、前記セルと前記クライアントとの間でアプリケーションのセッションを管理するためのセッション情報として、前記クライアントが各レプリカと接続するための接続情報及び前記クライアントを特定するためのクライアントＩＤを記憶する第一の記憶手段と、前記複数のレプリカのいずれかに対し、前記接続情報に基づき所定の処理の要求及び前記クライアントＩＤの通知を行う処理要求手段とが設けられ、
前記各レプリカに、前記処理要求手段からの処理要求を受け、処理要求があった旨及び前記クライアントＩＤを他のレプリカに通知する処理要求通知手段と、前記処理要求手段から処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、前記クライアントＩＤに基づき前記クライアントとの間で前記セッションを開設して前記所定の処理を行う処理実行手段と、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられていることを特徴とする分散コンピューティングシステム。
【請求項２】
前記所定の処理が、更新処理であることを特徴とする請求項１に記載の分散コンピューティングシステム。
【請求項３】
前記所定の処理の要求が、前記各レプリカに前記セッションを開設させるためのセッション開設要求であることを特徴とする請求項１に記載の分散コンピューティングシステム。
【請求項４】
前記第一の記憶手段が、前記複数のレプリカの一つがマスターとして選ばれる場合に、いずれのレプリカがマスターであるかを特定するためのマスターＩＤを記憶し、
前記処理要求手段が、前記第一の記憶手段に記憶されたマスターＩＤにより特定されるレプリカに対し、前記所定の処理の要求及び前記クライアントＩＤの通知を行うことを特徴とする請求項１乃至請求項３のいずれか１項に記載の分散コンピューティングシステム。
【請求項５】
前記第一の記憶手段が、前記複数のレプリカの一つが参照処理時の参照に供するリファレンスとして選ばれる場合に、いずれのレプリカがリファレンスであるかを特定するためのリファレンスＩＤを記憶し、
前記処理要求手段が、前記第一の記憶手段に記憶されたリファレンスＩＤにより特定されるレプリカに対し、参照処理の要求を行うことを特徴とする請求項４に記載の分散コンピューティングシステム。
【請求項６】
前記第二の記憶手段は、前記マスターＩＤを前記第一の記憶手段とは独立して記憶し、
前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする請求項４又は請求項５に記載の分散コンピューティングシステム。
【請求項７】
前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターでないと判断したときに、そのマスターＩＤに関する情報を前記第二の記憶手段に記憶された応答の代わりに前記クライアントに送信することを特徴とする請求項６に記載の分散コンピューティングシステム。
【請求項８】
前記各レプリカに、前記複数のレプリカ間でマスターの変更があったときに、新しいマスターのマスターＩＤに関する情報を前記クライアントに通知するマスター変更通知手段が設けられていることを特徴とする請求項４乃至請求項７のいずれか１項に記載の分散コンピューティングシステム。
【請求項９】
前記第一の記憶手段が、前記マスターＩＤが変更されたときに変更前のマスターＩＤを記憶するマスターテーブルを記憶し、
前記クライアントに、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一であれば前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換せず、そのマスターＩＤが前記マスターテーブルに記憶されたマスターＩＤと同一でなければ前記第一の記憶手段に記憶されたマスターＩＤをそのマスターＩＤに置換するマスターＩＤ変更手段が設けられていることを特徴とする請求項７又は請求項８に記載の分散コンピューティングシステム。
【請求項１０】
前記マスターＩＤ変更手段が、前記応答送信手段又は前記マスター変更通知手段からマスターＩＤに関する情報を受信したときに、そのマスターＩＤが送信元のレプリカのＩＤと同一である場合、又は、そのマスターＩＤが前記第一の記憶手段に記憶されたマスターＩＤと同一である場合には、前記第一の記憶手段に記憶されたマスターＩＤの置換を行わないことを特徴とする請求項９に記載の分散コンピューティングシステム。
【請求項１１】
前記クライアントに、前記複数のレプリカのいずれかに対し、イベント管理の開始の要求を行うイベント取得開始要求手段と、イベント管理の終了の要求を行うイベント取得終了要求手段とが設けられ、
前記各レプリカに、前記イベント取得開始要求手段からの前記開始の要求を受け、イベント資源と当該レプリカの前記セッションとの関連付けを行う関連付け設定手段と、前記イベント取得終了要求手段からの前記終了の要求を受け、前記関連付けを解除する関連付け解除手段とが設けられていることを特徴とする請求項１乃至請求項１０のいずれか１項に記載の分散コンピューティングシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
上記課題を解決するために、請求項１に係る発明は、互いに同期が取られる複数のレプリカを含むセルとクライアントとを備え、前記クライアントに、前記セルと前記クライアントとの間でアプリケーションのセッションを管理するためのセッション情報として、前記クライアントが各レプリカと接続するための接続情報及び前記クライアントを特定するためのクライアントＩＤを記憶する第一の記憶手段と、前記複数のレプリカのいずれかに対し、前記接続情報に基づき所定の処理の要求及び前記クライアントＩＤの通知を行う処理要求手段とが設けられ、前記各レプリカに、前記処理要求手段からの処理要求を受け、処理要求があった旨及び前記クライアントＩＤを他のレプリカに通知する処理要求通知手段と、前記処理要求手段から処理要求を受け、又は、処理要求を受けたレプリカの処理要求通知手段から処理要求があった旨の通知を受け、前記クライアントＩＤに基づき前記クライアントとの間で前記セッションを開設して前記所定の処理を行う処理実行手段と、前記所定の処理の要求に対する応答を生成する応答生成手段と、前記応答生成手段により生成された応答を記憶する第二の記憶手段と、前記第二の記憶手段に記憶された応答を前記クライアントに送信可能な応答送信手段とが設けられている分散コンピューティングシステムを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
請求項６に係る発明は、請求項４又は請求項５に記載の分散コンピューティングシステムにおいて、前記第二の記憶手段は、前記マスターＩＤを前記第一の記憶手段とは独立して記憶し、前記応答送信手段が、前記第二の記憶手段に記憶されたマスターＩＤに基づいて自身のレプリカがマスターであると判断したときに、前記第二の記憶手段に記憶された応答を前記クライアントに送信することを特徴とする。
【国際調査報告】
2012042607.tif 000019
2012042607.tif 000020