JP2006172241A - 負荷分散装置,負荷分散方法および負荷分散プログラム - Google Patents

負荷分散装置,負荷分散方法および負荷分散プログラム Download PDF

Info

Publication number
JP2006172241A
JP2006172241A JP2004365306A JP2004365306A JP2006172241A JP 2006172241 A JP2006172241 A JP 2006172241A JP 2004365306 A JP2004365306 A JP 2004365306A JP 2004365306 A JP2004365306 A JP 2004365306A JP 2006172241 A JP2006172241 A JP 2006172241A
Authority
JP
Japan
Prior art keywords
client
uniqueness
assurance information
uniqueness assurance
communication request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004365306A
Other languages
English (en)
Inventor
Hiroyasu Kageyama
博靖 蔭山
Takuya Yamada
拓也 山田
Noboru Atsumi
暢 渥美
Ko Miyata
香 宮田
Tsutomu Matsumoto
努 松本
Shoki Ochi
昭喜 越智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
PFU Ltd
Original Assignee
Fujitsu Ltd
PFU Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, PFU Ltd filed Critical Fujitsu Ltd
Priority to JP2004365306A priority Critical patent/JP2006172241A/ja
Publication of JP2006172241A publication Critical patent/JP2006172241A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】負荷分散装置に関し,クライアントからの通信要求により,分散先サーバの一意性保証情報の初期化を効率的に行い,サーバの負荷分散の偏りをなくす。
【解決手段】分散先継続処理部11は,仮想コネクション情報テーブル13に従って,各クライアント20からの通信要求を各分散先の実サーバ30に転送する。通信要求があったクライアント20に関する仮想コネクション情報が存在しない場合には,分散先決定処理部12が新規に割り当てる実サーバ30を決定し,決定された実サーバ30の割り当て情報をもとに,新たな仮想コネクション情報を仮想コネクション情報テーブル13に登録する。終了検出処理部14は,クライアント20から特定の通信ポートに対する通信要求があると,仮想コネクションの終了を認識し,仮想コネクション情報テーブル13から該当するクライアント20に関する仮想コネクション情報を削除する。
【選択図】図1

Description

