(57)【特許請求の範囲】
【請求項１】
メッセージを中継する中継装置であって、
複数のインタフェースを有し、コンテンツを購読するあるいは発行するためのメッセージであって、コンテンツの名前情報を含む前記メッセージを受信する受信手段と、
前記受信手段で受信したメッセージに含まれる名前情報と、インタフェースとの対応関係を示すエントリを含むテーブルを記憶する記憶手段と、
前記受信手段で受信したメッセージの種類を判定する判定手段と、
前記判定手段の判定の結果、前記受信手段で受信したメッセージの種類が更新であり、かつ、前記テーブルが当該メッセージに含まれる名前情報のエントリを有すると、当該エントリが示すインタフェースを、当該メッセージを受信したインタフェースと置換して更新する更新手段と
を備えることを特徴とする中継装置。
【請求項２】
前記判定手段の判定の結果、前記受信手段で受信したメッセージの種類が追加であり、かつ、前記テーブルが当該メッセージに含まれる名前情報のエントリを有していないと、前記更新手段は、当該メッセージを受信したインタフェースと、当該メッセージに含まれる名前情報との対応関係を示すエントリを前記テーブルに追加して更新する
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記判定手段の判定の結果、前記受信手段で受信したメッセージの種類が追加であり、かつ、前記テーブルが当該メッセージに含まれる名前情報のエントリを有すると、前記更新手段は、当該エントリが示すインタフェースにさらに当該メッセージを受信したインタフェースを追加して更新する
ことを特徴とする請求項１または２に記載の中継装置。
【請求項４】
コンテンツを購読するあるいは発行するノードを探索する探索手段を更に備え、
前記判定手段は、更に、前記探索手段による探索の結果に基づいて、前記テーブルに対して、更新すべきエントリの有無を判定する
ことを特徴とする請求項１乃至３のいずれか１項に記載の中継装置。
【請求項５】
前記探索手段は、所定時間毎に、前記ノードを探索する
ことを特徴とする請求項４に記載の中継装置。
【請求項６】
当該中継装置は、複数の拠点を巡回する移動中継装置であり、
前記探索手段は、前記複数の拠点の各拠点を巡回するための経路計画に基づいて、各拠点において前記ノードを探索する
ことを特徴とする請求項４または５に記載の中継装置。
【請求項７】
前記記憶手段は、更に、前記テーブルにおいて、前記受信手段で受信したメッセージを転送するための接続先の代替接続先を特定する識別情報と、前記代替接続先と接続するために使用する代替インタフェースを指定する指定情報とを対応付けて管理し、
前記受信手段で受信したメッセージを転送するための接続先との通信が不能である場合に、前記メッセージに含まれるコンテンツを識別する名前情報に基づいて、前記テーブルから、該メッセージに対する前記代替インタフェースを特定する特定手段を更に備える
ことを特徴とする請求項１乃至６のいずれか１項に記載の中継装置。
【請求項８】
前記代替接続先は、前記コンテンツを管理する、すくなくとも２台以上のノードの１つである
ことを特徴とする請求項７に記載の中継装置。
【請求項９】
前記メッセージは、コンテンツの名前に基づいて通信を行うＰｕｂｌｉｓｈメッセージあるいはＳｕｂｓｃｒｉｂｅメッセージである
ことを特徴とする請求項１乃至８のいずれか１項に記載の中継装置。
【請求項１０】
複数のインタフェースを有し、メッセージを中継する中継装置の制御方法であって、
前記中継装置は、前記メッセージに含まれる名前情報と、インタフェースとの対応関係を示すエントリを含むテーブルを保持しており、
前記制御方法は、
コンテンツを購読するあるいは発行するためのメッセージであってコンテンツの名前情報を含む前記メッセージを受信する受信工程と、
前記受信工程で受信したメッセージの種類を判定する判定工程と、
前記判定工程での判定の結果、前記受信工程で受信したメッセージの種類が更新であり、かつ、前記テーブルが当該メッセージに含まれる名前情報のエントリを有すると、当該エントリが示すインタフェースを、当該メッセージを受信したインタフェースと置換して更新する更新工程と
を含むことを特徴とする中継装置の制御方法。
【請求項１１】
請求項１から９のいずれか１項に記載の中継装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツの名前に基づいて通信を行うネットワーク（以下、ＣＣＮ：  Ｃｏｎｔｅｎｔ−Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋ）のためのＰｕｂｌｉｓｈ／Ｓｕｂｓｃｒｉｂｅシステムにおいて、ノード移動やリンク断に対応する中継技術に関するものである。
【背景技術】
【０００２】
・ＣＣＮ（Content-Centric Network）
ＣＣＮ（非特許文献１、特許文献１）では、コンテンツを送受信するホストの場所を示すＩＰアドレスを用いずに、各コンテンツに対する一意な名前（ＩＤ）を用いてルーティングを行う。このため、ＣＣＮでは、エンドユーザは、コンテンツが存在する場所を意識することなく、所望のコンテンツを取得することができる。また、ネットワーク上のＣＣＮルータは中継したコンテンツをメモリ等の記憶媒体にキャッシュする。ＣＣＮルータは、記憶媒体にキャッシュしているコンテンツに対するエンドユーザ端末からの要求パケット（Ｉｎｔｅｒｅｓｔパケット）を受信した場合、次ホップのＣＣＮルータにＩｎｔｅｒｅｓｔパケットを転送せずに、キャッシュしているコンテンツをＤａｔａパケットとして、Ｉｎｔｅｒｅｓｔパケットの送信元のエンドユーザ端末に返信する。これにより、ＣＣＮルータでは、同一のコンテンツに対する複数のＩｎｔｅｒｅｓｔパケットを受信する場合のトラヒック量を削減することができる。
【０００３】
・Ｐｕｂｌｉｓｈ／Ｓｕｂｓｃｒｉｂｅ（Ｐｕｂ／Ｓｕｂ）システム
Ｐｕｂ／Ｓｕｂシステムでは、予約購読者（Ｓｕｂｓｃｒｉｂｅｒ（サブスクライバ））が所望のコンテンツを要求するための要求メッセージを登録する。これを受けて、発行者（Ｐｕｂｌｉｓｈｅｒ（パブリッシャ））により、その要求メッセージに適合するコンテンツが生成されるとそのコンテンツを予約購読者が受信する。Ｐｕｂ／Ｓｕｂシステムでは、サブスクライバとパブリッシャは、通信を行うにあたり互いの情報を知る必要はない。つまり、パブリッシャは誰が予約購読しているか、どのくらい予約購読されているか、逆に、サブスクライバは、誰がコンテンツを発行しているかについて知る必要がない。また、サブスクライバとパブリッシャは同時にアクティブ（オンライン）である必要がない。
【０００４】
・ＣＯＰＳＳ（Content-Oriented Pub/Sub System）
ＣＯＰＳＳ（非特許文献２）では、ＣＣＮのためのコンテンツ指向のＰｕｂ／Ｓｕｂシステムを提案している。パブリッシャが提供するコンテンツには、Ｃｏｎｔｅｎｔ  Ｄｅｓｃｒｉｐｔｏｒ（ＣＤ）と呼ばれる名前が割り当てられる（例：/sports/football/Japan）。各コンテンツに、複数のＣＤを割り当てることができ、また、複数のコンテンツ（/sports、/sports/football/、/sports/football/Japan）を１つのＣＤ（/sports）で識別することができる。サブスクライバの要求メッセージ（Ｓｕｂｓｃｒｉｂｅメッセージ）は、Ｒｅｎｄｅｚｖｏｕｓ  Ｐｏｉｎｔ（ＲＰ（ランデブーポイント））と呼ばれるノードに登録される。そして、Ｓｕｂｓｃｒｉｂｅメッセージに適合するコンテンツがパブリッシャにより発行されると、コンテンツは、ランデブーポイントまで転送され、そのコンテンツはＰｕｂｌｉｓｈメッセージとして、ランデブーポイントからサブスクライバに届けられる。ＣＯＰＳＳルータでは、ＣＣＮルータで構成される要素に加え、以下の要素が提供される。
【０００５】
＜ＣＣＮルータの構成要素＞
・Ｆａｃｅ：インタフェース
・ＦＩＢ（Forwarding Information Base）：Ｉｎｔｅｒｅｓｔパケットを名前でルーティングするための経路表
定義例  oface = FIB_Table(Name)
・ＰＩＴ（Pending Interest Table）：Ｉｎｔｅｒｅｓｔパケットが到着したｆａｃｅを一時的にｓｏｆｔ  ｓｔａｔｅとして記録しておく表
同じ名前に対するＩｎｔｅｒｅｓｔパケットが、複数のｆａｃｅから到着した場合、それらのすべてのｆａｃｅをＰＩＴのエントリとして記録する
到着したＤａｔａパケットは、それらのｆａｃｅに転送され、ＰＩＴのエントリは消去される
ＣＳ（Content Store）：経由したＤａｔａパケットを記録しておくためのキャッシュ
＜ＣＯＰＳＳルータの構成要素＞
・ＲＰ  Ｔａｂｌｅ：ＣＤからＲＰCD（ＣＤが割り当てられたコンテンツを提供するＲＰの名前）に変換する表
定義例  RPCD = RP_Table(CD)（記述例： /rendezvous = RP_Table(/sports)）
・ＳＴ（Subscription Table）：Ｓｕｂｓｃｒｉｂｅメッセージが到着したｆａｃｅをｓｏｆｔ  ｓｔａｔｅとして記録しておく表
定義例  oface = ST(CD)  （記述例： face 1 = ST(/sports)）
・Ｂｒｏｋｅｒ：ＣＯＰＳＳ内のすべてのコンテンツを格納するサーバの役割を果たすノード（クラウド）
非特許文献３では、データミュールと呼ばれる特別なルータを具備する端末（例えば、消防車、救急車、パトロールカー等の緊急車両に搭載される車載端末）を利用するシステムが提案されている。これは、ネットワークを介して複数の拠点間で情報通信を行っている環境において、災害等でそのネットワークが分断された場合には、データミュールが各拠点を巡回して情報を吸い上げ、配信することにより、情報の到達性を維持するシステムである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２７７２３４号公報
【非特許文献】
【０００７】
【非特許文献１】V. Jacobson, D. K. Smettres, J. D. Thornton, M. F. Plass, N. H. Briggs, and R. L. Braynard, “Networking named content,” in Proceedings of CoNEXT2009, pp. 1-12, Dec. 2009
【非特許文献２】J. Chen, M. Arumaithurai, L. Jiao, X. Fu, and K.K. Ramakrishnan, “COPSS: An Efficient Content Oriented Publish/Subscribe System," in Proceedings of the 7th ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS), Oct. 2012
【非特許文献３】杉山  浩平、田上  敦士、柳生  智彦、長谷川  亨、「災害時におけるＩＣＮを用いた安否情報配信方式の提案」、電子情報通信学会技術研究報告（ＩＮ２０１３−１８４）、ｐｐ．２４１−２４６、２０１４年３月
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＣＯＰＳＳでは、固定網を想定しているため、ある拠点で管理されるコンテンツが移動することを考慮していない。ここで、コンテンツの移動とは、２つに分類される。１つ目は、コンテンツの予約購読者の移動であり、２つ目はコンテンツの発行者の移動である。通常、予約購読者は、１つの拠点を利用しており、その拠点においてＳｕｂｓｃｒｉｂｅメッセージを受信すると、予めＦＩＢに設定されているその拠点からＲＰ迄への経路情報や転送情報を基に、当該メッセージを転送する。それと同時に、その拠点からＲＰを含むＲＰ迄の中継装置におけるＳＴに予約購読者までの経路情報（ＲＰから予約購読者への逆向きの経路情報）が登録される。ＣＯＰＳＳでは、前述Ｂｒｏｋｅｒと呼ばれるノードを配置することにより、予約購読者がオフラインになった場合、該当するＰｕｂｌｉｓｈメッセージがＲＰに到着した際、予約購読者の代わりにメッセージを格納することができる。予約購読者が再度オンラインになった際、Ｂｒｏｋｅｒに問い合わせることにより、オフライン時に受信できなかったＰｕｂｌｉｓｈメッセージをタイムシフト受信することが可能である。
【０００９】
しかしながら、ＣＯＰＳＳでは、オンライン／オフラインの状態変化に再度Ｓｕｂｓｃｒｉｂｅメッセージを送信することに対応しているが、予約購読情報の削除／更新などの予約購読の状態変化には対応していない。何らかの事情で、予約購読者が普段利用する拠点（Ｓｕｂｓｃｒｉｂｅメッセージを発行（送信）した拠点）から別の拠点へ移動（あるいは普段利用する端末を変更）してしまった場合、それ以降は、発行されたコンテンツをその移動先の拠点（変更先の端末）へ転送する必要がある。
【００１０】
同様に、発行者の移動に関しても、ＲＰ(論理的なコンテンツ発行者)に何らかの障害が発生して、代替のＲＰを構築した場合においても、その代替のＲＰから該当するコンテンツを予約購読者へ転送する必要がある。
【００１１】
いずれにしても、移動後のコンテンツを送受信するためには、移動後の拠点とＲＰとの間での経路情報や転送情報を各中継装置に登録することが必要となる。しかしながら、現状のシステムでは、中継装置で累積的に経路情報や転送情報を管理する仕組みとなっており、また、移動前後のコンテンツを区別する仕組みも用意されていないため、中継装置に不要な情報が残ってしまい、中継装置の記憶資源を逼迫させてしまう。また、中継装置において実際に転送処理を行う場合にも、不要な情報までも含む情報の処理を行うことになり、中継装置の処理負荷が高くなる。また、他の中継装置と通信を行う場合にも、この不要な情報を含む情報に基づいて処理を行うことになるため、トラフィックが増大する。
【００１２】
本発明は上記の課題を鑑みてなされたものであり、メッセージの到達性を確実かつ適切に維持することができる中継技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一態様によると、メッセージを中継する中継装置は、複数のインタフェースを有し、コンテンツを購読するあるいは発行するためのメッセージであってコンテンツの名前情報を含む前記メッセージを受信する受信手段と、前記受信手段で受信したメッセージに含まれる名前情報と、インタフェースとの対応関係を示すエントリを含むテーブルを記憶する記憶手段と、前記受信手段で受信したメッセージの種類を判定する判定手段と、前記判定手段の判定の結果、前記受信手段で受信したメッセージの種類が更新であり、かつ、前記テーブルが当該メッセージに含まれる名前情報のエントリを有すると、当該エントリが示すインタフェースを、当該メッセージを受信したインタフェースと置換して更新する更新手段とを備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、メッセージの到達性を確実かつ適切に維持することができる。
【図面の簡単な説明】
【００１５】
【図１】通信システムの構成を示す図である。
【図２】通信システムを構成する各種機器のハードウェア構成を示す図である。
【図３】エッジルータ及びデータミュールの機能構成を示す図である。
【図４】エッジルータ及びデータミュールの機能構成を示す図である。
【図５】論理インタフェースの構成例を示す図である。
【図６】データミュールにおける論理インタフェースの一例を示す図である。
【図７】中継装置が実行する処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について図面を用いて詳細に説明する。
【００１７】
＜システム構成＞
図１は通信システムの構成を示す図である。
【００１８】
サブスクライバ（Ｓｕｂ）１０１は、所望のコンテンツの取得を要求するノードである。パブリッシャ（Ｐｕｂ）１０２は、サブスクライバ（Ｓｕｂ）１０１が要求したコンテンツを発行するノードである。尚、サブスクライバ（Ｓｕｂ）１０１、パブリッシャ（Ｐｕｂ）１０２は、パーソナルコンピュータ（ＰＣ）やスマートフォン等の情報処理装置によって実現される。
【００１９】
図１では、サブスクライバ（Ｓｕｂ）１０１、パブリッシャ（Ｐｕｂ）１０２は、携帯電話網や無線ＬＡＮ等の無線ネットワークに接続可能なスマートフォンの例を示しているが、有線ネットワークに接続可能なパーソナルコンピュータでもかまわない。
【００２０】
本実施形態のシステムでは、サブスクライバ（Ｓｕｂ）１０１及びパブリッシャ（Ｐｕｂ）１０２の他に、エッジルータ（ＥＲ）１０３、１０４及び１０６、データミュール（ＤＭ）１０５、プライマリランデブーポイント（ＲＰ）１０７ａ、及びセカンダリランデブーポイント（ＲＰ）１０７ｂを有する。尚、図１におけるエッジルータ（ＥＲ）は、例えば、ＩＣＮ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋｉｎｇ）ルータによって実現される。
【００２１】
エッジルータ１０３及びエッジルータ１０４はそれぞれ、サブスクライバ（Ｓｕｂ）１０１及びパブリッシャ（Ｐｕｂ）１０２と直接接続されるルータである。データミュール（ＤＭ）１０５は、サブスクライバ（Ｓｕｂ）１０１−プライマリランデブーポイント（ＲＰ）１０７ａ−パブリッシャ（Ｐｕｂ）１０２間を移動するノード（移動中継装置）である。データミュール（ＤＭ）１０５は、エッジルータ１０３及びエッジルータ１０４と、プライマリランデブーポイント（ＲＰ）１０７ａ（エッジルータ１０６を介して）との間のリンクが切断されている場合、Ｓｕｂｓｃｒｉｂｅ／Ｐｕｂｌｉｓｈメッセージをプライマリランデブーポイント（ＲＰ）１０７ａまで中継することができる。
【００２２】
尚、本実施形態では、データミュール（ＤＭ）１０５は、ＣＯＰＳＳにおけるブローカの機能を有していても良い。また、図１の通信システムを構成する各種機器を相互に接続するネットワークは、有線ネットワーク、無線ネットワーク、及びそれらの任意の組み合わせで構成することができる。
【００２３】
図２は図１の通信システムを構成する各種機器のハードウェア構成を示す図である。
【００２４】
サブスクライバ（Ｓｕｂ）１０１、パブリッシャ（Ｐｕｂ）１０２、エッジルータ１０３、１０４及び１０６、データミュール（ＤＭ）１０５、及びプライマリランデブーポイント（ＲＰ）１０７ａ及びセカンダリランデブーポイント（ＲＰ）１０７ａは、それぞれノードとしての情報処理装置によって実現される。この情報処理装置のハードウェア構成としては、例えば、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、外部記憶装置３０４、及び通信装置３０５を有する。
【００２５】
各種機器を実現する情報処理装置では、記憶媒体（ＲＯＭ３０２、ＲＡＭ３０３及び外部記憶装置３０４）のいずれかに記憶された、以下で説明する各種機器の機能及び動作、制御、処理を実現するプログラムがＣＰＵ３０１により実行される。そして、各種種機器は、通信装置３０５を用いて、各種機器間の通信を行う。
【００２６】
尚、図２では、各種機器を実現する情報処理装置は、１つの通信装置３０５を有するとしているが、例えば、接続する機器の数に応じて、複数の通信装置を有してもよい。また、各種機器は、以下に説明する各機能を実行する専用のハードウェアを備えてもよいし、一部をハードウェアで実行し、プログラムを動作させるコンピュータでその他の部分を実行してもよい。また、以下の全機能をコンピュータとプログラムにより実行させてもよい。また、通信装置３０５では、必要に応じて、各種操作及び情報の表示を実現するための操作部及び表示部を有していても良い。
【００２７】
＜機能構成＞
図３及び図４は、サブスクライバ（Ｓｕｂ）１０１及びパブリッシャ（Ｐｕｂ）１０２それぞれに接続されるエッジルータ（ＥＲ）１０３及び１エッジルータ（ＥＲ）１０４と、データミュール（ＤＭ）１０５の機能構成を示す図である。
【００２８】
図３において、サブスクライバ（Ｓｕｂ）１０１の中継装置として機能するエッジルータ（ＥＲ）１０３は、ランデブーポイント（ＲＰ）１０７と接続するためのインタフェースであるｆａｃｅRP４０１、データミュール（ＤＭ）１０５と接続するためのインタフェースであるｆａｃｅDM４０２を備える。尚、図では、ｆａｃｅRP４０１とｆａｃｅDM４０２とは別々のインタフェースとして示されているが、物理的に１つのインタフェースを論理的な複数のインタフェースとして使用することもできる。
【００２９】
また、エッジルータ（ＥＲ）１０３は、サブスクライバ（Ｓｕｂ）１０７と接続するためのインタフェースであるｆａｃｅSub４０７を備える。更に、エッジルータ（ＥＲ）１０３は、論理ネットワーク管理部４１０（認証振分部４０３及び格納部４０５を含む）、転送部（ＳＴ）４０４、及び転送部（ＦＩＢ）４０６を備える。
【００３０】
認証振分部４０３は、転送部（ＦＩＢ）４０４を参照して、メッセージ転送に使用するｆａｃｅのステータス情報（ＯＮ／ＯＦＦ）で、サブスクライバ（Ｓｕｂ）１０７からのＳｕｂｓｃｒｉｂｅｒメッセージを認証して、その中継先を決定する。ここで、ＯＮは、リンクアップのステータスを示し、ＯＦＦはリンクダウンのステータスを示すものとする。また、格納部４０５は、認証振分部４０３によって決定された中継先となるランデブーポイント（ＲＰ）１０７あるいはデータミュール（ＤＭ）１０５に対応するｆａｃｅのステータス情報が示すステータスがＯＦＦである場合、Ｓｕｂｓｃｒｉｂｅｒメッセージを当該ｆａｃｅに一時的に格納する。
【００３１】
図３において、データミュール（ＤＭ）１０５は、ｆａｃｅRP５０１、論理ネットワーク管理部５１０ａ（認証振分部５０２及び格納部５０４を含む）、転送部（ＳＴ）５０３、転送部（ＦＩＢ）５０５、及びｆａｃｅER1５０６を備える。これらの内、ｆａｃｅRP５０１、論理ネットワーク管理部５１０ａ（認証振分部５０２及び格納部５０４を含む）、転送部（ＳＴ）５０３、及び転送部（ＦＩＢ）５０５はそれぞれ、エッジルータ（ＥＲ）１０３のｆａｃｅRP４０１、論理ネットワーク管理部４１０（認証振分部４０３及び格納部４０５を含む）、転送部（ＳＴ）４０４（ＳＴ）及び転送部（ＦＩＢ）４０６と同様の機能を有する。ｆａｃｅER1５０６は、エッジルータ（ＥＲ）１０３と接続するためのインタフェースである。
【００３２】
図４において、パブリッシャ（Ｐｕｂ）１０２の中継装置として機能するエッジルータ（ＥＲ）１０４は、エッジルータ（ＥＲ）１０３と同様の構成を備える。エッジルータ（ＥＲ）１０４において、ｆａｃｅRP６０１、ｆａｃｅDM６０２、論理ネットワーク管理部６１０（認証振分部６０３及び格納部６０５を含む）、及び転送部（ＦＩＢ）６０６はそれぞれ、エッジルータ（ＥＲ）１０３のｆａｃｅRP４０１、ｆａｃｅDM４０２、論理ネットワーク管理部４１０（認証振分部４０３及び格納部４０５を含む）、及び転送部（ＦＩＢ）４０６に対応する。一方で、エッジルータ（ＥＲ）１０４は、パブリッシャ（Ｐｕｂ）１０２と接続するためのインタフェースであるｆａｃｅPub６０８を備える。
【００３３】
図４において、データミュール（ＤＭ）１０５は、図３に示す構成に加えて、エッジルータ（ＥＲ）１０４と接続するためのインタフェースであるｆａｃｅER2５０７、論理ネットワーク管理部５１０ｂ（認証振分部５０９及び格納部５０８を含む）を備える。これらの内、論理ネットワーク管理部５１０ｂ（認証振分部５０９及び格納部５０８を含む）は、エッジルータ（ＥＲ）１０４からＰｕｂｌｉｓｈメッセージを受信する場合に動作し、その機能は、論理ネットワーク管理部５１０ａ（認証振分部５０２及び格納部５０４を含む）と同様である。図４では、便宜上、論理ネットワーク管理部５１０ａ（認証振分部５０２及び格納部５０４を含む）、論理ネットワーク管理部５１０ｂ（認証振分部５０９及び格納部５０８を含む）とを別々に示しているが、それぞれ１つの論理ネットワーク管理部（認証振分部及び格納部を含む）として機能することも、もちろん可能である。
【００３４】
＜論理ネットワーク管理部＞
本実施形態では、サブスクライバ（Ｓｕｂ）１０１（あるいはパブリッシャ（Ｐｕｂ）１０２）が自身の本来の拠点から新しい拠点へ移動することで、その接続先をエッジルータ（ＥＲ）１０４からエッジルータ（ＥＲ）１０３へ移動した場合の処理について説明する。
【００３５】
この場合、サブスクライバ（Ｓｕｂ）１０１は、移動した接続先のエッジルータから通信を実現するために、そのエッジルータに対して、転送部（ＳＴ）で管理するＳＴの内容を更新するためのＳｕｂ−Ｕｐｄａｔｅメッセージ（もしくは、新たなＳｕｂｓｃｒｉｂｅメッセージ）を送信する。エッジルータの論理ネットワーク管理部は、受信するメッセージの内容を解析し、受信したメッセージがＳｕｂ−Ｕｐｄａｔｅメッセージである場合には、それに対応するＳＴのエントリを更新する。また、受信したメッセージが新たなＳｕｂｓｃｒｉｂｅメッセージである場合には、それに対応するエントリをＳＴに追記する。
【００３６】
このような更新（あるいは追記）を実行した場合には、論理ネットワーク管理部は、自身の接続先となる中継装置（データミュール、エッジルータ、あるいはランデブーポイント等）に対して、ＳＴのエントリの更新（あるいは追記）を実行するためのメッセージを発行する。
【００３７】
以上の処理を、各中継装置が連携してＳＴのエントリの更新（あるいは追記）を順次実行することで、サブスクライバ（Ｓｕｂ）１０１の接続先が移動した場合でも、その移動先でサブスクライバ（Ｓｕｂ）１０１が確実にコンテンツを取得できるようにする。
【００３８】
また、本実施形態では、ランデブーポイントの故障等の障害対策のために、ランデブーポイント（ＲＰ）を冗長化している。例えば、図１に示す例では、プライマリランデブーポイント（ＲＰ）１０７ａとセカンダリランデブーポイント（ＲＰ）１０７ｂを設置しておき、どちらか一方が故障した場合には、他方に切り替えて処理を実行できるようにしている。
【００３９】
この２つのランデブーポイント（ＲＰ）を利用可能とするために、各中継装置の論理ネットワーク管理部は、この２つのランデブーポイント（ＲＰ）までの経路を１つの論理インタフェースで統合管理する。この論理インタフェースを論理ネットワーク管理部で実現することにより、２つのランデブーポイント（ＲＰ）との接続を（論理的に）シームレスに切り替えることができる。この構成により、パブリッシャ（Ｐｕｂ）１０２の接続先が移動した場合でも、その移動先でパブリッシャ（Ｐｕｂ）１０２が確実にコンテンツを発行できるようにする。尚、図１では、２つのランデブーポイント（ＲＰ）で冗長化する構成としているが、少なくとも２台以上のランデブーポイント（ＲＰ）で冗長化するようにしても良い。
【００４０】
ここで、中継装置（エッジルータ、データミュール、ランデブーポイント）の各論理ネットワーク管理部で実現される論理インタフェースの具体例を図５を用いて説明する。尚、図５では、図１〜図３で示す構成において、論理インタフェースに関わる構成要素を抜き出したものとなっている。
【００４１】
メッセージを、サブスクライバ１０１／パブリッシャ１０２から、ランデブーポイントに送信するためには、エッジルータ（ＥＲ）１０３及びエッジルータ（ＥＲ）１０４やデータミュール（ＤＭ）１０５は、ランデブーポイント（ＲＰ）１０７ａ／ランデブーポイント（ＲＰ）１０７ｂまでの転送情報を有する必要がある。
【００４２】
エッジルータ（ＥＲ）１０３（あるいはエッジルータ（ＥＲ）１０４）とデータミュール（ＤＭ）１０５間、及びデータミュール（ＤＭ）１０５とランデブーポイント（ＲＰ）１０７ａ／ランデブーポイント（ＲＰ）１０７ｂ間の接続は、断続的に確立するため、エッジルータ（ＥＲ）１０３（あるいはエッジルータ（ＥＲ）１０４）とデータミュール（ＤＭ）１０５は、論理インタフェースの状態を管理する必要がある。
【００４３】
そこで、本実施形態では、図５に示すように、中継装置の転送部（ＦＩＢ／ＳＴ）で管理する情報として、中継装置が備える物理的なインタフェース（ｆａｃｅ）を、一時的に接続するノードに対する論理的なインタフェースとして機能させるための代替インタフェースを定義する。この一時的に接続するノードには、データミュール（ＤＭ）１０５、ランデブーポイント（ＲＰ）１０７ａ／ランデブーポイント（ＲＰ）１０７ｂがなり得る。また、この代替インタフェースは、中継装置に未使用（空き）の物理インタフェースがあれば、その物理インタフェースを代替インタフェースとして設定することができる。あるいは、本来の接続先との通信が不能である物理インタフェースを一時的に利用する論理的な論理インタフェースとして、代替インタフェースを設定することができる。
【００４４】
具体的には、ＦＩＢ／ＳＴにおいて、障害発生時のような、通常使用していた接続先が使用不能（あるいは通信が不能）である場合に、その接続先に代えて一時的に接続する代替接続先と接続するための代替インタフェース（ｆａｃｅ）を指定する指定情報と、そのｆａｃｅを使用して接続する代替接続先を特定する識別情報（例えば、プレフィックス（/rendezvous、/mule等））とを対応づけて管理する。ここで、論理インタフェースは、代替接続先となるノードのＭＡＣアドレスやＩＰアドレス等の識別情報により、適切な転送先を管理する。
【００４５】
尚、ＦＩＢ／ＳＴでは、代替インタフェースに対する指定情報及び識別情報に加えて、通常使用時における接続先と接続するためのインタフェースを指定する指定情報と、そのインタフェースを使用して接続する接続先を特定する識別情報とを対応づけて管理していることは言うまでもない。
【００４６】
また、論理インタフェースは、ｋｅｅｐ−ａｌｉｖｅメッセージ等の所定メッセージを使用することにより、論理インタフェースとして利用するｆａｃｅのステータス（リンクアップやリンクダウン）を確認し、その内容を示すステータス情報を保持することができる。このステータス情報を、更に、ＦＩＢ／ＳＴに追加して管理しても良いし、必要の処理の際に、都度、確認するようにしても良い。
【００４７】
また、論理インタフェースは、リンクダウンの間、メッセージを格納するためのキュー（Ｔｘキュー）を有する。これは、例えば、格納部４０５／５０５等の各中継装置の格納部で実現される。そして、論理インタフェースがリンクアップになった時に、キューに格納されているメッセージは、ＦＩＢ／ＳＴで記録されている論理インタフェースに対応付けられている転送先（中継装置）へ転送される。
【００４８】
ここで、ランデブーポイントと直接接続することがあるデータミュール（ＤＭ）１０５においては、論理ネットワーク管理部５１０ａで実現する論理インタフェースでは、図６に示すように、その接続先として、プライマリランデブーポイント（ＲＰ）１０７ａ及びセカンダリランデブーポイント（ＲＰ）１０７ｂが割り当てられることになる。これにより、どちらか一方のランデブーポイントが故障した場合には、他方のランデブーポイントに切り替えて処理を実行できる。ここで、プライマリランデブーポイント（ＲＰ）１０７ａ及びセカンダリランデブーポイント（ＲＰ）１０７ｂは、自身で管理するコンテンツ等の情報が互いに同一となるように定期的に同期を図っている。
【００４９】
尚、中継装置が管理するテーブル（ＦＩＢ／ＳＴ）への論理インタフェースの設定や更新は、例えば、中継装置に接続することが可能なホスト装置（パーソナルコンピュータ等の情報処理装置）で実現することができる。格納部で一時的に保持するメッセージを保持する時間（一定時間）も、ホスト装置を介して設定することができる。
【００５０】
また、ホスト装置では、ＦＩＢ／ＳＴで管理される各エントリから任意のエントリを編集（削除、変更、追加等を含む）することもできる。更には、用途や目的に応じて、エントリ毎に異なる一定時間を設定するようにしても良い。例えば、代替接続先となるデータミュール（ＤＭ）は、その提供元によって、接続対象となる中継装置が設置される各拠点に巡回する頻度が異なるので、例えば、頻度が高いデータミュール（ＤＭ）に対する論理インタフェースに対する一定時間は短くして、頻度が低いデータミュール（ＤＭ）に対する論理インタフェースに対する一定時間は長くするようにして、中継装置の処理負担を軽減したり、リソースの有効活用を促進させることができる。
【００５１】
また、中継装置でメッセージを保持する格納部の容量を監視しておいて、その残容量に応じて、保持しているメッセージを一括で破棄したり、保持しているメッセージの内、最古のメッセージだけを破棄するようにしても良い。
【００５２】
また、通信が不能とは、インタフェースそのものに物理的な障害や故障に起因して、接続先と通信ができない場合、インタフェースそのものは正常であるが、接続先そのものの故障あるいはインタフェースと接続先との間のネットワークそのものの物理的な故障や切断に起因して、接続先と通信ができない場合の少なくとも一方を含み得る概念である。また、無線通信の場合は、通信範囲内に通信対象が存在しない場合も、通信が不能と言える。
【００５３】
＜中継装置のメッセージ処理手順＞
以下、中継装置（エッジルータ（ＥＲ）１０３、エッジルータ（ＥＲ）１０４あるいはデータミュール（ＤＭ）１０５）におけるメッセージ処理手順について説明する。尚、メッセージ処理手順は、エッジルータ（ＥＲ）１０３、エッジルータ（ＥＲ）１０４及びデータミュール（ＤＭ）１０５それぞれに内蔵されるＣＰＵ３０１が、ＲＯＭ３０２に記憶されているプログラムをＲＡＭ３０３上に読み出し、実行することで実現される。
【００５４】
ここでは、中継装置が、サブスクライバ（Ｓｕｂ）１０１からＳｕｂ−Ｕｐｄａｔｅメッセージ、新規Ｓｕｂｓｃｒｉｂｅメッセージ、登録済Ｓｕｂｓｃｒｉｂｅメッセージの３種類のいずれかを受信する場合を説明する。特に、普段利用する中継装置がある拠点から別の中継装置がある拠点へ移動した場合には、サブスクライバ（Ｓｕｂ）１０１は、Ｓｕｂ−Ｕｐｄａｔｅメッセージあるいは新規Ｓｕｂｓｃｒｉｂｅメッセージを送信することになる。あるいは、サブスクライバ（Ｓｕｂ）１０１として機能するノード自体が故障等で使用不能となり、以降、代替ノードで中継装置へ接続する場合にも、サブスクライバ（Ｓｕｂ）１０１は、Ｓｕｂ−Ｕｐｄａｔｅメッセージあるいは新規Ｓｕｂｓｃｒｉｂｅメッセージを送信することになる。
【００５５】
ここで、Ｓｕｂ−Ｕｐｄａｔｅメッセージ、新規Ｓｕｂｓｃｉｒｂｅメッセージ及び登録済Ｓｕｂｓｃｒｉｂｅメッセージはいずれも、コンテンツの名前（記憶場所）を示す名前情報であるＣＤ（Contents Descriptor）（例えば、／ｓｐｏｒｔｓ）が割り当てられている。また、これらの３種類のメッセージを識別可能とするためのフラグが各メッセージに付与されている。中継装置の論理ネットワーク管理部は、このフラグによって、受信したメッセージの種類を判定することができる。
【００５６】
ここで、Ｓｕｂ−Ｕｐｄａｔｅメッセージは、既存のＳＴエントリを更新するためのメッセージである。新規Ｓｕｂｓｃｉｒｂｅメッセージは、新規にコンテンツの予約購読を行うためのメッセージである。登録済Ｓｕｂｓｃｒｉｂｅメッセージは、過去にコンテンツンの予約購読を行うことで既にそれに対応するＳＴエントリが存在し、再度、そのコンテンツを取得するためのメッセージである。
【００５７】
以下、具体例として、中継装置として、図４のエッジルータ（ＥＲ）１０３でメッセージを受信する場合を、図７のフローチャートを用いて説明する。
【００５８】
Ｓ１０１で、ＣＰＵ３０１は、論理ネットワーク管理部４１０によって、ｆａｃｅSub４０７で、サブスクライバ（Ｓｕｂ）１０１からメッセージを受信し、その受信したメッセージに含まれるフラグに基づいて、そのメッセージの種類を判定する。
【００５９】
判定の結果、メッセージが新規Ｓｕｂｓｃｉｒｂｅメッセージである場合、Ｓ１０２で、ＣＰＵ３０１は、論理ネットワーク管理部４１０によって、転送部（ＳＴ）４０４が管理するＳＴに、その新規Ｓｕｂｓｃｒｉｂｅメッセージに含まれるＣＤと同一名のＳＴエントリが既に存在するか否かを判定する。同一名のＳＴエントリが既に存在する場合（Ｓ１０２でＹＥＳ）、Ｓ１０３で、ＣＰＵ３０１は、そのＳＴエントリに新規Ｓｕｂｓｃｒｉｂｅメッセージを受信したｆａｃｅ名を追加して、処理を終了する。
【００６０】
一方、同一名のＳＴエントリが存在しない場合（Ｓ１０２でＮＯ）、Ｓ１０４で、新規Ｓｕｂｓｃｒｉｂｅメッセージに含まれるＣＤと新規Ｓｕｂｓｃｒｉｂｅメッセージを受信したｆａｃｅ名とを対応づけた新規エントリをＳＴに追加して、処理を終了する。
【００６１】
判定の結果、メッセージがＳｕｂ−Ｕｐｄａｔｅメッセージである場合、Ｓ１０９で、ＣＰＵ３０１は、論理ネットワーク管理部４１０によって、転送部（ＳＴ）４０４が管理するＳＴの内、Ｓｕｂ−Ｕｐｄａｔｅメッセージで指定されるＳＴエントリのｆａｃｅ名を、新規Ｓｕｂｓｃｒｉｂｅメッセージを受信したｆａｃｅ名に置換（更新）して、処理を終了する。尚、Ｓｕｂ−Ｕｐｄａｔｅメッセージで指定されるＳＴエントリが、転送部（ＳＴ）４０４が管理するＳＴに存在しない場合は、何もせず処理を終了する。
【００６２】
判定の結果、メッセージが登録済Ｓｕｂｓｃｒｉｂｅメッセージである場合、Ｓ１０５で、ＣＰＵ３０１は、論理ネットワーク管理部４１０によって、転送部（ＦＩＢ）４０６による転送処理を開始する。ここでは、転送部（ＦＩＢ）４０６が管理するＦＩＢを参照して、Ｓｕｂｓｃｒｉｂｅメッセージの転送に使用するｆａｃｅを特定する。ここでは、例えば、rendezvous/sportsに対応するｆａｃｅとしてｆａｃｅRP４０１と、mule/sportsに対応するｆａｃｅとしてｆａｃｅDM４０２を特定する。
【００６３】
Ｓ１０６で、ＣＰＵ３０１は、論理ネットワーク管理部４１０によって、登録済Ｓｕｂｓｃｒｉｂｅメッセージ、転送部（ＦＩＢ）４０６が管理するＦＩＢに、その登録済Ｓｕｂｓｃｒｉｂｅメッセージに含まれるＣＤと同一名のＦＩＢエントリが既に存在するか否かを判定する。同一名のＦＩＢエントリが存在する場合（Ｓ１０６でＹＥＳ）、Ｓ１０７で、ＣＰＵ３０１は、そのＦＩＢエントリで指定される転送先にその登録済Ｓｕｂｓｃｒｉｂｅメッセージを転送する。また、この際、ＳＴの内容が更新（削除あるいは追加を含む）されている場合には、その更新内容を含む登録済Ｓｕｂｓｃｒｉｂｅメッセージを転送する。これにより、転送先の中継装置では、受信した登録済ＳｕｂｓｃｒｉｂｅメッセージにＳＴの更新内容が含まれている場合には、その更新内容に従って、自身のＳＴを更新する。
【００６４】
一方、同一名のＦＩＢエントリが存在しない場合（Ｓ１０６でＹＥＳ）、Ｓ１０７で、ＣＰＵ３０１は、その登録済Ｓｕｂｓｃｒｉｂｅメッセージを破棄する。
【００６５】
図７では、エッジルータ（ＥＲ）１０３でメッセージを受信する場合を例に挙げて説明しているが、エッジルータ（ＥＲ）１０４やデータミュール（ＤＭ）１０５等の中継装置においても同様の処理を実現することができる。
【００６６】
また、中継装置に対するメッセージの送受信は、例えば、拠点を移動するノードに対して提供されるＧＵＩ（グラフィックユーザインタフェース）によって生成されるサービス専用画面（例えば、メッセンジャーやメーラー等のデータ送受信アプリケーションによって生成される）によって行う。このサービス専用画面では、Ｓｕｂｓｃｒｉｂｅメッセージ、Ｓｕｂ−Ｕｐｄａｔｅメッセージ、Ｐｕｂｌｉｓｈメッセージ、ＤｅＳｕｂｓｃｒｉｂｅメッセージ（サブスクライバの登録状態を解除するためのメッセージ）、ＤｅＰｕｂｌｉｓｈメッセージ（パブリッシャの登録状態を解除するためのメッセージ）等の各種メッセージを送信するための各種コントロールが構成されている。
【００６７】
また、このサービス専用画面は、中継装置で動作する専用プログラムによって生成して、ノードに提供されても良いし、ノード自身に実装される専用プログラムによって生成されても良い。
【００６８】
また、図７では、Ｓｕｂ−Ｕｐｄａｔｅメッセージを受信した場合に、更新対象の指定された既存のＳＴエントリを更新する構成としているが、これに限定されない。例えば、新規Ｓｕｂｓｃｉｒｂｅメッセージを受信した場合でも、その新規Ｓｕｂｓｃｉｒｂｅメッセージに含まれるＣＤに対応するＳＴエントリが既に存在する場合には、そのＳＴエントリのｆａｃｅ名を、新規Ｓｕｂｓｃｒｉｂｅメッセージを受信したｆａｃｅ名に置換（更新）しても良い。
【００６９】
また、図７では、中継装置が受信するメッセージに応じて、その中継装置がＳＴエントリを更新する構成としているが、これに限定されない。例えば、所定時間毎（例えば、１時間毎）に、中継装置が自身に接続し得るノードを探索するポーリングを実行して、更新すべきＳＴエントリの有無を判定するようにしても良い。また、中継装置がデータミュール（ＤＭ）１０５である場合には、各拠点を巡回するための経路計画に沿って、各拠点の進入／退出時等の特定のイベントが発生する毎に、ポーリングを行うようにしても良い。
【００７０】
また、図７では、中継装置が、サブスクライバ（Ｓｕｂ）１０１から受信するメッセージに応じてＳＴエントリを更新（追加）する構成としているが、これに限定されない。同様の仕組みを、パブリッシャ（Ｐｕｂ）１０２から受信するメッセージに応じて、ＳＴエントリを更新（追加）することができる。この場合、新規Ｓｕｂｓｃｉｒｂｅメッセージ及び登録済Ｓｕｂｓｃｒｉｂｅメッセージに対して、新規Ｐｕｂｌｉｓｈメッセージ及び登録済Ｐｕｂｌｉｓｈメッセージが使用されることになる。これらのメッセージにも、自身を識別可能とするためのフラグが同様に付与されている。これにより、中継装置は、パブリッシャ（Ｐｕｂ）１０２の移動に応じて、パブリッシャ（Ｐｕｂ）１０２は、例えば、パブリッシャ（Ｐｕｂ）１０２からプライマリランデブーポイント（ＲＰ）１０７ａまでの経路を転送部（ＦＩＢ）６０６を介してＰｕｂｌｉｓｈメッセージを転送する。その後、プライマリランデブーポイント（ＲＰ）１０７ａからサブスクライバ（Ｓｕｂ）１０１までの経路を、転送部（ＳＴ）４０４を介してＰｕｂｌｉｓｈメッセージを転送することになる。
【００７１】
以上説明したように、本実施形態によれば、ＣＣＮのためのＰｕｂｌｉｓｈ／Ｓｕｂｓｃｒｉｂｅシステムにおいて、災害／緊急時等で通常利用しているネットワークが分断されるような状態が発生しても、ノード移動やリンク断に対応することができる。
【００７２】
また、中継装置で管理する中継情報（ＳＴ）を必要に応じて更新することで、中継装置の記憶資源を有効活用し、また、中継装置における中継情報を利用する処理の負荷を軽減し、中継装置間の通信トラフィックを軽減することができる。
【図１】
0006301215.tif 000002
【図２】
0006301215.tif 000003
【図３】
0006301215.tif 000004
【図４】
0006301215.tif 000005
【図５】
0006301215.tif 000006
【図６】
0006301215.tif 000007
【図７】
0006301215.tif 000008