(57)【要約】【課題】  サーバテストや動作監視等のために、動作確認者が、負荷分散システム上の複数サーバの中から特定のサーバを容易に選択してリクエストに応じさせることができる情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法を提供する。【解決手段】  Ｗｅｂサービスシステム１には、クライアント２から要求されたリクエストに応えるサービスアプリケーションがインストールされたＷｅｂサーバ１０、２０、３０と、クライアント２のリクエストを転送する汎用の負荷分散装置４０が備わる。ここで、Ｗｅｂサーバ１０、２０、３０のそれぞれは、クライアント２から要求されたリクエストから、クライアント２がリクエストに応えさせるＷｅｂサーバのサーバ指定情報を取得する。そして、サーバ指定情報が付加されたクライアント２のクッキー情報を当該クライアント２に送信する。【選択図】  図２
2007164527.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該クライアントからのリクエストを前記複数のサーバ装置の１つに送信する負荷分散装置を備える情報処理システムにおいて、
前記負荷分散装置は、
前記クライアントからのリクエストに前記サーバ装置で生成した接続履歴情報が含まれるか否かを判断する接続履歴情報判断手段と、
前記接続履歴情報判断手段の判断結果に応じて、前記クライアントからのリクエストの送信先である前記複数のサーバ装置の１つを決定するサーバ決定手段とを有し、
前記サーバ装置は、
前記クライアントからのリクエストに特定の記述が含まれるか否かを判断する特定記述判断手段と、
前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し前記クライアントへの応答を生成する処理手段とを有し、
前記特定記述判断手段の判断の結果、前特定の記述が含まれると判断される場合には、前記処理手段は接続履歴情報を生成し、前記クライアントへの応答へ付加する
ことを特徴とする情報処理システム。
【請求項２】
前記クライアントからのリクエストに含まれる前記特定の記述とは、ＵＲＬに含まれるテストモード表わす記述又は前記複数のサーバ装置の１つを指定する記述であることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記接続履歴情報判断手段が、前記クライアントからのリクエストに前記接続履歴情報が含まれると判断した場合には、前記サーバ決定手段は、前記接続履歴情報内のサーバ指定情報に従って送信先のサーバ装置を決定し、
前記接続履歴情報判断手段が、前記クライアントからのリクエストに前記接続履歴情報が含まれないと判断した場合には、前記サーバ決定手段は、ラウンドロビン方式で送信先のサーバ装置を決定する
ことを特徴とする請求項１に記載に情報処理システム。
【請求項４】
前記サーバ装置が生成する前記接続履歴情報は、前記サーバ装置への接続指定情報を含むクッキー情報であることを特徴とする請求項１又は３に記載に情報処理システム。
【請求項５】
クライアントからのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載したサーバ装置であって、
通信媒体を介してクライアントからのリクエストを複数の前記サーバ装置の１つに送信する負荷分散装置に接続され、
前記クライアントからのリクエストに特定の記述が含まれるか否かを判断する特定記述判断手段と、
前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し前記クライアントへの応答を生成する処理手段とを有し、
前記特定記述判断手段の判断の結果、前特定の記述が含まれると判断される場合には、前記処理手段は接続履歴情報を生成し、前記クライアントへの応答へ付加する
ことを特徴とするサーバ装置。
【請求項６】
前記クライアントからのリクエストに含まれる前記特定の記述とは、ＵＲＬに含まれるテストモード表わす記述又は前記複数のサーバ装置の１つを指定する記述であることを特徴とする請求項５の記載のサーバ装置。
【請求項７】
前記サーバ装置が生成する前記接続履歴情報は、前記サーバ装置への接続指定情報を含むクッキー情報であることを特徴とする請求項５に記載のサーバ装置。
【請求項８】
通信媒体を介して、情報処理装置からのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該情報処理装置からのリクエストを前記複数のサーバ装置の１つに送信する負荷分散装置とに接続された情報処理装置であって、
前記リクエストとしてＵＲＬに、テストモード表わす記述又は前記複数のサーバ装置の１つを指定する特定の記述を含める特定モード指定手段と、
前記特定の記述を含むリクエストを前記付加分散装置に送信する送信手段と、
前記特定の記述を含むリクエストに基づいて前記複数のサーバ装置の１つが生成した接続履歴情報を含む前記サーバ装置からの応答を受信する受信手段と、
前記接続履歴情報を保持する保持手段と
を有することを特徴とする情報処理装置。
【請求項９】
前記サーバ装置が生成する前記接続履歴情報は、前記サーバ装置への接続指定情報を含むクッキー情報であることを特徴とする請求項８記載の情報処理装置。
【請求項１０】
クライアントからのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該クライアントからのリクエストを前記複数のサーバ装置の１つに送信する負荷分散装置を備える情報処理システムの制御方法であって、
前記負荷分散装置は、
前記クライアントからのリクエストに前記サーバ装置で生成した接続履歴情報が含まれるか否かを判断する接続履歴情報判断工程と、
前記接続履歴情報判断工程の判断結果に応じて、前記クライアントからのリクエストの送信先である前記複数のサーバ装置の１つを決定するサーバ決定工程とを実行し、
前記サーバ装置は、
前記クライアントからのリクエストに特定の記述が含まれるか否かを判断する特定記述判断工程と、
前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し、前記クライアントへの応答を生成する処理工程とを実行し、
前記特定記述判断工程の判断の結果、前特定の記述が含まれると判断される場合には、前記処理工程は接続履歴情報を生成し、前記クライアントへの応答へ付加する
ことを特徴とする情報処理システムの制御方法。
【請求項１１】
前記クライアントからのリクエストに含まれる前記特定の記述とは、ＵＲＬに含まれるテストモード表わす記述又は前記複数のサーバ装置の１つを指定する記述であることを特徴とする請求項１０に記載の情報処理システムの制御方法。
【請求項１２】
前記接続履歴情報判断工程が、前記クライアントからのリクエストに前記接続履歴情報が含まれると判断した場合には、前記サーバ決定工程は、前記接続履歴情報内のサーバ指定情報に従って送信先のサーバ装置を決定し、
前記接続履歴情報判断工程が、前記クライアントからのリクエストに前記接続履歴情報が含まれないと判断した場合には、前記サーバ決定工程は、ラウンドロビン方式で送信先のサーバ装置を決定する
ことを特徴とする請求項１０に記載に情報処理システム。
【請求項１３】
前記サーバ装置が生成する前記接続履歴情報は、該サーバ装置への接続指定情報を含むクッキー情報であることを特徴とする請求項１０又は１２に記載に情報処理システム。
【請求項１４】
クライアントからのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載し、通信媒体を介して前記クライアントからのリクエストを複数の前記サーバ装置の１つに送信する負荷分散装置に接続されたサーバ装置の制御方法であって、
前記クライアントからのリクエストに特定の記述が含まれるか否かを判断する特定記述判断工程と、
前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し、前記クライアントへの応答を生成する処理工程とを有し、
前記特定記述判断工程の判断の結果、前特定の記述が含まれると判断される場合には、前記処理工程は接続履歴情報を生成し、前記クライアントへの応答へ付加する
ことを特徴とするサーバ装置の制御方法。
【請求項１５】
通信媒体を介して、情報処理装置からのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該情報処理装置からのリクエストを前記複数のサーバ装置の１つに送信する負荷分散装置とに接続された情報処理装置の制御方法であって、
前記リクエストとしてＵＲＬに、テストモード表わす記述又は前記複数のサーバ装置の１つを指定する特定の記述を含める特定モード指定工程と、
前記特定の記述を含むリクエストを前記負荷分散装置に送信する送信工程と、
前記特定の記述を含むリクエストに基づいて前記複数のサーバ装置の１つが生成した接続履歴情報を含む前記サーバ装置からの応答を受信する受信工程と、
前記接続履歴情報を保持する保持工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項１６】
請求項１０乃至１５のいずれか１項に記載の制御方法をコンピュータで実行させるためのプログラム。
【請求項１７】
請求項１６記載のプログラムを格納したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバを用いて負荷分散を行う環境下でクライアントが指定したサーバにリクエスト要求を行う情報処理システム、サーバ装置、情報処理装置及びそれらの制御方法に関する。
【背景技術】
【０００２】
コンピュータは、高性能化やコストの低下に伴いより身近な存在となり、企業等における現在の業務作業において重要な役割を持つようになってきている。そのコンピュータの利用形態には以下のような変化があった。
【０００３】
当初、大型コンピュータを中心とし、それに接続した端末装置から利用する中央集中型のモデルであった。
【０００４】
その後、小型コンピュータの高性能化に伴い、一人一人の利用者が使用するパーソナルコンピュータが高性能になった。これにより、従来は大型コンピュータを用いた中央サーバ側で全ての処理を行っていたところを、中央サーバとそれに接続したパーソナルコンピュータとで処理を分担して、業務を処理するクライアント／サーバモデルが登場した。しかし、クライアント／サーバモデルでは、大量のユーザが存在する場合に、ユーザが利用する大量のクライアントマシン上で動くアプリケーションの維持管理が大変である等の問題があった。
【０００５】
一方で、クライアント／サーバモデルが主流となっていた時期にＷｅｂの技術が登場し、それによりインターネットが大きく発展し、Ｗｅｂアプリケーションという分野が構築されていった。このＷｅｂアプリケーションとは、Ｗｅｂの技術とＴＣＰ／ＩＰをベースとしたＬＡＮ／ＷＡＮの技術によるＷｅｂベースのアプリケーション技術のことをいう。当該技術は、当初は静的なコンテンツの提供のみであった。つまり、初期のＷｅｂサーバは蓄積してあるコンテンツ（文書）をただ送出するだけのような物であった。しかし、ＷｅｂサーバでＣＧＩやサーブレット（Ｓｅｒｖｌｅｔ）といったソフトウェアをサーバ上で動かす技術が作られ、利用者がクライアントからの指示を受け取り、それを解釈して新たにクライアントに動的に表示する。これにより、Ｗｅｂシステム上でアプリケーションを動かすことができ、Ｗｅｂ技術が一方的な情報提供手段から、クライアント／サーバシステムのようなアプリケーションのプラットホームとしても利用できるようになってきた。つまり、ＣＧＩやサーブレットを利用することで、Ｗｅｂサーバが、クライアントのＷｅｂブラウザからの要求に応じて、プログラムを起動するための仕組みを利用できるようになった。そして、クライアントから入力されるデータによるプログラムの処理結果に基づいて動的にコンテンツを生成し、送出することができるようになった。Ｗｅｂアプリケーション（Ｗｅｂサービス）はＷｅｂ上で動かすアプリケーションとしては何でも良い。即ちクライアント側に特定の商用のアプリケーションをインストールしなくてもＷｅｂブラウザさえあれば所望のアプリケーションを利用できる。例えば、代表的なソフトウェア／サービスとしては、大量の商品情報を提供した電子商店や、ドキュメントのお預かりサービス等が例として挙げられる。
【０００６】
このＷｅｂアプリケーションでは、従来のクライアント／サーバモデルに比較して、クライアント側には、業務共通でＷｅｂブラウザのみを用い、アプリケーションの維持管理コストを低減できる等の利点がある。そこで、Ｗｅｂシステムが重要なサービスのプラットホームとなってきた。Ｗｅｂシステムの当初の各サービスでは、単体のサーバ構成が一般的であったが、その一台のサーバが壊れた場合にサービス全体が停止してしまい、事業活動に大きく影響してしまうという問題があった。
【０００７】
そこで、２４時間３６５日中提供が必要となるようなサービスにおいては、可用性を上げるために、複数台のサーバからサービスを提供する冗長構成をとることが一般的になっている。また、システム性能を上げるために、複数台のサーバで処理を分担することが必要になってきた。
【０００８】
しかし、複数台のサーバを用いてシステムを構築した場合にも、一連の操作（以下では、「同一のセッション」という。）については同一のサーバで処理をしないと不都合が生じる場合がある。そこで、個別サーバ情報をクッキー情報に埋め込み、その情報に基づいて負荷分散装置を用いて同一セッションを同一サーバで処理するシステムが実現している（例えば、特許文献１参照。）。図１は、負荷分散装置を用いて同一セッションを同一サーバで処理する従来のＷｅｂサービスシステムの構成を示すブロック図である。
【特許文献１】特開２００３−２５６３１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、複数のサーバを用いて構築した分散環境であっても、動作確認等のテストを行うためには、クライアントから特定のサーバを指定して接続する必要があった。特定サーバへの接続方法としては、例えば以下に示す二つの解決方法がある。
【００１０】
第１の解決方法は、各個別サーバ毎にアクセス専用のＩＰアドレスを付与し、それぞれのアドレスに接続して動作確認を行う方法である。しかし、当該方法では、動作テスト時にクライアントのｈｏｓｔｓファイルに個別に割り振ったＩＰアドレスの記載変更が必要となり、作業効率が悪くなるという問題があった。ここで、ｈｏｓｔｓファイルとは、ホスト名とＩＰアドレスの対応関係を記述したファイルのことである。このファイルを参照してネットワーク上の名前解決を行う。
【００１１】
第２の解決方法は、一度アクセスした後に、クライアントのブラウザ上でクッキー情報を強制変更する方法である。これは通信データ（パケット）を専用のネットワークツールでデータ書き換えを行う方法である。しかし、当該方法では、変更に要する手順が多くなり、多数のサーバに接続確認を行う場合には作業効率が悪いという問題があった。ここでクッキー（Ｃｏｏｋｉｅ）とは、ユーザー情報やアクセス履歴などの情報をＷｅｂブラウザとＷｅｂサーバ間でやりとりするための仕組みである。クライアントのＷｅｂブラウザ用のキャッシュ領域にテキスト形式で保存されるクッキーがある。また、ＷｅｂブラウザとＷｅｂサーバの通信時のみに利用されてキャッシュ領域に保存されない一時的なクッキーもある。クッキーはＷｅｂ技術では一般的に利用されているものである。一般的にクッキーは、Ｗｅｂサーバからの指示によって、Ｗｅｂクライアント側で作成され、保存される。このとき保存されるデータは、クッキーの名前、値、クッキーの有効期限、有効ドメイン／パスである。こうしてクッキーが作成されると、以後クライアント側のブラウザは、指定されたＵＲＬとクッキーの有効ドメイン／パスが一致しているかどうかを検査し、一致していれば、クッキーのデータをサーバ側に暗黙的に送信する。クッキーを用いることで、次回のアクセスあるいはセッションで、クライアントがこのクッキー情報をＷｅｂサーバ側に暗黙的に送信することで、それが特定のクライアントからのアクセスであることがＷｅｂサーバで識別できるようになる。
【００１２】
本発明は、サーバテストや動作監視等のために、動作確認者が、負荷分散システム上の複数サーバの中から特定のサーバを容易に選択してリクエストに応じさせることができるＷｅｂシステム、情報処理装置及びそれらの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明の情報処理システムは、クライアントからのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該クライアントからのリクエストを前記複数のサーバ装置の１つに送信する負荷分散装置を備える情報処理システムにおいて、
前記負荷分散装置は、
前記クライアントからのリクエストに前記サーバ装置で生成した接続履歴情報が含まれるか否かを判断する接続履歴情報判断手段と、
前記接続履歴情報判断手段の判断結果に応じて、前記クライアントからのリクエストの送信先である前記複数のサーバ装置の１つを決定するサーバ決定手段とを有し、
前記サーバ装置は、
前記クライアントからのリクエストに特定の記述が含まれるか否かを判断する特定記述判断手段と、
前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し前記クライアントへの応答を生成する処理手段とを有し、
前記特定記述判断手段の判断の結果、前特定の記述が含まれると判断される場合には、前記処理手段は接続履歴情報を生成し、前記クライアントへの応答へ付加する。
【００１４】
また、上記課題を解決するために、本発明のサーバ装置は、クライアントからのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載したサーバ装置であって、
通信媒体を介してクライアントからのリクエストを複数の前記サーバ装置の１つに送信する負荷分散装置に接続され、
前記クライアントからのリクエストに特定の記述が含まれるか否かを判断する特定記述判断手段と、
前記クライアントからのリクエストに応じて前記アプリケーションの処理を実行し前記クライアントへの応答を生成する処理手段とを有し、
前記特定記述判断手段の判断の結果、前特定の記述が含まれると判断される場合には、前記処理手段は接続履歴情報を生成し、前記クライアントへの応答へ付加する。
【００１５】
さらに、上記課題を解決するために、本発明の情報処理装置は、通信媒体を介して、情報処理装置からのリクエストに応じてＷｅｂサービスを実行するアプリケーションを搭載した複数のサーバ装置と、該情報処理装置からのリクエストを前記複数のサーバ装置の１つに送信する負荷分散装置とに接続された情報処理装置であって、
前記リクエストとしてＵＲＬに、テストモード表わす記述又は前記複数のサーバ装置の１つを指定する特定の記述を含める特定モード指定手段と、
前記特定の記述を含むリクエストを前記付加分散装置に送信する送信手段と、
前記特定の記述を含むリクエストに基づいて前記複数のサーバ装置の１つが生成した接続履歴情報を含む前記サーバ装置からの応答を受信する受信手段と、
前記接続履歴情報を保持する保持手段と
を有する。
【発明の効果】
【００１６】
本発明によれば、サーバテストや動作監視等のために、動作確認者が、負荷分散システム上の複数サーバの中から特定のサーバを容易に選択してリクエストに応じさせることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明の一実施形態に係るＷｅｂサービスシステムの詳細について説明する。
【００１８】
＜第１の実施例＞
図２は、本発明の第１の実施例に係るＷｅｂサービスシステムの構成を示すブロック図である。図２において、１は、複数台のサーバからなるＷｅｂサービスシステムを示す。このＷｅｂサービスシステム１は、何台かのサーバ（本実施例では、一例として、サーバ１０、２０、３０の３台で構成）と負荷分散装置４０とを備える。
【００１９】
サーバ１０、２０、３０は全て同じ構成であり、それぞれのサーバ上で動くアプリケーションプログラムとして、選択アプリケーション１１、２１、３１と、一般アプリケーション１２、２２、３２とがインストールされている。ここで、選択アプリケーション（制御アプリケーション）１１、２１，３１は同一のアプリケーションであり、単に別のサーバ上で動いている。また、一般アプリケーション（サービスアプリケーション）１２、２２、３２も同様であり、クライアント２からのリクエストに応える。
【００２０】
選択アプリケーション１１、２１、３１は、クッキー情報中のサーバ指定情報に対して、自ホスト固有の番号を付与せずに、ユーザが指定したＵＲＬパラメータ内の情報をクライアント２のクッキー情報としてクライアント２に返す（Ｓ１１２）。ＵＲＬパラメータ（引数）内の情報としては、例えば、後述する図７におけるサーバ指定部分１５３、１５４のＳＲＶ＝１の部分がある。 また、一般アプリケーション１２、２２、３２は、「背景技術」の部分で述べたようなユーザが利用するようなアプリケーションである。
【００２１】
尚、クライアント２からのリクエストにサーバを指定するクッキーが含まれていない場合には、その後のセッションを同一サーバに接続するようにするために、各サーバは、自ホスト固有の番号を含めたクッキーをクライアント２に返す。また、一般アプリケーション１２、２２、３２は、図２中では便宜的に一つのみで示しているが、複数のアプリケーションから成り立っていても良い。さらに、サーバ２０、３０についても、サーバ１０と同様の構成である。そして、各サーバ上で動いている一般アプリケーションや選択アプリケーションは同一である。
【００２２】
図２において負荷分散装置４０は、サーバ１０、２０、３０に対する負荷分散を実施するための汎用の装置である。負荷分散装置４０は、クッキー内のサーバを指定している部分を確認し、適切なサーバに対してクライアント２からのリクエストを振り分けて転送する。また、クッキー情報内にサーバ指定情報が無い場合には、ＤＮＳラウンドロビン等の適当なルールに基づいてサーバの選択を行う。例えば、クライアント２からの最初の接続では、クッキー情報が無いために、ＤＮＳラウンドロビン等にしたがって接続先が決まる。ＤＮＳラウンドロビンとは、一つのドメイン名に複数のＩＰアドレスを割り当てる負荷分散技術の一つである。トラフィック負荷を複数のＩＰアドレスに振り分けることにより、例えばＨＴＴＰサーバ（Ｗｅｂサーバ）に対するアクセスをほぼ同量ずつ複数のサーバマシンに分配することができる。ＤＮＳラウンドロビンでは、同様の構成にした系を複数用意して処理要求を順番に割り振るのが一般的である。図２に示す例では、最初の接続でＤＮＳラウンドロビン等にしたがってサーバ２０に接続している（Ｓ１１１）。
【００２３】
その後、例えば、サーバ側でクッキー情報を付与する等して、次回のクライアント２からの接続の場合には、クッキーに適切な情報があるためにその情報を元にして負荷分散装置４０は、同じサーバに接続を割り振る。一般的な負荷分散を説明した図１では、サーバ２０からのレスポンスでクッキーを付与している（Ｓ１０２）。そして、クライアント２からの２回目のアクセス（Ｓ１０３）では、クッキーにサーバ情報があるために、その情報を元にして１回目の接続（Ｓ１０１）と同一のサーバ２０に接続している。
【００２４】
また、図２に示すように、負荷分散装置４０によりＤＮＳラウンドロビンでサーバ２０に接続した後、サーバ２０によってレスポンス（Ｓ１１２）で、サーバ１０に接続するための情報を含んだクライアント２用のクッキー情報を付与する。そしてクライアント２は当該クッキー情報を保持して自身のクッキー情報とする。そして、クライアント２からの２回目のアクセス（Ｓ１１３）では、クッキーにサーバ情報があるために、その情報を元にしてクライアント２の希望通りのサーバ１０に接続できる。
【００２５】
クライアント２は、Ｗｅｂサービスシステム１の利用者が用いるコンピュータである。このコンピュータでは、ＴＣＰ／ＩＰでの通信が行え、アプリケーションとしてはＷｅｂブラウザを持ち、それを用いてＷｅｂサービスシステム１に接続することが可能である。ＷｅｂブラウザはＭｉｃｒｏｓｏｆｔ社のＩｎｔｅｒｎｅｔ Ｅｘｐｌｏｒｅｒ（登録商標）やＭｏｚｉｌｌａ ＣｏｒｐｏｒａｔｉｏｎのＦｉｒｅｆｏｘ（登録商標）等一般に広く用いられているものである。
【００２６】
図３は、図２に示すサーバ１０、２０、３０の細部構成を示すハードウェア構成図である。各サーバは、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ハードディスクドライブ（ＨＤＤ）２０４、負荷分散装置４０や他のサーバとの通信を行うローカルエリアネットワーク（ＬＡＮ）に接続するＬＡＮインタフェース２０５を備える。また、各サーバは、サーバの指示によって画像等の情報を表示するディスプレイ２１１、サーバに種々の情報を入力するためのキーボード２１２、ディスプレイ２１１の任意の位置を指示するマウス２１３を接続するＩ／Ｏインタフェース２０６を備える。図３の１０の構成上ではサーバＯＳ（オペレーティング・システム）が搭載され動作している。サーバＯＳとしては、Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ（商標）、Ｗｉｎｄｏｗｓ Ｓｅｒｖｅｒ（登録商標）等が一般的である。
【００２７】
そして、各サーバは、所定の記録媒体に記録されたプログラムを読み出して実行することでＷｅｂサーバとしての機能を実現する。ここで、所定の記録媒体とは、サーバ１０の内外に備えられるハードディスクドライブ（ＨＤＤ）２０４や、ＲＯＭ２０２、ＲＡＭ２０３等の「固定用の物理媒体」を用いるのが一般的である。また、フレキシブルディスク（ＦＤ）２０８、ＣＤ−ＲＯＭ２０７、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」を用いても良い。さらに、他のサーバが接続されたＬＡＮ等のように、プログラムの送信に際して短期にプログラムを保持する「通信媒体」等のサーバによって読み取り可能なプログラムを記録する、あらゆる記録媒体を含む。
【００２８】
すなわち、プログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」等の記録媒体に、コンピュータ読み取り可能に記録されるものである。そして、各サーバは、このような記録媒体からプログラムを読み出して実行することでＷｅｂサーバとしての機能を実現する。また、前述したＯＳもこのプログラムの一種である。ＯＳはサーバ上で動作する一番上位層のプログラムで、各ＷｅｂアプリケーションのプログラムはＯＳの下位層で動作する。これは例えば、一般的なＰＣ（パソコン）で動作するＷｉｎｄｏｗｓ（登録商標）ＯＳとインストールされるアプリケーションの関係と同じであり、周知技術である。
【００２９】
図４は、各サーバが選択アプリケーション１１、２１、３１を実行させたときの処理手順を説明するためのフローチャートである。
【００３０】
まず、サーバは、負荷分散装置４０を経由して届いたクライアント２からのリクエストを受信する（ステップＳ１２１）。次に、サーバは、受け取ったリクエストを解析して、ＵＲＬパラメータ中のサーバ番号を割り出す（ステップＳ１２２）。具体的には、図７に示すようなクライアント２からのリクエスト中の決まった文字列１５３の引数の値１５４を解析処理して導き出すこととなる。
【００３１】
そして、次に、サーバは、クライアント２へのレスポンスを作成する（ステップＳ１２３）。ここでは、ステップＳ１２２で解析した結果に基づいて、クライアント２が要求しているサーバ番号をレスポンスのクッキー情報中に付与する。そして、最後に、サーバはレスポンス返送として、クライアント２にステップＳ１２３で作成したレスポンスを返送する（ステップＳ１２４）。
【００３２】
図５は、負荷分散装置４０の処理手順を説明するためのフローチャートである。まず、クライアント２からのリクエストを受信する（ステップＳ１３１）。次に、リクエスト時のクッキー情報の中から、サーバを指定する情報を探す（ステップＳ１３２）。その結果、サーバ指定情報があった場合（Ｙｅｓ）はステップＳ１３３に移り、サーバ指定情報がない場合（Ｎｏ）はステップＳ１３４に移る。
【００３３】
ステップＳ１３３では、クッキー情報中のサーバ指定情報より、リクエストを転送する転送先のサーバを決定する。一方、ステップＳ１３４では、クッキー情報内にサーバ指定情報がないので、リクエストの転送先は不定である。そこで、この場合は、負荷分散装置４０のルールに基づいてリクエストを転送するサーバを決定する。負荷分散装置４０は、例えば、ＤＮＳラウンドロビンや、各サーバの負荷状況等によって決定する。
【００３４】
そして、ステップＳ１３３又はステップＳ１３４で決定した転送先のサーバにリクエストを転送する（ステップＳ１３５）。
【００３５】
図６は、各サーバにインストールされた一般アプリケーション１２、２２、３２による処理を説明するためのフローチャートである。以下、代表的にサーバ１０にインストールされた一般アプリケーション１２を用いて説明する。サーバ１０は、負荷分散装置４０経由で届いたクライアント２からのリクエストを受信する（ステップＳ１４１）。次に、クライアント２からのリクエストに一連の操作を一意に決めるセッション情報が存在するか否かを確認する（ステップＳ１４２）。その結果、セッション情報がある場合（Ｙｅｓ）はステップＳ１４３に移行し、セッション情報がない場合（Ｎｏ）はステップＳ１４４に移行する。尚、このセッション情報を元にして、サーバ１０は、クライアント２の操作を一連の操作と認識し、認証情報や操作情報をサーバ側で保持する。通信プロトコルとしてはセッションとコネクションという２種類の通信接続概念があるが、本実施形態では、このセッション情報を用いて説明するものとするが特に通信形態を限定するものではない。
【００３６】
ステップＳ１４３では、サーバ１０は、クッキー情報内のセッション情報と既存のセッション情報との対応付けを行ってステップＳ１４５に移行する。一方、ステップＳ１４４では、新たな接続と判断して、新しいセッション情報をサーバ１０が作成する。
【００３７】
ステップＳ１４５では、ステップＳ１４３で既存のセッション情報との対応付けに失敗したか否かの判断を行う。尚、失敗した場合とは、クライアント２からのリクエスト中のセッション情報が、サーバ１０上のセッション情報群に無い場合である。その場合には、不正なリクエストであると判断する。ステップＳ１４５で対応付けに失敗した場合にはステップＳ１４８に移行し、成功した場合にはステップＳ１４６に移行する。
【００３８】
ステップＳ１４６では、セッション情報に基づいてクライアント２からのリクエストに対する処理を行う。そして、サーバ１０は、クライアント２に対して返信を送る（ステップＳ１４７）。一方、ステップＳ１４８では、クライアント２からの不正リクエストであるため、エラーであるの旨の回答をクライアント２に返す。
【００３９】
図７は、各サーバにインストールされた選択アプリケーション１１、２１、３１に対する接続ＵＲＬの一例を示す図である。図７において、サーバ名１５１は、ネットワーク上の一意のホスト名を示す。これは一般的なＤＮＳ技術によるものである。即ち、コンピュータ名またはコンピュータのドメイン名とＩＰアドレスを変換する技術である。また、アプリケーション名１５２は、選択アプリケーション１１、２１、３１への接続要求を示す。ここで、図７では、「ｓｅｌｅｃｔＳＲＶ」としているが、任意のアプリケーション名を用いることができる。さらに、変数１５３は、ＵＲＬパラメータのサーバを指定する変数を示す。図７では、一例として「ＳＲＶ」としているが、選択アプリケーション毎に一意の文字列であれば問題は無い。そして、引数１５４は、変数１５３の引数を示し、その値によってサーバを指定することができる。例えば、引数「１」はサーバ１０、引数「２」はサーバ２０、引数「３」はサーバ３０に対応する。図７の１５４は引数「１」であるのでサーバ１０を指定していることになる。
【００４０】
図８は、クライアント２で動作確認者が表示させることができるＷｅｂサーバ選択ページの表示画面の一例を示す図である。
【００４１】
図８において、リンク１６１、１６２、１６３は、各サーバを選択するための選択アプリケーションへジャンプするためのＵＲＬが張られたリンクである。また、マウスポインタ１６４は、サーバ１０を選択するためのリンク１６１を選択しようとしている。さらに、リンク先表示１６５には、マウスポインタ１６４が選択している先のリンク１６１の具体的なＵＲＬが表示されている。
【００４２】
図７に示すＵＲＬパラメータ１５３、１５４中でサーバを指定する情報は、各サーバ個別の引数（サーバ番号）１５４であったが、個別のサーバを識別することができれば、数字ではなく英字や、英字と数字の組み合わさったものであっても良い。また、サーバを指定する情報をハッシュ関数等を用いて暗号化された情報として取り扱ってもよい。
【００４３】
また、一般アプリケーション１２、２２、３２は、一つのＷｅｂサービスアプリケーションとして記載したが、複数のアプリケーションで構成されていても良い。
【００４４】
さらに、選択アプリケーション１１、２１、３１からのレスポンス（Ｓ１１２）については特に明記していないが、例えば、一般アプリケーション１２、２２、３２のログイン要求画面等の初期画面に対してのリダイレクトレスポンスであっても良い。ここでリダイレクトとは、あるＵＲＬから他のＵＲＬに転送させることや、プログラムの入力元や出力先を本来の出力先とは違うものに変更することを意味する。この場合の動作確認処理は、図８に示すサーバ選択画面からワンクリックで希望のサーバの動作確認に移ることができる。
【００４５】
＜第２の実施例＞
次に、本発明の２つ目の実施例について説明する。
【００４６】
図９は、本発明の第２の実施例に係るＷｅｂサービスシステムの構成を示すブロック図である。クライアント２から最初のリクエストをサーバへ送信する（Ｓ２０１）。本実施例では、各サーバ１０、２０、３０で動く選択アプリケーション１３、２３、３３は、受け取ったリクエストのＵＲＬパラメータが示すサーバの一般アプリケーションに対して処理に依頼する。図９では、一例として、最初にクッキー情報がないことから負荷分散装置４０のルールによってサーバ２０にクライアント２からのリクエストが転送される。そして、サーバ２０は、サーバ１０が当該リクエストに応じるサーバであることを認識すると、サーバ１０に対してその旨を知らせて（Ｓ２０２）回答を受けて（Ｓ２０３）、その回答をクライアント２に返す（Ｓ２０４）。その後、クライアント２からのリクエストは、希望のサーバ１０に直接送信されることとなる（Ｓ２０５）。本実施例ではクッキーはサーバ１０が埋め込み（Ｓ２０２、Ｓ２０３）そしてサーバ２０がクライアント２へ代理応答する（Ｓ２０４）。以後、クライアント２は、そのクッキー情報を使ってサーバ１０と通信する（Ｓ２０５、Ｓ２０６）。
【００４７】
図１０は、第２の実施例においてクライアント２から送信される最初のリクエスト例を示す図である。図１０において、ホスト部２１１、アプリケーション指定部２１２、サーバ指定部２１３、２１４は、第１の実施例での図７の各部と同じ役割をするものである。そして、図１０では、それ以外に、ＵＲＬ指定部２１５、２１６が引数に加わっている。選択アプリケーション１３、２３、３３は、サーバ指定部２１４で示されるサーバに対して、ＵＲＬ指定部２１６で示されるＵＲＬリクエストを送信し、そのレスポンスをプロキシのような形でクライアント２に返す。つまり、第２の実施例では図９において、負荷分散装置は４０は、まずサーバ２０へクライアント２からのリクエストを送信する（Ｓ２０１）。このリクエストは図１０を参照すれば、サーバ指定部２１３の引数が「１」であるのでサーバ１０を指定し、かつＵＲＬ指定部２１５、２１６で記述されるＵＲＬをサーバ１０へ送信することになる（Ｓ２０２）。
【００４８】
図１１は、第２の実施例における選択アプリケーション１３、２３、３３による処理を説明するためのフローチャートである。以下では代表的にサーバ２０にインストールされた選択アプリケーション２３による処理について説明する。
【００４９】
まず、クライアント２からのリクエスト（Ｓ２０１）を受け取る（ステップＳ２２１）。次に、次の処理の前処理として図１０に示すようなリクエストのＵＲＬパラメータ部分の解析を行う（ステップＳ２２２）。そして、ステップＳ２２２での解析結果に基づいてサーバ指定部２１４で指定されたサーバに対して、リクエスト２１６のＵＲＬリクエスト（Ｓ２０２）を行う（ステップＳ２２３）。例えば、図１０に示すようなＵＲＬのリクエストの場合では、サーバ１０に対してリクエストを行う。
【００５０】
その後、ステップＳ２２３で送信したリクエストのレスポンス（Ｓ２０３）をサーバ１０から受信する（ステップＳ２２４）。そして、ステップＳ２２４で受け取ったサーバのレスポンスを加工せずに、クライアント２にレスポンス（Ｓ２０４）のように返す（ステップＳ２２５）。
【００５１】
尚、上記以外の一般アプリケーション１２、２２、３２や負荷分散装置４０の構成や機能、フローチャートで示される処理手順については第１の実施例と同じである。また、上述した各実施例での処理は、通常の負荷分散モードとは別に、クライアント側から複数のサーバのそれぞれが特定のサーバを指定してリクエストに応えさせるモードの場合に行うようにしてもよい。
【００５２】
第１及び第２の実施例で説明したように、本実施形態に係るＷｅｂサービスシステムでは、負荷分散を行うサーバアプリケーション環境において、動作確認者等が容易に評価対象とするＷｅｂサーバを選択することができる。そして、全ての構成変更は、アプリケーションサーバ側で行っているため、負荷分散装置４０等のシステムの他の構成要素に対しての変更が不要である。さらに、監視アプリケーションを用いて、クライアント側から個別サーバを指定してアプリケーションの動作監視をすることが容易である。
【００５３】
＜他の実施形態＞
以上、実施形態例を詳述したが、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００５４】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００５５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００５６】
プログラムを供給するための記録媒体としては、例えば、以下のようなものがある。フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）。
【００５７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。すなわち、ホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００５８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００５９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他にも、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００６０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後にも前述した実施形態の機能が実現される。すなわち、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行うことによっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００６１】
【図１】負荷分散装置を用いて同一セッションを同一サーバで処理する従来のＷｅｂサービスシステムの構成を示すブロック図である。
【図２】本発明の第１の実施例に係るＷｅｂサービスシステムの構成を示すブロック図である。
【図３】図２に示すサーバ１０、２０、３０の細部構成を示すハードウェア構成図である。
【図４】各サーバが選択アプリケーション１１、２１、３１を実行させたときの処理手順を説明するためのフローチャートである。
【図５】負荷分散装置４０の処理手順を説明するためのフローチャートである。
【図６】各サーバにインストールされた一般アプリケーション１２、２２、３２による処理を説明するためのフローチャートである。
【図７】各サーバにインストールされた選択アプリケーション１１、２１、３１の接続ＵＲＬの一例を示す図である。
【図８】クライアント２で動作確認者が表示させることができるＷｅｂサーバ選択ページの表示画面の一例を示す図である。
【図９】本発明の第２の実施例に係るＷｅｂサービスシステムの構成を示すブロック図である。
【図１０】第２の実施例においてクライアント２から送信される最初のリクエスト例を示す図である。
【図１１】第２の実施例における選択アプリケーション１３、２３、３３による処理を説明するためのフローチャートである。
【符号の説明】
【００６２】
１  Ｗｅｂサービスシステム
２  クライアント  
１０、２０、３０  サーバ
１１、２１、３１  選択アプリケーション
１２、２２、３２  一般アプリケーション
４０  負荷分散装置
【図１】
2007164527.tif 000003
【図２】
2007164527.tif 000004
【図３】
2007164527.tif 000005
【図４】
2007164527.tif 000006
【図５】
2007164527.tif 000007
【図６】
2007164527.tif 000008
【図７】
2007164527.tif 000009
【図８】
2007164527.tif 000010
【図９】
2007164527.tif 000011
【図１０】
2007164527.tif 000012
【図１１】
2007164527.tif 000013