本発明は,クライアントからのリクエスト(通信要求)を複数のサーバに分散する負荷分散の技術に関するものであり,特に,分散先サーバの一意性が保証されている場合において,その一意性の保証をクライアントからの要求により解放することを可能とした負荷分散装置,負荷分散方法および負荷分散プログラムに関するものである。
1台のサーバに対して多くのクライアントからの通信要求が集中すると,サーバの処理能力の不足により,クライアントへのレスポンスタイムが大幅に長くなってしまうことがある。このような状況に対処するため,同じ機能を持つサーバを複数台用意し,負荷分散装置によって複数のサーバに負荷を分散する技術がある(例えば,特許文献1,特許文献2参照)。
このような負荷分散システムにおいて,クライアントからの通信要求をサーバ群内の各サーバに転送する際の分散の単位としては,例えば,“ノード単位の分散”や“コネクション単位の分散”などがある。
“ノード単位の分散”では,ノード(クライアント)を1つの単位とし,同じノード(クライアント)からの通信要求を,サーバ群内の同じサーバに転送する。
“コネクション単位の分散”では,コネクション(TCPコネクションまたはUDPフロー)を1つの単位とし,コネクション単位にサーバファーム内の最適なサーバを選択して通信要求を転送する。“ノード単位の分散”と違い,同じノード(クライアント)であってもコネクションが異なれば,別の最適なサーバに通信要求が転送される。
“ノード単位の分散”では,クライアントの送信元IPアドレスに基づいて,同じ送信元IPアドレスを持つすべての通信要求を同じサーバに転送する制御を行っている。しかしながら,クライアントからのアクセスがプロキシやファイアウォールを経由するような場合には,一般的に,すべてのクライアントの送信元IPアドレスが1つまたは数個のIPアドレスに変換されるか,コネクション単位に別のIPアドレスが割り当てられる。この結果,1台または数台のサーバにトラフィックが集中してしまう可能性があり,また,すべての通信要求が同じサーバに転送されることを期待しているアプリケーションでは,誤作動を起こしてしまう可能性がある。このような環境では,“コネクション単位の分散”を使用する。
しかし,WWWサーバ上のe−コマースアプリケーションなどでは,対話処理を行っている間,同じサーバにアクセスすることを期待するものがある。このようなケースでは,“コネクション単位の分散”だけではうまく動作しない。このようなアプリケーションの負荷分散をサポートするために,一定時間最初にアクセスしたサーバと同じサーバへのアクセスを保証する“セッション維持”(アクセス先サーバの一意性の保証)がある(例えば,非特許文献1参照)。
このような技術では,クライアントと分散先サーバとを一意に接続するための情報(一意性保証情報)を,一意性保証テーブルで管理する。一意性保証情報の例としては,例えばノード情報やcookie情報などがある。
一意性保証テーブル内の一意性保証情報の初期化は,該当するクライアントからの通信が一定時間発生しないこと(一定時間無通信であること)を確認することにより,自動的に行われる。「無通信の状態が一定時間過ぎるまでは一意性を保証する」ということは,「無通信の状態が一定時間過ぎるまでは同じサーバに接続される」ということを意味しており,裏を返せば「無通信の状態が一定時間過ぎるまでは別のサーバに接続されない」ということを意味する。なお,このような一意性の保証時間として,数時間が設定されている場合もある。
クライアントからの通信要求を同じサーバに振り分け続けるのは,複数の通信要求で構成されるトランザクション型アプリケーションのためである。しかし,負荷分散装置では,クライアントからの通信要求でトランザクションの終わりを判断することができないため,同じサーバに振り分け続ける必要がなくなったかどうかを判断するためには,無通信である時間を監視するしかなかった。
特開平4−271455号公報 特開2002−259354号公報 「Interstage Traffic Director 説明書」,平成15年7月14日,富士通株式会社,「負荷分散/QoS制御 機能説明書」の「2.1.1.7 セッション維持(一意性の保証)」,インターネット,<URL: http://software.fujitsu.com/jp/manual/s/b23pk35h0/0510m05/01/ndsv02/ndsv0015.html>
上述の無通信時間の監視による一意性保証情報の初期化では,無通信の状態が一定時間経過するまで,一意性保証情報を初期化することができない。そのため,タイムアウトになる(無通信の状態が一定時間経過する)前に発生した通信要求は,各サーバの負荷状態にかかわらず,すべて一意性保証情報で保証された分散先サーバに接続されることになる。すなわち,一意性保証情報で保証された分散先サーバの負荷が高負荷になってしまっていても,一定時間の無通信状態によって一意性保証情報が初期化されない限り別の低負荷のサーバに再接続することができないため,効率的な負荷分散を実現できないことがあった。
本発明は,上記の問題点の解決を図り,無通信の状態が一定時間経過する前でも分散先サーバの一意性保証の解放を可能とすることによって,効率的な負荷分散が可能となる負荷分散装置,負荷分散方法および負荷分散プログラムを提供することを目的とする。
本発明は,上記の課題を解決するため,クライアントが負荷分散装置にトランザクションの終了を指示し,負荷分散装置がクライアントからの指示によって分散先サーバの一意性保証を解放することを特徴とする。
クライアントごとに分散先サーバの一意性が保証された状態で,あるクライアントから分散先サーバの一意性保証の解放指示があった場合に,それを受信した負荷分散装置が該当するクライアントに関する分散先サーバの一意性保証を解放することにより,それ以後のそのクライアントからの通信を低負荷のサーバに再接続することが可能となり,効率的な負荷分散が可能となる。
分散先サーバの一意性保証の解放指示としては,例えば次の第1の方法または第2の方法を用いることができる。第1の方法は,クライアントからの通信要求であらかじめ定められた特定のポート番号を指定する方法である。特定のポート番号が指定されたクライアントからの通信要求を受けた負荷分散装置は,一意性保証テーブル内の該当するクライアントに関する一意性保証情報を初期化する。
第2の方法は,クライアントからの通信要求(プロトコル/パケット)の特定の位置または範囲にあらかじめ定められた特定の文字列がある場合に,一意性保証の解放を指示していると認識する方法である。特定の文字列が指定されたクライアントからの通信要求を受けた負荷分散装置は,一意性保証テーブル内の該当するクライアントに関する一意性保証情報を初期化する。
例えばプロキシ経由の接続などではプロキシがクライアントの送信元IPアドレスを隠蔽するため,送信元IPアドレスから一意性保証の解放を要求しているクライアントを識別できない場合がある。この場合,上記の特定のポート番号を指定する第1の方法では送信元のクライアントを確定することができず,該当するクライアントに関する一意性保証情報を初期化することができない。第2の方法を用いると,このような場合でも,プロトコル内の位置情報を利用して,一意性保証を完了させるクライアントを確定することができる。
本発明によって,複数の既存製品パッケージから構成される複合トランザクションでも,クライアントからのトランザクションの終了通知により,負荷分散装置では,トランザクションの完了を容易に検出できるようになり,業務トランザクションのための一意性保証情報をそのタイムアウト前でも初期化することができるようになる。これにより,負荷分散の偏りを防止することが可能となり,効率的な負荷分散が可能となる。
また,送信元IPアドレスを隠蔽するプロキシ経由の接続のような送信元IPアドレスから業務終了のクライアントを識別できない場合でも,通信パケット上の位置情報などを利用することにより,業務トランザクションの終了をクライアントから指示できるようになる。特に,HTTP通信などでは,特定URLのアクセスをトランザクション終了として定義しておけば,クライアント側のアプリケーションを新規に作成しなくても,既存のブラウザ機能を利用するだけで,負荷分散装置にトランザクションの終了を指示することが可能となる。
以下,本発明の実施の形態について,図を用いて説明する。以下の実施の形態において,仮想コネクションとは,分散先サーバの一意性が保証された複数のコネクションをまとめたものであり,その仮想コネクションを示す情報を,仮想コネクション情報(上記の一意性保証情報に該当する)という。また,仮想コネクション情報を管理するテーブルを,仮想コネクション情報テーブル(上記の一意性保証テーブルに該当する)という。仮想コネクションは,トランザクション処理では通常1回の業務トランザクションで発生する全コネクションを意味する。
図1は,本発明の実施の形態における負荷分散システムの構成例を示す図である。負荷分散システムは,仮想サーバ1と,複数のクライアント20とから構成される。また,仮想サーバ1は,負荷分散装置10と,同じ機能を持つ複数の実サーバ30とから構成される。各クライアント20から仮想サーバ1への通信要求は,負荷分散装置10によって,いずれかの実サーバ30に転送される。
負荷分散装置10は,分散先継続処理部11と,分散先決定処理部12とを備える。また,分散先継続処理部11は,仮想コネクション情報テーブル13と,終了検出処理部14とを備える。
分散先継続処理部11は,仮想コネクション情報テーブル13に登録された仮想コネクション情報(分散先実サーバの一意性保証情報)に従って,各クライアント20からの通信要求を各分散先の実サーバ30に転送する。通信要求があったクライアント20に関する仮想コネクション情報が存在しない場合には,分散先決定処理部12に対し新規に分散先となる実サーバ30の決定を指示する。
分散先決定処理部12は,分散先継続処理部11からの指示を受けると,各実サーバ30の負荷状況等を考慮して新規に割り当てる実サーバ30を決定し,決定された実サーバ30の割り当て情報を分散先継続処理部11に通知する。分散先継続処理部11は,通知された割り当て情報をもとに,通信要求があったクライアント20に関する仮想コネクション情報を仮想コネクション情報テーブル13に登録する。
終了検出処理部14は,クライアント20からの通信要求に仮想コネクションの終了を示す情報が含まれているか否かを確認する。終了検出処理部14がクライアント20からの通信要求から仮想コネクションの終了を示す情報を検出すると,分散先継続処理部11は,仮想コネクション情報テーブル13から,該当するクライアント20に関する仮想コネクション情報を削除する。このとき,最後に仮想コネクションの終了を示す情報を含んだ通信要求を分散先の実サーバ30に転送してから処理を終了するようにしてもよいし,仮想コネクションの終了を示す情報を含んだ通信要求を分散先の実サーバ30に転送しないで処理を終了するようにしてもよい。
以下,図1を用いて,本実施の形態における負荷分散装置10の具体的な例を説明する。ここでは,最初の段階で,まだクライアント20aに関する仮想コネクション情報が存在していないものとする。
図1において,クライアント20aの業務処理部A21は,通信要求41を分散先継続処理部11に送信する。しかし,分散先継続処理部11の仮想コネクション情報テーブル13には,まだクライアント20aに関する仮想コネクション情報が存在しないため,分散先データを新規指示42として,分散先決定処理部12に中継する。
分散先決定処理部12は,各実サーバ30の負荷状況等を調べ,その結果により分散先となる実サーバ30を決定する。ここでは,実サーバ30aが分散先となったとする。実サーバ30aが分散先となることにより,その実サーバ30a内の業務処理部31aに対して通信業務43が発生する。このとき,分散先となる実サーバ30の割り当て情報通知44を,分散先決定処理部12から分散先継続処理部11へ行う。
分散先継続処理部11は,分散先決定処理部12からの割り当て情報通知44をもとにクライアント20aに関する仮想コネクション情報を生成し,仮想コネクション情報テーブル13に登録する。
次に,クライアント20aの業務処理部B22で,通信要求45を分散先継続処理部11に送信したとする。分散先継続処理部11の終了検出処理部14は,通信要求45が仮想コネクションの終了パターンに一致しないことを確認する。分散先継続処理部11は,仮想コネクション情報テーブル13に登録されているクライアント20aに関する仮想コネクション情報を利用して,実サーバ30aの業務処理部31aを決定し,その業務処理部31aに対する通信業務46を行う。
次に,クライアント20aの終了処理部23が業務処理(トランザクション)の終了を指示する通信要求47を送信し,分散先継続処理部11が受信したとする。分散先継続処理部11の終了検出処理部14は,通信要求47が仮想コネクションの終了パターンに一致することを検出する。分散先継続処理部11は,一連の業務処理の終了を認識し,仮想コネクション情報テーブル13に登録されているクライアント20aに関する仮想コネクション情報を破棄する。
その結果,クライアント20aの業務処理部A21が次の業務処理として通信要求41を実行した場合に,分散先継続処理部11では,すでにクライアント20aに関する仮想コネクション情報が仮想コネクション情報テーブル13から消されているため,分散先決定処理部12への新規指示42として処理され,分散先決定処理部12で分散先の実サーバ30が再決定される。
従来の技術では,クライアント20aの業務処理部A21が次の業務処理として通信要求41を実行した時点ですでに一定の無通信監視時間が経過していないと,分散先継続処理部11では,まだ仮想コネクション情報テーブル13に登録されているクライアント20aに関する仮想コネクション情報に従って,同じ実サーバ30aに通信要求が送られてしまう。
もちろん,本実施の形態においても,従来の技術と同様に,一定の無通信監視時間が経過した仮想コネクション情報が仮想コネクション情報テーブル13に残っている場合には,時間監視によりその仮想コネクション情報を消去するが,クライアントからの終了指示があった場合には,無通信監視時間の経過を待つことなく直ちに仮想コネクション情報の消去を実行するので,負荷分散の偏りを防止することができるようになる。
次に,仮想コネクション情報テーブル13について,具体的な例をあげて説明する。図2は,本実施の形態における仮想コネクション情報テーブルの例を示す図である。図2(A)の例に示す仮想コネクション情報テーブル13には,クライアントのIPアドレスごとに,仮想サーバのIPアドレス,実サーバのIPアドレス,管理情報の有効期限などの管理情報が記録されている。
図2(B)に示すように,各クライアント20から仮想サーバ1(IPアドレス=“172.22.16.30”)への通信要求は,負荷分散装置10で各実サーバ30に振り分けられる。このとき,負荷分散装置10は,仮想コネクション情報テーブル13によって,通信要求の転送先となる実サーバ30を決定する。
例えば,図2(A)の仮想コネクション情報テーブル13では,IPアドレスが“192.168.0.100 ”のクライアント20の割り当て実サーバ30は,IPアドレスが“172.22.16.31”の実サーバ30となっている。したがって,図2(B)に示すように,IPアドレスが“192.168.0.100 ”のクライアント20からの通信要求は,IPアドレスが“172.22.16.31”の実サーバ30に転送される。
クライアント20からの通信要求を受けると,図2(A)に示す仮想コネクション情報テーブル13における該当クライアント20の管理情報の有効期限が延長更新される。管理情報の有効期限までにクライアント20からの通信要求がなかった場合には,そのクライアント20についての仮想コネクション情報が仮想コネクション情報テーブル13から削除される。
次に,仮想コネクションの終了(一意性保証の解放)について,具体的な例をあげて説明する。図3は,本実施の形態における仮想コネクションの終了の例を説明する図である。
仮想コネクションを終了させるための第1の方法は,クライアント20からの通信要求で指定されているポート番号があらかじめ定められた特定の番号である場合に,その特定のポート番号を仮想コネクションの終了を示す情報として認識する方法である。
図3(A)に示すように,クライアント20からの通信要求において,通常時には,例えば,HTTPの場合には宛先ポート番号に80が指定されており,FTPの場合には宛先ポート番号に21が指定されている。これらの通常の番号が指定されている通信要求は,負荷分散装置10において,仮想コネクション情報テーブル13の仮想コネクション情報に従って,各実サーバ30に分散される。
クライアント20は,一連の通信の終了時に,仮想コネクションの終了を示す情報としてあらかじめ定められた特定の番号(図3(A)の例では5000)を宛先ポート番号として指定し,通信要求を送る。負荷分散装置10では,終了検出処理部14がクライアント20からの通信要求で指定された宛先ポート番号が仮想コネクションの終了を示す番号(5000)であることを検出し,分散先継続処理部11は,仮想コネクション情報テーブル13から該当するクライアント20に関する仮想コネクション情報を削除する。
次に,仮想コネクションを終了させるための第2の方法として,クライアント20からの通信要求の特定の位置の文字列があらかじめ定められた特定の文字列である場合に,その特定の文字列を仮想コネクションの終了を示す情報として認識する方法がある。
例えばプロキシ経由の接続などの場合に,プロキシがクライアント20の送信元IPアドレスを隠蔽することにより,送信元IPアドレスから仮想コネクションの終了を要求しているクライアント20を識別できない。そのため,前述の特定のポート番号を指定する第1の方法を用いても,クライアント20からの通信要求によって仮想コネクションを終了することができない場合がある。このような場合でも,特定の文字列を指定する第2の方法では,プロトコル内の位置情報を利用して仮想コネクションを終了するクライアント20を識別することができるため,クライアント20からの通信要求によって仮想コネクションを終了することができる。
図3(B)に示すように,クライアント20からの通信要求において,通常時には,例えば,HTTPの場合にはURLの特定の位置で通常の文字列(図3(B)の例では“kaimono ”)が指定されている。これらの通常の文字列が指定されている通信要求は,負荷分散装置10において,仮想コネクション情報テーブル13の仮想コネクション情報に従って,各実サーバ30に分散される。
クライアント20は,一連の通信の終了時に,仮想コネクションの終了を示す情報としてあらかじめ定められた特定の文字列を(図3(B)の例では“OWARI”)を特定の位置に指定し,通信要求を送る。負荷分散装置10では,終了検出処理部14がクライアント20からの通信要求の特定の位置の文字列があらかじめ定められた特定の文字列(“OWARI”)であることを検出し,分散先継続処理部11は,仮想コネクション情報テーブル13から該当するクライアント20に関する仮想コネクション情報を削除する。
該当するクライアント20については,例えば通信にcookie情報が用いられている場合には,そのcookie情報からクライアント20を識別する情報を得て決定することができる。また,セッションIDとクライアントとの対応情報を記憶しておき,セッションIDによって仮想コネクション情報を削除するクライアントを判別してもよい。
特定の文字列としては,例えば,FTPにおけるファイル名やフォルダ名,ビデオ配信(H.323)上のファイル識別子,METAFRAMEのアプリ識別子など,HTTPにおけるURL以外のものでもよい。
次に,負荷分散装置10における負荷分散処理の例について,フローチャートを用いて説明する。図4は,本実施の形態における負荷分散処理フローチャートである。
まず,クライアント20からのパケットを受信すると(ステップS10),その通信に該当する仮想コネクション情報が仮想コネクション情報テーブル13に存在するかを検査する(ステップS11)。
ステップS11において該当する仮想コネクション情報が存在しない場合には(ステップS12),分散先決定処理部12において新たに分散先の実サーバ30を決定する(ステップS15)。決定された分散先実サーバ30の情報をもとに,仮想コネクション情報テーブル13に新たな仮想コネクション情報を追加し(ステップS16),決定された分散先の実サーバ30にパケットの宛先を変更する(ステップS17)。
ステップS11において該当する仮想コネクション情報が存在する場合には(ステップS12),その仮想コネクション情報の有効期限が切れているかを確認し(ステップS13),有効期限が切れていれば,該当する仮想コネクション情報を仮想コネクション情報テーブル13から破棄し(ステップS14),分散先決定処理部12において新たに分散先の実サーバ30を決定する(ステップS15)。決定された分散先実サーバ30の情報をもとに,仮想コネクション情報テーブル13に新たな仮想コネクション情報を追加し(ステップS16),決定された分散先の実サーバ30にパケットの宛先を変更する(ステップS17)。
ステップS13において有効期限が切れていなければ,該当する仮想コネクション情報の管理情報の有効期限を,一定の無通信監視時間分だけ延長更新し(ステップS18),該当する仮想コネクション情報に従って,パケットの宛先を変更する(ステップS19)。
次に,本システムにおいて,特定のポート番号による仮想コネクションの終了が定義されているかを確認し(ステップS20),定義されていれば,受信したパケットのポート番号が仮想コネクションの終了を示す番号と一致するかを検査する(ステップS21)。一致すれば,該当する仮想コネクション情報を仮想コネクション情報テーブル13から破棄する(ステップS24)。
ステップS20において特定のポート番号が定義されていないか,ステップS21においてポート番号が一致しない場合には,続いて,本システムにおいて特定の文字列による仮想コネクションの終了が定義されているかを確認し(ステップS22),定義されていれば,受信したパケットのデータに含まれるパスの特定位置の文字列が仮想コネクションの終了を示す文字列と一致するかを検査する(ステップS23)。一致すれば,該当する仮想コネクション情報を仮想コネクション情報テーブル13から破棄する(ステップS24)。
ステップS25では,宛先が変更されたパケットを,その変更先(分散先)である実サーバ30に送信し,受信したパケットの転送処理を終了する。
次に,仮想コネクションを終了させるときの操作イメージについて,図5,図6を用いて具体的に説明する。以下では,「顧客登録」操作から順に操作を行い,発注業務を確定するために「発注終了」をクリックする業務アプリケーションの例を想定する。なお,この例では,特定の文字列による仮想コネクションの終了が定義されているものとし,その仮想コネクションの終了を示す文字列として,「/Kanryo/」の文字列を設定しておくものとする。また,図5,図6において,実サーバ30内の矢印は,その実サーバ30の負荷状態を示し,矢印が長いほど高負荷の状態であることを示す。
図5は,本実施の形態における通常の操作の例を説明する図である。図5(A)は,クライアント20における業務アプリケーション開始時のインターネット・ブラウザの画面の例であり,このときのURLは“http://172.22.16.30/Menu/index.html ”である。
このインターネット・ブラウザの画面には,いくつかのボタン(“顧客登録”,“注文選択”,“配送日”,“発注終了”)と“操作補助画面”とが表示されている。クライアント20を操作して発注するユーザは,“操作補助画面”を利用しながら,必要に応じてボタン操作によって,この業務アプリケーションの操作を行う。
業務アプリケーションの開始時には,負荷分散装置10によって,その時点で最も低負荷の実サーバ30に業務処理が振り分けられる。ここでは,図5(B)に示すように,実サーバ30aに分散される。その後,業務アプリケーションの通常操作(“発注終了”以外の操作)中は,負荷分散装置10内の仮想コネクション情報テーブル13の仮想コネクション情報によって分散先実サーバ30の一意性が保証されるため,図5(C)に示すように,常に実サーバ30aに業務処理が分散される。
図6は,本実施の形態における仮想コネクションの終了操作の例を説明する図である。図6(A)は,クライアント20において“発注終了”のボタンが押されることにより発注業務が確定され,業務アプリケーションが終了する場合のインターネット・ブラウザの画面の例であり,このときのURLは“http://172.22.16.30/Kanryo/index.html ”である。このインターネット・ブラウザの画面では,図5の“操作補助画面”が“完了画面”となり,発注の完了を示すメッセージが表示されている。
業務アプリケーションの終了時には,仮想コネクションの終了を示す文字列がURLのパスに含まれていることを確認することにより負荷分散装置10内の仮想コネクション情報テーブル13から該当するクライアント20の仮想コネクション情報が破棄される。ここでは,URLのパスに含まれる「/Kanryo/」の文字列が仮想コネクションの終了を示す文字列であるので,図6(B)に示すように,それまでのクライアント20から実サーバ30aへの仮想コネクションが解消される。
その後,新たにクライアント20において業務アプリケーションが開始されたときに,負荷分散装置10によって,その時点で最も低負荷の実サーバ30に業務処理を分散することが可能となる。ここでは,図6(C)に示すように,その時点で最も低負荷の実サーバ30として,実サーバ30cが選択される。
従来からの汎用的な負荷分散装置では,個々のユーザごとにカスタマイズされた業務処理におけるトランザクション完了を識別することができない。その結果,ある一定期間の無操作(無通信)の発生により業務完了を判断するしかなかった。このような従来の技術では,先の業務処理の完了後すぐに次の業務処理を開始すると,たとえ先の業務処理時の分散先の実サーバ30が次の業務処理の開始時に高負荷状態であったとしても,先の業務処理時の分散先の実サーバ30に次の業務処理を依頼してしまうことになる。
例えば,従来の技術では,業務アプリケーションの終了後にある一定期間の無操作(無通信)が発生しないと仮想コネクションが終了されないため,その一定期間が過ぎる前にクライアント20における次の業務アプリケーションが開始してしまうと,図5(C)に示すように,たとえその時点で最も低負荷の実サーバ30でなくとも,そのまま実サーバ30aに業務処理が分散されてしまう。本発明によれば,このような事態が解消され,実サーバ30の負荷が従来よりも均一化されることになる。
なお,以上説明した負荷分散装置10が実行する処理は,コンピュータとソフトウェアプログラムとによって実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
以上説明した本発明の実施の形態の特徴をまとめると,以下のとおりとなる。
(付記1)
クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置において,
クライアントからの通信要求を受信する手段と,
通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する手段と,
クライアントからの通信要求におけるポート番号が,あらかじめ一意性保証の終了を指示するためのポート番号として定められた特定のポート番号である場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する手段とを備える
ことを特徴とする負荷分散装置。
(付記2)
クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置において,
クライアントからの通信要求を受信する手段と,
通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する手段と,
クライアントからの通信要求における特定の位置または範囲に,あらかじめ定められた一意性保証の終了を指示するための特定の文字列が存在する場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する手段とを備える
ことを特徴とする負荷分散装置。
(付記3)
付記2記載の負荷分散装置において,
前記一意性保証の終了を指示するための特定の文字列は,インターネット上のアクセス先を示すURL中に含まれる特定の文字列である
ことを特徴とする負荷分散装置。
(付記4)
クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置による負荷分散方法において,
前記負荷分散装置が,
クライアントからの通信要求を受信する過程と,
通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する過程と,
クライアントからの通信要求におけるポート番号が,あらかじめ一意性保証の終了を指示するためのポート番号として定められた特定のポート番号である場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する過程とを有する
ことを特徴とする負荷分散方法。
(付記5)
クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置による負荷分散方法において,
前記負荷分散装置が,
クライアントからの通信要求を受信する過程と,
通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する過程と,
クライアントからの通信要求における特定の位置または範囲に,あらかじめ定められた一意性保証の終了を指示するための特定の文字列が存在する場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する過程とを有する
ことを特徴とする負荷分散方法。
(付記6)
付記5記載の負荷分散方法において,
前記一意性保証の終了を指示するための特定の文字列は,インターネット上のアクセス先を示すURL中に含まれる特定の文字列である
ことを特徴とする負荷分散方法。
(付記7)
クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置のコンピュータに実行させるための負荷分散プログラムであって,
前記コンピュータを,
クライアントからの通信要求を受信する手段と,
通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する手段と,
クライアントからの通信要求におけるポート番号が,あらかじめ一意性保証の終了を指示するためのポート番号として定められた特定のポート番号である場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する手段として,
機能させるための負荷分散プログラム。
(付記8)
クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置のコンピュータに実行させるための負荷分散プログラムであって,
前記コンピュータを,
クライアントからの通信要求を受信する手段と,
通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する手段と,
クライアントからの通信要求における特定の位置または範囲に,あらかじめ定められた一意性保証の終了を指示するための特定の文字列が存在する場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する手段として,
機能させるための負荷分散プログラム。
(付記9)
付記8記載の負荷分散プログラムにおいて,
前記一意性保証の終了を指示するための特定の文字列は,インターネット上のアクセス先を示すURL中に含まれる特定の文字列である
ことを特徴とする負荷分散プログラム。
本発明の実施の形態における負荷分散システムの構成例を示す図である。 本実施の形態における仮想コネクション情報テーブルの例を示す図である。 本実施の形態における仮想コネクションの終了の例を説明する図である。 本実施の形態における負荷分散処理フローチャートである。 本実施の形態における通常の操作の例を説明する図である。 本実施の形態における仮想コネクションの終了操作の例を説明する図である。
符号の説明
1 仮想サーバ
10 負荷分散装置
11 分散先継続処理部
12 分散先決定処理部
13 仮想コネクション情報テーブル
14 終了検出処理部
20 クライアント
30 実サーバ

