(57)【要約】【課題】  安価に実現可能な負荷分散システムを提供することである。【解決手段】  本発明の管理サーバ装置は、クライアント装置からのユーザ認証要求に対して、当該クライアント装置に接続先のサーバ装置を通知し、以後、クライアント装置と、サーバ装置との間でデータがやり取りされる。【選択図】  図５
2008217453.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント装置と、クライアント装置にサービスを提供する複数のサービス提供装置と、クライアント装置ごとに接続先のサービス提供装置を決定する接続先決定装置とを備える負荷分散システムにおいて、
前記接続先決定装置は、
クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、
クライアント装置ごとにサービス提供装置を決定する決定手段と、
決定されたサービス提供装置をクライアント装置に通知する手段、を備え、
前記クライアント装置は、
前記接続先決定装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置に接続する手段、を備え、
前記サービス提供装置は、
クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、
クライアント装置からのサービスの要求に対応してサービスを提供する手段、を備えることを特徴とする負荷分散システム。
【請求項２】
記憶装置をさらに備え、
前記接続先決定装置は、ユーザ認証に用いるデータ、および、前記決定手段による処理結果のデータをユーザごとに記憶装置に格納することを特徴とする請求項１記載の負荷分散システム。
【請求項３】
複数のクライアント装置と、クライアント装置にサービスを提供する複数のサービス提供装置と、クライアント装置ごとに接続先のサービス提供装置を決定する接続先決定装置とを備える負荷分散システムにおいて、
前記接続先決定装置は、
前記クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、
クライアント装置からのユーザ認証の状態を基にサービス提供装置の障害を検出する第一検出手段と、
サービス提供装置との通信状態によりサービス提供装置の障害を検出する第二検出手段と、
クライアント装置ごとにサービス提供装置を決定する決定手段と、
決定されたサービス提供装置をクライアント装置に通知する手段、を備え、
前記クライアント装置は、
サービス提供装置との通信状態によりサービス提供装置の障害を検出する検出手段と、
前記接続先決定装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置に接続する手段、を備え、
前記サービス提供装置は、
クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、
クライアント装置からのサービスの要求に対応してサービスを提供する手段と、
クライアント装置からのイベントデータを記憶装置に格納する格納制御手段と、
自身が障害を発生したサービス提供装置の代替で動作する場合は、前記記憶装置からイベントデータを読み出して、該障害を発生したサービス提供装置の障害発生時点での動作状態を復元する復元手段、を備えることを特徴とする負荷分散システム。
【請求項４】
前記接続先決定装置は、ユーザ認証に用いるデータ、および、前記決定手段による処理結果のデータをユーザごとに前記記憶装置に格納することを特徴とする請求項３記載の負荷分散システム。
【請求項５】
前記サービス提供装置の認証手段は、クライアント装置からのユーザ認証の要求に対応して、前記接続先決定装置を介してユーザ認証の状態を示すデータを取得し、
取得されたユーザ認証の状態を示すデータを基に、前記復元手段を起動するかどうかを決めることを特徴とする請求項３記載の負荷分散システム。
【請求項６】
クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置において、
クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、
クライアント装置ごとにサービス提供装置を決定する決定手段と、
決定されたサービス提供装置をクライアント装置に通知する手段、を備えることを特徴とする接続先決定装置。
【請求項７】
クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置において、
前記クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、
クライアント装置からのユーザ認証の状態を示すデータを基にサービス提供装置の障害を検出する第一検出手段と、
サービス提供装置との通信状態によりサービス提供装置の障害を検出する第二検出手段と、
クライアント装置ごとにサービス提供装置を決定する決定手段と、
決定されたサービス提供装置をクライアント装置に通知する手段、を備えることを特徴とする接続先決定装置。
【請求項８】
クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置にユーザ認証の要求を行う手段と、
通知されたサービス提供装置に接続する手段、を備えることを特徴とするクライアント装置。
【請求項９】
サービス提供装置との通信状態によりサービス提供装置の障害を検出する検出手段、をさらに備えることを特徴とする請求項８記載のクライアント装置。
【請求項１０】
クライアント装置にサービスを提供するサービス提供装置において、
クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、
クライアント装置からのサービスの要求に対応してサービスを提供する手段と、
クライアント装置からのイベントデータを記憶装置に格納する格納制御手段と、
自身が障害を発生したサービス提供装置の代替で動作する場合は、前記記憶装置からイベントデータを読み出して、該障害を発生したサービス提供装置の障害発生時点での動作状態を復元する復元手段、を備えることを特徴とするサービス提供装置。
【請求項１１】
前記サービス提供装置の認証手段は、クライアント装置からのユーザ認証の要求に対応して、前記接続先決定装置を介してユーザ認証の状態を示すデータを取得し、
取得されたユーザ認証の状態を示すデータを基に、前記復元手段を起動するかどうかを決めることを特徴とする請求項１０記載のサービス提供装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置（サーバ装置）のうちのどのサービス提供装置に接続するかを決定する負荷分散技術に関する。
【背景技術】
【０００２】
外部ネットワークからの要求を一元的に管理し、同等の機能を持つ複数のサーバに要求を転送するロードバランサ（負荷分散装置）を使用した負荷分散システムが知られている。図１６は、多重化したロードバランサを使用した負荷分散システムを示す図である。
図１６において、ロードバランサ３１および３２は、共通の公開ＩＰアドレスを有しており、Ｍ台のクライアント装置３３−１、・・・、３３−Ｍは、ロードバランサ３１および３２の公開ＩＰアドレスを用いて、ロードバランサ３１または３２のいずれか一方（アクティブな方）とインターネット及びＬＡＮ（Local Area Network）等のネットワークを介して通信を行う。
【０００３】
Ｎ台のサーバ装置３４−１、・・・、３４−Ｎは、クライアント装置のいずれかに代わって例えばアプリケーションを実行する装置であり、相手のクライアント装置から受信したイベントデータに従った処理を実行し、その結果が反映された画面データをクライアント装置に送信する。
アクティブなロードバランサは、いずれかのクライアント装置からの要求を、各サーバ装置の負荷状態を判断する等してＮ台のサーバ装置３４−１、・・・、３４−Ｎのいずれかに割り振る。
【０００４】
しかし、このような構成では、クライアント装置とサーバ装置がロードバランサを介して接続されているので、クライアント装置からサーバ装置へのデータ、サーバ装置からクライアント装置へのデータの双方がロードバランサにおいて処理され、ロードバランサの負荷が増し、システムが安価には実現できないという問題がある。
そこで、このような問題を解決するため、特許文献１には、サーバ装置からクライアント装置へデータを転送する場合は、ロードバランサ（負荷分散装置）を経由しなくても済むような負荷分散システムが示されている。
【０００５】
【特許文献１】特開２００６−２７７５６９号公報  「負荷分散システム、負荷分散装置、実サーバ及び負荷分散方法」
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、安価に実現可能な負荷分散システムを提供することをその第一の目的とする。
本発明は、クライアント装置とサーバ装置の間で通信が切断された場合も、再接続することを可能とした、安価に実現可能な負荷分散システムを提供することをその第二の目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明の負荷分散システムは、複数のクライアント装置と、クライアント装置にサービスを提供する複数のサービス提供装置と、クライアント装置ごとに接続先のサービス提供装置を決定する接続先決定装置とを備える負荷分散システムにおいて、前記接続先決定装置は、クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、クライアント装置ごとにサービス提供装置を決定する決定手段と、決定されたサービス提供装置をクライアント装置に通知する手段、を備え、前記クライアント装置は、前記接続先決定装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置に接続する手段、を備え、前記サービス提供装置は、クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、クライアント装置からのサービスの要求に対応してサービスを提供する手段、を備えることを特徴とする。
また、本発明の負荷分散システムは、記憶装置をさらに備え、前記接続先決定装置が、ユーザ認証に用いるデータ、および、前記決定手段による処理結果のデータをユーザごとに記憶装置に格納することが望ましい。
【０００８】
また、本発明の一態様によれば、本発明の負荷分散システムは、複数のクライアント装置と、クライアント装置にサービスを提供する複数のサービス提供装置と、クライアント装置ごとに接続先のサービス提供装置を決定する接続先決定装置とを備える負荷分散システムにおいて、前記接続先決定装置は、前記クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、クライアント装置からのユーザ認証の状態を示すデータを基にサービス提供装置の障害を検出する第一検出手段と、サービス提供装置との通信状態によりサービス提供装置の障害を検出する第二検出手段と、クライアント装置ごとにサービス提供装置を決定する決定手段と、決定されたサービス提供装置をクライアント装置に通知する手段、を備え、前記クライアント装置は、サービス提供装置との通信状態によりサービス提供装置の障害を検出する検出手段と、前記接続先決定装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置に接続する手段、を備え、前記サービス提供装置は、クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、クライアント装置からのサービスの要求に対応してサービスを提供する手段と、クライアント装置からのイベントデータを記憶装置に格納する格納制御手段と、自身が障害を発生したサービス提供装置の代替で動作する場合は、前記記憶装置からイベントデータを読み出して、該障害を発生したサービス提供装置の障害発生時点での動作状態を復元する復元手段、を備えることを特徴とする。
【０００９】
また、本発明の負荷分散システムは、前記接続先決定装置が、ユーザ認証に用いるデータ、および、前記決定手段による処理結果のデータをユーザごとに前記記憶装置に格納することが望ましい。
また、本発明の負荷分散システムは、前記サービス提供装置の認証手段が、クライアント装置からのユーザ認証の要求に対応して、前記接続先決定装置を介してユーザ認証の状態を示すデータを取得し、取得されたユーザ認証の状態を示すデータを基に、前記復元手段を起動するかどうかを決めることが望ましい。
【００１０】
また、本発明の一態様によれば、本発明の接続先決定装置は、クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置において、クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、クライアント装置ごとにサービス提供装置を決定する決定手段と、決定されたサービス提供装置をクライアント装置に通知する手段、を備えることを特徴とする。
また、本発明の一態様によれば、本発明の接続先決定装置は、クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置において、前記クライアント装置からのユーザ認証の要求に対してユーザ認証を行う認証手段と、クライアント装置からのユーザ認証の状態を示すデータを基にサービス提供装置の障害を検出する第一検出手段と、サービス提供装置との通信状態によりサービス提供装置の障害を検出する第二検出手段と、クライアント装置ごとにサービス提供装置を決定する決定手段と、決定されたサービス提供装置をクライアント装置に通知する手段、を備えることを特徴とする。
【００１１】
また、本発明の一態様によれば、本発明のクライアント装置は、クライアント装置を、該クライアント装置にサービスを提供する複数のサービス提供装置のうちのどのサービス提供装置に接続するかを決定する接続先決定装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置にユーザ認証の要求を行う手段と、通知されたサービス提供装置に接続する手段、を備えることを特徴とする。
また、本発明のクライアント装置は、サービス提供装置との通信状態によりサービス提供装置の障害を検出する検出手段、をさらに備えることが望ましい。
【００１２】
また、本発明の一態様によれば、本発明のサービス提供装置は、クライアント装置にサービスを提供するサービス提供装置において、クライアント装置からのユーザ認証の要求に対応してユーザ認証を行う認証手段と、クライアント装置からのサービスの要求に対応してサービスを提供する手段と、クライアント装置からのイベントデータを記憶装置に格納する格納制御手段と、自身が障害を発生したサービス提供装置の代替で動作する場合は、前記記憶装置からイベントデータを読み出して、該障害を発生したサービス提供装置の障害発生時点での動作状態を復元する復元手段、を備えることを特徴とする。
また、本発明のサービス提供装置は、前記サービス提供装置の認証手段が、クライアント装置からのユーザ認証の要求に対応して、前記接続先決定装置を介してユーザ認証の状態を示すデータを取得し、取得されたユーザ認証の状態を示すデータを基に、前記復元手段を起動するかどうかを決めることが望ましい。
【発明の効果】
【００１３】
本発明によれば、接続先指定装置は、クライアント装置からのユーザ認証要求に対して、接続先のサービス提供装置を通知し、以後、クライアント装置と、サービス提供装置との間でデータがやり取りされる。よって、接続先指定装置は、クライアント装置と、サービス提供装置との間を行き来するデータをその都度転送する必要がなく、安価に構成することができる。
また、クライアント装置からサービス提供装置に送られるイベントデータを記憶装置にも蓄積するようにしたので、通信の切断後の再接続時に、接続先指定装置から接続先として新たに割り振られたサービス提供装置において、そのイベントデータを記憶装置から取得することで、障害を発生したサービス提供装置の障害発生時点での動作状態を復元することができる。よって、クライアント装置と、サービス提供装置との間を行き来するデータをその都度転送する必要がなく、安価に構成することができるとともに、クライアント装置とサーバ装置の間で通信が切断された場合も、再接続することができる。
【発明を実施するための最良の形態】
【００１４】
以下図面に基づいて、本発明の実施形態について詳細を説明する。
図１は、本発明の一実施形態に係る負荷分散システムの構成を示すブロック図である。
図１に示すように、Ｍ台のクライアント装置４−１、・・・、４−Ｍ、が多重化された管理サーバ装置（接続先指定装置）１および２、Ｎ台のサーバ装置（サービス提供装置）５−１、・・・、５−Ｎにインターネット及びＬＡＮ等のネットワークを介して接続されて、負荷分散システムが構成されている。
【００１５】
サーバ装置は、クライアント装置にサービスを提供する装置である。サービスとは、例えば、ブラウザ等のアプリケーションを実行し、クライアント装置からの指示（イベントデータ）が反映された画面データを処理結果として、その都度クライアント装置に送信することである。
図示しないが、サーバ装置は、ＣＰＵ（中央処理装置：Central Processing Unit）、画像やその他の情報を表示するためのＬＣＤ等の表示装置、通信制御プログラムを始めサーバ装置の各機能を制御し実行するための制御プログラムが収納されたＲＯＭ、キーボードやマウス等であって各種のデータや信号等を入力するための入力装置、各種データを一時的に格納するＲＡＭ、ネットワークを介して他の情報処理装置と接続するための通信Ｉ／Ｆ（インターフェース）、表示装置に表示するための画像を一時的に格納するフレームバッファ等のＶＲＡＭがバスに接続されて構成され、ＣＰＵがこれらの各部を制御している。
【００１６】
管理サーバ装置１および２は、一方がアクティブであり、他方がスタンバイ状態にある。アクティブである方の管理サーバは、ユーザからクライアント装置を介してユーザ認証要求を受信したとき、そのクライアント装置をＮ台のサーバ装置５−１、・・・、５−Ｎのうちのどのサーバ装置に接続するかを決める。クライアント装置は通信の切断等がない限り、決められたサーバ装置にイベントデータを出力する。
管理サーバ装置、クライアント装置もサーバ装置と同様のハード構成を備えている。    
【００１７】
なお、スタンバイ状態の管理サーバ装置は、信号を受信したとき、管理サーバ装置間をつなぐ専用線６を介して、他方の管理サーバ装置の状態（アクティブであるかどうか）を取得し、他方の管理サーバ装置の状態がアクティブであれば、受信した信号を無視する。
また、データベースサーバ装置（以下、「ＤＢサーバ装置」という）３は、管理サーバ１および２、サーバ装置５−１、・・・、５−Ｎからアクセス可能であり、後述のユーザごとのデータ（「ユーザ情報」、「接続情報」ともいう）を格納する記憶装置である。
【００１８】
なお、図２に示す管理サーバ装置７および８のように、ＤＢサーバ装置（記憶装置）を管理サーバ装置と一体化することも可能である。また、図１や図２のように管理サーバ装置を多重化する代わりに、管理サーバ装置を多重化しない構成を採用することもできる。
図３は、ユーザ情報のデータ構成を示す図である。このユーザ情報は、ＤＢサーバ装置に記憶される。
【００１９】
図３に示すように、ユーザ情報は、「user_key」、「user_id」、「default_srv_id」、「srv_id」、「auth_srv_id」、「srv_auth_date」、「status」の各項目を有する。
「user_key」はユーザを識別する番号、「user_id」は認証に使用するユーザＩＤ、「default_srv_id」はそのユーザのクライアント装置のデフォルトの接続先としてのサーバ装置のＩＤ、「srv_id」はそのユーザのクライアント装置が実際に接続したサーバ装置のＩＤ、「auth_srv_id」は管理サーバ装置がそのユーザのクライアント装置に接続を許可したサーバ装置のＩＤ、「srv_auth_date」はその許可を行った時刻、「status」はユーザのクライアントの認証等の状態、をそれぞれ示している。
【００２０】
なお、「srv_id」の項目は、サーバ情報をポイントしている。サーバ情報は、「srv_id」の項目に設定されたサーバ装置のサーバ番号（「srv_id」）、および、公開ＩＰアドレス（「public_ip」）の各項目を有する。
図４は、図３のステータスの項目に設定される値の意味を説明する図である。
図４に示すように、ステータス（「status」）の値が「０」である場合は、ログインも認証もされていないことを意味し、「１」である場合は、通常の場合、すなわち、後述の再接続ではない場合において、認証済みではあるが未だログインされていないことを意味し、「２」である場合は、ログイン済みであることを意味し、「３」である場合は、後述の再接続の場合において、認証済みではあるが未だログインされていないことを意味し、「５」である場合は、通常の場合、すなわち、後述の再接続ではない場合において、管理サーバ装置およびサーバ装置に認証済みであり、未ログインであることを意味し、「６」である場合は、後述の再接続の場合において、管理サーバ装置およびサーバ装置に認証済みであり、未ログインであることを意味している。
【００２１】
図５は、本発明の負荷分散システムの認証処理のシーケンス図である。
まず、メッセージ（１）で、クライアント装置から管理サーバ装置に対し、例えばユーザＩＤ、パスワードが送信されることで、ユーザ認証要求が行われる。
ユーザ認証要求を受信した管理サーバ装置では、管理サーバ装置内のＣＰＵの制御の下でプログラムが実行されることにより、ステップＳ１０１で、ＰＡＭ（Pluggable Authentication Modules）、ＬＤＡＰ（Lightweight Directory Access Protocol）、等を用いて、第一のユーザ認証（ローカルユーザ認証）を行う。
【００２２】
そして、続く、ステップＳ１０２では、第二のユーザ認証、すなわち、ＤＢサーバ装置３に対するユーザ情報（接続情報）の読み出し指示がなされる。ここでは、まず、メッセージ（２）で、ユーザ情報の読み出し指示が管理サーバ装置からＤＢサーバ装置３に対してなされ、その指示に対し、メッセージ（３）で、処理結果がＤＢサーバ装置３から管理サーバ装置に対して通知される。この処理結果とは、クライアント装置からの認証要求に含まれるユーザＩＤと同一のユーザＩＤを持つユーザ情報があった場合は、そのユーザ情報であり、そのユーザＩＤと同一のユーザＩＤを持つユーザ情報がない場合は、ないことを示す情報である。
【００２３】
この場合、例えば、管理サーバ装置がデフォルトのサーバ装置と通信を行うことで、管理サーバ装置は、そのデフォルトのサーバ装置が正常に動作していると判断し、ステップＳ１０３で管理サーバ装置によって、そのデフォルトのサーバ装置に対するサーバ情報がＤＢサーバ装置３から読み出される。すなわち、メッセージ（４）で、デフォルトのサーバ装置の公開ＩＰアドレス等が取得される。
取得されたデフォルトのサーバ装置の公開ＩＰアドレス等は、メッセージ（５）で、管理サーバ装置からメッセージ（１）で認証要求を行ったクライアント装置に送信され、ステップＳ１０４で、クライアント装置において、そのデフォルトのサーバ装置が接続先のサーバ装置として設定される。一方、メッセージ（６）で、デフォルトのサーバ装置が接続を許可したサーバ装置として管理サーバ装置からＤＢサーバ装置３に書き込まれる。
【００２４】
メッセージ（７）では、クライアント装置から接続先に指定されたサーバ装置に対し、例えばユーザＩＤ、パスワードが送信されることで、ユーザ認証要求がなされる。
ユーザ認証要求を受信したサーバ装置では、ステップＳ１０５で、ＰＡＭ、ＬＤＡＰ、等を用いて、第一のユーザ認証（ローカルユーザ認証）を行う。
そして、ステップＳ１０６で、第二のユーザ認証、すなわち、ＤＢサーバ装置３に対するユーザ情報（接続情報）の取得要求（接続情報の読み出し）がなされる。ここでは、まず、メッセージ（８）、メッセージ（９）で、ユーザ情報の読み出し指示がサーバ装置から管理サーバ装置へ、管理サーバ装置からＤＢサーバ装置３に対してそれぞれなされ、その指示に対し、メッセージ（１０）、メッセージ（１１）で、処理結果がＤＢサーバ装置３から管理サーバ装置に、管理サーバ装置からサーバ装置に対してそれぞれ通知される。そして、メッセージ（１１）でユーザ情報が取得できた場合には、メッセージ（１２）で、認証ＯＫの通知がサーバ装置からクライアント装置に対してなされる。また、メッセージ（１３）で、管理サーバ装置によって、ユーザ情報中の「status」の項目の値が、管理サーバ装置およびサーバ装置に認証済みであり、未ログインであることを示す「５」に変更される。
【００２５】
例えば、図６は、クライアント装置４−１が管理サーバ装置１に対してユーザ認証要求を行った例を示す図であり、図７は、その結果、接続先としてサーバ装置５−１を管理サーバ装置１から通知された例を示す図である。
このように、本実施形態では、サーバ装置は、クライアント装置からのユーザ認証の要求に対応して、管理サーバ装置を介してユーザ認証の状態を示すデータ（ユーザ情報中の「status」の項目の値）を取得しているので、その「status」の項目の値を参照することで、クライアント装置からのユーザ認証要求が再接続時のものかどうかをサーバ装置は知ることができ、図１０で後述するように、障害が発生したサーバ装置のイベントデータを用いた復元処理を起動するかどうかを決めることができる。よって、本実施形態のシステムでは、通信の切断後において、クライアント装置からの再接続要求にも対応することができる。
【００２６】
図８は、ログイン・ログアウト処理のシーケンス図である。
まず、メッセージ（１）で、クライアント装置からサーバ装置に対し、例えばユーザＩＤ、パスワードが送信されることで、ログイン要求が行われる。
ログイン要求を受信したサーバ装置では、サーバ装置内のＣＰＵの制御の下でプログラムが実行されることにより、ステップＳ２０１で、ログイン処理、すなわち、クライアント用のプロセスを起動するなどの初期化処理を行う。そして、メッセージ（２）で、ログインＯＫの通知がサーバ装置から管理サーバ装置に対してなされると、メッセージ（３）で、管理サーバ装置は、そのサーバ装置と接続しているクライアント装置のユーザ情報の「status」の項目の値をログイン済みを示す「２」に変更する。一方、メッセージ（４）で、サーバ装置は、クライアント装置に対し、ログインＯＫの通知を出力する。
【００２７】
そして、メッセージ（５）で、キー入力、マウスの右クリック、等のイベントを示すイベントデータがクライアント装置からサーバ装置に出力され、そのイベントデータを受信したサーバ装置は、そのイベントデータを自身のイベントファイルに追加した後に、メッセージ（６）で、その受信したイベントデータをＤＢサーバ装置３にも送信する。そして、メッセージ（７）で、受信したイベントデータを反映した画面データが処理結果としてサーバ装置からクライアント装置に送信される。
メッセージ（５）〜メッセージ（７）のやり取りが発生するイベント毎に繰り返され、最終的には、メッセージ（８）で、ログアウト要求がクライアント装置からサーバ装置に対してなされる。
【００２８】
ログアウト要求を受信したサーバ装置では、ステップＳ２０２で、ログアウト処理、すなわち、クライアント用のプロセス終了などの処理を行う。そして、メッセージ（９）で、ログアウトＯＫの通知がサーバ装置から管理サーバ装置に対してなされると、メッセージ（１０）で、管理サーバ装置は、そのサーバ装置と接続しているクライアント装置のユーザ情報の「status」の項目の値をログインも認証もされていないことを示す「０」に変更する。一方、メッセージ（１１）で、サーバ装置は、クライアント装置に対し、ログアウトＯＫの通知を出力する。
例えば、図９は、サーバ装置１がＤＢサーバ装置３にイベントデータを送信しているところを示している。
このように、本実施形態では、管理サーバ装置は、クライアント装置からのユーザ認証要求に対して、接続先のサーバ装置を通知し、以後、クライアント装置と、サーバ装置との間でデータがやり取りされる。よって、管理サーバ装置は、クライアント装置と、サーバ装置との間を行き来するデータをその都度転送する必要がなく、安価に構成することができる。
【００２９】
図１０は、再接続処理のシーケンス図である。
まず、メッセージ（１）で、クライアント装置とサーバ装置間での通信の切断が検出され、クライアント装置内のＣＰＵの制御の下でプログラムが実行されることにより、ステップＳ３０１で、クライアント装置においてサーバ装置の障害が検出され、ステップＳ３０２で、クライアント装置の画面が初期画面に遷移する。例えば、クライアント装置はアプリケーションを実行していない状態となる。なお、このとき、「通信が切断しましたので、ＩＤ、パスワードの入力をお願いします。」等のメッセージを画面上に表示するようにしてもよい。なお、図１０では、サーバ装置に障害が発生して通信が切断されたことになっているが、クライアント装置が携帯型装置である場合のように、クライアント装置が移動中に通信状態が悪い場所に入って通信が切断される場合も当然考えられる。
【００３０】
まず、メッセージ（２）で、クライアント装置から管理サーバ装置に対し、例えばユーザＩＤ、パスワードが送信されることで、ユーザ認証要求が行われる。
ユーザ認証要求を受信した管理サーバ装置では、ステップＳ３０３で、ＰＡＭ、ＬＤＡＰ、等を用いて、第一のユーザ認証（ローカルユーザ認証）を行う。
そして、続く、ステップＳ３０４では、第二のユーザ認証、すなわち、ＤＢサーバ装置３に対するユーザ情報（接続情報）の読み出し指示がなされる。ここでは、まず、メッセージ（３）で、ユーザ情報の読み出し指示が管理サーバ装置からＤＢサーバ装置３に対してなされ、その指示に対し、メッセージ（４）で、処理結果がＤＢサーバ装置３から管理サーバ装置に対して通知される。この処理結果とは、クライアント装置からの認証要求に含まれるユーザＩＤと同一のユーザＩＤを持つユーザ情報があった場合は、そのユーザ情報であり、そのユーザＩＤと同一のユーザＩＤを持つユーザ情報がない場合は、ないことを示す情報である。
【００３１】
この場合、例えば、管理サーバ装置が受信したユーザ情報中の「status」の項目の値がログイン済みである「２」に設定されていたり、管理サーバ装置からＤＢサーバ装置３中のイベントデータの格納先の終了フラグの値が正常であるかどうかを参照したりすることで、管理サーバ装置は、そのクライアント装置からの認証要求が再接続時のものであるとステップＳ３０５で判断し、ステップＳ３０６で管理サーバ装置によって、既存のロジックを用いて、新サーバ装置が決定される。すなわち、メッセージ（５）で、その新サーバ装置の公開ＩＰアドレス等が取得される。
取得された新サーバ装置の公開ＩＰアドレス等は、メッセージ（６）で、管理サーバ装置からメッセージ（２）で認証要求を行ったクライアント装置に送信され、ステップＳ３０７で、クライアント装置において、その新サーバ装置が接続先のサーバ装置として設定される。一方、メッセージ（７）で、新サーバ装置が接続を許可したサーバ装置として管理サーバ装置からＤＢサーバ装置３に書き込まれるとともに、「status」の項目の値が「３」に設定される。
【００３２】
ステップＳ３０８は、図５のステップＳ１０４以降の処理に対応する。図５のメッセージ（１１）のタイミングで取得したユーザ情報中の「status」の項目の値が「３」であることから、新サーバ装置は、クライアント装置からの認証要求が再接続時になされたものだと判断し、後の復元処理を実行する。なお、このステップＳ３０８の処理後には、「status」の項目の値が「６」に設定される。
続いてメッセージ（８）で、クライアント装置から新サーバ装置に対し、例えばユーザＩＤ、パスワードが送信されることで、ログイン要求が行われる。
【００３３】
ログイン要求を受信したサーバ装置では、ステップＳ３０９で、ログイン処理、すなわち、クライアント用のプロセスを起動するなどの初期化処理を行う。そして、ステップＳ３１０で、復元処理が行われる。この復元処理では、ＤＢサーバ装置３からイベントデータをメッセージ（９）で読み出して、障害発生時点でのログイン要求をしたクライアント装置の動作状態を復元する。そして、メッセージ（１０）で、ログインＯＫの通知が新サーバ装置から管理サーバ装置に対してなされると、メッセージ（１１）で、管理サーバ装置は、そのサーバ装置と接続しているクライアント装置のユーザ情報の「status」の項目の値をログイン済みを示す「２」に変更する。一方、メッセージ（１２）で、新サーバ装置は、クライアント装置に対し、ログインＯＫの通知を出力する。
【００３４】
例えば、図１１では、サーバ装置５−１と接続していたクライアント装置４−１がサーバ装置５−１の障害によって通信の切断を検出して、管理サーバ装置１に再接続したことが示されている。また、図１２では、新たな接続先として決定したサーバ装置５−Ｎに対してクライアント装置４−１がユーザ認証要求を行っている。また、図１３では、そのユーザ認証要求に対応して、障害発生時点でのクライアント装置４−１の動作状態を復元するために、新たな接続先として決定したサーバ装置５−ＮがＤＢサーバ装置３からイベントデータを読み出している。
【００３５】
図１４は、管理サーバ装置で行われる処理を示すフローチャートである。このフローチャートは、クライアント装置からのユーザ認証要求を受信した管理サーバ装置において起動される。
図１４において、まず、管理サーバ装置内のＣＰＵの制御の下でプログラムが実行されることにより、管理サーバ装置からＤＢサーバ装置３にユーザ情報の読み出し指示がなされ、その読み出し指示に対応して、ステップＳ４０１で、ユーザ情報が管理サーバ装置に取得される。
続いて、管理サーバ装置からＤＢサーバ装置３に「srv_id」の項目に設定されるサーバ装置のサーバ情報の読み出し指示がなされ、その読み出し指示に対応して、ステップＳ４０２で、「srv_id」の項目に設定されるサーバ装置のサーバ情報（公開ＩＰ等）が管理サーバ装置に取得される。
【００３６】
そして、ステップＳ４０３で、管理サーバ装置によって、「srv_id」の項目に設定されるサーバ装置は通信ＯＫであるかどうかが判定される。
ステップＳ４０３で「srv_id」の項目に設定されるサーバ装置が通信ＯＫであると判定された場合、ステップＳ４０６で「srv_id」の項目に設定されるサーバ装置が接続先として設定され、ステップＳ４０７に進む。
一方、ステップＳ４０３で「srv_id」の項目に設定されるサーバ装置が通信ＯＫではないと判定された場合、ステップＳ４０４で接続先決定処理が行われる。この接続先決定処理においては、ロードバランサに対する周知の技術であるラウンドロビンや、最もＣＰＵ負荷の軽いサーバ装置を接続先に決定する、デフォルトのサーバ装置が通信可能な状態にあるかどうか判断した後、通信可能であれば、そのデフォルトのサーバ装置を接続先とする、等の予め定められたロジックに基づいて接続先を決定する。
【００３７】
ステップＳ４０５では、ステップＳ４０４の処理結果のサーバ装置が接続先として設定され、ステップＳ４０７に進む。
ステップＳ４０７では、ステップＳ４０１で取得したユーザ情報中の「status」の項目の値が参照され、その値により分岐する。
すなわち、ステップＳ４０７で「status」の項目の値＝０と判定された場合、ステップＳ４０８で、接続先として指定されたサーバ装置を、「auth_srv_id」の項目に書き込み、「status」の項目の値を「１」に変更し、ステップＳ４１０に進む。
また、ステップＳ４０７で「status」の項目の値＝２と判定された場合、ステップＳ４０９で、接続先として指定されたサーバ装置を、「auth_srv_id」の項目に書き込み、「status」の項目の値を「３」に変更し、ステップＳ４１０に進む。なお、ステップＳ４０７で「status」の項目の値が「０」および「２」以外の値であると判定された場合、エラー終了する。
【００３８】
ステップＳ４１０では、ステップＳ４０５またはＳ４０６で接続先として指定されたサーバ装置が、「srv_id」の項目に設定されるサーバ装置と等しいかどうかが判定される。
ステップＳ４１０で接続先として指定されたサーバ装置が、「srv_id」の項目に設定されるサーバ装置と等しいと判定された場合は、ステップＳ４１１で、ステップＳ４０２で取得した、「srv_id」の項目に設定されるサーバ装置のサーバ情報（公開ＩＰ等）がクライアント装置に通知され、一連の処理を終了する。
一方、ステップＳ４１０で接続先として指定されたサーバ装置が、「srv_id」の項目に設定されるサーバ装置と等しくないと判定された場合は、ステップＳ４１２で、その接続先として指定されたサーバ装置のサーバ情報（公開ＩＰ等）が管理サーバ装置に取得される。そして、ステップＳ４１３で、ステップＳ４１２で取得した、接続先として指定されたサーバ装置のサーバ情報（公開ＩＰ等）がクライアント装置に通知され、一連の処理を終了する。
【００３９】
図１５Ａ〜図１５Ｆは、ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例である。
まず、図１５Ａに示す初期状態では、「user_id」が「taro」である（クライアント装置の）ユーザは、「１０」番のサーバ装置が、デフォルトの接続先のサーバ装置として設定されており、接続状況を示す「status」の項目の値は、ログインも認証もされていないことを示す「０」に設定されている。
【００４０】
その後、ユーザのクライアント装置からユーザ認証要求が管理サーバ装置に対してなされる。この要求に対応して管理サーバ装置はユーザ情報をＤＢサーバ装置３から読み出し、クライアント装置に対する接続先のサーバ装置を決定する。ここでは、デフォルトのサーバ装置がその接続先として決定されたものとする。この場合、図１４のステップＳ４０８において、「auth_srv_id」の項目に「default_srv_id」の項目と同じ番号の「１０」番、「srv_auth_date」の項目にその書き込みを行った時刻、また、「status」の項目に「１」が書き込まれ、ユーザ情報には図１５Ｂに示す値が設定される。
【００４１】
また、その後、クライアント装置からログイン要求がなされ、サーバ装置においてログイン処理が行われた後には、「srv_id」の項目に接続したサーバ装置の番号「１０」番が書き込まれ、「status」の項目に「２」が書き込まれ、ユーザ情報には図１５Ｃに示す値が設定される。
【００４２】
また、その後、クライアント装置と、デフォルトのサーバ装置（「１０」番のサーバ装置）との通信が切断された場合に、クライアント装置から管理サーバ装置にユーザ認証要求（再接続時）がなされたとする。この場合、図１４のステップＳ４０９において、「auth_srv_id」の項目に新たな接続先として決定されたサーバ装置の番号「１１」番、「srv_auth_date」の項目にその書き込みを行った時刻、また、「status」の項目に「３」が書き込まれ、ユーザ情報には図１５Ｄに示す値が設定される。
【００４３】
また、その後、クライアント装置からログイン要求がなされ、サーバ装置においてログイン処理が行われた後には、「srv_id」の項目に接続したサーバ装置の番号「１１」番が書き込まれ、「status」の項目に「２」が書き込まれ、ユーザ情報には図１５Ｅに示す値が設定される。
【００４４】
また、その後、クライアント装置からログアウト要求がなされ、サーバ装置においてログアウト処理が行われた後には、「srv_id」および「auth_srv_id」の項目が初期化され（「NULL」が書き込まれ）、「status」の項目に「０」が書き込まれ、ユーザ情報には図１５Ｆに示す値が設定される。
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施形態に係る負荷分散システムの構成を示すブロック図である。
【図２】図１の負荷分散システムの変形例を示す図である。
【図３】ユーザ情報のデータ構成を示す図である。
【図４】図３のステータスの項目に設定される値の意味を説明する図である。
【図５】本発明の負荷分散システムの認証処理のシーケンス図である。
【図６】認証処理の一例を示す図（その１）である。
【図７】認証処理の一例を示す図（その２）である。
【図８】ログイン・ログアウト処理のシーケンス図である。
【図９】ログイン・ログアウト処理の一例を示す図である。
【図１０】再接続処理のシーケンス図である。
【図１１】再接続処理の一例を示す図（その１）である。
【図１２】再接続処理の一例を示す図（その２）である。
【図１３】再接続処理の一例を示す図（その３）である。
【図１４】管理サーバ装置が実行する処理を示すフローチャートである。
【図１５Ａ】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例（その１）である。
【図１５Ｂ】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例（その２）である。
【図１５Ｃ】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例（その３）である。
【図１５Ｄ】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例（その４）である。
【図１５Ｅ】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例（その５）である。
【図１５Ｆ】ログインした後に、通信が切断されて再接続した場合のユーザ情報の遷移例（その６）である。
【図１６】従来のロードバランサを使用した負荷分散システムの構成例である。
【符号の説明】
【００４６】
１、２、７、８  管理サーバ装置
３  ＤＢサーバ装置
４、３３  クライアント装置
５、３４  サーバ装置
３１、３２  ロードバランサ
【図１】
2008217453.tif 000003
【図２】
2008217453.tif 000004
【図３】
2008217453.tif 000005
【図４】
2008217453.tif 000006
【図５】
2008217453.tif 000007
【図８】
2008217453.tif 000008
【図１０】
2008217453.tif 000009
【図１４】
2008217453.tif 000010
【図１５Ａ】
2008217453.tif 000011
【図１５Ｂ】
2008217453.tif 000012
【図１５Ｃ】
2008217453.tif 000013
【図１５Ｄ】
2008217453.tif 000014
【図１５Ｅ】
2008217453.tif 000015
【図１５Ｆ】
2008217453.tif 000016
【図１６】
2008217453.tif 000017
【図６】
2008217453.tif 000018
【図７】
2008217453.tif 000019
【図９】
2008217453.tif 000020
【図１１】
2008217453.tif 000021
【図１２】
2008217453.tif 000022
【図１３】
2008217453.tif 000023