説明

負荷分散システム、接続先決定装置、クライアント装置、および、サービス提供装置

【課題】 安価に実現可能な負荷分散システムを提供することである。
【解決手段】 本発明の管理サーバ装置は、クライアント装置からのユーザ認証要求に対して、当該クライアント装置に接続先のサーバ装置を通知し、以後、クライアント装置と、サーバ装置との間でデータがやり取りされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置(サーバ装置)のうちのどのサービス提供装置に接続するかを決定する負荷分散技術に関する。
【背景技術】
【0002】
外部ネットワークからの要求を一元的に管理し、同等の機能を持つ複数のサーバに要求を転送するロードバランサ(負荷分散装置)を使用した負荷分散システムが知られている。図16は、多重化したロードバランサを使用した負荷分散システムを示す図である。
図16において、ロードバランサ31および32は、共通の公開IPアドレスを有しており、M台のクライアント装置33−1、・・・、33−Mは、ロードバランサ31および32の公開IPアドレスを用いて、ロードバランサ31または32のいずれか一方(アクティブな方)とインターネット及びLAN(Local Area Network)等のネットワークを介して通信を行う。
【0003】
N台のサーバ装置34−1、・・・、34−Nは、クライアント装置のいずれかに代わって例えばアプリケーションを実行する装置であり、相手のクライアント装置から受信したイベントデータに従った処理を実行し、その結果が反映された画面データをクライアント装置に送信する。
アクティブなロードバランサは、いずれかのクライアント装置からの要求を、各サーバ装置の負荷状態を判断する等してN台のサーバ装置34−1、・・・、34−Nのいずれかに割り振る。
【0004】
しかし、このような構成では、クライアント装置とサーバ装置がロードバランサを介して接続されているので、クライアント装置からサーバ装置へのデータ、サーバ装置からクライアント装置へのデータの双方がロードバランサにおいて処理され、ロードバランサの負荷が増し、システムが安価には実現できないという問題がある。
そこで、このような問題を解決するため、特許文献1には、サーバ装置からクライアント装置へデータを転送する場合は、ロードバランサ(負荷分散装置)を経由しなくても済むような負荷分散システムが示されている。
【0005】
【特許文献1】特開2006−277569号公報 「負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法」
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、安価に実現可能な負荷分散システムを提供することをその第一の目的とする。
本発明は、クライアント装置とサーバ装置の間で通信が切断された場合も、再接続することを可能とした、安価に実現可能な負荷分散システムを提供することをその第二の目的とする。
【課題を解決するための手段】
【0007】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明の負荷分散システムは、複数のクライアント装置と、クライアント装置にサービスを提供する複数のサービス提供装置と、クライアント装置ごとに接続先のサービス提供装置を決定する接続先決定装置とを備える負荷分散システムにおいて、前記接続先決定装置は、クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、クライアント装置ごとにサービス提供装置を決定する決定手段と、決定されたサービス提供装置をクライアント装置に通知する手段、を備え、前記クライアント装置は、前記接続先決定装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置に接続する手段、を備え、前記サービス提供装置は、クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、クライアント装置からのサービスの要求に対応してサービスを提供する手段、を備えることを特徴とする。
また、本発明の負荷分散システムは、記憶装置をさらに備え、前記接続先決定装置が、ユーザ認証に用いるデータ、および、前記決定手段による処理結果のデータをユーザごとに記憶装置に格納することが望ましい。
【0008】
また、本発明の一態様によれば、本発明の負荷分散システムは、複数のクライアント装置と、クライアント装置にサービスを提供する複数のサービス提供装置と、クライアント装置ごとに接続先のサービス提供装置を決定する接続先決定装置とを備える負荷分散システムにおいて、前記接続先決定装置は、前記クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、クライアント装置からのユーザ認証の状態を示すデータを基にサービス提供装置の障害を検出する第一検出手段と、サービス提供装置との通信状態によりサービス提供装置の障害を検出する第二検出手段と、クライアント装置ごとにサービス提供装置を決定する決定手段と、決定されたサービス提供装置をクライアント装置に通知する手段、を備え、前記クライアント装置は、サービス提供装置との通信状態によりサービス提供装置の障害を検出する検出手段と、前記接続先決定装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置に接続する手段、を備え、前記サービス提供装置は、クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、クライアント装置からのサービスの要求に対応してサービスを提供する手段と、クライアント装置からのイベントデータを記憶装置に格納する格納制御手段と、自身が障害を発生したサービス提供装置の代替で動作する場合は、前記記憶装置からイベントデータを読み出して、該障害を発生したサービス提供装置の障害発生時点での動作状態を復元する復元手段、を備えることを特徴とする。
【0009】
また、本発明の負荷分散システムは、前記接続先決定装置が、ユーザ認証に用いるデータ、および、前記決定手段による処理結果のデータをユーザごとに前記記憶装置に格納することが望ましい。
また、本発明の負荷分散システムは、前記サービス提供装置の認証手段が、クライアント装置からのユーザ認証の要求に対応して、前記接続先決定装置を介してユーザ認証の状態を示すデータを取得し、取得されたユーザ認証の状態を示すデータを基に、前記復元手段を起動するかどうかを決めることが望ましい。
【0010】
また、本発明の一態様によれば、本発明の接続先決定装置は、クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置において、クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、クライアント装置ごとにサービス提供装置を決定する決定手段と、決定されたサービス提供装置をクライアント装置に通知する手段、を備えることを特徴とする。
また、本発明の一態様によれば、本発明の接続先決定装置は、クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置において、前記クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、クライアント装置からのユーザ認証の状態を示すデータを基にサービス提供装置の障害を検出する第一検出手段と、サービス提供装置との通信状態によりサービス提供装置の障害を検出する第二検出手段と、クライアント装置ごとにサービス提供装置を決定する決定手段と、決定されたサービス提供装置をクライアント装置に通知する手段、を備えることを特徴とする。
【0011】
また、本発明の一態様によれば、本発明のクライアント装置は、クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置に接続する手段、を備えることを特徴とする。
また、本発明のクライアント装置は、サービス提供装置との通信状態によりサービス提供装置の障害を検出する検出手段、をさらに備えることが望ましい。
【0012】
また、本発明の一態様によれば、本発明のサービス提供装置は、クライアント装置にサービスを提供するサービス提供装置において、クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、クライアント装置からのサービスの要求に対応してサービスを提供する手段と、クライアント装置からのイベントデータを記憶装置に格納する格納制御手段と、自身が障害を発生したサービス提供装置の代替で動作する場合は、前記記憶装置からイベントデータを読み出して、該障害を発生したサービス提供装置の障害発生時点での動作状態を復元する復元手段、を備えることを特徴とする。
また、本発明のサービス提供装置は、前記サービス提供装置の認証手段が、クライアント装置からのユーザ認証の要求に対応して、前記接続先決定装置を介してユーザ認証の状態を示すデータを取得し、取得されたユーザ認証の状態を示すデータを基に、前記復元手段を起動するかどうかを決めることが望ましい。
【発明の効果】
【0013】
本発明によれば、接続先指定装置は、クライアント装置からのユーザ認証要求に対して、接続先のサービス提供装置を通知し、以後、クライアント装置と、サービス提供装置との間でデータがやり取りされる。よって、接続先指定装置は、クライアント装置と、サービス提供装置との間を行き来するデータをその都度転送する必要がなく、安価に構成することができる。
また、クライアント装置からサービス提供装置に送られるイベントデータを記憶装置にも蓄積するようにしたので、通信の切断後の再接続時に、接続先指定装置から接続先として新たに割り振られたサービス提供装置において、そのイベントデータを記憶装置から取得することで、障害を発生したサービス提供装置の障害発生時点での動作状態を復元することができる。よって、クライアント装置と、サービス提供装置との間を行き来するデータをその都度転送する必要がなく、安価に構成することができるとともに、クライアント装置とサーバ装置の間で通信が切断された場合も、再接続することができる。
【発明を実施するための最良の形態】
【0014】
以下図面に基づいて、本発明の実施形態について詳細を説明する。
図1は、本発明の一実施形態に係る負荷分散システムの構成を示すブロック図である。
図1に示すように、M台のクライアント装置4−1、・・・、4−M、が多重化された管理サーバ装置(接続先指定装置)1および2、N台のサーバ装置(サービス提供装置)5−1、・・・、5−Nにインターネット及びLAN等のネットワークを介して接続されて、負荷分散システムが構成されている。
【0015】
サーバ装置は、クライアント装置にサービスを提供する装置である。サービスとは、例えば、ブラウザ等のアプリケーションを実行し、クライアント装置からの指示(イベントデータ)が反映された画面データを処理結果として、その都度クライアント装置に送信することである。
図示しないが、サーバ装置は、CPU(中央処理装置:Central Processing Unit)、画像やその他の情報を表示するためのLCD等の表示装置、通信制御プログラムを始めサーバ装置の各機能を制御し実行するための制御プログラムが収納されたROM、キーボードやマウス等であって各種のデータや信号等を入力するための入力装置、各種データを一時的に格納するRAM、ネットワークを介して他の情報処理装置と接続するための通信I/F(インターフェース)、表示装置に表示するための画像を一時的に格納するフレームバッファ等のVRAMがバスに接続されて構成され、CPUがこれらの各部を制御している。
【0016】
管理サーバ装置1および2は、一方がアクティブであり、他方がスタンバイ状態にある。アクティブである方の管理サーバは、ユーザからクライアント装置を介してユーザ認証要求を受信したとき、そのクライアント装置をN台のサーバ装置5−1、・・・、5−Nのうちのどのサーバ装置に接続するかを決める。クライアント装置は通信の切断等がない限り、決められたサーバ装置にイベントデータを出力する。
管理サーバ装置、クライアント装置もサーバ装置と同様のハード構成を備えている。
【0017】
なお、スタンバイ状態の管理サーバ装置は、信号を受信したとき、管理サーバ装置間をつなぐ専用線6を介して、他方の管理サーバ装置の状態(アクティブであるかどうか)を取得し、他方の管理サーバ装置の状態がアクティブであれば、受信した信号を無視する。
また、データベースサーバ装置(以下、「DBサーバ装置」という)3は、管理サーバ1および2、サーバ装置5−1、・・・、5−Nからアクセス可能であり、後述のユーザごとのデータ(「ユーザ情報」、「接続情報」ともいう)を格納する記憶装置である。
【0018】
なお、図2に示す管理サーバ装置7および8のように、DBサーバ装置(記憶装置)を管理サーバ装置と一体化することも可能である。また、図1や図2のように管理サーバ装置を多重化する代わりに、管理サーバ装置を多重化しない構成を採用することもできる。
図3は、ユーザ情報のデータ構成を示す図である。このユーザ情報は、DBサーバ装置に記憶される。
【0019】
図3に示すように、ユーザ情報は、「user_key」、「user_id」、「default_srv_id」、「srv_id」、「auth_srv_id」、「srv_auth_date」、「status」の各項目を有する。
「user_key」はユーザを識別する番号、「user_id」は認証に使用するユーザID、「default_srv_id」はそのユーザのクライアント装置のデフォルトの接続先としてのサーバ装置のID、「srv_id」はそのユーザのクライアント装置が実際に接続したサーバ装置のID、「auth_srv_id」は管理サーバ装置がそのユーザのクライアント装置に接続を許可したサーバ装置のID、「srv_auth_date」はその許可を行った時刻、「status」はユーザのクライアントの認証等の状態、をそれぞれ示している。
【0020】
なお、「srv_id」の項目は、サーバ情報をポイントしている。サーバ情報は、「srv_id」の項目に設定されたサーバ装置のサーバ番号(「srv_id」)、および、公開IPアドレス(「public_ip」)の各項目を有する。
図4は、図3のステータスの項目に設定される値の意味を説明する図である。
図4に示すように、ステータス(「status」)の値が「0」である場合は、ログインも認証もされていないことを意味し、「1」である場合は、通常の場合、すなわち、後述の再接続ではない場合において、認証済みではあるが未だログインされていないことを意味し、「2」である場合は、ログイン済みであることを意味し、「3」である場合は、後述の再接続の場合において、認証済みではあるが未だログインされていないことを意味し、「5」である場合は、通常の場合、すなわち、後述の再接続ではない場合において、管理サーバ装置およびサーバ装置に認証済みであり、未ログインであることを意味し、「6」である場合は、後述の再接続の場合において、管理サーバ装置およびサーバ装置に認証済みであり、未ログインであることを意味している。
【0021】
図5は、本発明の負荷分散システムの認証処理のシーケンス図である。
まず、メッセージ(1)で、クライアント装置から管理サーバ装置に対し、例えばユーザID、パスワードが送信されることで、ユーザ認証要求が行われる。
ユーザ認証要求を受信した管理サーバ装置では、管理サーバ装置内のCPUの制御の下でプログラムが実行されることにより、ステップS101で、PAM(Pluggable Authentication Modules)、LDAP(Lightweight Directory Access Protocol)、等を用いて、第一のユーザ認証(ローカルユーザ認証)を行う。
【0022】
そして、続く、ステップS102では、第二のユーザ認証、すなわち、DBサーバ装置3に対するユーザ情報(接続情報)の読み出し指示がなされる。ここでは、まず、メッセージ(2)で、ユーザ情報の読み出し指示が管理サーバ装置からDBサーバ装置3に対してなされ、その指示に対し、メッセージ(3)で、処理結果がDBサーバ装置3から管理サーバ装置に対して通知される。この処理結果とは、クライアント装置からの認証要求に含まれるユーザIDと同一のユーザIDを持つユーザ情報があった場合は、そのユーザ情報であり、そのユーザIDと同一のユーザIDを持つユーザ情報がない場合は、ないことを示す情報である。
【0023】
この場合、例えば、管理サーバ装置がデフォルトのサーバ装置と通信を行うことで、管理サーバ装置は、そのデフォルトのサーバ装置が正常に動作していると判断し、ステップS103で管理サーバ装置によって、そのデフォルトのサーバ装置に対するサーバ情報がDBサーバ装置3から読み出される。すなわち、メッセージ(4)で、デフォルトのサーバ装置の公開IPアドレス等が取得される。
取得されたデフォルトのサーバ装置の公開IPアドレス等は、メッセージ(5)で、管理サーバ装置からメッセージ(1)で認証要求を行ったクライアント装置に送信され、ステップS104で、クライアント装置において、そのデフォルトのサーバ装置が接続先のサーバ装置として設定される。一方、メッセージ(6)で、デフォルトのサーバ装置が接続を許可したサーバ装置として管理サーバ装置からDBサーバ装置3に書き込まれる。
【0024】
メッセージ(7)では、クライアント装置から接続先に指定されたサーバ装置に対し、例えばユーザID、パスワードが送信されることで、ユーザ認証要求がなされる。
ユーザ認証要求を受信したサーバ装置では、ステップS105で、PAM、LDAP、等を用いて、第一のユーザ認証(ローカルユーザ認証)を行う。
そして、ステップS106で、第二のユーザ認証、すなわち、DBサーバ装置3に対するユーザ情報(接続情報)の取得要求(接続情報の読み出し)がなされる。ここでは、まず、メッセージ(8)、メッセージ(9)で、ユーザ情報の読み出し指示がサーバ装置から管理サーバ装置へ、管理サーバ装置からDBサーバ装置3に対してそれぞれなされ、その指示に対し、メッセージ(10)、メッセージ(11)で、処理結果がDBサーバ装置3から管理サーバ装置に、管理サーバ装置からサーバ装置に対してそれぞれ通知される。そして、メッセージ(11)でユーザ情報が取得できた場合には、メッセージ(12)で、認証OKの通知がサーバ装置からクライアント装置に対してなされる。また、メッセージ(13)で、管理サーバ装置によって、ユーザ情報中の「status」の項目の値が、管理サーバ装置およびサーバ装置に認証済みであり、未ログインであることを示す「5」に変更される。
【0025】
例えば、図6は、クライアント装置4−1が管理サーバ装置1に対してユーザ認証要求を行った例を示す図であり、図7は、その結果、接続先としてサーバ装置5−1を管理サーバ装置1から通知された例を示す図である。
このように、本実施形態では、サーバ装置は、クライアント装置からのユーザ認証の要求に対応して、管理サーバ装置を介してユーザ認証の状態を示すデータ(ユーザ情報中の「status」の項目の値)を取得しているので、その「status」の項目の値を参照することで、クライアント装置からのユーザ認証要求が再接続時のものかどうかをサーバ装置は知ることができ、図10で後述するように、障害が発生したサーバ装置のイベントデータを用いた復元処理を起動するかどうかを決めることができる。よって、本実施形態のシステムでは、通信の切断後において、クライアント装置からの再接続要求にも対応することができる。
【0026】
図8は、ログイン・ログアウト処理のシーケンス図である。
まず、メッセージ(1)で、クライアント装置からサーバ装置に対し、例えばユーザID、パスワードが送信されることで、ログイン要求が行われる。
ログイン要求を受信したサーバ装置では、サーバ装置内のCPUの制御の下でプログラムが実行されることにより、ステップS201で、ログイン処理、すなわち、クライアント用のプロセスを起動するなどの初期化処理を行う。そして、メッセージ(2)で、ログインOKの通知がサーバ装置から管理サーバ装置に対してなされると、メッセージ(3)で、管理サーバ装置は、そのサーバ装置と接続しているクライアント装置のユーザ情報の「status」の項目の値をログイン済みを示す「2」に変更する。一方、メッセージ(4)で、サーバ装置は、クライアント装置に対し、ログインOKの通知を出力する。
【0027】
そして、メッセージ(5)で、キー入力、マウスの右クリック、等のイベントを示すイベントデータがクライアント装置からサーバ装置に出力され、そのイベントデータを受信したサーバ装置は、そのイベントデータを自身のイベントファイルに追加した後に、メッセージ(6)で、その受信したイベントデータをDBサーバ装置3にも送信する。そして、メッセージ(7)で、受信したイベントデータを反映した画面データが処理結果としてサーバ装置からクライアント装置に送信される。
メッセージ(5)〜メッセージ(7)のやり取りが発生するイベント毎に繰り返され、最終的には、メッセージ(8)で、ログアウト要求がクライアント装置からサーバ装置に対してなされる。
【0028】
ログアウト要求を受信したサーバ装置では、ステップS202で、ログアウト処理、すなわち、クライアント用のプロセス終了などの処理を行う。そして、メッセージ(9)で、ログアウトOKの通知がサーバ装置から管理サーバ装置に対してなされると、メッセージ(10)で、管理サーバ装置は、そのサーバ装置と接続しているクライアント装置のユーザ情報の「status」の項目の値をログインも認証もされていないことを示す「0」に変更する。一方、メッセージ(11)で、サーバ装置は、クライアント装置に対し、ログアウトOKの通知を出力する。
例えば、図9は、サーバ装置1がDBサーバ装置3にイベントデータを送信しているところを示している。
このように、本実施形態では、管理サーバ装置は、クライアント装置からのユーザ認証要求に対して、接続先のサーバ装置を通知し、以後、クライアント装置と、サーバ装置との間でデータがやり取りされる。よって、管理サーバ装置は、クライアント装置と、サーバ装置との間を行き来するデータをその都度転送する必要がなく、安価に構成することができる。
【0029】
図10は、再接続処理のシーケンス図である。
まず、メッセージ(1)で、クライアント装置とサーバ装置間での通信の切断が検出され、クライアント装置内のCPUの制御の下でプログラムが実行されることにより、ステップS301で、クライアント装置においてサーバ装置の障害が検出され、ステップS302で、クライアント装置の画面が初期画面に遷移する。例えば、クライアント装置はアプリケーションを実行していない状態となる。なお、このとき、「通信が切断しましたので、ID、パスワードの入力をお願いします。」等のメッセージを画面上に表示するようにしてもよい。なお、図10では、サーバ装置に障害が発生して通信が切断されたことになっているが、クライアント装置が携帯型装置である場合のように、クライアント装置が移動中に通信状態が悪い場所に入って通信が切断される場合も当然考えられる。
【0030】
まず、メッセージ(2)で、クライアント装置から管理サーバ装置に対し、例えばユーザID、パスワードが送信されることで、ユーザ認証要求が行われる。
ユーザ認証要求を受信した管理サーバ装置では、ステップS303で、PAM、LDAP、等を用いて、第一のユーザ認証(ローカルユーザ認証)を行う。
そして、続く、ステップS304では、第二のユーザ認証、すなわち、DBサーバ装置3に対するユーザ情報(接続情報)の読み出し指示がなされる。ここでは、まず、メッセージ(3)で、ユーザ情報の読み出し指示が管理サーバ装置からDBサーバ装置3に対してなされ、その指示に対し、メッセージ(4)で、処理結果がDBサーバ装置3から管理サーバ装置に対して通知される。この処理結果とは、クライアント装置からの認証要求に含まれるユーザIDと同一のユーザIDを持つユーザ情報があった場合は、そのユーザ情報であり、そのユーザIDと同一のユーザIDを持つユーザ情報がない場合は、ないことを示す情報である。
【0031】
この場合、例えば、管理サーバ装置が受信したユーザ情報中の「status」の項目の値がログイン済みである「2」に設定されていたり、管理サーバ装置からDBサーバ装置3中のイベントデータの格納先の終了フラグの値が正常であるかどうかを参照したりすることで、管理サーバ装置は、そのクライアント装置からの認証要求が再接続時のものであるとステップS305で判断し、ステップS306で管理サーバ装置によって、既存のロジックを用いて、新サーバ装置が決定される。すなわち、メッセージ(5)で、その新サーバ装置の公開IPアドレス等が取得される。
取得された新サーバ装置の公開IPアドレス等は、メッセージ(6)で、管理サーバ装置からメッセージ(2)で認証要求を行ったクライアント装置に送信され、ステップS307で、クライアント装置において、その新サーバ装置が接続先のサーバ装置として設定される。一方、メッセージ(7)で、新サーバ装置が接続を許可したサーバ装置として管理サーバ装置からDBサーバ装置3に書き込まれるとともに、「status」の項目の値が「3」に設定される。
【0032】
ステップS308は、図5のステップS104以降の処理に対応する。図5のメッセージ(11)のタイミングで取得したユーザ情報中の「status」の項目の値が「3」であることから、新サーバ装置は、クライアント装置からの認証要求が再接続時になされたものだと判断し、後の復元処理を実行する。なお、このステップS308の処理後には、「status」の項目の値が「6」に設定される。
続いてメッセージ(8)で、クライアント装置から新サーバ装置に対し、例えばユーザID、パスワードが送信されることで、ログイン要求が行われる。
【0033】
ログイン要求を受信したサーバ装置では、ステップS309で、ログイン処理、すなわち、クライアント用のプロセスを起動するなどの初期化処理を行う。そして、ステップS310で、復元処理が行われる。この復元処理では、DBサーバ装置3からイベントデータをメッセージ(9)で読み出して、障害発生時点でのログイン要求をしたクライアント装置の動作状態を復元する。そして、メッセージ(10)で、ログインOKの通知が新サーバ装置から管理サーバ装置に対してなされると、メッセージ(11)で、管理サーバ装置は、そのサーバ装置と接続しているクライアント装置のユーザ情報の「status」の項目の値をログイン済みを示す「2」に変更する。一方、メッセージ(12)で、新サーバ装置は、クライアント装置に対し、ログインOKの通知を出力する。
【0034】
例えば、図11では、サーバ装置5−1と接続していたクライアント装置4−1がサーバ装置5−1の障害によって通信の切断を検出して、管理サーバ装置1に再接続したことが示されている。また、図12では、新たな接続先として決定したサーバ装置5−Nに対してクライアント装置4−1がユーザ認証要求を行っている。また、図13では、そのユーザ認証要求に対応して、障害発生時点でのクライアント装置4−1の動作状態を復元するために、新たな接続先として決定したサーバ装置5−NがDBサーバ装置3からイベントデータを読み出している。
【0035】
図14は、管理サーバ装置で行われる処理を示すフローチャートである。このフローチャートは、クライアント装置からのユーザ認証要求を受信した管理サーバ装置において起動される。
図14において、まず、管理サーバ装置内のCPUの制御の下でプログラムが実行されることにより、管理サーバ装置からDBサーバ装置3にユーザ情報の読み出し指示がなされ、その読み出し指示に対応して、ステップS401で、ユーザ情報が管理サーバ装置に取得される。
続いて、管理サーバ装置からDBサーバ装置3に「srv_id」の項目に設定されるサーバ装置のサーバ情報の読み出し指示がなされ、その読み出し指示に対応して、ステップS402で、「srv_id」の項目に設定されるサーバ装置のサーバ情報(公開IP等)が管理サーバ装置に取得される。
【0036】
そして、ステップS403で、管理サーバ装置によって、「srv_id」の項目に設定されるサーバ装置は通信OKであるかどうかが判定される。
ステップS403で「srv_id」の項目に設定されるサーバ装置が通信OKであると判定された場合、ステップS406で「srv_id」の項目に設定されるサーバ装置が接続先として設定され、ステップS407に進む。
一方、ステップS403で「srv_id」の項目に設定されるサーバ装置が通信OKではないと判定された場合、ステップS404で接続先決定処理が行われる。この接続先決定処理においては、ロードバランサに対する周知の技術であるラウンドロビンや、最もCPU負荷の軽いサーバ装置を接続先に決定する、デフォルトのサーバ装置が通信可能な状態にあるかどうか判断した後、通信可能であれば、そのデフォルトのサーバ装置を接続先とする、等の予め定められたロジックに基づいて接続先を決定する。
【0037】
ステップS405では、ステップS404の処理結果のサーバ装置が接続先として設定され、ステップS407に進む。
ステップS407では、ステップS401で取得したユーザ情報中の「status」の項目の値が参照され、その値により分岐する。
すなわち、ステップS407で「status」の項目の値=0と判定された場合、ステップS408で、接続先として指定されたサーバ装置を、「auth_srv_id」の項目に書き込み、「status」の項目の値を「1」に変更し、ステップS410に進む。
また、ステップS407で「status」の項目の値=2と判定された場合、ステップS409で、接続先として指定されたサーバ装置を、「auth_srv_id」の項目に書き込み、「status」の項目の値を「3」に変更し、ステップS410に進む。なお、ステップS407で「status」の項目の値が「0」および「2」以外の値であると判定された場合、エラー終了する。
【0038】
ステップS410では、ステップS405またはS406で接続先として指定されたサーバ装置が、「srv_id」の項目に設定されるサーバ装置と等しいかどうかが判定される。
ステップS410で接続先として指定されたサーバ装置が、「srv_id」の項目に設定されるサーバ装置と等しいと判定された場合は、ステップS411で、ステップS402で取得した、「srv_id」の項目に設定されるサーバ装置のサーバ情報(公開IP等)がクライアント装置に通知され、一連の処理を終了する。
一方、ステップS410で接続先として指定されたサーバ装置が、「srv_id」の項目に設定されるサーバ装置と等しくないと判定された場合は、ステップS412で、その接続先として指定されたサーバ装置のサーバ情報(公開IP等)が管理サーバ装置に取得される。そして、ステップS413で、ステップS412で取得した、接続先として指定されたサーバ装置のサーバ情報(公開IP等)がクライアント装置に通知され、一連の処理を終了する。
【0039】
図15A〜図15Fは、ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例である。
まず、図15Aに示す初期状態では、「user_id」が「taro」である(クライアント装置の)ユーザは、「10」番のサーバ装置が、デフォルトの接続先のサーバ装置として設定されており、接続状況を示す「status」の項目の値は、ログインも認証もされていないことを示す「0」に設定されている。
【0040】
その後、ユーザのクライアント装置からユーザ認証要求が管理サーバ装置に対してなされる。この要求に対応して管理サーバ装置はユーザ情報をDBサーバ装置3から読み出し、クライアント装置に対する接続先のサーバ装置を決定する。ここでは、デフォルトのサーバ装置がその接続先として決定されたものとする。この場合、図14のステップS408において、「auth_srv_id」の項目に「default_srv_id」の項目と同じ番号の「10」番、「srv_auth_date」の項目にその書き込みを行った時刻、また、「status」の項目に「1」が書き込まれ、ユーザ情報には図15Bに示す値が設定される。
【0041】
また、その後、クライアント装置からログイン要求がなされ、サーバ装置においてログイン処理が行われた後には、「srv_id」の項目に接続したサーバ装置の番号「10」番が書き込まれ、「status」の項目に「2」が書き込まれ、ユーザ情報には図15Cに示す値が設定される。
【0042】
また、その後、クライアント装置と、デフォルトのサーバ装置(「10」番のサーバ装置)との通信が切断された場合に、クライアント装置から管理サーバ装置にユーザ認証要求(再接続時)がなされたとする。この場合、図14のステップS409において、「auth_srv_id」の項目に新たな接続先として決定されたサーバ装置の番号「11」番、「srv_auth_date」の項目にその書き込みを行った時刻、また、「status」の項目に「3」が書き込まれ、ユーザ情報には図15Dに示す値が設定される。
【0043】
また、その後、クライアント装置からログイン要求がなされ、サーバ装置においてログイン処理が行われた後には、「srv_id」の項目に接続したサーバ装置の番号「11」番が書き込まれ、「status」の項目に「2」が書き込まれ、ユーザ情報には図15Eに示す値が設定される。
【0044】
また、その後、クライアント装置からログアウト要求がなされ、サーバ装置においてログアウト処理が行われた後には、「srv_id」および「auth_srv_id」の項目が初期化され(「NULL」が書き込まれ)、「status」の項目に「0」が書き込まれ、ユーザ情報には図15Fに示す値が設定される。
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図面の簡単な説明】
【0045】
【図1】本発明の一実施形態に係る負荷分散システムの構成を示すブロック図である。
【図2】図1の負荷分散システムの変形例を示す図である。
【図3】ユーザ情報のデータ構成を示す図である。
【図4】図3のステータスの項目に設定される値の意味を説明する図である。
【図5】本発明の負荷分散システムの認証処理のシーケンス図である。
【図6】認証処理の一例を示す図(その1)である。
【図7】認証処理の一例を示す図(その2)である。
【図8】ログイン・ログアウト処理のシーケンス図である。
【図9】ログイン・ログアウト処理の一例を示す図である。
【図10】再接続処理のシーケンス図である。
【図11】再接続処理の一例を示す図(その1)である。
【図12】再接続処理の一例を示す図(その2)である。
【図13】再接続処理の一例を示す図(その3)である。
【図14】管理サーバ装置が実行する処理を示すフローチャートである。
【図15A】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例(その1)である。
【図15B】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例(その2)である。
【図15C】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例(その3)である。
【図15D】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例(その4)である。
【図15E】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例(その5)である。
【図15F】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例(その6)である。
【図16】従来のロードバランサを使用した負荷分散システムの構成例である。
【符号の説明】
【0046】
1、2、7、8 管理サーバ装置
3 DBサーバ装置
4、33 クライアント装置
5、34 サーバ装置
31、32 ロードバランサ

