(57)【要約】  アプリケーションサーバー及び他のシステムにおいて要求をクラスター化トンネリングするシステム及び方法が提供される。このシステムは、クライアント、複数のメンバーを有するクラスター、及びプロキシーを備えている。クラスターは、そのメンバーの内部アドレスをアドバタイズしない。というのは、クライアントがそのメンバーへの直接的な接続を試みることがあるからである。むしろ、クライアントは、トンネリングレイヤを含むように構成され、その中にプロキシーアドレスがセットされる。クラスターメンバーのアドバタイズされたアドレスは、次いで、クライアントにおいてヘッダーにセットされる。ランタイム中に、クライアントは、以前のように、プロキシーに接続されるが、ここでは、その内部情報を使用して、適切なクラスターメンバーに接続するか又はそれと通信する。一実施形態によれば、クライアントは、クッキーをセットし、これは、次いで、プロキシーに送信される。プロキシーは、クッキーを適切なクラスターメンバー情報と共にリライトし、この情報を使用して、要求を適切なサーバーへトンネリングする。
2007538341.tif 000002
【特許請求の範囲】
【請求項１】
プロキシーで要求をクラスター化トンネリングするシステムにおいて、
複数のクラスターメンバーを含むクラスターと、
クライアントから要求を受け取って、それらの要求を前記クラスターのメンバーへルーティングするためのプロキシーと、
を備え、前記プロキシーは、クライアントからのクッキーであって、そのクライアントと共に使用されるべき行先クラスターメンバーに関する情報を指定するようなクッキーを受け取り、次いで、前記クライアントからの後続する要求を前記情報に基づいてルーティングする、
というようにしたシステム。
【請求項２】
前記クラスターメンバーは、各クラスターメンバーを識別する個別のＩＯＲをアドバタイズする、請求項１に記載のシステム。
【請求項３】
クライアントは、クラスターメンバーに関する前記ＩＯＲ情報を受け取り、この情報を使用して、前記クッキーを生成する、請求項２に記載のシステム。
【請求項４】
プロキシーで要求をクラスター化トンネリングする方法において、
複数のクラスターメンバーを含むクラスターを用意するステップと、
プロキシーにおいてクライアントから、そのクライアントと共に使用されるべき行先クラスターメンバーに関する情報を指定するクッキーを受け取るステップと、
前記クライアントからプロキシーにおいて後続する要求を受け取って、それらの要求を前記情報で指定される前記クラスターのメンバーへルーティングするステップと、
を備えた方法。
【請求項５】
前記クラスターメンバーは、各クラスターメンバーを識別する個別のＩＯＲをアドバタイズする、請求項４に記載の方法。
【請求項６】
クライアントは、クラスターメンバーに関する前記ＩＯＲ情報を受け取り、この情報を使用して、前記クッキーを生成する、請求項５に記載の方法。
【請求項７】
クライアントとクラスターとの間で要求をクラスター化トンネリングするプロキシーにおいて、
クライアントから要求を受け取って、それらの要求をクラスターのメンバーへルーティングするためのプロキシーを備え、
前記プロキシーは、クライアントからのクッキーであって、そのクライアントと共に使用されるべき行先クラスターメンバーに関する情報を指定するクッキーを受け取り、次いで、前記クライアントからの後続する要求を前記情報に基づいてルーティングする、
というようにしたプロキシー。
【請求項８】
前記クラスターメンバーは、各クラスターメンバーを識別する個別のＩＯＲをアドバタイズする、請求項７に記載のプロキシー。
【請求項９】
前記プロキシーは、前記クッキーを使用して、クライアント要求を前記ＩＯＲ情報へマップする、請求項８に記載のプロキシー。
【請求項１０】
クライアントとクラスターとの間で要求をクラスター化トンネリングするのに使用するクライアントにおいて、
クラスターメンバーに関するＩＯＲ情報を受け取り、この情報を使用して、クッキーを生成し、これを、次いで、プロキシーへ送信するようなトンネリングレイヤを備え、
前記トンネリングレイヤは、前記プロキシーを経て前記クラスターメンバーへ要求を通信する、
というようにしたクライアント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、アプリケーションサーバー、メッセージングシステム及びトランザクションベースシステムに係り、より詳細には、これらのシステムにおいて要求をクラスター化トンネリングするシステム及び方法に係る。
【０００２】
版権の警告：本特許文献の開示の一部分は、版権保護を受ける資料を含んでいる。版権所有者は、誰かが特許文書又は特許開示を特許及び商標庁の特許ファイル又は記録に現われるように複写再現することに異議を唱えるものではなく、全ての版権は何であれ保存されるものとする。
【０００３】
優先権の請求：
参考としてここに援用するアンドリュー・ピパーによる２００４年５月１９日に出願された「SYSTEM AND METHOD FOR CLUSTERED TUNNELING OF REQUESTS IN APPLICATION SERVERS AND TRANSACTION-BASED SYSTEMS」と題する米国プロビジョナル特許出願第６０／５７２，６４４号（代理人ドケット番号：ＢＥＡＳ−０１５６４ＵＳ０）。
参考としてここに援用するアンドリュー・ピパーによる２００５年５月１６日に出願された「SYSTEM AND METHOD FOR CLUSTERED TUNNELING OF REQUESTS IN APPLICATION SERVERS AND TRANSACTION-BASED SYSTEMS」と題する米国特許出願（代理人ドケット番号：ＢＥＡＳ−０１５６４ＵＳ１）。
【背景技術】
【０００４】
典型的なクラスター化企業レベルアプリケーションサーバー環境では、クライアントがInternet Interoperability Protocol（ＩＩＯＰ）を使用してクラスターにアクセスすることができる。図１は、このようなクラスター化システムの一実施例を示す。クラスター１００は、多数のサーバー又はクラスターメンバーＣ１  １０２、Ｃ２  １０４、Ｃ３  １０６を備え、その各々は、サーバー名又はアドレスを指定するオブジェクト要求（ＩＯＲ）、及びポート識別子により識別することができる。クライアント１０８は、トンネル化ＩＩＯＰを使用してクラスターにＩＩＯＰ要求１１０をなす。問題は、クライアントがクラスターに直接通信し且つプロキシーが含まれないときしか、これが機能しないことである。図１に示すように、プロキシー１１４が含まれる場合は、状態が更に複雑になる。
【０００５】
ハードウェア負荷バランサーであるプロキシーは、要求を特定のサーバーへルーティングすることができない。それらは、サーバーをランダムに取り上げて、ある形態の「スティッキネス(stickiness)」をｈｔｔｐヘッダー情報に使用することしかできない。クライアント側のクラスター化は、特定のサーバーにルーティングする能力に依存する。
【０００６】
プロキシーは、一般に、ネットワークアドレス変換（ＮＡＴ）を行い、これは、クラスターメンバー（ＩＯＲ）が、クラスターメンバーの実際の外部アドレスではなく、プロキシーのアドレスをアドバタイズすることを要求する。従って、図１に示す実施例では、クラスターメンバーＣ１からＣ３の各々が個別のアドレス及びポートを有するが、プロキシーは、単一のアドレス及びポートをクライアントにアドバタイズすることしかできない。
【０００７】
サインされていないアプレットは、アクセスできるサーバーへの接続しかオープンできない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
企業全体にわたり効率的な負荷バランス及びフェイルオーバーを与えるために、トンネル化ＩＩＯＰクライアントがクラスター化環境で機能できるようなメカニズムが要望される。
【課題を解決するための手段】
【０００９】
本発明の実施形態によれば、アプリケーションサーバー及び他のシステムにおいて要求をクラスター化トンネリングするシステム及び方法が提供される。このシステムは、クライアント、複数のメンバーを有するクラスター、及びプロキシーを備えている。クラスターは、そのメンバーの内部アドレスをアドバタイズしない。というのは、クライアントがそのメンバーへの直接的な接続を試みることがあるからである。むしろ、クライアントは、トンネリングレイヤを含むように構成され、その中にプロキシーアドレスがセットされる。クラスターメンバーのアドバタイズされたアドレスは、次いで、クライアントにおいてヘッダーにセットされる。ランタイム中に、クライアントは、以前のように、プロキシーに接続されるが、ここでは、その内部情報を使用して、適切なクラスターメンバーに接続するか又はそれと通信する。一実施形態によれば、クライアントは、クッキーをセットし、これは、次いで、プロキシーに送信される。プロキシーは、クッキーを適切なクラスターメンバー情報と共にリライトし、この情報を使用して、要求を適切なサーバーへトンネリングする。
【発明を実施するための最良の形態】
【００１０】
本発明の実施形態によれば、アプリケーションサーバー及び他のシステムにおいて要求をクラスター化トンネリングするシステム及び方法が提供される。このシステムは、クライアント、複数のメンバーを有するクラスター、及びプロキシーを備えている。クラスターは、そのメンバーの内部アドレスをアドバタイズしない。というのは、クライアントがそのメンバーへの直接的な接続を試みることがあるからである。むしろ、クライアントは、トンネリングレイヤを含むように構成され、その中にプロキシーアドレスがセットされる。クラスターメンバーのアドバタイズされたアドレスは、次いで、クライアントにおいてヘッダーにセットされる。ランタイム中に、クライアントは、以前のように、プロキシーに接続されるが、ここでは、その内部情報を使用して、適切なクラスターメンバーに接続するか又はそれと通信する。一実施形態によれば、クライアントは、クッキーをセットし、これは、次いで、プロキシーに送信される。プロキシーは、クッキーを適切なクラスターメンバー情報と共にリライトし、この情報を使用して、要求を適切なサーバーへトンネリングする。
【００１１】
ハードウェア負荷バランサーであるプロキシーに伴う主たる問題は、要求を特定のサーバーへルーティングできないことである。それらは、サーバーをランダムに取り上げて、ある形態の「張り付き性」をｈｔｔｐヘッダー情報に使用することしかできない。クライアント側のクラスター化は、特定のサーバーにルーティングする能力に依存する。更に、プロキシーは、一般に、ネットワークアドレス変換（ＮＡＴ）を行い、これは、クラスターメンバー（ＩＯＲ）が、クラスターメンバーの実際の外部アドレスではなく、プロキシーのアドレスをアドバタイズすることを要求する。又、サインされていないアプレットは、アクセスできるサーバーへの接続しかオープンできない。この問題に対して、次の３つの解決策が提案される。
プロキシーを使用して、クライアントに向けられた負荷バランシング及びフェイルオーバーを実行する；
サーバー側の負荷バランシング及びフェイルオーバーを実行する；及び
ＨＴＴＰ４００を経て、クライアント側の負荷バランシングを、フェイルオーバーと共に実行する。
【００１２】
プロキシー負荷バランシングは、実際のアドレス情報を帯域外で搬送しそしてプロキシーにより作用を与えることを必要とする。ほとんどの負荷バランサーは、ＵＲＬに向けられた負荷バランシングをサポートし、従って、トンネル化クライアントがアドレス情報をＵＲＬに埋め込み、負荷バランサーがその埋められた情報に基づいて要求をルーティングすることができる。これは、アプリケーションサーバーにおいてプラグインを必要としない付加的なプロパティを有する。むしろ、各アプリケーションサーバーは、要求を受け取る負荷バランサー又はウェブサーバーにおいて個々に構成される。
【００１３】
サーバー側及びクライアント側の両方で負荷バランスをとる状態では、要求がクラスターに送信されるか又は受信されるときにターゲットサーバーの選択がトリガーされる。プロキシーは、特定のホストへの接続を維持すると仮定されず、それが既に接続されているサーバーへ繰り返し要求を出すことしかできない。最初の要求は、任意のクラスターメンバーにランダムにルーティングされてもよいが、要求が意図されたサーバーに対するアドレス情報を搬送する。要求は、次いで、正しいサーバーに通信される。ルーティンにされるときに、要求は、プロキシーがそのサーバーへ要求を送信し続けるようにさせる適当なセッション情報で汚染される。アドレス情報は、次のものを含む多数の方法で搬送することができる。
【００１４】
アドレス情報をエンコードするようにＵＲＬをリライトする。この実施形態では、トンネル化要求がターゲットサーバーアドレス及びポート情報に基づいてリライトされる。例えば、プロキシーがｐｒｏｘｙｈｏｓｔ：８０に位置し、クラスターメンバーがｃｌｕｓｔｅｒ１：７００１に位置する場合には、トンネル化要求は、この要求をどのように準備すべきかについて特定の実施形態に基づいて、次のように書くことができる。
http://proxyhost:80/wls_internal/cluster1/7001/iiop又はその変形
【００１５】
別の手段は、アドレス情報をカスタムＨＴＴＰヘッダーに追加することである。
アドレス情報が与えられると、サーバー側負荷バランシング又はクライアント側負荷バランシングのいずれかにより、負荷バランス及びフェイルオーバーを達成することができる。
【００１６】
サーバー側の負荷バランシングでは、クラスターの各メンバーが、ＵＲＬ又はヘッダーのクラスター情報に基づいて要求のプロキシーとなるように構成される。従って、たとえ要求がフェイルオーバーし、負荷バランサーが新たなホストを取り上げても、その要求は依然として適切なサーバーにおいて終了となる。応答がクライアントに返送されるときには、ターゲットサーバーに対する適切なクッキーを含む。サーバーが負荷バランサーにより既にアクセスされた場合には、その後の要求が正しくルーティングされる。
【００１７】
クライアント側の負荷バランシングでは、シナリオは同様であるが、要求をルーティングするのではなく、サーバーがＨＴＴＰ４００メッセージを生じさせる。負荷バランサーがそのサーバーについて知っている場合には、それに応じてルーティングするが、そうでなければ、クライアントは、別のサーバーに到達するまで再試みを続ける。この場合には、サーバーは、プロキシーとなる必要が全くなく、クライアントが使用するための適切なクッキー情報をセットできればよい。
【００１８】
図２は、本発明の実施形態により要求のクラスター化トンネリングを与えるクラスター化システムの一実施例を示す。図２に示すように、クラスター１２０は、上述したように、多数のクラスターメンバー又はサーバー１２２、１２４、１２６を備えている。クライアント１２８は、プロキシー１３０を経てクラスターと通信する。クラスターメンバーの各々は、そのメンバーに対する特定のアドレス情報、例えば、名前及びポートを含むＩＯＲをパブリッシュする。しかしながら、プロキシーは、サーバーの内部アドレスをアドバタイズすることができない。というのは、クライアントが、次いで、そのサーバーへの接続を試みようとするからである。むしろ、クライアントのトンネリングレイヤでは、プロキシーのアドレスのみがセットされ、従って、全ての要求がそのプロキシーへ進行する。クラスターメンバーのアドバタイズされるアドレス及びポートは、特殊なヘッダーにセットされる。クライアントは、クッキー１３４をプロキシーへ送信し（１３６）、ここで、クッキーは、ターゲットＩＯＲを指定する。クライアントが、次いで、プロキシーアドレスを使用してプロキシーへ接続すると（１３８）、プロキシーは、クッキーの情報を使用して、正しいサーバーを探索する。一実施形態では、プロキシーは、クッキーに示された指定のクラスター番号のＩＯＲに基づいてアドレスをリライトする（１４０）。
【００１９】
フェイルオーバー状態の間に、クライアントは、行先サーバーがフェイルしたという応答を得る。プロキシーは、要求を別のサーバーへ転送するように試みることができる。クライアントにおけるトンネリングレイヤは、サーバーが変化したことを検出し、次いで、フェイルオーバーコードが、この場合もプロキシーを経て、クライアントを別のサーバーへ接続する。
【００２０】
図３は、本発明の実施形態に基づき要求のクラスター化トンネリングを取り扱うプロセスのフローチャートである。図３に示すように、ステップ１５０において、クライアントは、それが通信する特定のクラスターメンバー又はサーバーに対するヘッダー情報を得る。ステップ１５２において、クライアントは、この情報と共にクッキーをプロキシーに書き込む。ステップ１５４において、プロキシーは、クラスターを行先とするクライアントからの要求を受け取る。ステップ１５６において、プロキシーは、クッキーの情報を使用して、要求を適切なＩＯＲと共にリライトする。ステップ１５８において、要求は、適切なクラスターメンバーへルーティングされる。
【００２１】
本発明は、本開示の教示に基づいてプログラムされた従来の汎用又は特殊なデジタルコンピュータ或いはマイクロプロセッサを使用して便利に実施することができる。又、ソフトウェア技術の当業者に明らかなように、熟練したプログラマであれば、本開示の教示に基づいて適当なソフトウェアコードを容易に準備することができよう。
【００２２】
ある実施形態では、本発明は、インストラクションが記憶される記憶媒体（メディア）であって、本発明のプロセスを実行するようにコンピュータをプログラムするのに使用できるコンピュータプログラム製品を備えている。記憶媒体は、フロッピー（登録商標）ディスク、光学ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、及び磁気−光学ディスクを含む任意の形式のディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気又は光学カード、ナノシステム（分子メモリＩＣを含む）、或いはインストラクション及び／又はデータを記憶するのに適した任意の形式の媒体又はデバイスを含むことができるが、これらに限定されない。
【００２３】
本発明の以上の説明は、例示の目的でなされたものである。これは、余すところのないものではなく、又は本発明を、ここに開示する正確な形態に限定するためのものでもない。前記実施形態は、本発明の原理及びその実際の応用を最も良く説明するために選択されたもので、当業者であれば、意図された特定の用途に適した種々の実施形態及び種々の変形について本発明を理解することができよう。従って、本発明の範囲は、特許請求の範囲及びその等効物により定義されるものとする。
【図面の簡単な説明】
【００２４】
【図１】要求のクラスター化トンネリングを与えないクラスター化システムを例示する図である。
【図２】本発明の実施形態に基づき要求のクラスター化トンネリングを与えるクラスター化システムを例示する図である。
【図３】本発明の実施形態に基づき要求のクラスター化トンネリングを取り扱うプロセスのフローチャートである。
【図１】
2007538341.tif 000003
【図２】
2007538341.tif 000004
【図３】
2007538341.tif 000005
【国際調査報告】
2007538341.tif 000006