Claims (5)

  1. クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置において,
    クライアントからの通信要求を受信する手段と,
    通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する手段と,
    クライアントからの通信要求におけるポート番号が,あらかじめ一意性保証の終了を指示するためのポート番号として定められた特定のポート番号である場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する手段とを備える
    ことを特徴とする負荷分散装置。
  2. クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置において,
    クライアントからの通信要求を受信する手段と,
    通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する手段と,
    クライアントからの通信要求における特定の位置または範囲に,あらかじめ定められた一意性保証の終了を指示するための特定の文字列が存在する場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する手段とを備える
    ことを特徴とする負荷分散装置。
  3. 請求項2記載の負荷分散装置において,
    前記一意性保証の終了を指示するための特定の文字列は,インターネット上のアクセス先を示すURL中に含まれる特定の文字列である
    ことを特徴とする負荷分散装置。
  4. クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置による負荷分散方法において,
    前記負荷分散装置が,
    クライアントからの通信要求を受信する過程と,
    通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する過程と,
    クライアントからの通信要求におけるポート番号が,あらかじめ一意性保証の終了を指示するためのポート番号として定められた特定のポート番号である場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する過程とを有する
    ことを特徴とする負荷分散方法。
  5. クライアントと負荷分散先のサーバとを関連付ける一意性保証情報を記憶する一意性保証情報記憶手段を備え,クライアントからの通信要求を一意性保証情報記憶手段を参照して複数のサーバのいずれかに振り分ける負荷分散装置のコンピュータに実行させるための負荷分散プログラムであって,
    前記コンピュータを,
    クライアントからの通信要求を受信する手段と,
    通信要求を送信したクライアントが前記一意性保証情報記憶手段に記憶されている一意性保証情報により分散先のサーバの一意性が保証されているクライアントである場合に,その通信要求を一意性保証情報によって該クライアントに関連付けられているサーバに振り分け,分散先のサーバの一意性が保証されていないクライアントである場合に,前記複数のサーバの中から分散先となるサーバを決定して前記通信要求を分散先のサーバに分散するとともに,そのクライアントと分散先のサーバとを関連付ける一意性保証情報を前記一意性保証情報記憶手段に登録する手段と,
    クライアントからの通信要求におけるポート番号が,あらかじめ一意性保証の終了を指示するためのポート番号として定められた特定のポート番号である場合に,前記一意性保証情報記憶手段に登録されている該クライアントの一意性保証情報を消去する手段として,
    機能させるための負荷分散プログラム。