【特許請求の範囲】
【請求項1】
複数のクライアント装置と、クライアント装置にサービスを提供する複数のサービス提供装置と、クライアント装置ごとに接続先のサービス提供装置を決定する接続先決定装置とを備える負荷分散システムにおいて、
前記接続先決定装置は、
クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、
クライアント装置ごとにサービス提供装置を決定する決定手段と、
決定されたサービス提供装置をクライアント装置に通知する手段、を備え、
前記クライアント装置は、
前記接続先決定装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置に接続する手段、を備え、
前記サービス提供装置は、
クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、
クライアント装置からのサービスの要求に対応してサービスを提供する手段、を備えることを特徴とする負荷分散システム。
【請求項2】
記憶装置をさらに備え、
前記接続先決定装置は、ユーザ認証に用いるデータ、および、前記決定手段による処理結果のデータをユーザごとに記憶装置に格納することを特徴とする請求項1記載の負荷分散システム。
【請求項3】
複数のクライアント装置と、クライアント装置にサービスを提供する複数のサービス提供装置と、クライアント装置ごとに接続先のサービス提供装置を決定する接続先決定装置とを備える負荷分散システムにおいて、
前記接続先決定装置は、
前記クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、
クライアント装置からのユーザ認証の状態を基にサービス提供装置の障害を検出する第一検出手段と、
サービス提供装置との通信状態によりサービス提供装置の障害を検出する第二検出手段と、
クライアント装置ごとにサービス提供装置を決定する決定手段と、
決定されたサービス提供装置をクライアント装置に通知する手段、を備え、
前記クライアント装置は、
サービス提供装置との通信状態によりサービス提供装置の障害を検出する検出手段と、
前記接続先決定装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置に接続する手段、を備え、
前記サービス提供装置は、
クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、
クライアント装置からのサービスの要求に対応してサービスを提供する手段と、
クライアント装置からのイベントデータを記憶装置に格納する格納制御手段と、
自身が障害を発生したサービス提供装置の代替で動作する場合は、前記記憶装置からイベントデータを読み出して、該障害を発生したサービス提供装置の障害発生時点での動作状態を復元する復元手段、を備えることを特徴とする負荷分散システム。
【請求項4】
前記接続先決定装置は、ユーザ認証に用いるデータ、および、前記決定手段による処理結果のデータをユーザごとに前記記憶装置に格納することを特徴とする請求項3記載の負荷分散システム。
【請求項5】
前記サービス提供装置の認証手段は、クライアント装置からのユーザ認証の要求に対応して、前記接続先決定装置を介してユーザ認証の状態を示すデータを取得し、
取得されたユーザ認証の状態を示すデータを基に、前記復元手段を起動するかどうかを決めることを特徴とする請求項3記載の負荷分散システム。
【請求項6】
クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置において、
クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、
クライアント装置ごとにサービス提供装置を決定する決定手段と、
決定されたサービス提供装置をクライアント装置に通知する手段、を備えることを特徴とする接続先決定装置。
【請求項7】
クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置において、
前記クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、
クライアント装置からのユーザ認証の状態を示すデータを基にサービス提供装置の障害を検出する第一検出手段と、
サービス提供装置との通信状態によりサービス提供装置の障害を検出する第二検出手段と、
クライアント装置ごとにサービス提供装置を決定する決定手段と、
決定されたサービス提供装置をクライアント装置に通知する手段、を備えることを特徴とする接続先決定装置。
【請求項8】
クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置に接続する手段、を備えることを特徴とするクライアント装置。
【請求項9】
サービス提供装置との通信状態によりサービス提供装置の障害を検出する検出手段、をさらに備えることを特徴とする請求項8記載のクライアント装置。
【請求項10】
クライアント装置にサービスを提供するサービス提供装置において、
クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、
クライアント装置からのサービスの要求に対応してサービスを提供する手段と、
クライアント装置からのイベントデータを記憶装置に格納する格納制御手段と、
自身が障害を発生したサービス提供装置の代替で動作する場合は、前記記憶装置からイベントデータを読み出して、該障害を発生したサービス提供装置の障害発生時点での動作状態を復元する復元手段、を備えることを特徴とするサービス提供装置。
【請求項11】
前記サービス提供装置の認証手段は、クライアント装置からのユーザ認証の要求に対応して、前記接続先決定装置を介してユーザ認証の状態を示すデータを取得し、
取得されたユーザ認証の状態を示すデータを基に、前記復元手段を起動するかどうかを決めることを特徴とする請求項10記載のサービス提供装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate

【図10】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図15C】
image rotate

【図15D】
image rotate

【図15E】
image rotate

【図15F】
image rotate

【図16】
image rotate

【図6】
image rotate

【図7】
image rotate

【図9】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2008−217453(P2008−217453A)
【公開日】平成20年9月18日(2008.9.18)
【国際特許分類】
【出願番号】特願2007−54345(P2007−54345)
【出願日】平成19年3月5日(2007.3.5)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】