JP5100004B2 - 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法 - Google Patents

情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法 Download PDF

Info

Publication number
JP5100004B2
JP5100004B2 JP2005360837A JP2005360837A JP5100004B2 JP 5100004 B2 JP5100004 B2 JP 5100004B2 JP 2005360837 A JP2005360837 A JP 2005360837A JP 2005360837 A JP2005360837 A JP 2005360837A JP 5100004 B2 JP5100004 B2 JP 5100004B2
Authority
JP
Japan
Prior art keywords
server
client
information
request
connection history
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
JP2005360837A
Other languages
English (en)
Other versions
JP2007164527A (ja
JP2007164527A5 (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005360837A priority Critical patent/JP5100004B2/ja
Priority to US11/610,210 priority patent/US7653729B2/en
Publication of JP2007164527A publication Critical patent/JP2007164527A/ja
Publication of JP2007164527A5 publication Critical patent/JP2007164527A5/ja
Application granted granted Critical
Publication of JP5100004B2 publication Critical patent/JP5100004B2/ja
Expired - Fee Related 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/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/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/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • 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/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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Description

本発明は、複数のサーバを用いて負荷分散を行う環境下でクライアントが指定したサーバにリクエスト要求を行う情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法に関する。
コンピュータは、高性能化やコストの低下に伴いより身近な存在となり、企業等における現在の業務作業において重要な役割を持つようになってきている。そのコンピュータの利用形態には以下のような変化があった。
当初、大型コンピュータを中心とし、それに接続した端末装置から利用する中央集中型のモデルであった。
その後、小型コンピュータの高性能化に伴い、一人一人の利用者が使用するパーソナルコンピュータが高性能になった。これにより、従来は大型コンピュータを用いた中央サーバ側で全ての処理を行っていたところを、中央サーバとそれに接続したパーソナルコンピュータとで処理を分担して、業務を処理するクライアント/サーバモデルが登場した。しかし、クライアント/サーバモデルでは、大量のユーザが存在する場合に、ユーザが利用する大量のクライアントマシン上で動くアプリケーションの維持管理が大変である等の問題があった。
一方で、クライアント/サーバモデルが主流となっていた時期にWebの技術が登場し、それによりインターネットが大きく発展し、Webアプリケーションという分野が構築されていった。このWebアプリケーションとは、Webの技術とTCP/IPをベースとしたLAN/WANの技術によるWebベースのアプリケーション技術のことをいう。当該技術は、当初は静的なコンテンツの提供のみであった。つまり、初期のWebサーバは蓄積してあるコンテンツ(文書)をただ送出するだけのような物であった。しかし、WebサーバでCGIやサーブレット(Servlet)といったソフトウェアをサーバ上で動かす技術が作られ、利用者がクライアントからの指示を受け取り、それを解釈して新たにクライアントに動的に表示する。これにより、Webシステム上でアプリケーションを動かすことができ、Web技術が一方的な情報提供手段から、クライアント/サーバシステムのようなアプリケーションのプラットホームとしても利用できるようになってきた。つまり、CGIやサーブレットを利用することで、Webサーバが、クライアントのWebブラウザからの要求に応じて、プログラムを起動するための仕組みを利用できるようになった。そして、クライアントから入力されるデータによるプログラムの処理結果に基づいて動的にコンテンツを生成し、送出することができるようになった。Webアプリケーション(Webサービス)はWeb上で動かすアプリケーションとしては何でも良い。即ちクライアント側に特定の商用のアプリケーションをインストールしなくてもWebブラウザさえあれば所望のアプリケーションを利用できる。例えば、代表的なソフトウェア/サービスとしては、大量の商品情報を提供した電子商店や、ドキュメントのお預かりサービス等が例として挙げられる。
このWebアプリケーションでは、従来のクライアント/サーバモデルに比較して、クライアント側には、業務共通でWebブラウザのみを用い、アプリケーションの維持管理コストを低減できる等の利点がある。そこで、Webシステムが重要なサービスのプラットホームとなってきた。Webシステムの当初の各サービスでは、単体のサーバ構成が一般的であったが、その一台のサーバが壊れた場合にサービス全体が停止してしまい、事業活動に大きく影響してしまうという問題があった。
そこで、24時間365日中提供が必要となるようなサービスにおいては、可用性を上げるために、複数台のサーバからサービスを提供する冗長構成をとることが一般的になっている。また、システム性能を上げるために、複数台のサーバで処理を分担することが必要になってきた。
しかし、複数台のサーバを用いてシステムを構築した場合にも、一連の操作(以下では、「同一のセッション」という。)については同一のサーバで処理をしないと不都合が生じる場合がある。そこで、個別サーバ情報をクッキー情報に埋め込み、その情報に基づいて負荷分散装置を用いて同一セッションを同一サーバで処理するシステムが実現している(例えば、特許文献1参照。)。図1は、負荷分散装置を用いて同一セッションを同一サーバで処理する従来のWebサービスシステムの構成を示すブロック図である。
特開2003−256310号公報
しかしながら、複数のサーバを用いて構築した分散環境であっても、動作確認等のテストを行うためには、クライアントから特定のサーバを指定して接続する必要があった。特定サーバへの接続方法としては、例えば以下に示す二つの解決方法がある。
第1の解決方法は、各個別サーバ毎にアクセス専用のIPアドレスを付与し、それぞれのアドレスに接続して動作確認を行う方法である。しかし、当該方法では、動作テスト時にクライアントのhostsファイルに個別に割り振ったIPアドレスの記載変更が必要となり、作業効率が悪くなるという問題があった。ここで、hostsファイルとは、ホスト名とIPアドレスの対応関係を記述したファイルのことである。このファイルを参照してネットワーク上の名前解決を行う。
第2の解決方法は、一度アクセスした後に、クライアントのブラウザ上でクッキー情報を強制変更する方法である。これは通信データ(パケット)を専用のネットワークツールでデータ書き換えを行う方法である。しかし、当該方法では、変更に要する手順が多くなり、多数のサーバに接続確認を行う場合には作業効率が悪いという問題があった。ここでクッキー(Cookie)とは、ユーザー情報やアクセス履歴などの情報をWebブラウザとWebサーバ間でやりとりするための仕組みである。クライアントのWebブラウザ用のキャッシュ領域にテキスト形式で保存されるクッキーがある。また、WebブラウザとWebサーバの通信時のみに利用されてキャッシュ領域に保存されない一時的なクッキーもある。クッキーはWeb技術では一般的に利用されているものである。一般的にクッキーは、Webサーバからの指示によって、Webクライアント側で作成され、保存される。このとき保存されるデータは、クッキーの名前、値、クッキーの有効期限、有効ドメイン/パスである。こうしてクッキーが作成されると、以後クライアント側のブラウザは、指定されたURLとクッキーの有効ドメイン/パスが一致しているかどうかを検査し、一致していれば、クッキーのデータをサーバ側に暗黙的に送信する。クッキーを用いることで、次回のアクセスあるいはセッションで、クライアントがこのクッキー情報をWebサーバ側に暗黙的に送信することで、それが特定のクライアントからのアクセスであることがWebサーバで識別できるようになる。
本発明は、サーバテストや動作監視等のために、動作確認者が、負荷分散システム上の複数サーバの中から特定のサーバを容易に選択してリクエストに応じさせることができるWebシステム、情報処理装置及びそれらの制御方法を提供することを目的とする。
上記課題を解決するために、本発明の情報処理システムは、クライアントからのリクエストに応じてWebサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該クライアントからのリクエストを前記複数のサーバ装置の1つに送信する負荷分散装置とを備える情報処理システムにおいて、前記負荷分散装置は、前記クライアントからのリクエストに前記サーバ装置で生成した接続履歴情報が含まれるか否かを判断する接続履歴情報判断手段と、前記接続履歴情報判断手段の判断結果に応じて、前記クライアントからのリクエストの送信先である前記複数のサーバ装置の1つを決定するサーバ決定手段とを有し、前記サーバ装置は、前記クライアントからのリクエストにサーバ指定情報が含まれるか否かを判断する断手段と、前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し前記クライアントへの応答を生成する処理手段とを有し、前記断手段の判断の結果、前記サーバ指定情報が含まれると判断される場合には、自ホスト固有の番号を付与せず、ユーザが指定したURLパラメータ内の情報を付与した接続履歴情報を生成し、前記クライアントに返す
本発明によれば、サーバテストや動作監視等のために、動作確認者が、負荷分散システム上の複数サーバの中から特定のサーバを容易に選択してリクエストに応じさせることができる。
以下、図面を参照して、本発明の一実施形態に係るWebサービスシステムの詳細について説明する。
<第1の実施例>
図2は、本発明の第1の実施例に係るWebサービスシステムの構成を示すブロック図である。図2において、1は、複数台のサーバからなるWebサービスシステムを示す。このWebサービスシステム1は、何台かのサーバ(本実施例では、一例として、サーバ10、20、30の3台で構成)と負荷分散装置40とを備える。
サーバ10、20、30は全て同じ構成であり、それぞれのサーバ上で動くアプリケーションプログラムとして、選択アプリケーション11、21、31と、一般アプリケーション12、22、32とがインストールされている。ここで、選択アプリケーション(制御アプリケーション)11、21,31は同一のアプリケーションであり、単に別のサーバ上で動いている。また、一般アプリケーション(サービスアプリケーション)12、22、32も同様であり、クライアント2からのリクエストに応える。
選択アプリケーション11、21、31は、クッキー情報中のサーバ指定情報に対して、自ホスト固有の番号を付与せずに、ユーザが指定したURLパラメータ内の情報をクライアント2のクッキー情報としてクライアント2に返す(S112)。URLパラメータ(引数)内の情報としては、例えば、後述する図7におけるサーバ指定部分153、154のSRV=1の部分がある。 また、一般アプリケーション12、22、32は、「背景技術」の部分で述べたようなユーザが利用するようなアプリケーションである。
尚、クライアント2からのリクエストにサーバを指定するクッキーが含まれていない場合には、その後のセッションを同一サーバに接続するようにするために、各サーバは、自ホスト固有の番号を含めたクッキーをクライアント2に返す。また、一般アプリケーション12、22、32は、図2中では便宜的に一つのみで示しているが、複数のアプリケーションから成り立っていても良い。さらに、サーバ20、30についても、サーバ10と同様の構成である。そして、各サーバ上で動いている一般アプリケーションや選択アプリケーションは同一である。
図2において負荷分散装置40は、サーバ10、20、30に対する負荷分散を実施するための汎用の装置である。負荷分散装置40は、クッキー内のサーバを指定している部分を確認し、適切なサーバに対してクライアント2からのリクエストを振り分けて転送する。また、クッキー情報内にサーバ指定情報が無い場合には、DNSラウンドロビン等の適当なルールに基づいてサーバの選択を行う。例えば、クライアント2からの最初の接続では、クッキー情報が無いために、DNSラウンドロビン等にしたがって接続先が決まる。DNSラウンドロビンとは、一つのドメイン名に複数のIPアドレスを割り当てる負荷分散技術の一つである。トラフィック負荷を複数のIPアドレスに振り分けることにより、例えばHTTPサーバ(Webサーバ)に対するアクセスをほぼ同量ずつ複数のサーバマシンに分配することができる。DNSラウンドロビンでは、同様の構成にした系を複数用意して処理要求を順番に割り振るのが一般的である。図2に示す例では、最初の接続でDNSラウンドロビン等にしたがってサーバ20に接続している(S111)。
その後、例えば、サーバ側でクッキー情報を付与する等して、次回のクライアント2からの接続の場合には、クッキーに適切な情報があるためにその情報を元にして負荷分散装置40は、同じサーバに接続を割り振る。一般的な負荷分散を説明した図1では、サーバ20からのレスポンスでクッキーを付与している(S102)。そして、クライアント2からの2回目のアクセス(S103)では、クッキーにサーバ情報があるために、その情報を元にして1回目の接続(S101)と同一のサーバ20に接続している。
また、図2に示すように、負荷分散装置40によりDNSラウンドロビンでサーバ20に接続した後、サーバ20によってレスポンス(S112)で、サーバ10に接続するための情報を含んだクライアント2用のクッキー情報を付与する。そしてクライアント2は当該クッキー情報を保持して自身のクッキー情報とする。そして、クライアント2からの2回目のアクセス(S113)では、クッキーにサーバ情報があるために、その情報を元にしてクライアント2の希望通りのサーバ10に接続できる。
クライアント2は、Webサービスシステム1の利用者が用いるコンピュータである。このコンピュータでは、TCP/IPでの通信が行え、アプリケーションとしてはWebブラウザを持ち、それを用いてWebサービスシステム1に接続することが可能である。WebブラウザはMicrosoft社のInternet Explorer(登録商標)やMozilla CorporationのFirefox(登録商標)等一般に広く用いられているものである。
図3は、図2に示すサーバ10、20、30の細部構成を示すハードウェア構成図である。各サーバは、CPU201、ROM202、RAM203、ハードディスクドライブ(HDD)204、負荷分散装置40や他のサーバとの通信を行うローカルエリアネットワーク(LAN)に接続するLANインタフェース205を備える。また、各サーバは、サーバの指示によって画像等の情報を表示するディスプレイ211、サーバに種々の情報を入力するためのキーボード212、ディスプレイ211の任意の位置を指示するマウス213を接続するI/Oインタフェース206を備える。図3の10の構成上ではサーバOS(オペレーティング・システム)が搭載され動作している。サーバOSとしては、Unix(登録商標)、Linux(商標)、Windows Server(登録商標)等が一般的である。
そして、各サーバは、所定の記録媒体に記録されたプログラムを読み出して実行することでWebサーバとしての機能を実現する。ここで、所定の記録媒体とは、サーバ10の内外に備えられるハードディスクドライブ(HDD)204や、ROM202、RAM203等の「固定用の物理媒体」を用いるのが一般的である。また、フレキシブルディスク(FD)208、CD−ROM207、MOディスク、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」を用いても良い。さらに、他のサーバが接続されたLAN等のように、プログラムの送信に際して短期にプログラムを保持する「通信媒体」等のサーバによって読み取り可能なプログラムを記録する、あらゆる記録媒体を含む。
すなわち、プログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」等の記録媒体に、コンピュータ読み取り可能に記録されるものである。そして、各サーバは、このような記録媒体からプログラムを読み出して実行することでWebサーバとしての機能を実現する。また、前述したOSもこのプログラムの一種である。OSはサーバ上で動作する一番上位層のプログラムで、各WebアプリケーションのプログラムはOSの下位層で動作する。これは例えば、一般的なPC(パソコン)で動作するWindows(登録商標)OSとインストールされるアプリケーションの関係と同じであり、周知技術である。
図4は、各サーバが選択アプリケーション11、21、31を実行させたときの処理手順を説明するためのフローチャートである。
まず、サーバは、負荷分散装置40を経由して届いたクライアント2からのリクエストを受信する(ステップS121)。次に、サーバは、受け取ったリクエストを解析して、URLパラメータ中のサーバ番号を割り出す(ステップS122)。具体的には、図7に示すようなクライアント2からのリクエスト中の決まった文字列153の引数の値154を解析処理して導き出すこととなる。
そして、次に、サーバは、クライアント2へのレスポンスを作成する(ステップS123)。ここでは、ステップS122で解析した結果に基づいて、クライアント2が要求しているサーバ番号をレスポンスのクッキー情報中に付与する。そして、最後に、サーバはレスポンス返送として、クライアント2にステップS123で作成したレスポンスを返送する(ステップS124)。
図5は、負荷分散装置40の処理手順を説明するためのフローチャートである。まず、クライアント2からのリクエストを受信する(ステップS131)。次に、リクエスト時のクッキー情報の中から、サーバを指定する情報を探す(ステップS132)。その結果、サーバ指定情報があった場合(Yes)はステップS133に移り、サーバ指定情報がない場合(No)はステップS134に移る。
ステップS133では、クッキー情報中のサーバ指定情報より、リクエストを転送する転送先のサーバを決定する。一方、ステップS134では、クッキー情報内にサーバ指定情報がないので、リクエストの転送先は不定である。そこで、この場合は、負荷分散装置40のルールに基づいてリクエストを転送するサーバを決定する。負荷分散装置40は、例えば、DNSラウンドロビンや、各サーバの負荷状況等によって決定する。
そして、ステップS133又はステップS134で決定した転送先のサーバにリクエストを転送する(ステップS135)。
図6は、各サーバにインストールされた一般アプリケーション12、22、32による処理を説明するためのフローチャートである。以下、代表的にサーバ10にインストールされた一般アプリケーション12を用いて説明する。サーバ10は、負荷分散装置40経由で届いたクライアント2からのリクエストを受信する(ステップS141)。次に、クライアント2からのリクエストに一連の操作を一意に決めるセッション情報が存在するか否かを確認する(ステップS142)。その結果、セッション情報がある場合(Yes)はステップS143に移行し、セッション情報がない場合(No)はステップS144に移行する。尚、このセッション情報を元にして、サーバ10は、クライアント2の操作を一連の操作と認識し、認証情報や操作情報をサーバ側で保持する。通信プロトコルとしてはセッションとコネクションという2種類の通信接続概念があるが、本実施形態では、このセッション情報を用いて説明するものとするが特に通信形態を限定するものではない。
ステップS143では、サーバ10は、クッキー情報内のセッション情報と既存のセッション情報との対応付けを行ってステップS145に移行する。一方、ステップS144では、新たな接続と判断して、新しいセッション情報をサーバ10が作成する。
ステップS145では、ステップS143で既存のセッション情報との対応付けに失敗したか否かの判断を行う。尚、失敗した場合とは、クライアント2からのリクエスト中のセッション情報が、サーバ10上のセッション情報群に無い場合である。その場合には、不正なリクエストであると判断する。ステップS145で対応付けに失敗した場合にはステップS148に移行し、成功した場合にはステップS146に移行する。
ステップS146では、セッション情報に基づいてクライアント2からのリクエストに対する処理を行う。そして、サーバ10は、クライアント2に対して返信を送る(ステップS147)。一方、ステップS148では、クライアント2からの不正リクエストであるため、エラーであるの旨の回答をクライアント2に返す。
図7は、各サーバにインストールされた選択アプリケーション11、21、31に対する接続URLの一例を示す図である。図7において、サーバ名151は、ネットワーク上の一意のホスト名を示す。これは一般的なDNS技術によるものである。即ち、コンピュータ名またはコンピュータのドメイン名とIPアドレスを変換する技術である。また、アプリケーション名152は、選択アプリケーション11、21、31への接続要求を示す。ここで、図7では、「selectSRV」としているが、任意のアプリケーション名を用いることができる。さらに、変数153は、URLパラメータのサーバを指定する変数を示す。図7では、一例として「SRV」としているが、選択アプリケーション毎に一意の文字列であれば問題は無い。そして、引数154は、変数153の引数を示し、その値によってサーバを指定することができる。例えば、引数「1」はサーバ10、引数「2」はサーバ20、引数「3」はサーバ30に対応する。図7の154は引数「1」であるのでサーバ10を指定していることになる。
図8は、クライアント2で動作確認者が表示させることができるWebサーバ選択ページの表示画面の一例を示す図である。
図8において、リンク161、162、163は、各サーバを選択するための選択アプリケーションへジャンプするためのURLが張られたリンクである。また、マウスポインタ164は、サーバ10を選択するためのリンク161を選択しようとしている。さらに、リンク先表示165には、マウスポインタ164が選択している先のリンク161の具体的なURLが表示されている。
図7に示すURLパラメータ153、154中でサーバを指定する情報は、各サーバ個別の引数(サーバ番号)154であったが、個別のサーバを識別することができれば、数字ではなく英字や、英字と数字の組み合わさったものであっても良い。また、サーバを指定する情報をハッシュ関数等を用いて暗号化された情報として取り扱ってもよい。
また、一般アプリケーション12、22、32は、一つのWebサービスアプリケーションとして記載したが、複数のアプリケーションで構成されていても良い。
さらに、選択アプリケーション11、21、31からのレスポンス(S112)については特に明記していないが、例えば、一般アプリケーション12、22、32のログイン要求画面等の初期画面に対してのリダイレクトレスポンスであっても良い。ここでリダイレクトとは、あるURLから他のURLに転送させることや、プログラムの入力元や出力先を本来の出力先とは違うものに変更することを意味する。この場合の動作確認処理は、図8に示すサーバ選択画面からワンクリックで希望のサーバの動作確認に移ることができる。
<第2の実施例>
次に、本発明の2つ目の実施例について説明する。
図9は、本発明の第2の実施例に係るWebサービスシステムの構成を示すブロック図である。クライアント2から最初のリクエストをサーバへ送信する(S201)。本実施例では、各サーバ10、20、30で動く選択アプリケーション13、23、33は、受け取ったリクエストのURLパラメータが示すサーバの一般アプリケーションに対して処理に依頼する。図9では、一例として、最初にクッキー情報がないことから負荷分散装置40のルールによってサーバ20にクライアント2からのリクエストが転送される。そして、サーバ20は、サーバ10が当該リクエストに応じるサーバであることを認識すると、サーバ10に対してその旨を知らせて(S202)回答を受けて(S203)、その回答をクライアント2に返す(S204)。その後、クライアント2からのリクエストは、希望のサーバ10に直接送信されることとなる(S205)。本実施例ではクッキーはサーバ10が埋め込み(S202、S203)そしてサーバ20がクライアント2へ代理応答する(S204)。以後、クライアント2は、そのクッキー情報を使ってサーバ10と通信する(S205、S206)。
図10は、第2の実施例においてクライアント2から送信される最初のリクエスト例を示す図である。図10において、ホスト部211、アプリケーション指定部212、サーバ指定部213、214は、第1の実施例での図7の各部と同じ役割をするものである。そして、図10では、それ以外に、URL指定部215、216が引数に加わっている。選択アプリケーション13、23、33は、サーバ指定部214で示されるサーバに対して、URL指定部216で示されるURLリクエストを送信し、そのレスポンスをプロキシのような形でクライアント2に返す。つまり、第2の実施例では図9において、負荷分散装置は40は、まずサーバ20へクライアント2からのリクエストを送信する(S201)。このリクエストは図10を参照すれば、サーバ指定部213の引数が「1」であるのでサーバ10を指定し、かつURL指定部215、216で記述されるURLをサーバ10へ送信することになる(S202)。
図11は、第2の実施例における選択アプリケーション13、23、33による処理を説明するためのフローチャートである。以下では代表的にサーバ20にインストールされた選択アプリケーション23による処理について説明する。
まず、クライアント2からのリクエスト(S201)を受け取る(ステップS221)。次に、次の処理の前処理として図10に示すようなリクエストのURLパラメータ部分の解析を行う(ステップS222)。そして、ステップS222での解析結果に基づいてサーバ指定部214で指定されたサーバに対して、リクエスト216のURLリクエスト(S202)を行う(ステップS223)。例えば、図10に示すようなURLのリクエストの場合では、サーバ10に対してリクエストを行う。
その後、ステップS223で送信したリクエストのレスポンス(S203)をサーバ10から受信する(ステップS224)。そして、ステップS224で受け取ったサーバのレスポンスを加工せずに、クライアント2にレスポンス(S204)のように返す(ステップS225)。
尚、上記以外の一般アプリケーション12、22、32や負荷分散装置40の構成や機能、フローチャートで示される処理手順については第1の実施例と同じである。また、上述した各実施例での処理は、通常の負荷分散モードとは別に、クライアント側から複数のサーバのそれぞれが特定のサーバを指定してリクエストに応えさせるモードの場合に行うようにしてもよい。
第1及び第2の実施例で説明したように、本実施形態に係るWebサービスシステムでは、負荷分散を行うサーバアプリケーション環境において、動作確認者等が容易に評価対象とするWebサーバを選択することができる。そして、全ての構成変更は、アプリケーションサーバ側で行っているため、負荷分散装置40等のシステムの他の構成要素に対しての変更が不要である。さらに、監視アプリケーションを用いて、クライアント側から個別サーバを指定してアプリケーションの動作監視をすることが容易である。
<他の実施形態>
以上、実施形態例を詳述したが、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、以下のようなものがある。フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。すなわち、ホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他にも、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後にも前述した実施形態の機能が実現される。すなわち、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことによっても前述した実施形態の機能が実現される。
負荷分散装置を用いて同一セッションを同一サーバで処理する従来のWebサービスシステムの構成を示すブロック図である。 本発明の第1の実施例に係るWebサービスシステムの構成を示すブロック図である。 図2に示すサーバ10、20、30の細部構成を示すハードウェア構成図である。 各サーバが選択アプリケーション11、21、31を実行させたときの処理手順を説明するためのフローチャートである。 負荷分散装置40の処理手順を説明するためのフローチャートである。 各サーバにインストールされた一般アプリケーション12、22、32による処理を説明するためのフローチャートである。 各サーバにインストールされた選択アプリケーション11、21、31の接続URLの一例を示す図である。 クライアント2で動作確認者が表示させることができるWebサーバ選択ページの表示画面の一例を示す図である。 本発明の第2の実施例に係るWebサービスシステムの構成を示すブロック図である。 第2の実施例においてクライアント2から送信される最初のリクエスト例を示す図である。 第2の実施例における選択アプリケーション13、23、33による処理を説明するためのフローチャートである。
符号の説明
1 Webサービスシステム
2 クライアント
10、20、30 サーバ
11、21、31 選択アプリケーション
12、22、32 一般アプリケーション
40 負荷分散装置

Claims (13)

  1. クライアントからのリクエストに応じてWebサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該クライアントからのリクエストを前記複数のサーバ装置の1つに送信する負荷分散装置とを備える情報処理システムにおいて、
    前記負荷分散装置は、
    前記クライアントからのリクエストに前記サーバ装置で生成した接続履歴情報が含まれるか否かを判断する接続履歴情報判断手段と、
    前記接続履歴情報判断手段の判断結果に応じて、前記クライアントからのリクエストの送信先である前記複数のサーバ装置の1つを決定するサーバ決定手段とを有し、
    前記サーバ装置は、
    前記クライアントからのリクエストにサーバ指定情報が含まれるか否かを判断する判断手段と、
    前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し前記クライアントへの応答を生成する処理手段とを有し、
    前記判断手段の判断の結果、前記サーバ指定情報が含まれると判断される場合には、自ホスト固有の番号を付与せず、ユーザが指定したURLパラメータ内の情報を付与した接続履歴情報を生成し、前記クライアントに返すことを特徴とする情報処理システム。
  2. 前記クライアントからのリクエストに含まれる前記サーバ指定情報とは、URLに含まれるテストモードを表わす記述又は前記複数のサーバ装置の1つを指定する記述であることを特徴とする請求項1に記載の情報処理システム。
  3. 前記接続履歴情報判断手段が、前記クライアントからのリクエストに前記接続履歴情報が含まれると判断した場合には、前記サーバ決定手段は、前記接続履歴情報内のサーバ指定情報に従って送信先のサーバ装置を決定し、
    前記接続履歴情報判断手段が、前記クライアントからのリクエストに前記接続履歴情報が含まれないと判断した場合には、前記サーバ決定手段は、ラウンドロビン方式で送信先のサーバ装置を決定する
    ことを特徴とする請求項1に記載に情報処理システム。
  4. 前記サーバ装置が生成する前記接続履歴情報は、前記サーバ装置への接続指定情報を含むクッキー情報であることを特徴とする請求項1又は3に記載情報処理システム。
  5. クライアントからのリクエストに応じてWebサービスを実行するアプリケーションを搭載したサーバ装置であって、
    通信媒体を介してクライアントからのリクエストを複数の前記サーバ装置の1つに送信する負荷分散装置に接続され、
    前記クライアントからのリクエストにサーバ指定情報が含まれるか否かを判断する判断手段と、
    前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し前記クライアントへの応答を生成する処理手段とを有し、
    前記判断手段の判断の結果、前記サーバ指定情報が含まれると判断される場合には、自ホスト固有の番号を付与せず、ユーザが指定したURLパラメータ内の情報を付与した接続履歴情報を生成し、前記クライアントに返す
    ことを特徴とするサーバ装置。
  6. 前記クライアントからのリクエストに含まれる前記サーバ指定情報とは、URLに含まれるテストモードを表わす記述又は前記複数のサーバ装置の1つを指定する記述であることを特徴とする請求項5の記載のサーバ装置。
  7. 前記サーバ装置が生成する前記接続履歴情報は、前記サーバ装置への接続指定情報を含むクッキー情報であることを特徴とする請求項5に記載のサーバ装置。
  8. クライアントからのリクエストに応じてWebサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該クライアントからのリクエストを前記複数のサーバ装置の1つに送信する負荷分散装置を備える情報処理システムの制御方法であって、
    前記負荷分散装置は、
    前記クライアントからのリクエストに前記サーバ装置で生成した接続履歴情報が含まれるか否かを判断する接続履歴情報判断工程と、
    前記接続履歴情報判断工程の判断結果に応じて、前記クライアントからのリクエストの送信先である前記複数のサーバ装置の1つを決定するサーバ決定工程とを実行し、
    前記サーバ装置は、
    前記クライアントからのリクエストにサーバ指定情報が含まれるか否かを判断する判断工程と、
    前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し、前記クライアントへの応答を生成する処理工程とを実行し、
    前記判断工程の判断の結果、前記サーバ指定情報が含まれると判断される場合には、自ホスト固有の番号を付与せず、ユーザが指定したURLパラメータ内の情報を付与した接続履歴情報を生成し、前記クライアントに返す
    ことを特徴とする情報処理システムの制御方法。
  9. 前記クライアントからのリクエストに含まれる前記サーバ指定情報とは、URLに含まれるテストモードを表わす記述又は前記複数のサーバ装置の1つを指定する記述であることを特徴とする請求項8に記載の情報処理システムの制御方法。
  10. 前記接続履歴情報判断工程が、前記クライアントからのリクエストに前記接続履歴情報が含まれると判断した場合には、前記サーバ決定工程は、前記接続履歴情報内のサーバ指定情報に従って送信先のサーバ装置を決定し、
    前記接続履歴情報判断工程が、前記クライアントからのリクエストに前記接続履歴情報が含まれないと判断した場合には、前記サーバ決定工程は、ラウンドロビン方式で送信先のサーバ装置を決定する
    ことを特徴とする請求項8に記載情報処理システムの制御方法。
  11. 前記サーバ装置が生成する前記接続履歴情報は、該サーバ装置への接続指定情報を含むクッキー情報であることを特徴とする請求項8又は10に記載情報処理システムの制御方法。
  12. クライアントからのリクエストに応じてWebサービスを実行するアプリケーションを搭載し、通信媒体を介して前記クライアントからのリクエストを複数のーバ装置の1つに送信する負荷分散装置に接続されたサーバ装置の制御方法であって、
    前記クライアントからのリクエストにサーバ指定情報が含まれるか否かを判断する判断工程と、
    前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し、前記クライアントへの応答を生成する処理工程とを有し、
    前記判断工程の判断の結果、前記サーバ指定情報が含まれると判断される場合には、自ホスト固有の番号を付与せず、ユーザが指定したURLパラメータ内の情報を付与した接続履歴情報を生成し、前記クライアントに返すことを特徴とするサーバ装置の制御方法。
  13. 請求項12に記載の制御方法をコンピュータに実行させるためのプログラム。
JP2005360837A 2005-12-14 2005-12-14 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法 Expired - Fee Related JP5100004B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005360837A JP5100004B2 (ja) 2005-12-14 2005-12-14 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法
US11/610,210 US7653729B2 (en) 2005-12-14 2006-12-13 Information processing system, server apparatus, information processing apparatus, and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005360837A JP5100004B2 (ja) 2005-12-14 2005-12-14 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法

Publications (3)

Publication Number Publication Date
JP2007164527A JP2007164527A (ja) 2007-06-28
JP2007164527A5 JP2007164527A5 (ja) 2009-02-05
JP5100004B2 true JP5100004B2 (ja) 2012-12-19

Family

ID=38140785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005360837A Expired - Fee Related JP5100004B2 (ja) 2005-12-14 2005-12-14 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法

Country Status (2)

Country Link
US (1) US7653729B2 (ja)
JP (1) JP5100004B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239862B2 (en) * 2007-11-26 2012-08-07 Ricoh Company, Ltd. Apparatus, method, and computer program product for processing information
US8689053B2 (en) * 2007-12-19 2014-04-01 Verizon Patent And Licensing Inc. System and method for testing a software engine including a test subsystem simulating output for a base system in a test mode
JP5308196B2 (ja) * 2009-03-06 2013-10-09 ヤフー株式会社 サーバおよびプログラム
JP5174747B2 (ja) * 2009-06-18 2013-04-03 株式会社日立製作所 計算機システムおよび管理装置
US20110202617A1 (en) * 2010-02-16 2011-08-18 Glomantra Inc. Method and system for obtaining relevant opinions
CN101783771A (zh) * 2010-03-24 2010-07-21 杭州华三通信技术有限公司 一种实现负载均衡持续性的方法和设备
NL2005918C2 (en) * 2010-12-23 2012-06-27 Geobrand B V Method and system for executing an application on a pda terminal.
EP2701068B1 (en) * 2011-04-19 2017-02-01 Murakumo Corporation Network access system
JP5837795B2 (ja) * 2011-10-21 2015-12-24 株式会社コナミデジタルエンタテインメント 管理装置
JP5984552B2 (ja) * 2012-07-20 2016-09-06 キヤノン株式会社 負荷分散システム、負荷分散システムの制御方法、およびコンピュータプログラム
US9609068B2 (en) * 2013-12-16 2017-03-28 Fuji Xerox Co., Ltd. Session management system, session management apparatus, and non-transitory computer readable medium
JP6176161B2 (ja) * 2014-03-18 2017-08-09 富士ゼロックス株式会社 印刷制御装置及びプログラム
CN104954413B (zh) 2014-03-31 2018-07-13 阿里巴巴集团控股有限公司 提供互联网应用服务的方法、系统、用户端设备及服务端

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
US7043632B2 (en) * 2001-12-12 2006-05-09 Nortel Networks Limited End-to-end security in data networks
JP2003256310A (ja) 2002-03-05 2003-09-12 Nec Corp サーバ負荷分散システム、サーバ負荷分散装置、コンテンツ管理装置、及びサーバ負荷分散プログラム
JP3780507B2 (ja) * 2002-03-14 2006-05-31 日本アイ・ビー・エム株式会社 セッション情報の引継ぎ方法、アプリケーションサーバ、Webサイト、およびプログラム
US7047315B1 (en) * 2002-03-19 2006-05-16 Cisco Technology, Inc. Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states
US7328237B1 (en) * 2002-07-25 2008-02-05 Cisco Technology, Inc. Technique for improving load balancing of traffic in a data network using source-side related information
US7457873B2 (en) * 2006-03-31 2008-11-25 Microsoft Corporation Method and system for providing centralized web usage tracking

Also Published As

Publication number Publication date
JP2007164527A (ja) 2007-06-28
US7653729B2 (en) 2010-01-26
US20070136434A1 (en) 2007-06-14

Similar Documents

Publication Publication Date Title
JP5100004B2 (ja) 情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法
US8099720B2 (en) Translating declarative models
US8086756B2 (en) Methods and apparatus for web content transformation and delivery
JP3962373B2 (ja) ピアツーピア式の電子コンテンツの広範囲の配布の方法および装置
US20130212689A1 (en) Managing network data
US20110196957A1 (en) Real-Time Policy Visualization by Configuration Item to Demonstrate Real-Time and Historical Interaction of Policies
JP4925231B2 (ja) 応答集約サロゲートからの要求フラグメントの送信
CN100498758C (zh) 呈现来自多个供应者的远程应用程序快捷方式的合并视图
KR20040000441A (ko) 컴퓨팅 네트워크에서 서비스의 동적 전개
US7783751B2 (en) Communication system, proxy server, method of controlling same and control program therefor
JP5015545B2 (ja) フェデレーション内でのソフトウェアのインストール
JP3962372B2 (ja) 分散ピアツーピア共用技術へクライアントを奨励する方法および装置
KR20050084820A (ko) 데이터 처리 시스템, 테스트 방법, 모니터링 방법,네트워크 데이터 처리 시스템, 데이터 처리 시스템 및컴퓨터 프로그램 제품
JP2004348743A (ja) ポストキャッシュ置換
US7873707B1 (en) Client-side URL rewriter
JP2008021307A (ja) 異機種環境においてメッセージのサーバ・ベースのレンダリングを管理するためにコンピュータを利用する方法およびシステム
KR100745432B1 (ko) 구성요소들을 자율적으로 관리하기 위한 컴퓨터 기반 방법, 컴퓨터 판독 가능 기록 매체 및 데이터 처리 시스템
KR100613318B1 (ko) 외래 포트 분배에 기초하여 서버 부하를 분담하는 방법 및장치
JP4898536B2 (ja) 障害解析支援装置、障害解析支援方法及び障害解析支援プログラム
CN1949758A (zh) 用于更新分布式应用的方法和系统
US20050076325A1 (en) Automatic software update of nodes in a network data processing system
US20100083078A1 (en) Proxy server, and method and program for controlling same
JP2010113380A (ja) テスト基盤装置、テスト基盤プログラム、テスト基盤方法
US7392313B2 (en) Method and apparatus for partitioned environment for web application servers
US11546405B2 (en) Methods for exposing mainframe data as a web service and devices thereof

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120830

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: 20120918

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120925

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees