(57)【要約】【課題】  クライアント装置（２）からのサービスの提供要求を複数のサーバ装置（１）により適切に分散する。【解決手段】  クライアント装置（２）が、複数のサーバ装置（１）のいずれかにサービスの提供要求を送信する際に、現在の時刻、自クライアント装置（２）の個別ＩＤ（識別子）、および複数のサーバ装置（１）の総数に基づいて、複数のサーバ装置（１）のうちから、サービスの提供要求の送信先のサーバ装置（特定サーバ装置）（１）を決定する。そして、クライアント装置（２）が、決定した特定サーバ装置（１）へサービス提供要求を送信する。このような構成により、クライアント装置（２）は、時刻毎および個別ＩＤ（識別子）に特定サーバ装置（１）を決定できる。そのため、サービス提供要求の割り振り先をより均等化でき、特定のサーバ装置（１）への該提供要求の集中を抑制できる。【選択図】図１
2014098975.tif 000002
【特許請求の範囲】
【請求項１】
現在の時刻を検出する現在時刻検出部と、
自クライアント装置を一意に識別するための識別子を記憶する識別子記憶部と、
同一のサービスを提供可能な複数のサーバ装置の総数を記憶する総数記憶部と、
前記複数のサーバ装置のいずれかに前記サービスの提供要求を送信する際に、前記現在時刻検出部が検出した時刻、前記識別子記憶部が記憶している識別子、および前記総数記憶部が記憶している総数に基づいて、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定するサーバ装置決定部と、
前記サーバ装置決定部が決定したサーバ装置へ前記サービスの提供要求を送信するサービス提供要求送信部と、を備えたことを特徴とするクライアント装置。
【請求項２】
前記複数のサーバ装置のそれぞれには、予め固有の通し番号が割り当てられており、
前記サーバ装置決定部は、前記複数のサーバ装置のうちから、前記識別子記憶部が記憶している識別子に関する数字と前記現在時刻検出部が検出した時刻に関する数字との加算値を前記総数記憶部が記憶している総数で除算した場合の剰余に基づく数値が割り当てられているサーバ装置を前記サービスの提供要求を送信するサーバ装置として決定することを特徴とする請求項１に記載のクライアント装置。
【請求項３】
自クライアント装置の前記現在時刻検出部が検出する現在の時刻と他クライアント装置の前記現在時刻検出部が検出する現在の時刻とを同期させる時刻同期部を備えたことを特徴とする請求項１または２に記載のクライアント装置。
【請求項４】
同一のサービスを提供可能な複数のサーバ装置と、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定し、決定したサーバ装置へ前記サービスの提供要求を送信する複数のクライアント装置と、を備えたクライアントサーバシステムであって、
前記複数のクライアント装置のそれぞれは、
現在の時刻を検出する現在時刻検出部と、
自クライアント装置を一意に識別するための識別子を記憶する識別子記憶部と、
同一のサービスを提供可能な複数のサーバ装置の総数を記憶する総数記憶部と、
前記複数のサーバ装置のいずれかに前記サービスの提供要求を送信する際に、前記現在時刻検出部が検出した時刻、前記識別子記憶部が記憶している識別子、および前記総数記憶部が記憶している総数に基づいて、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定するサーバ装置決定部と、
前記サーバ装置決定部が決定したサーバ装置へ前記サービスの提供要求を送信するサービス提供要求送信部と、を備え、
前記複数のサーバ装置のそれぞれは、
前記複数のクライアント装置のいずれかが送信した前記サービスの提供要求を受信すると、該提供要求の送信元のクライアント装置に対して前記サービスの提供を開始するサービス提供実行部と、を備えたことを特徴とするクライアントサーバシステム。
【請求項５】
クライアント装置に搭載されたコンピュータを、
同一のサービスを提供可能な複数のサーバ装置のいずれかに前記サービスの提供要求を送信する際に、現在の時刻、自クライアント装置を一意に識別するための識別子、および前記複数のサーバ装置の総数に基づいて、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定するサーバ装置決定部、
および前記サーバ装置決定部が決定したサーバ装置へ前記サービスの提供要求を送信するサービス提供要求送信部、として機能させることを特徴とするクライアント装置の制御プログラム。
【請求項６】
クライアント装置の制御方法であって、
同一のサービスを提供可能な複数のサーバ装置のいずれかに前記サービスの提供要求を送信する際に、現在の時刻、自クライアント装置を一意に識別するための識別子、および前記複数のサーバ装置の総数に基づいて、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定するサーバ装置決定ステップと、
前記サーバ装置決定ステップで決定したサーバ装置へ前記サービスの提供要求を送信するサービス提供要求送信ステップと、を実行することを特徴とするクライアント装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバ装置のいずれかにサービスの提供要求を送信するクライアント装置、該クライアント装置を有するクライアントサーバシステム、クライアント装置の制御プログラム、およびクライアント装置の制御方法に関する。
【背景技術】
【０００２】
従来、この種の技術としては、例えば、特許文献１に記載の従来技術がある。
この従来技術では、例えば、クライアント装置が、アクセス要求をルーターに送信する。続いて、ルーターが、クライアント装置が送信したアクセス要求が含む情報に基づいてハッシュ値（以下、擬似乱数とも呼ぶ）を算出する。続いて、ルーターが、算出した擬似乱数に基づいてアクセス要求を転送する負荷分散装置を選択する。続いて、ルーターが、選択した負荷分散装置にアクセス要求を転送する。続いて、負荷分散装置が、ルーターが送信したアクセス要求を複数のＷｅｂサーバ装置に割り振る。これにより、この従来技術では、クライアント装置からのアクセス要求を複数のＷｅｂサーバ装置に分散していた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１３１９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、擬似乱数に応じてアクセス要求の割り振り先のＷｅｂサーバ装置を決定するようになっていた。それゆえ、上記従来技術では、アクセス要求の割り振り先のＷｅｂサーバ装置に偏りが発生する可能性があった。そのため、特定のＷｅｂサーバ装置にアクセス要求が集中してしまう可能性があった。
本発明は、上記の点に着目し、クライアント装置からのサービスの提供要求をより適切に複数のサーバ装置に分散可能とすることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明の一態様のクライアント装置は、
現在の時刻を検出する現在時刻検出部（例えば、図１のタイマー２ａに対応）と、自クライアント装置（例えば、図１のクライアント装置２に対応）を一意に識別するための識別子を記憶する識別子記憶部（例えば、図１の個別ＩＤ管理ＤＢ部２ｂに対応）と、同一のサービスを提供可能な複数のサーバ装置（例えば、図１のサーバ装置１に対応）の総数を記憶する総数記憶部（例えば、図２の送信先管理ＤＢ部２ｃに対応）と、前記複数のサーバ装置のいずれかに前記サービスの提供要求を送信する際に、前記現在時刻検出部が検出した時刻、前記識別子記憶部が記憶している識別子、および前記総数記憶部が記憶している総数に基づいて、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定するサーバ装置決定部（例えば、図２の個別ＩＤ管理ＤＢ部２ｂ、共通要因取得部２ｅ、個別要因取得部２ｆ、送信先抽出部２ｇに対応）と、前記サーバ装置決定部が決定したサーバ装置へ前記サービスの提供要求を送信するサービス提供要求送信部（例えば、図２の信号送信部２ｈに対応）と、を備えたことを特徴とする。
【０００６】
このような構成によれば、複数のサーバ装置のいずれかにサービスの提供要求を送信する際に、現在の時刻、自クライアント装置の識別子、およびサーバ装置の総数に基づいて、サービスの提供要求の送信先のサーバ装置を決定する。それゆえ、時刻毎および識別子毎に特定サーバ装置を決定できる。そのため、サービスの提供要求の割り振り先をより均等化でき、特定のサーバ装置への該提供要求の集中を抑制できる。これにより、クライアント装置からのサービスの提供要求をより適切に複数のサーバ装置に分散できる。
【０００７】
また、前記複数のサーバ装置（例えば、図１のサーバ装置１に対応）のそれぞれには、予め固有の通し番号（例えば、図１の識別番号に対応）が割り当てられており、前記サーバ装置決定部（例えば、図２の個別ＩＤ管理ＤＢ部２ｂ、共通要因取得部２ｅ、個別要因取得部２ｆ、送信先抽出部２ｇに対応）は、前記複数のサーバ装置のうちから、前記識別子記憶部が記憶している識別子に関する数字と前記現在時刻検出部が検出した時刻に関する数字との加算値を前記総数記憶部が記憶している総数で除算した場合の剰余に基づく数値が割り当てられているサーバ装置を前記サービスの提供要求を送信するサーバ装置として決定することを特徴とする構成としてもよい。
【０００８】
このような構成によれば、サービスの提供要求の送信先となるサーバ装置を比較的容易に決定できる。これにより、クライアント装置を比較的容易に実現できる。
さらに、自クライアント装置の前記現在時刻検出部が検出する現在の時刻と他クライアント装置の前記現在時刻検出部が検出する現在の時刻とを同期させる時刻同期部を備えたことを特徴とする構成としてもよい。
このような構成によれば、サービス提供要求の割り振り先をより適切に均等化でき、特定のサーバ装置１への該提供要求の集中をより適切に抑制できる。
【０００９】
また、本発明の一態様のクライアントサーバシステムは、
同一のサービスを提供可能な複数のサーバ装置（例えば、図１のサーバ装置１に対応）と、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定し、決定したサーバ装置へ前記サービスの提供要求を送信する複数のクライアント装置（例えば、図１のクライアント装置２に対応）と、を備えたクライアントサーバシステム（例えば、図１のクライアントサーバシステムＳに対応）であって、現在の時刻を検出する現在時刻検出部（例えば、図１のタイマー２ａに対応）と、前記複数のクライアント装置のそれぞれは、自クライアント装置を一意に識別するための識別子を記憶する識別子記憶部（例えば、図１の個別ＩＤ管理ＤＢ部２ｂに対応）と、同一のサービスを提供可能な複数のサーバ装置の総数を記憶する総数記憶部（例えば、図２の送信先管理ＤＢ部２ｃに対応）と、前記複数のサーバ装置のいずれかに前記サービスの提供要求を送信する際に、前記現在時刻検出部が検出した時刻、前記識別子記憶部が記憶している識別子、および前記総数記憶部が記憶している総数に基づいて、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定するサーバ装置決定部（例えば、図２の個別ＩＤ管理ＤＢ部２ｂ、共通要因取得部２ｅ、個別要因取得部２ｆ、送信先抽出部２ｇに対応）と、前記サーバ装置決定部が決定したサーバ装置へ前記サービスの提供要求を送信するサービス提供要求送信部（例えば、図２の信号送信部２ｈに対応）と、を備え、前記複数のサーバ装置のそれぞれは、前記複数のクライアント装置のいずれかが送信した前記サービスの提供要求を受信すると、該提供要求の送信元のクライアント装置に対して前記サービスの提供を開始するサービス提供実行部（例えば、図１のサービス提供実行部１ａに対応）と、を備えたことを特徴とする。
【００１０】
このような構成によれば、複数のサーバ装置のいずれかにサービスの提供要求を送信する際に、現在の時刻、自クライアント装置の識別子、およびサーバ装置の総数に基づいて、サービスの提供要求の送信先のサーバ装置を決定する。それゆえ、時刻毎および識別子毎に特定サーバ装置を決定できる。そのため、サービスの提供要求の割り振り先をより均等化でき、特定のサーバ装置への該提供要求の集中を抑制できる。これにより、クライアント装置からのサービスの提供要求をより適切に複数のサーバ装置に分散できる。
【００１１】
さらに、本発明の一態様のクライアント装置の制御プログラムは、
クライアント装置（例えば、図１のクライアント装置２に対応）に搭載されたコンピュータ（例えば、図２の装置制御部２ｄに対応）を、同一のサービスを提供可能な複数のサーバ装置のいずれかに前記サービスの提供要求を送信する際に、現在の時刻、自クライアント装置を一意に識別するための識別子、および前記複数のサーバ装置の総数に基づいて、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定するサーバ装置決定部（例えば、図２の個別ＩＤ管理ＤＢ部２ｂ、共通要因取得部２ｅ、個別要因取得部２ｆ、送信先抽出部２ｇ、図６のステップＳ１０１、Ｓ１０２に対応）、および前記サーバ装置決定部が決定したサーバ装置へ前記サービスの提供要求を送信するサービス提供要求送信部（例えば、図２の信号送信部２ｈ、図６のステップＳ１０３に対応）、として機能させることを特徴とする。
【００１２】
このような構成によれば、複数のサーバ装置のいずれかにサービスの提供要求を送信する際に、現在の時刻、自クライアント装置の識別子、およびサーバ装置の総数に基づいて、サービスの提供要求の送信先のサーバ装置を決定する。それゆえ、時刻毎および識別子毎に特定サーバ装置を決定できる。そのため、サービスの提供要求の割り振り先をより均等化でき、特定のサーバ装置への該提供要求の集中を抑制できる。これにより、クライアント装置からのサービスの提供要求をより適切に複数のサーバ装置に分散できる。
【００１３】
また、本発明の一態様のクライアント装置の制御方法は、
クライアント装置（例えば、図１のクライアント装置２に対応）の制御方法であって、同一のサービスを提供可能な複数のサーバ装置（例えば、図１のサーバ装置１に対応）のいずれかに前記サービスの提供要求を送信する際に、現在の時刻、自クライアント装置を一意に識別するための識別子、および前記複数のサーバ装置の総数に基づいて、前記複数のサーバ装置のうちから、前記サービスの提供要求を送信するサーバ装置を決定するサーバ装置決定ステップ（例えば、図２の個別ＩＤ管理ＤＢ部２ｂ、共通要因取得部２ｅ、個別要因取得部２ｆ、送信先抽出部２ｇ、図６のステップＳ１０１、Ｓ１０２に対応）と、前記サーバ装置決定ステップで決定したサーバ装置へ前記サービスの提供要求を送信するサービス提供要求送信ステップ（例えば、図２の信号送信部２ｈ、図６のステップＳ１０３に対応）と、を実行することを特徴とする。
【００１４】
このような構成によれば、複数のサーバ装置のいずれかにサービスの提供要求を送信する際に、現在の時刻、自クライアント装置の識別子、およびサーバ装置の総数に基づいて、サービスの提供要求の送信先のサーバ装置を決定する。それゆえ、時刻毎および識別子毎に特定サーバ装置を決定できる。そのため、サービスの提供要求の割り振り先をより均等化でき、特定のサーバ装置への該提供要求の集中を抑制できる。これにより、クライアント装置からのサービスの提供要求をより適切に複数のサーバ装置に分散できる。
【発明の効果】
【００１５】
本発明の一態様によれば、複数のサーバ装置のいずれかにサービスの提供要求を送信する際に、現在の時刻、自クライアント装置の識別子、およびサーバ装置の総数に基づいて、サービスの提供要求の送信先のサーバ装置を決定する。それゆえ、時刻毎および識別子毎に特定サーバ装置を決定できる。そのため、サービスの提供要求の割り振り先をより均等化でき、特定のサーバ装置への該提供要求の集中を抑制できる。これにより、クライアント装置からのサービスの提供要求をより適切に複数のサーバ装置に分散できる。
【図面の簡単な説明】
【００１６】
【図１】クライアントサーバシステムの概略構成を示す構成図である。
【図２】クライアント装置２の機能構成を示すブロック図である。
【図３】送信先抽出部２ｇの動作を説明する説明図である。
【図４】送信先抽出部２ｇの動作を説明する説明図である。
【図５】変形例を説明するための説明図である。
【図６】装置制御部２ｄが実行する演算処理を表すフローチャートである。
【図７】クライアントサーバシステムＳの動作を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照しながら、本発明に係る実施形態を詳細に説明する。
本実施形態は、本発明を、クライアントサーバシステムＳに適用したものである。
（クライアントサーバシステムＳのシステム構成）
最初に、クライアントサーバシステムＳの全体の概略構成を説明する。
図１は、クライアントサーバシステムＳの概略構成を示す構成図である。
本実施形態では、図１に示すように、クライアントサーバシステムＳは、同一のサービス（以下、特定サービスとも呼ぶ）を提供可能な複数のサーバ装置１と、特定サービスの提供を行うサーバ装置１を決定し、決定したサーバ装置１に特定サービスの提供要求を送信する複数のクライアント装置２と、を備える。特定サービスの提供としては、例えば、予め定めた各種処理の実行、各種コンテンツの配信等がある。複数のサーバ装置１のそれぞれと複数のクライアント装置２のそれぞれとは通信路３を介して情報の送受信を行う。
【００１８】
（サーバ装置１の機能構成）
サーバ装置１は、サービス提供実行部１ａを備える。
サービス提供実行部１ａは、クライアント装置２が送信した特定サービスの提供要求（以下、単にサービス提供要求とも呼ぶ。例えば、サーバ装置１へのアクセス要求がある。）を受信する。また、サービス提供実行部１ａは、受信したサービス提供要求（例えば、サーバ装置１へのアクセス要求）に従って、該サービス提供要求の送信元のクライアント装置２に対して特定サービスの提供（例えば、各種処理の実行）を行う（開始する）。
【００１９】
（クライアント装置２の機能構成）
図２は、クライアント装置２の機能構成を示すブロック図である。
クライアント装置２は、タイマー２ａ、個別ＩＤ(Identification)管理ＤＢ(Database)部２ｂ、送信先管理ＤＢ部２ｃ、および装置制御部２ｄを備える。
タイマー２ａは、現在の時刻をカウント（検出）する。また、タイマー２ａは、自クライアント装置２のタイマー２ａがカウントする時刻と他のクライアント装置２のタイマー２ａがカウントする時刻とを同期させる。複数のクライアント装置２間における時刻の同期方法としては、例えば、ＮＴＰ(Network Time Protocol)サーバを用いる方法がある。
【００２０】
個別ＩＤ管理ＤＢ部２ｂは、自クライアント装置２を一意に識別するための識別子（以下、個別ＩＤとも呼ぶ）を記憶している。個別ＩＤとしては、例えば、複数のクライアント装置２のそれぞれに、予め割り当てられているユニークな数字、つまり、他のクライアント装置２と重複しない数字がある。例えば、１、２、…、Ｍ（Ｍは、クライアントサーバシステムＳが備える複数のクライアント装置２の総数）等の１から始まる通し番号がある。
なお、本実施形態では、個別ＩＤとして、１から始まる通し番号を用いる例を示したが、他の構成を採用することもできる。例えば、個別ＩＤとしては、３、５、７等の１から始まらない不連続な数字や、自クライアント装置２のＩＰ(Internet Protocol)アドレス等、他のクライアント装置２の個別ＩＤと重複しない数字であればよい。
【００２１】
送信先管理ＤＢ部２ｃは、複数のサーバ装置１の総数（以下、サーバ総数とも呼ぶ）、複数のサーバ装置１のそれぞれに予め割り当てられている識別番号、および複数のサーバ装置１それぞれを一意に識別するための識別子を記憶している。サーバ総数としては、例えば、クライアントサーバシステムＳが備える複数のサーバ装置１の数や、該複数のサーバ装置１のうち現在サービスを提供可能な稼働状態にあるサーバ装置１の数がある。識別番号としては、例えば、１、２、…、Ｎ（Ｎは、クライアントサーバシステムＳが備える複数のサーバ装置１の総数。Ｍ≧Ｎ）等の１から始まる通し番号がある。例えば、識別子としては、複数のサーバ装置１のそれぞれに、予め設定したＩＰアドレス等がある。
【００２２】
装置制御部２ｄは、Ａ/Ｄ(Analog to Digital)変換回路、Ｄ/Ａ(Digital to Analog)変換回路、ＣＰＵ(Central Processing Unit)、ＲＯＭ(Read Only Memory)、およびＲＡＭ(Random Access Memory)等から構成した集積回路を備える（コンピュータを搭載する）。ＲＯＭは、各種演算処理を実現する１または２以上のプログラムを記憶している。ＣＰＵは、ＲＯＭが記憶している１または２以上のプログラムに従って各種演算処理を実行する。これにより、ＣＰＵは、複数のサーバ装置１のいずれかにサービス提供要求を送信する際に、つまり、サービス提供要求（例えば、サーバ装置１へのアクセス要求）の送信要求が発生した場合に、装置制御部２ｄ（コンピュータ）を、共通要因取得部２ｅ、個別要因取得部２ｆ、送信先抽出部２ｇ、および信号送信部２ｈ、として機能させる。
共通要因取得部２ｅは、タイマー２ａから現在の時刻を取得する。
個別要因取得部２ｆは、個別ＩＤ管理ＤＢ部２ｂから個別ＩＤを取得する。
【００２３】
送信先抽出部２ｇは、共通要因取得部２ｅが取得した現在の時刻、個別要因取得部２ｆが取得した個別ＩＤ（数字）、および送信先管理ＤＢ部２ｃが記憶しているサーバ総数（Ｎ台）を取得する。そして、送信先抽出部２ｇは、取得した現在の時刻、個別ＩＤ（数字）、およびサーバ総数（Ｎ台）に基づいて、複数のサーバ装置１のうちから、特定サービスの提供を行うサーバ装置（以下、特定サーバ装置とも呼ぶ）１を決定する。特定サーバ装置１の決定方法としては、例えば、個別ＩＤ（数字）ａ、時刻の秒数（数字）ｂ、サーバ総数（数字）Ｎに基づき、下記（１）式に従って、特定サーバ装置１の識別番号を決定する方法がある。下記（１）式では、送信先抽出部２ｇは、複数のサーバ装置１のうちから、個別ＩＤ（識別子に関する数字）ａと時刻の秒数（現在の時刻に関する数字）ｂとの加算値を複数のサーバ装置１の総数Ｎで除算した場合の剰余に基づく数値（＝（ａ＋ｂ）/Ｎ＋１の剰余＋１）が割り当てられているサーバ装置１を特定サーバ装置１として決定する。
特定サーバ装置１の識別番号＝（ａ＋ｂ）/Ｎの剰余＋１  ………（１）
但し、（ａ＋ｂ）/Ｎの剰余＋１は、個別ＩＤ（数字）ａと時刻の秒数（数字）ｂとの加算値をサーバ総数（数字）Ｎで除算した場合の剰余に１を加算した数値である。
【００２４】
図３、図４は、送信先抽出部２ｇの動作を説明する説明図である。
ここで、例えば、図３に示すように、クライアント装置２が４台（Ｍ＝４。ａ＝１、２、３または４。）、サーバ装置１が２台（Ｎ＝２）、現在の時刻が１０時１０分１秒（ｂ＝１）である場合を考える。そして、例えば、４台のクライアント装置２のすべてにサービス提供要求の送信要求が同時発生した場合を考える。この場合、個別ＩＤが１（ａ＝１）であるクライアント装置２では、特定サーバ装置１の識別番号は１（＝（１＋１）/２の剰余＋１）になる。以下同様に、個別ＩＤが２（ａ＝２）であるクライアント装置２では、特定サーバ装置１の識別番号は２（＝（２＋１）/２の剰余＋１）になる。さらに、個別ＩＤが３（ａ＝３）のクライアント装置２では、特定サーバ装置１の識別番号は１（＝（３＋１）/２の剰余＋１）になる。また、個別ＩＤが４（ａ＝４）であるクライアント装置２では、特定サーバ装置１の識別番号は２（＝（４＋１）/２の剰余＋１）になる。すなわち、個別ＩＤが１、３のクライアント装置２は、識別番号が１のサーバ装置１を特定サーバ装置１とする。また、個別ＩＤが２、４のクライアント装置２は、識別番号が２のサーバ装置１を特定サーバ装置１とする。このように、送信先抽出部２ｇは、自クライアント装置２の個別ＩＤ（ａ＝１、２、３または４）毎に特定サーバ装置１を決定できる。そのため、サービス提供要求の割り振り先をより均等化でき、特定のサーバ装置１へのサービス提供要求の集中を抑制できる。これにより、クライアント装置２からのサービス提供要求（例えば、サーバ装置１へのアクセス要求）を複数のサーバ装置１により適切に分散できる。
【００２５】
また、例えば、図４（ａ）に示すように、クライアント装置２の総数が４台（Ｍ＝４。ａ＝１、２、３または４。）、サーバ装置１の総数が２台（Ｎ＝２）、現在の時刻が１０時１０分１秒（ｂ＝１）である場合を考える。そして、例えば、個別ＩＤが１（ａ＝１）のクライアント装置２へサービス提供要求（例えば、サーバ装置１へのアクセス要求）の送信要求が発生した場合を考える。この場合、個別ＩＤが１（ａ＝１）であるクライアント装置２では、特定サーバ装置１の識別番号は１（＝（１＋１）/２の剰余＋１）になる。これにより、識別番号が１であるサーバ装置１は、個別ＩＤが１であるクライアント装置２に対して特定サービスの提供を開始する。続いて、例えば、図４（ｂ）に示すように、識別番号が１であるサーバ装置１が特定サービスの提供中、現在の時刻が１０時１０分２秒（ｂ＝２）となったときに、個別ＩＤが３（ａ＝３）のクライアント装置２へサービス提供要求の送信要求が発生した場合を考える。この場合、個別ＩＤが３（ａ＝３）であるクライアント装置２では、特定サーバ装置１の識別番号は２（＝（３＋２）/２の剰余＋１）になる。これにより、識別番号が３であるサーバ装置１は、個別ＩＤが３であるクライアント装置２に対して特定サービスの提供を開始する。すなわち、個別ＩＤが１のクライアント装置２は、識別番号が１のサーバ装置１を特定サーバ装置１とする。また、個別ＩＤが３のクライアント装置２は、識別番号が２のサーバ装置１を特定サーバ装置１とする。このように、送信先抽出部２ｇは、自クライアント装置２の個別ＩＤ（ａ＝１、２、３または４）に加え、現在の時刻（１０時１０分１秒、１０時１０分２秒）毎にも特定サーバ装置１を決定できる。そのため、サービス提供要求の割り振り先をより均等化でき、特定のサーバ装置１へのサービス提供要求の集中を抑制できる。これにより、クライアント装置２からのサービス提供要求（例えば、サーバ装置１へのアクセス要求）を複数のサーバ装置１により適切に分散できる。
また、図２に戻り、送信先抽出部２ｇは、送信先管理ＤＢ部２ｃから、決定した特定サーバ装置１に対応する識別子（ＩＰアドレス）を取得する。
【００２６】
図５は、変形例を説明するための説明図である。
なお、本実施形態では、送信先抽出部２ｇは、上記（１）式に従って、特定サーバ装置１の識別番号を決定する例を示したが、他の構成を採用することもできる。例えば、送信先抽出部２ｇは、図５に示すように、クライアント装置２の個別ＩＤ（数字）ａ、時刻の秒数（数字）ｂ、およびサーバ総数（数字）Ｎの組み合わせに対応する特定サーバ装置１の識別番号を登録したテーブルを備える構成としてもよい。この場合、送信先抽出部２ｇは、テーブルを参照して、クライアント装置２の個別ＩＤ（数字）ａ、時刻の秒数（数字）ｂ、およびサーバ総数（数字）Ｎに対応する特定サーバ装置１の識別番号を取得する。このようにすれば、送信先抽出部２ｇは、特定サーバ装置１の識別番号の計算を省略できる。
【００２７】
また、本実施形態では、送信先抽出部２ｇは、時刻の秒数に基づいて、特定サーバ装置１の識別番号を決定する例を示したが、他の構成を採用することもできる。例えば、送信先抽出部２ｇは、時刻の秒数に代えて、時を表す数字、分を表す数字等の秒数以外の時刻に関する数字に基づいて、特定サーバ装置１の識別番号を決定する構成としてもよい。また、例えば、送信先抽出部２ｇは、１/１０秒を表す数字、１/１００秒を表す数字等、１秒以下の時刻に関する数字に基づいて、特定サーバ装置１の識別番号を決定する構成としてもよい。
信号送信部２ｈは、送信先抽出部２ｇが決定した特定サーバ装置１へサービス提供要求（例えば、サーバ装置１へのアクセス要求）を送信する。例えば、信号送信部２ｈは、通信路３を介して、送信先抽出部２ｇが抽出した識別子（ＩＰアドレス）に対応するサーバ装置１にサービス提供要求（例えば、サーバ装置１へのアクセス要求）を送信する。
【００２８】
（装置制御部２ｄが実行する演算処理）
次に、本実施形態の装置制御部２ｄ（共通要因取得部２ｅ、個別要因取得部２ｆ、送信先抽出部２ｇ、および信号送信部２ｈ）が実行する演算処理を説明する。この演算処理は、サービス提供要求（例えば、サーバ装置１へのアクセス要求）の送信要求の発生時に実行される処理である。
【００２９】
図６は、装置制御部２ｄが実行する演算処理を表すフローチャートである。
図６に示すように、ステップＳ１０１では、装置制御部２ｄ（共通要因取得部２ｅ）は、タイマー２ａから現在の時刻を取得する。続いて、装置制御部２ｄ（個別要因取得部２ｆ）は、個別ＩＤ管理ＤＢ部２ｂから個別ＩＤを取得する。
【００３０】
続いてステップＳ１０２では、装置制御部２ｄ（送信先抽出部２ｇ）は、送信先管理ＤＢ部２ｃが記憶しているサーバ総数（Ｎ台）を取得する。続いて、装置制御部２ｄ（送信先抽出部２ｇ）は、取得したサーバ総数（Ｎ台）、前記ステップＳ１０１で取得した現在の時刻、および個別ＩＤ（数字）に基づいて、複数のサーバ装置１のうちから、特定サーバ装置１を決定する。続いて、装置制御部２ｄ（送信先抽出部２ｇ）は、送信先管理ＤＢ部２ｃから、決定した特定サーバ装置１に対応する識別子（ＩＰアドレス）を取得する。
続いてステップＳ１０３では、装置制御部２ｄ（信号送信部２ｈ）は、前記ステップＳ１０２で取得した識別子（ＩＰアドレス）に基づいて特定サーバ装置１へサービス提供要求（例えば、サーバ装置１へのアクセス要求）を送信した後、この演算処理を終了する。
【００３１】
（動作その他）
次に、本実施形態のクライアントサーバシステムＳの動作を説明する。
図７は、クライアントサーバシステムＳの動作を説明するためのシーケンス図である。
図３、図４、および図７に示すように、クライアントサーバシステムＳが、２台のサーバ装置１と、４台のクライアント装置２とを備えているとする。そして、例えば、４台のクライアント装置２のすべてにサービス提供要求（例えば、サーバ装置１へのアクセス要求）の送信要求が同時発生したとする。すると、４台のクライアント装置２のそれぞれは、タイマー２ａから現在の時刻（例えば、１０時１０分１秒）を取得する（図６のステップＳ１０１、図７の２０１）。続いて、４台のクライアント装置２のそれぞれは、個別ＩＤ管理ＤＢ部２ｂから個別ＩＤを取得する（図６のステップＳ１０１、図７のステップＳ２０２）。続いて、４台のクライアント装置２のそれぞれは、送信先管理ＤＢ部２ｃが記憶しているサーバ総数（Ｎ＝２）を取得する（図６のステップＳ１０２、図７のステップＳ２０３）。続いて、４台のクライアント装置２のそれぞれは、取得したサーバ総数（Ｎ＝２）、現在の時刻（ｂ＝１）、および個別ＩＤ（Ｍ＝４。ａ＝１、２、３または４。）に基づいて、複数のサーバ装置１のうちから、特定サーバ装置１を決定する（図６のステップＳ１０２、図７のステップＳ２０４）。これにより、個別ＩＤが１、３のクライアント装置２は、識別番号が１のサーバ装置１を特定サーバ装置１とする。また、個別ＩＤが２、４のクライアント装置２は、識別番号が２のサーバ装置１を特定サーバ装置１とする。
【００３２】
続いて、４台のクライアント装置２のそれぞれは、送信先管理ＤＢ部２ｃから、決定した特定サーバ装置１に対応する識別子（ＩＰアドレス）を取得する（図６のステップＳ１０２、図７のステップＳ２０５）。続いて、装置制御部２ｄが、決定した特定サーバ装置１へサービス提供要求（例えば、サーバ装置１へのアクセス要求）を送信する（図６のステップＳ１０３、図７のＳ２０６）。これにより、個別ＩＤが１、３のクライアント装置２は、識別番号が１のサーバ装置１へサービス提供要求を送信する。また、個別ＩＤが２、４のクライアント装置２は、識別番号が２のサーバ装置１へサービス提供要求を送信する。そして、識別番号が１であるサーバ装置１は、個別ＩＤが１、２のクライアント装置２に対して特定サービスの提供（例えば、各種処理の実行）を開始する（図７のステップＳ２０７）。また、識別番号が２であるサーバ装置１は、個別ＩＤが３、４のクライアント装置２に対して特定サービスの提供（例えば、各種処理の実行）を開始する（図７のステップＳ２０８）。
【００３３】
このように、本実施形態では、クライアント装置２は、複数のサーバ装置１のいずれかにサービスの提供要求を送信する際に、現在の時刻、自クライアント装置２の個別ＩＤ（識別子）、およびサーバ装置１の総数に基づいて、複数のサーバ装置１のうちから、サービスの提供要求の送信先のサーバ装置（特定サーバ装置）１を決定する。そして、クライアント装置２は、決定した特定サーバ装置１へサービス提供要求を送信する。このような構成によれば、クライアント装置２は、時刻毎および個別ＩＤ（識別子）毎に特定サーバ装置１を決定できる。そのため、サービス提供要求の割り振り先をより均等化でき、特定のサーバ装置１への該提供要求の集中を抑制できる。これにより、本実施形態では、クライアント装置２からのサービスの提供要求を複数のサーバ装置１により適切に分散できる。
【００３４】
また、クライアント装置２は、複数のサーバ装置１のうちから、個別ＩＤ（識別子に関する数字）ａと時刻の秒数（現在の時刻に関する数字）ｂとの加算値を複数のサーバ装置１の総数Ｎで除算した場合の剰余に基づく数値（＝（ａ＋ｂ）/Ｎの剰余＋１）が割り当てられているサーバ装置１を特定サーバ装置１として決定する。このような構成によれば、特定サーバ装置１を比較的容易に決定できる。これにより、クライアント装置２を比較的容易に実現できる。
【００３５】
また、自クライアント装置２のタイマー２ａがカウント（検出）する現在の時刻と他のクライアント装置２のタイマー２ａがカウントする現在の時刻とを同期させる構成とした。このような構成によれば、サービス提供要求の割り振り先をより適切に均等化でき、特定のサーバ装置１への該提供要求の集中をより適切に抑制できる。
ちなみに、例えば、複数のクライアント装置２が、擬似乱数を算出し、算出した疑似乱数に応じてアクセス要求の割り振り先のサーバ装置１を決定する従来の方法では、サービス提供要求の割り振り先のサーバ装置１に偏りが生じる可能性があった。そのため、この方法では、特定のサーバ装置１にサービス提供要求が集中してしまう可能性があった。
【００３６】
また、例えば、複数のサーバ装置１と複数のクライアント装置２との間に、クライアント装置２からのサービス提供要求を取得し、取得結果を複数のサーバ装置１に振り分ける負荷分散装置（ロードバランサ）を設ける従来の方法では、負荷分散装置への処理集中による障害が生じる可能性があった。また、この方法では、負荷分散装置に障害が生じた場合にクライアントサーバシステムＳ全体に障害が発生する可能性があった。
【００３７】
本実施形態では、図１のサーバ装置１がサーバ装置を構成する。以下同様に、図１のサービス提供実行部１ａがサービス提供実行部を構成する。また、図１のクライアント装置２が（クライアント装置）を構成する。さらに、図２のタイマー２ａが現在時刻検出部を構成する。また、図２の個別ＩＤ管理ＤＢ部２ｂ、共通要因取得部２ｅ、個別要因取得部２ｆ、送信先抽出部、図６のステップＳ１０１、Ｓ１０２がサーバ装置決定部、サーバ装置決定ステップを構成する。さらに、図２の送信先管理ＤＢ部２ｃが総数記憶部を構成する。また、図２の信号送信部２ｈ、図６のステップＳ１０３がサービス提供要求送信部、サービス提供要求送信ステップを構成する。さらに、図１のクライアントサーバシステムＳがクライアントサーバシステムを構成する。
【００３８】
なお、本発明の範囲は、図示され記載された例示的な実施形態に限定されるものではなく、本発明が目的とするものと均等な効果をもたらすすべての実施形態をも含む。さらに、本発明の範囲は、請求項１により画される発明の特徴の組み合わせに限定されるものではなく、すべての開示されたそれぞれの特徴のうち特定の特徴のあらゆる所望する組み合わせによって画されうる。
【産業上の利用可能性】
【００３９】
本発明は、同一のサービスを提供する複数のサーバ装置のいずれかにサービスの提供要求を送信するクライアント装置、クライアント装置を有するクライアントサーバシステム、クライアント装置の制御プログラムおよびクライアント装置の制御方法に有用である。
【符号の説明】
【００４０】
１    サーバ装置（サーバ装置）
１ａ  サービス提供実行部（サービス提供実行部）
２    クライアント装置（クライアント装置）
２ａ  タイマー（現在時刻検出部、時刻同期部）
２ｂ  個別ＩＤ管理ＤＢ部（サーバ装置決定部、サーバ装置決定ステップ）
２ｃ  送信先管理ＤＢ部（総数記憶部）
２ｅ  共通要因取得部（サーバ装置決定部、サーバ装置決定ステップ）
２ｆ  個別要因取得部（サーバ装置決定部、サーバ装置決定ステップ）
２ｇ  送信先抽出部（サーバ装置決定部、サーバ装置決定ステップ）
２ｈ  信号送信部（サービス提供要求送信部、サービス提供要求送信ステップ）
Ｓ    クライアントサーバシステム（クライアントサーバシステム）
ステップＳ１０１、Ｓ１０２（サーバ装置決定部、サーバ装置決定ステップ）
ステップＳ１０３（サービス提供要求送信部、サービス提供要求送信ステップ）
【図１】
2014098975.tif 000003
【図２】
2014098975.tif 000004
【図３】
2014098975.tif 000005
【図４】
2014098975.tif 000006
【図５】
2014098975.tif 000007
【図６】
2014098975.tif 000008
【図７】
2014098975.tif 000009