JP2004365306A 2004-12-17 2004-12-17 負荷分散装置,負荷分散方法および負荷分散プログラム Pending JP2006172241A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004365306A JP2006172241A (ja) 2004-12-17 2004-12-17 負荷分散装置,負荷分散方法および負荷分散プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004365306A JP2006172241A (ja) 2004-12-17 2004-12-17 負荷分散装置,負荷分散方法および負荷分散プログラム

Publications (1)

Publication Number Publication Date
JP2006172241A true JP2006172241A (ja) 2006-06-29

Family

ID=36672912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004365306A Pending JP2006172241A (ja) 2004-12-17 2004-12-17 負荷分散装置,負荷分散方法および負荷分散プログラム

Country Status (1)

Country Link
JP (1) JP2006172241A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250505A (ja) * 2007-03-29 2008-10-16 Nomura Research Institute Ltd 通信接続管理装置
US8782652B2 (en) 2009-06-01 2014-07-15 Fujitsu Limited Control server, virtual server distribution method
JP2016521413A (ja) * 2013-04-08 2016-07-21 ロウルズ リミテッド ライアビリティ カンパニー 負荷分散された持続接続の技法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250505A (ja) * 2007-03-29 2008-10-16 Nomura Research Institute Ltd 通信接続管理装置
US8782652B2 (en) 2009-06-01 2014-07-15 Fujitsu Limited Control server, virtual server distribution method
JP2016521413A (ja) * 2013-04-08 2016-07-21 ロウルズ リミテッド ライアビリティ カンパニー 負荷分散された持続接続の技法
US9781214B2 (en) 2013-04-08 2017-10-03 Amazon Technologies, Inc. Load-balanced, persistent connection techniques
US10178185B2 (en) 2013-04-08 2019-01-08 Amazon Technologies, Inc. Load-balanced, persistent connection techniques

