JP2009501373A - ネットワークに接続されたサーバ・クラスタ内のクライアント・セッションの動的リバランシングを行う方法及びシステム - Google Patents

ネットワークに接続されたサーバ・クラスタ内のクライアント・セッションの動的リバランシングを行う方法及びシステム Download PDF

Info

Publication number
JP2009501373A
JP2009501373A JP2008520825A JP2008520825A JP2009501373A JP 2009501373 A JP2009501373 A JP 2009501373A JP 2008520825 A JP2008520825 A JP 2008520825A JP 2008520825 A JP2008520825 A JP 2008520825A JP 2009501373 A JP2009501373 A JP 2009501373A
Authority
JP
Japan
Prior art keywords
server
session
server cluster
client
cluster
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.)
Granted
Application number
JP2008520825A
Other languages
English (en)
Other versions
JP5179359B2 (ja
Inventor
デサイ、アディティヤ
マーティン、ブライアン
マッギー、ジェイソン
モンテロ、ガブリエル
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009501373A publication Critical patent/JP2009501373A/ja
Application granted granted Critical
Publication of JP5179359B2 publication Critical patent/JP5179359B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

【課題】 クラスタ内の個々のサーバ間のセッション・リバランシングを行うメカニズムを提供する。
【解決手段】 動的リバランサは、トラフィックをクラスタ内の各サーバに振り分けるルータとは独立してサーバ・クラスタ内で動作する。分析コンポーネントは、構成情報及び統計情報を使用して、セッションが存在する場合にはどのセッションを移動すべきか判定する。フィルタ・コンポーネントは、分析コンポーネントから転送命令を受信する。フィルタ・コンポーネントは、分析コンポーネントから転送命令を受信したときはリダイレクト・コマンドをクライアント要求に追加する。リダイレクト・コマンドは、クライアントがリダイレクト・コマンドを受信し、クライアント要求を新しいサーバに送信し始めるまで、セッション内のクライアント要求を新しいサーバにリダイレクトし続ける。
【選択図】 図1

Description

本発明は一般に、複数のルータを有するサーバ・クラスタ全体のセッション・リバランシングに関するものである。
複数のウェブ・ベース・アプリケーションからのクライアント要求に応じるサービス・プロバイダは、2つ以上のサーバを必要とする。サービス・プロバイダは、クライアントから要求されたタスクをサーバ・クラスタと呼ばれる個々のサーバ・アレイに分配する。クライアントはウェブ・ブラウザを介して、サーバ・クラスタ内の個々のサーバ上で実行されるアプリケーションに対して要求を行い、各アプリケーションから結果を受信する。要求の送信及び結果の受信は、クライアントとサーバの間の、セッションと呼ばれる一連のハイパーテキスト転送プロトコル(HTTP)通信の形で実行される。セッションの例としては、オン・ライン商店における商品の選択及び購入、又は一連の銀行取引が挙げられる。
サーバ・クラスタのプロバイダは、個々のHTTPクライアントがセッション内の複数の要求にわたって同じサーバに送り届けられるような仕組みを採用することによってHTTPセッションの状態を維持する。特定のサーバが特定のクライアントに割り当てられる場合、当該サーバとクライアントの間の関係はアフィニティ(affinity)と呼ばれ、また、割り当てサーバはアフィニティ・サーバと呼ばれる。
追加的なクライアントがサーバ・クラスタにアクセスしたときは、当該クライアントと割り当てサーバとの間の新しいセッションが発生することになる。余りにも多くのセッションが単一のサーバに割り当てられた場合には、サーバが過負荷状態となり、その結果、システム故障を含めた様々な性能問題が生じる恐れがある。したがって、サーバ・クラスタ内のサーバ負荷のバランシングを行うために、新しいセッションはサーバ・クラスタ全体の様々なサーバに分配されることになる。クラスタ上の様々なサーバにセッションを分配する処理は、ロード・バランシングと呼ばれている。
複数のサーバを対象とするロード・バランシングが知られている。Oliver Matsuttiの「Distributed Web Session Management」(Master’s Thesis/2000年)には、HTTPのリダイレクト・コマンド(Redirect command)を使用して、クライアント要求の宛先となるサーバとは異なるサーバに当該クライアント要求を割り当てる手法が開示されている。Matsuttiのソフトウェアはウェブ・サーバ上に所在するものであり、クライアント要求をリダイレクトする判断は、宛先アプリケーション・サーバを選択するルータの働きをするウェブ・サーバにおいて行われる。
Oliver Matsuttiの「Distributed Web Session Management」(Master’s Thesis/2000年)
リダイレクトがルータ・レベルで開始される場合に複数のルータが採用されると、問題が生じることになる。稼動中の分散システムでは、個々の各ルータ・インスタンスが同一の代替宛先を選ばなければならない。言い換えれば、異なるルータが所与のインスタンスの同じデータを有していなければならない。複数のルータが所与のセッションに関する複数の要求を新たに選択された同じサーバに分配するのに必要な状態情報を転送する際は、タイミング問題が生じる可能性がある。そのようなタイミング問題に対処する解決策としては一般に、分散ロッキング・メカニズム(distributed locking mechanism)が知られている。
具体的には、分散ロッキング・メカニズムは、各ルータが要求の送信先について同じ判断を行うように各ルータ内の状態情報を調整する。しかし、分散ロッキング・メカニズムでは、ルータのアクションを調整する上で膨大な量のコードを書き込む必要がある。
このようなルータの調整問題に加えて、サーバ・クラスタではサーバの追加又は削除が行われる可能性があり、新しいアプリケーションがクラスタ内の既存のサーバにインストールされる可能性もあり、また、特定のサーバに与えられた重みがロード・バランシングのために変更される可能性もある。したがって、クラスタ内の個々のサーバ間のリバランシングを行う際は、サーバ・クラスタの構成変更が生じるという別の問題が発生することになる。
したがって、複数のルータを調整するコードを書き込む必要なく、またサーバ・クラスタの構成変更も伴うことなく、クラスタ内の個々のサーバ間のセッション・リバランシングを行うメカニズムが必要とされている。
上記の必要性に対処するシステムが、サーバ・クラスタ内で動作する動的リバランサ(dynamic rebalancer:「DR」)である。DRはルータとは独立して動作する故に、複数のルータ間の調整は必要なくなる。複数のアプリケーション・サーバを含むサーバ・クラスタと、当該サーバ・クラスタ及び複数のルータに接続された複数のクライアントとを有するシステムにおいて、動的リバランサは、セッションの移動を行う上でルータを調整するためのコードを必要としない。DRは、構成コンポーネント(CC)、統計コンポーネント(SC)、管理コンポーネント(MC)、分析コンポーネント(AC)、及びフィルタ・コンポーネント(FC)を有しており、これらの各コンポーネントが連動してサーバ・クラスタ内のロード・バランシングを実現する。
CCは、クラスタ内の各サーバを監視し、クラスタ内の各サーバがそれぞれの構成に関する実時間情報を受信することができるように、それらの各サーバに構成情報を送信する。構成情報としては、サーバがオン・ラインであるのかそれともオフ・ラインであるのかを示すもの、各サーバ上にインストールされているアプリケーションを示すもの、及び各サーバに割り当てられる「比重(proportional weight)」を示すものが挙げられる。SCは、各サーバ上のメモリ内のHTTPセッション数を含めた、クラスタ内の各サーバに関する実時間の統計情報の受信及び登録を行う。
MCは、CCから構成情報を収集し、SCから統計情報を収集し、当該情報をACに送信する。更に、MCは、移動すべきセッションに関するセッション情報がサーバ・クラスタ内の他のサーバから検索可能な状態を保証し、また、セッションを移動するのに安全なタイミングをFCに通知する。
ACは、構成情報及び統計情報を使用して、セッションが存在する場合にはどのセッションを移動すべきか判定する。ACは、移動すべきセッションを次の2つの手法で判定することができる。第1に、ACは、FCからのフィルタ要求に応じて、セッションを移動すべきかどうかを判定する分析を実行することができる。第2に、ACは、構成変更が検出されACが新しいサーバにセッションを転送することを選択したときに、セッション移動命令を送出することができる。
FCには2種類の動作がある(上述した2種類のAC動作に対応する)。第1に、FCは、サーバに対する全てのクライアント要求を代行受信(intercept)する。FCは、セッションを転送すべきかどうかを判定するために、フィルタ要求をACに送信することができる。セッションを転送すべきことが判定された場合には、ACは、転送命令をFCに送信する。第2に、FCは、ACが構成変更に応じて判定を行ったときに、当該ACから転送命令を受信する。
FCは、ACから転送命令を受信した場合はクライアント要求にクッキーを追加し、当該要求を新しいサーバに送信する。クッキーは、セッション内の後続の要求を新しいサーバに送信するようクライアントに命令するリダイレクト・コマンドを含む。FCは、クライアントがリダイレクト・コマンドを受信し、クライアント要求を新しいサーバに送信し始めるまで、セッション内のクライアント要求を新しいサーバにリダイレクトし続ける。
DRを用いれば、リダイレクトを実行する全てのステップが、ルータを関与させずにサーバ上で実行されることになる。DRはクラスタ上で実行されるため、クラスタ状態を実時間で認識する。
DRの一代替実施形態では、リダイレクト送信コマンド(send redirect command)又は新しいクッキーをクライアントに渡す代わりに、アクティブ・セッションの存続期間中にリダイレクト送信コマンドを代行受信する、ルータ・プラグ・インが使用される。
添付の特許請求範囲には、本発明の特徴と考えられる新規な特徴が示されている。しかしながら、本発明自体ならびにその好ましい使用形態、他の目的、及び利点は、例示的な一実施形態に関する以下の詳細な説明を参照し、これを添付図面と併せて読めば最もよく理解されるだろう。
本発明の諸原理は、様々なコンピュータ・ハードウェア構成及びソフトウェア構成に適用可能なものである。本明細書で使用される限り「コンピュータ・ハードウェア」又は「ハードウェア」という用語は、データを記憶し又は表示することに関するロジック処理を解釈して実行することができ、必ずしもそれだけに限定されるわけではないが、処理装置及びメモリを含む任意の機械又は装置を指し、「コンピュータ・ソフトウェア」又は「ソフトウェア」という用語は、コンピュータ・ハードウェアに処理を実行させるように動作可能な任意の命令セットを指す。本明細書で使用される限り「コンピュータ」という用語は、必ずしもそれだけに限定されるわけではないが、ハードウェアとソフトウェアの任意の有益な組合せを含み、「コンピュータ・プログラム」又は「プログラム」は、必ずしもそれだけに限定されるわけではないが、コンピュータ・ハードウェアにデータの記憶または表示に関するロジック処理を解釈させて実行させるように動作可能な任意のソフトウェアを含む。コンピュータ・プログラムは、必ずしもそれだけに限定されるわけではないが、サブルーチン、モジュール、関数、メソッド、及びプロシージャを含むより小さな複数のプログラミング単位から構成されてもよく又そのように構成されていることが多い。それ故、本発明の機能は複数のコンピュータ及びコンピュータ・プログラムに分散させることができる。とはいえ、本発明は1つ又は複数の汎用コンピュータを構成して本発明の新規な諸態様を実装することを可能にする単一のコンピュータ・プログラムとして最もよく説明される。説明上本発明のコンピュータ・プログラムは、「動的リバランサ(DR)」と呼ぶ。
更に、DRは、図1に描かれるハードウェア・デバイスの1つの例示的なネットワークを参照して以下に説明する。「ネットワーク」は、インターネットのような通信媒体を介して相互に結合され通信し合う任意の数のハードウェア・デバイスを有する。「通信媒体」は、必ずしもそれだけに限定されるわけではないが、ハードウェア又はソフトウェアがその媒体を介してデータを伝送できる任意の物理媒体、光媒体、電磁気媒体、又はその他の媒体を含む。説明上例示的なネットワーク100は、クライアント・コンピュータ1 104、クライアント・コンピュータ2 106、クライアント・コンピュータ3 108、クライアント・コンピュータ4 110、ルータ1 122、ルータ2 120、サーバ1 132、サーバ2 134、サーバ3 136、サーバ4 138、及びサーバ5 140を含む限られた数のノードだけを有する。第1のネットワーク接続102は、ネットワーク・ノード104〜122間での通信を可能にする上で必要な全てのハードウェア、ソフトウェア、及び通信媒体を有する。第2のネットワーク接続130は、ネットワーク・ノード132〜140間での通信を可能にする上で必要な全てのハードウェア、ソフトウェア、及び通信媒体を有する。クラスタ150は、第2のネットワーク接続130、サーバ1 132、サーバ2 134、サーバ3 136、サーバ4 138、及びサーバ5 140を有する。以下の文脈で特に明記しない限り、全てのネットワーク・ノードは、公衆利用可能なプロトコル又はメッセージング・サービスを使用し、第1のネットワーク接続102及び第2のネットワーク接続130を介して相互に通信する。
動的リバランサ(DR)200は、典型的には図2のストレージ202として概略的に示されるストレージ内に配置される。本明細書で使用される限り「ストレージ」という用語は、必ずしもそれだけに限定されるわけではないが、コンピュータがデータ又はソフトウェアを任意の期間その内部で記憶することができる、電気回路、磁気ディスク、光ディスクのような任意の揮発性媒体又は永続性媒体を含む。単一のストレージは複数の媒体を包含することができ、あるいは複数の媒体に分散させることができる。それ故、図2は単に説明の便宜上示されるものであり、必ずしもストレージ202の特定の物理的な実施形態が反映されているわけではない。ストレージ202は、サーバ・クラスタ150の各サーバ内に所在するように示されているが、サーバ・クラスタ150内に分散させることもできる。図3は、プラグ・イン260をそれ自体の内部に含むルータ・ストレージ250を示している。ルータ・ストレージ250は、ネットワーク100内の各ルータに接続することも、ネットワーク100の各ルータ内に所在させることもできる。本明細書で使用される限り「ルータ」は、クライアント要求をサーバ・クラスタ内のサーバに配信する働きをする任意のソフトウェア、ハードウェア、又はソフトウェアとハードウェアの組合せを指す。
DR 200は、構成コンポーネント(CC)300、統計コンポーネント(SC)400、管理コンポーネント(MC)500、分析コンポーネント(AC)600、及びフィルタ・コンポーネント(FC)700を有しており、これらの各コンポーネントが連動してサーバ・クラスタ150のようなサーバ・クラスタ内のセッション・ロード・バランシングを実現する。DR 200は、セッション・テーブル220へのアクセスも行う。
CC 300は、クラスタ内の各サーバを監視し、クラスタ内の各サーバがそれぞれの構成に関する実時間情報を受信することができるように、それらの各サーバに構成情報を実時間で送信する。構成情報としては、サーバがオン・ラインであるのかそれともオフ・ラインであるのかを示すデータ、各サーバ上にインストールされているアプリケーションを示すデータ、及び各サーバに割り当てられる「比重」を示すデータが挙げられる。図4を参照すると、CC 300は、構成情報310を初期化するステップ302から開始し、当該構成情報をクラスタ内の他の各サーバに送信する(ステップ320)。CC 300は、クラスタ330を監視し、クラスタ330の構成が変更されているかどうかを判定する(ステップ340)。構成情報310の変更が検出された場合には、CC 300は、構成情報310を更新し(ステップ360)、ステップ320に進む。変更が検出されない場合には、CC 300は、処理を続行すべきかどうかを判定する(ステップ350)。CC 300は、続行すべきと判定した場合にはステップ330に進み、続行すべきでないと判定した場合には処理を終了する(ステップ370)。
SC 400は、各サーバ上のメモリ内のHTTPセッション数を含めた、クラスタ内の各サーバに関する実時間の統計情報の受信及び登録を行う。図5を参照すると、SC 400は、ステップ402から開始し、サーバ・クラスタの監視を行う(ステップ410)。SC 400は、サーバ・クラスタ上の各サーバから統計情報を受信し(ステップ420)、当該統計情報をMC 500からアクセス可能な形で(図6参照)登録する(ステップ430)。SC 400は、処理を続行すべきかどうかを判定し(ステップ440)、続行すべきと判定した場合にはステップ410に進む。続行すべきでないと判定した場合には、SC 400は処理を終了する(ステップ450)。
MC 500は、CC 300から構成情報を収集し、SC 400から統計情報を収集し、当該情報をAC 600に送信する(図7参照)。図6を参照すると、MC 500は、ステップ502から開始し、CC 300から構成情報を収集し(ステップ510)、当該構成情報をAC 600に送信する(ステップ512)。MC 500は、SI 400から構成情報を収集し(ステップ514)、当該構成情報をAC 600に送信する(ステップ516)。MC 500は、セッションを移動するのに安全なタイミングかどうかを問う照会がFC 700から(図8参照)受信されたかどうかを判定する(ステップ518)。そのような照会が受信された場合には、MC 500は、移動すべきセッションに関するセッション情報がサーバ・クラスタ内の他のサーバから検索可能な状態を保証した上で(ステップ520)、当該セッションを移動するのに安全なタイミングであることをFC 700に通知する(ステップ522)。MC 500は、処理を続行すべきかどうかを判定し(ステップ540)、続行すべきと判定した場合にはステップ510に進み、続行すべきでないと判定した場合には処理を終了する(ステップ550)。
AC 600は、上記の構成情報及び統計情報を使用して、セッションが存在する場合にはどのセッションを移動すべきか判定する。AC 600は、ステップ602から開始し、CC 300から構成情報を受信し(ステップ610)、SC 400から統計情報を受信する(ステップ612)。AC 600は、サーバ・クラスタの構成変更の有無を判定する(ステップ614)。構成変更としては、必ずしもそれだけに限定されるわけではないが、新しいサーバが追加されたこと、新しいアプリケーションがクラスタ内のサーバのいずれかにインストールされたこと、又はサーバに付与されている重みがロード・バランシングの目的で変更されたことが挙げられる。構成変更が検出された場合には、AC 600はステップ618に進む。構成変更が検出されない場合には、AC 600は、FC 700からの要求が受信されたかどうかを判定する(ステップ616)。要求が受信された場合には、AC 600は、構成情報及び統計情報の分析を行い(ステップ618)、セッションを転送すべきかどうかを判定する(620)。セッションを転送すべきと判定した場合には、AC 600は、転送命令をFC 700に送信し、ステップ624に進む。ステップ616又はステップ618で負の判定がなされた場合には、AC 600はステップ624に進む。ステップ624で、AC 600は処理を続行すべきかどうかを判定し、続行すべきと判定した場合にはステップ610に進み、続行すべきでないと判定した場合には処理を終了する(ステップ626)。
FC 700は、ステップ702から開始し、サーバ・クラスタ宛てのクライアント要求を代行受信する(ステップ710)。FC 700は、フィルタ要求をAC 600に送信すべきかどうかを判定し(ステップ712)、送信すべきと判定した場合にはフィルタ要求をAC 600に送信する(ステップ716)。送信すべきでないと判定した場合には、FC 700はクライアント要求を通過させ、当該クライアント要求をサーバ・クラスタに到達させ(ステップ714)、ステップ726に進む。FC 700が進行中のアクティブ・セッション内の各要求を通過させると、新しいセッションに関するフィルタ要求が送出されることになる。しかしながら、FC 700は、他の手法で構成されてもよい。例えば、FC 700は、クライアント要求の宛先となるアプリケーションが許容限界内で動作していることを判定してもよく、あるいは当該アプリケーションがロード・バランシング要件から除外されることを判定してもよい。それ故、セッションの分析を行う必要がない場合には、フィルタを用いて、各要求がウェブ・アプリケーションを介してクライアントに到達するようにすることが可能となる。FC 700は、AC 600から転送命令が受信されたかどうかを判定する(ステップ718)。受信された場合には、FC 700は、対応するクライアント要求にクッキーを追加し(ステップ720)、当該要求を新しいサーバに送信する(ステップ722)。クッキーは、セッション内の後続の要求を新しいサーバに送信するようクライアントに命令するリダイレクト・コマンドを含む。FC 700は、転送が実行されたのと同じクライアント及びセッションに由来する要求が受信されたかどうかを判定し(ステップ724)、当該要求が受信された場合にはステップ722に進み、当該要求を新しいサーバに送信する。当該要求が受信されない場合には、FC 700は別の要求が受信されたかどうかを判定し(ステップ726)、別の要求が受信された場合にはステップ712に進み、別の要求が受信されない場合には処理を終了する(ステップ730)。ステップ724から、FC 700は、クライアントがリダイレクト・コマンドを受信し、各要求を新しいサーバに送信し始めるまで、セッション内のクライアント要求を新しいサーバにリダイレクトし続ける。
一代替実施形態では、ルータ・プラグ・イン・コンポーネント(PI)800が、ルータにおけるFC 700の機能の一部を実現する。特に、PI 800は、リダイレクト送信コマンドを伴うクッキーがクライアントに送信されないようにする。図9を参照すると、PI 800はステップ802から開始し、サーバ・クラスタからの応答を監視する(ステップ810)。リダイレクト・コマンドが応答に追加されていることが判定された場合には(ステップ812)、PI 800は、リダイレクト・コマンドを取り除き(ステップ814)、当該応答を転送する(ステップ816)。リダイレクト・コマンドが追加されていないことが判定された場合には、PI 800はステップ810に進む。PI 800は処理を続行すべきかどうかを判定し(ステップ818)、続行すべきと判定した場合にはステップ810に進み、続行すべきでないと判定した場合には処理を終了する(ステップ820)。
以上、本発明の好ましい一形態を添付の図面に表示し上述してきたが、好ましい一形態の変形形態が当業者には明らかとなるだろう。上記の記載は例示的なものに過ぎず、本発明は、図示し本明細書に記載した特定の形態に限定されるものと解釈すべきではない。本発明の範囲は、添付の特許請求範囲の文言だけによって限定されるべきである。
サーバ・クラスタ、複数のルータ、及び複数のクライアントを有するネットワークを示す図である。 動的リバランサ・コンポーネントを含むストレージ構成を示す図である。 代替実施形態のルータ・プラグ・イン・コンポーネントを含むルータ・ストレージ構成を示す図である。 構成コンポーネントのロジックを示すフローチャートである。 統計コンポーネントのロジックを示すフローチャートである。 管理コンポーネントのロジックを示すフローチャートである。 分析コンポーネントのロジックを示すフローチャートである。 フィルタ・コンポーネントのロジックを示すフローチャートである。 ルータ・プラグ・インを利用する代替実施形態のロジックを示すフローチャートである。

Claims (11)

  1. 複数のルータ及びインターネットを介して複数のクライアント・コンピュータに接続されたサーバ・クラスタ全体のセッションを管理する装置であって、
    前記サーバ・クラスタのサーバ内のストレージに所在するフィルタ・プログラムを有し、前記フィルタ・プログラムは、前記サーバ・クラスタ内の第1のサーバ宛てのクライアント要求を代行受信することと、フィルタ要求を分析コンポーネントに送信することと、を担当し、更に、セッションを第2のサーバに転送する命令を受信することと、前記クライアント要求にリダイレクト・コマンドを追加し、当該クライアント要求を第2のサーバに転送することと、を担当する、
    装置。
  2. 前記分析コンポーネントは、構成情報及び統計情報を使用して前記セッションの転送命令を送信すべきかどうかを判定する、請求項1に記載の装置。
  3. 構成情報を前記サーバ・クラスタ内の前記各サーバに送信するように動作可能な構成コンポーネント
    を更に有する、請求項1に記載の装置。
  4. 前記サーバ・クラスタを監視し、統計情報の受信及び登録を行うように動作可能な統計コンポーネント
    を更に有する、請求項1に記載の装置。
  5. 構成情報及び統計情報を収集し、前記構成情報及び前記統計情報を前記分析コンポーネントに送信するように動作可能な管理コンポーネント
    を更に有する、請求項1に記載の装置。
  6. 前記管理コンポーネントは更に、移動すべきセッションに関するセッション情報が前記サーバ・クラスタ内の前記複数のサーバから検索可能な状態を保証するように動作可能である、請求項1に記載の装置。
  7. コンピュータ実行方法であって、
    サーバ・クラスタに接続されたストレージ内に所在するフィルタ・プログラムを使用し、前記サーバ・クラスタ内の第1のサーバ宛てのクライアント要求をルータによって代行受信し、フィルタ要求を分析プログラムに送信するステップと、
    前記分析プログラムからの命令の受信に応じて、リダイレクト・コマンドを前記クライアント要求に追加し、当該クライアント要求を前記分析コンポーネントによって選択された第2のサーバに送信するステップと、
    を有する方法。
  8. 構成情報を受信するステップと、
    統計情報を受信するステップと、
    管理プログラムを使用し、前記構成情報及び前記統計情報を収集し、前記構成情報及び前記統計情報を前記分析プログラムに送信するステップと、
    を更に有する、請求項7に記載のコンピュータ実行方法。
  9. 前記管理プログラムは、
    移動すべきセッションに関するセッション情報が前記サーバ・クラスタ内の前記複数のサーバから検索可能な状態を保証するステップ
    を更に有する、請求項7に記載のコンピュータ実行方法。
  10. それ自体がコンピューティング装置上で実行されたときに、請求項7乃至9のいずれか一項に記載のステップを全て実行するプログラム・コードを有するコンピュータ・プログラム。
  11. 複数のルータ及びインターネットを介して複数のクライアント・コンピュータに接続されたサーバ・クラスタを有するネットワークであって、前記サーバ・クラスタの各サーバにはフィルタ・プログラムが記憶されており、前記フィルタ・プログラムは、前記サーバ・クラスタ内の第1のサーバ宛てのクライアント要求を代行受信することと、フィルタ要求を分析コンポーネントに送信することと、を担当し、更に、セッションを第2のサーバに転送する命令を受信することと、前記クライアント要求にリダイレクト・コマンドを追加し、当該クライアント要求を第2のサーバに転送することと、を担当する、ネットワーク。
JP2008520825A 2005-07-13 2006-06-20 ネットワークに接続されたサーバ・クラスタ内のクライアント・セッションの動的リバランシングを行う方法及びシステム Active JP5179359B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/180,072 2005-07-13
US11/180,072 US8909782B2 (en) 2005-07-13 2005-07-13 Method and system for dynamically rebalancing client sessions within a cluster of servers connected to a network
PCT/EP2006/063334 WO2007006625A1 (en) 2005-07-13 2006-06-20 Method and system for dynamically rebalancing client sessions within a cluster of servers connected to a network

Publications (2)

Publication Number Publication Date
JP2009501373A true JP2009501373A (ja) 2009-01-15
JP5179359B2 JP5179359B2 (ja) 2013-04-10

Family

ID=36754723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008520825A Active JP5179359B2 (ja) 2005-07-13 2006-06-20 ネットワークに接続されたサーバ・クラスタ内のクライアント・セッションの動的リバランシングを行う方法及びシステム

Country Status (5)

Country Link
US (3) US8909782B2 (ja)
EP (1) EP1908251A1 (ja)
JP (1) JP5179359B2 (ja)
CN (1) CN101218804B (ja)
WO (1) WO2007006625A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012063478A1 (ja) * 2010-11-10 2012-05-18 株式会社日立製作所 セッション管理方法、セッション管理システム及びプログラム

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380854B2 (en) 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US7343413B2 (en) 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US8806053B1 (en) 2008-04-29 2014-08-12 F5 Networks, Inc. Methods and systems for optimizing network traffic using preemptive acknowledgment signals
US8566444B1 (en) 2008-10-30 2013-10-22 F5 Networks, Inc. Methods and system for simultaneous multiple rules checking
US10157280B2 (en) 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
US8868961B1 (en) 2009-11-06 2014-10-21 F5 Networks, Inc. Methods for acquiring hyper transport timing and devices thereof
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8908545B1 (en) 2010-07-08 2014-12-09 F5 Networks, Inc. System and method for handling TCP performance in network access with driver initiated application tunnel
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US9083760B1 (en) 2010-08-09 2015-07-14 F5 Networks, Inc. Dynamic cloning and reservation of detached idle connections
US8630174B1 (en) 2010-09-14 2014-01-14 F5 Networks, Inc. System and method for post shaping TCP packetization
US8886981B1 (en) 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US8804504B1 (en) 2010-09-16 2014-08-12 F5 Networks, Inc. System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device
US8959571B2 (en) 2010-10-29 2015-02-17 F5 Networks, Inc. Automated policy builder
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
US8627467B2 (en) 2011-01-14 2014-01-07 F5 Networks, Inc. System and method for selectively storing web objects in a cache memory based on policy decisions
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US9578126B1 (en) 2011-04-30 2017-02-21 F5 Networks, Inc. System and method for automatically discovering wide area network optimized routes and devices
US9246819B1 (en) * 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
WO2013163648A2 (en) 2012-04-27 2013-10-31 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US9167041B2 (en) 2012-06-01 2015-10-20 International Business Machines Corporation Maintaining session initiation protocol application session affinity in SIP container cluster environments
TWI505682B (zh) * 2012-11-01 2015-10-21 Ind Tech Res Inst 一種具高度適應性交談管理機制之遠端管理系統
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9473572B2 (en) * 2013-10-14 2016-10-18 International Business Machines Corporation Selecting a target server for a workload with a lowest adjusted cost based on component values
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
CN104052796A (zh) * 2014-04-23 2014-09-17 小米科技有限责任公司 处理插件的方法、装置、系统及终端
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
CN104539551B (zh) * 2014-12-22 2017-11-17 清华大学 路由交换平台虚拟服务迁移方法
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
WO2017042813A1 (en) 2015-09-10 2017-03-16 Vimmi Communications Ltd. Content delivery network
US10243854B2 (en) 2015-12-09 2019-03-26 International Business Machines Corporation Persistent connection rebalancing
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US11876684B1 (en) * 2018-05-22 2024-01-16 Amazon Technologies, Inc. Controlled cross-cell migration of data in cell-based distributed computing architecture
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951694A (en) * 1995-06-07 1999-09-14 Microsoft Corporation Method of redirecting a client service session to a second application server without interrupting the session by forwarding service-specific information to the second server
JP2003271477A (ja) * 2002-03-14 2003-09-26 Ibm Japan Ltd セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム
WO2005017750A2 (en) * 2003-08-14 2005-02-24 Oracle International Corporation Transparent session migration across servers

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US187871A (en) 1877-02-27 Improvement in instruments for draftsmen
US6886035B2 (en) * 1996-08-02 2005-04-26 Hewlett-Packard Development Company, L.P. Dynamic load balancing of a network of client and server computer
EP1049307A1 (en) * 1999-04-29 2000-11-02 International Business Machines Corporation Method and system for dispatching client sessions within a cluster of servers connected to the World Wide Web
US6748414B1 (en) * 1999-11-15 2004-06-08 International Business Machines Corporation Method and apparatus for the load balancing of non-identical servers in a network environment
WO2001040903A2 (en) * 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for enhancing operation of a web server cluster
US6560717B1 (en) * 1999-12-10 2003-05-06 Art Technology Group, Inc. Method and system for load balancing and management
US6865605B1 (en) * 2000-10-04 2005-03-08 Microsoft Corporation System and method for transparently redirecting client requests for content using a front-end indicator to preserve the validity of local caching at the client system
US20030074467A1 (en) * 2001-10-11 2003-04-17 Oblak Sasha Peter Load balancing system and method for data communication network
JP3898498B2 (ja) * 2001-12-06 2007-03-28 富士通株式会社 サーバ負荷分散システム
US8856236B2 (en) * 2002-04-02 2014-10-07 Verizon Patent And Licensing Inc. Messaging response system
US7953860B2 (en) * 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
US20050086342A1 (en) * 2003-09-19 2005-04-21 Andrew Burt Techniques for client-transparent TCP migration
US7814210B1 (en) * 2005-04-29 2010-10-12 Network Appliance, Inc. Non-disruptive server replacement for server-based clients

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951694A (en) * 1995-06-07 1999-09-14 Microsoft Corporation Method of redirecting a client service session to a second application server without interrupting the session by forwarding service-specific information to the second server
JP2003271477A (ja) * 2002-03-14 2003-09-26 Ibm Japan Ltd セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム
WO2005017750A2 (en) * 2003-08-14 2005-02-24 Oracle International Corporation Transparent session migration across servers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012063478A1 (ja) * 2010-11-10 2012-05-18 株式会社日立製作所 セッション管理方法、セッション管理システム及びプログラム

Also Published As

Publication number Publication date
EP1908251A1 (en) 2008-04-09
US8909782B2 (en) 2014-12-09
US20150058411A1 (en) 2015-02-26
CN101218804B (zh) 2013-03-06
CN101218804A (zh) 2008-07-09
JP5179359B2 (ja) 2013-04-10
US20070016662A1 (en) 2007-01-18
WO2007006625A1 (en) 2007-01-18
US9917890B2 (en) 2018-03-13
US20180084041A1 (en) 2018-03-22
US11363097B2 (en) 2022-06-14

Similar Documents

Publication Publication Date Title
JP5179359B2 (ja) ネットワークに接続されたサーバ・クラスタ内のクライアント・セッションの動的リバランシングを行う方法及びシステム
US11736560B2 (en) Distributed network services
US10791168B1 (en) Traffic aware network workload management system
US8219693B1 (en) Providing enhanced access to stored data
CN104618164B (zh) 云计算平台应用快速部署的管理方法
US7734778B2 (en) Distributed intelligent virtual server
CN108027805B (zh) 数据网络中的负载分发
CA2543753C (en) Method and system for accessing and managing virtual machines
US7844713B2 (en) Load balancing method and system
TW444458B (en) Load balancing cooperating cache servers by shifting forwarded requests
US8380843B2 (en) System and method for determining affinity groups and co-locating the affinity groups in a distributing network
US7962635B2 (en) Systems and methods for single session management in load balanced application server clusters
US7685289B2 (en) Method and apparatus for proxying initial client requests to support asynchronous resource initialization
KR20010088742A (ko) 분산처리 및 피어 대 피어 통신을 이용한 네트워크 상의정보전송 병렬화 방법
JP2002140202A (ja) 情報配信システムおよびその負荷分散方法
CN108881348A (zh) 服务质量控制方法、装置和存储服务器
US9848060B2 (en) Combining disparate applications into a single workload group
JP2012103879A (ja) セッション管理方法、セッション管理システム及びプログラム
US10700925B2 (en) Dedicated endpoints for network-accessible services
WO2021120633A1 (zh) 一种负载均衡方法及相关设备
CN113994645A (zh) 自动复制api调用以分离数据中心
US7103889B2 (en) Method, system, and article of manufacture for agent processing
KR20030014513A (ko) 서버 부하의 분산을 위한 클라이언트 데이터 공유 시스템및 그 방법
JP2004064284A (ja) P2pネットワークのトラヒック制御方法及び装置並びにプログラム及び記録媒体
Chen et al. Design and implementation of server cluster dynamic load balancing in virtualization environment based on OpenFlow

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130109

R150 Certificate of patent or registration of utility model

Ref document number: 5179359

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150