(57)【特許請求の範囲】
【請求項１】
複数のサーバを備える分散システムであって、
特定のサーバが、他のサーバに設定情報の更新の指示を出し、
前記他のサーバが、設定情報の更新の準備処理として、更新情報への切り替えを行う直前までの処理を実施し、設定情報の更新準備の完了時刻を前記特定のサーバに戻し、
前記特定のサーバが、設定情報の更新準備に最大の時間を要した前記他のサーバを特定し、その最大所要処理準備時間をもとに更新後の設定情報への切り替えに要する更新反映所要推定時間を算出した後、前記他のサーバに対し、現在時刻に前記更新反映所要推定時間を加えた時刻である切り替え実施時刻を含んだ切り替え指示を出し、
前記他のサーバが、前記切り替え指示に基づいて、前記切り替え実施時刻に更新後の設定情報への切り替えを一斉に実施する
ことを特徴とする分散システム。
【請求項２】
前記他のサーバのうちの１つが前記特定のサーバとして機能し、他のサーバに設定情報の更新の指示を出すとともに、自らも前記切り替え実施時刻に更新後の設定情報への切り替えを実施することを特徴とする請求項１記載の分散システム。
【請求項３】
請求項１に記載の分散システムにおける前記複数のサーバのうち前記特定のサーバとして機能することを特徴とするサーバ。
【請求項４】
請求項１に記載の分散システムにおける前記複数のサーバのうち前記他のサーバとして機能することを特徴とするサーバ。
【請求項５】
請求項２に記載の分散システムにおける前記複数のサーバのうち前記特定のサーバとして機能することを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散システム及びサーバに関する。
【背景技術】
【０００２】
従来から、分散システムの各装置（サーバ）の設定情報の更新について、装置毎の更新反映時刻に差を生じさせずに同期して更新反映を行うというニーズはひろく認識されている。すなわち、分散システムの設定情報の更新では、分散配置されている各サーバでの設定情報の更新反映に時間差が生じると、情報の種類によっては一時的にサービス一貫性が失われるおそれがある。このため、サーバ毎に時間差が生じないように、設定情報の更新反映に各種の工夫を行ってきた。
【０００３】
例えば、設定情報の更新を行うべきサーバに対して更新指示をマルチキャストすることで、更新反映時刻に差が生じないようにする方法が知られている（例えば、非特許文献１参照）。また、事前に十分な余裕を見込んだ更新反映時刻を定めた上で順次更新を実施し、その更新反映時刻になったときに、更新後の設定情報（更新情報）への切り替えを一斉に実施する方法が知られている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】IETFマルチキャスト関連RFCPIM-DM RFC3973 - Protocol Independent Multicast - Dense ModePIM-SM RFC2362 - Protocol Independent Multicast - Sparse ModeIGMP ver.3 RFC3376 - Internet Group Management Protocol, Version 3MLD ver.2 RFC3810 - Multicast Listener Discovery Version 2 (MLDv2) for IPv6
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、マルチキャストによる方法では、更新情報への切り替え時間を短くすることはできるが、分散された各サーバ相互間で更新情報への反映時刻の同期が保証できず、サービスの一貫性に問題が生じる可能性があった。特に、設定すべき更新情報の内容がサーバにより異なる場合は、マルチキャスト・ブロードキャストの技術は使えず、ユニキャストを複数回使う必要があり、サーバ毎に処理完了時間に差異が生じるおそれもより高くなるという問題があった。
【０００６】
また、事前に切り替え時刻を設定する方式では、切り替え時刻に差異が生じることはないが、設定情報の更新の準備完了に十分な余裕を見込んでおく必要があるため、実際に更新情報に切り替えが完了するまでの時間を長くとらなければならなかった。分散システムの設定情報の更新では、できる限り早く設定情報の更新を完了してサービスを提供するというニーズもあるが、このようなニーズには十分に応えることができていなかった。
【０００７】
本発明は、上述した従来の技術に鑑み、分散された各サーバの設定情報の更新反映を同期させながら更新反映時刻をできる限り早くすることが可能な分散システム及びサーバを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、第１の態様に係る発明は複数のサーバを備える分散システムであって、特定のサーバが、他のサーバに設定情報の更新の指示を出し、前記他のサーバが、設定情報の更新の準備処理として、更新情報への切り替えを行う直前までの処理を実施し、設定情報の更新準備の完了時刻を前記特定のサーバに戻し、前記特定のサーバが、設定情報の更新準備に最大の時間を要した前記他のサーバを特定し、その最大所要処理準備時間をもとに更新後の設定情報への切り替えに要する更新反映所要推定時間を算出した後、前記他のサーバに対し、現在時刻に前記更新反映所要推定時間を加えた時刻である切り替え実施時刻を含んだ切り替え指示を出し、前記他のサーバが、前記切り替え指示に基づいて、前記切り替え実施時刻に更新後の設定情報への切り替えを一斉に実施することを要旨とする。
【０００９】
第２の態様に係る発明は、第１の態様に係る発明において、前記他のサーバのうちの１つが前記特定のサーバとして機能し、他のサーバに設定情報の更新の指示を出すとともに、自らも前記切り替え実施時刻に更新後の設定情報への切り替えを実施することを要旨とする。
【００１０】
また、上記目的を達成するため、第３の態様に係る発明は、サーバであって、第１の態様に係る分散システムにおける前記複数のサーバのうち前記特定のサーバとして機能することを要旨とする。
【００１１】
また、上記目的を達成するため、第４の態様に係る発明は、サーバであって、第１の態様に係る分散システムにおける前記複数のサーバのうち前記他のサーバとして機能することを要旨とする。
【００１２】
また、上記目的を達成するため、第５の態様に係る発明は、サーバであって、第２の態様に係る分散システムにおける前記複数のサーバのうち前記特定のサーバとして機能することを要旨とする。
【発明の効果】
【００１３】
本発明によれば、分散された各サーバの設定情報の更新反映を同期させながら更新反映時刻をできる限り早くすることが可能な分散システム及びサーバを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１における分散システムのシーケンス図である。
【図２】実施の形態１における管理サーバの要部の機能ブロック図である。
【図３】実施の形態１における処理サーバの要部の機能ブロック図である。
【図４】実施の形態２における分散システムのシーケンス図である。
【図５】実施の形態２における処理サーバ（管理サーバ）の要部の機能ブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
（実施の形態１）
図１は、実施の形態１における分散システムのシーケンス図である。この分散システムは、ネットワーク等を介して接続された複数のサーバＳ０，Ｓ１，Ｓ２，Ｓ３，…を備えている。ここでは、設定情報の更新が行われる各サーバＳｘに対し、設定情報の更新を指示するサーバＳ０が独立して存在する形態を例示している。以下の説明では、サーバＳｘを処理サーバＳｘ、サーバＳ０を管理サーバＳ０という場合がある。
【００１７】
まず、管理サーバＳ０は、分散された各処理サーバＳｘに対し、設定情報の更新の指示を出すと同時に、この指示を出した時刻Ｔ０を記録する。この指示を受けた各処理サーバＳｘは、設定情報の更新の準備処理として、更新情報への切り替えを行う直前までの処理を実施し、準備完了の時刻Ｔｘを管理サーバＳ０に戻す。ここで、管理サーバＳ０は、報告を受けた準備完了時刻Ｔｘと指示発出時刻Ｔ０から、更新準備に最大の時間を要したサーバＳｍを特定し、最大所要処理準備時間Ｔｍ−Ｔ０を得る。次に、管理サーバＳ０は、この最大所要処理準備時間Ｔｍ−Ｔ０をもとに更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）を算出する。この最大所要処理準備時間Ｔｍ−Ｔ０から更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）を算出する方法については、各種の方法が考えられる。例えば、設定情報変更に要する処理時間は、更新反映に要する処理時間に比べて十分長いと推定されるので、更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）として最大所要処理準備時間Ｔｍ−Ｔ０の値をそのまま用いることとする。この場合、現在時刻がＴｐであれば、更新情報への切り替え実施時刻（更新反映時刻）はＴｐ＋Ｔｍ−Ｔ０となる。そこで、管理サーバＳ０は、各処理サーバＳｘに対し、切り替え実施時刻Ｔｐ＋Ｔｍ−Ｔ０に更新情報への切り替えを実施するように指示を出す。これを受けた各処理サーバＳｘは、指示された切り替え実施時刻Ｔｐ＋Ｔｍ−Ｔ０に更新情報への切り替えを一斉に実施する。
【００１８】
図２は、実施の形態１における管理サーバＳ０の要部の機能ブロック図である。この管理サーバＳ０は、図２に示すように、時刻取得部１１と、更新指示部１２と、記録部１３と、通信部１４とを備えている。時刻取得部１１は、指示発出時刻Ｔ０や現在時刻Ｔｐ等の時刻情報を取得して更新指示部１２に渡す。更新指示部１２は、設定情報の更新指示に関する各種の処理を実施する。例えば、各処理サーバＳｘに対し、設定情報の更新の指示を出す。また、各処理サーバＳｘから報告を受けた準備完了時刻Ｔｘと指示発出時刻Ｔ０から、更新準備に最大の時間を要したサーバＳｍを特定し、最大所要処理準備時間Ｔｍ−Ｔ０を得る。さらに、この最大所要処理準備時間Ｔｍ−Ｔ０をもとに更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）を算出する。加えて、各処理サーバＳｘに対し、切り替え実施時刻Ｔｐ＋Ｔｍ−Ｔ０に更新情報への切り替えを実施するように指示を出す。記録部１３は、指示発出時刻Ｔ０等の各種の情報を記録する。通信部１４は、各処理サーバＳｘとの通信を行う。
【００１９】
図３は、実施の形態１における処理サーバＳｘの要部の機能ブロック図である。この処理サーバＳｘは、図３に示すように、時刻取得部２１と、更新処理部２２と、記録部２３と、通信部２４とを備えている。時刻取得部２１は、準備完了の時刻Ｔｘ等の時刻情報を取得して更新処理部２２に渡す。更新処理部２２は、設定情報の更新処理を実施する。例えば、管理サーバＳ０から設定情報の更新の指示を受けると、設定情報の更新の準備処理を実施し、準備完了の時刻Ｔｘを管理サーバＳ０に戻す。また、管理サーバＳ０から指示された切り替え実施時刻Ｔｐ＋Ｔｍ−Ｔ０に更新情報への切り替えを実施する。記録部２３は、設定情報等を記録している。この設定情報は、更新処理部２２によって更新される。通信部２４は、管理サーバＳ０や他の処理サーバＳｘとの通信を行う。
【００２０】
設定情報の内容は特に限定されるものではない。すなわち、処理サーバＳ１〜Ｓ３が連携して一連の処理を実施する場合、処理サーバＳ１は、通信先のアドレス情報（処理サーバＳ２，Ｓ３のＩＰアドレス）を設定情報として記録している。同様に、処理サーバＳ２は、処理サーバＳ１，Ｓ３のＩＰアドレスを設定情報として記録し、処理サーバＳ３は、処理サーバＳ２，Ｓ３のＩＰアドレスを設定情報として記録している。あるいは、サービスを開始しているかどうかを示す開始フラグを設定情報として各処理サーバＳｘに記録する形態もある。このように、設定情報としては、更新反映を同期させながら更新反映時刻をできる限り早くすることが必要な各種の情報を採用することができる。
【００２１】
以上のように、本実施の形態における分散システムでは、管理サーバＳ０が処理サーバＳｘに設定情報の更新の指示を出し、処理サーバＳｘが設定情報の更新準備の完了時刻Ｔｘを管理サーバＳ０に戻し、管理サーバＳ０が設定情報の更新準備に最大の時間を要したサーバＳｍを特定し、その最大所要処理準備時間Ｔｍ−Ｔ０をもとに更新後の設定情報への切り替えに要する更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）を算出し、処理サーバＳｘが更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）を見込んだ更新反映時刻Ｔｐ＋Ｔｍ−Ｔ０に更新後の設定情報への切り替えを一斉に実施するようにしている。これにより、分散された各サーバの設定情報の更新反映を同期させながら更新反映時刻をできる限り早くすることが可能である。
【００２２】
（実施の形態２）
以下、実施の形態２を実施の形態１と異なる点を中心に説明する。
【００２３】
図４は、実施の形態２における分散システムのシーケンス図である。ここでは、設定情報の更新が行われる処理サーバＳｘのうちの一つ（Ｓ１）が管理サーバＳ０としても機能する形態を例示している。すなわち、処理サーバＳ１は、他のサーバＳ２，Ｓ３に設定情報の更新の指示を出すとともに、自らも更新反映時刻Ｔｐ＋Ｔｍ−Ｔ０に更新後の設定情報への切り替えを実施するようにしている。
【００２４】
まず、処理サーバＳ１（以下、「管理サーバＳ０」という場合がある。）は、他の処理サーバＳ２，Ｓ３に対し、設定情報の更新の指示を出すと同時に、この指示を出した時刻Ｔ０を記録し、この時刻Ｔ０をＴｍの初期値として設定する。また、管理サーバＳ０は、他の各サーバＳｘに設定情報の更新の指示を出すと同時に、自らも設定情報の更新の準備処理として、更新情報への切り替えを行う直前までの処理を実施する。そして、準備完了の時刻とＴｍを比較し、準備完了の時刻がＴｍよりも大きければ、それをＴｍの値として置き換える。また、管理サーバＳ０から指示を受けた各サーバＳｘも、設定情報の更新の準備処理として、更新情報への切り替えを行う直前までの処理を実施し、準備完了の時刻Ｔｘを管理サーバＳ０に戻す。ここで、管理サーバＳ０は、報告を受けた準備完了時刻ＴｘとＴｍとを比較し、準備完了時刻ＴｘがＴｍよりも大きければ、それをＴｍの値として置き換える。自分自身を含むすべてのサーバＳｘから準備完了の報告を受けたら、Ｔｍと指示発出時刻Ｔ０から最大所要処理準備時間Ｔｍ−Ｔ０を算出する。次に、管理サーバＳ０は、この最大所要処理準備時間Ｔｍ−Ｔ０をもとに更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）を算出する。本実施の形態でも、更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）として最大所要処理準備時間Ｔｍ−Ｔ０の値をそのまま用いることとする。この場合、現在時刻がＴｐであれば、更新情報への切り替え実施時刻はＴｐ＋Ｔｍ−Ｔ０となる。そこで、管理サーバＳ０は、各処理サーバＳｘに対し、切り替え実施時刻Ｔｐ＋Ｔｍ−Ｔ０に更新情報への切り替えを実施するように指示を出す。これを受けた各処理サーバＳｘは、指示された切り替え実施時刻Ｔｐ＋Ｔｍ−Ｔ０に更新情報への切り替えを一斉に実施する。
【００２５】
図５は、実施の形態２における処理サーバＳ１（管理サーバＳ０）の要部の機能ブロック図である。この処理サーバＳ１は、図２に示すように、時刻取得部３１と、更新指示部３２と、更新処理部３３と、記録部３４と、通信部３５とを備えている。時刻取得部３１は、指示発出時刻Ｔ０や現在時刻Ｔｐ、準備完了の時刻Ｔｘ等の時刻情報を取得して更新指示部３２または更新処理部３３に渡す。更新指示部３２は、設定情報の更新指示に関する各種の処理を実施する。例えば、各処理サーバＳｘ及び自身の更新処理部３３に対し、設定情報の更新の指示を出す。また、各処理サーバＳｘ及び自身の更新処理部３３からの報告をもとに、最大所要処理準備時間Ｔｍ−Ｔ０を得る。さらに、この最大所要処理準備時間Ｔｍ−Ｔ０をもとに更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）を算出する。加えて、各処理サーバＳｘ及び自身の更新処理部３３に対し、切り替え実施時刻Ｔｐ＋Ｔｍ−Ｔ０に更新情報への切り替えを実施するように指示を出す。更新処理部３３は、設定情報の更新処理を実施する。例えば、更新指示部３２から設定情報の更新の指示を受けると、設定情報の更新の準備処理を実施し、準備完了の時刻Ｔｘを更新指示部３２に戻す。また、更新指示部３２から指示された切り替え実施時刻Ｔｐ＋Ｔｍ−Ｔ０に更新情報への切り替えを実施する。記録部３４は、指示発出時刻Ｔ０や設定情報等の各種の情報を記録する。通信部３５は、各処理サーバＳｘとの通信を行う。
【００２６】
以上のように、本実施の形態における分散システムでは、処理サーバＳｘのうちの１つ（Ｓ１）が管理サーバＳ０として機能し、他のサーバＳ２，Ｓ３に設定情報の更新の指示を出すとともに、自らも更新反映時刻Ｔｐ＋Ｔｍ−Ｔ０に更新後の設定情報への切り替えを実施するようにしている。そのため、実施の形態１と同様、分散された各サーバの設定情報の更新反映を同期させながら更新反映時刻をできる限り早くすることが可能である。
【００２７】
なお、上記の実施の形態１、２では、測定された最大所要処理準備時間Ｔｍ−Ｔ０から更新反映所要推定時間Ｅ（Ｔｍ−Ｔ０）を推定算出する方法について、最大所要処理準備時間Ｔｍ−Ｔ０の値をそのまま更新反映所要推定時間として用いる方法を示した。この更新反映所要時間の推定算出方法Ｅ（Ｔｍ−Ｔ０）については各種の方法を用いることができる。例えば、ここで挙げた最大所要処理準備時間の値をそのまま利用する方法のほか、さらに安全率を乗じた値を用いる等の方法も考えられる。
【００２８】
また、ここでは、実施の形態１、２によって本発明を説明したが、この開示の一部をなす論述および図面は例示的なものであり、この発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなろう。このように、本発明はここでは記載していない様々な実施の形態などを含む。
【符号の説明】
【００２９】
Ｓ０…管理サーバ（特定のサーバ）
Ｓｘ…処理サーバ（他のサーバ）
Ｔｘ…更新準備の完了時刻
Ｓｍ…更新準備に最大の時間を要したサーバ
Ｔｍ−Ｔ０…最大所要処理準備時間
Ｅ（Ｔｍ−Ｔ０）…更新反映所要推定時間
Ｔｐ＋Ｔｍ−Ｔ０…更新反映時刻
【図１】
0005715077.tif 000002
【図２】
0005715077.tif 000003
【図３】
0005715077.tif 000004
【図４】
0005715077.tif 000005
【図５】
0005715077.tif 000006