Similar Documents

Publication Publication Date Title
US11165879B2 (en) Proxy server failover protection in a content delivery network
US20200296185A1 (en) Service request management
JP4035806B2 (ja) 映像配信システム
JP3963690B2 (ja) パケット中継処理装置
US9231816B2 (en) Method for distributing a plurality of data portions
JP4311636B2 (ja) 記憶装置を複数の計算機で共用する計算機システム
JP2005530372A5 (ja)
EP1150471A2 (en) Method and system for recommending an available network protocol
WO2009156255A1 (en) Providing access over an ip network to a server application program
CN106612196B (zh) 获取资源的方法及装置
US20070192494A1 (en) Intermediate device which can be introduced and removed in seamless way
JP5941887B2 (ja) エッジルータ切替方法及びシステム及びエッジルータ及び冗長管理装置
JP4339627B2 (ja) パーソナルストレージサービス提供方法
US20120072612A1 (en) Method and an Arrangement of Identifying Traffic Flows in a Communication Network
JP4916567B2 (ja) 分散コンピューティングシステムの処理方法
JP2006172241A (ja) 負荷分散装置,負荷分散方法および負荷分散プログラム
EP1575236A1 (en) Connectivity confirmation method for network storage device and host computer
US20020065918A1 (en) Method and apparatus for efficient and accountable distribution of streaming media content to multiple destination servers in a data packet network (DPN)
JP4792936B2 (ja) 情報処理システムおよびライセンス管理方法
JP4782799B2 (ja) 通信ネットワークシステム及びこれを用いたサービス間のデータ送受信方法。
JP4011369B2 (ja) 中継装置
JP3211776B2 (ja) ネットワーク接続機器情報取得システム
JP5262329B2 (ja) スケジューリングプログラム,スケジューリング方法及びスケジューリング装置
JP2002290451A (ja) 通信帯域制御方法および通信帯域制御装置
JP2006139649A (ja) 被監視マシンとエージェントのポート番号変更方法およびシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090512