(57)【要約】【課題】本発明は通信経路の候補が複数種類存在する場合であっても適切な経路を自動的に選択して通信することが可能なルーチング方法及びルーチング装置並びにプログラム及び記録媒体を提供することを目的とする。【解決手段】通信を行う複数のアプリケーション間で送受信されるデータを複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、各プロキシでは、宛先の識別子と隣接プロキシの識別子とコスト情報を含む経路情報を作成して広告として配信し、経路広告を受信したプロキシはコストの再評価を行ってから経路情報を保存し他のプロキシに経路広告を送信し、各プロキシは経路選択の際にルーチングテーブルのコスト情報を反映する。【選択図】      図１
2004274142.tif 000002
【特許請求の範囲】
【請求項１】
通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、
各プロキシでは、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信し、
各プロキシでは、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存し、
各プロキシは、経路選択の際に前記ルーチングテーブルのコスト情報を反映する
ことを特徴とするルーチング方法。
【請求項２】
通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、
各プロキシでは、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信し、
他のプロキシから送信された経路情報の広告を受信したプロキシでは、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存し、
アプリケーションと接続しているプロキシでは、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する
ことを特徴とするルーチング方法。
【請求項３】
請求項１又は請求項２のルーチング方法において、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、経路情報の広告を受信したプロキシは、インタフェースの違いをコストの再評価に反映することを特徴とするルーチング方法。
【請求項４】
請求項１又は請求項２のルーチング方法において、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、経路情報の広告を受信したプロキシは、経由するプロキシの違いをコストの再評価に反映することを特徴とするルーチング方法。
【請求項５】
請求項２のルーチング方法において、
宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシは、複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、
前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直す
ことを特徴とするルーチング方法。
【請求項６】
請求項１又は請求項２のルーチング方法において、
各プロキシは、経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信し、
各プロキシが経路を選択する際に、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定する
ことを特徴とするルーチング方法。
【請求項７】
通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するために用いるルーチング装置において、
各プロキシが、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手段と、
各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手段と、
各プロキシが、経路を選択する際に前記ルーチングテーブルのコスト情報を反映する経路選択手段と
を設けたことを特徴とするルーチング装置。
【請求項８】
通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するために用いるルーチング装置において、
各プロキシが、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手段と、
他のプロキシから送信された経路情報の広告を受信したプロキシが、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手段と、
アプリケーションと接続しているプロキシが、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する経路選択手段と
を設けたことを特徴とするルーチング装置。
【請求項９】
請求項７又は請求項８のルーチング装置において、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、経路情報の広告を受信したプロキシは、インタフェースの違いをコストの再評価に反映することを特徴とするルーチング装置。
【請求項１０】
請求項７又は請求項８のルーチング装置において、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、経路情報の広告を受信したプロキシは、経由するプロキシの違いをコストの再評価に反映することを特徴とするルーチング装置。
【請求項１１】
請求項８のルーチング装置において、
宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシは、複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、
前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直す
ことを特徴とするルーチング装置。
【請求項１２】
請求項７又は請求項８のルーチング装置において、
各プロキシは、経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信し、
各プロキシが経路を選択する際に、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定する
ことを特徴とするルーチング装置。
【請求項１３】
通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システム上で前記データの転送経路を制御する各プロキシのコンピュータが実行可能なプログラムであって、
各プロキシが、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手順と、
各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手順と、
各プロキシが、経路を選択する際に前記ルーチングテーブルのコスト情報を反映する経路選択手順と
を設けたことを特徴とするプログラム。
【請求項１４】
通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システム上で前記データの転送経路を制御する各プロキシのコンピュータが実行可能なプログラムであって、
各プロキシが、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手順と、
各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手順と、
アプリケーションと接続しているプロキシが、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する経路選択手順と
を設けたことを特徴とするプログラム。
【請求項１５】
請求項１３のプログラムにおいて、前記経路広告送信手順では、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、前記経路選択手順では、経路情報の広告を受信した場合に、インタフェースの違いをコストの再評価に反映することを特徴とするプログラム。
【請求項１６】
請求項１３のプログラムにおいて、
前記経路広告送信手順では、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、前記経路選択手順では、経路情報の広告を受信した場合に、経由するプロキシの違いをコストの再評価に反映することを特徴とするプログラム。
【請求項１７】
請求項１３のプログラムにおいて、前記経路選択手順では、宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシが複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直すことを特徴とするプログラム。
【請求項１８】
請求項１３のプログラムにおいて、各プロキシが経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信する優先度広告送信手順を設け、前記経路選択手順では、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定することを特徴とするプログラム。
【請求項１９】
請求項１３，請求項１４，請求項１５，請求項１６，請求項１７及び請求項１８の何れかのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムにおいて、プロキシが配置された各ノードの制御に用いられるルーチング方法及びルーチング装置並びにプログラム及び記録媒体に関する。
【０００２】
【従来の技術】
例えばＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のようにトランスポート層よりも下位に分類されるネットワークの通信制御系においては、セッションを構成するエンド−エンドの端末，端末のインタフェース及びアプリケーション（プログラム）がセッションの構築時に固定される。
【０００３】
このため、利用者が第１のアプリケーションを用いて特定の通信相手と通信を行っている状態から、第１のアプリケーションの利用をやめて第２のアプリケーションで前記通信相手と通信を行おうとする場合には、通信を一旦中断し、セッションを再構築してから第２のアプリケーションで通信を再開する必要がある。
しかしながら、実際には通信が切断されてしまうので、第２のアプリケーションで同じ通信相手と通信する場合であっても、通信手続きを最初からやり直す必要がある。
【０００４】
つまり、通信サービスの対象となるアプリケーションを通信の途中で他のアプリケーションに切り替えることはできない。
非特許文献１には、プロキシ間の経路を変化させた場合に、サービスを継続させるための機能が開示されている。
【０００５】
しかしながら、どのような経路を経由して通信するかを指定するためには、各プロキシに設けられる設定ファイルに予め記述しておくか、あるいはユーザからのコマンド入力によって指定する必要があった。経路の指定は、例えば通信経路上で特定のプロキシと他の特定のプロキシとを接続することや、通信に用いるインタフェースを切り替えることを意味する。
【０００６】
従って、適切な経路を指定するためには、ネットワーク上に存在する各プロキシやそれらが利用可能なインタフェースを把握したうえで、各プロキシの資源（リソース）を有効に利用しかつ遅延の少ない通信をするためにはどのように経路を指定すればよいかを判断する必要があるので、経路を指定するユーザの負担は大きい。
【０００７】
本出願人が既に出願した技術（特許文献１）においては、宛先のプロキシとその宛先プロキシへ到達するための次ホップのプロキシとの対応関係をプロキシルーチングテーブルとして保持しているので、このプロキシルーチングテーブルを用いて宛先のプロキシとのセッションを確立することが可能である。
また、この技術ではアプリケーション間で通信中に経路上のプロキシを変更したり、アプリケーションそのものを変更することが可能であり、しかもこれらの変更の際に、通信において行われているサービスを中断する必要がなく、連続的にサービスを提供することができる。
【特許文献１】
特願２００２−３６０２４（出願時には未公知）
【非特許文献１】
高杉耕一，中村元紀，田中聡，久保田稔：動的なネットワーク環境上でユーザに追従するシームレスサービスプラットフォーム，ＤＩＣＯＭＯ  ２００２，ｐｐ．２９７−３００，情報処理学会，２００２。
【０００８】
【発明が解決しようとする課題】
しかしながら、特許文献１のプロキシルーチングテーブルを用いる場合であっても、複数のエンドプロキシが候補にある場合や次ホップの隣接プロキシが複数ある場合には、どのプロキシに接続するのがより適しているのか判断できない。
また、あるプロキシを通信の中継に加えるように経路を変更したい場合や、あるインタフェースを優先的に利用したい場合、あるいはそのような要求が発生した場合であっても、特定のプロキシやインタフェースを優先的に利用するように指定することはできない。
【０００９】
従って、エンドプロキシ間のセッションの確立が可能な場合であっても、そのセッションはユーザやネットワーク上のプロキシが意図する経路と同じである可能性が非常に低い。
本発明は、通信経路の候補が複数種類存在する場合であっても、適切な経路を自動的に選択して通信することが可能なルーチング方法及びルーチング装置並びにプログラム及び記録媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
請求項１は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、各プロキシでは、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信し、各プロキシでは、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存し、各プロキシは、経路選択の際に前記ルーチングテーブルのコスト情報を反映することを特徴とする。
【００１１】
請求項１においては、コスト情報を含む経路情報を広告としてプロキシ間でやりとりするので、通信のための経路を確保しようとする場合に、複数種類を経路を選択できる場合には、各プロキシは各々の経路のコストを把握することができ、よりコストの小さい経路を自動的に選択し効率的な通信を実現できる。
コストは、通信にかかる負担の大きさを表し、例えば各プロキシにおけるハードウェアなどの資源（リソース）の消費量や実際の通信回線の利用にかかる費用などに相当する。
【００１２】
実際には、アプリケーションに接続しているプロキシ、すなわちエンドプロキシは、プロキシ間の隣接関係をたどることにより、他のエンドプロキシと接続し、エンドプロキシ間の接続関係を示すセッションを構成することができる。これにより、エンドプロキシ間は互いに隣接関係にある複数のプロキシの連鎖的なつながりにより経路として結ばれるので、この経路に沿ってアプリケーションのデータはエンドプロキシ間を行きかうことになる。
【００１３】
また、必要に応じて各プロキシにおけるコスト値に変更を加えれば、セッションとして構築される通信経路を切り替えることもできる。
請求項２は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、各プロキシでは、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信し、他のプロキシから送信された経路情報の広告を受信したプロキシでは、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存し、アプリケーションと接続しているプロキシでは、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択することを特徴とする。
【００１４】
請求項２においては、請求項１と同様に、コスト情報を含む経路情報を広告としてプロキシ間でやりとりするので、通信のための経路を確保しようとする場合に、複数種類を経路を選択できる場合には、各プロキシは各々の経路のコストを把握することができ、よりコストの小さい経路を自動的に選択し効率的な通信を実現できる。
【００１５】
請求項３は、請求項１又は請求項２のルーチング方法において、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、経路情報の広告を受信したプロキシは、インタフェースの違いをコストの再評価に反映することを特徴とする。
請求項３においては、利用するインタフェース毎に独立したコスト値を割り当てることができるので、最適なインタフェースを通る経路を選択できる。
【００１６】
トランスポートネットワークのインタフェース情報とは、例えばＴＣＰ／ＩＰにおけるＩＰアドレス及びポート番号に相当し、ＨＴＴＰにおけるＵＲＬに相当する。
請求項４は、請求項１又は請求項２のルーチング方法において、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、経路情報の広告を受信したプロキシは、経由するプロキシの違いをコストの再評価に反映することを特徴とする。
【００１７】
請求項４においては、プロキシは受信した経路情報の広告に基づいてそれが通過したプロキシを認識できる。
請求項５は、請求項２のルーチング方法において、宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシは、複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直すことを特徴とする。
【００１８】
請求項５においては、複数の接続先エンドプロキシが存在する場合に、最適な接続先エンドプロキシと接続するように経路を選択することができる。また、各プロキシのコスト値やプロキシ間の隣接関係が変化したような場合には、ルーチングテーブルが変化するので、経路の選択をやり直すことができる。
請求項６は、請求項１又は請求項２のルーチング方法において、各プロキシは、経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信し、各プロキシが経路を選択する際に、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定することを特徴とする。
【００１９】
請求項６においては、例えばユーザの意志や要求、サービス固有の要求を反映した優先度情報を広告することができるので、コスト的に不利な経路であってもユーザの指示に従って優先的に選択することができる。
【００２０】
請求項７は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するために用いるルーチング装置において、各プロキシが、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手段と、各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手段と、各プロキシが、経路を選択する際に前記ルーチングテーブルのコスト情報を反映する経路選択手段とを設けたことを特徴とする。
【００２１】
請求項７のルーチング装置を用いることにより、請求項１と同様の結果が得られる。
請求項８は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するために用いるルーチング装置において、各プロキシが、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手段と、他のプロキシから送信された経路情報の広告を受信したプロキシが、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手段と、アプリケーションと接続しているプロキシが、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する経路選択手段とを設けたことを特徴とする。
【００２２】
請求項８のルーチング装置を用いることにより、請求項２と同様の結果が得られる。
請求項９は、請求項７又は請求項８のルーチング装置において、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、経路情報の広告を受信したプロキシは、インタフェースの違いをコストの再評価に反映することを特徴とする。
【００２３】
請求項９のルーチング装置を用いることにより、請求項３と同様の結果が得られる。
請求項１０は、請求項７又は請求項８のルーチング装置において、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、経路情報の広告を受信したプロキシは、経由するプロキシの違いをコストの再評価に反映することを特徴とする。
【００２４】
請求項１０のルーチング装置を用いることにより、請求項４と同様の結果が得られる。
請求項１１は、請求項８のルーチング装置において、宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシは、複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直すことを特徴とする。
【００２５】
請求項１１のルーチング装置を用いることにより、請求項５と同様の結果が得られる。
請求項１２は、請求項７又は請求項８のルーチング装置において、各プロキシは、経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信し、各プロキシが経路を選択する際に、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定することを特徴とする。
【００２６】
請求項１２のルーチング装置を用いることにより、請求項６と同様の結果が得られる。
請求項１３は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システム上で前記データの転送経路を制御する各プロキシのコンピュータが実行可能なプログラムであって、各プロキシが、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手順と、各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手順と、各プロキシが、経路を選択する際に前記ルーチングテーブルのコスト情報を反映する経路選択手順とを設けたことを特徴とする。
【００２７】
請求項１３のプログラムを各プロキシのコンピュータで実行することにより、請求項１と同様の結果が得られる。
請求項１４は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システム上で前記データの転送経路を制御する各プロキシのコンピュータが実行可能なプログラムであって、各プロキシが、少なくとも宛先のプロキシを表す第１のプロキシ識別子と、隣接するプロキシを表す第２のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第１のプロキシ識別子及び第２のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手順と、各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第２のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手順と、アプリケーションと接続しているプロキシが、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する経路選択手順とを設けたことを特徴とする。
【００２８】
請求項１４のプログラムを各プロキシのコンピュータで実行することにより、請求項２と同様の結果が得られる。
請求項１５は、請求項１３のプログラムにおいて、前記経路広告送信手順では、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、前記経路選択手順では、経路情報の広告を受信した場合に、インタフェースの違いをコストの再評価に反映することを特徴とする。
【００２９】
請求項１５のプログラムを各プロキシのコンピュータで実行することにより、請求項３と同様の結果が得られる。
請求項１６は、請求項１３のプログラムにおいて、前記経路広告送信手順では、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、前記経路選択手順では、経路情報の広告を受信した場合に、経由するプロキシの違いをコストの再評価に反映することを特徴とする。
【００３０】
請求項１６のプログラムを各プロキシのコンピュータで実行することにより、請求項４と同様の結果が得られる。
請求項１７は、請求項１３のプログラムにおいて、前記経路選択手順では、宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシが複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直すことを特徴とする。
【００３１】
請求項１７のプログラムを各プロキシのコンピュータで実行することにより、請求項５と同様の結果が得られる。
請求項１８は、請求項１３のプログラムにおいて、各プロキシが経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信する優先度広告送信手順を設け、前記経路選択手順では、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定することを特徴とする。
【００３２】
請求項１８のプログラムを各プロキシのコンピュータで実行することにより、請求項６と同様の結果が得られる。
請求項１９は、請求項１３，請求項１４，請求項１５，請求項１６，請求項１７及び請求項１８の何れかのプログラムを記録したコンピュータで読み取り可能な記録媒体である。
【００３３】
請求項１９の記録媒体から読み出したプログラムを各プロキシのコンピュータで実行することにより、請求項１〜請求項６と同様の結果が得られる。
【００３４】
【発明の実施の形態】
本発明の１つの実施の形態について図１〜図２３を参照して説明する。この形態は全ての請求項に相当する。
【００３５】
図１は接続元のエンドプロキシの経路選択動作を示すフローチャートである。図２は広告の配信動作例を示すシーケンス図である。図３は経路情報の作成の処理を示すフローチャートである。図４は経路広告の受信処理を示すフローチャートである。図５はプロキシの構成を示すブロック図である。
図６はセッション構築例を示すブロック図である。図７はインタフェースの例を示すブロック図である。図８は動的な隣接関係構築の動作を示すシーケンス図である。図９は静的な隣接関係構築の動作を示すシーケンス図である。図１０はインタフェース情報広告フォーマットを示す模式図である。
【００３６】
図１１はエンドプロキシ間の経路の例を示すブロック図である。図１２は経路情報広告フォーマットを示す模式図である。図１３はコスト値変更処理を示すブロック図である。図１４はシステムの構成例を示すブロック図である。図１５はルーチングテーブルの構成例を示す模式図である。図１６はコスト増減の結果を表すルーチングテーブルの模式図である。
【００３７】
図１７はコスト増減テーブルの構成例を示す模式図である。図１８は優先度要素の定義を示す模式図である。図１９は優先度の指定例を示す模式図である。図２０は経路の評価例（１）を示す模式図である。図２１は経路の評価例（２）を示す模式図である。図２２はコマンドの一覧（１）を示す模式図である。図２３はコマンドの一覧（２）を示す模式図である。
【００３８】
この形態では、請求項７及び請求項８の経路広告送信手段及び経路広告受信手段はそれぞれステップＳ２１及びＳ２３に対応し、請求項７の経路選択手段及び請求項８の経路選択手段はＳ１４〜Ｓ１８に対応する。
（１）プロキシ及びアプリケーションの定義：
プロキシは、通信の中継を行うためのノード（通信装置）上に存在する機能であり、一般的にはコンピュータ上のプログラムで実現される。各プロキシは、それに予め割り当てられたプロキシＩＤ（識別子）によって一意に識別される。
【００３９】
アプリケーションは通信の両端にそれぞれ接続されるプログラムであり、サービスを行ったりサービスを享受するために用いられる。アプリケーションには、表示や操作といったユーザインタフェースが含まれる。
アプリケーション間でやりとりされるデータ、すなわちアプリケーションデータは、複数のプロキシによって中継される。プロキシの中で、特にアプリケーションと直接接続しているものをエンドプロキシと呼ぶ。
【００４０】
アプリケーションが通信確立を要求すると、この要求をエンドプロキシが受け取る。エンドプロキシは、受け取った通信確立の要求をエンドプロキシ間のセッション確立要求に置き換える。
アプリケーションからの通信確立の要求を受け、セッション確立を開始するエンドプロキシを接続元エンドプロキシと呼ぶ。また、接続元エンドプロキシとセッションを確立し、別のアプリケーションに接続するエンドプロキシを接続先エンドプロキシと呼ぶ。
【００４１】
セッションは、例えば図６の例に示されるように、アプリケーション及びプロキシのつながりの全体を意味する。同一のセッションにおいては、アプリケーション間である完結した通信のやり取りがされる。
例えば、１つのクライアントアプリケーションがサーバアプリケーションから１つの動画ファイルをダウンロードして動画を再生する場合に形成される通信経路を１つのセッションとすることができる。
【００４２】
このように、通信のやり取りの単位であるセッションは、アプリケーションのコンテキストやアプリケーションプロトコルの完結性に依存し、プロキシではセッションの開始と終了を検知して処理するのみである。
つまり、プロキシはセッションの開始を検知したら経路を構築し、セッションが終了したら経路を解放する。同一のセッションを構成するアプリケーション及びプロキシは適宜変更できる。このような経路の変更は、ユーザの指定や各プロキシにおける経路管理によって行われる。
【００４３】
各プロキシは、各セッションをそれらに割り当てたセッションＩＤによって識別する。セッションＩＤは各プロキシ内で一意性を保っていれば十分であり、同一セッションでも異なるプロキシ上では異なるセッションＩＤを割り当てても構わない。
【００４４】
プロキシは、自プロキシで管理されているセッションと同一のセッションが他のプロキシでどのようなセッションＩＤとして管理されているかを、セッション構築時やプロキシの追加時に情報交換によって知ることができるので、この情報を保持しておくことにより、プロキシ間のセッションＩＤの対応関係を把握できる。
【００４５】
エンドプロキシ間は直接接続されるか、又は１つ以上のプロキシ（中継プロキシ）によって結ばれる。このような一方のエンドプロキシ，中継プロキシ，他方のエンドプロキシのつながりを経路と呼ぶ。
なお、エンドプロキシ，接続元エンドプロキシ，接続先エンドプロキシ，中継プロキシのそれぞれは、ある時点の１つのセッションに注目した場合の各プロキシの役割を表しているにすぎない。例えば、あるセッションにおける中継プロキシは、別のセッションにおけるエンドプロキシに割り当てられる場合もある。
【００４６】
（２）プロキシの構成：
本発明で用いる各プロキシは、図５のように構成され、プロキシ制御部１１，キャッシュ管理部１２，キャッシュメモリ１３，セッション管理部１４，コネクション管理部１５，経路管理部１６，サービス管理部１７サービス情報保持部１８及びテーブル保持部２０を備えている。また、テーブル保持部２０にはルーチングテーブル２１，優先度情報テーブル２２及び隣接管理テーブル２３が備わっている。
【００４７】
通信データはキャッシュメモリ１３に蓄えられ、他のプロキシ又はアプリケーションに転送される。
コネクション管理部１５は、接続先のサービス情報を見つけ、その接続先のサービスに接続している接続先エンドプロキシまでの経路をルーチングテーブル２１を参照して発見し、接続元エンドプロキシと接続先エンドプロキシとの間のコネクションを管理する。
【００４８】
セッション管理部１４は、ネットワークが動的に変化した場合や、ユーザから変更の指示があった場合に、コネクション管理部１５に経路の再構築をさせ、セッションを維持する。
プロキシ制御部１１は、ユーザから入力されるコマンド又は他のプログラムから入力されるコマンドに応じて各機能ブロックに対して指示を出し各コマンドを実行する。プロキシ制御部１１の実行可能なコマンドの一覧が図２２，図２３に示されている。
【００４９】
このような構成のプロキシを用いることにより、ユーザがあるサービスを享受しているときに、自分の周辺にある複数の通信装置（ノード）の中から特定の通信装置を選択的に指定して、その通信装置からサービスの経路を再構築させることができる。つまり、サービスを受ける通信装置を切り替える場合でもサービスを連続的に享受することができる。
【００５０】
例えば、ユーザが屋外から屋内に移動したような場合には、通信装置を携帯端末から屋内に設置された大型の固定端末に切り替えたいという状況が発生するし、ユーザが屋内から屋外に移動しようとする時には、屋外で利用できない固定端末から携帯端末に切り替えたいという状況が発生する。このような状況に対しては、プロキシの制御により要求を実現できる。
【００５１】
（３）サービス及びサービス広告：
プロキシのサービス管理部１７はサービス広告の処理を行う。サービスとはサーバアプリケーションとしての一機能を提供することを意味する。例えば、ストリーミングサービスでは、ストリーミングデータを送信することで１サービスが完了する。
【００５２】
サービス管理部１７は、プロキシに接続しているアプリケーションにより提供できるサービスにサービスＩＤを割り当て、その全てをサービステーブルに登録し、そのテーブルをサービス情報保持部１８に保持する。
【００５３】
また、サービステーブルの情報は、そのサービスを行っているプロキシのプロキシＩＤとともに、サービス管理部１７の制御によりサービス広告としてネットワーク上に広告される。
接続元エンドプロキシは、アプリケーションが要求したサービスを受けるために、必要な情報（接続先エンドプロキシのプロキシＩＤ）をネットワーク上に広告されたサービス広告を発見することにより得る。
【００５４】
このような広告や発見に関する基本的な技術は、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  ｐｅｅｒ）アーキテクチャとして知られており、既存のソフトウェアＪｘｔａ（ｈｔｔｐ：／／ｗｗｗ．ｊｘｔａ．ｏｒｇ）を用いて実現することができる。
サービスＩＤの具体例を示す。例えば、端末ｈｏｇｅがサービスの主な発生元であり、ｈ．ｍｐｇがサービスの種類であり、サービス提供のプロトコルがＨＴＴＰの場合には、（ｈｔｔｐ：／／ｈｏｇｅ／ｈ．ｍｐｇ）のサービスＩＤを割り当てることが考えられる。
【００５５】
次に経路を構築するための動作について説明する。
（４）プロキシの経路管理部１６が扱うインタフェース：
ここでは、インタフェースはプロキシ間の通信に用いるトランスポート層以下のデータの送受信ポートを意味する。
例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ではＩＰアドレスとポート番号、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）ではＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）がインタフェースを表す。
【００５６】
隣接プロキシからは、自ノードの持つインタフェース宛にデータが送信される。プロキシは、インタフェースを統一的に扱うために、インタフェースをＵＲＩ形式で表現する。
同一ノードに複数のネットワークインタフェースが存在したり、ネットワークインタフェースのアドレスそのものも変化したりする可能性もあるので、プロキシとインタフェースの関係は１対多でかつ動的に変化が起こる可能性がある。
【００５７】
図７に示す例について説明する。プロキシ（Ａ）とプロキシ（Ｂ）とは隣接関係にあり、プロキシ（Ａ）は２つ、プロキシ（Ｂ）は３つのインタフェースを持っている。プロキシ（Ａ）のインタフェースは、ＵＲＩ表現で（ｈｔｔｐ：／／ｈｏｇｅｈｏｇｅ．ｃｏｍ：９０３）と（ｔｃｐ：／／ｈｏｇｅｈｏｇｅ２．ｃｏｍ：２４５）という識別子で表現される。これらの識別子をインタフェースＩＤと呼ぶ。
【００５８】
（５）プロキシの経路管理部１６が扱う隣接関係：
通信ネットワーク上で互いに隣接した状態で接続されている複数のプロキシは隣接関係にあり、あるプロキシからみて隣接関係にあるプロキシを隣接プロキシと呼ぶ。
例えば、図６においてプロキシ（Ａ）とプロキシ（Ｂ）とは隣接関係にある。隣接関係にあるプロキシ間では、経路情報をやりとりする。また、エンドプロキシ間の中継は隣接関係にあるプロキシのつながりで行われる。
【００５９】
隣接関係には動的なものと静的なものとがある。動的な隣接プロキシは、ブロードキャストやマルチキャストを用いてインタフェース情報を交換し、これにより自律的に隣接関係の構築及び削除が実行される。この場合には、例えば図８に示すようなシーケンスが実行される。
静的な隣接関係については、予め定めた設定ファイルの内容や、ユーザからのコマンド入力に従って、静的に構築及び削除される。この場合には、例えば図９に示すようなシーケンスが実行される。
【００６０】
このような隣接関係は、各プロキシ上の隣接管理テーブル２３に記録される。隣接管理テーブル２３に記録される情報には、隣接プロキシＩＤ，動的／静的の区別，隣接関係の状態（アクティブ／非アクティブ）が含まれている。
この隣接関係については、各プロキシの経路管理部１６の制御により、例えば一定の周期でプロキシ間でインタフェース情報の交換を行い、隣接関係が維持されているかどうかを確認する。
【００６１】
隣接関係が維持されなくなった場合には、動的な隣接関係の場合なら隣接管理テーブル２３から削除され、静的な隣接関係の場合には非アクティブ状態に遷移する。非アクティブな状態とは、隣接管理テーブル２３に隣接関係に関する情報は保持しているが、現時点では隣接関係にない状態を表す。
（６）プロキシの経路管理部１６が扱う経路情報：
経路情報は、各プロキシのルーチングテーブル２１に記録される。経路情報として管理される情報の要素には、各プロキシからみた、送信元インタフェース，隣接側インタフェース，隣接プロキシ，通過プロキシ，接続先インタフェース，接続先エンドプロキシを表す識別子（ＩＤ）並びにコスト値が含まれている。
【００６２】
例えば、図１１に示すように接続元エンドプロキシ（Ａ）と接続先エンドプロキシ（Ｄ）との間をいくつかの他のプロキシ（Ｂ），・・（Ｃ），・・を経由して接続する場合には、接続元エンドプロキシ（Ａ）とその隣接プロキシ（Ｂ）とを、接続元エンドプロキシ（Ａ）の送信元インタフェースと隣接プロキシ（Ｂ）の隣接側インタフェースを用いて接続し、さらに隣接プロキシ（Ｂ）が通過プロキシ（Ｃ）を経由して接続先エンドプロキシ（Ｄ）と接続しているので、これらのプロキシ及びインタフェースを特定する情報を経路情報として管理する。
【００６３】
また、コスト値はこのような経路を利用して通信する際にかかるコストを定量的に表す情報である。なお、隣接プロキシＩＤ，接続先エンドプロキシＩＤ及びコスト値は必須要素であるが、他の要素は省略することもできる。
（７）経路管理部１６が経路情報をプロキシ間でやりとりする方法：
プロキシ間でやりとりする経路情報は、図１２に示すようなフォーマットで構成され、経路広告として配信される。
【００６４】
図２のようにプロキシ（Ａ）とそれに隣接する３つのプロキシ（Ｂ），（Ｃ），（Ｄ）が存在する場合を想定して各プロキシの動作の概要を説明する。
プロキシ（Ｂ）は、経路情報を作成してそれをルーチングテーブル２１に記憶する（Ｓ２１）。さらに、プロキシ（Ｂ）はルーチングテーブル２１に記憶した経路情報を経路広告として隣接プロキシ（Ａ）へ送信する（Ｓ２２）。但し、経路のループを防ぐため、広告先の隣接プロキシを含む経路情報を経路広告しない。
【００６５】
経路広告を受信したプロキシ（Ａ）は、受信した経路情報の隣接プロキシＩＤを経路広告してきた隣接プロキシ（Ｂ）のプロキシＩＤに書き換えてルーチングテーブル２１に記憶する（Ｓ２３）。
また、隣接プロキシとの接続がなくなった場合には、隣接管理テーブル２３の関連する要素は隣接関係から削除され、静的な隣接関係なら隣接管理テーブル２３の状態を非アクティブに変更し、隣接プロキシに関連する経路情報をルーチングテーブル２１から削除する。
【００６６】
各プロキシが実行する経路情報の作成（Ｓ２１の内容）では、実際には図３のような処理が実行される。また、各プロキシが実行する経路広告の受信処理（Ｓ２３）では図４のような処理が実行される。
図３の内容について説明する。ステップＳ４１では、宛先プロキシＩＤ及び隣接プロキシＩＤに隣接プロキシＩＤを割り当て、ホップ数に初期値の１を割り当て、コスト値を初期化し、隣接側インタフェースＩＤ及び送信元インタフェースＩＤを割り当てる。
【００６７】
例えば、図１４におけるプロキシＩＤ（００２）のプロキシが、プロキシＩＤ（００５）の隣接プロキシとの間の経路情報を作成する場合には、宛先プロキシＩＤに（００５）、隣接プロキシＩＤに（００５）、ホップ数に１、隣接側インタフェースＩＤに（ｔｃｐ：／／１９２．１６８．３．１）、送信元インタフェースＩＤに（ｔｃｐ：／／１９２．１６８．４．１）をそれぞれ割り当てる。
【００６８】
また、ステップＳ４２では自プロキシにおけるインタフェースのコスト及び隣接プロキシにおけるインタフェースのコストを経路情報のコスト値に加算する。ステップＳ４３では、経路情報をルーチングテーブル２１に保存する。
ステップＳ４４ではコスト増減テーブルに基づいて経路情報のコスト値を変更し、ステップＳ４５では作成された経路情報を隣接プロキシに経路広告として送信する。
【００６９】
図４の内容について説明する。ステップＳ５１で隣接プロキシからの経路広告を受信すると、次のステップＳ５２で相手プロキシのインタフェースのコスト及び自プロキシのインタフェースのコストを経路情報のコスト値に加算する。
ステップＳ５３では、次のようにして経路情報を書き換える。すなわち、経路情報の隣接プロキシＩＤを広告元プロキシのプロキシＩＤに書き換え、ホップ数に１を加算して、経路情報の隣接側インタフェースＩＤを広告元プロキシのプロキシＩＤ、経路情報の送信元インタフェースＩＤを自プロキシのインタフェースＩＤに書き換え、経路情報の通過プロキシＩＤとして自プロキシ又は隣接プロキシのプロキシＩＤにそれぞれ書き加える。
【００７０】
ステップＳ５４では書き換えた経路情報をルーチングテーブル２１に保存し、ステップＳ５５ではコスト増減テーブルに基づいて経路情報のコスト値を変更し、ステップＳ５６では経路情報を隣接プロキシに経路広告として配信する。
（８）プロキシの経路管理部１６が行うコスト値の計算の詳細：
プロキシではいくつかの要素に対し、コスト値の増減を行うことができる。この増減により、自ノード（プロキシ及びインタフェースを含む通信装置）を通過する際にかかるコストの情報を周囲のプロキシに伝達する。自ノードが伝達したコスト値は、他のプロキシの経路評価に影響を与える。
【００７１】
この形態では、各プロキシは以下に示す要素に対するコストを相対的に変更する。
（ａ）接続先エンドプロキシに対するコスト（特定の接続先エンドプロキシに向けて自プロキシを通過する通信の経路に対するコスト）。
【００７２】
（ｂ）送信元インタフェースに対するコスト（自ノードの特定送信元インタフェースを利用する経路に対するコスト）。
（ｃ）隣接プロキシに対するコスト（特定の隣接プロキシを隣接として通過する経路に対するコスト）。
実際のコストの変更量については、ユーザからの入力により直接指定することもできるし、ネットワークのリソースを管理するプログラムを用いて実際のリソース消費量を検出し、その結果を反映するように指定することもできる。
【００７３】
例えば、図１５に示すルーチングテーブルを持つプロキシ（プロキシＩＤ：００１）において、接続先エンドプロキシのプロキシＩＤ（００６）に対するコストを「５」増加させるコマンド（ｓｅｔＣｏｓｔ  −ｄｅｓｔｉｎａｔｉｏｎ  ００６  ５）が入力された場合には、図１７に示すようなコスト増減テーブルを作成し、ルーチングテーブルの項目「４」，「５」を参照し、評価及び広告をする際に、コスト値を「５」だけ増加させる。
【００７４】
これにより、ルーチングテーブルの項目「４」のコスト値は「３２」から「３７」に変更され、項目「５」のコスト値は「２７」から「３２」に変更される。つまり、図１５に示すルーチングテーブルを図１７のコスト増減テーブルを利用して参照，評価，広告する場合には、結果的にルーチングテーブルの内容は図１６に示すように変更される。
【００７５】
コスト値は１つである。コスト値の増減は図１３に示すような流れで処理される。例えば、プロキシのコスト増減テーブルにおいて接続先エンドプロキシのプロキシＩＤ（０００１）に対するコストを１０増加させるように指定されている場合には、ルーチングテーブルを参照，評価，広告する時に、ルーチングテーブルの接続先エンドプロキシのプロキシＩＤが（０００１）になっている全ての経路に対してコスト値に１０を加算して利用する。
【００７６】
このコスト増減テーブルの内容は、図１３に示すように参照，評価時及び経路広告の送信時に参照され、該当する経路のコスト変更に反映される。
具体例について説明する。プロキシ（プロキシＩＤ：００２）が隣接プロキシ（００５）に対する経路情報を作成するときには、宛先プロキシＩＤを「００５」とし、隣接プロキシＩＤを「００５」とし、ホップ数を「１」として経路情報を作成する。この場合、インタフェースを２つ通過し、それぞれのインタフェースのコスト値が「５」だと仮定すると全体のコスト値として「１０」を割り当てる。なお、インタフェースのデフォルトのコスト値はシステム全体で保持しており、特に指定がない場合にはデフォルトのコスト値を採用する。
【００７７】
経路情報を作成したプロキシ（００２）は、この経路情報をルーチングテーブルに保存する。また、コスト増減テーブルの増減要素である接続先エンドプロキシの値が「００５」でコストの増減値が「１０」であれば、これを加算してコスト値を「２０」にする。そして、このルーチングテーブルの内容を経路広告として隣接プロキシに送信する。この場合の経路広告先は、プロキシＩＤ００１やプロキシＩＤ００３になる。
【００７８】
一方、経路広告を受信する場合の動作は次のようになる。図１４に示すプロキシ（００３）が経路広告を受信した場合に、経路広告の内容が（宛先プロキシＩＤ：００５，隣接プロキシＩＤ：００５，ホップ数：１，コスト値：２０）であった場合には、次のようにして経路情報（経路広告）の内容を書き換える。
すなわち、隣接プロキシＩＤを「００２」に変更し、ホップ数を「２」に変更（１を加算）する。また、インタフェースを２つ通過するので、インタフェースのコスト値が「５」であれば経路情報のコスト値に「１０」を加算する。従って経路情報のコスト値は「３０」になる。
【００７９】
経路広告を受信したプロキシ（００３）は、書き換えた経路情報をルーチングテーブルに保存する。また、コスト増減テーブルに関連するものがなければ、この経路情報を経路広告として他の隣接プロキシに送信する。この場合の経路広告先は、プロキシＩＤ００４やプロキシＩＤ００６になる。
【００８０】
また、上記のようにプロキシ（００２）が経路情報を作成する際には、隣接側インタフェースは（ｔｃｐ：／／１９２．１６８．３．２）であり、送信側インタフェースは（ｔｃｐ：／／１９２．１６８．４．１）である。
また、プロキシ（００３）が経路広告を受信した場合には、隣接側インタフェースは（ｔｃｐ：／／１９２．１６８．４．１）であり、送信側インタフェースは（ｔｃｐ：／／１９２．１６８．５．１）である。もしも、複数のインタフェースが存在する場合には、それぞれのインタフェースの組だけ、インタフェース情報のみが異なる経路情報を作成する。
【００８１】
また、経路広告としてやりとりされる経路情報には、図１２に示すように経路上の任意のノードを通過プロキシＩＤとして加えることができる。例えば、図１４のプロキシ（００３）が経路広告を受信した場合には、経路上の自プロキシＩＤ（００３）や隣接プロキシＩＤ（００２）を通過プロキシＩＤに割り当てることができる。なお、通過プロキシＩＤを含む経路情報とそれを含まない経路情報との２種類を作成しそれそれを広告することもできる。
【００８２】
（９）経路管理部１６で処理される優先度の指定：
各プロキシは、優先度をアプリケーションの要求やユーザの要求によりコマンドで指定される。つまり、自ノードの優先度情報の各項目を要求により書き換えることができる。例えば、プロキシＩＤ００１に図１９の１番目の項目を追加することができる。
【００８３】
この形態では、指定可能な優先度として図１８に示すような要素が存在する。また、実際の優先度は図１９に示すような形式で指定される。図１９の項目１，３は自ノードで指定した優先度の項目を表し、項目２はプロキシＩＤ００４で指定した優先度の広告に相当する。
絶対指定については、指定されたものを絶対に使用する必要がある。相対指定については、指定されたものを優先的に使用する必要がある。すなわち、経路選択の評価において、絶対指定された要素の値を持つルーチングテーブルの項目を必ず選択し、相対指定された要素の値を持つルーチングテーブルの項目は優先的に選択する。
【００８４】
優先度は、隣接関係にあるプロキシ間で優先度広告により伝達される。優先度広告を受け取ったプロキシは、それを優先度情報として保持し、他の隣接プロキシに対して優先度広告として送信する。
優先度広告を行う場合には、図２のステップＳ２６〜Ｓ３４に示すような動作が実施される。
【００８５】
ステップＳ２６でプロキシ（Ｂ）は優先度情報を作成し、次のステップＳ２７でそれを記憶し、ステップＳ２８で優先度広告として優先度情報を隣接関係にあるプロキシ（Ａ）に送信する。
この優先度広告を受信したプロキシ（Ａ）は、ステップＳ２９，Ｓ３２で優先度情報を記憶し、ステップＳ３０で他の隣接関係にあるプロキシ（Ｃ），（Ｄ）に対して優先度広告を送信する。
【００８６】
優先度広告を受信したプロキシ（Ｃ），（Ｄ）はそれぞれステップＳ３１，Ｓ３３で優先度情報を記憶する。
例えば、図１４に示すプロキシ（プロキシＩＤ：００４）で優先度情報が作成された場合には、それと隣接関係にあるプロキシ（００３）に優先度広告が送信される。この場合、プロキシ（００３）は他のプロキシ（００２），（００６）に優先度広告を転送し、その後プロキシ（００２）は他のプロキシ（００１），（００５）に優先度広告を転送する。
【００８７】
このようにして、全てのプロキシに対して優先度情報を伝えることができる。但し、優先度は経路を評価する接続元のプロキシが保持していればいいので、全ての優先度を広告する必要はない。例えば、接続元のプロキシに関する優先度は優先度広告する必要はない。
【００８８】
（１０）経路管理部１６が行う経路の評価：
接続元エンドプロキシにおけるコネクション管理部１５は、サービス管理部１７に所望のサービスを提供している接続先エンドプロキシの情報を問い合わせ、その結果を経路管理部１６に通知することで、経路管理部１６に対して経路評価を要求する。
【００８９】
この場合、セッションの構築が開始され、図１に示すステップＳ１１からＳ１４に進んで経路評価を実行する。同様に、ルーチングテーブルの変更を検出した場合にはステップＳ１２からＳ１４に進み、エンドプロキシの切替を検出した場合にはステップＳ１３からＳ１４に進む。そして、この経路評価の結果に基づいてプロキシ間の通信路を構築する。
【００９０】
ステップＳ１４では、サービス（サーバサービスの一機能）を提供している接続先のエンドプロキシ（複数存在する場合には全て）までの全経路の情報を集める。
ステップＳ１５では、全経路をコスト値の大小に応じて整列させる。例えば、コスト値の小さな経路を上位に配置する。
【００９１】
ステップＳ１６では、エンドプロキシから優先度要素を絶対指定されている場合には、その要素を含む経路のみを残す。何も残らない場合には経路選択は失敗として通知する。
ステップＳ１７では、相対指定されている要素を持つ経路を上位に並べ替える。相対指定されている要素を持つ経路同士については、コスト値の小さなものを上位に配置する。
【００９２】
ステップＳ１８では、上位の経路から順に選択する。
具体例について説明する。ここでは、図１４に示すようなネットワークにおいて、サービスＩＤ（ｈｔｔｐ：／／ｈｏｇｅ／ｈ．ｍｐｇ）で図１５に示す内容のルーチングテーブルと図１９に示す内容の優先度指定と、図１７に示す内容のコスト増減テーブルが存在する場合を想定して説明する。
【００９３】
（Ｓ１４）サービスＩＤ（ｈｔｔｐ：／／ｈｏｇｅ／ｈ．ｍｐｇ）でサービス管理部１７にサービス検索を依頼した際に、サービスを提供している接続先エンドプロキシのプロキシＩＤが（００４，００６）であれば、ルーチングテーブルの全ての項目（１〜５）を集める。
（Ｓ１５）ルーチングテーブルの内容（図１５）を図２０に示すようにコスト値の大きさに応じて並べ替える。
【００９４】
（Ｓ１６）全ての項目の隣接プロキシＩＤが（００２）なので、全ての項目を残す。
（Ｓ１７）送信元インタフェース（ｔｃｐ：／／１９２．１６８．１．１）と接続先インタフェース（ｔｃｐ：／／１９２．１６８．６．１）が相対指定されているので、上位に並べ替える。項目１，４は優先度指定と矛盾しないので上位に配置し、コスト値に従って並べる。この結果、図２１に示す内容の評価結果が得られる。
【００９５】
（Ｓ１８）項目１，４，２，３，５の順に経路を選択し接続する。
なお、接続先エンドプロキシは複数存在する場合もある。また、接続元エンドプロキシ自体はユーザの要求によって変化し、経路の再構築のトリガーとなる。
（１１）セッション管理部１４，コネクション管理部１５が処理するエンドプロキシの変更：
プロキシのセッション管理部１４ではセッションの識別子を管理し、コネクション管理部１５はエンドプロキシの変更動作を制御しその結果をセッション管理部１４に通知する。コネクション管理部１５においてどの接続先エンドプロキシ及び経路を用いるかについては、図１に示す処理の評価結果に基づいて決定される。
【００９６】
接続元のプロキシから送信された通信データを接続先のプロキシに転送するプロキシは、接続元プロキシで決定された経路の情報を取得し、この経路に記載の通過プロキシを順番にたどることにより、次に転送すべきプロキシを決定する（方法１）か、接続元プロキシで決定された経路の宛先のプロキシＩＤを取得しこの宛先プロキシＩＤを元に、自ノードのルーチングテーブルを検索し、コスト値を評価することにより、その先の経路を決定し、次に転送すべきプロキシを決定する（方法２）。
【００９７】
なお、（方法１）の場合には全ての転送プロキシを経路として記載する必要があり、経路情報は膨大になる。また、（方法２）の場合には接続先の優先度指定は反映されない。
どのような場合にエンドプロキシが変更されるのかについて説明する。エンドプロキシの変更により、サーバアプリケーションの切り替え又はクライアントアプリケーションの切り替えが行われる。サーバアプリケーションの機能の一部は、サービスという単位で管理され、このサービスにアクセスしてもらうために、サービスの情報はネットワーク内に広告される。
【００９８】
また、複数のサーバアプリケーションが同一のサービスを提供するため、サービスの複製を作成し、これを同一のサービスＩＤとしてサービス広告する。これにより、ユーザはあるサーバアプリケーションで提供されているサービスが利用不能になった場合でも、他のサーバアプリケーションに切り替えることができる。更に、ユーザはクライアントアプリケーションの変更をプロキシに命令することにより、ユーザは利用端末を変更することができる。
【００９９】
【発明の効果】
本発明によれば、ネットワーク上で中継を行うプロキシ及びアプリケーションに接続されているプロキシの双方の要求を反映したルーチングが可能である。つまり、ルーチングテーブルの各項目はコスト値で重み付けがされており、コスト値が少ない経路を選択することが可能である。
【０１００】
また、各プロキシでこのコスト値を増減し、隣接のプロキシに広告することで、ネットワーク上で中継を行う各プロキシの意図する重み付けを行うことが可能である。例えば、自ノードのトラヒックが高いのでこれ以上プロキシの中継を受け付けたくなければ、自ノードを通過する経路情報のコスト値を増加させる。
また、エンドプロキシの候補が複数ある場合においても、コスト値の低いエンドプロキシを選択することができる。更に、あるプロキシやあるインタフェースを優先的に利用したい場合、又は利用してほしいと場合においても優先度を指定することで、コスト値の重み付けにかかわらず、優先的に利用することが可能である。
【０１０１】
これにより、アプリケーションに接続されているプロキシは通信の内容を変換する変換機能をもった特定のプロキシを優先度の指定により経由させることで、例えば日本語／英語の変換や、小型端末に対する動画の解像度の変換などを行わせることができる。つまり、アプリケーションの強い要求を優先させることが可能である。
【０１０２】
また、アプリケーションに接続されているプロキシは利用可能な複数の異なるネットワークアドレスをもったインタフェース（例えば有線ＬＡＮと無線ＬＡＮ等）が存在する場合、例えば、通信速度の高速な有線ＬＡＮを優先的に利用する等、特定のインタフェースを優先的に利用したり、利用されたりすることが可能である。つまり、ユーザやアプリケーションの都合を優先させることが可能である。
【図面の簡単な説明】
【図１】接続元のエンドプロキシの経路選択動作を示すフローチャートである。
【図２】広告の配信動作例を示すシーケンス図である。
【図３】経路情報の作成の処理を示すフローチャートである。
【図４】経路広告の受信処理を示すフローチャートである。
【図５】プロキシの構成を示すブロック図である。
【図６】セッション構築例を示すブロック図である。
【図７】インタフェースの例を示すブロック図である。
【図８】動的な隣接関係構築の動作を示すシーケンス図である。
【図９】静的な隣接関係構築の動作を示すシーケンス図である。
【図１０】インタフェース情報広告フォーマットを示す模式図である。
【図１１】エンドプロキシ間の経路の例を示すブロック図である。
【図１２】経路情報広告フォーマットを示す模式図である。
【図１３】コスト値変更処理を示すブロック図である。
【図１４】システムの構成例を示すブロック図である。
【図１５】ルーチングテーブルの構成例を示す模式図である。
【図１６】コスト増減の結果を表すルーチングテーブルの模式図である。
【図１７】コスト増減テーブルの構成例を示す模式図である。
【図１８】優先度要素の定義を示す模式図である。
【図１９】優先度の指定例を示す模式図である。
【図２０】経路の評価例（１）を示す模式図である。
【図２１】経路の評価例（２）を示す模式図である。
【図２２】コマンドの一覧（１）を示す模式図である。
【図２３】コマンドの一覧（２）を示す模式図である。
【符号の説明】
１１  プロキシ制御部
１２  キャッシュ管理部
１３  キャッシュメモリ
１４  セッション管理部
１５  コネクション管理部
１６  経路管理部
１７  サービス管理部
１８  サービス情報保持部
２０  テーブル保持部
２１  ルーチングテーブル
２２  優先度情報テーブル
２３  隣接管理テーブル
【図１】
2004274142.tif 000003
【図２】
2004274142.tif 000004
【図３】
2004274142.tif 000005
【図４】
2004274142.tif 000006
【図５】
2004274142.tif 000007
【図６】
2004274142.tif 000008
【図７】
2004274142.tif 000009
【図８】
2004274142.tif 000010
【図９】
2004274142.tif 000011
【図１０】
2004274142.tif 000012
【図１１】
2004274142.tif 000013
【図１２】
2004274142.tif 000014
【図１３】
2004274142.tif 000015
【図１４】
2004274142.tif 000016
【図１５】
2004274142.tif 000017
【図１６】
2004274142.tif 000018
【図１７】
2004274142.tif 000019
【図１８】
2004274142.tif 000020
【図１９】
2004274142.tif 000021
【図２０】
2004274142.tif 000022
【図２１】
2004274142.tif 000023
【図２２】
2004274142.tif 000024
【図２３】
2004274142.tif 000025