JP3780507B2 - セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム - Google Patents

セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム Download PDF

Info

Publication number
JP3780507B2
JP3780507B2 JP2002070489A JP2002070489A JP3780507B2 JP 3780507 B2 JP3780507 B2 JP 3780507B2 JP 2002070489 A JP2002070489 A JP 2002070489A JP 2002070489 A JP2002070489 A JP 2002070489A JP 3780507 B2 JP3780507 B2 JP 3780507B2
Authority
JP
Japan
Prior art keywords
redirect
application
cluster
request
information
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.)
Expired - Fee Related
Application number
JP2002070489A
Other languages
English (en)
Other versions
JP2003271477A (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.)
IBM Japan Ltd
Original Assignee
IBM Japan 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 IBM Japan Ltd filed Critical IBM Japan Ltd
Priority to JP2002070489A priority Critical patent/JP3780507B2/ja
Priority to US10/389,507 priority patent/US7953790B2/en
Publication of JP2003271477A publication Critical patent/JP2003271477A/ja
Application granted granted Critical
Publication of JP3780507B2 publication Critical patent/JP3780507B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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/1034Reaction to server failures by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、Webに用いられるセッション情報の取り扱いに係り、より詳しくは、例えばサイトを移動した後にもとのサイトに戻る場合等におけるセッション情報の引継ぎ方法等に関する。
【0002】
【従来の技術】
近年、Web(World Wide Web)技術を使ったビジネスの発展に伴い、複数のWebサイトが協力してサービスを提供する形態のアプリケーションが開発されるようになっている。例えば、ユーザが保険会社のWebサイトから自分の保険を担保にして貸付を受けている銀行のサイトに移動して返済等の処理を行った後、再び保険会社のWebサイトに戻って作業を続ける、といったようなシナリオが存在する。
【0003】
これらの多くのアプリケーションシナリオでは、ユーザがサイトAからサイトBに移動し、再びサイトA(A'とする)に戻ってきたときに、AとA'との間でセッション情報が引き継がれている必要がある。通常、セッション情報は、サーバ側のメモリまたはデータベース上に格納されており、サーバ側アプリケーションは、ブラウザから送られてくるセッションIDをキーとして各ユーザ用のセッション情報にアクセスすることができる。セッションIDは、最初のセッション確立時にサーバからブラウザに送られ、以後クッキーとしてブラウザ側で保持されている。
【0004】
しかし、実際に負荷分散サーバやシングルサインオン(Single-Sign On:一度のユーザ認証を受けるだけで、アクセス権を持つサーバやディレクトリなど、許可されている全ての機能を利用できるもの)用の認証サーバと組み合わせてWebアプリケーションシステムを構成した状態では、上記のようなセッション引継ぎの仕組みが機能しない場合が生じる。
【0005】
図6は、このような問題が生じる可能性のある構成例を示した図である。図6に示す例では、自社サイト(サイトA)201、他社サイト(サイトB)211、およびブラウザ221がインターネット231を介して接続されている。この自社サイト201では、リバースプロキシ(セキュリティ確保のために全てのアクセスをプロキシサーバ経由で制御する)型の認証サーバ202と負荷分散サーバ203とを組み合わせて使用しており、ここでは、負荷分散サーバ203に振り分けられるアプリケーションサーバとして、第1Webアプリケーションサーバ204と第2Webアプリケーションサーバ205とが示されている。インターネット231を通じての要求の受け口となる認証サーバ202にはIPアドレス9.100.1.1が割り当てられているものとし、実際の処理を行う第1Webアプリケーションサーバ204と第2Webアプリケーションサーバ205には、夫々192.168.0.1と192.168.0.2のIPアドレスが割り当てられているものとする。負荷分散サーバ203は、3つのクラスタアドレス(負荷分散サーバ203が受け付ける仮想的なアドレス)192.168.1.0, 192.168.1.1, 192.168.1.2を所定のルールに従ってディスパッチしている。
【0006】
図7は、各クラスタアドレスに対するディスパッチのルールを示した図である。ここでは、クラスタアドレス192.168.1.0は、HTTP要求ごとに192.168.0.1と192.168.0.2に均等にディスパッチすることをルールとしている。また、クラスタアドレス192.168.1.1は、原則として192.168.0.1にディスパッチし、192.168.0.1がダウンしていると判断された場合には192.168.0.2にディスパッチすることをルールとしている。更に、クラスタアドレス192.168.1.2は、原則として192.168.0.2にディスパッチし、192.168.0.2がダウンしていると判断された場合には192.168.0.1にディスパッチすることをルールとしている。
【0007】
Webアプリケーションサーバへの最初の要求は、クラスタアドレス192.168.1.0経由で送られ、実アドレス192.168.0.1か192.168.0.2のどちらかにディスパッチされる。このとき、Webアプリケーションサーバ側のHTTPサーバの機能により、実アドレス192.168.0.1にディスパッチされた要求はクラスタアドレス192.168.1.1に、実アドレス192.168.0.2にディスパッチされた要求はクラスタアドレス192.168.1.2に、それぞれリダイレクト(一旦、ブラウザ側に応答を戻し再度自動的にサーバ側に要求を送ること)される。
【0008】
認証サーバ202は、外部に対してただ一つのIPアドレス(9.100.1.1)しか見せていないことから、3つのクラスタアドレスで要求を受け付けるために、図8に示すような変換を行っている。この変換は、ブラウザ221からの要求URLおよび応答のHTML中に記述されているURL全般について行われる。例えば応答HTML中のアンカータグに"/index.html"という記述があった場合には、"/cluster1/index.html"に変換されてブラウザ221に届く。このような処理を行うことにより、あるユーザからのHTTP要求が最初は均等な確率で第1Webアプリケーションサーバ204および第2Webアプリケーションサーバ205の何れかにディスパッチされ、それ以降、そのユーザからの要求は、同じサーバにディスパッチされる(片寄せされる)ことが保証され、負荷分散を行いながらセッション情報を引き継いでいくことが可能になる。ブラウザ側のIPアドレスを用いてユーザを識別しディスパッチの片寄せを行う方法もあるが、図6に示す構成のようにフロントエンドに認証サーバ202が置かれる場合には機能しない。負荷分散サーバ203からは全ての要求が認証サーバ202から送られてくるように見えるため、ユーザの識別ができないことによる。
【0009】
【発明が解決しようとする課題】
ここで、上述したような環境下において、ユーザを自社サイト201であるサイトAから他社サイト211であるサイトBに誘導し、再び自社サイト201であるサイトA'に誘導するという状況を考える。サイトBからサイトA'にユーザを導くためには、サイトBの応答HTMLファイル中にサイトA'へリンクするためのURL情報が記述されている必要があるが、提携関係にあるサイトBに予め固定のURL(9.100.1.1/cluster0)を伝えておき、HTMLに埋め込んでもらうのが一般的である。
【0010】
しかしながら、最初にサイトAで片寄せが行われている場合、クッキーは"/cluster1"や"/cluster2"といったパス情報と結びついてブラウザ221側で管理され、パス情報が一致しないURLへの要求に関しては、セキュリティ上の理由によりセッションIDがサーバ側(自社サイト201)に送付されない。仮にサイトAで9.100.1.1/cluster1に片寄せされて処理されていたセッションで、ユーザがサイトBに移動後、9.100.1.1/cluster0でサイトA'に要求を出した場合、この要求がサイトAで処理を行っていたのと同じWebアプリケーションサーバに送られたとしても、サーバ側アプリケーションでは以前のセッション情報にアクセスすることができない。ブラウザ221が9.100.1.1/cluster0と9.100.1.1/cluster1とは異なる送り先だと判断してしまい、9.100.1.1/cluster1とのやりとりで使っていたクッキー(セッションID)をサーバ側に対して送らないためである。
【0011】
かかる問題は、
・認証サーバの方式やそこに設定するセキュリティポリシィ
・負荷分散の方式や構成
・自サイト→他サイト→自サイトと移動するアプリケーションシナリオ
等の組み合わせで発生する。技術的にはこのような問題が生じない認証や負荷分散の構成の仕方も存在するが、実際には認証や負荷分散の方式は、個々のアプリケーションシナリオとの適合性を検討する以前に他の多くの制約条件(会社全体のセキュリティポリシィ、パフォーマンス要求、他社製品の仕様等々)によって決定されてしまう。ユーザID等をキーとしてWebアプリケーションサーバ側でファイルやデータベースに格納したデータを引き継ぐ方式もあるが、個々のアプリケーション毎に個別の実装が必要となってしまう。
【0012】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的とするところは、他サイトが間に入ったときのセッション引継ぎの問題をアプリケーションサーバ側で解決するための統一的な方法を提案することにある。
【0013】
【課題を解決するための手段】
かかる目的のもと、本発明は、アプリケーションサーバ側に実際の処理を行うアプリケーション(実アプリケーション)とは別に、セッションの最初の要求を受け付ける第1のリダイレクトアプリケーションと、他サイトから戻ってくるときの要求を受け付ける第2のリダイレクトアプリケーションを用意する。この第1のリダイレクトアプリケーションと第2のリダイレクトアプリケーションは、一旦、ブラウザ側に応答を戻し、再度自動的にサーバ側に要求を送るリダイレクトの処理を行い、応答をブラウザ側に返す。ブラウザ側では、応答中の記述に従って自動的に、ユーザに意識させずに、改めてサーバ側の実アプリケーション宛に要求を送信する。本発明は、このリダイレクト処理によって、実アプリケーションを起動する際のクラスタアドレスを変更し、セッション引継ぎを可能としている。また、セッションの最初の片寄せ時(実アプリケーションのセッションが開始される前)に他サイトから戻ってきたときに必要なクラスタ情報(どちらのクラスタアドレスに片寄せされたか)を記録しておくことを特徴としている。
【0014】
即ち、本発明は、負荷分散サーバを用いている自サイトから一旦、他サイトにブラウザ側が誘導され、再び自サイトへブラウザ側が誘導される際に有効なセッション情報の引継ぎ方法であって、この負荷分散サーバによるディスパッチの結果に基づくリダイレクトすべきクラスタアドレスをセットしてリダイレクト応答を生成するステップと、クラスタアドレスに片寄せされることを示すクラスタ情報をブラウザ側の識別情報ファイルにセットするステップと、リダイレクト応答を送信するステップと、クラスタアドレスに対する要求をブラウザ側から受信して実アプリケーションを実行するステップと、他サイトから自サイトに誘導されたブラウザ側から識別情報ファイルを含む要求を受信するステップと、受信した識別情報ファイルに含まれるクラスタ情報を取得するステップと、取得されたクラスタ情報に基づいて、先の自サイトに対する要求ではどのクラスタアドレスに片寄せされていたかを認識するステップと、認識されたクラスタアドレスをリダイレクト応答に記述するステップと、クラスタアドレスが記述されたリダイレクト応答をブラウザ側に送信するステップとを含んでいる。ここで、「識別情報ファイルにセットする」とは、メモリ上にセットする態様を含むものである。以下、同様である。
【0015】
また、本発明が適用されるセッション情報の引継ぎ方法は、HTTP要求を受信するステップと、動作しているサーバの設定ファイルからリダイレクトすべきクラスタ情報を読み込むステップと、HTTP要求で受信したパラメータおよびクラスタ情報を用いて実アプリケーション起動用のリダイレクト応答を作成するステップと、クラスタ情報をクッキーとしてリダイレクト応答にセットするステップと、リダイレクト応答をブラウザ側に送信するステップと、他サイトから誘導されたブラウザ側からの新たなHTTP要求を受信するステップと、新たなHTTP要求にセットされているクラスタ情報を取得するステップと、新たなHTTP要求で受信したパラメータおよび取得されたクラスタ情報を用いて新たなリダイレクト応答を作成するステップと、新たなリダイレクト応答をブラウザ側に送信するステップとを含むことを特徴としている。
【0016】
更に、本発明が適用されるセッション情報の引継ぎ方法は、受信したHTTP要求のクッキーにクラスタ情報が埋め込まれているか否かをチェックするステップと、クラスタ情報が埋め込まれている場合にはクラスタ情報を用いてリダイレクト応答を作成し、クラスタ情報が埋め込まれていない場合には設定ファイルから読み込んだ読み込みクラスタ情報を用いてリダイレクト応答を作成するステップと、クラスタ情報または読み込みクラスタ情報をクッキーとしてリダイレクト応答にセットするステップと、リダイレクト応答を送信するステップとを含むものである。上述した第1のリダイレクトアプリケーションと第2のリダイレクトアプリケーションとの機能を単一のリダイレクトアプリケーションにて機能させる場合に、上述のステップを実行することによりセッション情報の引継ぎが可能となる。
【0017】
一方、本発明が適用されるアプリケーションサーバは、受信したHTTP要求を処理し応答を返す実アプリケーションと、分配されたHTTP要求により実アプリケーションの実行に先立って起動され、最初の分配に基づくクラスタ情報に基づいてリダイレクト応答を生成すると共に、クラスタ情報をブラウザのクッキーにセットしてリダイレクト応答を送信する第1のリダイレクトアプリケーションと、実アプリケーションの実行に先立って起動され、第1のリダイレクトアプリケーションがクッキーにセットしたクラスタ情報をブラウザから受信し、このクラスタ情報に基づいてリダイレクト応答を生成すると共に、生成されたリダイレクト応答を送信する第2のリダイレクトアプリケーションとを含むものである。
【0018】
他の観点から捉えると、本発明が適用されるアプリケーションサーバは、ディスパッチされた要求に対して実際のアプリケーション処理を実行する実行手段と、この実行手段による実行に先立って、セッションの最初の要求を受け付けてリダイレクト処理を行い、リダイレクト応答をブラウザ側に返す第1のリダイレクト処理手段と、ブラウザ側が他サイトから戻ってくるときの要求に対して、実行手段による実行に先立ってリダイレクト処理を行い、リダイレクト応答をブラウザ側に返す第2のリダイレクト処理手段とを含んでいる。
【0019】
また、本発明が適用されるアプリケーションサーバは、ディスパッチされた要求に対して実アプリケーションを実行する実行手段と、この実行手段による実行に先立って、サーバ側にてリダイレクト応答を実行することにより、実アプリケーションを起動する際のクラスタアドレスを変更してセッション引継ぎを可能にするリダイレクト処理手段と、実アプリケーションのセッションが開始される前であるセッションの最初の片寄せ時に、他サイトから戻ってきたときに必要なクラスタ情報(例えば、セッションの最初の片寄せ時にどのクラスタアドレスに片寄せされたかを示す情報)を記録する記録手段を含むことを特徴としている。
【0020】
一方、本発明は、ブラウザからの要求に対して認証を行う認証サーバと、この認証サーバを経た要求をディスパッチする負荷分散サーバと、この負荷分散サーバによりディスパッチされた要求を処理するために設けられる複数のアプリケーションサーバとを含むWebサイトであって、このアプリケーションサーバは、実際にアプリケーションを実行する実アプリケーションと、ディスパッチされた最初の要求を受け付ける第1のリダイレクトアプリケーションと、ブラウザが他サイトから戻ってくるときの要求を受け付ける第2のリダイレクトアプリケーションとを含み、この第1のリダイレクトアプリケーションおよび第2のリダイレクトアプリケーションは、実アプリケーションを実行する前にリダイレクト処理を行い、要求に対するリダイレクト応答をブラウザに返すことを特徴としている。
【0021】
尚、これらの各発明は、アプリケーションサーバとして機能するコンピュータに、各機能を実現させるためのプログラムとして把握することができる。これらのプログラムは、コンピュータに実行させるプログラムをコンピュータが読取可能に記憶した記憶媒体にて提供する形態が考えられる。この記憶媒体としては、例えばフロッピーディスクやCD−ROM媒体等が該当し、フロッピーディスクドライブやCD−ROM読取装置等によってプログラムが読み取られ、フラッシュROM等にこのプログラムが格納されて実行される形態が考えられる。また、これらのプログラムは、例えば、プログラム伝送装置によってネットワークを介して提供される形態がある。このプログラム伝送装置としては、例えば、ホスト側のサーバに設けられ、プログラムを格納するメモリと、ネットワークを介してプログラムを提供するプログラム伝送手段とを備えている。更に、コンピュータ装置を顧客に対して提供する際に、装置の中にインストールされた状態にて提供される場合がある。
【0022】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて本発明を詳細に説明する。
図1は、本実施の形態が適用されるネットワークシステムの全体構成を示した図である。図1に示すネットワークシステムでは、アプリケーションを実行する自サイト10、このネットワークシステムのアプリケーションシナリオとして、ユーザを自サイト10から誘導してアクセスされる他サイト11、ネットワーク13を介して自サイト10や他サイト11にアクセスするためのユーザ側のソフトウェアであるブラウザ12、を備えている。本実施の形態におけるアプリケーションシナリオとしては、自サイト10からユーザ(ブラウザ12)を一旦、他サイト11に誘導し、再び自サイト10に誘導するという状況を考える。この自サイト10に戻る間に、他サイト11と同様な複数のサイトが間に入るアプリケーションシナリオも考えられる。
【0023】
自サイト10は、ネットワーク13経由で自サイト10にアクセスしてくるユーザの名前やパスワード等を一括管理して認証を行う認証サーバ21、アプリケーションの負荷を均衡させるために、分配処理、即ち、実行可能状態のアプリケーションから優先順位の高いものを選択して処理を割り当てるディスパッチを行う負荷分散サーバ22、個々のアプリケーションを実行するWebアプリケーションサーバ23を備えている。自サイト10には、複数のWebアプリケーションサーバ23が設けられており、負荷分散サーバ22によってディスパッチされる。
【0024】
図1に示す例では、認証サーバ21は外部に対してただ一つのIPアドレス(9.100.1.1)しか見せていない。負荷分散サーバ22は、受け付ける仮想的なアドレスであるクラスタアドレスとして、例えば3つのクラスタアドレス(192.168.1.0、192.168.1.1、192.168.1.2)を備えている。Webアプリケーションサーバ23の数が増加すれば、このクラスタアドレスの数も増加する。ブラウザ12側から見えるクラスタアドレスは、図8に示したものと同様である。ブラウザ12側から送られるクラスタアドレス9.100.1.1/cluster0、9.100.1.1/cluster1、9.100.1.1/cluster2は、内部的な3つのクラスタアドレス192.168.1.0、192.168.1.1、192.168.1.2に各々変換される。
【0025】
図1に示す2つのWebアプリケーションサーバ23は、実アドレスとして、例えば192.168.0.1および192.168.0.2が夫々割り当てられている。これらのWebアプリケーションサーバ23は、実際の処理を行うアプリケーションである実アプリケーション31、リダイレクトと呼ばれる処理を行い、一旦、応答をブラウザ12側に返すためのアプリケーションであるリダイレクトアプリケーション32を備えている。このリダイレクトアプリケーション32は、セッションの最初の要求を受け付けるアプリケーションであるリダイレクトアプリケーションA(第1のリダイレクトアプリケーション)と、他サイト11から戻ってくるときの要求を受け付けるアプリケーションであるリダイレクトアプリケーションB(第2のリダイレクトアプリケーション)が用意されている。リダイレクトアプリケーション32によって応答が返されたブラウザ12側では、応答中の記述に従って自動的に(ユーザに意識させずに)、改めてサーバ側の実アプリケーション31宛に要求を送信する。
【0026】
リダイレクトアプリケーションAは、セッションにおける最初の要求のディスパッチ結果に基づくクラスタアドレスをリダイレクト応答の中にセットすることによりディスパッチ対象の片寄せを行う。同時にどちらのクラスタアドレスに片寄せされるのかを示す情報(クラスタ情報)をブラウザ12側のクッキーにセットする。実アプリケーション31は、片寄せされたクラスタアドレス経由で起動され、実アプリケーション31用のセッションIDがブラウザ12側のクッキーにセットされる。以後、このクラスタアドレス経由で要求が送られる限り、クッキー中のセッションIDがサーバ側に送信され、セッション情報の引き継ぎが可能になる。
【0027】
他サイト11に誘導され再び自サイト10に戻ってくる場合には、他サイト11は、返す応答HTML中にリダイレクトアプリケーションBを起動するためのリンクを記述しておく。リダイレクトアプリケーションBはリダイレクトアプリケーションAがクッキーにセットしたクラスタ情報をブラウザ12から受信し、以前にどちらのクラスタアドレスに片寄せされたのかを知る。リダイレクト応答中にこのクラスタアドレスを記述することによって実アプリケーション31をこのクラスタアドレス経由で起動することができる。
【0028】
リダイレクトアプリケーションAは、他サイト11に移る前に片寄せされていたクラスタアドレスの情報を記録し、他サイト11から戻るときには、リダイレクトアプリケーションBが、この情報を利用してどちらに片寄せすべきかを決定し、クラスタアドレスを変更して実アプリケーション31を起動する。これによって自サイト10→他サイト11→自サイト10という遷移においてもセッション情報の引き継ぎが可能になる。
【0029】
負荷分散の際に、クッキーを用いてクラスタアドレスの片寄せを行う手法は既に存在するが、本実施の形態では、
・リダイレクト処理によってアプリケーションを起動する際のクラスタアドレスを変更しセッション引継ぎを可能にする。
・セッションの最初の片寄せ時(実アプリケーション31のセッションが開始される前)に他サイト11から戻ってきたときに必要なクラスタ情報(どちらのクラスタアドレスに片寄せされたか)を記録しておく。
・負荷分散サーバ22自体はIPレイヤでの処理を行う簡単な実装で実現できる。
という特徴を有している。
【0030】
尚、クラスタアドレスは、例えば、192.168.0.1といった形式のIPアドレスを言う。また、クラスタ情報は、複数のクラスタアドレスにおける、その中のどの一つかを指定する情報である。例えば、3つのクラスタアドレス192.168.0.1、192.168.0.2、192.168.0.3のどれかを指定するためにクッキーに格納するクラスタ情報としては、例えば、値が“A”か“B”か“C”をとる1文字等が使用される。
【0031】
図2は、セッションの最初の要求に対するリダイレクトアプリケーション32(リダイレクトアプリケーションA)の動作とそれに対するブラウザ12の動作を説明するための図である。
まず、図中、▲1▼クラスタアドレス192.168.1.0への要求では、ユーザ認証後にブラウザ12からURL9.100.1.1/cluster0に送られたHTTP(Hypertext Transfer Protocol:HTML文書を送受信するためのプロトコル)要求は、認証サーバ21によってクラスタアドレス192.168.1.0宛てに変換され、更に負荷分散サーバ22によって実アドレス192.168.0.1または192.168.0.2に分配される。HTTP要求はリダイレクトアプリケーション32(サーブレットまたはサーブレットから起動されるプログラム)の中のリダイレクトアプリケーションAを起動するが、その引数として実アプリケーション31(サーブレットまたはサーブレットから起動されるプログラム)を特定するための情報や実アプリケーション31のロジックが必要とする引数の情報を含んでいる。
【0032】
▲1▼のHTTP要求は、その要求が実際にディスパッチされたWebアプリケーションサーバ23上のリダイレクトアプリケーションAによって処理され、▲2▼リダイレクト応答が作成される。リダイレクトアプリケーション32によるリダイレクト処理は、HTTPのLocationヘッダ、メタ(Meta)タグを記述したHTML応答、自動実行されるJavaScriptを含んだHTML応答などによって実現可能である。
【0033】
このLocationヘッダによる応答では、リダイレクトアプリケーション32が返す応答ヘッダ部にLocationヘッダという特別なヘッダをセットする。このヘッダの値として、リダイレクト先のURLを記述しておくと、応答を受信したブラウザ12が自動的にリダイレクトを行う。メタ(Meta)タグによる応答では、リダイレクトアプリケーション32が返す応答ボディ部(HTML)にMETA HTTP-EQUIV="Refresh"を指定したメタタグを記述する。リダイレクト先URLを例えば下記に示すようなCONTENT属性に記述しておく。
< META HTTP-EQUIV="Refresh"CONTENT="URL=http://xyz.com/">
また、JavaScriptによる応答では、リダイレクトアプリケーション32が返す応答ボディ部(HTML)に、ブラウザ画面表示後直ちに実行されるようなJavaScriptを記述する。JavaScriptの中にリダイレクト先URLにジャンプするような記述を埋め込んでおく。このような方法によってリダイレクトを行うことが可能である。
【0034】
図2に示す▲2▼の処理に際して、リダイレクトアプリケーションAは、Webアプリケーションサーバ23ごとに設定ファイルに記述してあるクラスタ情報(自身がどちらのクラスタアドレスで起動されるべきものか)を読み込み、リダイレクト応答中に実アプリケーション31のクラスタアドレスを埋め込む。実アプリケーション31のロジックに必要な引数もそのままリダイレクト応答の中に埋め込まれる。また、リダイレクトアプリケーションAは、設定ファイルから読み込んだクラスタ情報をクッキーとしてリダイレクト応答のヘッダ内のSet-Cookieヘッダにセットする。リダイレクト応答が認証サーバ21を経てブラウザ12側に戻る過程でSet-Cookieに記述されているパス属性は変更され、"/cluster0"等の要求時クラスタを示す情報が追加される。パス属性は、ブラウザ12側でのプライバシィ保護のために使われる情報であり、例えば"cluster0"のパス属性をもったクッキーは9.100.1.1/cluster0/...という形式の要求にのみ付加される。
【0035】
図2に示す、▲3▼クラスタアドレス192.168.1.1または192.168.1.2への要求、では、リダイレクト応答を受信したブラウザ12により、応答の内容に従って実アプリケーション31へのHTTP要求が自動的に送信される。リダイレクトアプリケーションAによって片寄せが行われているので、要求の送信先は9.100.1.1/cluster1/...か9.100.1.1/cluster2/...となる。認証サーバ21によって、これらの宛先アドレスはそれぞれクラスタアドレス192.168.1.1または192.168.1.2に変換された後、負荷分散サーバ22によって実アドレス192.168.0.1または192.168.0.2にディスパッチされる。同時にブラウザ12では、図中の▲2▼で送られてきたクッキーの内容(値や属性)がクライアント側のメモリまたはファイルに保存される。
【0036】
図2に示す、▲4▼処理結果応答、に際し、実アプリケーション31側に対しては何ら変更を行う必要はない。実アプリケーション31は、従来どおり受信したHTTP要求を処理して応答を返す。必要に応じてセッションオブジェクトを作成し、次のHTTP要求処理に引き継ぐ情報をセットする。セッションオブジェクトを識別するためのセッションIDは、Webアプリケーションサーバ23が作成し処理結果応答におけるヘッダのSet-Cookieヘッダにセットされる。このクッキーについても認証サーバ21によりパス属性(実アプリケーション31がどちらのクラスタアドレス経由で起動されたかによって"/cluster1"または"cluster2")が追加される。セッションIDのクッキーは、結果応答を受信したブラウザ12側で保存される。以降、同一のクラスタアドレス(クッキーのパス属性が一致するアドレス)に対して送信された要求には、このセッションIDが付加されるので、サーバ側プログラムは引き続きセッション情報にアクセスすることができる。
【0037】
図3は、他サイト11に移動して戻ってくるときの要求に対するリダイレクトアプリケーション32(リダイレクトアプリケーションB)の動作とそれに対するブラウザ12の動作を説明するための図である。図2に示す▲4▼の動作の後、何回か自サイト10とブラウザ12との間で要求と応答とが繰り返される。その後、他サイト11にHTTP要求を送って他サイト11との間で要求・応答を繰り返し、他サイト11から受信したHTML中のリンクを用いて自サイト10に送信した要求が図3に示す▲5▼に相当する。
【0038】
この▲5▼クラスタアドレス192.168.1.0への要求、にて、他サイト11から指定されたURL9.100.1.1/cluster0に送られたHTTP要求は、認証サーバ21によってクラスタアドレス192.168.1.0宛てに変換され、更に、負荷分散サーバ22によって実アドレス192.168.0.1または192.168.0.2に分配される。HTTP要求はリダイレクトアプリケーションBを起動するが、その引数として、実アプリケーション31を特定するための情報や実アプリケーション31のロジックが必要とする引数の情報を含んでいる。
【0039】
この要求は、パス部分が"/cluster0"であるため、図2に示す前述の▲4▼でクッキーにセットされたセッションIDの情報がブラウザ12から送られることはない。つまり、リダイレクトアプリケーションBから、以前に自サイト10で作業していたときのセッション情報にアクセスすることはできない。しかながら、図2に示す前述▲2▼で送られたクラスタ情報のクッキーとはパス属性が一致するので、クラスタ情報は要求ヘッダにセットされてサーバ側に送られる。リダイレクトアプリケーションBは、以前のセッション情報にアクセスできるようにするためにはどのようなクラスタアドレス経由で実アプリケーション31を起動すればよいのか、を知ることができる。
【0040】
▲5▼のHTTP要求は、その要求が実際にディスパッチされたWebアプリケーションサーバ23上のリダイレクトアプリケーションBによって処理され、図3に示す、▲6▼リダイレクト応答、が作成される。リダイレクトアプリケーションBは、受信した要求ヘッダから読み込んだクラスタ情報を用いて、リダイレクト応答中に実アプリケーション31のクラスタアドレスを埋め込む。実アプリケーション31のロジックに必要な引数もそのままリダイレクト応答の中に埋め込まれる。
【0041】
リダイレクト応答を受信したブラウザ12は、応答の内容に従って実アプリケーション31へのHTTP要求を自動的に送信する。要求の送信先クラスタアドレスは、前述の▲3▼の要求時と同様、▲7▼クラスタアドレス192.168.1.0または192.168.1.1への要求、となる。そのパス情報が、図2に示す▲4▼でセットされたクッキーのパス属性と一致することにより、セッションIDが要求ヘッダにセットされてサーバ側に送られる。図3中の、▲8▼処理結果応答、では、実アプリケーション31は、受信したセッションIDをキーとしてセッションオブジェクトにアクセスし、業務ロジックを実行後、結果をブラウザ12に返している。
【0042】
次に、リダイレクトアプリケーション32における処理について説明する。
図4(a),(b)は、リダイレクトアプリケーション32にて実行される処理を示したフローチャートであり、図4(a)はリダイレクトアプリケーションAについての処理を、図4(b)はリダイレクトアプリケーションBについての処理を示している。
【0043】
図4(a)に示すように、まず、HTTP要求を受信したリダイレクトアプリケーションAは、付随するパラメータを取り出して保存する(ステップ101)。次に、リダイレクトアプリケーション32が動作している各Webアプリケーションサーバ23の設定ファイルから、リダイレクトすべきクラスタアドレスの情報を読み込む(ステップ102)。次に、リダイレクトアプリケーションAは、HTTP要求で受信したパラメータおよびクラスタアドレスの情報を用いて実アプリケーション31起動用のリダイレクト応答を作成する(ステップ103)。その後、Set-CookieヘッダをHTTP応答のヘッダ部にセットして、クッキーへのクラスタ情報の埋め込みを行う(ステップ104)。そして、HTTP応答である用意したリダイレクト応答をブラウザ12に送信して(ステップ105)、リダイレクトアプリケーションAの処理が終了する。
【0044】
リダイレクトアプリケーションBの処理では、まず、HTTP要求を受信し、付随するパラメータを取り出して保存する(ステップ111)。次に、受信したHTTP要求のヘッダ部にセットされているクッキーからクラスタアドレスの情報を取得する(ステップ112)。そして、HTTP要求で受信したパラメータおよびクラスタアドレスの情報を用いて実アプリケーション31起動用のリダイレクト応答を作成する(ステップ113)。そして、HTTP応答である用意したリダイレクト応答をブラウザ12に送信して(ステップ114)、リダイレクトアプリケーションBの処理が終了する。
【0045】
このように、本実施の形態では、サーバ側で、リダイレクト応答中に実アプリケーション31のクラスタアドレスを埋め込むことで、応答を受信したブラウザ12は、このクラスタアドレスに対して自動的に要求を送るリダイレクトを行うことができる。この「埋め込み」とは、具体的には、例えばJavaScriptやLocation等の特別なHTTPヘッダの中にクラスタアドレスを記述しておくことが挙げられる。
【0046】
また、サーバ側で、クラスタ情報をクッキーとしてリダイレクト応答のヘッダ内のSet-Cookieヘッダにセットすることによって、応答を受信したブラウザ12は、このクラスタ情報をクッキーとして、パーソナルコンピュータ(PC)内のメモリ/ディスクに格納する。以降、サーバに要求を送るときには、ブラウザ12は格納していたクラスタ情報を要求データの一部として付加する。
【0047】
図5は、リダイレクトアプリケーション32にて、リダイレクトアプリケーションAが動く場合とリダイレクトアプリケーションBが動く場合との自動判定の処理を示したフローチャートである。まず、HTTP要求を受信し、付随するパラメータを取り出して保存する(ステップ151)。次に、受信したHTTP要求のヘッダ部にクラスタ情報がクッキーとして埋め込まれているか否かをチェックし(ステップ152)、埋め込まれている場合には、ヘッダからのクラスタ情報を取得し、その情報をクラスタアドレスとして使用する(ステップ153)。クッキーとして埋め込まれていない場合には、サーバの設定ファイルからクラスタアドレスの情報を読み込む(ステップ154)。このようにして得られたクラスタアドレスの情報を用いて、実アプリケーション31起動用のリダイレクト応答を作成する(ステップ155)。ここで、受信したHTTP要求のヘッダ部にクラスタ情報を示すクッキーがセットされていたか否かを判断し(ステップ156)、セットされていない場合にはその情報をクッキーとして応答のヘッダ部にセットし(ステップ157)、HTTP応答をブラウザ12に送信して(ステップ158)、処理が終了する。
【0048】
このように、本実施の形態によれば、認証サーバ21とIPレイヤベースの負荷分散サーバ22とを組み合わせて使用するシステム構成において、自サイト10→他サイト11→自サイト10という遷移にて、自サイト10におけるセッションの引き継ぎが可能となる。リバースプロキシ型の認証サーバ21を利用したシステム構成も、自サイト10から他サイト11に移動しまた自サイト10に戻ってくるようなアプリケーションシナリオも、Webアプリケーションの高度化・複雑化に伴い、今後増加していくと予想される。また、企業のWebサイトにおいては、リライアビリティやスケーラビリティの観点から負荷分散サーバ22の使用は必須である。従って、セッション引継ぎの問題は今後もしばしば発生すると考えられ、この問題を解決できる本実施の形態における価値は非常に高い。
【0049】
尚、本実施の形態が適用されるWebサイト間(自サイト10および他サイト11)の連携シナリオについては、例えば、ユーザが保険会社のWebサイト(自サイト10)から、自分の保険を担保にして貸付を受けている銀行サイト(他サイト11)に移動して返済等の処理を行った後、再び保険会社のWebサイト(自サイト10)に戻って作業を続ける、といったようなシナリオが考えられる。かかるシナリオに際して、一旦、銀行サイト(他サイト11)に移行した後、保険会社のWebサイト(自サイト10)に遷移した場合でも、保険契約作業等を継続させることができる。
【0050】
また、例えば、ショッピングモールのサイト(自サイト10)で買い物カゴに商品を入れた状態で、一旦、クレジット会社のサイト(他サイト11)に移って引き落としの予定等を確認した後、ショッピングモールのサイト(自サイト10)に戻って購入手続きを行う等のシナリオも考えられる。このとき、本実施の形態によれば、ショッピングモールのサイト(自サイト10)が認証サーバ21とIPレイヤベースの負荷分散サーバ22とを組み合わせて使用するシステム構成にて、他サイト11からショッピングモールのサイト(自サイト10)に戻ってきたときのセッションの引き継ぎを可能とすることで、複数のサイトを遷移した後であっても円滑な作業継続が可能となる。
【0051】
更には、旅行の予約をする際に、交通機関の予約をするサイト(自サイト10)の手続き途中でホテルや宿関係のサイト(他サイト11)に移動し、予約の確認を行ってから交通機関の予約をするサイト(自サイト10)において交通機関の予約を最終的に決定する等のシナリオにも適用できる。このとき、本実施の形態によれば、交通機関の予約をするサイト(自サイト10)にて、負荷分散機能をシステム構成とする場合に、旅行の予約に関連する他サイト11に移行した後、自サイト10に遷移した場合であってもセッションの引き継ぎが可能となり、交通機関の予約をするサイト(自サイト10)にて予約作業を継続することができる。
【0052】
【発明の効果】
以上説明したように、本発明によれば、他サイトが間に入ったときのセッション引継ぎの問題を解決することができる。
【図面の簡単な説明】
【図1】 本実施の形態が適用されるネットワークシステムの全体構成を示した図である。
【図2】 セッションの最初の要求に対するリダイレクトアプリケーション(リダイレクトアプリケーションA)の動作とそれに対するブラウザの動作を説明するための図である。
【図3】 他サイトに移動して戻ってくるときの要求に対するリダイレクトアプリケーション(リダイレクトアプリケーションB)の動作とそれに対するブラウザの動作を説明するための図である。
【図4】 (a),(b)は、リダイレクトアプリケーションにて実行される処理を示したフローチャートである。
【図5】 リダイレクトアプリケーションにて、リダイレクトアプリケーションAが動く場合とリダイレクトアプリケーションBが動く場合との自動判定の処理を示したフローチャートである。
【図6】 セッション引継ぎの仕組みが機能しない場合が生じる可能性のある構成例を示した図である。
【図7】 各クラスタアドレスに対するディスパッチのルールを示した図である。
【図8】 内部的なクラスタアドレスとブラウザ側から見えるクラスタアドレスとの関係を示した図である。
【符号の説明】
10…自サイト、11…他サイト、12…ブラウザ、13…ネットワーク、21…認証サーバ、22…負荷分散サーバ、23…Webアプリケーションサーバ、31…実アプリケーション、32…リダイレクトアプリケーション

Claims (20)

  1. 負荷分散サーバを用いている自サイトから一旦、他サイトにブラウザ側が誘導され、再び当該自サイトへ当該ブラウザ側が誘導される際に有効なセッション情報の引継ぎ方法であって、
    前記負荷分散サーバによるディスパッチの結果に基づくリダイレクトすべきクラスタアドレスをセットしてリダイレクト応答を生成するステップと、
    前記クラスタアドレスに片寄せされることを示すクラスタ情報を前記ブラウザ側の識別情報ファイルにセットするステップと、
    前記リダイレクト応答を送信するステップと、
    前記クラスタアドレスに対する要求を前記ブラウザ側から受信して実アプリケーションを実行するステップと
    を含むセッション情報の引継ぎ方法。
  2. 更に、
    前記他サイトから前記自サイトに誘導された前記ブラウザ側から前記識別情報ファイルを含む要求を受信するステップと、
    受信した前記識別情報ファイルに含まれるクラスタ情報を取得するステップと、
    取得された前記クラスタ情報に基づいて、先の自サイトに対する要求ではどのクラスタアドレスに片寄せされていたかを認識するステップと
    を含む請求項1記載のセッション情報の引継ぎ方法。
  3. 更に、
    認識された前記クラスタアドレスをリダイレクト応答に記述するステップと、前記クラスタアドレスが記述された前記リダイレクト応答をブラウザ側に送信するステップと
    を含む請求項2記載のセッション情報の引継ぎ方法。
  4. HTTP要求を受信するステップと、
    動作しているサーバの設定ファイルからリダイレクトすべきクラスタ情報を読み込むステップと、
    前記HTTP要求で受信したパラメータおよび前記クラスタ情報を用いて実アプリケーション起動用のリダイレクト応答を作成するステップと、
    前記クラスタ情報をクッキーとして前記リダイレクト応答にセットするステップと、
    前記リダイレクト応答をブラウザ側に送信するステップと
    を含むセッション情報の引継ぎ方法。
  5. 更に、
    他サイトから誘導された前記ブラウザ側からの新たなHTTP要求を受信するステップと、
    前記新たなHTTP要求にセットされている前記クラスタ情報を取得するステップと、
    前記新たなHTTP要求で受信したパラメータおよび取得された前記クラスタ情報を用いて新たなリダイレクト応答を作成するステップと、
    前記新たなリダイレクト応答を前記ブラウザ側に送信するステップと
    を含むことを特徴とする請求項4記載のセッション情報の引継ぎ方法。
  6. HTTP要求を受信するステップと、
    受信した前記HTTP要求のクッキーにクラスタ情報が埋め込まれているか否かをチェックするステップと、
    前記クラスタ情報が埋め込まれている場合には当該クラスタ情報を用いてリダイレクト応答を作成し、当該クラスタ情報が埋め込まれていない場合には設定ファイルから読み込んだ読み込みクラスタ情報を用いてリダイレクト応答を作成するステップと、
    前記クラスタ情報または前記読み込みクラスタ情報をクッキーとして前記リダイレクト応答にセットするステップと、
    前記リダイレクト応答を送信するステップと
    を含むセッション情報の引継ぎ方法。
  7. 受信したHTTP要求を処理し応答を返す実アプリケーションと、
    分配されたHTTP要求により前記実アプリケーションの実行に先立って起動され、最初の分配に基づくクラスタ情報に基づいてリダイレクト応答を生成すると共に、当該クラスタ情報をブラウザのクッキーにセットして当該リダイレクト応答を送信する第1のリダイレクトアプリケーションと、
    前記実アプリケーションの実行に先立って起動され、前記第1のリダイレクトアプリケーションが前記クッキーにセットした前記クラスタ情報を前記ブラウザから受信し、当該クラスタ情報に基づいてリダイレクト応答を生成すると共に、生成された当該リダイレクト応答を送信する第2のリダイレクトアプリケーションと
    を含むアプリケーションサーバ。
  8. 前記実アプリケーションは、セッションオブジェクトを作成し、次のHTTP要求処理に引き継ぐ情報をセットすることを特徴とする請求項7記載のアプリケーションサーバ。
  9. ディスパッチされた要求に対して実際のアプリケーション処理を実行する実行手段と、
    前記実行手段による実行に先立って、セッションの最初の要求を受け付けてリダイレクト処理を行い、リダイレクト応答をブラウザ側に返す第1のリダイレクト処理手段と、
    前記ブラウザ側が他サイトから戻ってくるときの要求に対して、前記実行手段による実行に先立ってリダイレクト処理を行い、リダイレクト応答を当該ブラウザ側に返す第2のリダイレクト処理手段と
    を含むアプリケーションサーバ。
  10. 前記第1のリダイレクト処理手段は、セッションの最初の要求に対するディスパッチの結果のクラスタアドレスを前記リダイレクト応答の中にセットして片寄せを行うと共に、どのクラスタアドレスに片寄せされるのかを示すクラスタ情報を前記ブラウザ側のクッキーにセットすることを特徴とする請求項9記載のアプリケーションサーバ。
  11. 前記第2のリダイレクト処理手段は、前記第1のリダイレクト処理手段によりセットされた前記クラスタ情報を前記ブラウザ側から受信してどのクラスタアドレスに片寄せされたかを認識すると共に、前記リダイレクト応答に当該クラスタアドレスを記述することによって前記実行手段を当該クラスタアドレス経由で起動することを特徴とする請求項9記載のアプリケーションサーバ。
  12. ディスパッチされた要求に対して実アプリケーションを実行する実行手段と、
    前記実行手段による実行に先立って、サーバ側にてリダイレクト応答を実行することにより、前記実アプリケーションを起動する際のクラスタアドレスを変更してセッション引継ぎを可能にするリダイレクト処理手段と
    を含むアプリケーションサーバ。
  13. 更に、前記実アプリケーションのセッションが開始される前であるセッションの最初の片寄せ時に、他サイトから戻ってきたときに必要なクラスタ情報を記録する記録手段を含むことを特徴とする請求項12記載のアプリケーションサーバ。
  14. 前記クラスタ情報は、セッションの最初の片寄せ時にどのクラスタアドレスに片寄せされたかを示す情報であることを特徴とする請求項13記載のアプリケーションサーバ。
  15. ブラウザからの要求に対して認証を行う認証サーバと、
    前記認証サーバを経た前記要求をディスパッチする負荷分散サーバと、
    前記負荷分散サーバによりディスパッチされた要求を処理するために設けられる複数のアプリケーションサーバとを含むWebサイトであって、
    前記アプリケーションサーバは、
    実際にアプリケーションを実行する実アプリケーションと、
    ディスパッチされた最初の要求を受け付ける第1のリダイレクトアプリケーションと、
    前記ブラウザが他サイトから戻ってくるときの要求を受け付ける第2のリダイレクトアプリケーションとを含み、
    前記第1のリダイレクトアプリケーションおよび前記第2のリダイレクトアプリケーションは、前記実アプリケーションを実行する前にリダイレクト処理を行い、前記要求に対するリダイレクト応答を前記ブラウザに返すことを特徴とするWebサイト。
  16. 前記認証サーバは、前記リダイレクト応答を前記ブラウザに戻す過程で、当該リダイレクト応答にセットされたパス属性に対して前記要求時のクラスタアドレスを示す情報を追加することを特徴とする請求項15記載のWebサイト。
  17. アプリケーションサーバとして機能するコンピュータに、
    ディスパッチされた要求に対して実アプリケーションを実行する機能と、
    前記実アプリケーションによる実行に先立って、リダイレクト応答を実行することにより当該実アプリケーションを起動する際のクラスタアドレスを変更してセッション引継ぎを可能にする機能と
    を実現させるためのプログラム。
  18. 更に、前記実アプリケーションのセッションが開始される前であるセッションの最初の片寄せ時に、他サイトから戻ってきたときに必要なクラスタ情報を記録する機能を前記コンピュータに実現させるための請求項17記載のプログラム。
  19. アプリケーションサーバとして機能するコンピュータに、負荷分散サーバによるディスパッチの結果に基づくリダイレクトすべきクラスタアドレスをセットしてリダイレクト応答を生成する機能と、
    前記クラスタアドレスに片寄せされることを示すクラスタ情報を前記ブラウザ側の識別情報ファイルにセットする機能と、
    前記リダイレクト応答を送信する機能と、
    前記クラスタ情報がセットされた前記識別情報ファイルを有する要求を前記ブラウザ側から受信して実アプリケーションを実行する機能と
    を実現させるためのプログラム。
  20. 更に、一旦、他サイトに移動した後に誘導された前記ブラウザ側から前記識別情報ファイルを含む要求を受信する機能と、
    受信した前記識別情報ファイルに含まれるクラスタ情報を取得する機能と、
    取得された前記クラスタ情報を用いてリダイレクト応答を生成する機能とを前記コンピュータに実現させるための請求項19記載のプログラム。
JP2002070489A 2002-03-14 2002-03-14 セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム Expired - Fee Related JP3780507B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002070489A JP3780507B2 (ja) 2002-03-14 2002-03-14 セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム
US10/389,507 US7953790B2 (en) 2002-03-14 2003-03-14 Session information inheriting method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002070489A JP3780507B2 (ja) 2002-03-14 2002-03-14 セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム

Publications (2)

Publication Number Publication Date
JP2003271477A JP2003271477A (ja) 2003-09-26
JP3780507B2 true JP3780507B2 (ja) 2006-05-31

Family

ID=28449063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002070489A Expired - Fee Related JP3780507B2 (ja) 2002-03-14 2002-03-14 セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム

Country Status (2)

Country Link
US (1) US7953790B2 (ja)
JP (1) JP3780507B2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60121176T2 (de) * 2000-08-04 2007-06-06 Avaya Technology Corp. Verfahren und System zur anforderungsorientierten Wiedererkennung von verbindungsorientierten Transaktionen
US7308499B2 (en) * 2003-04-30 2007-12-11 Avaya Technology Corp. Dynamic load balancing for enterprise IP traffic
US8484348B2 (en) * 2004-03-05 2013-07-09 Rockstar Consortium Us Lp Method and apparatus for facilitating fulfillment of web-service requests on a communication network
FR2873882A1 (fr) * 2004-07-29 2006-02-03 France Telecom Procede et dispositif de distinction de requetes http utilisateur
KR100623482B1 (ko) * 2004-12-14 2006-09-14 한국전자통신연구원 세션 이동 방법
WO2006072994A1 (ja) * 2005-01-07 2006-07-13 Systemk Corporation ネットワークカメラへのログイン認証システム
JP4570986B2 (ja) * 2005-02-25 2010-10-27 京セラ株式会社 基地局装置、基地局装置の制御方法および通信制御プログラム
US8909782B2 (en) 2005-07-13 2014-12-09 International Business Machines Corporation Method and system for dynamically rebalancing client sessions within a cluster of servers connected to a network
JP5100004B2 (ja) * 2005-12-14 2012-12-19 キヤノン株式会社 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法
EP1979839B1 (en) * 2006-01-31 2014-01-08 Speed-trap.com Ltd. Website monitoring and cookie setting
GB0601939D0 (en) * 2006-01-31 2006-03-15 Speed Trap Com Ltd Website monitoring and cookie setting
US8533808B2 (en) * 2006-02-02 2013-09-10 Check Point Software Technologies Ltd. Network security smart load balancing using a multiple processor device
AU2008232558B9 (en) 2007-03-30 2013-08-01 Google Llc Determining advertising conversion
US10304065B2 (en) 2007-03-30 2019-05-28 Google Llc Determining advertising conversion
JP5052955B2 (ja) * 2007-05-09 2012-10-17 株式会社日立製作所 アプリケーションの高可用運用方法、オンラインバージョン変更方法及び計算機システム
JP4956276B2 (ja) * 2007-05-21 2012-06-20 日本電信電話株式会社 サーブレット起動プログラムおよびホームゲートウェイ装置
WO2010046985A1 (ja) * 2008-10-23 2010-04-29 富士通株式会社 認証システム、認証プログラム、認証サーバおよび副認証サーバ
US8918853B2 (en) 2011-06-29 2014-12-23 Sharp Laboratories Of America, Inc. Method and system for automatic recovery from lost security token on embedded device
JP5850657B2 (ja) * 2011-07-01 2016-02-03 キヤノン株式会社 情報処理装置とその制御方法、プログラム、並びに情報処理システム
US10430894B2 (en) 2013-03-21 2019-10-01 Khoros, Llc Gamification for online social communities
JP2016149107A (ja) * 2015-02-10 2016-08-18 株式会社アドウェイズ サ−バ
US11567742B2 (en) * 2016-12-29 2023-01-31 Atlassian Pty Ltd. Method, apparatus, and computer program product for generating updated network application interfaces
US10902462B2 (en) 2017-04-28 2021-01-26 Khoros, Llc System and method of providing a platform for managing data content campaign on social networks
US11553046B1 (en) * 2017-09-27 2023-01-10 Amazon Technologies, Inc. Seamless scaling via proxy replay of session state
US11570128B2 (en) 2017-10-12 2023-01-31 Spredfast, Inc. Optimizing effectiveness of content in electronic messages among a system of networked computing device
US10999278B2 (en) 2018-10-11 2021-05-04 Spredfast, Inc. Proxied multi-factor authentication using credential and authentication management in scalable data networks
US11470161B2 (en) * 2018-10-11 2022-10-11 Spredfast, Inc. Native activity tracking using credential and authentication management in scalable data networks
US10346449B2 (en) 2017-10-12 2019-07-09 Spredfast, Inc. Predicting performance of content and electronic messages among a system of networked computing devices
US11050704B2 (en) 2017-10-12 2021-06-29 Spredfast, Inc. Computerized tools to enhance speed and propagation of content in electronic messages among a system of networked computing devices
US10785222B2 (en) 2018-10-11 2020-09-22 Spredfast, Inc. Credential and authentication management in scalable data networks
US10601937B2 (en) 2017-11-22 2020-03-24 Spredfast, Inc. Responsive action prediction based on electronic messages among a system of networked computing devices
US11061900B2 (en) 2018-01-22 2021-07-13 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US10594773B2 (en) 2018-01-22 2020-03-17 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US10855657B2 (en) 2018-10-11 2020-12-01 Spredfast, Inc. Multiplexed data exchange portal interface in scalable data networks
US10931540B2 (en) 2019-05-15 2021-02-23 Khoros, Llc Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously
US11438289B2 (en) 2020-09-18 2022-09-06 Khoros, Llc Gesture-based community moderation
US11128589B1 (en) 2020-09-18 2021-09-21 Khoros, Llc Gesture-based community moderation
US11627100B1 (en) 2021-10-27 2023-04-11 Khoros, Llc Automated response engine implementing a universal data space based on communication interactions via an omnichannel electronic data channel
US11438282B2 (en) 2020-11-06 2022-09-06 Khoros, Llc Synchronicity of electronic messages via a transferred secure messaging channel among a system of various networked computing devices
US11924375B2 (en) 2021-10-27 2024-03-05 Khoros, Llc Automated response engine and flow configured to exchange responsive communication data via an omnichannel electronic communication channel independent of data source
US11714629B2 (en) 2020-11-19 2023-08-01 Khoros, Llc Software dependency management

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991878A (en) * 1997-09-08 1999-11-23 Fmr Corp. Controlling access to information
US6098093A (en) * 1998-03-19 2000-08-01 International Business Machines Corp. Maintaining sessions in a clustered server environment
US6369840B1 (en) * 1999-03-10 2002-04-09 America Online, Inc. Multi-layered online calendaring and purchasing
US6801949B1 (en) * 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US7082532B1 (en) * 1999-12-30 2006-07-25 Intel Corporation Method and system for providing distributed web server authentication
US6799214B1 (en) * 2000-03-03 2004-09-28 Nec Corporation System and method for efficient content delivery using redirection pages received from the content provider original site and the mirror sites
US7340532B2 (en) * 2000-03-10 2008-03-04 Akamai Technologies, Inc. Load balancing array packet routing system
US7099915B1 (en) * 2000-06-30 2006-08-29 Cisco Technology, Inc. Server load balancing method and system
DE60121176T2 (de) * 2000-08-04 2007-06-06 Avaya Technology Corp. Verfahren und System zur anforderungsorientierten Wiedererkennung von verbindungsorientierten Transaktionen
US7421505B2 (en) * 2000-12-21 2008-09-02 Noatak Software Llc Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation
US20020194262A1 (en) * 2001-04-27 2002-12-19 Jorgenson D. Scott System and method for controlling the interruption and resumption of access to WWW pages requiring certain prerequisites
US7702791B2 (en) * 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session replication
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system

Also Published As

Publication number Publication date
US20030187871A1 (en) 2003-10-02
JP2003271477A (ja) 2003-09-26
US7953790B2 (en) 2011-05-31

Similar Documents

Publication Publication Date Title
JP3780507B2 (ja) セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム
US6587880B1 (en) Session management system and management method
KR100528653B1 (ko) 공용 및 사설 데이터를 통합하기 위한 시스템 및 방법
US6633915B1 (en) Personal information management apparatus and customizing apparatus
US6209038B1 (en) Technique for aggregate transaction scope across multiple independent web requests
US7657595B2 (en) Method and system for generating auxiliary-server cache identifiers
AU756650B2 (en) An internet interface system
EP3229188A1 (en) Service request broking system
JP2004029939A (ja) 通信プロキシ装置、および、通信プロキシ装置を用いたサービス提供方法
US20080196096A1 (en) Methods for Extending a Security Token Based Identity System
US20060129816A1 (en) Method and system for secure binding register name identifier profile
US20070022199A1 (en) Method, Apparatus, and Program Product For Providing Web Service
US20070033658A1 (en) Connected support entitlement system method of operation
CN100421376C (zh) 用于服务资源定位符的请求的方法
CN101326491A (zh) 用于在应用程序的预定数量的执行方法之间选择的方法
JP2001515669A (ja) 分散コンピュータシステムにおける情報へのアクセス権を付与するシステムおよび方法
CA2293566A1 (en) Apparatus and method for identifying clients accessing network sites
CN102984159A (zh) 基于终端访问行为的安全接入逻辑控制方法及平台服务器
CN103197936A (zh) 用于在应用程序的预定数量的执行方法之间选择的方法
JP5347429B2 (ja) ユニフォームリソースロケータ書換方法及び装置
EP1360816B1 (en) Network conduit for providing access to data services
JP2003242117A (ja) アクセス管理方法及びシステム
US20030065789A1 (en) Seamless and authenticated transfer of a user from an e-business website to an affiliated e-business website
JP3437680B2 (ja) 対話管理型情報提供方法及び装置
Weiss Patterns for web applications

Legal Events

Date Code Title Description
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: 20060207

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060224

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees