(57)【特許請求の範囲】
【請求項１】
通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第１データ格納部と、
ラベルと転送先の情報とを対応付けて格納する第２データ格納部と、
通信の経路を管理するコンピュータから、第１の通信の経路を変更することを要求し且つ変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を受信した場合、当該変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて前記第２データ格納部に格納する格納処理部と、
前記第１の通信の変更前の経路に割り当てられたラベルを前記変更後の経路に割り当てられたラベルに変更するように前記第１データ格納部を更新する更新部と、
前記第１の通信について、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合に、前記第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを前記第２データ格納部から削除する削除部と、
を有する中継装置。
【請求項２】
要求メッセージを転送するソケットの情報と応答メッセージを転送するソケットの情報とを対応付けて格納する第３データ格納部
をさらに有し、
前記削除部が、
応答メッセージを受信した場合に、当該応答メッセージを受信したソケットの情報と当該ソケットに対応付けて格納されているソケットの情報とを前記第３データ格納部から削除する
請求項１記載の中継装置。
【請求項３】
前記削除部が、
前記変更前の経路で転送した要求メッセージの数と当該要求メッセージに対する応答メッセージの数とを計数し、計数された当該要求メッセージの数及び当該応答メッセージの数に基づき、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断する
請求項１又は２記載の中継装置。
【請求項４】
バッファ
をさらに有し、
前記削除部が、
前記コンピュータからバッファリング要求を受信した場合、当該バッファリング要求以後に受信した前記第１の通信の要求メッセージを前記バッファに格納させ、前記バッファリング要求以前に受信した前記第１の通信の要求メッセージの数を計数する
請求項３記載の中継装置。
【請求項５】
前記削除部が、
前記第１の通信についての要求メッセージ又は応答メッセージの数の増減についての情報を前記コンピュータから受信した場合、当該増減についての情報を用いて、前記変更前の経路で転送した要求メッセージの数又は当該要求メッセージに対する応答メッセージの数を補正する
請求項３記載の中継装置。
【請求項６】
前記削除部が、
応答メッセージにおける特定の部分に含まれるデータが、１の要求メッセージに対する複数の応答メッセージのうちの最後の応答メッセージであることを示している場合に、当該１の要求メッセージに対する複数の応答メッセージを漏れなく受信したと判断する
請求項１又は２記載の中継装置。
【請求項７】
前記削除部が、
前記変更前の経路で要求メッセージを転送してから所定時間が経過した場合に、当該要求メッセージに対する応答メッセージを漏れなく受信したと判断する
請求項１又は２記載の中継装置。
【請求項８】
前記削除部が、
前記変更前の経路に割り当てられたラベルに対応する転送先の情報を前記第２データ格納部から抽出し、抽出された当該転送先の情報によって特定される転送先に対して、前記変更前の経路に割り当てられたラベルについてのデータを削除することを要求するメッセージを送信する
請求項１乃至７のいずれか１つ記載の中継装置。
【請求項９】
前記削除部が、
コネクションの解放を要求することを示すデータを含む応答メッセージを受信した場合に、当該応答メッセージを受信したソケットの情報と当該ソケットに対応付けて格納されているソケットの情報とを前記第３データ格納部から削除する
請求項２記載の中継装置。
【請求項１０】
第１の通信の変更後の経路の情報の入力を受け付けた場合、当該変更後の経路上の中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを送信する第１送信部と、
前記変更後の経路上の中継装置のうち要求メッセージの送信元の装置に最も近い中継装置である第１の中継装置に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断することを要求する判断要求を送信する第２送信部と、
前記第１の中継装置から、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、少なくとも前記第１の中継装置に、前記第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する第３送信部と、
を有する経路制御装置。
【請求項１１】
前記第２送信部が、
前記第１の中継装置に、前記第１の通信の要求メッセージをバッファリングすることを要求するバッファリング要求を送信し、
前記第３送信部が、
前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、前記第１の中継装置に、バッファリングされた前記第１の通信の要求メッセージの転送を再開することを要求する再開要求を送信する
請求項１０記載の経路制御装置。
【請求項１２】
通信の経路を管理するコンピュータから、第１の通信の経路を変更することを要求し且つ変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を受信した場合、ラベルと転送先の情報とを対応付けて格納する第１データ格納部に、当該変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて格納し、
通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第２データ格納部を、当該第１の通信の変更前の経路に割り当てられたラベルを前記変更後の経路に割り当てられたラベルに変更するように更新し、
前記第１の通信について、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合に、前記第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを前記第１データ格納部から削除する
処理をコンピュータに実行させるためのプログラム。
【請求項１３】
通信の経路を管理するコンピュータから、第１の通信の経路を変更することを要求し且つ変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を受信した場合、ラベルと転送先の情報とを対応付けて格納する第１データ格納部に、当該変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて格納し、
通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第２データ格納部を、当該第１の通信の変更前の経路に割り当てられたラベルを前記変更後の経路に割り当てられたラベルに変更するように更新し、
前記第１の通信について、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合に、前記第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを前記第１データ格納部から削除する
処理をコンピュータが実行する情報処理方法。
【請求項１４】
第１の通信の変更後の経路の情報の入力を受け付けた場合、当該変更後の経路上の中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを送信し、
前記変更後の経路上の中継装置のうち要求メッセージの送信元の装置に最も近い中継装置である第１の中継装置に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断することを要求する判断要求を送信し、
前記第１の中継装置から、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、少なくとも前記第１の中継装置に、前記第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する
処理をコンピュータに実行させるためのプログラム。
【請求項１５】
第１の通信の変更後の経路の情報の入力を受け付けた場合、当該変更後の経路上の中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを送信し、
前記変更後の経路上の中継装置のうち要求メッセージの送信元の装置に最も近い中継装置である第１の中継装置に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断することを要求する判断要求を送信し、
前記第１の中継装置から、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、少なくとも前記第１の中継装置に、前記第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する
処理をコンピュータが実行する情報処理方法。
【請求項１６】
中継装置と、
通信経路を管理する経路制御装置と、
を有し、
前記中継装置が、
通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第１データ格納部と、
ラベルと転送先の情報とを対応付けて格納する第２データ格納部と、
処理部と、
を有し、
前記経路制御装置が、
第１の通信の変更後の経路の情報の入力を受け付けた場合、少なくとも前記中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を送信し、
前記中継装置の処理部が、
前記変更要求を前記経路制御装置から受信した場合、前記変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて前記第２データ格納部に格納する処理を行い、当該格納する処理が完了したことを示すデータを前記経路制御装置に送信し、
前記経路制御装置が、
前記格納する処理が完了したことを示すデータを少なくとも前記中継装置から受信した場合、前記第１の通信の識別情報と当該第１の通信の変更前の経路に割り当てられたラベルと前記変更後の経路に割り当てられたラベルとを含む経路移行要求を、少なくとも前記中継装置に送信し、
前記中継装置の処理部が、
前記経路移行要求を前記経路制御装置から受信した場合、前記第１の通信の変更前の経路に割り当てられたラベルを前記変更後の経路に割り当てられたラベルに変更するように前記第１データ格納部を更新し、
前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合、前記変更前の経路が使用されていないことを示す不使用通知を前記経路制御装置に送信し、
前記経路制御装置が、
前記不使用通知を受信した場合に、少なくとも前記中継装置に、前記第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信し、
前記中継装置の処理部が、
前記削除要求を受信した場合、前記第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを前記第２データ格納部から削除する
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信経路の制御技術に関する。
【背景技術】
【０００２】
通信経路の制御に関する技術として、ＭＰＬＳ−ＴＥ（MultiProtocol Label Switching-Traffic Engineering）が知られている。
【０００３】
図１を用いて、ＭＰＬＳ−ＴＥによる通信経路の変更について説明する。ＭＰＬＳ−ＴＥにおいては、経路変更を行う場合、ＭＰＬＳ網内の中継装置に、古い経路の設定とは別に新しい経路の設定を事前に行う。図１においては、上段のテーブルが古い経路の設定であり、この古い経路の設定とは別に、下段に示す新しい経路の設定が行われる。そして、設定が完了した後、ある時点以降、新しい経路の入口となる中継装置が、クライアント端末から受信したパケットに付与するラベルを古いラベルから新しいラベルに切り替える。図１においては、中継装置１が、パケットに付与するラベルを「label3」から「label4」に切り替える。これにより、各中継装置は、下段に示したテーブルを利用して、新しい経路でパケットの転送を行うことができる。
【０００４】
但し、ＭＰＬＳ−ＴＥはパケット通信のための技術であり、例えばＨＴＴＰ（Hyper Text Transfer Protocol）のような通信に適用することは想定していない。従って、例えばＨＴＴＰの通信において要求メッセージの経路と応答メッセージの経路とが同じであることが要求されるような場合に、ＭＰＬＳ−ＴＥのような技術をそのまま利用して経路を変更するのは適切ではない。要求メッセージが古い経路で転送されたのにも関わらず、応答メッセージが新しい経路で転送されるという事態が生じ得るからである。
【０００５】
従来、複数の中継装置が連携して優先度毎及び経路毎の遅延時間を算出し、その遅延時間に基づいて経路を変更する技術が存在する。しかし、この技術においても、上で述べたような点については考慮されていない。また、古い経路に関連する資源を削除するタイミングについても考慮がなされていない。
【０００６】
なお、使用しなくなる経路に対して期限を設けておき、期限を過ぎた場合にはその経路に関する情報を削除する技術は存在する。しかしながら、この技術では、期限を適切に設定しないと、中継装置が古い経路に関連する資源及び新しい経路に関連する資源の両方を管理する時間が長くなり、中継装置の負担が大きくなるという問題がある。
【０００７】
このように、要求メッセージの経路と応答メッセージの経路とが同じであることが要求される通信の経路の変更をした際に古い経路に関連する資源をいつ削除するかという問題については、十分に考慮されていない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−１５３７２７号公報
【特許文献２】特開２００８−１３１２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従って、一側面では、本発明は、要求メッセージの経路と応答メッセージの経路とが同じであることが要求される通信の経路を変更する場合に、変更前の経路に関連する資源を早期に解放することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の態様に係る中継装置は、（Ａ）通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第１データ格納部と、（Ｂ）ラベルと転送先の情報とを対応付けて格納する第２データ格納部と、（Ｃ）通信の経路を管理するコンピュータから、第１の通信の経路を変更することを要求し且つ変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を受信した場合、当該変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて第２データ格納部に格納する格納処理部と、（Ｄ）当該第１の通信の変更前の経路に割り当てられたラベルを変更後の経路に割り当てられたラベルに変更するように第１データ格納部を更新する更新部と、（Ｅ）第１の通信について、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合に、第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを第２データ格納部から削除する削除部とを有する。
【００１１】
本発明の第２の態様に係る経路制御装置は、（Ｆ）第１の通信の変更後の経路の情報の入力を受け付けた場合、当該変更後の経路上の中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを送信する第１送信部と、（Ｇ）変更後の経路上の中継装置のうち要求メッセージの送信元の装置に最も近い中継装置である第１の中継装置に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断することを要求する判断要求を送信する第２送信部と、（Ｈ）第１の中継装置から、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、少なくとも第１の中継装置に、第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する第３送信部とを有する。
【００１２】
本発明の第３の態様に係る情報処理システムは、（Ｉ）中継装置と、（Ｊ）通信経路を管理する経路制御装置とを有する。また、上で述べた中継装置が、（ｉ１）通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第１データ格納部と、（ｉ２）ラベルと転送先の情報とを対応付けて格納する第２データ格納部と、（ｉ３）処理部とを有する。そして、上で述べた経路制御装置が、（ｊ１）第１の通信の変更後の経路の情報の入力を受け付けた場合、少なくとも中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を送信する。また、上で述べた中継装置の処理部が、（ｉ３１）変更要求を経路制御装置から受信した場合、変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて第２データ格納部に格納する処理を行い、当該格納する処理が完了したことを示すデータを経路制御装置に送信する。また、上で述べた経路制御装置が、（ｊ２）格納する処理が完了したことを示すデータを少なくとも中継装置から受信した場合、第１の通信の識別情報と当該第１の通信の変更前の経路に割り当てられたラベルと変更後の経路に割り当てられたラベルとを含む経路移行要求を、少なくとも中継装置に送信する。また、上で述べた中継装置の処理部が、（ｉ３２）経路移行要求を経路制御装置から受信した場合、第１の通信の変更前の経路に割り当てられたラベルを変更後の経路に割り当てられたラベルに変更するように第１データ格納部を更新し、（ｉ３３）変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合、変更前の経路が使用されていないことを示す不使用通知を経路制御装置に送信する。また、上で述べた経路制御装置が、（ｊ３）不使用通知を受信した場合に、少なくとも中継装置に、第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する。また、上で述べた中継装置の処理部が、（ｉ３４）削除要求を受信した場合、第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを第２データ格納部から削除する。
【発明の効果】
【００１３】
要求メッセージの経路と応答メッセージの経路とが同じであることが要求される通信の経路を変更する場合に、変更前の経路に関連する資源を早期に解放できるようになる。
【図面の簡単な説明】
【００１４】
【図１】図１は、ＭＰＬＳ−ＴＥについて説明するための図である。
【図２】図２は、第１の実施の形態に係るシステムの概要を示す図である。
【図３】図３は、挿入アプリケーションを利用したシステムにおいて想定される問題について説明するための図である。
【図４】図４は、制御サーバの機能ブロック図である。
【図５】図５は、入口中継装置の機能ブロック図である。
【図６】図６は、途中中継装置の機能ブロック図である。
【図７】図７は、出口中継装置の機能ブロック図である。
【図８】図８は、挿入サーバの機能ブロック図である。
【図９】図９は、入口中継装置におけるアドレス解決テーブルに格納されているデータの一例を示す図である。
【図１０】図１０は、途中中継装置におけるアドレス解決テーブルに格納されているデータの一例を示す図である。
【図１１】図１１は、出口中継装置におけるアドレス解決テーブルに格納されているデータの一例を示す図である。
【図１２】図１２は、入口中継装置における転送テーブルに格納されているデータの一例を示す図である。
【図１３】図１３は、途中中継装置における転送テーブルに格納されているデータの一例を示す図である。
【図１４】図１４は、出口中継装置における転送テーブルに格納されているデータの一例を示す図である。
【図１５】図１５は、入口中継装置におけるソケット関連付けテーブルに格納されているデータの一例を示す図である。
【図１６】図１６は、途中中継装置におけるソケット関連付けテーブルに格納されているデータの一例を示す図である。
【図１７】図１７は、出口中継装置におけるソケット関連付けテーブルに格納されているデータの一例を示す図である。
【図１８】図１８は、挿入サーバにおけるソケット関連付けテーブルに格納されているデータの一例を示す図である。
【図１９】図１９は、制御サーバにおける状態管理テーブルに格納されているデータの一例を示す図である。
【図２０】図２０は、入口中継装置における状態管理テーブルに格納されているデータの一例を示す図である。
【図２１】図２１は、入口中継装置におけるラベルテーブルに格納されているデータの一例を示す図である。
【図２２】図２２は、入口中継装置におけるフロー識別テーブルに格納されているデータの一例を示す図である。
【図２３】図２３は、入口中継装置における認証キャッシュテーブルに格納されているデータの一例を示す図である。
【図２４】図２４は、入口中継装置におけるＯＳ判定テーブルに格納されているデータの一例を示す図である。
【図２５】図２５は、入口中継装置における抽出テーブルに格納されているデータの一例を示す図である。
【図２６】図２６は、入口中継装置における前ノード判定テーブルに格納されているデータの一例を示す図である。
【図２７】図２７は、第１の実施の形態のシステムにおける各ノードの動作の概要を説明するためのシーケンス図である。
【図２８】図２８は、中継装置が行う処理の処理フローを示す図である。
【図２９】図２９は、認証処理の処理フローを示す図である。
【図３０】図３０は、認証ヘッダが含まれていない要求メッセージの一例を示す図である。
【図３１】図３１は、認証ヘッダを要求するメッセージの一例を示す図である。
【図３２】図３２は、認証ヘッダが含まれている要求メッセージの一例を示す図である。
【図３３】図３３は、認証キャッシュテーブルに格納されるデータの一例を示す図である。
【図３４】図３４は、前ノード決定処理の一例を示す図である。
【図３５】図３５は、中継装置が行う処理の処理フローを示す図である。
【図３６】図３６は、入口中継装置が途中中継装置に転送する要求メッセージの一例を示す図である。
【図３７】図３７は、中継装置が行う処理の処理フローを示す図である。
【図３８】図３８は、経路変更中における制御サーバ及び各中継装置の動作を説明するためのシーケンス図である。
【図３９】図３９は、制御サーバ及び各中継装置において行われる処理の処理フローを示す図である。
【図４０】図４０は、新経路の情報の一例を示す図である。
【図４１】図４１は、制御サーバ及び各中継装置において行われる処理の処理フローを示す図である。
【図４２】図４２は、入口中継装置が管理する経路状態の遷移について説明するための図である。
【図４３】図４３は、制御サーバが管理する経路状態の遷移について説明するための図である。
【図４４】図４４は、パイプライン型のＨＴＴＰにおける要求メッセージと応答メッセージとの関係の一例を示す図である。
【図４５】図４５は、要求メッセージの数及び応答メッセージの数を管理するためのカウンタの一例を示す図である。
【図４６】図４６は、中継装置が行う処理の処理フローを示す図である。
【図４７】図４７は、中継装置が行う処理の処理フローを示す図である。
【図４８】図４８は、制御サーバ及び各中継装置において行われる処理の処理フローを示す図である。
【図４９】図４９は、中継装置が行う処理の処理フローを示す図である。
【図５０】図５０は、中継装置が行う処理の処理フローを示す図である。
【図５１】図５１は、コンピュータの機能ブロック図である。
【図５２】図５２は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１５】
［実施の形態１］
図２に、第１の実施の形態に係るシステムの概要を示す。例えば企業等の拠点３０には、クライアントアプリケーションを搭載したクライアント端末３１及び３２が設けられている。クライアント端末３１及び３２は、例えばＬＡＮ（Local Area Network）等を介して入口中継装置１１に接続されている。なお、クライアント端末の数に限定は無い。
【００１６】
入口中継装置１１は、例えばＷＡＮ（Wide Area Network）であるネットワーク１０に接続されている。また、ネットワーク１０には、途中中継装置１２、途中中継装置１４及び出口中継装置１３が接続されている。さらに、ネットワーク１０には、ＬＡＮ等のネットワーク及び図示しない中継装置等を介して制御サーバ２３及び認証サーバ２４が接続されている。
【００１７】
途中中継装置１２には挿入サーバ２１が接続されており、途中中継装置１４には挿入サーバ２２が接続されている。挿入サーバ２１及び２２の各々には、挿入アプリケーションが搭載されている。本実施の形態においては、挿入サーバ２１に搭載されている挿入アプリケーションと、挿入サーバ２２に搭載されている挿入アプリケーションとは異なるものであるとする。出口中継装置１３には、データセンタ４０に設けられ且つ業務アプリケーションを搭載した業務サーバ４１が接続されている。
【００１８】
クライアント端末３１及び３２に搭載されたクライアントアプリケーションと、業務サーバ４１に搭載された業務アプリケーションとは、例えばＨＴＴＰによる通信を行う。そして、クライアントアプリケーションと業務アプリケーションとの間の通信の経路上には、挿入アプリケーションを搭載した挿入サーバ２１及び２２が配置されている。挿入サーバ２１及び２２は、クライアント端末３１及び３２が送信した要求メッセージ及び業務サーバ４１が送信した応答メッセージを用いて処理を行う。挿入アプリケーションは、例えばセキュリティの監視を行うアプリケーションであり、異常を検出した場合には管理者等にメール等によって警告する。挿入アプリケーションは、要求メッセージとそれに対する応答メッセージとの両方が無ければ処理を適切に行うことができないものとする。そのため、要求メッセージの経路と応答メッセージの経路とが同じであることが要求される。
【００１９】
以下では、クライアント端末３１及び３２に搭載されたクライアントアプリケーションと、業務サーバ４１に搭載された業務アプリケーションとの間の通信の経路を変更する。具体的には、変更前の経路を「クライアント端末３１→入口中継装置１１→途中中継装置１２→挿入サーバ２１→途中中継装置１２→出口中継装置１３→業務サーバ４１」（図２における太い点線の経路３３）とし、この経路を「クライアント端末３１→入口中継装置１１→途中中継装置１４→挿入サーバ２２→途中中継装置１４→出口中継装置１３→業務サーバ４１」という経路（図２における太線の経路３４）に変更するものとする。すなわち、通信の経路を変更することによって、経由する挿入アプリケーションを変更するようになっている。ここで、経路を変更した際に、「要求メッセージの経路が経路３３であり、応答メッセージの経路が経路３４である」という事態が生じないようにすることが要求される。
【００２０】
このように要求メッセージの経路と応答メッセージの経路とが同じであることが要求される場合、ＭＰＬＳ−ＴＥのような技術をそのまま利用して経路を変更するのは適切ではない。ＭＰＬＳ−ＴＥはパケット通信のための技術であり、片方向のフローに適用することを想定しているため、要求メッセージが古い経路で転送されたのにも関わらず、応答メッセージが新しい経路で転送されるという事態が生じるからである。
【００２１】
また、ＭＰＬＳ−ＴＥで想定しているような通信の場合、転送したパケットがＭＰＬＳ網の出口にある中継装置に到着する時間を容易に予測できる。そのため、新しい経路に切り替えた後、パケットがＭＰＬＳ網の出口にある中継装置に到着する時間を見計らって古い経路に関連する資源（例えば、古いラベルに関連するデータ）を削除すれば、中継装置における資源を効率的に利用できる。
【００２２】
一方、図２に示したシステムにおける通信の場合、挿入アプリケーション及び業務サーバ上のアプリケーションの状態等によって、要求メッセージを転送してから応答メッセージが返ってくるまでに要する時間が大きく変動する。そして、上で述べたようなシステムにおいては、図３に示すように、同じラベルが付与された複数のメッセージが、複数のコネクションを使い且つ独立したタイミングで転送されることになる。そのため、各中継装置は、古い経路で転送した要求メッセージに対する応答メッセージがいつ返ってくるかがわからず、古い経路に関連する資源を削除するタイミングを特定するのが難しい。
【００２３】
そこで、以下で述べるような方法によって、経路の変更を行ったとしても要求メッセージの経路と応答メッセージの経路とが同じになるようにしつつ、古い経路に関連する資源を早期に解放できるようにしている。
【００２４】
図４に、制御サーバ２３の機能ブロック図を示す。制御サーバ２３は、分配部２３１と、要求部２３２と、削除部２３３と、状態管理テーブル２３４とを含む。
【００２５】
分配部２３１は、ラベル及び要求メッセージの転送先の情報等を、当該ラベルが割り当てられた経路上の中継装置に送信する。要求部２３２は、新しい経路上の中継装置のいずれからも登録完了を示す通知を受信した場合に、新しい経路においてネットワーク１０の入口にあたる中継装置（本実施の形態においては、入口中継装置１１）に、新経路有効化要求を送信する。また、要求部２３２は、状態管理テーブル２３４において、経路の変更が行われるフローに対応する状態を「不使用検出待ち」に設定する。削除部２３３は、古い経路上の中継装置に旧経路削除要求を送信し、状態管理テーブル２３４において、経路の変更が行われるフローに対応する状態を「通常運用中」に設定する。
【００２６】
図５に、入口中継装置１１の機能ブロック図を示す。入口中継装置１１は、受信部１１０１と、送信部１１０２と、ラベル管理部１１０４、転送先決定部１１０５、識別部１１０６、経路制御部１１０８及びアドレス解決部１１０９を含む管理部１１０３と、アドレス解決テーブル１１１１と、転送テーブル１１１２と、ラベルテーブル１１１３と、状態管理テーブル１１１４と、ソケット関連付けテーブル１１１５と、フロー識別テーブル１１１６と、認証キャッシュテーブル１１１７と、ＯＳ（Operating System）判定テーブル１１１８と、抽出テーブル１１１９とを含む。
【００２７】
受信部１１０１は、受信したメッセージを管理部１１０３に出力する。送信部１１０２は、管理部１１０３から受け取ったメッセージを他の中継装置等に送信する。ラベル管理部１１０４は、ラベルテーブル１１１３に格納されているデータを管理する。転送先決定部１１０５は、転送テーブル１１１２に格納されているデータを用いて転送先を決定する。識別部１１０６は、受信したメッセージが要求メッセージ及び応答メッセージのいずれであるかを判定する。また、識別部１１０６は、フロー識別テーブル１１１６に格納されているデータ、認証キャッシュテーブル１１１７に格納されているデータ、ＯＳ判定テーブル１１１８に格納されているデータ及び抽出テーブル１１１９に格納されているデータを用いて処理を行い、フローＩＤを特定する。経路制御部１１０８は、ソケット関連付けテーブル１１１５に格納されているデータ及び状態管理テーブル１１１４に格納されているデータを更新する処理等を行う。アドレス解決部１１０９は、アドレス解決テーブル１１１１に格納されているデータを用いて、転送先のＩＰアドレス及びポート番号を特定する。
【００２８】
図６に、途中中継装置１２の機能ブロック図を示す。途中中継装置１２は、受信部１２０１と、送信部１２０２と、転送先決定部１２０４及びアドレス解決部１２０６を含む管理部１２０３と、アドレス解決テーブル１２０７と、転送テーブル１２０８と、前ノード判定テーブル１２０９と、ソケット関連付けテーブル１２１０とを含む。なお、途中中継装置１４の機能ブロック図は、途中中継装置１２の機能ブロック図と同様である。
【００２９】
受信部１２０１は、受信したメッセージを管理部１２０３に出力する。送信部１２０２は、管理部１２０３から受け取ったメッセージを他の中継装置等に送信する。転送先決定部１２０４は、転送テーブル１２０８に格納されているデータ及び前ノード判定テーブル１２０９に格納されているデータを用いて転送先を決定する。アドレス解決部１２０６は、アドレス解決テーブル１２０７に格納されているデータを用いて、転送先のＩＰアドレス及びポート番号を特定する。
【００３０】
図７に、出口中継装置１３の機能ブロック図を示す。出口中継装置１３は、受信部１３０１と、送信部１３０２と、転送先決定部１３０４及びアドレス解決部１３０６を含む管理部１３０３と、アドレス解決テーブル１３０７と、転送テーブル１３０８と、ソケット関連付けテーブル１３０９とを含む。
【００３１】
受信部１３０１は、受信したメッセージを管理部１３０３に出力する。送信部１３０２は、管理部１３０３から受け取ったメッセージを他の中継装置等に送信する。転送先決定部１３０４は、転送テーブル１３０８に格納されているデータに格納されているデータを用いて転送先を決定する。アドレス解決部１３０６は、アドレス解決テーブル１３０７に格納されているデータを用いて、転送先のＩＰアドレス及びポート番号を特定する。
【００３２】
図８に、挿入サーバ２１の機能ブロック図を示す。挿入サーバ２１は、挿入アプリケーション２１１と、処理部２１２と、ソケット関連付けテーブル２１３とを含む。なお、挿入サーバ２２の機能ブロック図は、挿入サーバ２１の機能ブロック図と同様である。
【００３３】
挿入アプリケーション２１１は、受信した要求メッセージ及び応答メッセージを用いて処理を行う。処理部２１２は、ソケット関連付けテーブル２１３に格納されているデータを用いて、要求メッセージ及び応答メッセージの転送先のソケットを特定する処理等を行う。
【００３４】
図９に、入口中継装置１１におけるアドレス解決テーブル１１１１に格納されているデータの一例を示す。図９の例では、転送先のＩＤと、転送先のＩＰアドレス及びポート番号とが格納されている。
【００３５】
図１０に、途中中継装置１２におけるアドレス解決テーブル１２０７に格納されているデータの一例を示す。図１０の例では、転送先のＩＤと、転送先のＩＰアドレス及びポート番号とが格納されている。
【００３６】
図１１に、出口中継装置１３におけるアドレス解決テーブル１３０７に格納されているデータの一例を示す。図１１の例では、転送先に対応するホストと、転送先のＩＰアドレスとが格納されている。なお、ＩＰアドレスと共にポート番号が格納される場合もある。
【００３７】
図１２に、入口中継装置１１における転送テーブル１１１２に格納されているデータの一例を示す。図１２の例では、ラベルと、転送先のリストと、転送モードとが格納されている。転送モードは、ラベルに対応する経路における、自ノードの位置を表している。
【００３８】
図１３に、途中中継装置１２における転送テーブル１２０８に格納されているデータの一例を示す。図１３の例では、ラベルと、転送先のリストと、転送モードとが格納されている。なお、転送先リストには２つの転送先のＩＤが登録されているが、これは、途中中継装置１２が挿入サーバ２１又は出口中継装置１３に要求メッセージを転送する場合があることを表している。
【００３９】
図１４に、出口中継装置１３における転送テーブル１３０８に格納されているデータの一例を示す。図１４の例では、ラベルと、転送先のリストと、転送モードとが格納されている。
【００４０】
図１５に、入口中継装置１１におけるソケット関連付けテーブル１１１５に格納されているデータの一例を示す。図１５の例では、エントリ番号と、業務サーバ側のソケットと、クライアント端末側のソケットと、ラベルと、転送モードとが格納されている。
【００４１】
図１６に、途中中継装置１２におけるソケット関連付けテーブル１２１０に格納されているデータの一例を示す。図１６の例では、エントリ番号と、業務サーバ側のソケットと、クライアント端末側のソケットと、ラベルと、転送モードとが格納されている。
【００４２】
図１７に、出口中継装置１３におけるソケット関連付けテーブル１３０９に格納されているデータの一例を示す。図１７の例では、エントリ番号と、業務サーバ側のソケットと、クライアント端末側のソケットと、ラベルと、転送モードとが格納されている。
【００４３】
図１８に、挿入サーバ２１におけるソケット関連付けテーブル２１３に格納されているデータの一例を示す。図１８の例では、エントリ番号と、業務サーバ側のソケットと、クライアント端末側のソケットと、要求メッセージ中のＵＲＬ（Uniform Resource Locator）とが格納されている。
【００４４】
図１９に、制御サーバ２３における状態管理テーブル２３４に格納されているデータの一例を示す。図１９の例では、フローＩＤと、経路の状態を示すデータとが格納されている。
【００４５】
図２０に、入口中継装置１１における状態管理テーブル１１１４に格納されているデータの一例を示す。図２０の例では、ラベルと、エントリ番号のリストと、フローＩＤと、経路の状態を示すデータとが格納されている。
【００４６】
図２１に、入口中継装置１１におけるラベルテーブル１１１３に格納されているデータの一例を示す。図２１の例では、フローＩＤと、ラベルとが格納されている。
【００４７】
図２２に、入口中継装置１１におけるフロー識別テーブル１１１６に格納されているデータの一例を示す。図２２の例では、ユーザＩＤ及びＯＳの種別と、フローＩＤとが格納されている。
【００４８】
図２３に、入口中継装置１１における認証キャッシュテーブル１１１７に格納されているデータの一例を示す。図２３の例では、許可済みの認証ヘッダの情報と、ユーザＩＤとが格納されている。
【００４９】
図２４に、入口中継装置１１におけるＯＳ判定テーブル１１１８に格納されているデータの一例を示す。図２４の例では、「User-Agent」フィールドに格納されている情報と、ＯＳ種別とが格納されている。
【００５０】
図２５に、入口中継装置１１における抽出テーブル１１１９に格納されているデータの一例を示す。図２５の例では、抽出するパラメタと、パラメタの格納位置を示す情報とが格納されている。
【００５１】
図２６に、途中中継装置１２における前ノード判定テーブル１２０９に格納されているデータの一例を示す。図２６の例では、送信元のＩＰアドレスと、前ノードのＩＤとが格納されている。
【００５２】
なお、第１の実施の形態においては、ＨＴＴＰにおけるパイプライン及びチャンクは行われず、クライアント端末３１及び３２は、１つの要求メッセージに対する１つの応答メッセージが受信するまでは、次の要求メッセージを送信しないとする。
【００５３】
また、各中継装置及び挿入アプリケーションは、メッセージを受信したコネクションをそのまま繋いでいくように（すなわち、複数のコネクションを束ねたりすることなく）次のコネクションを生成し、メッセージを転送する。
【００５４】
また、事前の設定は以下のように行なわれる。（１）クライアント端末３１及び３２におけるクライアントアプリケーション（例えばウェブブラウザ）には、プロキシのＩＰアドレス及びポート番号として、入口中継装置１１のＩＰアドレス及びポート番号が設定される。（２）挿入サーバ２１における挿入アプリケーション２１１には、要求メッセージの転送先のＩＰアドレス及びポート番号として途中中継装置１２のＩＰアドレス及びポート番号が設定される。挿入サーバ２２における挿入アプリケーション２１１には、要求メッセージの転送先のＩＰアドレス及びポート番号として途中中継装置１４のＩＰアドレス及びポート番号が設定される。（３）制御サーバ２３の管理者は、抽出パラメタ及び「Ｕｓｅｒ−Ａｇｅｎｔ」フィールドの情報をＯＳ種別に変換するためのルールを入力する。制御サーバ２３は、入力された情報をネットワーク１０における中継装置に送信し、抽出テーブル１１１９及びＯＳ判定テーブル１１１８のエントリをさせる。但し、入口中継装置１１になり得る中継装置にだけ送信するようにしてもよい。
【００５５】
次に、図２７のシーケンスを用いて、図２に示したシステムにおける各ノードの動作の概要を説明する。図２７のシーケンスは、大まかに３つの段階に分かれている。（１）フローの設定、（２）メッセージ転送時、（３）経路の変更である。円筒状の図形はコネクションが張られていることを表している。
【００５６】
（１）の段階では、制御サーバ２３が、管理者等からフローの条件及びそのフローに対応する経路の情報等の入力を受け付ける。そして、フローの条件等を入口中継装置１１に送信すると共に、フローに対応する経路に割り当てるラベル等を入口中継装置１１、途中中継装置１２及び出口中継装置１３に送信する。
【００５７】
（２）には、通常のメッセージ転送時の動作が示されている。まず、クライアント端末３１が「ＵＲＬ−Ａ」に対して要求メッセージを送信すると、入口中継装置１１が要求メッセージを受信する。受信した要求メッセージに認証ヘッダが含まれていない場合には、入口中継装置１１は、認証ヘッダを要求メッセージに付するように指示するメッセージをクライアント端末３１に送信する。クライアント端末３１は、入口中継装置１１からメッセージを受信すると、「ＵＲＬ−Ａ」に対する要求メッセージに認証ヘッダを付して再度送信する。
【００５８】
入口中継装置１１は、クライアント端末３１から認証ヘッダ付きの要求メッセージを受信すると、認証ヘッダの情報を認証サーバ２４に送信し、認証サーバ２４に認証処理を行わせる。入口中継装置１１は、認証サーバ２４から「認証ＯＫ」という結果を受信すると、クライアント端末３１からの要求メッセージを途中中継装置１２に転送する。なお、要求メッセージから認証ヘッダが削除され、また要求メッセージにはフローに対応するラベルが付される。
【００５９】
途中中継装置１２は、入口中継装置１１から要求メッセージを受信すると、ラベルによって転送先を決定する。その際、図３４のロジックに従い、複数の転送先のうち、今どこまで経由済で、転送先が図１３の転送先リストに含まれる転送先のどれにあたるかを判断する。ここでは送信元ＩＰアドレスが入口中継装置１１のＩＰアドレスであるため、前ノードは入口中継装置１１であると判断し、転送先を挿入サーバ２２とする。途中中継装置１２は、入口中継装置１１から受信した要求メッセージを挿入サーバ２２に転送する。
【００６０】
挿入サーバ２２における挿入アプリケーション２１１は、途中中継装置１２から要求メッセージを受信すると、要求メッセージを用いて処理を行う。そして、挿入サーバ２２は、要求メッセージを途中中継装置１２に転送する。
【００６１】
途中中継装置１２は、挿入サーバ２２から要求メッセージを受信すると、ラベルによって転送先を決定する。その際、図３４のロジックに従い、複数の転送先のうち、今どこまで経由済で、転送先が図１３の転送先リストに含まれる転送先のどれにあたるかを判断する。ここでは送信元ＩＰアドレスが挿入サーバ２２のＩＰアドレスであるため、前ノードは挿入サーバ２２であると判断し、転送先を出口中継装置１３とする。途中中継装置１２は、挿入サーバ２２から受信した要求メッセージを出口中継装置１３に転送する。
【００６２】
出口中継装置１３は、途中中継装置１２から要求メッセージを受信すると、ラベルによって転送先を決定する。ここでは、転送先が業務サーバ４１であるとする。出口中継装置１３は、途中中継装置１２から受信した要求メッセージを業務サーバ４１に転送する。
【００６３】
業務サーバ４１は、出口中継装置１３から要求メッセージを受信すると、要求メッセージを用いて処理を行う。そして、業務サーバ４１は、受信した要求メッセージに対する応答メッセージを、要求メッセージの送信元である出口中継装置１３に対し、要求メッセージの受信時のコネクションと同じコネクションに対し送信する。
【００６４】
出口中継装置１３は、業務サーバ４１が送信した応答メッセージを受信すると、ソケット関連付けテーブル１３０９を用いて、応答メッセージを転送するソケットを特定する。出口中継装置１３は、特定されたソケットに応答メッセージを転送する。
【００６５】
途中中継装置１２は、出口中継装置１３が送信した応答メッセージを受信すると、ソケット関連付けテーブル１２１０を用いて、応答メッセージを転送するソケットを特定する。途中中継装置１２は、特定されたソケットに応答メッセージを転送する。
【００６６】
挿入サーバ２２は、途中中継装置１２が送信した応答メッセージを受信すると、受信した応答メッセージを用いて処理を行う。ここで、異常がある場合には、セキュリティサーバ（図示せず）に警告メッセージを通知する。挿入サーバ２２は、ソケット関連付けテーブル２１３を用いて、応答メッセージを転送するソケットを特定する。挿入サーバ２２は、特定されたソケットに応答メッセージを転送する。
【００６７】
途中中継装置１２は、挿入サーバ２２が送信した応答メッセージを受信すると、ソケット関連付けテーブル１２１０を用いて、応答メッセージを転送するソケットを特定する。途中中継装置１２は、特定されたソケットに応答メッセージを転送する。
【００６８】
入口中継装置１１は、途中中継装置１２が送信した応答メッセージを受信すると、ソケット関連付けテーブル１１１５を用いて、応答メッセージを転送するソケットを特定する。入口中継装置１１は、特定されたソケットに応答メッセージを転送する。
【００６９】
そして、クライアント端末３１は、入口中継装置１１が送信した応答メッセージを受信する。
【００７０】
（３）の段階では、制御サーバ２３が、特定のフローについての経路の変更指示の入力を管理者等から受け付ける。経路の変更指示には、経路変更が行われるフローのＩＤ及び新しい経路上の中継装置の情報等が含まれる。そして、制御サーバ２３が新しい経路上にある入口中継装置１１、途中中継装置１４及び出口中継装置１３に対して、新経路の設定情報を送信する。
【００７１】
次に、図２８乃至図３７を用いて、中継装置の動作について説明する。なお、入口中継装置１１、途中中継装置１２、途中中継装置１４及び出口中継装置１３のいずれの動作も、図２８、図２９、図３４、図３５及び図３７のフローチャートによって説明できる。但し、説明を簡単にするため、以下では基本的には入口中継装置１１の動作を説明しつつ、必要な場合には適宜他の中継装置の動作も説明する。
【００７２】
まず、入口中継装置１１における受信部１１０１は、メッセージを受信し（図２８：ステップＳ１）、識別部１１０６に出力する。
【００７３】
識別部１１０６は、受信したメッセージがＨＴＴＰの要求メッセージであるか判断する（ステップＳ３）。ここでは、例えばポート番号により、ＨＴＴＰの要求メッセージであるか判断する。
【００７４】
ＨＴＴＰの要求メッセージではない（すなわち、ＨＴＴＰの応答メッセージである）場合（ステップＳ３：Ｎｏルート）、処理は端子Ａを介して図３７のステップＳ４３に移行する。
【００７５】
一方、ＨＴＴＰの要求メッセージである場合（ステップＳ３：Ｙｅｓルート）、識別部１１０６は、要求メッセージにラベルフィールドが有るか判断する（ステップＳ５）。ラベルフィールドが有る場合（ステップＳ５：Ｙｅｓルート）、ステップＳ１７の処理に移行する。ラベルフィールドが無い場合（ステップＳ５：Ｎｏルート）、識別部１１０６は、認証処理を実施する（ステップＳ７）。認証処理については、図２９を用いて説明する。なお、認証は、例えばＨＴＴＰプロキシのＢＡＳＩＣ認証によって行う。
【００７６】
まず、識別部１１０６は、要求メッセージに認証ヘッダが有るか判断する（図２９：ステップＳ６１）。認証ヘッダが無い場合（ステップＳ６１：Ｎｏルート）、識別部１１０６は、認証ヘッダを要求する応答メッセージを生成し、要求メッセージの送信元のソケットに送信する（ステップＳ６３）。なお、認証ヘッダが無い要求メッセージとは、例えば図３０に示すような要求メッセージである。また、認証ヘッダを要求する応答メッセージとは、例えば図３１に示すような応答メッセージである。
【００７７】
一方、認証ヘッダが有る場合（ステップＳ６１：Ｙｅｓルート）、識別部１１０６は、認証ヘッダの情報をキーにして認証キャッシュテーブル１１１７を検索する（ステップＳ６５）。なお、認証ヘッダが有る要求メッセージとは、例えば図３２に示すような要求メッセージである。
【００７８】
認証キャッシュテーブル１１１７に認証ヘッダの情報が格納されている（すなわち、ヒットした）場合（ステップＳ６７：Ｙｅｓルート）、識別部１１０６は、認証が成功したと判断する（ステップＳ６９）。一方、ヒットしなかった場合（ステップＳ６７：Ｎｏルート）、識別部１１０６は、認証ヘッダの情報を含む認証要求を認証サーバ２４に送信する（ステップＳ７１）。これに応じて、認証サーバ２４において、クライアント端末３１からのアクセスを許可できるかが判断される。なお、ヒットしなかった場合とは、例えば図３３に示すように、認証キャッシュテーブル１１１７に認証ヘッダの情報が格納されていない場合である。
【００７９】
そして、認証サーバ２４から受信したデータがユーザＩＤを含み且つ認証が成功したことを示している場合（ステップＳ７３：Ｙｅｓルート）、識別部１１０６は、認証ヘッダの情報とユーザＩＤとを対応付けて認証キャッシュテーブル１１１７に登録する（ステップＳ７７）。一方、認証サーバ２４から受信したデータが認証が失敗したことを示している場合（ステップＳ７３：Ｎｏルート）、識別部１１０６は、認証が失敗したことを示す応答メッセージを生成し、要求メッセージの送信元のソケットに送信する（ステップＳ７５）。そして元の処理に戻る。
【００８０】
以上のようにすれば、ユーザの認証を適切に行うことができる。
【００８１】
図２８の説明に戻り、識別部１１０６は、抽出テーブル１１１９からパラメタとパラメタの格納位置を示す情報とを読み出し、読み出した情報を用いて、フローの識別に利用するパラメタを要求メッセージから抽出する（ステップＳ９）。
【００８２】
識別部１１０６は、抽出したパラメタに対して形式変換を実施する（ステップＳ１１）。ステップＳ１１においては、要求メッセージに含まれる「Ｐｒｏｘｙ−Ａｕｔｈｏｒｉｚａｔｉｏｎ」の情報を認証キャッシュテーブル１１１７に格納されているデータに従いユーザＩＤに変換する。また、「Ｕｓｅｒ−Ａｇｅｎｔ」の情報をＯＳ判定テーブル１１１８に格納されているデータに従いＯＳ種別に変換する。
【００８３】
識別部１１０６は、形式変換の結果得られたユーザＩＤ及びＯＳ種別に対応するフローＩＤをフロー識別テーブル１１１６から特定する（ステップＳ１３）。また、ラベル管理部１１０４は、ステップＳ１３において特定されたフローＩＤに対応するラベルをラベルテーブル１１１３から特定する（ステップＳ１５）。
【００８４】
転送先決定部１１０５は、ステップＳ１５において特定されたラベルに対応する転送先及び転送モードを転送テーブル１１１２から特定する（ステップＳ１７）。
【００８５】
そして、ステップＳ１７において特定された転送モードが「途中」である場合には、途中中継装置１２における転送先決定部１２０４は、前ノード決定処理を実施する（ステップＳ１９）。前ノード決定処理については、図３４を用いて説明する。なお、ステップＳ１９はステップＳ１７において特定された転送モードが「途中」である場合にのみ実施される処理であるため、図２８においてステップＳ１９のブロックは点線で示されている。
【００８６】
まず、転送先決定部１２０４は、要求メッセージの送信元のＩＰアドレスをキーとして前ノード判定テーブル１２０９を検索する（図３４：ステップＳ８１）。そして、要求メッセージの送信元ＩＰアドレスが前ノード判定テーブル１２０９に格納されている（すなわち、ヒットした）場合（ステップＳ８３：Ｙｅｓルート）、転送先決定部１２０４は、送信元ＩＰアドレスに対応する前ノードのＩＤを前ノード判定テーブル１２０９から特定する。ヒットした場合、前ノードは挿入サーバ２１又は２２であるということになる。従って、転送先決定部１２０４は、送信元ＩＰアドレスに対応する転送先リストを転送テーブル１２０８から特定し、特定された転送先リストに含まれる転送先のうち、前ノードではない方の転送先を特定する（ステップＳ８５）。
【００８７】
一方、ヒットしなかった場合（ステップＳ８３：Ｎｏルート）、転送先決定部１２０４は、送信元ＩＰアドレスに対応する前ノードのＩＤを前ノード判定テーブル１２０９から特定する。ヒットしなかった場合、前ノードは挿入サーバ２１又は２２ではないということになる。従って、転送先決定部１２０４は、転送先リストのうち１つ目の転送先を特定する（ステップＳ８７）。そして元の処理に戻る。
【００８８】
このようにすれば、ラベルだけでは転送先を一意に決定することができない途中中継装置１２又は１４においても、適切に転送先を決定することができるようになる。
【００８９】
図２８の説明に戻り、ステップＳ１９の処理が終了すると、処理は端子Ｂを介して図３５のステップＳ２１に移行する。
【００９０】
図３５の説明に移行し、アドレス解決部１１０９は、ステップＳ１７において特定された転送モードが「出口」であるか判断する（ステップＳ２１）。転送モードが「出口」である場合（ステップＳ２１：Ｙｅｓルート）、出口中継装置１３におけるアドレス解決部１３０６は、要求メッセージに含まれるＵＲＬ中のホストに対応するＩＰアドレスをアドレス解決テーブル１３０７から特定する（ステップＳ２３）。なお、ポート番号は例えば「８０」とする。
【００９１】
一方、転送モードが「出口」ではない場合（ステップＳ２１：Ｎｏルート）、入口中継装置１１におけるアドレス解決部１１０９は、ステップＳ１７又はＳ１９において特定された転送先に対応するＩＰアドレス及びポート番号をアドレス解決テーブル１１１１から特定する（ステップＳ２５）。また、アドレス解決部１１０９は、特定されたＩＰアドレス及びポート番号の組合せについてのソケットを生成する（ステップＳ２７）。
【００９２】
送信部１１０２は、クライアント端末側のソケットと業務サーバ側のソケット（すなわち、ステップＳ２７において生成されたソケット）とラベルと転送モードとを含むエントリをソケット関連付けテーブル１１１５に生成する（ステップＳ２９）。
【００９３】
送信部１１０２は、ステップＳ１７において特定された転送モードが「入口」であるか判断する（ステップＳ３１）。転送モードが「入口」である場合（ステップＳ３１：Ｙｅｓルート）、ステップＳ１５において特定されたラベルを要求メッセージのラベルフィールドに格納する（ステップＳ３３）。なお、ラベルフィールドにラベルが格納された要求メッセージとは、例えば図３６のような要求メッセージである。
【００９４】
そして、経路制御部１１０８は、ステップＳ２９において生成したエントリのエントリ番号を状態管理テーブル１１１４に登録する（ステップＳ３５）。そしてステップＳ４１の処理に移行する。
【００９５】
一方、転送モードが「入口」ではない場合（ステップＳ３１：Ｎｏルート）、送信部１１０２は、転送モードが「出口」であるか判断する（ステップＳ３７）。転送モードが「出口」である場合（ステップＳ３７：Ｙｅｓルート）、出口中継装置１３における送信部１３０２は、要求メッセージのＨＴＴＰヘッダからラベルを削除する（ステップＳ３９）。そしてステップＳ４１の処理に移行する。転送モードが「出口」ではない（すなわち、「途中」である）場合（ステップＳ３７：Ｎｏルート）、途中中継装置１２における送信部１２０２は、生成したソケットに要求メッセージを転送する（ステップＳ４１）。そして処理は端子Ｃを介して図３７の処理に移行し終了する。
【００９６】
一方、ステップＳ３において、応答メッセージであると判断された場合（ステップＳ３：Ｎｏルート）、転送先決定部１１０５は、ソケット関連付けテーブル１１１５から、応答メッセージの送信元の業務サーバ側ソケットに対応するクライアント端末側のソケットを特定する（図３７：ステップＳ４３）。また、経路制御部１１０８は、ステップＳ４３において特定されたクライアント端末側のソケットと業務サーバ側のソケットとの対応付けについてのエントリをソケット関連付けテーブル１１１５から削除する（ステップＳ４５）。
【００９７】
そして、転送先決定部１１０５は、転送モードが「入口」であるか判断する（ステップＳ４７）。転送モードが「入口」ではない場合（ステップＳ４７：Ｎｏルート）、ステップＳ５５の処理に移行する。
【００９８】
転送モードが「入口」である場合（ステップＳ４７：Ｙｅｓルート）、経路制御部１１０８は、ステップＳ４５において削除されたエントリのエントリ番号を状態管理テーブル１１１４におけるエントリ番号リストから特定する（ステップＳ４９）。ここでは、ステップＳ４５において削除されたエントリに含まれるラベルに対応するエントリ番号リストを状態管理テーブル１１１４から特定し、そのエントリ番号リストから該当するエントリ番号を特定する。そして、経路制御部１１０８は、ステップＳ４９において特定されたエントリ番号を状態管理テーブル１１１４におけるエントリ番号リストから削除する（ステップＳ５１）。
【００９９】
経路制御部１１０８は、ステップＳ５１においてエントリ番号を削除したことによってエントリ番号リストにエントリ番号が無くなり且つ状態管理テーブル１１１４における経路状態が「不使用検出待ち」である場合、経路が不使用になったことを検出する。そして、経路制御部１１０８は、そのエントリ番号リストに対応するラベルが割り当てられた経路が使用されなくなったことを示す不使用検出通知を制御サーバ２３に送信する（ステップＳ５３）。なお、経路が不使用になっていない場合にはステップＳ５３の処理は実行されないため、図３７においてステップＳ５３のブロックは点線で示されている。
【０１００】
そして、送信部１１０２は、ステップＳ４３において特定されたクライアント端末側ソケットに応答メッセージを転送する（ステップＳ５５）。そして処理を終了する。
【０１０１】
以上のようにメッセージを転送することによって、要求メッセージの経路と応答メッセージの経路とが同じになる。また、ソケットの関連付けについてのデータは、要求メッセージに対応する応答メッセージを受信したことを確認した段階で削除されるので、古い経路に関連する資源が早期に開放されるようになる。
【０１０２】
次に、経路変更中における制御サーバ２３及び各中継装置の動作の概要を、図３８の制御シーケンスを用いて説明する。ここでは、古い経路に割り当てられたラベルを「label3」、新しい経路に割り当てられたラベルを「label4」とする。
【０１０３】
まず、制御サーバ２３は、新しい経路上の中継装置（入口中継装置１１、途中中継装置１４及び出口中継装置１３）に、新しい経路のラベル（label4）、次ホップのノードのＩＤ及び転送モード等を送信する。
【０１０４】
入口中継装置１１、途中中継装置１４及び出口中継装置１３は、制御サーバ２３から受信したデータを転送テーブルに登録する。なお、この段階では、古い経路のラベル等は削除されない。
【０１０５】
入口中継装置１１、途中中継装置１４及び出口中継装置１３は、転送テーブルへの登録が完了すると、登録完了通知を制御サーバ２３に送信する。
【０１０６】
制御サーバ２３は、入口中継装置１１、途中中継装置１４及び出口中継装置１３のいずれからも登録完了通知を受信すると、新経路有効化要求を入口中継装置１１に送信する。
【０１０７】
入口中継装置１１は、新経路有効化要求を制御サーバ２３から受信すると、ラベルテーブル１１１３を更新する。具体的には、経路が変更されるフローに対応するラベルを「label3」から「label4」に変更する。
【０１０８】
その後、入口中継装置１１は、label3が割り当てられた古い経路が不使用になったことを検出すると、不使用検出通知を制御サーバ２３に送信する。
【０１０９】
制御サーバ２３は、古い経路について不使用検出通知を受信すると、古い経路上の各中継装置（入口中継装置１１、途中中継装置１２及び出口中継装置１３）に旧経路削除要求を送信する。
【０１１０】
入口中継装置１１、途中中継装置１２及び出口中継装置１３は、旧経路削除要求を受信すると、古い経路のラベル等を転送テーブルから削除する。具体的には、ラベル、転送先のノードのＩＤ及び転送モードを転送テーブルから削除する。
【０１１１】
このようにすれば、古い経路に関連する資源を早期に解放できるようになる。
【０１１２】
次に、図３９乃至４１を用いて、経路変更時における制御サーバ２３及び各中継装置の動作について説明する。
【０１１３】
まず、制御サーバ２３における分配部２３１は、フローＩＤ、条件及び新経路の情報を含む経路変更指示の入力を管理者等から受け付ける（図３９：ステップＳ９１）。条件は、例えばユーザＩＤが「user01」であり且つＯＳ種別が「Win2000」であるという条件等である。このような条件を満たす場合に、入力されたフローＩＤ（以下、処理対象のフローＩＤと呼ぶ）に係るフローであるとみなされる。また、新経路の情報とは、例えば図４０に示すような情報である。すなわち、少なくとも新しい経路上の中継装置のＩＤと要求メッセージが転送される順番とが含まれる。
【０１１４】
分配部２３１は、新しい経路上の各中継装置のＩＰアドレス及びポート番号の入力を管理者等から受け付ける（ステップＳ９３）。なお、ネットワーク１０に配置されている各中継装置のＩＰアドレス等を格納するデータベースを制御サーバ２３が保持している場合には、そのデータベースから読み出すようにしてもよい。
【０１１５】
分配部２３１は、処理対象のフローＩＤが新たなフローＩＤであるか判断する（ステップＳ９５）。新たなフローＩＤである場合（ステップＳ９５：Ｙｅｓルート）、フローＩＤ及び条件を新しい経路の入口中継装置１１に送信する（ステップＳ９７）。新しい経路の入口中継装置１１における識別部１１０６は、フローＩＤ及び条件を受信し、フロー識別テーブル１１１６に登録する（ステップＳ９９）。
【０１１６】
一方、新たなフローＩＤではない場合（ステップＳ９５：Ｎｏルート）、分配部２３１は、新しい経路にラベルを割り当てる（ステップＳ１０１）。
【０１１７】
分配部２３１は、新しい経路状の各中継装置（入口中継装置１１、途中中継装置１４及び出口中継装置１３）に、新しい経路のラベル、次ホップのノードのＩＤ及び転送モードを送信する（ステップＳ１０３）。新しい経路上の各中継装置における転送先決定部は、新しい経路のラベル、次ホップのノードのＩＤ及び転送モードを受信し、転送テーブルに登録する（ステップＳ１０５）。ステップＳ１０５においては、新しい経路のラベルをラベルの列に登録し、次ホップのノードのＩＤを転送先の列に登録し、転送モードを転送モードの列に登録する。
【０１１８】
また、分配部２３１は、新しい経路上の各中継装置（入口中継装置１１、途中中継装置１４及び出口中継装置１３）に、次ホップのノードのＩＰアドレス及びポート番号を送信する（ステップＳ１０７）。新しい経路上の各中継装置は、次ホップのノードのＩＰアドレス及びポート番号を受信し、アドレス解決テーブルに登録する（ステップＳ１０９）。そして、端子Ｄ及びＥを介して図４１の処理に移行する。
【０１１９】
図４１の説明に移行し、新しい経路上の各中継装置は、登録が完了したことを示す登録完了通知を制御サーバ２３に送信する（図４１：ステップＳ１１１）。制御サーバ２３における要求部２３２は、登録完了通知を新しい経路上の各中継装置から受信する（ステップＳ１１３）。
【０１２０】
要求部２３２は、新しい経路上のいずれの中継装置からも登録完了通知を受信した場合、処理対象のフローＩＤ、古い経路のラベル及び新しい経路のラベルを含む新経路有効化要求を新しい経路の入口中継装置１１に送信する（ステップＳ１１４）。新しい経路の入口中継装置１１におけるラベル管理部１１０４は、新経路有効化要求を受信すると、新しい経路のラベルと処理対象のフローＩＤとを対応付けてラベルテーブル１１１３に登録する（ステップＳ１１５）。なお、ステップＳ１１５において、ラベルテーブル１１１３に古い経路のラベルが処理対象のフローＩＤに対応付けて登録されている場合には、古い経路のラベルを新しい経路のラベルに更新する。また、経路制御部１１０８は、状態管理テーブル１１１４において処理対象のフローＩＤに対応する経路状態を「不使用検出待ち」に設定する。
【０１２１】
制御サーバ２３における要求部２３２は、古い経路のラベルはｎｕｌｌであるか判断する（ステップＳ１１７）。すなわち、新しいフローの設定であるため古い経路が無いかを判断する。古い経路のラベルがｎｕｌｌである場合（ステップＳ１１７：Ｙｅｓルート）、要求部２３２は、状態管理テーブル２３４において処理対象のフローＩＤに対応する経路状態を「通常運用中」に設定する（ステップＳ１１９）。
【０１２２】
古い経路のラベルがｎｕｌｌではない場合（ステップＳ１１７：Ｎｏルート）、要求部２３２は、状態管理テーブル２３４において処理対象のフローＩＤに対応する経路状態を「不使用検出待ち」に設定する（ステップＳ１２１）。
【０１２３】
その後、新しい経路の入口中継装置１１における経路制御部１１０８は、古い経路が使われていないことを確認すると、制御サーバ２３に不使用検出通知を送信する（ステップＳ１２３）。また、経路制御部１１０８は、状態管理テーブル１１１４において処理対象のフローＩＤに対応する経路状態を「不使用検出」に設定する。そして、制御サーバ２３における削除部２３３は、入口中継装置１１から不使用検出通知を受信する（ステップＳ１２５）。
【０１２４】
削除部２３３は、古い経路上の各中継装置（入口中継装置１１、途中中継装置１２及び出口中継装置１３）に、古い経路に関連する資源を削除することを要求する旧経路削除要求を送信する（ステップＳ１２７）。古い経路上の各中継装置は、旧経路削除要求を受信すると（ステップＳ１２９）、古い経路のラベル及び転送先の情報を転送テーブルから削除する（ステップＳ１３０）。また、入口中継装置１１における経路制御部１１０８は、状態管理テーブル１１１４において処理対象のフローＩＤに対応する経路状態を「通常運用中」に設定する。
【０１２５】
制御サーバ２３における削除部２３３は、状態管理テーブル２３４において処理対象のフローＩＤに対応する経路状態を「通常運用中」に設定する（ステップＳ１３１）。
【０１２６】
図４２に、入口中継装置１１においてラベル毎に管理する経路状態の遷移を示す。まず、経路が通常どおり運用されている場合、経路状態は「通常運用中」に設定される。そして、制御サーバ２３から古い経路のラベルを含む新経路有効化要求を受信すると、経路状態は「不使用検出待ち」に遷移する。その後、状態管理テーブル中のエントリ番号リストが空になると、経路状態は「不使用検出」に遷移する。そして、古い経路のラベルに関する旧経路削除要求を受信すると、状態管理テーブル１１１４におけるエントリは削除される。
【０１２７】
一方、図４３に、制御サーバ２３においてフロー毎に管理する経路状態の遷移を示す。まず、経路が通常どおり運用されている場合には、経路状態は「通常運用中」に設定される。そして、管理者から、特定のフローＩＤについて経路の変更指示の入力を受け付け、入口中継装置１１に新経路有効化要求を送信した後、経路状態は「不使用検出待ち」に遷移する。その後、入口中継装置１１から不使用検出通知を受信すると、古い経路上の各中継装置に旧経路削除要求を送信する。そして、経路状態は「通常運用中」に戻る。
【０１２８】
以上のようにすれば、入口中継装置１１において古い経路が不使用になったことを検出した（すなわち、古い経路で転送中のメッセージが無いことを確認した）段階で、古い経路上の各中継装置において古い経路に関連する資源を削除することができるようになる。これによって、中継装置における資源を効率的に利用することができるようになる。また、経路を適宜変更することによって、クライアント端末と業務サーバとの間にアプリケーションを動的に挿入することができるようになる。
【０１２９】
［実施の形態２］
次に、第２の実施の形態について説明する。第２の実施の形態では、チャンク型のＨＴＴＰを想定している。すなわち、クライアント端末３１及び３２に搭載されたクライアントアプリケーションは、１つの要求メッセージに対し、一連の応答メッセージが返ってくるまでは次の要求メッセージを送信しないものとする。
【０１３０】
第２の実施の形態においては、ステップＳ４５の処理が以下のように変わる。具体的には、経路制御部１１０８は、受信した応答メッセージが一連の応答メッセージのうち最後の応答メッセージである場合に、クライアント端末側ソケットと業務サーバ側のソケットとの対応付けについてのエントリをソケット関連付けテーブル１１１５から削除する（ステップＳ４５）。
【０１３１】
なお、チャンク型のＨＴＴＰにおける一連の応答メッセージであることは、例えばＨＴＴＰのヘッダに「Ｔｒａｎｓｆｅｒ−Ｅｎｃｏｄｉｎｇ：ｃｈｕｎｋｅｄ」というフィールドが有るか否かによって判断できる。また、一連の応答メッセージのうちの最後の応答メッセージであることは、例えばＨＴＴＰのボディに「０＜ＣＲＬＦ＞＜ＣＲＬＦ＞」という情報が含まれるか否かによって判断できる。
【０１３２】
［実施の形態３］
次に、第３の実施の形態について説明する。第３の実施の形態では、パイプライン型のＨＴＴＰを想定している。図４４は、パイプライン型のＨＴＴＰにおける要求メッセージと応答メッセージとの関係の一例を示す図である。このように、パイプライン型のＨＴＴＰにおいては、クライアント端末３１及び３２におけるクライアントアプリケーションは、１つの要求メッセージに対する応答メッセージが返ってくるのを待たずに、次の要求メッセージを送信する。この場合、入口中継装置１１が１つの応答メッセージをクライアント端末３１及び３２に転送完了した後にも、入口中継装置１１と業務サーバ４１との間に応答メッセージが残っている可能性がある。
【０１３３】
そこで、入口中継装置１１における経路制御部１１０８は、転送済みの要求メッセージ及び応答メッセージの数を計数するためのカウンタを管理する。カウンタの一例を図４５に示す。図４５の例では、ラベル毎に、転送済みの要求メッセージ及び応答メッセージの数を計数するようになっている。
【０１３４】
また、要求メッセージの転送が停止しないといつまでも応答メッセージが返ってくることになるため、入口中継装置１１において要求メッセージのバッファリングを行うとする。
【０１３５】
図４６を用いて、第３の実施の形態における中継装置の動作について説明する。なお、ステップＳ１５５及びＳ１６３が図２８のフローチャートと異なる部分である。
【０１３６】
まず、入口中継装置１１における受信部１１０１は、メッセージを受信し（図４６：ステップＳ１４１）、識別部１１０６に出力する。
【０１３７】
識別部１１０６は、受信したメッセージがＨＴＴＰの要求メッセージであるか判断する（ステップＳ１４３）。ここでは、例えばポート番号により、ＨＴＴＰの要求メッセージであるか判断する。
【０１３８】
ＨＴＴＰの要求メッセージではない（すなわち、ＨＴＴＰの応答メッセージである）場合（ステップＳ１４３：Ｎｏルート）、処理は端子Ｆを介して図４７のステップＳ１６５に移行する。
【０１３９】
一方、ＨＴＴＰの要求メッセージである場合（ステップＳ１４３：Ｙｅｓルート）、識別部１１０６は、要求メッセージにラベルフィールドが有るか判断する（ステップＳ１４５）。ラベルフィールドが有る場合（ステップＳ１４５：Ｙｅｓルート）、ステップＳ１５９の処理に移行する。ラベルフィールドが無い場合（ステップＳ１４５：Ｎｏルート）、識別部１１０６は、認証処理を実施する（ステップＳ１４７）。認証処理については、図２９を用いて説明したとおりである。
【０１４０】
識別部１１０６は、抽出テーブル１１１９からパラメタとパラメタの格納位置を示す情報とを読み出し、読み出した情報を用いて、フローの識別に利用するパラメタを要求メッセージから抽出する（ステップＳ１４９）。
【０１４１】
識別部１１０６は、抽出したパラメタに対して形式変換を実施する（ステップＳ１５１）。ステップＳ１５１においては、要求メッセージに含まれる「Ｐｒｏｘｙ−Ａｕｔｈｏｒｉｚａｔｉｏｎ」の情報を認証キャッシュテーブル１１１７に格納されているデータに従いユーザＩＤに変換する。また、「Ｕｓｅｒ−Ａｇｅｎｔ」の情報をＯＳ判定テーブル１１１８に格納されているデータに従いＯＳ種別に変換する。
【０１４２】
識別部１１０６は、形式変換の結果得られたユーザＩＤ及びＯＳ種別に対応するフローＩＤをフロー識別テーブル１１１６から特定する（ステップＳ１５３）。
【０１４３】
そして、転送先決定部１１０５は、バッファリング状態であるか判断する（ステップＳ１５５）。ステップＳ１５５においては、制御サーバ２３からバッファリング要求を既に受信しており、バッファリング解除要求を未だ受信していなければ、バッファリング状態であると判断する。
【０１４４】
バッファリング状態である場合（ステップＳ１５５：Ｙｅｓルート）、要求メッセージをバッファ（図示せず）に格納し、バッファリング解除要求を受信するまで待機する。一方、バッファリング状態ではない場合（ステップＳ１５５：Ｎｏルート）、ラベル管理部１１０４は、ステップＳ１５３において特定されたフローＩＤに対応するラベルをラベルテーブル１１１３から特定する（ステップＳ１５７）。
【０１４５】
転送先決定部１１０５は、ステップＳ１５７において特定されたラベルに対応する転送先及び転送モードを転送テーブル１１１２から特定する（ステップＳ１５９）。
【０１４６】
そして、ステップＳ１５９において特定された転送モードが「途中」である場合には、途中中継装置１２における転送先決定部１２０４は、前ノード決定処理を実施する（ステップＳ１６１）。前ノード決定処理については、図３４を用いて説明したとおりである。なお、ステップＳ１６１はステップＳ１５９において特定された転送モードが「途中」である場合にのみ実施される処理であるため、図４６においてステップＳ１６１のブロックは点線で示されている。
【０１４７】
ステップＳ１６１の処理が終了すると、経路制御部１１０８は、要求メッセージ数のカウンタをインクリメントする（ステップＳ１６３）。そして処理は端子Ｂを介して図３５のステップＳ２１に移行する。
【０１４８】
図４７を用いて、図４６の端子Ｆ以降の処理について説明する。なお、ステップＳ１６７、Ｓ１６９及びＳ１７３が図３７のフローチャートと異なる部分である。
【０１４９】
転送先決定部１１０５は、ソケット関連付けテーブル１１１５から、応答メッセージの送信元の業務サーバ側ソケットに対応するクライアント端末側のソケットを特定する（ステップＳ１６５）。ここで、経路制御部１１０８は、要求メッセージ数のカウンタをデクリメントする（ステップＳ１６７）。また、経路制御部１１０８は、要求メッセージの数と応答メッセージの数とが同じであれば、ステップＳ１６５において特定されたクライアント端末側のソケットについてのエントリをソケット関連付けテーブル１１１５から削除する（ステップＳ１６９）。なお、要求メッセージの数と応答メッセージの数とが同じでなければステップＳ１６９の処理は実行されないため、図４７においてステップＳ１６９のブロックは点線で示されている。
【０１５０】
そして、転送先決定部１１０５は、転送モードが「入口」であるか判断する（ステップＳ１７１）。転送モードが「入口」ではない場合（ステップＳ１７１：Ｎｏルート）、ステップＳ１７９の処理に移行する。
【０１５１】
転送モードが「入口」である場合（ステップＳ１７１：Ｙｅｓルート）、経路制御部１１０８は、要求メッセージの数と応答メッセージの数とが同じであれば、ステップＳ１６９において削除されたエントリのエントリ番号を状態管理テーブル１１１４におけるエントリ番号リストから特定する（ステップＳ１７３）。ここでは、ステップＳ１６９において削除されたエントリに含まれるラベルに対応するエントリ番号リストを状態管理テーブル１１１４から特定し、そのエントリ番号リストから該当するエントリ番号を特定する。そして、経路制御部１１０８は、ステップＳ１７３において特定されたエントリ番号を状態管理テーブル１１１４におけるエントリ番号リストから削除する（ステップＳ１７５）。なお、要求メッセージの数と応答メッセージの数とが同じでなければステップＳ１７３及びＳ１７５の処理は実行されないため、図４７においてステップＳ１７３及びＳ１７５のブロックは点線で示されている。
【０１５２】
経路制御部１１０８は、ステップＳ１７５においてエントリ番号を削除したことによってエントリ番号リストにエントリ番号が無くなり且つ状態管理テーブル１１１４における経路状態が「不使用検出待ち」である場合、経路が不使用になったことを検出する。そして、経路制御部１１０８は、そのエントリ番号リストに対応するラベルが割り当てられた経路が使用されなくなったことを示す不使用検出通知を制御サーバ２３に送信する（ステップＳ１７７）。なお、経路が不使用になっていない場合にはステップＳ１７７の処理は実行されないため、図４７においてステップＳ１７７のブロックは点線で示されている。
【０１５３】
そして、送信部１１０２は、ステップＳ１６５において特定されたクライアント端末側ソケットに応答メッセージを転送する（ステップＳ１７９）。そして処理を終了する。
【０１５４】
次に、図４８を用いて、経路変更時における制御サーバ２３及び各中継装置の動作について説明する。但し、端子Ｄ及びＥまでの内容については第１の実施の形態と同じであるので、ここでは端子Ｄ及びＥ以降の内容について説明する。なお、ステップＳ１９３、Ｓ１９５、Ｓ２０１及びＳ２０３が図４１のフローチャートと異なる部分である。
【０１５５】
まず、新しい経路上の各中継装置は、登録が完了したことを示す登録完了通知を制御サーバ２３に送信する（図４８：ステップＳ１８１）。制御サーバ２３における要求部２３２は、登録完了通知を新しい経路上の各中継装置から受信する（ステップＳ１８３）。
【０１５６】
要求部２３２は、新しい経路上のいずれの中継装置からも登録完了通知を受信した場合、処理対象のフローＩＤ、古い経路のラベル及び新しい経路のラベルを含む新経路有効化要求を新しい経路の入口中継装置１１に送信する（ステップＳ１８５）。新しい経路の入口中継装置１１におけるラベル管理部１１０４は、新経路有効化要求を受信すると、新しい経路のラベルと処理対象のフローＩＤとを対応付けてラベルテーブル１１１３に登録する（ステップＳ１８７）。なお、ステップＳ１８７において、ラベルテーブル１１１３に古い経路のラベルが処理対象のフローＩＤに対応付けて登録されている場合には、古い経路のラベルを新しい経路のラベルに更新する。また、経路制御部１１０８は、状態管理テーブル１１１４において処理対象のフローＩＤに対応する経路状態を「不使用検出待ち」に設定する。
【０１５７】
制御サーバ２３における要求部２３２は、古い経路のラベルはｎｕｌｌであるか判断する（ステップＳ１８９）。すなわち、新しいフローの設定であるため古い経路が無いかを判断する。古い経路のラベルがｎｕｌｌである場合（ステップＳ１８９：Ｙｅｓルート）、要求部２３２は、状態管理テーブル２３４において処理対象のフローＩＤに対応する経路状態を「通常運用中」に設定する（ステップＳ１９１）。
【０１５８】
古い経路のラベルがｎｕｌｌではない場合（ステップＳ１８９：Ｎｏルート）、要求部２３２は、状態管理テーブル２３４において処理対象のフローＩＤに対応する経路状態を「不使用検出待ち」に設定し、処理対象のフローＩＤについてバッファリング要求を入口中継装置１１に送信する（ステップＳ１９３）。新経路の入口中継装置１１は、処理対象のフローＩＤについてバッファリング要求を制御サーバ２３から受信すると、バッファリング状態に移行する（ステップＳ１９５）。
【０１５９】
その後、新しい経路の入口中継装置１１における経路制御部１１０８は、古い経路が使われていないことを確認すると、制御サーバ２３に不使用検出通知を送信する（ステップＳ１９７）。また、経路制御部１１０８は、状態管理テーブル１１１４において処理対象のフローＩＤに対応する経路状態を「不使用検出」に設定する。そして、制御サーバ２３における削除部２３３は、入口中継装置１１から不使用検出通知を受信する（ステップＳ１９９）。
【０１６０】
削除部２３３は、処理対象のフローＩＤについてのバッファリング解除要求を新経路の入口中継装置１１に送信する（ステップＳ２０１）。新経路の入口中継装置１１は、処理対象のフローＩＤについてバッファリング解除要求を制御サーバ２３から受信すると、バッファリング状態を解除する（ステップＳ２０３）。
【０１６１】
削除部２３３は、古い経路上の各中継装置（入口中継装置１１、途中中継装置１２及び出口中継装置１３）に、古い経路に関連する資源を削除することを要求する旧経路削除要求を送信する（ステップＳ２０５）。古い経路上の各中継装置は、旧経路削除要求を受信すると（ステップＳ２０７）、古い経路のラベル及び転送先の情報を転送テーブルから削除する（ステップＳ２０８）。また、入口中継装置１１における経路制御部１１０８は、状態管理テーブル１１１４において処理対象のフローＩＤに対応する経路状態を「通常運用中」に設定する。
【０１６２】
制御サーバ２３における削除部２３３は、状態管理テーブル２３４において処理対象のフローＩＤに対応する経路状態を「通常運用中」に設定する（ステップＳ２０９）。
【０１６３】
以上のようにすれば、パイプライン型のＨＴＴＰによって通信が行われる場合であっても、古い経路に関連する資源を削除するタイミングを適切に特定できるようになる。
【０１６４】
［実施の形態４］
次に、第４の実施の形態について説明する。第４の実施の形態は、第３の実施の形態の変形例である。第４の実施の形態では、挿入アプリケーション２１１が例えばフィルタリング又はメッセージのコピー等を行うことによって、要求メッセージに対する応答メッセージの数が変わる場合を想定する。
【０１６５】
このような場合には、制御サーバ２３における要求部２３２が、挿入アプリケーション２１１からメッセージの増減に関する情報を受信し、入口中継装置１１に対し、メッセージの増減に関する情報を通知する。入口中継装置１１における経路制御部１１０８は、メッセージの増減に関する情報に基づき、要求メッセージの数のカウンタ及び応答メッセージの数のカウンタの値を変更する。
【０１６６】
このようにすれば、挿入アプリケーション２１１の処理によってメッセージの数が変わる場合にも対処できるようになる。
【０１６７】
［実施の形態５］
次に、第５の実施の形態について説明する。第５の実施の形態では、業務サーバ４１における業務アプリケーションの障害によって、応答メッセージが返ってこない場合を想定する。このような場合には、入口中継装置１１が、要求メッセージを転送した時刻を記録しておき、要求メッセージを転送してから所定の時刻が経過しても応答メッセージが返ってこない場合には、要求メッセージに対する応答メッセージを受信したものとみなす。
【０１６８】
これによって、業務アプリケーションに障害が発生するという不慮の事態にも対処できるようになる。
【０１６９】
［実施の形態６］
次に、第６の実施の形態について説明する。第６の実施の形態においては、制御サーバ２３ではなく、入口中継装置１１が古い経路上の他の中継装置に対して古い経路に関連する資源の削除を要求する。
【０１７０】
第１の方法では、入口中継装置１１が、古い経路に関連する資源を削除することを要求するための専用の制御メッセージを送信する。入口中継装置１１は、転送テーブル１１１２に格納されている、古い経路に割り当てられたラベルに対応する転送先を特定し、特定された転送先に対して制御メッセージを送信する。制御メッセージには、ボディに古い経路に割り当てられたラベルが格納され、さらに古い経路を削除することを要求するラベルが付与される。
【０１７１】
制御メッセージを受信した中継装置は、制御メッセージのボディから抽出したラベルに対応する転送モードを転送テーブルから特定し、転送モードが「出口」でなければ、ラベルに対応する転送先を転送テーブルから特定し、制御メッセージを次の中継装置に転送する。そして、そのラベルについてのエントリを転送テーブルから削除する。一方、転送モードが「出口」であれば、制御メッセージのボディから抽出したラベルについてのエントリを削除し、制御メッセージを転送しない。
【０１７２】
第２の方法では、入口中継装置１１が、クライアント端末３１及び３２から受信した要求メッセージに、古い経路に関連する資源を削除することを要求する制御ヘッダを付与し、次の中継装置に転送する。ここで、制御ヘッダを付与する要求メッセージは、古い経路で転送する最後の要求メッセージである。各中継装置は、制御ヘッダ付きの要求メッセージを受信した場合には、要求メッセージを転送した後に、転送の際に参照した転送テーブルのエントリを削除する。
【０１７３】
以上のような第１又は第２の方法を実施すれば、制御サーバ２３の処理負荷を軽減することができるようになる。
【０１７４】
［実施の形態７］
次に、第７の実施の形態について説明する。
【０１７５】
なお、第１の実施の形態においては、要求メッセージに対する応答メッセージを受信する度に、ソケット関連付けテーブルにおける該当エントリを削除している。これは、クライアント端末３１及び３２が、ＵＲＬ中のＰａｔｈ部分が異なる要求メッセージを同じコネクションを使って送信する（すなわち、要求メッセージ毎に経路が異なる）可能性があるからである。
【０１７６】
しかし、要求メッセージ毎に経路が異なることがないということが、例えばシステム上の制約又は経路分析結果等から予めわかっている場合には、２回目以降も同じコネクションを使って、入口中継装置１１と出口中継装置１３との間で要求メッセージ及び応答メッセージを転送する。なお、例えばＷｅｂＳｏｃｋｅｔプロトコルによりメッセージの転送を行う場合等に、第７の実施の形態を適用することができる。
【０１７７】
第７の実施の形態の概要を簡単に説明する。第７の実施の形態においては、要求メッセージに対する応答メッセージを受信したとしても、コネクションの解放を要求されていない限り、ソケット関連付けテーブル中の該当するエントリを維持する。エントリの削除は、クライアント端末３１及び３２又は業務サーバ４１からコネクションの解放を要求された場合に行なう。コネクションの解放を要求されているか否かは、ＨＴＴＰヘッダ中に「Connection:close」フィールドがあるか否かによって判断する。
【０１７８】
図４９を用いて、第７の実施の形態における中継装置の動作について説明する。なお、ステップＳ２２７及びＳ２２９が図２８のフローチャートと異なる部分である。
【０１７９】
まず、入口中継装置１１における受信部１１０１は、メッセージを受信し（図４９：ステップＳ２１１）、識別部１１０６に出力する。
【０１８０】
識別部１１０６は、受信したメッセージがＨＴＴＰの要求メッセージであるか判断する（ステップＳ２１３）。ここでは、例えばポート番号により、ＨＴＴＰの要求メッセージであるか判断する。
【０１８１】
ＨＴＴＰの要求メッセージではない（すなわち、ＨＴＴＰの応答メッセージである）場合（ステップＳ２１３：Ｎｏルート）、処理は端子Ｇを介して図５０のステップＳ２３５に移行する。
【０１８２】
一方、ＨＴＴＰの要求メッセージである場合（ステップＳ２１３：Ｙｅｓルート）、識別部１１０６は、要求メッセージにラベルフィールドが有るか判断する（ステップＳ２１５）。ラベルフィールドが有る場合（ステップＳ２１５：Ｙｅｓルート）、ステップＳ２２７の処理に移行する。ラベルフィールドが無い場合（ステップＳ２１５：Ｎｏルート）、識別部１１０６は、認証処理を実施する（ステップＳ２１７）。認証処理については、図２９を用いて説明したとおりである。
【０１８３】
識別部１１０６は、抽出テーブル１１１９からパラメタとパラメタの格納位置を示す情報とを読み出し、読み出した情報を用いて、フローの識別に利用するパラメタを要求メッセージから抽出する（ステップＳ２１９）。
【０１８４】
識別部１１０６は、抽出したパラメタに対して形式変換を実施する（ステップＳ２２１）。ステップＳ２２１においては、要求メッセージに含まれる「Ｐｒｏｘｙ−Ａｕｔｈｏｒｉｚａｔｉｏｎ」の情報を認証キャッシュテーブル１１１７に格納されているデータに従いユーザＩＤに変換する。また、「Ｕｓｅｒ−Ａｇｅｎｔ」の情報をＯＳ判定テーブル１１１８に格納されているデータに従いＯＳ種別に変換する。
【０１８５】
識別部１１０６は、形式変換の結果得られたユーザＩＤ及びＯＳ種別に対応するフローＩＤをフロー識別テーブル１１１６から特定する（ステップＳ２２３）。
【０１８６】
そして、ラベル管理部１１０４は、ステップＳ２２３において特定されたフローＩＤに対応するラベルをラベルテーブル１１１３から特定する（ステップＳ２２５）。
【０１８７】
そして、転送先決定部１１０５は、送信元のソケットがソケット関連付けテーブル１１１５に登録されているか判断する（ステップＳ２２７）。すなわち、コネクションが維持されているかを判断する。送信元のソケットがソケット関連付けテーブル１１１５に登録されている場合（ステップＳ２２７：Ｙｅｓルート）、転送先決定部１１０５は、送信元のソケットに対応するソケット及び転送モードをソケット関連付けテーブル１１１５から特定する（ステップＳ２２９）。一方、送信元のソケットがソケット関連付けテーブル１１１５に登録されていない場合（ステップＳ２２７：Ｎｏルート）、転送先決定部１１０５は、ステップＳ２２５において特定されたラベルに対応する転送先及び転送モードを転送テーブル１１１２から特定する（ステップＳ２３１）。
【０１８８】
そして、ステップＳ２２９又はＳ２３１において特定された転送モードが「途中」である場合には、途中中継装置１２における転送先決定部１２０４は、前ノード決定処理を実施する（ステップＳ２３３）。前ノード決定処理については、図３４を用いて説明したとおりである。なお、ステップＳ２３３はステップＳ２２９又はＳ２３１において特定された転送モードが「途中」である場合にのみ実施される処理であるため、図４９においてステップＳ２３３のブロックは点線で示されている。そして処理は端子Ｂを介して図３５のステップＳ２１に移行する。
【０１８９】
図５０を用いて、端子Ｇ以降の処理について説明する。なお、ステップＳ２３７が図３７のフローチャートと異なる部分である。
【０１９０】
転送先決定部１１０５は、ソケット関連付けテーブル１１１５から、応答メッセージの送信元の業務サーバ側ソケットに対応するクライアント端末側のソケットを特定する（図５０：ステップＳ２３５）。
【０１９１】
経路制御部１１０８は、コネクションの解放を要求するデータが応答メッセージのヘッダに含まれるか判断する（ステップＳ２３７）。コネクションの解放を要求するデータが応答メッセージのヘッダに含まれない場合（ステップＳ２３７：Ｎｏルート）、コネクションを維持するので、ステップＳ２４１の処理に移行する。一方、コネクションの解放を要求するデータが応答メッセージのヘッダに含まれる場合（ステップＳ２３７：Ｙｅｓルート）、経路制御部１１０８は、ステップＳ２３５において特定されたクライアント端末側のソケットと業務サーバ側のソケットとの対応付けについてのエントリをソケット関連付けテーブル１１１５から削除する（ステップＳ２３９）。
【０１９２】
そして、転送先決定部１１０５は、転送モードが「入口」であるか判断する（ステップＳ２４１）。転送モードが「入口」ではない場合（ステップＳ２４１：Ｎｏルート）、ステップＳ２４９の処理に移行する。
【０１９３】
転送モードが「入口」である場合（ステップＳ２４１：Ｙｅｓルート）、経路制御部１１０８は、ステップＳ２３９において削除されたエントリのエントリ番号を状態管理テーブル１１１４におけるエントリ番号リストから特定する（ステップＳ２４３）。ここでは、ステップＳ２３９において削除されたエントリに含まれるラベルに対応するエントリ番号リストを状態管理テーブル１１１４から特定し、そのエントリ番号リストから該当するエントリ番号を特定する。そして、経路制御部１１０８は、ステップＳ２４３において特定されたエントリ番号を状態管理テーブル１１１４におけるエントリ番号リストから削除する（ステップＳ２４５）。なお、ステップＳ２３９の処理が実行された場合のみステップＳ２４３及びＳ２４５の処理が実行されるため、図５０においては、ステップＳ２４３及びＳ２４５のブロックが点線で示されている。
【０１９４】
経路制御部１１０８は、ステップＳ２３９においてエントリ番号を削除したことによってエントリ番号リストにエントリ番号が無くなり且つ状態管理テーブル１１１４における経路状態が「不使用検出待ち」である場合、経路が不使用になったことを検出する。そして、経路制御部１１０８は、そのエントリ番号リストに対応するラベルが割り当てられた経路が使用されなくなったことを示す不使用検出通知を制御サーバ２３に送信する（ステップＳ２４７）。なお、経路が不使用になっていない場合にはステップＳ２４７の処理は実行されないため、図５０においてステップＳ２４７のブロックは点線で示されている。
【０１９５】
そして、送信部１１０２は、ステップＳ２３５において特定されたクライアント端末側ソケットに応答メッセージを転送する（ステップＳ２４９）。そして処理を終了する。
【０１９６】
以上のようにすれば、応答メッセージを受信する度にソケット関連付けテーブル１１１５を更新する場合と比較して、中継装置における中継処理の性能を向上させることができるようになる。
【０１９７】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した制御サーバ２３、入口中継装置１１、途中中継装置１２、途中中継装置１４、出口中継装置１３、挿入サーバ２１及び挿入サーバ２２の機能ブロック構成は必ずしも実際のプログラムモジュール構成に対応するものではない。
【０１９８】
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１９９】
なお、上で述べた制御サーバ２３、認証サーバ２４、クライアント端末３１及び３２、並びに業務サーバ４１は、コンピュータ装置であって、図５１に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０２００】
また、上で述べた中継装置の各々は、図５２に示すように、メモリ２６０１とＣＰＵ２６０３とハードディスク・ドライブ（ＨＤＤ）２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信部２６１７（図５２では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信部２６１７のいずれかを介して入力されたデータは、他の通信部２６１７を介して出力される。ＣＰＵ２６０３は、通信部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０２０１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０２０２】
本実施の形態の第１の態様に係る中継装置は、（Ａ）通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第１データ格納部と、（Ｂ）ラベルと転送先の情報とを対応付けて格納する第２データ格納部と、（Ｃ）通信の経路を管理するコンピュータから、第１の通信の経路を変更することを要求し且つ変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を受信した場合、当該変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて第２データ格納部に格納する格納処理部と、（Ｄ）第１の通信の変更前の経路に割り当てられたラベルを変更後の経路に割り当てられたラベルに変更するように第１データ格納部を更新する更新部と、（Ｅ）第１の通信について、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合に、第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを第２データ格納部から削除する削除部とを有する。
【０２０３】
このようにすれば、要求メッセージの経路と応答メッセージの経路とが同じであることが要求される通信の経路を変更する場合に、変更前の経路に関連する資源を早期に解放できるようになる。
【０２０４】
また、上で述べた中継装置が、（Ｆ）要求メッセージを転送するソケットの情報と応答メッセージを転送するソケットの情報とを対応付けて格納する第３データ格納部をさらに有するようにしてもよい。そして、上で述べた削除部が、（ｅ１）応答メッセージを受信した場合に、当該応答メッセージを受信したソケットの情報と当該ソケットに対応付けて格納されているソケットの情報とを第３データ格納部から削除するようにしてもよい。このようにすれば、実際に要求メッセージの経路と応答メッセージの経路とが同じになることを保証できる。また、変更前の経路に関連するソケットの情報が早期に削除されるようになる。
【０２０５】
また、上で述べた削除部が、（ｅ２）変更前の経路で転送した要求メッセージの数と当該要求メッセージに対する応答メッセージの数とを計数し、計数された当該要求メッセージの数及び当該応答メッセージの数に基づき、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断するようにしてもよい。このようにすれば、旧経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したかを適切に判断できるようになる。例えば、要求メッセージの数と応答メッセージの数とが一致した場合に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断する。
【０２０６】
また、上で述べた中継装置が、（Ｇ）バッファをさらに有するようにしてもよい。そして、上で述べた削除部が、（ｅ３）コンピュータからバッファリング要求を受信した場合、当該バッファリング要求以後に受信した第１の通信の要求メッセージをバッファに格納させ、バッファリング要求以前に受信した第１の通信の要求メッセージの数を計数するようにしてもよい。要求メッセージの転送を一旦停止しないと、いつまでも応答メッセージを受信することになるからである。
【０２０７】
また、上で述べた削除部が、（ｅ４）第１の通信についての要求メッセージ又は応答メッセージの数の増減についての情報をコンピュータから受信した場合、当該増減についての情報を用いて、変更前の経路で転送した要求メッセージの数又は当該要求メッセージに対する応答メッセージの数を補正するようにしてもよい。例えば経路上でメッセージのフィルタリング又はコピー等が行われるような場合には、要求メッセージの数と応答メッセージの数とは必ずしも同じにはならない。そこで、上で述べたような補正を行うことにより、このような場合に対しても適切に対応できるようになる。
【０２０８】
また、上で述べた削除部が、（ｅ５）応答メッセージにおける特定の部分に含まれるデータが、１の要求メッセージに対する複数の応答メッセージのうちの最後の応答メッセージであることを示している場合に、当該１の要求メッセージに対する複数の応答メッセージを漏れなく受信したと判断するようにしてもよい。例えば１の要求メッセージに対する応答メッセージが複数ある場合に対しても適切に対応できるようになる。
【０２０９】
また、上で述べた削除部が、（ｅ６）変更前の経路で要求メッセージを転送してから所定時間が経過した場合に、当該要求メッセージに対する応答メッセージを漏れなく受信したと判断するようにしてもよい。例えば応答メッセージの送信元の装置において障害が発生したような場合には、応答メッセージが返ってこない場合がある。そこで、上で述べたようにすれば、応答メッセージが返ってこないため変更前の経路に関連する資源を解放できないという事態を回避できるようになる。
【０２１０】
また、上で述べた削除部が、（ｅ７）変更前の経路に割り当てられたラベルに対応する転送先の情報を第２データ格納部から抽出し、抽出された当該転送先の情報によって特定される転送先に対して、変更前の経路に割り当てられたラベルについてのデータを削除することを要求するメッセージを送信するようにしてもよい。このようにすれば、変更前の経路上の他の中継装置においても、変更前の経路に関連する資源を早期に解放できるようになる。
【０２１１】
また、上で述べた削除部が、（ｅ８）コネクションの解放を要求することを示すデータを含む応答メッセージを受信した場合に、当該応答メッセージを受信したソケットの情報と当該ソケットに対応付けて格納されているソケットの情報とを第３データ格納部から削除するようにしてもよい。このようにすれば、コネクションの解放を明示的に要求されるまでは第３データ格納部に格納されているデータを利用できるようになる。
【０２１２】
本実施の形態の第２の態様に係る経路制御装置は、（Ｈ）第１の通信の変更後の経路の情報の入力を受け付けた場合、当該変更後の経路上の中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを送信する第１送信部と、（Ｉ）変更後の経路上の中継装置のうち要求メッセージの送信元の装置に最も近い中継装置である第１の中継装置に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断することを要求する判断要求を送信する第２送信部と、（Ｊ）第１の中継装置から、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、少なくとも第１の中継装置に、第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する第３送信部とを有する。
【０２１３】
このようにすれば、要求メッセージの経路と応答メッセージの経路とが同じであることが要求される通信の経路を変更する場合に、変更前の経路に関連する資源を早期に解放させることができるようになる。
【０２１４】
また、上で述べた第２送信部が、（ｉ１）第１の中継装置に、第１の通信の要求メッセージをバッファリングすることを要求するバッファリング要求を送信するようにしてもよい。そして、上で述べた第３送信部が、（ｊ１）変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、第１の中継装置に、バッファリングされた第１の通信の要求メッセージの転送を再開することを要求する再開要求を送信するようにしてもよい。このようにすれば、第１の通信の要求メッセージの転送を一旦停止させることができるので、要求メッセージに対する応答メッセージを漏れなく受信したかを適切に判断させることができるようになる。
【０２１５】
また、上で述べた第３送信部が、（ｊ２）変更前の経路上の中継装置のうち第１の中継装置以外の中継装置に削除要求をさらに送信するようにしてもよい。このようにすれば、変更前の経路上の装置が、変更前の経路に関連する資源を早期に解放できるようになる。
【０２１６】
本実施の形態の第３の態様に係る情報処理システムは、（Ｋ）中継装置と、（Ｌ）通信経路を管理する経路制御装置とを有する。また、上で述べた中継装置が、（ｋ１）通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第１データ格納部と、（ｋ２）ラベルと転送先の情報とを対応付けて格納する第２データ格納部と、（ｋ３）処理部とを有する。そして、上で述べた経路制御装置が、（ｌ１）第１の通信の変更後の経路の情報の入力を受け付けた場合、少なくとも中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を送信する。また、上で述べた中継装置の処理部が、（ｋ３１）変更要求を経路制御装置から受信した場合、変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて第２データ格納部に格納する処理を行い、当該格納する処理が完了したことを示すデータを経路制御装置に送信する。また、上で述べた経路制御装置が、（ｌ２）格納する処理が完了したことを示すデータを少なくとも中継装置から受信した場合、第１の通信の識別情報と当該第１の通信の変更前の経路に割り当てられたラベルと変更後の経路に割り当てられたラベルとを含む経路移行要求を、少なくとも中継装置に送信する。また、上で述べた中継装置の処理部が、（ｋ３２）経路移行要求を経路制御装置から受信した場合、第１の通信の変更前の経路に割り当てられたラベルを変更後の経路に割り当てられたラベルに変更するように第１データ格納部を更新し、（ｋ３３）変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合、変更前の経路が使用されていないことを示す不使用通知を経路制御装置に送信する。また、上で述べた経路制御装置が、（ｌ３）不使用通知を受信した場合に、少なくとも中継装置に、第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する。また、上で述べた中継装置の処理部が、（ｋ３４）削除要求を受信した場合、第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを第２データ格納部から削除する。
【０２１７】
このようにすれば、要求メッセージの経路と応答メッセージの経路とが同じであることが要求される通信の経路を変更する場合に、変更前の経路に関連する資源を早期に解放できるようになる。
【０２１８】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０２１９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２２０】
（付記１）
通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第１データ格納部と、
ラベルと転送先の情報とを対応付けて格納する第２データ格納部と、
通信の経路を管理するコンピュータから、第１の通信の経路を変更することを要求し且つ変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を受信した場合、当該変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて前記第２データ格納部に格納する格納処理部と、
前記第１の通信の変更前の経路に割り当てられたラベルを前記変更後の経路に割り当てられたラベルに変更するように前記第１データ格納部を更新する更新部と、
前記第１の通信について、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合に、前記第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを前記第２データ格納部から削除する削除部と、
を有する中継装置。
【０２２１】
（付記２）
要求メッセージを転送するソケットの情報と応答メッセージを転送するソケットの情報とを対応付けて格納する第３データ格納部
をさらに有し、
前記削除部が、
応答メッセージを受信した場合に、当該応答メッセージを受信したソケットの情報と当該ソケットに対応付けて格納されているソケットの情報とを前記第３データ格納部から削除する
付記１記載の中継装置。
【０２２２】
（付記３）
前記削除部が、
前記変更前の経路で転送した要求メッセージの数と当該要求メッセージに対する応答メッセージの数とを計数し、計数された当該要求メッセージの数及び当該応答メッセージの数に基づき、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断する
付記１又は２記載の中継装置。
【０２２３】
（付記４）
バッファ
をさらに有し、
前記削除部が、
前記コンピュータからバッファリング要求を受信した場合、当該バッファリング要求以後に受信した前記第１の通信の要求メッセージを前記バッファに格納させ、前記バッファリング要求以前に受信した前記第１の通信の要求メッセージの数を計数する
付記３記載の中継装置。
【０２２４】
（付記５）
前記削除部が、
前記第１の通信についての要求メッセージ又は応答メッセージの数の増減についての情報を前記コンピュータから受信した場合、当該増減についての情報を用いて、前記変更前の経路で転送した要求メッセージの数又は当該要求メッセージに対する応答メッセージの数を補正する
付記３記載の中継装置。
【０２２５】
（付記６）
前記削除部が、
応答メッセージにおける特定の部分に含まれるデータが、１の要求メッセージに対する複数の応答メッセージのうちの最後の応答メッセージであることを示している場合に、当該１の要求メッセージに対する複数の応答メッセージを漏れなく受信したと判断する
付記１又は２記載の中継装置。
【０２２６】
（付記７）
前記削除部が、
前記変更前の経路で要求メッセージを転送してから所定時間が経過した場合に、当該要求メッセージに対する応答メッセージを漏れなく受信したと判断する
付記１又は２記載の中継装置。
【０２２７】
（付記８）
前記削除部が、
前記変更前の経路に割り当てられたラベルに対応する転送先の情報を前記第２データ格納部から抽出し、抽出された当該転送先の情報によって特定される転送先に対して、前記変更前の経路に割り当てられたラベルについてのデータを削除することを要求するメッセージを送信する
付記１乃至７のいずれか１つ記載の中継装置。
【０２２８】
（付記９）
前記削除部が、
コネクションの解放を要求することを示すデータを含む応答メッセージを受信した場合に、当該応答メッセージを受信したソケットの情報と当該ソケットに対応付けて格納されているソケットの情報とを前記第３データ格納部から削除する
付記２記載の中継装置。
【０２２９】
（付記１０）
第１の通信の変更後の経路の情報の入力を受け付けた場合、当該変更後の経路上の中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを送信する第１送信部と、
前記変更後の経路上の中継装置のうち前記要求メッセージの送信元の装置に最も近い中継装置である第１の中継装置に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断することを要求する判断要求を送信する第２送信部と、
前記第１の中継装置から、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、少なくとも前記第１の中継装置に、前記第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する第３送信部と、
を有する経路制御装置。
【０２３０】
（付記１１）
前記第２送信部が、
前記第１の中継装置に、前記第１の通信の要求メッセージをバッファリングすることを要求するバッファリング要求を送信し、
前記第３送信部が、
前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、前記第１の中継装置に、バッファリングされた前記第１の通信の要求メッセージの転送を再開することを要求する再開要求を送信する
付記１０記載の経路制御装置。
【０２３１】
（付記１２）
前記第３送信部が、前記変更前の経路上の中継装置のうち前記第１の中継装置以外の中継装置に前記削除要求をさらに送信する
付記１０又は１１記載の経路制御装置。
【０２３２】
（付記１３）
通信の経路を管理するコンピュータから、第１の通信の経路を変更することを要求し且つ変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を受信した場合、ラベルと転送先の情報とを対応付けて格納する第１データ格納部に、当該変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて格納し、
通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第２データ格納部を、当該第１の通信の変更前の経路に割り当てられたラベルを前記変更後の経路に割り当てられたラベルに変更するように更新し、
前記第１の通信について、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合に、前記第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを前記第１データ格納部から削除する
処理をコンピュータに実行させるためのプログラム。
【０２３３】
（付記１４）
通信の経路を管理するコンピュータから、第１の通信の経路を変更することを要求し且つ変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を受信した場合、ラベルと転送先の情報とを対応付けて格納する第１データ格納部に、当該変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて格納し、
通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第２データ格納部を、当該第１の通信の変更前の経路に割り当てられたラベルを前記変更後の経路に割り当てられたラベルに変更するように更新し、
前記第１の通信について、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合に、前記第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを前記第１データ格納部から削除する
処理をコンピュータが実行する情報処理方法。
【０２３４】
（付記１５）
第１の通信の変更後の経路の情報の入力を受け付けた場合、当該変更後の経路上の中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを送信し、
前記変更後の経路上の中継装置のうち前記要求メッセージの送信元の装置に最も近い中継装置である第１の中継装置に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断することを要求する判断要求を送信し、
前記第１の中継装置から、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、少なくとも前記第１の中継装置に、前記第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する
処理をコンピュータに実行させるためのプログラム。
【０２３５】
（付記１６）
第１の通信の変更後の経路の情報の入力を受け付けた場合、当該変更後の経路上の中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを送信し、
前記変更後の経路上の中継装置のうち前記要求メッセージの送信元の装置に最も近い中継装置である第１の中継装置に、変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したか判断することを要求する判断要求を送信し、
前記第１の中継装置から、前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したことを示すデータを受信した場合に、少なくとも前記第１の中継装置に、前記第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信する
処理をコンピュータが実行する情報処理方法。
【０２３６】
（付記１７）
中継装置と、
通信経路を管理する経路制御装置と、
を有し、
前記中継装置が、
通信の識別情報と当該通信の経路に割り当てられたラベルとを対応付けて格納する第１データ格納部と、
ラベルと転送先の情報とを対応付けて格納する第２データ格納部と、
処理部と、
を有し、
前記経路制御装置が、
第１の通信の変更後の経路の情報の入力を受け付けた場合、少なくとも前記中継装置に、当該変更後の経路に割り当てられたラベルと変更後の転送先の情報とを含む変更要求を送信し、
前記中継装置の処理部が、
前記変更要求を前記経路制御装置から受信した場合、前記変更後の経路に割り当てられたラベルと当該変更後の転送先の情報とを対応付けて前記第２データ格納部に格納する処理を行い、当該格納する処理が完了したことを示すデータを前記経路制御装置に送信し、
前記経路制御装置が、
前記格納する処理が完了したことを示すデータを少なくとも前記中継装置から受信した場合、前記第１の通信の識別情報と当該第１の通信の変更前の経路に割り当てられたラベルと前記変更後の経路に割り当てられたラベルとを含む経路移行要求を、少なくとも前記中継装置に送信し、
前記中継装置の処理部が、
前記経路移行要求を前記経路制御装置から受信した場合、前記第１の通信の変更前の経路に割り当てられたラベルを前記変更後の経路に割り当てられたラベルに変更するように前記第１データ格納部を更新し、
前記変更前の経路で転送した要求メッセージに対する応答メッセージを漏れなく受信したと判断した場合、前記変更前の経路が使用されていないことを示す不使用通知を前記経路制御装置に送信し、
前記経路制御装置が、
前記不使用通知を受信した場合に、少なくとも前記中継装置に、前記第１の通信の変更前の経路に割り当てられたラベルに関連する資源を削除することを要求する削除要求を送信し、
前記中継装置の処理部が、
前記削除要求を受信した場合、前記第１の通信の変更前の経路に割り当てられたラベルと当該ラベルに対応する転送先の情報とを前記第２データ格納部から削除する
ことを特徴とする情報処理システム。
【符号の説明】
【０２３７】
１０  ネットワーク    １１  入口中継装置
１２  途中中継装置    １３  出口中継装置
１４  途中中継装置    ２０  コンテンツ配信事業者のセンタ
２１  挿入サーバ    ２２  挿入サーバ
２３  制御サーバ    ２４  認証サーバ
３０  拠点    ３１，３２  クライアント端末
３３  変更前の経路    ３４  変更後の経路
４０  データセンタ    ４１  業務サーバ
１１０１  受信部    １１０２  送信部
１１０３  管理部    １１０４  ラベル管理部
１１０５  転送先決定部    １１０６  識別部
１１０８  経路制御部    １１０９  アドレス解決部
１１１１  アドレス解決テーブル    １１１２  転送テーブル
１１１３  ラベルテーブル    １１１４  状態管理テーブル
１１１５  ソケット関連付けテーブル    １１１６  フロー識別テーブル
１１１７  認証キャッシュテーブル    １１１８  ＯＳ判定テーブル
１１１９  抽出テーブル    １２０１  受信部
１２０２  送信部    １２０３  管理部
１２０４  転送先決定部    １２０６  アドレス解決部
１２０７  アドレス解決テーブル    １２０８  転送テーブル
１２０９  前ノード判定テーブル    １２１０  ソケット関連付けテーブル
１３０１  受信部    １３０２  送信部
１３０３  管理部    １３０４  転送先決定部
１３０６  アドレス解決部    １３０７  アドレス解決テーブル
１３０８  転送テーブル    １３０９  ソケット関連付けテーブル
２１１  挿入アプリケーション    ２１２  処理部
２１３  ソケット関連付けテーブル    ２３１  分配部
２３２  要求部    ２３３  削除部
２３４  状態管理テーブル
【図１】
0005857815.tif 000002
【図２】
0005857815.tif 000003
【図３】
0005857815.tif 000004
【図４】
0005857815.tif 000005
【図５】
0005857815.tif 000006
【図６】
0005857815.tif 000007
【図７】
0005857815.tif 000008
【図８】
0005857815.tif 000009
【図９】
0005857815.tif 000010
【図１０】
0005857815.tif 000011
【図１１】
0005857815.tif 000012
【図１２】
0005857815.tif 000013
【図１３】
0005857815.tif 000014
【図１４】
0005857815.tif 000015
【図１５】
0005857815.tif 000016
【図１６】
0005857815.tif 000017
【図１７】
0005857815.tif 000018
【図１８】
0005857815.tif 000019
【図１９】
0005857815.tif 000020
【図２０】
0005857815.tif 000021
【図２１】
0005857815.tif 000022
【図２２】
0005857815.tif 000023
【図２３】
0005857815.tif 000024
【図２４】
0005857815.tif 000025
【図２５】
0005857815.tif 000026
【図２６】
0005857815.tif 000027
【図２７】
0005857815.tif 000028
【図２８】
0005857815.tif 000029
【図２９】
0005857815.tif 000030
【図３０】
0005857815.tif 000031
【図３１】
0005857815.tif 000032
【図３２】
0005857815.tif 000033
【図３３】
0005857815.tif 000034
【図３４】
0005857815.tif 000035
【図３５】
0005857815.tif 000036
【図３６】
0005857815.tif 000037
【図３７】
0005857815.tif 000038
【図３８】
0005857815.tif 000039
【図３９】
0005857815.tif 000040
【図４０】
0005857815.tif 000041
【図４１】
0005857815.tif 000042
【図４２】
0005857815.tif 000043
【図４３】
0005857815.tif 000044
【図４４】
0005857815.tif 000045
【図４５】
0005857815.tif 000046
【図４６】
0005857815.tif 000047
【図４７】
0005857815.tif 000048
【図４８】
0005857815.tif 000049
【図４９】
0005857815.tif 000050
【図５０】
0005857815.tif 000051
【図５１】
0005857815.tif 000052
【図５２】
0005857815.tif 000053