(57)【要約】【課題】効率的な処理が行われるように通信を中継する。【解決手段】複数の第１コンピュータと、第２コンピュータとが接続される場合に、第２コンピュータからの通信を第１コンピュータに中継する中継装置は、特定の第１コンピュータから、第２コンピュータからの第１の通信に対する応答を受信する受信部と、応答に含まれる通信識別子に対応付けて、特定の第１コンピュータの識別子を記憶する転送ルールデータ格納部と、第２コンピュータから第２の通信を受信すると、第２の通信に含まれている通信識別子に基づき転送ルールデータ格納部から、当該第２の通信の転送先の第１コンピュータを決定し、決定した第１コンピュータのアドレス宛に第２の通信を転送する転送部とを有する。【選択図】図１０
2011258014.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１コンピュータと、第２コンピュータとが接続され、前記第２コンピュータからの通信を前記第１コンピュータに中継する中継装置により実行される中継処理方法であって、
特定の第１コンピュータから、前記第２コンピュータからの第１の通信に対する応答を受信する受信ステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第１コンピュータの識別子を転送ルールデータ格納部に格納する格納ステップと、
前記第２コンピュータから第２の通信を受信すると、前記第２の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第２の通信の転送先の第１コンピュータを決定し、決定した第１コンピュータのアドレス宛に前記第２の通信を転送する転送ステップと、
を含む中継処理方法。
【請求項２】
前記格納ステップにおいて、前記第１の通信に関わる第１アプリケーションに対応する第１アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第２の通信に含まれている第２アプリケーション識別子に基づいて、担当する第１コンピュータを決定することを特徴とする請求項１記載の転送方法。
【請求項３】
複数の第１コンピュータと、第２コンピュータとが接続され、前記第２コンピュータからの通信を前記第１コンピュータに中継するコンピュータに、
特定の第１コンピュータから、前記第２コンピュータからの第１の通信に対する応答を受信するステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第１コンピュータの識別子を転送ルールデータ格納部に格納するステップと、
前記第２コンピュータから第２の通信を受信すると、前記第２の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第２の通信の転送先の第１コンピュータを決定し、決定した第１コンピュータのアドレス宛に前記第２の通信を転送する転送ステップと、
を実行させるプログラム。
【請求項４】
前記格納ステップにおいて、前記第１の通信に関わる第１アプリケーションに対応する第１アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第２の通信に含まれている第２アプリケーション識別子に基づいて、担当する第１コンピュータを決定することを特徴とする請求項３記載のプログラム。
【請求項５】
複数の第１コンピュータと、第２コンピュータとが接続される場合に、前記第２コンピュータからの通信を前記第１コンピュータに中継する中継装置であって、
特定の第１コンピュータから、前記第２コンピュータからの第１の通信に対する応答を受信する受信部と、
前記応答に含まれる通信識別子に対応付けて、特定の第１コンピュータの識別子を記憶する転送ルールデータ格納部と、
前記第２コンピュータから第２の通信を受信すると、前記第２の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第２の通信の転送先の第１コンピュータを決定し、決定した第１コンピュータのアドレス宛に前記第２の通信を転送する転送部と、
を含む中継装置。
【請求項６】
前記転送ルールデータ格納部は、前記第１の通信に関わる第１アプリケーションに対応する第１アプリケーション識別子を前記応答から抽出された前記通信識別子に対応づけて記憶し、
前記転送部は、前記第２の通信に含まれている第２アプリケーション識別子に基づいて、担当する第１コンピュータを決定することを特徴とする請求項５記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、複数のアプリケーション・プログラムを分担して実行するサーバのグループが複数接続される中継装置に関する。
【背景技術】
【０００２】
現在、企業では複数のサーバを用いて業務を行なっており、図１に示すように、複数のサーバを収容しているサーバラック１０００、さらにサーバラック群をエリア／アイランドとして構成して下位のネットワーク機器（図ではＮＷ機器と記す）に接続する。さらに、下位のネットワーク機器を上位のネットワーク機器を介してインターネットなどの拠点外のネットワークに接続している。また、図１に示すように、複数の拠点で１又は複数のエリア／アイランドを構成して、それらがインターネットなどの拠点外のネットワークを介して接続されている。このようなサーバ構成を、企業独自で構築する場合もあれば、データセンタがサービス提供のために構築している場合もある。
【０００３】
また、このようなサーバ群には、複数の業務アプリケーション（以下、アプリケーションと記す）が搭載されている。複数のアプリケーションが連携する場合、例えば、アプリケーションＡとアプリケーションＢとが連携する場合、まず端末からアプリケーションＡを実行するサーバへアクセスし、その後その端末からアプリケーションＢを実行するサーバへアクセスする。その後、アプリケーションＢではアプリケーションＡへアクセスしたときに生成されたデータなどを用いるため、アプリケーションＢはアプリケーションＡへアクセスして必要となるデータを取得する。そして、アプリケーションＢは処理を行って、端末に応答を返す。このようにアプリケーションＡとアプリケーションＢとは通信を行うことになるが、できるだけ早く端末に応答を返すためには、この通信を高速に行うことが好ましい。
【０００４】
従来では、図２に示すように、同一アプリケーションが搭載されている複数のサーバが存在している場合、負荷分散装置（Load Balancer）によって負荷分散が行われる。すなわち、例えばラウンドロビンなどの手法によって、複数のサーバのそれぞれに端末からの通信メッセージを順番に割り当てている。具体的には、アプリケーションＡはサーバ１乃至ｍまでに搭載されているので、負荷分散装置は、サーバ１乃至ｍのいずれかに端末からの通信メッセージを転送する。また、アプリケーションＢはサーバｎ乃至ｘまでに搭載されているので、負荷分散装置は、サーバｎ乃至ｘのいずれかに端末からの通信メッセージを転送する。
【０００５】
アプリケーション間の連携がない場合には、このような単純な転送ルールであっても特に問題がない。しかしながら、図１に示したようなサーバ構成で、複数エリア／アイランド、又は複数拠点に連携する複数のアプリケーションが分散して搭載されている場合には問題が生ずる。
【０００６】
例えば、図３において、サーバグループ１が１つのラック、エリア／アイランド又は拠点に相当し、サーバグループ２が他のラック、エリア／アイランド又は拠点に相当するものとする。サーバグループ１に含まれるサーバ１にはアプリケーションＡが搭載されており、サーバ２にはアプリケーションＢが搭載されている。さらに、サーバグループ２に含まれるサーバ３にはアプリケーションＡが搭載されており、サーバ４にはアプリケーションＢが搭載されている。従来からある負荷分散装置であれば、サーバグループ１においてアプリケーションＡを実行しているサーバ１を最初に選択した後、サーバグループ２においてアプリケーションＢを実行しているサーバ４を選択してしまうことがある。
【０００７】
しかしながら、アプリケーション間の通信時間はサーバの物理的な位置に依存する。すなわち、同一サーバ内、サーバラック間、エリア間、拠点間の順番で通信時間が増加する可能性がある。図３のような場合には、サーバグループ間での通信となるため、サーバ１が最初に選択されたならば次にサーバ２を選択する方が好ましい。
【０００８】
なお、同一構成を有する複数のサーバが中継装置に接続されており、端末とサーバが同一セッションにおいて複数回通信を行う場合には、セッションＩＤをキーにして同一サーバにメッセージを転送する技術は存在しているが、上で述べたように複数のアプリケーションが複数のサーバに分散して搭載されており且つアプリケーション間で連携がある場合については考慮されていない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−１６３２４１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従って、本技術の目的は、一側面によれば、効率的な処理が行われるように通信を中継するための新規な技術を提供することである。
【課題を解決するための手段】
【００１１】
本中継処理装置は、複数の第１コンピュータと、第２コンピュータとが接続される場合に、第２コンピュータからの通信を第１コンピュータに中継する中継装置であって、（Ａ）特定の第１コンピュータから、第２コンピュータからの第１の通信に対する応答を受信する受信部と、（Ｂ）応答に含まれる通信識別子に対応付けて、特定の第１コンピュータの識別子を記憶する転送ルールデータ格納部と、（Ｃ）第２コンピュータから第２の通信を受信すると、第２の通信に含まれている通信識別子に基づき転送ルールデータ格納部から、当該第２の通信の転送先の第１コンピュータを決定し、決定した第１コンピュータのアドレス宛に第２の通信を転送する転送部とを有する。
【発明の効果】
【００１２】
効率的な処理が行われるように通信を中継できるようになる。
【図面の簡単な説明】
【００１３】
【図１】図１は、システムの一例を示す図である。
【図２】図２は、負荷分散について説明するための図である。
【図３】図３は、従来技術の問題を説明するための図である。
【図４】図４は、第１の実施の形態におけるシステム概要を示す図である。
【図５】図５は、第１の実施の形態における中継装置の機能ブロック図である。
【図６】図６は、第１の実施の形態におけるシステムのシーケンス図である。
【図７】図７は、第１の実施の形態におけるアプリケーション収容データテーブルの一例を示す図である。
【図８】図８は、第１の実施の形態におけるアプリケーション名決定テーブルの一例を示す図である。
【図９】図９は、第１の実施の形態におけるサーバグループテーブルの一例を示す図である。
【図１０】図１０は、第１の実施の形態における中継装置の処理フローを示す図である。
【図１１】図１１は、第１の実施の形態における転送ルールテーブルの一例を示す図である。
【図１２】図１２は、統合テーブルの一例を示す図である。
【図１３】図１３は、統合テーブルの他の例を示す図である。
【図１４】図１４は、第２の実施の形態におけるシステム概要を示す図である。
【図１５】図１５は、第２の実施の形態におけるアプリケーション名決定テーブルの一例を示す図である。
【図１６】図１６は、第２の実施の形態におけるサーバグループテーブルの一例を示す図である。
【図１７】図１７は、第２の実施の形態におけるアプリケーション収容データテーブルの一例を示す図である。
【図１８】図１８は、第２の実施の形態におけるアプリケーショングループテーブルの一例を示す図である。
【図１９】図１９は、第２の実施の形態における中継装置の処理フローを示す図である。
【図２０】図２０は、第２の実施の形態における中継装置の処理フローを示す図である。
【図２１】図２１は、第２の実施の形態における転送ルールテーブルの一例を示す図である。
【図２２】図２２は、第２の実施の形態における統合テーブルの一例を示す図である。
【発明を実施するための形態】
【００１４】
［実施の形態１］
本実施の形態に係るシステムの概要を図４を用いて説明する。図４に示すように、ネットワークを介して複数のクライアント端末１００が中継装置２００に接続されており、さらに中継装置２００には、複数のサーバが接続されている。本実施の形態では、サーバ１及びサーバ２がサーバグループ１に含まれ、サーバ３及びサーバ４がサーバグループ２に含まれる。サーバグループ内のサーバは位置的に近い、例えば同一ラック内、同一エリア／アイランド内又は拠点内のサーバである。本実施の形態では、連携するアプリケーション・プログラム（以下、簡単にアプリケーションと呼ぶ）はアプリケーションＡ及びＢであり、このアプリケーション・グループは、複数のサーバグループに搭載されている。具体的には、アプリケーションＡはサーバグループ１のサーバ１及びサーバグループ２のサーバ３に搭載され、アプリケーションＢはサーバグループ１のサーバ２及びサーバグループ２のサーバ４に搭載されている。アプリケーション・グループに属するアプリケーションの種類は２種類に限定されるものではないが、複数のサーバグループの各々において、アプリケーション・グループに属する全てのアプリケーションを分担して複数のサーバで実行するようになっている。サーバグループの数も２に限定されるものではない。なお、アプリケーション・グループに属するアプリケーションは、それ以外のアプリケーションとは連携しないものとする。
【００１５】
図４の例では、サーバ１のＩＰアドレスは「１０．１０．１０．１」で、サーバ２のＩＰアドレスは「１０．１０．１０．２」で、サーバ３のＩＰアドレスは「１０．１０．１０．１１」で、サーバ４のＩＰアドレスは「１０．１０．１０．１２」であるものとする。
【００１６】
次に、図５に、本実施の形態に係る中継装置２００の機能ブロック図を示す。中継装置２００は、（Ａ）クライアント端末１００側のメッセージ受信部２０１及びメッセージ転送部２０２と、（Ｂ）サーバ側のメッセージ受信部２０４及びメッセージ転送部２０５と、（Ｃ）転送ルールその他のデータを格納するデータ格納部２０７と、（Ｄ）データ格納部２０７に格納されているデータに基づき、メッセージ受信部２０１から受信したメッセージを適切なサーバへメッセージ転送部２０５に出力させ且つメッセージ受信部２０４から受信したメッセージを適切なクライアント端末１００へメッセージ転送部２０２に出力させる転送先決定部２０３と、（Ｅ）転送先決定部２０３からの指示によってデータ格納２０７に格納されているデータを用いて転送ルールを生成する転送ルール生成部２０６とを有する。
【００１７】
次に、図４に示したシステムの動作の概要を図６を用いて説明する。なお、図４で示しているかっこ付きの数字は、図６におけるかっこ付きの数字と同じである。まず、クライアント端末１００は、アプリケーションＡに対するリクエストを中継装置２００へ送信する（ステップ（１））。中継装置２００のメッセージ受信部２０１は、クライアント端末１００からリクエストを受信すると、転送先決定部２０３に出力する（ステップ（１１））。転送先決定部２０３は、リクエストを受信すると、以下で述べるようにデータ格納部２０７に格納されているアプリケーション収容データテーブルから、アプリケーションＡを実行している１つのサーバを選択して、当該選択サーバへ受信リクエストを転送するように、メッセージ転送部２０５に指示する（ステップ（１２））。例えば、サーバグループ１のサーバ１を選択したものとする。メッセージ転送部２０５は、転送先決定部２０３の指示に従って、受信リクエストを選択サーバへ送信する（ステップ（１３））。ここではサーバ１に送信するものとする。
【００１８】
サーバ１のアプリケーションＡは、クライアント端末１００からのリクエストを受信すると、リクエストに応じた所定の処理を実施して、レスポンスを生成して中継装置２００へ送信する（ステップ（１４））。中継装置２００のメッセージ受信部２０４は、サーバ１からレスポンスを受信し、転送先決定部２０３に出力する（ステップ（１５））。レスポンスには例えばクッキー（cookie）が含まれ、当該クッキーにはセッションＩＤ（セッション識別子とも呼ぶ）が含まれる。転送先決定部２０３は、データ格納部２０７に格納されている転送ルールテーブルをセッションＩＤで検索し、このセッションＩＤが未登録であれば、転送ルール生成部２０６に転送ルールの生成を指示する（ステップ（１６））。転送ルール生成部２０６は、以下で詳細に述べるような転送ルール生成処理を実施して転送ルールを生成すると、当該転送ルールをデータ格納部２０７の転送ルールテーブルに登録する（ステップ（１７））。
【００１９】
転送ルールの生成が終了すると、転送ルール生成部２０６は、転送ルール生成完了を転送先決定部２０３に通知し（ステップ（１８））、転送先決定部２０３は、サーバ１からのレスポンスを要求元のクライアント端末に転送するようにメッセージ転送部２０２に指示する（ステップ（１９））。メッセージ転送部２０２は、要求元のクライアント端末にレスポンスを送信する（ステップ（２））。リクエストに対するレスポンスの、要求元クライアント端末への転送については従来技術のとおりであるから、本実施の形態ではこれ以上述べない。
【００２０】
クライアント端末１００は、レスポンスを受信した後に、アプリケーションＢに対するリクエストを生成し、中継装置２００へ送信する（ステップ（３））。リクエストには、受信したセッションＩＤが含まれる。中継装置２００のメッセージ受信部２０１は、クライアント端末１００からリクエストを受信すると、転送先決定部２０３に出力する（ステップ（３１））。転送先決定部２０３は、リクエストに含まれるセッションＩＤ及びアプリケーションＢについてのＵＲＩでデータ格納部２０７における転送ルールテーブルを検索して、該当する転送ルールを見つけ出す。転送ルールが見つかれば、その転送ルールに従ってアプリケーションＢを実行している転送先のサーバ（ここではサーバ２）のデータ（例えばＩＰアドレス及びポート番号）を読み出し、転送ルールに基づき決定された転送先サーバ２にリクエストを転送するように、メッセージ転送部２０５に指示する（ステップ（３２））。メッセージ転送部２０５は、指示に従って、受信リクエストを、転送ルールに基づき決定された転送先サーバ２に送信する（ステップ（３３））。
【００２１】
サーバ２のアプリケーションＢは、クライアント端末１００からのリクエストを受信し、所定の処理を実施する。この際、例えばセッションＩＤ等を用いてサーバ１に対して前の処理結果などのデータを要求する（ステップ（４））。これに対してサーバ１は、要求されたデータをサーバ２に送信する（ステップ（５））。このようなサーバ１及び２間のメッセージのやりとりについては従来と変わらないのでこれ以上述べない。
【００２２】
サーバ２のアプリケーションＢは、処理が完了するとレスポンスを生成して、中継装置２００へ送信する（ステップ（５１））。中継装置２００のメッセージ受信部２０４は、サーバ２からレスポンスを受信すると、転送先決定部２０３に出力する（ステップ（５２））。転送先決定部２０３は、受信レスポンスに含まれるセッションＩＤでデータ格納部２０７内の転送ルールテーブルを検索する。転送ルールテーブル内に該当転送ルールが既に存在している場合には、転送ルールを生成する必要がないので、転送先決定部２０３は、受信レスポンスを要求元のクライアント端末１００に転送するように、メッセージ転送部２０２に指示する（ステップ（５３））。メッセージ転送部２０２は、指示に従って、受信レスポンスを、要求元クライアント端末１００に送信する（ステップ（６））。
【００２３】
このような処理を実施すれば、最初のリクエストに対するレスポンスで転送ルールが生成されるので、その後アプリケーションＡ及びアプリケーションＢに対してリクエストを送信する場合には、すぐさま同じサーバグループに属するサーバにリクエストを転送することができるようになる。なお、上で述べた例では、アプリケーションＡに対するリクエストの後にアプリケーションＢに対してリクエストを送信する例を示しているが、アプリケーションＡに対して何度もリクエストを送信した後に、アプリケーションＢに対してリクエストを送信するようになる場合もある。さらに、アプリケーションＢに対してリクエストを送信した後に、再度アプリケーションＡに対してリクエストを送信する場合もある。いずれの場合にも、本実施の形態では対処できる。
【００２４】
次に、図７乃至図１３を用いて中継装置２００の動作の詳細について説明する。本実施の形態では、データ格納部２０７に例えば図７に示すようなアプリケーション収容データテーブルが格納されている。図７の例では、アプリケーション毎に、当該アプリケーションの名称と当該アプリケーションを実行しているサーバのＩＰアドレス及びポート番号が対応付けて登録されている。アプリケーションＡには、サーバ１のＩＰアドレス及びポート番号「１０．１０．１０．１：８０８０」とサーバ３のＩＰアドレス及びポート番号「１０．１０．１０．１１：８０８０」が対応付けられており、アプリケーションＢには、サーバ２のＩＰアドレス及びポート番号「１０．１０．１０．２：８０８０」とサーバ４のＩＰアドレス及びポート番号「１０．１０．１０．１２：８０８０」が対応付けられている。
【００２５】
また、データ格納部２０７には、図８に示すようなアプリケーション名決定テーブルが格納されている。図８の例では、メッセージのヘッダ値とアプリケーション名との対応関係が登録されている。ヘッダ値は、ＩＰヘッダ値及びメッセージヘッダ値との組み合わせであり、ＩＰヘッダ値にはプロトコルＩＤ及び受信ポート番号が含まれ、メッセージヘッダ値にはＵＲＩ（Uniform Resource Identifier）が含まれる。例えば、プロトコルがｔｃｐで受信ポート番号が「８０８０」でＵＲＩが「ＵＲＩ＿Ａ」の場合に、アプリケーションＡと判定される。逆にアプリケーションＡであれば、ＵＲＩは「ＵＲＩ＿Ａ」であり且つポート番号が「８０８０」となる。同様に、プロトコルがｔｃｐで受信ポート番号が「８０８０」でＵＲＩが「ＵＲＩ＿Ｂ」の場合に、アプリケーションＢと判定される。
【００２６】
さらに、本実施の形態ではデータ格納部２０７に図９に示すようなサーバグループテーブルが格納されている。図９の例では、サーバグループ毎に、当該サーバグループの識別子と当該サーバグループに属するサーバのＩＰアドレスが登録されるようになっている。例えば、アプリケーションＡ及びＢの実行順番に合わせて、サーバのＩＰアドレスの順番を決定して登録するようにしても良い。
【００２７】
このような状態において中継装置２００は、図１０に示すような処理を実施する。この処理はリクエスト又はレスポンスを受信する毎に実行される。
【００２８】
転送先決定部２０３は、メッセージ受信部２０１又は２０４からメッセージを受信すると（ステップＳ１）、受信メッセージがレスポンスであるか判断する（ステップＳ３）。例えば、メッセージのヘッダから例えばＨＴＴＰ（Hyper Text Transfer Protorol）レスポンスであるか否かを判断する。そして、受信メッセージがレスポンスである場合には、転送先決定部２０３は、レスポンスからセッションＩＤを抽出し（ステップＳ５）、データ格納部２０７に格納されている転送ルールテーブルを検索する。ここで、該当エントリが存在しない場合には、最初のリクエストに対するレスポンスであることが分かり、ステップＳ９に移行する。一方、転送ルールテーブルにおいて該当エントリが存在する場合には転送ルールを新たに作成する必要はないのでステップＳ１３に移行する。
【００２９】
該当エントリが転送ルールテーブルに存在しない場合には（ステップＳ７：Ｙｅｓルート）、転送先決定部２０３は、セッションＩＤ及び受信レスポンスを含む転送ルール生成指示を転送ルール生成部２０６に出力する。
【００３０】
転送ルール生成部２０６は、転送ルール生成指示を受信すると、レスポンスに含まれる送信元サーバアドレスでサーバグループテーブルを検索して、送信元サーバが属するサーバグループと同じサーバグループに属するサーバのデータを該当グループデータとして読み出す（ステップＳ９）。なお、該当グループデータは、送信元サーバが属するサーバグループと同じサーバグループに属するサーバのＩＰアドレスを含む。図９の例では、「１０．１０．１０．１」及び「１０．１０．１０．２」が読み出される。
【００３１】
そして、転送ルール生成部２０６は、アプリケーションデータを特定する（ステップＳ１０）。具体的には、転送ルール生成部２０６は、例えば読み出されたサーバのアドレスでアプリケーション収容データテーブル（図７）を検索してアプリケーション名を特定し、さらに当該アプリケーション名でアプリケーション名決定テーブル（図８）を検索して該当するＵＲＩ等を読み出す。以下に述べるようにアプリケーション名だけを特定するようにしても良い。
【００３２】
また、サーバグループの識別子からアプリケーションのセットが別の対応テーブル等から特定できる場合又はアプリケーションのグループが１種類である場合、アプリケーション名決定テーブル（図８）からアプリケーションのグループに含まれる各アプリケーションの名称及びＵＲＩを読み出す。ポート番号については例えばアプリケーション名決定テーブル（図８）から読み出すようにしても良いが、Ｗｅｂサービスであれば通常は「８０８０」であるから固定で特定するようにしても良い。図７乃至図９のテーブル例からすると、アプリケーションデータとしては、サーバアドレス「１０．１０．１０．１」に対して、アプリケーション名「Ａ」、ＵＲＩ「ＵＲＩ＿Ａ」及びポート番号「８０８０」が特定される。また、サーバアドレス「１０．１０．１０．２」に対して、アプリケーション名「Ｂ」、ＵＲＩ「ＵＲＩ＿Ｂ」及びポート番号「８０８０」が特定される。
【００３３】
そして、転送ルール生成部２０６は、アプリケーションデータ、セッションＩＤ及び該当グループデータを用いて転送ルールデータを生成し、転送ルールテーブルに登録する（ステップＳ１１）。
【００３４】
転送ルールテーブルの一例を図１１に示す。図１１の例では、アプリケーション名と、ＵＲＩと、セッションＩＤと、転送先サーバアドレスと、ポート番号とが登録されるようになっている。なお、アプリケーション名決定テーブル（図８）が用意されていれば、ＵＲＩからアプリケーション名を特定できるので、転送ルールにＵＲＩが含まれていなくても、アプリケーション名及びセッションＩＤで該当エントリを特定できる。また、転送ルールテーブルにＵＲＩが登録されていれば、リクエストに含まれるＵＲＩ及びセッションＩＤから該当エントリを特定できる。
【００３５】
図１１に示すように、サーバアドレスである転送先サーバアドレス「１０．１０．１０．１」、アプリケーション名「Ａ」、ＵＲＩ「ＵＲＩ＿Ａ」及びポート番号「８０８０」が、セッションＩＤ「α１」と対応付けて登録されている。同様に、転送先サーバアドレス「１０．１０．１０．２」、アプリケーション名「Ｂ」、ＵＲＩ「ＵＲＩ＿Ｂ」及びポート番号「８０８０」が、セッションＩＤ「α１」と対応付けて登録されている。
【００３６】
このようにアプリケーションのグループについてエントリを用意することによって、最初にアクセスしたアプリケーションが何度も呼び出される場合にも高速に同一サーバにアクセスすることができ、さらにアプリケーションのグループに属する他のアプリケーションにアクセスする場合にも高速に同一サーバグループに属する他のサーバにアクセスすることができる。
【００３７】
転送ルール生成部２０６は、転送先決定部２０３に転送ルール生成完了を通知し、これに応じて転送先決定部２０３は、受信したレスポンスを要求元のクライアント端末１００へメッセージ転送部２０２に転送させる（ステップＳ１３）。そして処理を終了する。
【００３８】
一方、受信したメッセージがレスポンスではなくリクエストであると判断された場合には（ステップＳ３：Ｎｏルート）、転送先決定部２０３は、リクエストからセッションＩＤ及びＵＲＩを読み出して、当該セッションＩＤ及びＵＲＩ（若しくはアプリケーション名）でデータ格納部２０７内の転送ルールテーブルを検索して、転送ルールテーブルにマッチするエントリが存在するか判断する（ステップＳ１５）。該当するエントリが存在する場合には（ステップＳ１５：Ｙｅｓルート）、２番目以降のリクエストであり、転送先決定部２０３は、マッチする転送ルールのエントリに含まれるＩＰアドレス及びポート番号宛てに、リクエストをメッセージ転送部２０５に転送させる（ステップＳ１９）。そして処理を終了する。
【００３９】
なお、上でも述べたように、転送ルールテーブルのエントリにＵＲＩがない場合にも、アプリケーション名決定テーブル（図８）があれば、ＵＲＩからアプリケーション名を特定できるので、転送ルールテーブルを検索することができる。
【００４０】
このようにして、２回目以降のリクエストを高速に同一サーバグループに属するサーバに転送することができる。
【００４１】
一方、転送ルールテーブルにマッチするエントリが存在しない場合（ステップＳ１５：Ｎｏルート）、最初のリクエストであるから、転送先決定部２０３は、リクエストに含まれるＵＲＩ（より詳細にはプロトコルＩＤ、ポート番号及びＵＲＩ）に基づきアプリケーション名決定テーブルからアプリケーション名を特定し、当該アプリケーション名でアプリケーション収容データテーブル（図７）を検索して該当するサーバのＩＰアドレス及びポート番号を抽出する。これによってクライアント端末１００から要求されているアプリケーションを実行するサーバが特定されたことになる。転送先決定部２０３は、このようなサーバの中から所定のアルゴリズム（例えばラウンドロビン）に従って特定のサーバを１つ選択し、当該特定のサーバのＩＰアドレス及びポート番号宛てに、受信リクエストをメッセージ転送部２０５に転送させる（ステップＳ１７）。
【００４２】
以上の述べたような処理を実施することで、適切に転送ルールテーブルを生成して、２回目以降のリクエストについての適切な転送先サーバを高速に特定できる。
【００４３】
なお、図７乃至図９に示したテーブルの構成は様々に変形可能である。例えば、図１２のようなテーブルを用意しても良い。図１２の例では、サーバグループ毎に、各所属サーバのＩＰアドレス及びポート番号と、各所属サーバで実行されているアプリケーションのアプリケーション名及びＵＲＩとを登録するようになっている。プロトコルＩＤについても登録するようにしても良い。このようなデータテーブルが用意されれば、最初にリクエストを受信した場合にも、ＵＲＩなどから要求されているアプリケーションを実行しているサーバのＩＰアドレス及びポート番号を特定することができるので、そのサーバのうち１つを選択することもできる。さらに、最初のリクエストに対するレスポンスを受信した場合、送信元サーバアドレスから、送信元サーバと同一のサーバグループに属するサーバのＩＰアドレス及びポート番号、アプリケーション名及びＵＲＩを読み出すことができるので、転送ルールのエントリを生成することもできる。
【００４４】
さらに、図７と図９のテーブルは図１３に示すように統合することも可能である。図１３の例では、アプリケーションの名称と、当該アプリケーションを実行しているサーバのＩＰアドレス及びポート番号と、各サーバが属するサーバグループの識別子とが対応付けて登録されている。これによって、同一アプリケーションを実行しているサーバのＩＰアドレス及びポート番号を特定することもでき、特定のサーバのＩＰアドレス及びポート番号から、特定のサーバが属するサーバグループが特定できるので、当該サーバグループに属する他のサーバのＩＰアドレス及びポート番号をも特定することもできる。
【００４５】
さらに、上で述べた例ではアプリケーション名をＵＲＩとは別に用意する例を示しているが、ＵＲＩをアプリケーション名として用いるようにしても良い。
【００４６】
［実施の形態２］
本実施の形態では、アプリケーション・グループが複数種類ある場合を検討する。また、特定のアプリケーションが複数のアプリケーション・グループに属する場合についても合わせて検討する。例えば、アプリケーションＡがＰＣ（Personal Computer）の見積りサイトで、アプリケーションＢが決済サイトであり、アプリケーションＣがネットワーク機器の見積りサイトであるとする。そして、第１のアプリケーション・グループはアプリケーションＡ及びＢを含み、第２のアプリケーション・グループはアプリケーションＣ及びＢを含む。このような場合には、アプリケーションＢは、第１及び第２のアプリケーション・グループで共用されている。
【００４７】
具体的に図１４に示すようなシステム構成を考える。図１４の例では、本実施の形態に係る中継装置３００には、複数のクライアント端末１００が接続されており、さらにサーバ１乃至７が接続されている。また、サーバグループ１には、サーバ１乃至３が含まれ、サーバグループ２には、サーバ４及び５が含まれ、サーバグループ３には、サーバ６及び７が含まれる。サーバグループ内のサーバは位置的に近い、例えば同一ラック内、同一エリア／アイランド内又は拠点内のサーバである。さらに、サーバ１ではアプリケーションＡが実行されており、サーバ２ではアプリケーションＢが実行されており、サーバ３ではアプリケーションＣが実行されており、サーバ４ではアプリケーションＡが実行されており、サーバ５ではアプリケーションＢが実行されており、サーバ６ではアプリケーションＢが実行されており、サーバ７ではアプリケーションＣが実行されている。このような場合に、サーバグループ１では第１のアプリケーション・グループも第２のアプリケーション・グループも実行することができる。一方、サーバグループ２では第１のアプリケーション・グループだけしか実行することができず、サーバグループ３では第２のアプリケーション・グループだけしか実行することができない。
【００４８】
このようなシステムの動作の概要については図６を用いて説明したものと同じである。図１４においてメッセージのやりとりの順番を表す（１）乃至（６）については、図６で示した（１）乃至（６）と同じである。
【００４９】
また、このようなシステムにおいて、中継装置３００は、機能ブロックとして図５に示した第１の実施の形態における中継装置２００と同じであるが、転送ルール生成部２０６の動作及びデータ格納部２０７に格納されるデータは、異なっている。説明の都合上、図５に示した参照番号はそのままで、処理内容及び格納されているデータについては、図１５乃至図２２を用いて説明する。
【００５０】
本実施の形態におけるアプリケーション名決定テーブルの一例を図１５に示す。データ構造自体は図８に示したものと同じである。本実施の形態では、アプリケーションＣが含まれるので、アプリケーションＣについてのデータが追加されている。
【００５１】
本実施の形態におけるサーバグループテーブルの一例を図１６に示す。図１６に示すように、データ構造自体は図９と同じである。但し、図１４に示したように、サーバグループは３つあるので、３つのサーバグループの各々に所属するサーバのＩＰアドレスが登録されている。
【００５２】
本実施の形態におけるアプリケーション収容データテーブルの一例を図１７に示す。データ構造自体は図７と同じである。但し、アプリケーションＡ乃至Ｃの各々について、実行されるサーバのＩＰアドレス及びポート番号が登録されている。アプリケーションＢは、アプリケーションＡ及びＣと共用されるので、サーバグループ１乃至３のいずれでも実行するサーバが用意されている。
【００５３】
本実施の形態では、第１の実施の形態では用いられていないアプリケーショングループテーブルが用いられる。図１８に、アプリケーショングループテーブルの一例を示す。図１８の例では、アプリケーション・グループの識別子に対応付けて、所属するアプリケーション名が登録されるようになっている。上で述べたように、第１のアプリケーション・グループ「００１」には、アプリケーションＡ及びＢが属し、第２のアプリケーション・グループ「００２」には、アプリケーションＣ及びＢが属する。
【００５４】
次に、中継装置３００の動作の詳細を図１９乃至図２１を用いて説明する。
【００５５】
転送先決定部２０３は、メッセージ受信部２０１又は２０４からメッセージを受信すると（図１９：ステップＳ３１）、受信メッセージがレスポンスであるか判断する（ステップＳ３３）。例えば、メッセージのヘッダから例えばＨＴＴＰレスポンスであるか否かを判断する。そして、受信メッセージがレスポンスである場合には、処理は端子Ａを介して図２０の処理に移行する。
【００５６】
転送先決定部２０３は、レスポンスからセッションＩＤを抽出し（ステップＳ４１）、データ格納部２０７に格納されている転送ルールテーブルを検索する。ここで、該当エントリが存在しない場合には、最初のリクエストに対するレスポンスであることが分かり、ステップＳ４５に移行する。一方、転送ルールテーブルにおいて該当エントリが存在する場合には転送ルールを新たに作成する必要はないのでステップＳ５５に移行する。
【００５７】
該当エントリが転送ルールテーブルに存在しない場合には（ステップＳ４３：Ｙｅｓルート）、転送先決定部２０３は、セッションＩＤ及び受信レスポンスを含む転送ルール生成指示を転送ルール生成部２０６に出力する。
【００５８】
転送ルール生成部２０６は、転送ルール生成指示を受信すると、レスポンスに含まれる送信元サーバのＩＰアドレス及びポート番号でアプリケーション収容データテーブル（図１７）を検索してアプリケーション名を特定し、当該アプリケーション名でアプリケーショングループテーブル（図１８）を検索して該当するアプリケーション・グループを特定する（ステップＳ４５）。例えば、ＩＰアドレス「１０．１０．１０．３」及びポート番号「８０８０」でアプリケーション収容データテーブルを検索するとアプリケーション名「Ｃ」が特定され、アプリケーション名「Ｃ」でアプリケーショングループテーブル（図１８）を検索すれば、アプリケーション・グループ「００２」が特定される。このアプリケーション・グループ「００２」に含まれるアプリケーション名「Ｂ」及び「Ｃ」が特定される。なお、アプリケーション間の連携がない場合にはアプリケーショングループテーブルを検索した場合に、アプリケーション・グループが特定されない。
【００５９】
従って、アプリケーション間の連携がない場合には（ステップＳ４７：Ｎｏルート）、ステップＳ５５に移行する。アプリケーション間の連携が存在する場合には（ステップＳ４７：Ｙｅｓルート）、転送ルール生成部２０６は、レスポンスに含まれる送信元サーバのＩＰアドレスで、サーバグループテーブル（図１６）を検索して、同一サーバグループに属するサーバのＩＰアドレスを読み出す（ステップＳ４９）。「１０．１０．１０．３」でサーバグループテーブル（図１６）を検索すれば、サーバグループ「１」であることが分かるので、サーバグループ「１」に属するサーバのＩＰアドレス「１０．１０．１０．１」「１０．１０．１０．２」「１０．１０．１０．３」が得られる。
【００６０】
そして、転送ルール生成部２０６は、該当アプリケーション・グループに属するアプリケーションを実行し且つ該当サーバグループに属するサーバのＩＰアドレス及びポート番号を特定する（ステップＳ５１）。既にアプリケーション「Ｃ」を実行するサーバのＩＰアドレス「１０．１０．１０．３」及びポート番号「８０８０」については既に特定されているが、同一アプリケーション・グループ「００２」に属する他のアプリケーションＢを実行し且つ該当サーバグループ「１」に属するサーバを特定する。このためにアプリケーション名「Ｂ」でアプリケーショングループテーブル（図１８）を検索して、サーバのＩＰアドレス及びポート番号を特定する。この場合、「１０．１０．１０．２：８０８０」、「１０．１０．１０．１２：８０８０」及び「１０．１０．１０．２２：８０８０」が抽出される。この中で、ステップＳ４７で特定されたＩＰアドレス「１０．１０．１０．２」とＩＰアドレスが一致する「１０．１０．１０．２：８０８０」が特定される。
【００６１】
さらに、転送ルール生成部２０６は、アプリケーション名決定テーブル（図１５）を該当するアプリケーション名で検索してＵＲＩをアプリケーションデータとして特定し、レスポンスに含まれているセッションＩＤと、特定されたサーバのＩＰアドレス及びポート番号とを含む転送ルールを生成して、データ格納部２０７内の転送ルールテーブルに登録する（ステップＳ５３）。図２１に転送ルールテーブルの一例を示す。第１の実施の形態と同じデータ構造であるが、アプリケーション名「Ｃ」とＵＲＩ「ＵＲＩ＿Ｃ」とセッションＩＤ「β１」と転送先サーバのＩＰアドレス「１０．１０．１０．３」とポート番号「８０８０」を含むエントリと、アプリケーション名「Ｂ」とＵＲＩ「ＵＲＩ＿Ｂ」とセッションＩＤ「β１」と転送先サーバのＩＰアドレス「１０．１０．１０．２」とポート番号「８０８０」とを含むエントリとが含まれる。
【００６２】
このようにすれば、アプリケーションＣ及びＢを利用するリクエストを受信した場合には、速やかに同一サーバグループに属する適切なサーバにリクエストを転送することができる。
【００６３】
第１の実施の形態と同様に、アプリケーション名があれば、ＵＲＩは登録されていなくてもアプリケーション名決定テーブル（図１５）があればＵＲＩからアプリケーション名を特定できるので、該当エントリを特定できる。また、ＵＲＩが登録されていれば、アプリケーション名は登録されていなくても、該当エントリを特定できる。
【００６４】
転送ルール生成部２０６は、転送先決定部２０３に転送ルール生成完了を通知して、転送先決定部２０３は、受信したレスポンスを要求元のクライアント端末１００へメッセージ転送部２０２に転送させる（ステップＳ５５）。そして端子Ｂを介して図１９の処理に戻って処理を終了する。
【００６５】
一方、受信したメッセージがレスポンスではなくリクエストであると判断された場合には（ステップＳ３３：Ｎｏルート）、転送先決定部２０３は、リクエストからセッションＩＤ及びＵＲＩを読み出して、当該セッションＩＤ及びＵＲＩ（若しくはアプリケーション名）でデータ格納部２０７内の転送ルールテーブル（図２１）を検索して、転送ルールテーブルにマッチするエントリが存在するか判断する（ステップＳ３５）。該当するエントリが存在する場合には（ステップＳ３５：Ｙｅｓルート）、２番目以降のリクエストであり、転送先決定部２０３は、マッチする転送ルールのエントリに含まれるＩＰアドレス及びポート番号宛てに、リクエストをメッセージ転送部２０５に転送させる（ステップＳ３７）。そして処理を終了する。
【００６６】
なお、上でも述べたように、転送ルールテーブルのエントリにＵＲＩがない場合にも、アプリケーション名決定テーブル（図１５）があれば、ＵＲＩからアプリケーション名を特定できるので、転送ルールテーブルを検索することができる。
【００６７】
このようにして、２回目以降のリクエストを高速に同一サーバグループに属するサーバに転送することができる。
【００６８】
一方、転送ルールテーブルにマッチするエントリが存在しない場合（ステップＳ３５：Ｎｏルート）、最初のリクエストであるから、転送先決定部２０３は、リクエストに含まれるＵＲＩ（より詳細にはプロトコルＩＤ、ポート番号及びＵＲＩ）によりアプリケーション名決定テーブルからアプリケーション名を特定し、当該アプリケーション名でアプリケーション収容データテーブル（図１７）を検索して該当するサーバのＩＰアドレス及びポート番号を抽出する。これによってクライアント端末１００から要求されているアプリケーションを実行するサーバが特定されたことになる。転送先決定部２０３は、このようなサーバの中から所定のアルゴリズム（例えばラウンドロビン）に従って特定のサーバを１つ選択し、当該特定のサーバのＩＰアドレス及びポート番号宛てに、受信リクエストをメッセージ転送部２０５に転送させる（ステップＳ３９）。
【００６９】
以上の述べたような処理を実施することで、適切に転送ルールテーブルを生成して、２回目以降のリクエストについての転送先サーバを高速に特定できる。
【００７０】
このようにアプリケーショングループテーブルを導入することによって、様々なアプリケーション・グループがサーバ群に定義されても、柔軟に対処できるようになる。
【００７１】
なお、データ格納部２０７に格納されるデータは、様々に変形することができる。第１の実施の形態において説明したように、図１５乃至図１７を統合するようなことも可能である。すなわち、図２２に示したようなデータ構造を採用しても良い。このようなデータ構造を採用すれば、レスポンスに含まれるＩＰアドレス及びポート番号で図２２に示すような統合テーブルを検索すれば、該当アプリケーション名及びＵＲＩ、並びに同一サーバグループに属する他のサーバのＩＰアドレス、ポート番号、アプリケーション名及びＵＲＩを特定できる。さらに、アプリケーショングループテーブルを、該当アプリケーション名で検索すれば、グループ化されている他のアプリケーション名をも特定できる。従って、同一サーバグループに属する他のサーバのうち、特定された他のアプリケーションを実行しているサーバのＩＰアドレス、ポート番号及びＵＲＩを絞り込むことができる。
【００７２】
また、同じく第１の実施の形態において説明したように、図１６及び図１７を統合するようにしてもよい。すなわち、図１３に示すようなデータ構造を採用するようにしても良い。転送ルールテーブルに示すように、同一アプリケーション・グループに属するアプリケーションを実行し且つ同一サーバグループに属するサーバのデータを抽出できれば、どのようなデータ構造であってもよい。
【００７３】
アプリケーション名ではなくＵＲＩを統一的にアプリケーションの識別子として用いるようにしても良い。
【００７４】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図５に示した機能ブロック図は一例であって、必ずしも実際のモジュール構成と一致しない場合もある。例えば、転送先決定部２０３及び転送ルール生成部２０６については、例えばプロセッサと上で述べたような処理をプロセッサに実行させるためのプログラムとの組み合わせにて実施される場合もある。このような場合、プログラムはＲＯＭ（Read Only Memory）やフラッシュメモリなどに記録されており、プロセッサによって読み出されて実行される。また、データ格納部２０７については、半導体メモリ等で実現される。
【００７５】
処理フローについても処理結果が変わらないかぎりにおいて、処理順番を入れ替えたり、並列実施するようにしても良い。
【００７６】
さらに、上では物理的なサーバが複数存在している例を示したが、一部又は全部のサーバがＶＭ（Virtual Machine）として１又は複数の物理サーバ上に実装される場合がある。このような場合についても中継装置の処理は同様である。
【００７７】
以上述べた本実施の形態をまとめると、以下のようになる。
【００７８】
本実施の形態に係る中継処理方法は、アプリケーション・プログラムのセットを分担して実行するサーバのグループが複数接続されている中継装置により実行される中継処理方法であって、（Ａ）特定のサーバから、特定のクライアント端末からの第１のリクエストに対するレスポンスを受信するステップと、（Ｂ）レスポンスに含まれる特定のサーバのアドレスから特定され且つ特定のサーバが属するグループである特定のグループについて予め規定されている、特定のグループに属する各サーバのアドレス及び当該各サーバにおいて実行されるアプリケーション・プログラムの識別子とＵＲＩ（Uniform Resource Identifier）とのうち少なくともいずれかを特定する特定ステップと、（Ｃ）レスポンスに含まれるセッション識別子に対応付けて、特定のグループに属する各サーバのアドレス及び当該各サーバにおいて実行されるアプリケーション・プログラムの識別子とＵＲＩとのうち少なくともいずれかを転送ルールデータ格納部に格納するステップと、（Ｄ）特定のクライアント端末からセッション識別子及び特定のＵＲＩを含む第２のリクエストを受信すると、セッション識別子及び特定のＵＲＩに基づき転送ルールデータ格納部から、当該第２のリクエストの転送先のサーバのアドレスを特定し、当該サーバのアドレス宛に第２のリクエストを転送する転送ステップとを含む。
【００７９】
このように転送ルールを生成すれば、後続のリクエストについては、当該転送ルールに従って、直前のリクエストを処理したサーバの所属サーバグループと同一のサーバグループに属するサーバのうちリクエストで要求されるアプリケーションを実行しているサーバに転送することができる。サーバグループ内のサーバが距離的に近いサーバであれば、サーバ間でデータの引継が生じても短時間で通信が行われるので、レスポンス送信までの時間を短縮することができる。すなわち、アプリケーション間の連携を効率的に行うことができるようになる。
【００８０】
また、上で述べた特定ステップが、（Ｂ１）レスポンスに含まれる特定のサーバのアドレスに基づき、サーバのグループ毎に当該グループに属するサーバのアドレスを格納する第１のデータ格納部（例えばサーバグループテーブル）から、特定のサーバが属するグループの他のサーバのアドレスを特定するステップと、（Ｂ２）アプリケーション・プログラムのセットに含まれるアプリケーション・プログラムの識別子とＵＲＩとのうち少なくともいずれかを格納する第２のデータ格納部（例えばアプリケーション名決定テーブル）から、アプリケーション・プログラムの識別子とＵＲＩとのうち少なくともいずれかを読み出すステップとを含むようにしてもよい。例えば、このような転送ルールを生成すべきサーバの範囲においてアプリケーション・プログラムのセットが１種類であるような場合には、このような処理にて転送ルールが生成される。また、サーバグループの識別子からアプリケーションのグループが特定できれば、複数種類のセットが存在する場合でも対応できる。
【００８１】
さらに、アプリケーション・プログラムのセットが複数種類存在する場合には、上で述べたような特定ステップは、（B11）レスポンスに含まれる特定のサーバのＩＰアドレスに基づき、サーバのグループ毎に当該グループに属するサーバのＩＰアドレスを格納する第３のデータ格納部（例えばサーバグループテーブル）から、特定のサーバが属するグループの他のサーバのＩＰアドレスを特定するステップと、（B12）レスポンスに含まれる特定のサーバのＩＰアドレス及びポート番号に基づき、アプリケーション・プログラム毎に当該アプリケーション・プログラムの識別子と当該アプリケーション・プログラムを実行しているサーバのＩＰアドレス及びポート番号とが対応付けて格納されている第４のデータ格納部（例えばアプリケーション収容データテーブル）から、特定のサーバで実行されているアプリケーション・プログラムの識別子を特定するステップと、（B13）特定されたアプリケーション・プログラムの識別子に基づき、上記セット毎に当該セットに属するアプリケーション・プログラムの識別子を格納する第５のデータ格納部（例えばアプリケーショングループテーブル）から、特定されたアプリケーション・プログラムが属するセットに含まれる他のアプリケーション・プログラムの識別子を特定するステップと、（B14）特定された他のアプリケーション・プログラムの識別子及び特定された他のサーバのＩＰアドレス及びポート番号に基づき、第４のデータ格納部から他のアプリケーション・プログラムを実行しており且つ特定のサーバが属するグループ内のサーバのＩＰアドレス及びポート番号を特定するステップとを含むようにしてもよい。
【００８２】
第５のデータ格納部を導入することによって、アプリケーション・プログラムのセットが複数種類存在する場合にも柔軟に対処できるようになる。なお、ステップ（Ｂ１４）における絞り込みをオプションにすることも可能である。さらに、ステップ（Ｂ１１）と（Ｂ１２）については順番を入れ替え可能である。
【００８３】
また、アプリケーション・プログラムのセットが複数種類存在する場合には、上で述べたような特定ステップは、（B21）レスポンスに含まれる特定のサーバのＩＰアドレス及びポート番号に基づき、アプリケーション・プログラム毎に当該アプリケーション・プログラムの識別子と当該アプリケーション・プログラムを実行しているサーバのＩＰアドレス、ポート番号及び所属グループの識別子とが対応付けて格納されている第６のデータ格納部（例えば図１３の統合テーブル）から、特定のサーバで実行されているアプリケーション・プログラムの識別子及び特定のサーバの所属グループの識別子を特定するステップと、（B22）特定されたアプリケーション・プログラムの識別子に基づき、上記セット毎に当該セットに属するアプリケーション・プログラムの識別子を格納する第５のデータ格納部（例えばアプリケーショングループテーブル）から、特定されたアプリケーション・プログラムが属するセットに含まれる他のアプリケーション・プログラムの識別子を特定するステップと、（B23）特定された他のアプリケーション・プログラムの識別子及び特定のサーバの所属グループの識別子に基づき、第６のデータ格納部から、他のアプリケーション・プログラムの識別子及び特定のサーバの所属グループの識別子に対応付けられているサーバのＩＰアドレス及びポート番号を読み出すステップとを含むようにしてもよい。図１３に示すような統合テーブルを用いれば、このような処理にて転送ルール生成のためのデータが得られる。
【００８４】
なお、アプリケーション・プログラムのセットが複数種類存在する場合に、ＵＲＩとアプリケーション・プログラムの識別子との対応関係についてのデータを格納する第７のデータ格納部（例えばアプリケーション名決定テーブル）から、特定のサーバで実行されているアプリケーション・プログラム及び特定された他のアプリケーション・プログラムの識別子に対応するＵＲＩを読み出すステップをさらに含むようにしてもよい。リクエストにはＵＲＩが含まれるので、本ステップを実施して転送ルールにＵＲＩが含まれている方が、リクエストの処理時には高速に転送先サーバを特定できる。
【００８５】
さらに、上で述べた転送ステップが、ＵＲＩとアプリケーション・プログラムの識別子との対応関係についてのデータを格納する第７のデータ格納部（例えばアプリケーション名決定テーブル）から、第２のリクエストに含まれる特定のＵＲＩに対応するアプリケーション・プログラムの識別子を特定するステップを含むようにしてもよい。転送ルールなどにＵＲＩが含まれない場合には、このようにしてＵＲＩからアプリケーションの識別子（例えば名称）を特定した上で、転送ルールを特定すればよい。
【００８６】
本実施の形態における中継処理装置は、（Ａ）アプリケーション・プログラムのセットを分担して実行するサーバのグループが複数存在している場合に、特定のサーバから、特定のクライアント端末からの第１のリクエストに対するレスポンスを受信する受信部と、（Ｂ）転送ルールデータ格納部と、（Ｃ）レスポンスに含まれる特定のサーバのアドレスから特定され且つ特定のサーバが属するグループである特定のグループについて予め規定されている、（c1）特定のグループに属する各サーバのアドレス及び（c2）当該各サーバにおいて実行されるアプリケーション・プログラムの識別子とＵＲＩ（Uniform Resource Identifier）とのうち少なくともいずれかを特定し、レスポンスに含まれるセッション識別子に対応付けて、転送ルールデータ格納部に格納する転送ルール生成部と、（Ｄ）特定のクライアント端末からセッション識別子及び特定のＵＲＩを含む第２のリクエストを受信すると、セッション識別子及び特定のＵＲＩに基づき転送ルールデータ格納部から、当該第２のリクエストの転送先のサーバのアドレスを特定し、当該サーバのアドレス宛に第２のリクエストを転送させる転送先決定部とを有する。
【００８７】
なお、上で述べたような処理をプロセッサに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＢＤ−ＲＯＭ、光磁気ディスク、半導体メモリ（例えばＲＯＭ、フラッシュメモリなど）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００８８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８９】
（付記１）
複数の第１コンピュータと、第２コンピュータとが接続され、前記第２コンピュータからの通信を前記第１コンピュータに中継する中継装置により実行される中継処理方法であって、
特定の第１コンピュータから、前記第２コンピュータからの第１の通信に対する応答を受信する受信ステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第１コンピュータの識別子を転送ルールデータ格納部に格納する格納ステップと、
前記第２コンピュータから第２の通信を受信すると、前記第２の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第２の通信の転送先の第１コンピュータを決定し、決定した第１コンピュータのアドレス宛に前記第２の通信を転送する転送ステップと、
を含む中継処理方法。
【００９０】
（付記２）
前記格納ステップにおいて、前記第１の通信に関わる第１アプリケーションに対応する第１アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第２の通信に含まれている第２アプリケーション識別子に基づいて、担当する第１コンピュータを決定することを特徴とする付記１記載の転送方法。
【００９１】
（付記３）
複数の第１コンピュータと、第２コンピュータとが接続され、前記第２コンピュータからの通信を前記第１コンピュータに中継するコンピュータに、
特定の第１コンピュータから、前記第２コンピュータからの第１の通信に対する応答を受信するステップと、
前記応答に含まれる通信識別子に対応付けて、特定の第１コンピュータの識別子を転送ルールデータ格納部に格納するステップと、
前記第２コンピュータから第２の通信を受信すると、前記第２の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第２の通信の転送先の第１コンピュータを決定し、決定した第１コンピュータのアドレス宛に前記第２の通信を転送する転送ステップと、
を実行させるプログラム。
【００９２】
（付記４）
前記格納ステップにおいて、前記第１の通信に関わる第１アプリケーションに対応する第１アプリケーション識別子を前記応答から抽出し、前記通信識別子に対応づけて前記転送ルールデータ格納部に格納し、
前記転送ステップにおいて、前記第２の通信に含まれている第２アプリケーション識別子に基づいて、担当する第１コンピュータを決定することを特徴とする付記３記載のプログラム。
【００９３】
（付記５）
複数の第１コンピュータと、第２コンピュータとが接続される場合に、前記第２コンピュータからの通信を前記第１コンピュータに中継する中継装置であって、
特定の第１コンピュータから、前記第２コンピュータからの第１の通信に対する応答を受信する受信部と、
前記応答に含まれる通信識別子に対応付けて、特定の第１コンピュータの識別子を記憶する転送ルールデータ格納部と、
前記第２コンピュータから第２の通信を受信すると、前記第２の通信に含まれている前記通信識別子に基づき前記転送ルールデータ格納部から、当該第２の通信の転送先の第１コンピュータを決定し、決定した第１コンピュータのアドレス宛に前記第２の通信を転送する転送部と、
を含む中継装置。
【００９４】
（付記６）
前記転送ルールデータ格納部は、前記第１の通信に関わる第１アプリケーションに対応する第１アプリケーション識別子を前記応答から抽出された前記通信識別子に対応づけて記憶し、
前記転送部は、前記第２の通信に含まれている第２アプリケーション識別子に基づいて、担当する第１コンピュータを決定することを特徴とする付記５記載の中継装置。
【符号の説明】
【００９５】
２０１，２０４  メッセージ受信部
２０２，２０５  メッセージ転送部
２０３  転送先決定部
２０６  転送ルール生成部
２０７  データ格納部
【図１】
2011258014.tif 000003
【図２】
2011258014.tif 000004
【図３】
2011258014.tif 000005
【図４】
2011258014.tif 000006
【図５】
2011258014.tif 000007
【図６】
2011258014.tif 000008
【図７】
2011258014.tif 000009
【図８】
2011258014.tif 000010
【図９】
2011258014.tif 000011
【図１０】
2011258014.tif 000012
【図１１】
2011258014.tif 000013
【図１２】
2011258014.tif 000014
【図１３】
2011258014.tif 000015
【図１４】
2011258014.tif 000016
【図１５】
2011258014.tif 000017
【図１６】
2011258014.tif 000018
【図１７】
2011258014.tif 000019
【図１８】
2011258014.tif 000020
【図１９】
2011258014.tif 000021
【図２０】
2011258014.tif 000022
【図２１】
2011258014.tif 000023
【図２２】
2011258014.tif 000024