(57)【要約】【課題】クライアントに情報を非同期に通知する際の即時性が高く、且つ、サーバにおける処理の負荷を低くすることができる負荷分散装置、負荷分散システム、負荷分散方法及び負荷分散プログラムを提供する。【解決手段】負荷分散装置１００ａは、通知情報をクライアント３００に通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信する負荷情報交換部１６０ａと、前記負荷情報が表す負荷と自装置の負荷とを比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、クライアント３００に送信する負荷管理部１５０ａと、前記通知情報をサーバ２００から受信する通知情報受付部１４０ａと、通知情報受付部１４０ａが受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報をクライアント３００に送信するセッション保持部１２０ａと、を備える。【選択図】図１
2012185638.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの要求に応じてサーバが処理した結果である通知情報を前記サーバの代わりに前記クライアントに通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信する負荷情報交換部と、
前記負荷情報交換部が受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信する負荷管理部と、
前記通知情報を前記サーバから受信する通知情報受付部と、
前記通知情報受付部が受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報を前記クライアントに送信する情報送信部と、
を備えることを特徴とする負荷分散装置。
【請求項２】
前記負荷管理部は、前記他の負荷分散装置から受信した前記負荷情報が表す負荷よりも、自装置の負荷のほうが高い場合、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信することを特徴とする請求項１に記載の負荷分散装置。
【請求項３】
前記負荷管理部は、前記他の負荷分散装置から受信した前記負荷情報が表す負荷と、自装置の負荷とが共に低い場合、当該他の負荷分散装置を識別するための識別子を、前記クライアントに通信インタフェースを介して送信することを特徴とする請求項１又は請求項２に記載の負荷分散装置。
【請求項４】
前記負荷管理部は、前記負荷情報として、セッション数、ＣＰＵ利用率及びメモリ量のうち少なくとも１つに基づいて、自装置の負荷と、他の負荷分散装置の負荷とを比較することを特徴とする請求項１から請求項３のいずれか１つに記載の負荷分散装置。
【請求項５】
前記負荷管理部は、前記負荷情報として、セッション数、ＣＰＵ利用率及びメモリ量のうち少なくとも１つに対する閾値に基づいて、自装置の負荷の低さと、他の負荷分散装置の負荷の低さとを判定することを特徴とする請求項１から請求項３のいずれか１つに記載の負荷分散装置。
【請求項６】
前記負荷管理部は、他の負荷分散装置を識別するための前記識別子を、ＨＴＴＰリダイレクト・メソッドにより前記クライアントに送信することを特徴とする請求項１から請求項５のいずれか１つに記載の負荷分散装置。
【請求項７】
前記負荷管理部は、前記負荷分散装置を識別するための前記識別子を再送信することを、前記クライアントから要求された場合、当該クライアントに前記識別子を再送信することを特徴とする請求項１から請求項６のいずれか１つに記載の負荷分散装置。
【請求項８】
所定の処理を要求するクライアントと、
前記クライアントからの要求に応じて処理した結果である通知情報を送信するサーバと、
複数の負荷分散装置と、
を備え、
前記負荷分散装置は、
前記通知情報を前記サーバの代わりに前記クライアントに通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信する負荷情報交換部と、
前記負荷情報交換部が受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信する負荷管理部と、
前記通知情報を前記サーバから受信する通知情報受付部と、
前記通知情報受付部が受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報を前記クライアントに送信する情報送信部と、
を備えることを特徴とする負荷分散システム。
【請求項９】
情報を通知する処理の負荷を分散又は集約させる負荷分散装置における負荷分散方法であって、
負荷情報交換部が、クライアントからの要求に応じてサーバが処理した結果である通知情報を前記サーバの代わりに前記クライアントに通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信するステップと、
負荷管理部が、前記負荷情報交換部が受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信するステップと、
通知情報受付部が、前記通知情報を前記サーバから受信するステップと、
情報送信部が、前記通知情報受付部が受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報を前記クライアントに送信するステップと、
を有することを特徴とする負荷分散方法。
【請求項１０】
コンピュータに、
クライアントからの要求に応じてサーバが処理した結果である通知情報を前記サーバの代わりに前記クライアントに通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信する手順と、
受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信する手順と、
前記通知情報を前記サーバから受信する手順と、
受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報を前記クライアントに送信する手順と、
を実行させるための負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を通知する処理の負荷を分散又は集約させる負荷分散装置、負荷分散システム、負荷分散方法及び負荷分散プログラムに関する。
【背景技術】
【０００２】
クライアント（装置）により解釈されるイベントのために別途定められたチャンネルを利用することなく、クライアントに対して非同期に情報を通知することを可能とするシステムが、特許文献１に開示されている。
【０００３】
ここで、非同期とは、クライアントからサーバに対して所定の処理を要求したタイミングに関らず、サーバからクライアントに情報を送信することをいう。
【０００４】
特許文献１に開示されたシステムでは、サーバは、処理要求（要求パケット）に対する応答に情報を付加し、その情報をクライアントに送信するピギーバック（Ｐｉｇｇｙ  Ｂａｃｋ）により、クライアントに対して非同期に情報を通知する。
【０００５】
ピギーバックによらずに、クライアント装置に対して非同期に情報を通知する方法には、サーバと同様にクライアントがウェブ（Ｗｅｂ）サービスを立ち上げることで、そのクライアントのウェブサービスにサーバが通信接続するという、ＷＳＮ（ＷＳ−ＢａｓｅＮｏｔｉｆｉｃａｔｉｏｎ）を用いる方法がある。
【０００６】
ＷＳＮを用いる方法では、情報を非同期に通知する際の即時性が高いものの、情報を通知する先であるクライアントに対してサーバが通信できるようにするために、クライアントにはグローバルＩＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ）アドレスが割り当てられる必要がある。したがって、ＷＳＮを用いる方法は、プライベートＩＰアドレスが割り当てられているクライアントでは利用することができないという問題がある。
【０００７】
また、ピギーバックを用いる方法、及びＷＳＮを用いる方法は、情報を通知する方法が共にプッシュ（ＰＵＳＨ）型である。プッシュ型は、ポーリング（Ｐｏｌｌｉｎｇ）により情報を通知するプル（ＰＵＬＬ）型と比較して、情報を非同期に通知する際の即時性が高い。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−５０２０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ピギーバックを用いる方法では、グローバルＩＰアドレスは必ずしも必要でないが、サーバが複数のセッションを保持しなければならず、情報を通知する元であるサーバにおける処理の負荷が大きくなってしまうという問題がある。
【００１０】
本発明は、前記の点に鑑みてなされたものであり、情報を通知する先であるクライアントに情報を非同期に通知する際の即時性が高く、且つ、情報を通知する元であるサーバにおける処理の負荷を低くすることができる負荷分散装置、負荷分散システム、負荷分散方法及び負荷分散プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上記の課題を解決するためになされたものであり、クライアントからの要求に応じてサーバが処理した結果である通知情報を前記サーバの代わりに前記クライアントに通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信する負荷情報交換部と、前記負荷情報交換部が受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信する負荷管理部と、前記通知情報を前記サーバから受信する通知情報受付部と、前記通知情報受付部が受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報を前記クライアントに送信する情報送信部と、を備えることを特徴とする負荷分散装置である。
【００１２】
また、本発明は、前記負荷管理部が、前記他の負荷分散装置から受信した前記負荷情報が表す負荷よりも、自装置の負荷のほうが高い場合、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信することを特徴とする負荷分散装置である。
【００１３】
また、本発明は、前記負荷管理部が、前記他の負荷分散装置から受信した前記負荷情報が表す負荷と、自装置の負荷とが共に低い場合、当該他の負荷分散装置を識別するための識別子を、前記クライアントに通信インタフェースを介して送信することを特徴とする負荷分散装置である。
【００１４】
また、本発明は、前記負荷管理部が、前記負荷情報として、セッション数、ＣＰＵ利用率及びメモリ量のうち少なくとも１つに基づいて、自装置の負荷と、他の負荷分散装置の負荷とを比較することを特徴とする負荷分散装置である。
【００１５】
また、本発明は、前記負荷管理部が、前記負荷情報として、セッション数、ＣＰＵ利用率及びメモリ量のうち少なくとも１つに対する閾値に基づいて、自装置の負荷の低さと、他の負荷分散装置の負荷の低さとを判定することを特徴とする負荷分散装置である。
【００１６】
また、本発明は、前記負荷管理部が、他の負荷分散装置を識別するための前記識別子を、ＨＴＴＰリダイレクト・メソッドにより前記クライアントに送信することを特徴とする負荷分散装置である。
【００１７】
また、本発明は、前記負荷管理部が、前記負荷分散装置を識別するための前記識別子を再送信することを、前記クライアントから要求された場合、当該クライアントに前記識別子を再送信することを特徴とする負荷分散装置である。
【００１８】
また、本発明は、所定の処理を要求するクライアントと、前記クライアントからの要求に応じて処理した結果である通知情報を送信するサーバと、複数の負荷分散装置と、を備え、前記負荷分散装置が、前記通知情報を前記サーバの代わりに前記クライアントに通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信する負荷情報交換部と、前記負荷情報交換部が受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信する負荷管理部と、前記通知情報を前記サーバから受信する通知情報受付部と、前記通知情報受付部が受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報を前記クライアントに送信する情報送信部と、を備えることを特徴とする負荷分散システムである。
【００１９】
また、本発明は、情報を通知する処理の負荷を分散又は集約させる負荷分散装置における負荷分散方法であって、負荷情報交換部が、クライアントからの要求に応じてサーバが処理した結果である通知情報を前記サーバの代わりに前記クライアントに通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信するステップと、負荷管理部が、前記負荷情報交換部が受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信するステップと、通知情報受付部が、前記通知情報を前記サーバから受信するステップと、情報送信部が、前記通知情報受付部が受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報を前記クライアントに送信するステップと、を有することを特徴とする負荷分散方法である。
【００２０】
また、本発明は、コンピュータに、クライアントからの要求に応じてサーバが処理した結果である通知情報を前記サーバの代わりに前記クライアントに通知する処理の負荷を表す負荷情報を、他の負荷分散装置から受信する手順と、受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、前記クライアントに送信する手順と、前記通知情報を前記サーバから受信する手順と、受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報を前記クライアントに送信する手順と、を実行させるための負荷分散プログラムである。
【発明の効果】
【００２１】
本発明によれば、サーバの代わりに負荷分散装置が、通知情報を所定情報に付加し、該通知情報が付加された所定情報をクライアントに送信（ピギーバック）するので、これにより、負荷分散装置は、情報を通知する先であるクライアントに情報を非同期に通知する際の即時性が高く、且つ、情報を通知する元であるサーバにおける処理の負荷を低くすることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態における、負荷分散装置群、サーバ及びクライアントの各構成を表すブロック図である。
【図２】本発明の一実施形態において、通知処理の負荷が増大していない又は減少していない場合における、負荷分散装置群、サーバ及びクライアントの各動作手順の概略を表す図である。
【図３】本発明の一実施形態において、通知処理の負荷が増大していない又は減少していない場合における、負荷分散装置群、サーバ及びクライアントの各動作手順を表すシーケンス図である。
【図４】本発明の一実施形態において、通知処理の負荷が増大した又は減少した場合における、負荷分散装置群、サーバ及びクライアントの各動作手順の概略を表す図である。
【図５】本発明の一実施形態において、通知処理の負荷が増大した又は減少した場合における、負荷分散装置群、サーバ及びクライアントの各動作手順を表すシーケンス図である。
【図６】本発明の一実施形態における、負荷分散装置群を用いる通信環境の例を表す図である。
【発明を実施するための形態】
【００２３】
本発明の一実施形態について図面を参照して詳細に説明する。本発明の負荷分散システムは、複数の負荷分散装置（通知仲介システム）から成る負荷分散装置群と、サーバ（装置）と、クライアント（装置）とを備える。各負荷分散装置は、サーバからクライアントに対して非同期に情報を通知する処理の負荷の状況に応じて、負荷分散装置群内で負荷を分散又は集約させる。なお、クライアントは複数でもよい。
【００２４】
まず、負荷分散装置群と、サーバと、クライアントとの各構成について説明する。
図１には、負荷分散装置群、サーバ及びクライアントの各構成が、ブロック図により表されている。負荷分散装置群１００は、負荷分散装置を３台以上備えてもよいが、本実施形態では、一例として、負荷分散装置１００ａと、負荷分散装置１００ｂとを備えるものとする。ここで、各負荷分散装置は、いずれも同構成を有する。したがって、各負荷分散装置についての説明は、それぞれ同様の説明となる。以下では、負荷分散装置群１００のうち、負荷分散装置１００ａ及び負荷分散装置１００ｂを用いて説明をする。
【００２５】
クライアント３００は、中央処理装置（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ、ＣＰＵ）と、記憶部とを備える。クライアント３００の中央処理装置は、クライアント３００の記憶部に記憶されたプログラムに基づいて動作する。
【００２６】
クライアント３００は、サーバ２００に所定の処理を要求する。ここで、クライアント３００は、自装置（クライアント３００）に割り当てられた識別子（例えば、ＩＰアドレス）を、サーバ２００に送信する。
【００２７】
また、クライアント３００は、その接続先である負荷分散装置を識別するための識別子として、サーバ２００からＵＲＬ（Ｕｎｉｆｏｒｍ Ｒｅｓｏｕｒｃｅ Ｌｏｃａｔｏｒ）を受信し、受信したＵＲＬが割り当てられている負荷分散装置に通信接続する。ここで、クライアント３００は、受信したＵＲＬが割り当てられている負荷分散装置に、自装置（クライアント３００）に割り当てられた識別子（例えば、ＩＰアドレス）を用いて接続する（接続要求）。また、クライアント３００は、サーバ２００による処理結果である通知情報を、ピギーバックによりその負荷分散装置から受信する。
【００２８】
サーバ２００は、中央処理装置（ＣＰＵ）と、記憶部とを備える。サーバ２００の中央処理装置は、サーバ２００の記憶部に記憶されたプログラムに基づいて動作する。サーバ２００は、クライアント３００から要求された処理の結果である通知情報を生成する。サーバ２００は、この通知情報を自装置（サーバ２００）の代わりにクライアント３００に通知する負荷分散装置に割り当てられているＵＲＬを、クライアント３００に送信する。サーバ２００は、クライアント３００に割り当てられている識別子（例えば、ＩＰアドレス）と、割り当てたＵＲＬに対応付けられた負荷分散装置に割り当てられている識別子（例えば、ＩＰアドレス）とを対応付けて、これらを保持する。
【００２９】
サーバ２００は、通知情報を自装置（サーバ２００）の代わりにクライアント３００に通知する負荷分散装置に、通知情報を送信する。ここで、サーバ２００は、クライアント３００に割り当てられている識別子と、この識別子に対応付けられた負荷分散装置に割り当てられている識別子とに基づいて、その負荷分散装置に通知情報を送信するものとする。これにより、サーバ２００は、その負荷分散装置からどのクライアントに通知情報が通知されるかを認識することができる。
【００３０】
負荷分散装置１００ａは、通信インタフェース１１０ａと、セッション保持部１２０ａ（情報送信部）と、セッション管理部１３０ａと、負荷情報交換部１４０ａと、負荷管理部１５０ａと、通知情報受付部１６０ａと、接続クライアント報告部１７０ａとを備える。
【００３１】
通信インタフェース１１０ａは、外部の装置から情報を受信し、受信した情報を負荷分散装置１００ａの各部に転送する。例えば、通信インタフェース１１０ａは、セッション保持部１２０ａから通知情報を取得し、取得した通知情報をクライアント３００にピギーバックにより送信する。
【００３２】
通信インタフェース１１０ａは、サーバ２００による処理結果である通知情報を負荷情報交換部１６０ａから取得し、取得した負荷情報を他の負荷分散装置に送信する。また、通信インタフェース１１０ａは、他の負荷分散装置から負荷情報を取得し、取得した負荷情報を負荷情報交換部１６０ａに転送する。
【００３３】
また、通信インタフェース１１０ａは、サーバ２００による処理結果である通知情報と、クライアント３００に割り当てられた識別子とをサーバ２００から受信し、受信した通知情報通知情報及び識別子を、通知情報受付部１４０ａに出力する。
【００３４】
通信インタフェース１１０ａは、接続先が変更されることを表す情報（クライアント３００に割り当てられた識別子（例えば、ＩＰアドレス、ＵＲＬ）、及び、変更後に接続先となる他の負荷分散装置に割り当てられた識別子（例えば、ＩＰアドレス、ＵＲＬ）を、接続クライアント報告部１７０ａから取得し、取得した識別子をサーバ２００に送信する。
【００３５】
セッション保持部１２０ａは、接続要求を送信してきたクライアント３００とのセッション（ＨＴＴＰ、ＴＣＰ等）に関する情報を記憶する。セッション保持部１２０ａは、クライアント３００とのセッションを確立し、確立したセッションを保持する。
【００３６】
セッション保持部（情報送信部）１２０ａは、セッション管理部１３０ａから転送された通知情報を、セッション管理部１３０ａが割り出したセッションに基づいて、通信インタフェース１１０ａを介して、クライアント３００にピギーバックにより送信する。
【００３７】
セッション保持部１２０ａは、ＨＴＴＰリダイレクト（ＨＴＴＰ  Ｒｅｄｉｒｅｃｔ）・メソッド（ステータス・コード「３０１（Ｍｏｖｅｄ  Ｐｅｒｍａｎｅｎｔｌｙ）」）により、セッション管理部１３０ａから転送された接続先変更要求、及び他の負荷分散装置に割り当てられている識別子を、通信インタフェース１１０ａを介してクライアント３００に送信する。
【００３８】
セッション管理部１３０ａは、セッションを保持しているプロセスと、そのプロセスに対応するクライアント３００に関する情報とを管理する。例えば、セッション管理部１３０ａは、クライアント３００に割り当てられた識別子と、確立したセッションが動作しているプロセスを表す情報とを対応付けて記憶することで、セッションを管理する。
【００３９】
セッション管理部１３０ａは、クライアント３００に割り当てられた識別子に基づいて、クライアント３００とのセッション及びプロセスを割り出す。また、セッション管理部１３０ａは、割り出したセッションを表す情報と、サーバ２００から受信した通知情報とを、セッション保持部１２０ａに転送する。
【００４０】
セッション管理部１３０ａは、負荷管理部１５０ａが出力した接続先変更要求、クライアントに割り当てられている識別子、及び他の負荷分散装置に割り当てられている識別子を、セッション保持部１２０ａに転送する。
【００４１】
通知情報受付部１４０ａは、サーバ２００による処理結果である通知情報と、クライアント３００に割り当てられた識別子とを、通信インタフェース１１０ａを介して受信し、セッション管理部１３０ａに転送する。
【００４２】
負荷分散装置群内の負荷分散装置のうち１つ以上の負荷分散装置は、サーバから通知情報を取得して、その通知情報をクライアントに送信する。ここで、各負荷分散装置は、通知情報を送信するための負荷を、負荷分散装置群内でセッションを移動させることで分散又は集約させる。負荷管理部１５０ａは、負荷情報（確立しているセッション数、ＣＰＵ利用率、空きメモリ量など）を各部から取得する。負荷管理部１５０ａは、負荷情報交換部１６０ａを介して、負荷情報を他の負荷分散装置（例えば、負荷分散装置１００ｂ）に送信する。負荷管理部１５０ａは、他の負荷分散装置における負荷情報を、負荷情報交換部１６０ａを介して、その負荷分散装置から受信する。
【００４３】
負荷管理部１５０ａは、クライアント３００と自装置との間で確立しているセッションを、他の負荷分散装置に移動させるか否かを判定する。ここで、負荷管理部１５０ａは、負荷分散装置群１００における通知処理の負荷の状況を表す負荷情報、例えば、自装置（負荷分散装置１００ａ）における負荷情報と、他の負荷分散装置（負荷分散装置１００ｂ）における負荷情報との比較結果に基づいて、セッションを移動させるか否かを判定する。
【００４４】
負荷管理部１５０ａは、他の負荷分散装置（例えば、負荷分散装置１００ｂ）の負荷よりも自装置の負荷が高い場合、当該他の負荷分散装置にセッションを移動させると判定する。負荷管理部１５０ａは、自装置から他の負荷分散装置にセッションを移動させると判定した場合、接続先変更要求により、クライアントに割り当てられている識別子、及び当該他の負荷分散装置を識別するための識別子を、セッション管理部１３０ａに出力する。また、負荷管理部１５０ａは、接続先が変更されることを表す情報を、接続クライアント報告部１７０ａに出力する。
【００４５】
一方、負荷管理部１５０ａは、他の負荷分散装置（例えば、負荷分散装置１００ｂ）の負荷と自装置の負荷とが共に低い場合、自装置のセッションを全て当該他の負荷分散装置に移動させ、処理を集約させると判定する。ここで、負荷が低いか否かの判定には、予め定められた閾値が用いられてもよい。負荷管理部１５０ａは、自装置から他の負荷分散装置にセッションを移動させると判定した場合、負荷管理部１５０ａは、接続先変更要求により、クライアントに割り当てられている識別子、及び当該他の負荷分散装置を識別するための識別子を、セッション管理部１３０ａに出力する。また、負荷管理部１５０ａは、セッションを移動したことで接続先が変更されることを表す情報を、接続クライアント報告部１７０ａに出力する。
【００４６】
負荷管理部１５０ａは、自装置を識別するための識別子、又は他の負荷分散装置を識別するための識別子を再送信することを、クライアント３００から要求された場合、通信インタフェース１１０ａを介して、クライアント３００に当該識別子を再送信する。
【００４７】
負荷情報交換部１６０ａは、自装置における負荷情報を、通信インタフェース１１０ａを介して他の装置に送信する。また、負荷情報交換部１６０ａは、他の負荷分散装置における負荷情報を、通信インタフェース１１０ａを介してその負荷分散装置から受信する。
【００４８】
接続クライアント報告部１７０ａは、クライアント３００との間で確立しているセッションを、他の負荷分散装置（例えば、負荷分散装置１００ｂ）に移動させると負荷管理部１５０ａが判定した場合、負荷管理部１５０ａから取得した「接続先が変更されることを表す情報」を、通信インタフェース１１０ａを介してサーバ２００に送信する。
【００４９】
次に、負荷分散装置の動作手順を説明する。
＜通知処理の負荷が増大していない又は減少していない場合（正常な場合）について＞
図２は、通知処理の負荷が増大していない又は減少していない場合における、負荷分散装置群、サーバ及びクライアントの各動作手順の概略を表す図である。
【００５０】
クライアント３００は、サーバ２００に所定の処理を要求する（ステップＳ１）。サーバ２００は、処理結果である通知情報をサーバ２００の代わりに通知する負荷分散装置１００ａに割り当てられている識別子（例えば、ＩＰアドレス、ＵＲＬ）を、クライアント３００に送信する（ステップＳ２）。クライアント３００は、サーバ２００から受信した識別子が割り当てられている負荷分散装置１００ａに通信接続する（接続要求）（ステップＳ３）。
【００５１】
サーバ２００は、処理結果である通知情報をサーバ２００の代わりに通知する負荷分散装置１００ａに、処理結果である通知情報を送信する（ステップＳ４）。負荷分散装置１００ａは、サーバ２００から受信した通知情報を、クライアント３００にピギーバックにより送信する（ステップＳ５）。
【００５２】
図３は、通知処理の負荷が増大していない又は減少していない場合における、負荷分散装置群、サーバ及びクライアントの各動作手順を表すシーケンス図である。
クライアント３００は、サーバ２００から受信した識別子（例えば、ＩＰアドレス、ＵＲＬ）が割り当てられている負荷分散装置１００ａに通信接続する（接続要求）。ここで、クライアント３００は、自装置（クライアント３００）に割り当てられた識別子を、セッション保持部１２０ａに送信する（ステップＳａ１）。セッション保持部１２０ａは、クライアント３００とのセッションを確立し、確立したセッションを保持する（ステップＳａ２）。セッション管理部１３０ａは、クライアント３００に割り当てられた識別子と、確立したセッションが動作しているプロセスに関する情報とを記憶する（ステップＳａ３）。
【００５３】
そして、通知情報受付部１４０ａは、所定の通知情報をサーバ２００から受信したとする（ステップＳａ４）。通知情報受付部１４０ａは、サーバ２００から受信した通知情報と、クライアント３００に割り当てられた識別子とを、セッション管理部１３０ａに転送する（ステップＳ５）。セッション管理部１３０ａは、クライアント３００に割り当てられた識別子に基づいて、クライアント３００とのセッション及びプロセスを割り出す（ステップＳａ６）。
【００５４】
セッション管理部１３０ａは、割り出したセッションを表す情報と、サーバ２００から受信した所定の通知情報とを、セッション保持部１２０ａに出力する（ステップＳａ７）。セッション保持部１２０ａは、セッション管理部１３０ａが割り出したセッションに基づいて、サーバ２００から受信した所定の通知情報を、通信インタフェース１１０ａを介してクライアント３００に送信する（ステップＳａ８）。
【００５５】
＜通知処理の負荷が増大した又は減少した場合について＞
通知処理の負荷が増大した場合、負荷分散装置群１００は、負荷分散装置群１００内の多数の負荷分散装置にセッションを移動させることで、通知処理の負荷を分散させる。一方、通知処理の負荷が減少した場合、負荷分散装置群１００は、負荷分散装置群１００内の少数の負荷分散装置にセッションを移動させることで、通知処理の負荷を集約させる。
【００５６】
図４は、通知処理の負荷が増大した又は減少した場合における、負荷分散装置群、サーバ及びクライアントの各動作手順の概略を表す図である。
クライアント３００は、サーバ２００から通知された識別子が割り当てられている負荷分散装置１００ａに通信接続する（ステップＳｂ１）。負荷分散装置１００ａは、負荷情報（確立しているセッション数、ＣＰＵ利用率、空きメモリ量など）に基づいて、クライアント３００と自装置（負荷分散装置１００ａ）との間のセッションを移動させるか否かを判定する。
【００５７】
セッションを移動させると判定した場合、負荷分散装置１００ａは、新たな接続先である負荷分散装置１００ｂに割り当てられた識別子を、クライアント３００に送信する。ここで、負荷分散装置１００ａは、ＨＴＴＰリダイレクト要求におけるステータス・コードとして、移動を表すコード（３０１「Ｍｏｖｅｄ  Ｐｅｒｍａｎｅｎｔｌｙ」）を送信する（ステップＳｂ２）。
【００５８】
負荷分散装置１００ａは、接続先が変更されることを表す情報（クライアント３００に割り当てられている識別子、及び負荷分散装置１００ｂに割り当てられている識別子）を、サーバ２００に送信する（ステップＳｂ３）。
【００５９】
クライアント３００は、受信した識別子に基づいて、新たな接続先である負荷分散装置１００ｂに通信接続する（ステップＳｂ４）。
【００６０】
図５は、通知処理の負荷が増大した又は減少した場合における、負荷分散装置群、サーバ及びクライアントの各動作手順を表すシーケンス図である。
クライアント３００は、サーバ２００から受信した識別子が割り当てられている負荷分散装置１００ａに通信接続する（接続要求）。ここで、クライアント３００は、自装置に割り当てられた識別子を、負荷分散装置１００ａのセッション保持部１２０ａに送信する（ステップＳｃ１）。セッション保持部１２０ａは、クライアント３００とのセッションを確立し、確立したセッションを保持する（ステップＳｃ２）。
【００６１】
セッション管理部１３０ａは、クライアント３００に割り当てられた識別子と、確立したセッションが動作しているプロセスに関する情報とを記憶する（ステップＳｃ３）。負荷管理部１５０ａは、負荷情報（確立しているセッション数、ＣＰＵ利用率、空きメモリ量など）を各部から取得する（ステップＳｃ４）。
【００６２】
負荷管理部１５０ａは、負荷情報交換部１６０ａを介して、負荷情報を負荷分散装置１００ｂに送信する（ステップＳｃ５）。負荷管理部１５０ａは、負荷分散装置１００ｂにおける負荷情報を、負荷情報交換部１６０ａを介して負荷分散装置１００ｂから受信する（ステップＳｃ６）。
【００６３】
負荷管理部１５０ａは、クライアント３００との間で確立しているセッションを、負荷分散装置１００ｂに移動させるか否かを判定する（ステップＳｃ７）。なお、ステップＳａ４〜ステップＳａ７までの手順は、予め定められた周期で繰り返される。
【００６４】
ここで、負荷管理部１５０ａは、セッションを負荷分散装置１００ｂに移動させると判定したとする（ステップＳｃ８）。負荷管理部１５０ａは、リダイレクト要求（ステータス・コード「３０１」）を、セッション管理部１３０ａに出力する（ステップＳｃ９）。さらに、セッション管理部１３０ａは、リダイレクト要求をセッション保持部１２０ａに転送する（ステップＳｃ１０）。また、セッション保持部１２０ａは、リダイレクト要求をクライアント３００に送信する（ステップＳｃ１１）。
【００６５】
また、負荷管理部１５０ａは、接続先が変更されることを表す情報（クライアント３００に割り当てられた識別子、及び、負荷分散装置１００ｂに割り当てられた識別子を、接続クライアント報告部１７０ａに出力する（ステップＳｃ１２）。接続クライアント報告部１７０ａは、接続先が変更されることを表す情報を、通信インタフェース１１０ａを介してサーバ２００に送信する（ステップＳｃ１３）。
【００６６】
クライアント３００は、自装置（クライアント３００）に割り当てられた識別子を、負荷分散装置１００ｂに送信する（ステップＳｃ１４）。クライアント３００は、負荷分散装置１００ｂから通知情報を受信する。
【００６７】
上記に説明した負荷分散装置は、ネットワーク資源を管理するネットワーク資源管理（Ｎｅｔｗｏｒｋ Ｒｅｓｏｕｒｃｅ Ｍａｎａｇｅｒ、ＮＲＭ）システムとして、以下に示す通信環境に適用されてもよい。
【００６８】
図６は、負荷分散装置群を用いる通信環境の例を表す図である。クライアント３００は、通信経路（パス）を通すようＮＲＭに要求する（パス要求）。パス要求を受信したＮＲＭは、通信経路上のスイッチ間に共通の設定するよう、他のＮＲＭに要求する。パス要求を受信したＮＲＭは、通信経路の設定が終わった、又は通信経路に障害が発生した等のイベント（状態変更）を、クライアント３００に通知する（状態変更通知）。
【００６９】
以上のように、負荷分散装置１００ａは、クライアント３００からの要求に応じてサーバ２００が処理した結果である通知情報をサーバ２００の代わりにクライアント３００に通知する処理の負荷を表す負荷情報を、他の負荷分散装置（例えば、負荷分散装置１１０ｂ）から受信する負荷情報交換部１６０ａと、負荷情報交換部１６０ａが受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、クライアント３００に送信する負荷管理部１５０ａと、前記通知情報をサーバ２００から受信する通知情報受付部１４０ａと、通知情報受付部１４０ａが受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報をクライアント３００に送信（ピギーバック）するセッション保持部１２０ａと、を備える。
この構成により、サーバの代わりに負荷分散装置が、通知情報を所定情報に付加し、該通知情報が付加された所定情報をクライアントに送信（ピギーバック）するので、これにより、負荷分散装置は、情報を通知する先であるクライアントに情報を非同期に通知する際の即時性が高く、且つ、情報を通知する元であるサーバにおける処理の負荷を低くすることができる。
【００７０】
また、負荷管理部１５０ａは、他の負荷分散装置における負荷よりも、自装置の負荷のほうが高い場合、当該他の負荷分散装置を識別するための識別子を、クライアント３００に通信インタフェース１１０ａを介して送信する。
これにより、負荷分散装置は、サーバからクライアントに対して非同期に情報を通知する処理の負荷の状況に基づいて、負荷分散装置群内で負荷を分散させることができる。
【００７１】
また、負荷管理部１５０ａは、他の負荷分散装置から受信した負荷情報が表す負荷と、自装置の負荷とが共に低い場合、当該他の負荷分散装置を識別するための識別子を、クライアント３００に通信インタフェース１１０ａを介して送信する。
これにより、負荷分散装置は、サーバからクライアントに対して非同期に情報を通知する処理の負荷の状況に基づいて、負荷分散装置群内で負荷を集約させることができる。
【００７２】
また、負荷管理部１５０ａは、負荷情報として、セッション数、ＣＰＵ利用率及びメモリ量のうち少なくとも１つに基づいて、自装置における負荷と、他の負荷分散装置における負荷とを比較する。
これにより、負荷分散装置は、セッション数、ＣＰＵ利用率及びメモリ量のうち少なくとも１つに基づいて、負荷分散装置群内で負荷を分散又は集約させることができる。
【００７３】
また、負荷管理部１５０ａは、負荷情報として、セッション数、ＣＰＵ利用率及びメモリ量のうち少なくとも１つに対する閾値に基づいて、自装置の負荷の低さと、他の負荷分散装置の負荷の低さとを判定する。
これにより、負荷分散装置は、セッション数、ＣＰＵ利用率及びメモリ量のうち少なくとも１つに対する閾値に基づいて、負荷分散装置群内で負荷を分散又は集約させることができる。
【００７４】
また、負荷管理部１５０ａは、他の負荷分散装置を識別するための識別子を、ＨＴＴＰリダイレクト・メソッドによりクライアント３００に送信する。
これにより、負荷分散装置は、ＨＴＴＰリダイレクト・メソッドにより、負荷分散装置群内で負荷を分散又は集約させることができる。
【００７５】
また、負荷管理部１５０ａは、自装置を識別するための識別子、又は他の負荷分散装置を識別するための識別子を再送信することを、クライアント３００から要求された場合、当該クライアントに識別子を再送信する。
負荷分散装置とクライアントとのセッションが切断された場合でも、これにより、負荷分散装置は、負荷分散装置群内で負荷を分散又は集約させることができる。
【００７６】
また、負荷分散システムは、所定の処理を要求するクライアント３００と、クライアント３００からの要求に応じて処理した結果である通知情報を送信するサーバ２００と、複数の負荷分散装置１００ａ等と、を備え、負荷分散装置１００ａ等が、前記通知情報をサーバ２００の代わりにクライアント３００に通知する処理の負荷を表す負荷情報を、他の負荷分散装置（例えば、負荷分散装置１１０ｂ）から受信する負荷情報交換部１６０ａと、負荷情報交換部１６０ａが受信した前記負荷情報が表す負荷と、自装置の負荷と、を比較し、該比較結果に応じて、当該他の負荷分散装置を識別するための識別子を、クライアント３００に送信する負荷管理部１５０ａと、前記通知情報をサーバ２００から受信する通知情報受付部１４０ａと、通知情報受付部１４０ａが受信した前記通知情報を所定情報に付加し、該通知情報が付加された前記所定情報をクライアント３００に送信セッション保持部１２０ａする情報送信部と、を備える。
この構成により、サーバの代わりに負荷分散装置が、通知情報を所定情報に付加し、該通知情報が付加された所定情報をクライアントに送信（ピギーバック）するので、これにより、負荷分散システムは、情報を通知する先であるクライアントに情報を非同期に通知する際の即時性が高く、且つ、情報を通知する元であるサーバにおける処理の負荷を低くすることができる。
【００７７】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００７８】
例えば、リダイレクト要求におけるステータス・コードは、一時的な移動を表すコード（３０２「Ｍｏｖｅｄ Ｔｅｍｐｏｒａｒｉｌｙ」）であってもよい。
【００７９】
また、例えば、クライアントは、負荷分散装置とのセッションが切断された場合、識別子の再送信を負荷分散装置に要求してもよい。
【００８０】
なお、以上に説明した負荷分散装置及び負荷分散システムを実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録し、そのプログラムをコンピュータシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００８１】
１００…負荷分散装置群、１００ａ、１００ｂ…負荷分散処理装置、１１０ａ…通信インタフェース、１２０ａ…セッション保持部（情報送信部）、１３０ａ…セッション管理部、１４０ａ…通知情報受付部、１５０ａ…負荷管理部、１６０ａ…負荷情報交換部、１７０ａ…接続クライアント報告部、２００…サーバ、３００…クライアント
【図１】
2012185638.tif 000003
【図２】
2012185638.tif 000004
【図３】
2012185638.tif 000005
【図４】
2012185638.tif 000006
【図５】
2012185638.tif 000007
【図６】
2012185638.tif 000008