(57)【要約】【課題】大規模ネットワーク向けシームレスサービス用のサービス選択方法を提供する。【解決手段】複数の中継プロキシの配下にエンドプロキシが従属する階層構造を持つオーバーレイネットワークを形成し、各エンドプロキシにかかわる経路情報およびサービス情報を上位の中継プロキシに集積する。また、これらの中継プロキシに集積されたサービス情報に関するサービスインデックスを、各中継プロキシの間で分散して保持する。サービス検索要求に応じて、このサービスインデックスを検索することにより、所望のサービスを所持しているエンドプロキシを配下に持つ中継プロキシを漏れなく特定し、これらの中継プロキシから接続先候補までの経路のコスト値を含む情報を収集する。更に、ここで収集されたコスト値に適切な補正を加え、要求元のエンドプロキシに返すことにより、要求元のエンドプロキシは、受け取ったコスト値に基づいて、所望のサービスに直接に接続された少なくとも一つの接続先候補から適切なものを選択して接続する。【選択図】      図１
2005252986.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおいて一意の識別子によって識別され、それぞれが互いに通信するためのインタフェースを備える複数のプロキシから構成されるオーバーレイネットワークにおいて、
前記複数のプロキシを、予め定められた条件を満たす中継プロキシと、その他のエンドプロキシとに分類する分類ステップと、
前記エンドプロキシに分類されたプロキシそれぞれを、前記中継プロキシに分類されたプロキシのいずれかの配下に振り分けて、中継プロキシと少なくとも一つのエンドプロキシとからなるグループを形成するグループ化ステップと、
前記各グループに所属するエンドプロキシが、対応する中継プロキシに到達する経路に関するコストを示すコスト値を前記対応する中継プロキシにそれぞれ通知する経路情報通知ステップと、
前記各グループの中継プロキシが、配下のエンドプロキシからそれぞれ通知されるコスト値と前記エンドプロキシにアクセスするためのインタフェース情報あるいは前記エンドプロキシの識別子とからなる経路情報を集積して保持する経路情報集積ステップと、
前記各グループに所属するエンドプロキシが、自身に直接接続しているサービスを特定するサービス名を対応する中継プロキシにそれぞれ通知するサービス情報通知ステップと、
前記各グループの中継プロキシが、配下のエンドプロキシからそれぞれ通知されるサービス名とその送信元のエンドプロキシにアクセスするためのインタフェース情報とからなるサービス情報を集積して保持するサービス情報集積ステップと、
前記各中継プロキシが、前記エンドプロキシによって提供可能なサービスを示す各サービス名とこのサービス名を含むサービス情報を保持している中継プロキシにアクセスするためのインタフェース情報とからなるサービスインデックスを分散して保持するサービスインデックス分散ステップと、
所望のサービス名を指定するサービス提供要求を受けた要求元のエンドプロキシが、対応する中継プロキシに前記サービス名を含む検索要求を送出する検索要求ステップと、
前記検索要求に応じて、前記要求元のエンドプロキシに対応する中継プロキシが、前記複数の中継プロキシに分散して保持されたサービスインデックスに基づいて、前記サービス名を含むサービス情報を保持する中継プロキシを特定する中継プロキシ特定ステップと、
前記要求元のエンドプロキシに対応する中継プロキシが、前記特定された少なくとも一つの中継プロキシにそれぞれ保持されたサービス情報および経路情報から、接続先候補に関する情報として、前記所望のサービス名で示されるサービスに直接に接続された少なくとも一つのエンドプロキシのインタフェース情報と対応するコスト値とを収集する候補情報収集ステップと、
前記要求元のエンドプロキシに対応する中継プロキシが、前記少なくとも一つの接続先候補のコスト値にそれぞれに対応する中継プロキシと前記要求元のエンドプロキシに対応する中継プロキシとの間の経路に対応するコスト値を加算し、得られたコスト値それぞれと前記少なくとも一つの接続先候補のインタフェース情報とを前記要求元のエンドプロキシに返す補正ステップと、
前記要求元のエンドプロキシが、前記各接続先候補に対応するコスト値に基づいて、前記少なくとも一つの接続先候補のいずれかを選択して接続する選択ステップと
を備えたことを特徴とするサービス選択方法。
【請求項２】
予め定められた条件を満たす中継プロキシの配下に前記条件を満たさないエンドプロキシが従属する階層的な構造を持つオーバーレイネットワークであって、
前記各グループの中継プロキシに、配下のエンドプロキシからそれぞれ通知される前記中継プロキシと前記配下のエンドプロキシとの間の経路に関するコスト値と前記配下のエンドプロキシにアクセスするためのインタフェース情報あるいは前記配下のエンドプロキシの識別子とからなる経路情報が集積して保持されており、
前記各グループの中継プロキシに、配下のエンドプロキシからそれぞれ通知されるサービス名とその送信元のエンドプロキシにアクセスするためのインタフェース情報とからなるサービス情報が集積して保持されており、
前記各中継プロキシに、前記エンドプロキシによって提供可能なサービスを示す各サービス名とこのサービス名を含むサービス情報を保持している中継プロキシにアクセスするためのインタフェース情報とからなるサービスインデックスが分散して保持されているオーバーレイネットワークにおいて、
サービス提供のために接続されている二つのエンドプロキシを結ぶ経路上のプロキシのいずれかに備えられた状態キャッシュに、前記経路を用いてアプリケーションデータの送受信を行うセッションの状態に関するセッション情報を蓄積する蓄積ステップと、
前記サービス提供を担っていたエンドプロキシと前記オーバーレイネットワークとの接続が切断された際に、前記サービス提供を受けていたエンドプロキシが、自身の上位の中継プロキシに前記提供中のサービスを特定するサービス名を含む検索要求を送出する検索要求ステップと、
前記検索要求に応じて、前記要求元のエンドプロキシに対応する中継プロキシが、前記複数の中継プロキシに分散して保持されたサービスインデックスに基づいて、前記サービス名を含むサービス情報を保持する中継プロキシを特定する中継プロキシ特定ステップと、
前記要求元のエンドプロキシに対応する中継プロキシが、前記特定された少なくとも一つの中継プロキシにそれぞれ保持されたサービス情報および経路情報から、接続先候補に関する情報として、前記所望のサービス名で示されるサービスに直接に接続された少なくとも一つのエンドプロキシのインタフェース情報と対応するコスト値とを収集する候補情報収集ステップと、
前記要求元のエンドプロキシに対応する中継プロキシが、前記少なくとも一つの接続先候補のコスト値にそれぞれに対応する中継プロキシと前記要求元のエンドプロキシに対応する中継プロキシとの間の経路に対応するコスト値を加算し、得られたコスト値それぞれと前記少なくとも一つの接続先候補のインタフェース情報とを前記要求元のエンドプロキシに返す補正ステップと、
前記要求元のエンドプロキシが、前記各接続先候補に対応するコスト値に基づいて、前記少なくとも一つの接続先候補のいずれかを選択して接続する選択ステップと、
前記要求元のエンドプロキシと前記選択された接続先のエンドプロキシとを結ぶ経路上のプロキシのいずれかに備えられた状態キャッシュに、前記セッション情報を転送することにより、セッションの状態を引き継ぐ引継ぎステップと
を備えたことを特徴とするサービス選択方法。
【請求項３】
予め定められた条件を満たす中継プロキシの配下に前記条件を満たさないエンドプロキシが従属する階層的な構造を持つオーバーレイネットワークであって、
前記各グループの中継プロキシに、配下のエンドプロキシからそれぞれ通知される前記中継プロキシと前記配下のエンドプロキシとの間の経路に関するコスト値と前記配下のエンドプロキシにアクセスするためのインタフェース情報あるいは前記配下のエンドプロキシの識別子とからなる経路情報が集積して保持されており、
前記各グループの中継プロキシに、配下のエンドプロキシからそれぞれ通知されるサービス名とその送信元のエンドプロキシにアクセスするためのインタフェース情報とからなるサービス情報が集積して保持されており、
前記各中継プロキシに、前記エンドプロキシによって提供可能なサービスを示す各サービス名とこのサービス名を含むサービス情報を保持している中継プロキシにアクセスするためのインタフェース情報とからなるサービスインデックスが分散して保持されているオーバーレイネットワークにおいて、
サービス提供のために接続されている二つのエンドプロキシを結ぶ経路上のプロキシに備えられた状態キャッシュに、前記経路を用いてアプリケーションデータの送受信を行うセッションの状態に関するセッション情報を蓄積する蓄積ステップと、
前記サービス提供を受けていたエンドプロキシを他のエンドプロキシに変更する旨が指示されたときに、前記サービス提供を受けていたエンドプロキシが、前記変更先のエンドプロキシに前記セッション情報を転送する転送ステップと、
前記変更先のエンドプロキシが、前記サービスの享受のためのアプリケーションを準備する準備ステップと、
前記変更先のエンドプロキシが、自身の上位の中継プロキシに前記提供中のサービスを特定するサービス名を含む検索要求を送出する検索要求ステップと、
前記検索要求に応じて、前記変更先のエンドプロキシに対応する中継プロキシが、前記複数の中継プロキシに分散して保持されたサービスインデックスに基づいて、前記サービス名を含むサービス情報を保持する中継プロキシを特定する中継プロキシ特定ステップと、
前記変更先のエンドプロキシに対応する中継プロキシが、前記特定された少なくとも一つの中継プロキシにそれぞれ保持されたサービス情報および経路情報から、接続先候補に関する情報として、前記所望のサービス名で示されるサービスに直接に接続された少なくとも一つのエンドプロキシのインタフェース情報と対応するコスト値とを収集する候補情報収集ステップと、
前記変更先のエンドプロキシに対応する中継プロキシが、前記少なくとも一つの接続先候補のコスト値にそれぞれに対応する中継プロキシと前記要求元のエンドプロキシに対応する中継プロキシとの間の経路に対応するコスト値を加算し、得られたコスト値それぞれと前記少なくとも一つの接続先候補のインタフェース情報とを前記変更先のエンドプロキシに返す補正ステップと、
前記変更先のエンドプロキシが、前記各接続先候補に対応するコスト値に基づいて、前記少なくとも一つの接続先候補のいずれかを選択して接続する選択ステップと、
前記変更先のエンドプロキシと前記選択された接続先のエンドプロキシとを結ぶ経路上のプロキシに備えられた状態キャッシュに、前記セッション情報を転送することにより、セッションの状態を引き継ぐ引継ぎステップと
を備えたことを特徴とするサービス選択方法。
【請求項４】
ネットワークにおいて一意の識別子によって識別され、それぞれが互いに通信するためのインタフェースを備える複数のプロキシから構成されるオーバーレイネットワークにおいて、
前記オーバーレイネットワークに含まれるプロキシであって予め定められた条件を満たす中継プロキシのいずれかの配下に、前記条件を満たさないエンドプロキシそれぞれを従属させて登録する登録手段と、
前記中継プロキシとその配下として登録されたエンドプロキシとからなるグループごとに、前記配下のエンドプロキシと前記中継プロキシとの間の経路にかかわる経路情報と前記配下のエンドプロキシに直接接続されたサービスに関するサービス情報を収集し、前記中継プロキシに集積して保持させる収集手段と、
前記各中継プロキシに集積されたサービス情報に基づいて、各サービスを特定するサービス名とそのサービスを所持するエンドプロキシを配下に持つ中継プロキシとの対応関係を示すサービスインデックスを作成し、前記複数の中継プロキシに分散して保持させるインデックス作成手段と、
前記オーバーレイネットワークに含まれるプロキシに入力されるサービス要求に応じて、前記サービス要求において指定されたサービス名に基づいて、前記複数の中継プロキシに保持された情報から前記サービス名で特定されるサービスに接続されたエンドプロキシを接続先候補として検索する候補検索手段と、
前記候補検索手段によって得られる接続先候補から適切な接続先候補を選択し、選択された接続先と要求元のプロキシとを接続する選択接続手段とを備え、
前記収集手段は、
前記各グループに属するエンドプロキシと対応する中継プロキシとの経路にかかわるコスト値と前記各エンドプロキシを特定するための識別情報と前記各エンドプロキシのインタフェース情報とからなる経路情報を収集し、前記各グループに属する中継プロキシに集積して保持する経路情報収集手段と、
前記各グループに属するエンドプロキシに直接接続されているサービスを特定するサービス名を含むサービス情報を収集し、前記各グループに属する中継プロキシに集積して保持するサービス情報収集手段とを備え、
前記候補検索手段は、
前記検索要求に応じて、前記複数の中継プロキシに分散して保持されたサービスインデックスに基づいて、前記検索要求において指定されたサービス名を含むサービス情報を保持する中継プロキシを特定する中継プロキシ特定手段と、
前記特定された少なくとも一つの中継プロキシにそれぞれ集積されたサービス情報および経路情報から、接続先候補に関する情報として、前記所望のサービス名で示されるサービスに直接に接続された少なくとも一つのエンドプロキシの識別情報あるいはインタフェース情報と対応するコスト値とをそれぞれ収集する候補情報収集手段と、
前記少なくとも一つの接続先候補のコスト値に、それぞれの接続先候補に対応する中継プロキシと要求元のプロキシが属するグループの中継プロキシとの経路に対応するコスト値をそれぞれ加算し、得られたコスト値それぞれと対応する接続先候補の識別情報とを検索結果として出力する補正手段とを備え、
前記接続先選択手段は、前記補正手段によって前記少なくとも一つの接続先候補に対応して出力されるコスト値に基づいて、前記少なくとも一つの接続先候補のいずれかを接続先として選択する選択手段を備えた
ことを特徴とするサービス選択システム。
【請求項５】
請求項４に記載のサービス選択システムにおいて、
前記オーバーレイネットワークに属する各プロキシは、それぞれを経由して設定されたセッションによって送受信されるアプリケーションデータに関するセッション情報を前記セッションごとに保持する状態キャッシュを備え、
サービスの提供中に、前記サービスの提供元であるエンドプロキシと前記サービスの要求元のエンドプロキシとの接続が切断されたときに、前記サービスの要求元のエンドプロキシを検索要求元として前記候補検索手段に前記サービスに対応するサービス名を指定した検索要求を入力する検索要求手段と、
前記サービスの提供に用いられた経路上のプロキシに備えられた状態キャッシュに保持された該当するセッションに関するセッション情報を、前記検索要求に応じて前記候補検索手段によって検索された接続先候補の中から選択接続手段が選択して接続した接続先と前記要求元のエンドプロキシとの間に設定される経路上のプロキシに備えられた状態キャッシュに転送する転送手段と
を備えたことを特徴とするサービス選択システム。
【請求項６】
請求項４に記載のサービス選択システムにおいて、
前記オーバーレイネットワークに属する各プロキシは、それぞれを経由して設定されたセッションによって送受信されるアプリケーションデータに関するセッション情報を前記セッションごとに保持する状態キャッシュを備え、
サービスの提供中に、前記サービスの提供を受けるためのアプリケーションを変更する旨の変更要求に応じて、前記サービスの提供に用いられた経路上のプロキシの状態キャッシュに保持された該当するセッションに関するセッション情報を、前記変更要求で指定された変更先のエンドプロキシに備えられた状態キャッシュに転送するセッション情報転送手段と、
前記変更要求で指定された変更先のエンドプロキシを検索要求元として前記候補検索手段に前記サービスに対応するサービス名を指定した検索要求を入力する検索要求手段と、
前記変更先のエンドプロキシの状態キャッシュに転送されたセッション情報を、前記検索要求に応じて前記候補検索手段によって検索された接続先候補の中から選択接続手段が選択して接続した接続先と前記変更先のエンドプロキシとの間に設定される経路上のプロキシに備えられた状態キャッシュに転送して継承させるセッション情報継承手段と
を備えたことを特徴とするサービス選択システム。
【請求項７】
請求項４に記載のサービス選択システムにおいて、
前記インデックス作成手段は、
前記各中継プロキシに備えられ、それぞれに集積された少なくとも一つのサービス情報を、それぞれに含まれるサービス名に基づいて決定した宛先の中継プロキシに前記サービス名と前記サービス情報を保持している中継プロキシを識別するための識別情報または前記中継プロキシのインタフェース情報とからなるサービス広告を送出するサービス広告手段と、
前記各中継プロキシに備えられ、受信したサービス広告に基づいて、分担された範囲に属するサービス名に対応して、そのサービス名で示されるサービスを所持するエンドプロキシを従属させている中継プロキシの識別情報を保持する分担インデックステーブルを作成するテーブル作成手段とを備えた
ことを特徴とするサービス選択システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランスポートネットワークを用いてアプリケーション間で送受信されるアプリケーションデータを転送する複数のプロキシから構成されるオーバーレイネットワークにおいて、利用者が所望するサービスを快適に提供可能なサービス提供主体を検索して提供を開始し、また、そのサービスの提供を維持するためのサービス選択方法およびサービス選択システムに関する。
【０００２】
利用者がネットワークを介するサービスを利用するために用いる通信端末および通信媒体の多様化は、将来的にますます進むことが予想される。これに伴って、多種多様な通信媒体および通信端末を介して様々なサービスをスムーズに提供し、更に、それぞれの通信媒体や通信端末の種類の壁にさえぎられることなく、即ち、シームレスにサービスを提供可能なプラットフォームの実現が求められている。
【背景技術】
【０００３】
利用者が利用するクライアント端末が、ネットワークにおいて所望のサービスを提供するサービス提供主体を探し出す技術として、いわゆるピアツーピア（peer-to-peer）技術がある。
ピアツーピア(Ｐ２Ｐ)技術を適用したプラットフォームの一つであるＪｘｔａでは、クライアントが発行したサービス検索要求に最初に応答を返したサービス提供主体と接続を確立してサービスの提供を開始する。つまり、ネットワーク上に同一のサービスを提供可能なサービス提供主体が複数存在するか否かにかかわらず、また、利用者との間に設定される通信パスにかかわるコストにかかわらず、最初に発見したサービス提供主体から利用者はサービスの提供を受けることになる。そして、サービスの継続中には、例えば、利用者の端末の移動やサービス提供主体の移動などによるネットワークの構成の変化にかかわらず、最初に接続を確立したサービス提供主体との接続を維持しつづける（非特許文献１参照）。
【０００４】
一方、ネットワークを介するサービスを利用者にシームレスに提供するためのプラットフォームは、従来、比較的小規模のネットワークシステムを適用対象として研究されてきた。
その中の一つとして、同一のサービスを提供可能な少なくとも１つのサービス提供主体に対応するプロキシそれぞれと利用者側のプロキシとの間の経路をそれにかかわるコストと優先度とに基づいて評価し、この結果に基づいて利用者側のプロキシに備えられたルーティングテーブルの内容を随時更新することによって、サービスの継続中においても、サービスの提供に利用する経路の変更を可能とする技術が提案されている(非特許文献２参照)。
【０００５】
この非特許文献２に開示された技術では、オーバーレイネットワークを構成する各プロキシは、自身に備えられたインタフェースに関する情報とこのインタフェースを通過するために要するコストを示す経路広告とともに自身を経由する経路に与えられるべき優先度を示す優先度広告を、例えば、定期的に隣接するプロキシに配信する。そして、各プロキシは、隣接するプロキシから受け取った経路広告および優先度広告に基づいて、自身に備えられたルーティングテーブルおよび優先度テーブルの内容を管理し、また、自身にかかわる情報に基づいて更新した経路広告および優先度広告を自身に隣接する各プロキシに配信する。
【０００６】
これにより、利用者にアプリケーションによるサービスを直接に提供する双方のエンドプロキシとの間に、サービスにかかわる情報を中継する中継プロキシの連鎖によって形成される複数の経路が存在する場合には、これらの経路に対応する評価結果に基づいて、最も条件のよい経路を選択することができる。また、例えば、音声通話サービスの提供を受けている利用者の位置が変化した場合のように、現在そのサービスの提供に利用されている経路に関する評価が低下した場合などに備えて、代わりに選択するべき経路の選択肢をその評価結果とともに用意しておくことができる。これにより、必要に応じて、サービスの提供に利用する経路の切り替えおよびセッションの再確立を自動的に行うことができるので、例えば、音声通話サービスなどのサービスの提供を維持することができる。また、エンドプロキシのみならず中継プロキシにおいても、上述した経路広告および優先度広告に含めるコスト値や優先度を操作することにより、特定の中継プロキシを迂回したり、特定のインタフェースを持つ中継プロキシを経由させたりといったきめ細かな経路制御を実現することができる。もちろん、この技術によれば、ネットワーク上に複数のサービス提供主体が存在する場合には、これらのサービス提供主体とサービスを受けようとする利用者側のエンドプロキシとの間に形成可能な経路それぞれを比較して評価し、得られた評価結果に基づいて、実際に接続するサービス提供主体およびその接続経路が決定される。
【非特許文献１】"Project JXTA"、[online]、Sun Microsystems Inc. 、[検索日]２００４年２月２７日、インターネット＜URL:http://www.jxta.org＞
【非特許文献２】高杉耕一、中村元紀、「動的ネットワークにおけるシームレスなサーバサービス端末の変更」、FIT2002,M-89,(9-2002)
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、携帯端末などを含んだネットワークでは、ネットワーク構成が極めてダイナミックに変化することを考慮して、考えられる変化に対応する必要がある。例えば、図９に示すように、ノートパソコンＡが無線ＬＡＮを経由して携帯端末Ｂにサービスを提供している途中で、そのサービス提供元のノートパソコンＡが移動したり、ネットワークから切り離されたりすることが考えられる。また、サービスを享受している利用者の携帯端末Ｂが移動したり、更には、サービスの享受に利用する端末を携帯端末ＢからパソコンＣに切り替えたりすることが考えられる。
【０００８】
しかしながら、一般的なピアツーピア技術によるサービス提供主体の発見方法では、他の選択肢の有無にかかわらず、サービス検索要求に最初に応答したサービス提供主体を選択してしまうので、サービスを提供している端末がネットワークから切り離されてしまえば、当然ながら、サービスの提供を維持することはできない。また、サービス提供元の端末あるいはサービスを享受している利用者の端末が移動した場合などには、サービスの提供に用いられている経路が、不必要に長くなり、サービスの維持するために十分な帯域を確保することができなくなってしまう場合も考えられる。
【０００９】
動的なネットワークにおけるこのような課題に応えるために、例えば、予め、サービス自体を、つまり、動画などのコンテンツ配信サービスであればその配信対象のコンテンツを複数の端末に複製しておくことにより、各サービスについて複数のサービス提供主体を用意し、サービスを選択する際に、これらのサービス提供主体から最適なものを選択するという手法が考えられる。
【００１０】
しかしながら、上述したように、一般的なピアツーピア技術によるサービス提供主体の発見方法では、ネットワークに複数の条件の異なるサービス提供主体が存在した場合に、これらに至る経路をそれぞれ評価し、この評価結果に基づいてサービス提供主体を選択する手段は用意されていなかった。
また一方、一般の利用者に、サービス提供主体の乗り換えやサービスの享受に用いる端末の切り替えが可能な環境を提供するためには、大規模なネットワークにおいて、サービス提供主体の種類およびサービスの享受に用いる端末の種類にかかわらずサービスの提供を維持するシームレスなプラットフォームが必要となる。
【００１１】
しかしながら、非特許文献２に開示された従来のシームレスなサービス提供に向けたプラットフォームは、小規模のネットワークを対象とし、全てのプロキシが対等であるフラットな構成を前提としているため、そのままでは、大規模なネットワークに適用することはできない。
なぜなら、大規模なオーバーレイネットワークを構成する個々のプロキシに備えられるルーティングテーブルおよび優先度テーブルの内容にネットワーク構成の変化を常に反映させるためには、各プロキシが定期的に全てのプロキシとの間で経路広告および優先度広告を送受信する必要があるからである。これらの広告の量は、オーバーレイネットワークを構成するプロキシの数Ｎの増大とともに増大するので、大規模なオーバーレイネットワークでは、これらの広告のためにネットワークのトラフィックが逼迫してしまうおそれがある。
【００１２】
本発明は、大規模なオーバーレイネットワークにおいて、シームレスにサービスを提供可能とするためのサービス選択方法およびサービス選択システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
図１に、本発明にかかわるオーバーレイネットワークの構成を示す。
本発明にかかわる第１のサービス選択方法は、分類ステップと、グループ化ステップと、経路情報通知ステップと、経路情報集積ステップと、サービス情報通知ステップと、サービス情報集積ステップと、サービスインデックス分散ステップと、検索要求ステップと、中継プロキシ特定ステップと、候補情報収集ステップと、補正ステップと、選択ステップとから構成される。
【００１４】
本発明にかかわる第１のサービス選択方法の原理は、以下の通りである。
ネットワークにおいて一意の識別子によって識別され、それぞれが互いに通信するためのインタフェースを備える複数のプロキシから構成されるオーバーレイネットワークにおいて、分類ステップにおいて、複数のプロキシを、予め定められた条件を満たす中継プロキシと、その他のエンドプロキシとに分類する。グループ化ステップにおいて、エンドプロキシに分類されたプロキシそれぞれを、中継プロキシに分類されたプロキシのいずれかの配下に振り分けて、中継プロキシと少なくとも一つのエンドプロキシとからなるグループを形成する。経路情報通知ステップにおいて、各グループに所属するエンドプロキシが、対応する中継プロキシに到達する経路に関するコストを示すコスト値を対応する中継プロキシにそれぞれ通知する。経路情報集積ステップにおいて、各グループの中継プロキシが、配下のエンドプロキシからそれぞれ通知されるコスト値とエンドプロキシにアクセスするためのインタフェース情報あるいはエンドプロキシの識別子とからなる経路情報を集積して保持する。サービス情報通知ステップにおいて、各グループに所属するエンドプロキシが、自身に直接接続しているサービスを特定するサービス名を対応する中継プロキシにそれぞれ通知する。サービス情報集積ステップにおいて、各グループの中継プロキシが、配下のエンドプロキシからそれぞれ通知されるサービス名とその送信元のエンドプロキシにアクセスするためのインタフェース情報とからなるサービス情報を集積して保持する。サービスインデックス分散ステップにおいて、各中継プロキシが、エンドプロキシによって提供可能なサービスを示す各サービス名とこのサービス名を含むサービス情報を保持している中継プロキシにアクセスするためのインタフェース情報とからなるサービスインデックスを分散して保持する。検索要求ステップにおいて、所望のサービス名を指定するサービス提供要求を受けた要求元のエンドプロキシが、対応する中継プロキシにサービス名を含む検索要求を送出する。中継プロキシ特定ステップにおいて、検索要求に応じて、要求元のエンドプロキシに対応する中継プロキシが、複数の中継プロキシに分散して保持されたサービスインデックスに基づいて、サービス名を含むサービス情報を保持する中継プロキシを特定する。候補情報収集ステップにおいて、要求元のエンドプロキシに対応する中継プロキシが、特定された少なくとも一つの中継プロキシにそれぞれ保持されたサービス情報および経路情報から、接続先候補に関する情報として、所望のサービス名で示されるサービスに直接に接続された少なくとも一つのエンドプロキシのインタフェース情報と対応するコスト値とを収集する。補正ステップにおいて、要求元のエンドプロキシに対応する中継プロキシが、少なくとも一つの接続先候補のコスト値にそれぞれに対応する中継プロキシと要求元のエンドプロキシに対応する中継プロキシとの間の経路に対応するコスト値を加算し、得られたコスト値それぞれと少なくとも一つの接続先候補のインタフェース情報とを要求元のエンドプロキシに返す。選択ステップにおいて、要求元のエンドプロキシが、各接続先候補に対応するコスト値に基づいて、少なくとも一つの接続先候補のいずれかを選択して接続する。
【００１５】
このように構成された第１のサービス選択方法の動作は、下記の通りである。
複数のプロキシからなるオーバーレイネットワークは、分類ステップとグループ化ステップとにより、複数の中継プロキシの配下に少なくとも一つのエンドプロキシが従属する階層構造が与えられる。そして、経路情報通知ステップおよび経路情報集積ステップとサービス情報通知ステップおよびサービス情報集積ステップとにより、各エンドプロキシにかかわる経路情報およびサービス情報は、それぞれが従属している中継プロキシに集積して保持される。また、これらの中継プロキシに集積されたサービス情報に関するサービスインデックスは、サービスインデックス分散ステップにおいて、各中継プロキシの間で分散して保持される。このサービスインデックスによって、所望のサービスを所持しているエンドプロキシがどの中継プロキシの配下にあるかが示される。したがって、エンドプロキシＰからのサービス検索要求に応じて、対応する中継プロキシＡが、中継プロキシ特定ステップを実行することにより、つまり、上述したサービスインデックスをサービス名に基づいて検索することにより、サービスを所持しているエンドプロキシＥおよびエンドプロキシＦをそれぞれ配下に持つ中継プロキシＢおよび中継プロキシＣを特定することができる。そして、このように特定された中継プロキシＢ、Ｃは、それぞれ所望のサービスを所持しているエンドプロキシＥ，Ｆに関するサービス情報と経路情報とを保持しているので、要求元のエンドプロキシＰに対応する中継プロキシＡが、候補情報収集ステップを実行することにより、上述したようにして特定された中継プロキシＢ、Ｃから、接続先候補のエンドプロキシ（つまり、サービスに接続されているエンドプロキシＥ，Ｆ）に関するインタフェース情報およびコスト値をそれぞれ収集することができる。ここで収集されたコスト値は、当然ながら、接続先候補のエンドプロキシＥ，Ｆからそれが従属する中継プロキシＢ、Ｃまでの経路に関するコスト値であるので、補正ステップにおいて、上述したようにして特定された中継プロキシＢ、Ｃから要求元のエンドプロキシＰに対応する中継プロキシＡまでの経路にかかわるコスト値を加算した上で、それぞれのインタフェース情報とともにエンドプロキシＰに返される。このようにして、要求元のエンドプロキシＰは、所望のサービスに直接に接続された少なくとも一つのエンドプロキシＥ，Ｆそれぞれに接続する際に利用する経路に関するコスト値と接続先のインタフェース情報とを得ることができる。これにより、要求元のエンドプロキシＰは、選択接続ステップにおいて、これらのコスト値に基づいて、例えば、最小のコスト値を与える経路で接続可能な接続先候補を選択して接続することができる。
【００１６】
本発明にかかわる第２のサービス選択方法は、上述した第１のサービス選択方法において形成されたものと同等のオーバーレイネットワークにおいて、蓄積ステップと、検索要求ステップと、中継プロキシ特定ステップと、候補情報収集ステップと、補正ステップと、選択ステップと、引継ぎステップとから構成される。
本発明にかかわる第２のサービス選択方法の原理は、以下の通りである。
【００１７】
予め定められた条件を満たす中継プロキシの配下に条件を満たさないエンドプロキシが従属する階層的な構造を持つオーバーレイネットワークであって、各グループの中継プロキシに、配下のエンドプロキシからそれぞれ通知される中継プロキシと配下のエンドプロキシとの間の経路に関するコスト値と配下のエンドプロキシにアクセスするためのインタフェース情報あるいは配下のエンドプロキシの識別子とからなる経路情報が集積して保持されており、各グループの中継プロキシに、配下のエンドプロキシからそれぞれ通知されるサービス名とその送信元のエンドプロキシにアクセスするためのインタフェース情報とからなるサービス情報が集積して保持されており、各中継プロキシに、エンドプロキシによって提供可能なサービスを示す各サービス名とこのサービス名を含むサービス情報を保持している中継プロキシにアクセスするためのインタフェース情報とからなるサービスインデックスが分散して保持されているオーバーレイネットワークにおいて、蓄積ステップは、サービス提供のために接続されている二つのエンドプロキシを結ぶ経路上のプロキシのいずれかに備えられた状態キャッシュに、経路を用いてアプリケーションデータの送受信を行うセッションの状態に関するセッション情報を蓄積する。サービス提供を担っていたエンドプロキシとオーバーレイネットワークとの接続が切断された際に、検索要求ステップにおいて、サービス提供を受けていたエンドプロキシが、自身の上位の中継プロキシに提供中のサービスを特定するサービス名を含む検索要求を送出する。中継プロキシ特定ステップにおいて、検索要求に応じて、要求元のエンドプロキシに対応する中継プロキシが、複数の中継プロキシに分散して保持されたサービスインデックスに基づいて、サービス名を含むサービス情報を保持する中継プロキシを特定する。候補情報収集ステップにおいて、要求元のエンドプロキシに対応する中継プロキシが、特定された少なくとも一つの中継プロキシにそれぞれ保持されたサービス情報および経路情報から、接続先候補に関する情報として、所望のサービス名で示されるサービスに直接に接続された少なくとも一つのエンドプロキシのインタフェース情報と対応するコスト値とを収集する。補正ステップにおいて、要求元のエンドプロキシに対応する中継プロキシが、少なくとも一つの接続先候補のコスト値にそれぞれに対応する中継プロキシと要求元のエンドプロキシに対応する中継プロキシとの間の経路に対応するコスト値を加算し、得られたコスト値それぞれと少なくとも一つの接続先候補のインタフェース情報とを要求元のエンドプロキシに返す。選択ステップにおいて、要求元のエンドプロキシが、各接続先候補に対応するコスト値に基づいて、少なくとも一つの接続先候補のいずれかを選択して接続する。引継ぎステップにおいて、要求元のエンドプロキシと選択された接続先のエンドプロキシとを結ぶ経路上のプロキシのいずれかに備えられた状態キャッシュに、セッション情報を転送することにより、セッションの状態を引き継ぐ。
【００１８】
このように構成された第２のサービス選択方法の動作は、下記の通りである。
サービスの提供中に、サービス提供側のエンドプロキシＱに障害が発生したなどの理由でサービス提供側のエンドプロキシＱとサービス享受側のエンドプロキシＰとの間の接続が切断された場合に、サービス享受側のエンドプロキシＰは、上述した第１のサービス選択方法に従って、提供中であったサービスと同一のサービスを提供可能な他の接続先を選択し、例えば、別のエンドプロキシＲと接続する。その後、エンドプロキシＰ、Ｑの間でサービスの提供が行われていたときに、蓄積ステップにおいて、この２つのエンドプロキシＰ、Ｑを結ぶ経路上のプロキシ（例えば、エンドプロキシＰの上位に位置する中継プロキシＡと、エンドプロキシＱの上位に位置する中継プロキシＢ）に蓄積されていたセッション情報を、引継ぎステップにおいて、エンドプロキシＰと新たにサービス提供元となったエンドプロキシＲとを結ぶ経路上のプロキシ（例えば、上述した中継プロキシＡと、エンドプロキシＲの上位に位置する中継プロキシＣ）の状態キャッシュに転送する。これにより、セッション状態を引き継ぐことができるので、例えば、動画の配信サービスの途中でサービス提供元のエンドプロキシとの接続が切断された場合においても、同一のサービスを提供可能なプロキシとの接続を確立した後に、中断された所からサービスを再開させることができる。
【００１９】
本発明にかかわる第３のサービス選択方法は、上述した第１のサービス選択方法において形成されたものと同等のオーバーレイネットワークにおいて、蓄積ステップと、転送ステップと、準備ステップと、検索要求ステップと、中継プロキシ特定ステップと、候補情報収集ステップと、補正ステップと、選択ステップと、引継ぎステップとから構成される。
【００２０】
本発明にかかわる第３のサービス選択方法の原理は、以下の通りである。
予め定められた条件を満たす中継プロキシの配下に条件を満たさないエンドプロキシが従属する階層的な構造を持つオーバーレイネットワークであって、各グループの中継プロキシに、配下のエンドプロキシからそれぞれ通知される中継プロキシと配下のエンドプロキシとの間の経路に関するコスト値と配下のエンドプロキシにアクセスするためのインタフェース情報あるいは配下のエンドプロキシの識別子とからなる経路情報が集積して保持されており、各グループの中継プロキシに、配下のエンドプロキシからそれぞれ通知されるサービス名とその送信元のエンドプロキシにアクセスするためのインタフェース情報とからなるサービス情報が集積して保持されており、各中継プロキシに、エンドプロキシによって提供可能なサービスを示す各サービス名とこのサービス名を含むサービス情報を保持している中継プロキシにアクセスするためのインタフェース情報とからなるサービスインデックスが分散して保持されているオーバーレイネットワークにおいて、蓄積ステップは、サービス提供のために接続されている二つのエンドプロキシを結ぶ経路上のプロキシに備えられた状態キャッシュに、この経路を用いてアプリケーションデータの送受信を行うセッションの状態に関するセッション情報を蓄積する。転送ステップは、サービス提供を受けていたエンドプロキシを他のエンドプロキシに変更する旨が指示されたときに、サービス提供を受けていたエンドプロキシが、変更先のエンドプロキシにセッション情報を転送する。準備ステップにおいて、変更先のエンドプロキシが、サービスの享受のためのアプリケーションを準備する。検索要求ステップにおいて、変更先のエンドプロキシが、自身の上位の中継プロキシに提供中のサービスを特定するサービス名を含む検索要求を送出する。中継プロキシ特定ステップにおいて、検索要求に応じて、変更先のエンドプロキシに対応する中継プロキシが、複数の中継プロキシに分散して保持されたサービスインデックスに基づいて、サービス名を含むサービス情報を保持する中継プロキシを特定する。候補情報収集ステップにおいて、変更先のエンドプロキシに対応する中継プロキシが、特定された少なくとも一つの中継プロキシにそれぞれ保持されたサービス情報および経路情報から、接続先候補に関する情報として、所望のサービス名で示されるサービスに直接に接続された少なくとも一つのエンドプロキシのインタフェース情報と対応するコスト値とを収集する。補正ステップにおいて、変更先のエンドプロキシに対応する中継プロキシが、少なくとも一つの接続先候補のコスト値にそれぞれに対応する中継プロキシと要求元のエンドプロキシに対応する中継プロキシとの間の経路に対応するコスト値を加算し、得られたコスト値それぞれと少なくとも一つの接続先候補のインタフェース情報とを変更先のエンドプロキシに返す。選択ステップにおいて、変更先のエンドプロキシが、各接続先候補に対応するコスト値に基づいて、少なくとも一つの接続先候補のいずれかを選択して接続する。引継ぎステップにおいて、変更先のエンドプロキシと選択された接続先のエンドプロキシとを結ぶ経路上のプロキシに備えられた状態キャッシュに、セッション情報を転送することにより、セッションの状態を引き継ぐ。
【００２１】
このように構成された第３のサービス選択方法の動作は、下記の通りである。
サービスの提供中に、例えば、利用者が固定の端末を介するサービスを提供するためのアプリケーションから移動通信端末を介するサービスを提供するためのアプリケーションに切り替えを要求した場合に、サービス享受側のエンドプロキシＰの変更要求が発生する。これに応じて、サービス享受側のエンドプロキシＰは、まず、転送ステップにおいて、変更先のエンドプロキシＶに、エンドプロキシＰ、Ｑの間でのサービスの提供中に状態キャッシュに蓄積されていたセッション情報を転送し、また、これに応じて、変更先のエンドプロキシＶは、準備ステップにおいて、利用者にサービスを享受させるためのアプリケーションを準備する。その後、変更先のエンドプロキシＶは、上述した第１のサービス選択方法に従って、提供中であったサービスと同一のサービスを提供可能な接続先を改めて選択し、例えば、別のエンドプロキシＲを選択して接続する。次いで、引継ぎステップにおいて、変更先のエンドプロキシＶは、上述した転送ステップにおいて受け取った状態キャッシュの情報を、変更先のエンドプロキシＶと新たにサービス提供元となったエンドプロキシＲとを結ぶ経路上のプロキシ（例えば、変更先のエンドプロキシの上位に位置する中継プロキシＡと、エンドプロキシＲの上位に位置する中継プロキシＣ）の状態キャッシュに転送する。これにより、エンドプロキシＰ、Ｑの間でのサービスの提供中におけるセッション状態を引き継ぐことができるので、例えば、動画の配信サービスの途中で、利用者が利用する端末の変更に伴うアプリケーションの切り替えを要求した場合などにおいても、改めて同一のサービスを提供可能なプロキシとの接続を確立した後に、中断された所からサービスを再開させることができる。
【００２２】
本発明にかかわる第１のサービス選択システムは、登録手段と、経路情報収集手段およびサービス情報収集手段とからなる収集手段と、インデックス作成手段と、中継プロキシ特定手段と候補情報収集手段と補正手段とからなる候補検索手段と、選択手段を有する選択接続手段とから構成される。
本発明にかかわる第１のサービス選択システムの原理は、以下の通りである。
【００２３】
ネットワークにおいて一意の識別子によって識別され、それぞれが互いに通信するためのインタフェースを備える複数のプロキシから構成されるオーバーレイネットワークにおいて、登録手段は、オーバーレイネットワークに含まれるプロキシであって予め定められた条件を満たす中継プロキシのいずれかの配下に、条件を満たさないエンドプロキシそれぞれを従属させて登録する。収集手段は、中継プロキシとその配下として登録されたエンドプロキシとからなるグループごとに、配下のエンドプロキシと中継プロキシとの間の経路にかかわる経路情報と配下のエンドプロキシに直接接続されたサービスに関するサービス情報を収集し、中継プロキシに集積して保持させる。インデックス作成手段は、各中継プロキシに集積されたサービス情報に基づいて、各サービスを特定するサービス名とそのサービスを所持するエンドプロキシを配下に持つ中継プロキシとの対応関係を示すサービスインデックスを作成し、複数の中継プロキシに分散して保持させる。候補検索手段は、オーバーレイネットワークに含まれるプロキシに入力されるサービス要求に応じて、サービス要求において指定されたサービス名に基づいて、複数の中継プロキシに保持された情報からサービス名で特定されるサービスに接続されたエンドプロキシを接続先候補として検索する。選択接続手段は、候補検索手段によって得られる接続先候補から適切な接続先候補を選択し、選択された接続先と要求元のプロキシとを接続する。収集手段において、経路情報収集手段は、各グループに属するエンドプロキシと対応する中継プロキシとの経路にかかわるコスト値と各エンドプロキシを特定するための識別情報と各エンドプロキシインタフェース情報からなる経路情報を収集し、各グループに属する中継プロキシに集積して保持する。また、サービス情報収集手段は、各グループに属するエンドプロキシに直接接続されているサービスを特定するサービス名を含むサービス情報を収集し、各グループに属する中継プロキシに集積して保持する。候補検索手段において、中継プロキシ特定手段は、検索要求に応じて、複数の中継プロキシに分散して保持されたサービスインデックスに基づいて、検索要求において指定されたサービス名を含むサービス情報を保持する中継プロキシを特定する。また、候補情報収集手段は、特定された少なくとも一つの中継プロキシにそれぞれ集積されたサービス情報および経路情報から、接続先候補に関する情報として、所望のサービス名で示されるサービスに直接に接続された少なくとも一つのエンドプロキシの識別情報あるいはインタフェース情報と対応するコスト値とをそれぞれ収集する。また、補正手段は、少なくとも一つの接続先候補のコスト値に、それぞれの接続先候補に対応する中継プロキシと要求元のプロキシが属するグループの中継プロキシとの経路に対応するコスト値をそれぞれ加算し、得られたコスト値それぞれと対応する接続先候補の識別情報とを検索結果として出力する。接続先選択手段において、選択手段は、補正手段によって少なくとも一つの接続先候補に対応して出力されるコスト値に基づいて、少なくとも一つの接続先候補のいずれかを接続先として選択する。
【００２４】
このように構成された第１のサービス選択システムの動作は、下記の通りである。
登録手段によって、複数のプロキシから構成されるオーバーレイネットワークに、エンドプロキシそれぞれがいずれかの中継プロキシに従属して配置される階層的な構造が与えられ、中継プロキシとその配下に位置するエンドプロキシとからなる各グループにおいて、収集手段により、グループに属するエンドプロキシに関する情報が中継プロキシに集積される。このとき、収集手段に備えられる経路情報収集手段により、各グループのエンドプロキシそれぞれの識別情報およびインタフェース情報と中継プロキシまでの経路に関するコスト値とからなる経路情報が収集され、また、サービス情報収集手段により、各グループのエンドプロキシに直接接続されたサービスに関するサービス情報が収集され、これらの情報が各中継プロキシに集積して保持される。このようにして各中継プロキシに集積されたサービス情報に基づいて、インデックス作成手段により、サービス名とそのサービスを所持しているエンドプロキシを配下に持つ中継プロキシとの対応関係を示すサービスインデックスが生成され、このサービスインデックスは、オーバーレイネットワークに含まれる中継プロキシによって分散して保持される。つまり、各中継プロキシは、分担されたサービスインデックスと配下に位置する全てのエンドプロキシにかかわる経路情報およびサービス情報を保持している。
【００２５】
したがって、検索手段に備えられる中継プロキシ特定手段は、検索要求で指定されたサービス名に基づいて、各中継プロキシに分担して保持されたサービスインデックスを探索することにより、該当するサービスを所持しているエンドプロキシの上位に位置する全ての中継プロキシを特定する情報（例えば、インタフェース情報）を得ることができる。上述したように、このようにして特定された中継プロキシそれぞれには、その配下に位置するエンドプロキシにかかわる経路情報およびサービス情報が集積されている。したがって、候補情報検索手段は、各中継プロキシに集積されたサービス情報から、所望のサービスに接続されたエンドプロキシを特定し、更に、そのエンドプロキシに対応する経路情報から対応するコスト値を得ることができる。このようにして得られたコスト値は、接続先候補のエンドプロキシとこれの上位に位置する中継プロキシまでの経路にかかわるコストを示すものであるので、補正手段により、各接続先候補を配下に持つ中継プロキシと要求元のプロキシが属するグループの中継プロキシとの間の経路に関するコスト値を加算することによって補正する。
【００２６】
このようにして、オーバーレイネットワークに属する任意のプロキシに入力された検索要求に応じて、所望のサービスを提供可能な全ての接続先候補とそれぞれの接続先候補に対応するコスト値とを検索結果として返すことができる。したがって、選択接続手段に備えられた選択手段により、例えば、最もコスト値の小さい接続先候補を選択することにより、利用者に快適なサービスを提供可能な接続先を選択して接続することができる。
【００２７】
本発明にかかわる第２のサービス選択システムは、上述した第１のサービス選択システムを構成する各手段に加えて、状態キャッシュと、検索要求手段と、転送手段とから構成される。
本発明にかかわる第２のサービス選択システムの原理は、以下の通りである。
上述した第１のサービス選択システムにおいて、状態キャッシュは、オーバーレイネットワークに属する各プロキシは、それぞれを経由して設定されたセッションによって送受信されるアプリケーションデータに関するセッション情報をセッションごとに保持する。検索要求手段は、サービスの提供中に、サービスの提供元であるエンドプロキシとサービスの要求元のエンドプロキシとの接続が切断されたときに、サービスの要求元のエンドプロキシを検索要求元として候補検索手段にサービスに対応するサービス名を指定した検索要求を入力する。転送手段は、サービスの提供に用いられた経路上のプロキシに備えられた状態キャッシュに保持された該当するセッションに関するセッション情報を、検索要求に応じて候補検索手段によって検索された接続先候補の中から選択接続手段が選択して接続した接続先と要求元のエンドプロキシとの間に設定される経路上のプロキシに備えられた状態キャッシュに転送する。
【００２８】
このように構成された第２のサービス選択システムの動作は、下記の通りである。
例えば、中継プロキシＡに従属するエンドプロキシＰに中継プロキシＣに従属するエンドプロキシＦからサービスが提供されているときに、このエンドプロキシＦにおいて発生した障害などのために、上述した２つのエンドプロキシ間の経路が切断されると、検索要求手段により、エンドプロキシＰを要求元とする検索要求が候補検索手段に入力される。これに応じて、候補検索手段により、上述したようにして、エンドプロキシＰに中断したサービスと同一のサービスを提供可能な接続先候補が検索され、更に、選択接続手段により、これらの接続先候補から最適なもの（例えば、中継プロキシＢの配下に位置するエンドプロキシＥ）が選択され、要求元のエンドプロキシＰとの間の経路が接続される。このとき、転送手段により、中断されたサービスの提供に利用されていたセッションに関するセッション情報（つまり、上述した中継プロキシＡと中継プロキシＣの状態キャッシュに保持されたセッション情報）を、同一のサービスを再開させるために新たに接続された経路上に位置するプロキシ（例えば、中継プロキシＡおよび中継プロキシＢ）の状態キャッシュに転送し、サービス提供が中断された際のセッションの状態を再現する。
【００２９】
本発明にかかわる第３のサービス選択システムは、上述した第１のサービス選択システムを構成する各手段に加えて、状態キャッシュと、セッション情報転送手段と、検索要求手段と、セッション情報継承手段とから構成される。
本発明にかかわる第３のサービス選択システムの原理は、以下の通りである。
上述した第１のサービス選択システムにおいて、状態キャッシュは、オーバーレイネットワークに属する各プロキシは、それぞれを経由して設定されたセッションによって送受信されるアプリケーションデータに関するセッション情報をセッションごとに保持する。セッション情報転送手段は、サービスの提供中に、サービスの提供を受けるためのアプリケーションを変更する旨の変更要求に応じて、サービスの提供に用いられた経路上のプロキシの状態キャッシュに保持された該当するセッションに関するセッション情報を、変更要求で指定された変更先のエンドプロキシに備えられた状態キャッシュに転送する。検索要求手段は、変更要求で指定された変更先のエンドプロキシを検索要求元として候補検索手段にサービスに対応するサービス名を指定した検索要求を入力する。セッション情報継承手段は、変更先のエンドプロキシの状態キャッシュに転送されたセッション情報を、検索要求に応じて候補検索手段によって検索された接続先候補の中から選択接続手段が選択して接続した接続先と変更先のエンドプロキシとの間に設定される経路上のプロキシに備えられた状態キャッシュに転送して継承させる。
【００３０】
このように構成された第３のサービス選択システムの動作は、下記の通りである。
例えば、中継プロキシＡに従属するエンドプロキシＰに接続されているアプリケーションを介して中継プロキシＣに従属するエンドプロキシＦに接続されたアプリケーションによるサービスの提供を受けていた利用者が、サービスの享受に利用するアプリケーションを同じく中継プロキシＡに従属する別のエンドプロキシＶに接続されたアプリケーションに変更する旨を要求した場合を例として説明する。このような変更要求に応じて、セッション情報転送手段は、変更要求において指定された変更先のエンドプロキシＶの状態キャッシュに、サービスの提供に利用されていたセッションに関するセッション情報（つまり、上述した中継プロキシＡと中継プロキシＣの状態キャッシュに保持されたセッション情報）を転送する。また、このとき、検索要求手段は、変更先のエンドプロキシＶを要求元とする検索要求を候補検索手段に入力する。これに応じて、候補検索手段により、上述したようにして、中断したサービスと同一のサービスを変更先のエンドプロキシＶに提供可能な接続先候補が検索され、更に、選択接続手段により、これらの接続先候補から最適なもの（例えば、中継プロキシＢの配下に位置するエンドプロキシＱ）が選択され、この接続先と要求元のエンドプロキシＰとが接続される。このとき、セッション情報継承手段により、要求元のエンドプロキシの状態キャッシュに転送されていたセッション情報を、同一のサービスを再開させるために新たに接続された経路上に位置するプロキシ（例えば、中継プロキシＡおよび中継プロキシＢ）の状態キャッシュに転送し、上述した変更要求によってサービス提供が中断された際のセッションの状態を再現する。
【００３１】
本発明にかかわる第４のサービス選択システムは、上述した第１のサービス選択システムに備えられるインデックス作成手段に、サービス広告手段と、テーブル作成手段とを備えて構成される。
本発明にかかわる第４のサービス選択システムの原理は、以下の通りである。
上述した第１のサービス選択システムに備えられるインデックス作成手段において、サービス広告手段は、各中継プロキシに備えられ、それぞれに集積された少なくとも一つのサービス情報を、それぞれに含まれるサービス名に基づいて決定した宛先の中継プロキシにサービス名とサービス情報を保持している中継プロキシを識別するための識別情報とからなるサービス広告を送出する。テーブル作成手段は、各中継プロキシに備えられ、受信したサービス広告に基づいて、分担された範囲に属するサービス名に対応して、そのサービス名で示されるサービスを所持するエンドプロキシを従属させている中継プロキシの識別情報を保持する分担インデックステーブルを作成する。
【００３２】
このように構成された第４のサービス選択システムの動作は、下記の通りである。
配下のエンドプロキシから通知されることによって各中継プロキシに集積された多数のサービス情報それぞれは、サービス広告手段により、それぞれのサービス名に基づいて決定された中継プロキシを宛先として広告される。例えば、サービス名を適切なハッシュ関数に入力し、得られたハッシュ値に基づいて、広告先の中継プロキシを決定すれば、サービス名に基づいて、サービス情報を各中継プロキシにほぼ均等に分散して広告することができる。このようにして広告されたサービス情報に基づいて、各中継プロキシに備えられたテーブル作成手段により、例えば、サービス名と広告元の中継プロキシのインタフェース情報とを対応付けるテーブルを作成することにより、各サービス名とそのサービスを所持するエンドプロキシを従属させている中継プロキシとの対応関係を示すサービスインデックスの一部を作成し、候補検索手段による検索処理に供することができる。このとき、候補検索手段の中継プロキシ特定手段は、検索要求で指定されたサービス名に基づいて、サービスインデックスのそのサービスに関する部分を保持している中継プロキシを特定し、この特定した中継プロキシから所望のサービスを所持しているエンドプロキシを従属させている中継プロキシを示す情報（例えば、インタフェース情報）を取得することができる。
【発明の効果】
【００３３】
上述した第１のサービス選択方法および第１のサービス選択システムによれば、オーバーレイネットワークの規模にかかわらず、このオーバーレイネットワークに属する任意のプロキシに入力された検索要求に応じて、要求元のプロキシに最も小さいコストで接続してサービスを提供可能な接続先を選択するために必要な制御を、現実的なトラフィックの範囲内で実現することができる。なぜなら、上述した第１のサービス選択方法および第１のサービス選択システムにおけるオーバーレイネットワークでは、中継プロキシに配下のエンドプロキシによって提供可能なサービスに関する情報およびそれに要するコストに関する情報が集約され、また、各サービスとそれを所持するエンドプロキシが属する中継プロキシとの対応関係がサービスインデックスに集約されているからである。これにより、各グループに属するエンドプロキシに関するネットワーク構成の変化に伴うネットワーク全体への広告を不要とし、代わりに、所属グループの中継プロキシに集約された経路情報を変更することによって対応可能とすることができる。また、サービスインデックスをオーバーレイネットワークに属する中継プロキシに分散して保持させることにより、各中継プロキシに分担されるサービスインデックスの情報量を抑えることができる。これにより、４万台の端末で２０万のサービスを展開するネットワークシステムを、２０００の中継プロキシにそれぞれ５０のサービスが接続された２０のエンドプロキシが従属するオーバーレイネットワークとして階層化することにより、あたかも、それぞれ１０００のサービスを所持する２０００台の端末から構成されるネットワークであるかのように扱うことができる。
【００３４】
特に、上述した第４のサービス選択システムでは、サービス名に基づいて、サービスインデックスを分担して保持する中継プロキシが特定されるので、この特定された中継プロキシから確実に所望のサービスを所持しているエンドプロキシが従属している中継プロキシを示す情報を検索することができる。これにより、検索要求に応じて接続先を選択するまでにやり取りする要求および応答の総数を大幅に削減することができる。
【００３５】
また、上述した第２のサービス選択方法および第２のサービス選択システムによれば、サービス提供元のエンドプロキシが何らかの理由でオーバーレイネットワークとの接続を断たれた場合に、第１のサービス選択方法に従うサービス選択手法によって代わりの接続先を見つけて接続した上で、サービスが中断された際のセッション情報を継承して、サービスを中断された所から再開することができる。これにより、例えば、動画配信などのサービスがサービス提供元のエンドプロキシの障害などによって中断された場合にも、同一のサービスを提供可能な別のエンドプロキシをサービスの提供元として、中断されたまさにその場面からサービスの提供を再開させることができる。
【００３６】
また、上述した第３のサービス選択方法および第３のサービス選択システムによれば、利用者がサービスの提供を受けるアプリケーションの変更を求めた場合にも、第１のサービス選択方法に従うサービス選択手法によって、変更先のエンドプロキシに適切なサービスを提供可能な接続先を見つけてこれと接続させた上で、サービスが中断された際のセッション情報を継承して、中断された所からサービスを再開することができる。これにより、例えば、動画配信などのサービスを提供している途中で、利用者が、サービスの提供を受けるアプリケーションを変更すること、即ち、サービスを享受するために利用する端末つまりノードを例えば固定のパソコンから携帯端末などに変更することを可能とし、しかも、端末の変更に伴ってサービスが中断された所から、そのサービスを再開させることができる。
【発明を実施するための最良の形態】
【００３７】
以下、図面に基づいて、本発明の実施形態について詳細に説明する。
トランスポート層のネットワークを構成する各ノードには、シームレスなサービスを提供するためのプロキシ（以下、シームレスプロキシと称する）が配置されており、これらのシームレスプロキシによって、上述したトランスポート層のネットワークの上位に仮想のオーバーレイネットワークを形成する。このオーバーレイネットワークに含まれる全てのシームレスプロキシには、一意の識別子（以下、プロキシＩＤと称する）が与えられている。
【００３８】
更に、このオーバーレイネットワークを、図１に示したように、エンドプロキシそれぞれを適切な中継プロキシの下に従属させることによって階層化する。この階層化の１手法として、移動が少ない上に端末リソースを十分に備えているために比較的安定して動作することが期待できる信頼性の高いリライアブルプロキシを中継プロキシとして上位に配置し、逆に、移動する可能性が高いあるいは端末リソースが少ないなどの理由から動作が不安定な信頼性の低いノンリライアブルプロキシをエンドプロキシとして位置付ける。
【００３９】
また、ネットワークに属するノードが所持しているサービスのいくつかは、他の少なくとも一つのノードに複製されている。ここで、サービスの複製とは、動画などのコンテンツ配信サービスなどについては、他の少なくとも一つのノードに配信対象のコンテンツの複製を保持させることを意味する。
図２に、本発明にかかわるシームレスプロキシの実施形態を示す。
【００４０】
図２に示したシームレスプロキシは、４つの階層に属する機能を果たす構成要素から構成されている。最上位のセッション層に属するセッション管理部２０１は、サービス状態を管理する。また、セッション管理部２０１からの指示に応じて、セッション状態継承処理部２１２が、オーバーレイネットワークを介して状態キャッシュ２１１に蓄積された情報の転送を行うことにより、セッション状態の引継ぎを行う。図２に示したセッション管理部２０１は、中継するデータの解析によって、あるいは、アプリケーションへの問い合わせによって、アプリケーションの状態やプロトコルの通信状態を含む動的なサービス情報を把握し、これをセッション情報として状態キャッシュ２１１に保持し、セッション状態継承処理部２１２の処理に供する。セッション状態の引継ぎについては、後に、詳述する。
【００４１】
また、アプリケーションと直接接続しているシームレスプロキシ間のデータ送受信は、コネクション層に属する構成要素であるコネクション管理部２０２、送信バッファ２０３および受信バッファ２０４によって蓄積伝送され、また、伝送されたデータの送達確認が行われる。また、サービス発見機能処理部２２１は、コネクション管理部２０２から受け取ったサービス名に基づいて、オーバーレイネットワークを介して他のシームレスプロキシとの間で情報をやり取りすることにより、該当するサービス提供主体の候補を発見し、これらの候補に関する情報を経路評価部２２２の処理に供する。この経路評価部２２２による評価結果は、プロキシルーティングテーブル２３１に反映されるとともに、コネクション管理部２０２およびパス管理部２０５の処理に供される。サービス発見機能および経路評価機能については、後に、それぞれ詳述する。
【００４２】
上述したコネクション層の下位に位置するパス層に属するシームレスプロキシ間の接続維持機能は、パス管理部２０５とプロキシルーティングテーブル２３１とによって実現される。更に、リンク層に属する機能であるトランスポート層のコネクション（リンク）に対応してリンクの維持および切断を検出する機能は、リンク管理部２０７によって実現される。また、リンク層には、リンクバッファ２０６が配置されている。
【００４３】
次に、サービス発見機能処理部２２１の詳細構成および動作について説明する。
図１に示したように階層化されたオーバーレイネットワークでは、各エンドプロキシにかかわる情報は、その上位に位置する中継プロキシに集約され、また、エンドプロキシ相互の通信は、これらが従属する中継プロキシによって中継されるので、ここでは、主に中継プロキシの構成および動作を説明する。
【００４４】
図３に、サービス発見機能処理部の詳細構成を示す。
図３に示したサービス発見機能処理部２２１において、登録管理部２２３は、エンドプロキシから通知される経路広告およびサービス情報を受け付け、サービステーブル２２４およびプロキシルーティングテーブル２３１にそのエンドプロキシに対応する項目を登録する。サービステーブル２２４は、例えば、サービスを特定するサービス名（例えば、コンテンツ配信サービスにおけるコンテンツのＵＲＬ）に対応して、そのサービスを所持しているエンドプロキシのプロキシＩＤあるいはそのエンドプロキシにアクセスするためのインタフェース情報（例えば、ＩＰアドレスやポート番号）又はこれらの双方を格納する。また、プロキシルーティングテーブル２３１は、設定されたパスそれぞれについて、送信元のインタフェース情報、隣接側のインタフェース情報、隣接プロキシＩＤ、接続先のエンドプロキシのインタフェース情報、接続先エンドプロキシＩＤ、ホップ数およびコスト値を保持する。
【００４５】
ここで、エンドプロキシを中継プロキシの配下に登録する動作について説明する。
図４に、エンドプロキシの登録動作を説明するシーケンス図を示す。
例えば、エンドプロキシＰのプロキシＩＤを含む登録要求に応じて、中継プロキシＡの登録管理部２２３は、このエンドプロキシＰを配下のエンドプロキシとして登録する。続いて、このエンドプロキシＰから、プロキシＩＤとこのプロキシＰまでの経路に対応するコスト値とを含む経路広告が送信され、これに応じて、中継プロキシＡの登録管理部２２３は、プロキシルーティングテーブル２３１の適切な項目のコスト値として、広告されたコスト値を保持する。なお、エンドプロキシからの経路広告は、その上位の中継プロキシに直接に送信される場合と、他のシームレスプロキシを経由して中継プロキシに到達する場合が考えられる。また、中継プロキシＡの登録管理部２２３は、このエンドプロキシＰから通知されたサービス名をサービステーブル２２４に格納し、このエンドプロキシＰのプロキシＩＤをサービス名に対応して格納する。なお、登録要求において、プロキシＩＤとともにインタフェース情報を受け取った場合には、サービステーブル２２４に、サービス名に対応してプロキシＩＤとともにインタフェース情報が格納される。同様にして、エンドプロキシＱに関する登録処理に応じて、サービステーブル２２４およびプロキシルーティングテーブル２３１に対応する項目が追加される。
【００４６】
その後、中継プロキシＡの登録管理部２２３は、例えば、リンク管理部２０７を介して配下のエンドプロキシとの接続を定期的に確認する。そして、例えば、エンドプロキシＱに対する接続確認に対して一定時間内に応答がない場合には、エンドプロキシＱとのリンクが切断されたと判断し、中継プロキシＡの登録管理部２２３は、エンドプロキシＱに関するサービス情報をサービステーブル２２４から削除する。
【００４７】
一方、所属していた中継プロキシとの接続が断たれたエンドプロキシは、別の中継プロキシ（例えば、図４に示した中継プロキシＢ）を探索して登録要求を行い、その中継プロキシの配下に入る。
このようにして、オーバーレイネットワークの階層化が実現され、エンドプロキシが所持しているサービスに関する情報が、その上位に位置する中継プロキシに集約される。
【００４８】
次に、上述したようにして中継プロキシに集約されたサービス情報に基づいて、サービスインデックスを作成する機能について説明する。
図３に示したサービス広告部２２６は、サービステーブル２２４に保持された情報に基づいて、サービス名と自身のインタフェース情報とを含むサービス広告を作成し、これをオーバーレイネットワークに送出する。
【００４９】
このとき、分散ハッシュテーブル技術を利用すれば、インデックステーブルを効率よく分散させることができる。
例えば、サービス広告部２２６は、作成したサービス広告に含まれるサービス名を適切なハッシュ関数に入力し、得られたハッシュ値に基づいて、このサービス広告の宛先を決定し、決定された宛先の中継プロキシに送信する。全ての中継プロキシにおいて、同一のハッシュ関数を用いれば、サービス広告の送信先を限定することができ、また、各中継プロキシに到来するサービス広告も、サービス名がそれぞれのインタフェース情報に対応するハッシュ値となるものに限定される。もちろん、同一のサービス名を含むサービス広告は、同一の中継プロキシに集約される。例えば、中継プロキシＡおよび中継プロキシＢの配下に同一のサービスＷを所持するエンドプロキシがそれぞれ配置されている場合に、このサービスＷに関して中継プロキシＡおよび中継プロキシＢがそれぞれ送出するサービス広告は、図５に示すように、いずれも、サービスＷに対応するハッシュ値で示される中継プロキシＣに集約される。
【００５０】
このようにしてサービス広告の宛先を分散させた場合には、オーバーレイネットワークを介して受信したサービス広告に基づいて、インデックス作成部２２７が、サービス名と中継プロキシとを対応付ける情報をインデックステーブル２２８に登録することにより、オーバーレイネットワーク全体に分布する膨大な数のサービスに関するサービスインデックスを分散して作成することができる。例えば、インデックス作成部２２７は、インデックステーブル２２８に、サービス名に対応して、そのサービス名を含むサービス広告を送出した中継プロキシのインタフェース情報を格納することにより、オーバーレイネットワーク全体に対応するサービスインデックスの一部を作成する。
【００５１】
特に、分散ハッシュテーブルの一方式であるＣｈｏｒｄ（I. Stoica, R. Morris, et. al. "Chord: A Scalable peer-to-peer Lookup Service for Internet Applications", SIGCOMM 2001, San Diego, 2001.）を利用すれば、中継プロキシの数が多い場合においても、ノー度数ｎに対し通信複雑度Ｏ（ｌｏｇｎ）で検索可能な分散ハッシュテーブルを構築することができる。また、中継プロキシの数が少ない場合には、上述したＣｈｏｒｄを用いる代わりに、疎結合分散ハッシュテーブルを利用することで簡略化を図ることができる。
【００５２】
このようにして、オーバーレイネットワーク全体に分布する膨大な数のサービスに関するサービスインデックスを分散して作成することは、次に述べるサービスの検索においても有利である。
図３に示したサービス検索部２２９は、コネクション管理部２０２からの検索要求に応じて、まず、このサービスにかかわるサービスインデックスを所持している中継プロキシに対してサービス位置問い合わせを送出する。例えば、図６に示すように、配下のエンドプロキシＳからの検索要求に応じて、中継プロキシＤにおいて、サービスＷが指定された検索要求が発生した場合に、この中継プロキシＤのサービス検索部２２９は、検索要求で指定されたサービス名（例えば、サービスＷ）に基づいてハッシュ値を算出し、このハッシュ値で示される中継プロキシ（例えば、中継プロキシＣ）に対して、サービス位置問い合わせを送出する。このサービス位置問い合わせに対して、中継プロキシＣのサービス検索部２２９（図３参照）は、インデックステーブル２２８から該当するサービス名に対応して登録された中継プロキシのインタフェース情報（つまり、中継プロキシＡ、Ｂのインタフェース情報）を検索し、これらのインタフェース情報を含むサービス位置応答を返す。これに応じて、中継プロキシＤのサービス検索部２２９は、サービス位置応答に含まれるインタフェース情報で示される中継プロキシＡ、Ｂに対して、改めてサービスＷを指定したサービス情報問い合わせを送出する（図６参照）。このサービス情報問い合わせを受信した中継プロキシＡ、Ｂのサービス検索部２２９は、それぞれのサービステーブル２２４から、指定されたサービスＷを所持するエンドプロキシを示すプロキシＩＤ（およびインタフェース情報）を検索し、更に、プロキシルーティングテーブル２３１からそのプロキシＩＤに対応するコスト値を得る。次いで、中継プロキシＡ、Ｂのサービス検索部２２９は、上述したようにして得られたエンドプロキシのプロキシＩＤ（およびインタフェース情報）とコスト値とを含むサービス情報応答を作成し、それぞれ要求元の中継プロキシＤに送出する（図６参照）。
【００５３】
このようにして、各中継プロキシに分散して保持されているサービスインデックスから所望のサービスを所持している少なくとも一つのエンドプロキシに関する情報を漏れなく検索し、要求元の中継プロキシに返すことができる。
上述した手順によれば、要求元の中継プロキシＤのサービス検索部２２９は、オーバーレイネットワークを介してこのオーバーレイネットワークに含まれるサービスＷを所持している全てのエンドプロキシ、つまり、接続先候補に関する情報を収集することができる。このようにして得られたこれらの接続先候補に関する情報を含む接続先リストは、経路評価部２２２に渡される。
【００５４】
図３に示した経路評価部２２２は、各接続先候補のプロキシＩＤ（およびインタフェース情報）と、サービス情報応答の送信元となった中継プロキシのインタフェース情報と、サービス情報応答で通知されたコスト値とを含む接続先リストを受け取り、各接続先候補に対応して通知されたコスト値を、これらの情報と、中継プロキシ相互の接続に関する情報に基づいて補正して、各接続先候補までのコスト値を求める。
【００５５】
経路評価部２２２は、例えば、予め各中継プロキシとの間のリンクコストを測定あるいは遅延を考慮した推定などによって求めて保持しておき、このリンクコストと各インタフェースの通過にかかわるインタフェースコストとを通知されたコスト値に加算することによってコスト値の補正を行う。もちろん、前に同一のリンクを利用したことがあれば、その際のコスト値を退避しておき、これをリンクコストとして利用することができる。また、リンクコストを測定する対象となるリンク、即ち、接続先候補となるエンドプロキシの上位に位置する中継プロキシとの間のリンクでは、上述したように、サービス位置問い合わせおよびサービス情報応答のやり取りが必ず行われるので、このやり取りの間に遅延測定などを行い、この測定結果に基づいてリンクコストを推定することも可能である。
【００５６】
例えば、図６に示したように、中継プロキシＡ、Ｂからサービス情報応答が得られた場合には、これらのサービス情報応答に含まれるコスト値に、中継プロキシＤと中継プロキシＡとのリンクコストあるいは中継プロキシＤと中継プロキシＢとのリンクコストを加算し、更に、それぞれの経路において通過するインタフェースにかかわるインタフェースコストを加算して最終的なコスト値が得られる。そして、これらのコスト値と接続先候補を特定する情報（例えば、中継プロキシのプロキシＩＤあるいはこの中継プロキシのインタフェース情報およびエンドプロキシのプロキシＩＤの組み合わせ）とが、本来の要求元であるエンドプロキシＳに返される。
【００５７】
このようにして得られたコスト値に基づいて、エンドプロキシＳのコネクション管理部２０２は、例えば、最小のコスト値に対応する接続先候補を選択し、選択した接続先候補との間にセッションを確立する。
なお、各中継プロキシにおいて、サービステーブル２２４により、各サービス名に対応するプロキシＩＤとともにそのエンドプロキシのインタフェース情報を管理しており、サービス情報応答にこのインタフェース情報が含まれている場合には、コネクション管理部２０２に、所望のサービスを所持しているエンドプロキシのインタフェース情報を含む検索応答を返すことができる。この場合には、本来の要求元であるエンドプロキシ（例えば、エンドプロキシＳ）に、このインタフェース情報（つまり、ＩＰアドレスなど）を渡すことができるので、この要求元のエンドプロキシは、その上位に位置する中継プロキシを介さずに、直接にサービスを所持するエンドプロキシとの間にセッションを設定することができる。
【００５８】
このようにして、大規模なネットワークから所望のサービスを提供可能な少なくとも一つの接続先候補を検索し、これらの接続先候補までの経路を互いに比較して条件のよい接続先候補を選択することにより、ネットワーク上で中継を行うプロキシとアプリケーションに接続されているプロキシとの双方の要求を反映したルーティングを行い、快適なサービスを提供可能なセッションを設定することができる。つまり、上述したような中継プロキシとエンドプロキシとからなるオーバーレイネットワークにおけるサービス選択方法を適用することにより、サービスを複数のノードに複写したことによって大規模なネットワークに複数のサービス提供主体が散在している環境を積極的に利用して、サービスの提供を要求した利用者に、最も条件のよいサービス提供主体から選択的にサービスを提供することができる。
【００５９】
例えば、図６に示した接続先決定手順において、エンドプロキシＳからの要求に応じて、中継プロキシＡの配下のエンドプロキシＰが選択された場合は、これらのエンドプロキシ間に設定されたセッションを介してサービスの提供が開始される。
このようにして、サービスの提供が開始された後には、このサービスの提供に用いられる経路上にあるシームレスプロキシのセッション管理部２０１によってセッション情報が抽出され、状態キャッシュ２１１に蓄積される。このとき、サービス提供元に関するセッション情報は、サービスの提供を受ける側のエンドプロキシ（例えば、エンドプロキシＳ）あるいはその上位の中継プロキシ（例えば、中継プロキシＤ）の状態キャッシュ２１１に蓄積され、逆に、サービス享受側に関するセッション情報は、サービスの提供元のエンドプロキシ（例えば、エンドプロキシＰ）あるいはその上位の中継プロキシ（例えば、中継プロキシＡ）の状態キャッシュ２１１に蓄積される。
【００６０】
次に、上述したようなオーバーレイネットワークにおいて、サービスを提供するための経路を動的に変更し、また、上述した状態キャッシュに蓄積された情報を用いてセッションの状態を再現する手法について説明する。
まず、サービス提供主体側（つまり、サーバ側）の都合により、経路を変更する場合について説明する。
【００６１】
上述したようにして、要求元のエンドプロキシＳと中継プロキシＡの配下のエンドプロキシＰとの間に設定されたセッションを介してサービスの提供が開始された後に、エンドプロキシＰが配置されたノード、つまり、サービス提供主体であるサーバがネットワークから切り離されてしまった場合などにサービス提供主体側の都合による経路の変更が発生する。
【００６２】
図７に、サービス提供主体側の都合で経路を変更する動作を説明する図を示す。
エンドプロキシＰが配置されたノードとの間のリンクが切断されると、例えば、リンク管理部２０７からエンドプロキシＳのコネクション管理部２０２にその旨が通知される。これに応じて、エンドプロキシＳのコネクション管理部２０２により、サービス発見機能処理部２２１を介して、再度、同一のサービスＷを検索する旨の検索要求が中継プロキシＤに送出され、サービスＷに再接続するための再接続シーケンスが開始される。（図７参照）。
【００６３】
この検索要求に応じて、中継プロキシＤのサービス発見機能処理部２２１により、上述したサービス発見手順が実行され、図７に示しように、サービスＷに関するサービスインデックスを持つ中継プロキシＣおよびこのサービスインデックスによって示された中継プロキシＡ、Ｂとの間でサービス位置問い合わせおよびサービス位置応答並びにサービス情報問い合わせおよびサービス情報応答がやり取りされる。このとき、エンドプロキシＰが配置されたノードとネットワークを結ぶリンクの切断に伴って、その上位の中継プロキシＡのサービス発見機能処理部２２１において、サービステーブル２２４からエンドプロキシＰに関するサービス情報が削除されるので、中継プロキシＡからは、該当するサービスがない旨のサービス情報応答が返される（図７参照）。もちろん、エンドプロキシＰが配置されたノードとネットワークを結ぶリンクの切断に伴って、このエンドプロキシＰの上位の中継プロキシＡがサービス情報を削除する際に、削除したサービスＷに関するサービス広告が行われ、サービスインデックスが更新されていた場合は、サービスＷに関するサービスインデックスを持つ中継プロキシＣにより、中継プロキシＢのインタフェース情報のみを含むサービス位置応答が返され、これに基づいて、中継プロキシＤと中継プロキシＢとの間でサービス情報問い合わせとサービス情報応答がやり取りされる。
【００６４】
このようにして得られたサービス情報応答に基づいて、エンドプロキシＳにおいて新たな接続先としてエンドプロキシＱが選択され、図７に示すように、エンドプロキシＳとエンドプロキシＱとの間の経路が接続された後に、エンドプロキシＱは、接続されているアプリケーション（つまり、サービス提供主体）を起動する。
また一方、エンドプロキシＳのセッション状態継承処理部２１２は、状態キャッシュ２１１に保持されているセッション情報をエンドプロキシＱの状態キャッシュ２１１に転送する。
【００６５】
上述したように、サービスの提供中は、サービス提供元に関するセッション情報として、例えば、動画配信サービスなどにおいてサービス提供元において必要とされる情報（つまり、再生時間や再生レートなど）がサービス享受側のエンドプロキシ（つまり、エンドプロキシＳ）の状態キャッシュ２１１に保持されている。したがって、このセッション情報を、新たにサービス提供元となったアプリケーションに接続されているエンドプロキシ（つまり、エンドプロキシＱ）の状態キャッシュ２１１に転送することにより、中断されたサービスのセッション状態を完全に再現することができる。
【００６６】
このように、本発明によれば、例えば、動画や音楽などのコンテンツ配信サービスを提供している途中で、サービス提供元のサービス提供主体（つまり、サーバ）の障害などでサービスの提供が中断されてしまった場合などに、同一のコンテンツを所持している別のサーバを迅速に発見し、しかも、中断された所からサービスを再開することができる。
ところで、サービスを享受する利用者が、サービスを享受するために利用する端末を変更する場合には、サービス享受主体（つまり、クライアント）の都合による経路の変更が発生する。そして、例えば、利用者が固定されたパソコンなどの端末から移動端末への切り替えを要求した場合には、サービス享受主体の変更に伴って、サービス提供主体の切り替えも必要となる場合が考えられる。なぜなら、サービス享受主体が移動端末に切り替えられた後、利用者とともにこのサービス享受主体が移動した場合などには、当然ながら、新たなサービス享受主体に接続されたエンドプロキシとの間に、元のサービス提供主体よりもコストの小さい経路によって接続可能な接続先が存在することが予想されるからである。
【００６７】
図８に、サービス享受主体側の都合で経路を変更する動作を説明する図を示す。
サービス享受主体に接続されたエンドプロキシ（例えば、上述した場合のエンドプロキシＳ）に、利用者から端末をエンドプロキシＥに接続された移動端末に切り替える旨の移動要求が入力されると、この移動要求は、上位に位置する中継プロキシ（例えば、中継プロキシＤ）に渡され、この中継プロキシＤあるいは切り替え元のエンドプロキシＳの状態キャッシュ２１１に保持されているセッション情報が、切り替え先として指定されたエンドプロキシＥの状態キャッシュ２１１に転送される（図８において、セッション情報転送Ａとして示した）。
【００６８】
これに応じて、この切り替え先のエンドプロキシＥは、サービス享受主体となるアプリケーションを起動する。また、このとき、切り替え先のエンドプロキシＥは、転送されたセッション情報に基づいて、提供中のサービス名（例えば、サービスＷ）を知り、このサービスＷを指定する検索要求を上位に位置する中継プロキシＢに送出して、該当するサービスを再度検索する。
【００６９】
これに応じて、上述したサービス発見機能処理部２２１による再検索シーケンスが開始される。この場合は、中継プロキシＢが中継プロキシＣに宛てたサービス位置問い合わせに対して、中継プロキシＡのインタフェース情報とともに問い合わせ元である中継プロキシＢのインタフェース情報を含むサービス位置応答が返される。これに応じて、中継プロキシＢにおいては、中継プロキシＡに対してサービス情報問い合わせを行う処理とともに、自身に備えられたサービステーブルを検索する処理が行われる。このようにして、上述したサービス発見シーケンスと同様に、中継プロキシＡに従属するエンドプロキシＰとともに、検索要求元であるエンドプロキシＥと同一にグループに属するエンドプロキシＱが接続先候補として検索され、これらの接続先候補に対応するコスト値とともに検索結果として要求元のエンドプロキシＥに返される。
【００７０】
この場合は、要求元のエンドプロキシＥとエンドプロキシＱとを結ぶ経路のほうが明らかにコストが小さいので、エンドプロキシＥにおいて新たな接続先としてエンドプロキシＱが選択され、図８に示すように、このエンドプロキシＱとの間の経路が接続される。
このようにして、切り替え先のサービス享受主体に最も小さいコストでサービスを提供可能なサービス提供主体に接続されたエンドプロキシを選択して経路を接続した後に、切り替え先のエンドプロキシＥは、図８にセッション情報転送Ａとして示した手順において転送を受けたセッション情報を用いて、新たにサービス提供主体となったアプリケーションに接続されたエンドプロキシ（つまり、エンドプロキシＥ）の状態キャッシュ２１１に、切り替え前のサービスに関する情報を再現する（図８に、セッション情報転送Ｂとして示す）。
【００７１】
このように、図２に示したシームレスプロキシを適用したオーバーレイネットワークにおいて、上述したサービスの移動処理を行うことにより、例えば、動画コンテンツの配信サービスを享受している利用者は、サービスの享受を中断することなく、サービスの享受に利用する端末をパソコンから移動通信端末に切り替えることができる。このとき、サービス提供主体の変更が発生したとしても、上述したようにして、セッション情報が変更先のサービス提供主体に継承されるので、利用者は、途中まで再生されたコンテンツのその続きからサービスを楽しむことができる。
【００７２】
もちろん、サービス享受主体が移動通信端末である場合に、利用者の移動に伴って、サービス提供のために用意された経路が長くなってしまったときに、上述した再検索シーケンスを実行することも可能である。このような場合に、再検索シーケンスを実行すれば、サービス享受主体の現在位置に応じて、最も小さいコストでサービスを提供可能な接続先が選択され、十分な帯域を確保することが可能な経路を介して快適なサービスを利用者に提供することができる。
【産業上の利用可能性】
【００７３】
本発明によれば、ネットワークの状態が常に変化する動的でしかも大規模なネットワークにおいて、この大規模なネットワークを介して利用者に提供されているサービスを、個々のノードのネットワークからの分離あるいは新たなノードの結合などにかかわらずに維持するためのプラットフォーム、即ち、シームレスなサービスを提供するプラットフォームを提供することができる。
【００７４】
このようなプラットフォームでは、多種多様なサービスを要求する不特定の利用者が、サービスの享受に利用する端末の種類に束縛されることなく、自由に所望のサービスを享受することができる。このようなシームレスなサービス環境は、多くの一般の利用者が自宅やオフィスのパソコンに限らず、携帯電話やＰＤＡなどの携帯端末を利用して、インターネットなどを介する通信サービスを利用していることを考えれば、今後、更に重要性を増すと考えられる。
【図面の簡単な説明】
【００７５】
【図１】本発明にかかわるオーバーレイネットワークの構成を示す図である。
【図２】本発明にかかわるシームレスプロキシの実施形態を示す図である。
【図３】サービス発見機能処理部の詳細構成を示す図である。
【図４】エンドプロキシの登録動作を説明するシーケンス図である。
【図５】サービスインデックスの作成を説明する図である。
【図６】サービス検索動作を説明する図である。
【図７】サービス提供主体側の都合で経路を変更する動作を説明する図である。
【図８】サービス享受主体側の都合で経路を変更する動作を説明する図である。
【図９】動的なネットワークにおける課題を説明する図である。
【符号の説明】
【００７６】
２０１  セッション管理部
２０２  コネクション管理部
２０３  送信バッファ
２０４  受信バッファ
２０５  パス管理部
２０６  リンクバッファ
２０７  リンク管理部
２１１  状態キャッシュ
２１２  セッション状態継承処理部
２２１  サービス発見機能処理部
２２２  経路評価部
２２３  登録管理部
２２４  サービステーブル
２２６  サービス広告部
２２７  インデックス作成部
２２８  インデックステーブル
２２９  サービス検索部
２３１  プロキシルーティングテーブル
【図１】
2005252986.tif 000003
【図２】
2005252986.tif 000004
【図３】
2005252986.tif 000005
【図４】
2005252986.tif 000006
【図５】
2005252986.tif 000007
【図６】
2005252986.tif 000008
【図７】
2005252986.tif 000009
【図８】
2005252986.tif 000010
【図９】
2005252986.tif 000011