(57)【要約】【課題】  メッセージの到達性を確実かつ適切に維持する。【解決手段】  コンテンツを購読するあるいは発行するためのメッセージを受信する。受信したメッセージを転送するためのインタフェースに割り当てられている接続先の代替接続先を特定する識別情報と、代替接続先と接続するために使用する代替インタフェースを指定する指定情報とを対応付けて管理するテーブルを記憶する。受信したメッセージを転送するためのインタフェースに割り当てられている接続先との通信が不能である場合に、メッセージに含まれるコンテンツを識別する名前情報に基づいて、テーブルから、該メッセージに対する代替インタフェースを特定する。特定した代替インタフェースのステータスを判定する。判定の結果、代替インタフェースによる通信が不能である場合、一定時間、メッセージを保持する。【選択図】  図４
2015156569.tif 000002
【特許請求の範囲】
【請求項１】
インタフェースを介して、メッセージを中継する中継装置であって、
コンテンツを購読するあるいは発行するためのメッセージを受信する受信手段と、
前記受信手段で受信したメッセージを転送するためのインタフェースに割り当てられている接続先の代替接続先を特定する識別情報と、前記代替接続先と接続するために使用する代替インタフェースを指定する指定情報とを対応付けて管理するテーブルを記憶する記憶手段と、
前記受信手段で受信したメッセージを転送するためのインタフェースに割り当てられている接続先との通信が不能である場合に、前記メッセージに含まれるコンテンツを識別する名前情報に基づいて、前記テーブルから、該メッセージに対する前記代替インタフェースを特定する特定手段と
前記特定手段で特定した代替インタフェースのステータスを判定する判定手段と、
前記判定手段による判定の結果、前記代替インタフェースによる通信が不能である場合、一定時間、前記メッセージを保持する保持手段と
を備えることを特徴とする中継装置。
【請求項２】
前記一定時間の経過後での前記判定手段による判定の結果、前記代替インタフェースのステータスによる通信が不能である場合、前記保持手段で保持しているメッセージを破棄する破棄手段を更に備える
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記一定時間の経過後での前記判定手段による判定の結果、前記代替インタフェースのステータスによる通信が可能である場合、前記保持手段で保持しているメッセージを前記代替接続先へ送信する送信手段を更に備える
ことを特徴とする請求項１または２に記載の中継装置。
【請求項４】
前記一定時間を設定する設定手段を更に備える
ことを特徴とする請求項１乃至３のいずれか１項に記載の中継装置。
【請求項５】
前記テーブルの内容を編集する編集手段を更に備える
ことを特徴とする請求項１乃至４のいずれか１項に記載の中継装置。
【請求項６】
前記メッセージは、コンテンツの名前に基づいて通信を行うＰｕｂｌｉｓｈメッセージあるいはＳｕｂｓｃｒｉｂｅメッセージである
ことを特徴とする請求項１乃至５のいずれか１項に記載の中継装置。
【請求項７】
インタフェースを介して、メッセージを中継する中継装置の制御方法であって、
コンテンツを購読するあるいは発行するためのメッセージを受信する受信工程と、
前記受信工程で受信したメッセージを転送するためのインタフェースに割り当てられている接続先との通信が不能である場合に、前記メッセージに含まれるコンテンツを識別する名前情報に基づいて、前記受信工程で受信したメッセージを転送するためのインタフェースに割り当てられている接続先の代替接続先を特定する識別情報と、前記代替接続先と接続するために使用する代替インタフェースを指定する指定情報とを対応付けて管理するテーブルから、該メッセージに対する前記代替インタフェースを特定する特定工程と
前記特定工程で特定した代替インタフェースのステータスを判定する判定工程と、
前記判定工程による判定の結果、前記代替インタフェースによる通信が不能である場合、一定時間、前記メッセージを記憶媒体に保持する保持工程と
を備えることを特徴とする中継装置の制御方法。
【請求項８】
インタフェースを介して、メッセージを中継する中継装置の制御をコンピュータに機能させるためのプログラムであって、
前記コンピュータを、
コンテンツを購読するあるいは発行するためのメッセージを受信する受信手段と、
前記受信手段で受信したメッセージを転送するためのインタフェースに割り当てられている接続先の代替接続先を特定する識別情報と、前記代替接続先と接続するために使用する代替インタフェースを指定する指定情報とを対応付けて管理するテーブルを記憶する記憶手段と、
前記受信手段で受信したメッセージを転送するためのインタフェースに割り当てられている接続先との通信が不能である場合に、前記メッセージに含まれるコンテンツを識別する名前情報に基づいて、前記テーブルから、該メッセージに対する前記代替インタフェースを特定する特定手段と
前記特定手段で特定した代替インタフェースのステータスを判定する判定手段と、
前記判定手段による判定の結果、前記代替インタフェースによる通信が不能である場合、一定時間、前記メッセージを保持する保持手段と
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツの名前に基づいて通信を行うネットワーク（以下、ＣＣＮ：  Ｃｏｎｔｅｎｔ−Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋ）のためのＰｕｂｌｉｓｈ／Ｓｕｂｓｃｒｉｂｅシステムにおいて、ノード移動やリンク断に対応する中継技術に関するものである。
【背景技術】
【０００２】
・ＣＣＮ（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５０７、認証振分部５０９、格納部５０８を備える。これらの内、認証振分部５０９及び格納部５０８は、エッジルータ（ＥＲ２）１０４からＰｕｂｌｉｓｈメッセージを受信する場合に動作し、その機能は、認証振分部５０２及び格納部５０４と同様である。図５では、便宜上、認証振分部５０２及び格納部５０４、認証振分部５０９及び格納部５０８とを別々に示しているが、それぞれ１つの認証振分部及び格納部として機能することも、もちろん可能である。
【００３５】
以下、エッジルータ（ＥＲ１）１０３及びエッジルータ（ＥＲ２）１０４におけるメッセージ処理手順について説明する。
【００３６】
尚、メッセージ処理手順は、エッジルータ（ＥＲ１）１０３及びエッジルータ（ＥＲ２）１０４それぞれに内蔵されるＣＰＵ３０１が、ＲＯＭ３０２に記憶されているプログラムをＲＡＭ３０３上に読み出し、実行することで実現される。
【００３７】
＜エッジルータ（ＥＲ１）１０３にＳｕｂｓｃｒｉｂｅメッセージが到着した場合＞
ここでは、図４において、コンテンツの名前（記憶場所）を示す名前情報であるＣＤ（Contents Descriptor）として／ｓｐｏｒｔｓが割り当てられているＳｕｂｓｃｒｉｂｅメッセージを受信する場合を、図６のフローチャートを用いて説明する。
【００３８】
Ｓ１０１で、ＣＰＵ３０１は、ｆａｃｅSub４０７でＳｕｂｓｃｒｉｂｅメッセージを受信する。
【００３９】
このＳｕｂｓｃｒｉｂｅメッセージを受信すると、ＣＰＵ３０１は、転送部（ＳＴ）４０４と転送部（ＦＩＢ）４０６における処理を並列して実行する。
【００４０】
まず、転送部（ＳＴ）４０４における処理として、Ｓ１０２で、ＣＰＵ３０１は、転送部（ＳＴ）４０４が管理するＳＴに、受信したＳｕｂｓｃｒｉｂｅメッセージに含まれるＣＤと同一名のＳＴエントリが既に存在するか否かを判定する。同一名のＳＴエントリが既に存在する場合（Ｓ１０２でＹＥＳ）、Ｓ１０３で、ＣＰＵ３０１は、そのＳＴエントリにＳｕｂｓｃｒｉｂｅメッセージを受信したｆａｃｅ名を追加して、処理を終了する。
【００４１】
一方、同一名のＳＴエントリが存在しない場合（Ｓ１０２でＮＯ）、Ｓ１０４で、Ｓｕｂｓｃｒｉｂｅメッセージに含まれるＣＤとＳｕｂｓｃｒｉｂｅメッセージを受信したｆａｃｅ名とを対応づけた新規エントリをＳＴに追加して、処理を終了する。
【００４２】
転送部（ＦＩＢ）４０６における処理として、Ｓ１０５で、ＣＰＵ３０１は、転送部（ＦＩＢ）４０６による転送処理を開始する。ここでは、転送部（ＦＩＢ）４０６が管理するＦＩＢを参照して、Ｓｕｂｓｃｒｉｂｅメッセージの転送に使用するｆａｃｅを特定する。ここでは、rendezvous/sportsに対応するｆａｃｅとしてｆａｃｅRP４０１と、mule/sportsに対応するｆａｃｅとしてｆａｃｅDM４０２を特定する。
【００４３】
Ｓ１０６で、ＣＰＵ３０１は、認証振分部４０３によってｆａｃｅRP４０１のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
【００４４】
ｆａｃｅRP４０１のステータスがＯＮである場合、Ｓ１０７で、ＣＰＵ３０１は、認証振分部４０３を介してｆａｃｅRP４０１にＳｕｂｓｃｒｉｂｅメッセージを転送する。一方、ｆａｃｅRP４０１のステータスがＯＦＦである場合、Ｓ１０８で、ＣＰＵ３０１は、認証振分部４０３によってｆａｃｅDM４０２のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
【００４５】
ｆａｃｅDM４０２のステータスがＯＮである場合、Ｓ１０９で、ＣＰＵ３０１は、認証振分部４０３を介してｆａｃｅDM４０２にＳｕｂｓｃｒｉｂｅメッセージを転送する。一方、ｆａｃｅDM４０２のステータスがＯＦＦである場合、Ｓ１１０で、ＣＰＵ３０１は、一定時間、Ｓｕｂｓｃｒｉｂｅメッセージを格納部４０５へ格納する。
【００４６】
一定時間の経過後、Ｓ１１１で、ＣＰＵ３０１は、ｆａｃｅDM４０２のステータスがＯＮであるか否かを判定する。ｆａｃｅDM４０２のステータスがＯＮになっている場合（Ｓ１１１でＹＥＳ）、Ｓ１１２で、ＣＰＵ３０１は、認証振分部４０３を介してｆａｃｅDM４０２にＳｕｂｓｃｒｉｂｅメッセージを転送する。一方、ｆａｃｅDM４０２のステータスがＯＮになっていない場合、Ｓ１１３で、ＣＰＵ３０１は、Ｓｕｂｓｃｒｉｂｅメッセージを破棄する。
【００４７】
＜エッジルータ（ＥＲ２）１０４にＰｕｂｌｉｓｈｅｒメッセージが到着した場合＞
ここでは、図５において、ＣＤ（Contents Descriptor）として／ｓｐｏｒｔｓが割り当てられているＰｕｂｌｉｓｈメッセージを受信する場合を、図７のフローチャートを用いて説明する。
【００４８】
Ｓ２０１で、ＣＰＵ３０１は、ｆａｃｅPub６０８でＰｕｂｌｉｓｈメッセージを受信する。
【００４９】
Ｓ２０２で、ＣＰＵ３０１は、認証振分部６０３によってｆａｃｅRP６０１のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
【００５０】
ｆａｃｅRP６０２のステータスがＯＮである場合、Ｓ２０３で、ＣＰＵ３０１は、認証振分部６０３を介してｆａｃｅRP６０１にＰｕｂｌｉｓｈメッセージを転送する。一方、ｆａｃｅRP６０１のステータスがＯＦＦである場合、Ｓ２０４で、ＣＰＵ３０１は、認証振分部６０３によってｆａｃｅDM６０２のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
【００５１】
ｆａｃｅDM６０２のステータスがＯＮである場合、Ｓ２０５で、ＣＰＵ３０１は、認証振分部６０３を介してｆａｃｅDM６０２にＰｕｂｌｉｓｈメッセージを転送する。一方、ｆａｃｅDM６０２のステータスがＯＦＦである場合、Ｓ２０６で、ＣＰＵ３０１は、一定時間、Ｐｕｂｌｉｓｈメッセージを格納部６０５へ格納する。
【００５２】
一定時間経過後、Ｓ２０７で、ＣＰＵ３０１は、ｆａｃｅDM６０２のステータスがＯＮであるか否かを判定する。ｆａｃｅDM６０２のステータスがＯＮになっている場合（Ｓ２０７でＹＥＳ）、Ｓ２０８で、ＣＰＵ３０１は、認証振分部６０３を介してｆａｃｅDM６０２にＰｕｂｌｉｓｈメッセージを転送する。一方、ｆａｃｅDM６０２のステータスがＯＮになっていない場合、Ｓ２０９で、ＣＰＵ３０１は、Ｐｕｂｌｉｓｈメッセージを破棄する。
【００５３】
次に、データミュール（ＤＭ）１０５におけるメッセージ処理手順について説明する。  ＜データミュール（ＤＭ）１０５にＳｕｂｓｃｒｉｂｅメッセージが到着した場合＞
ここでは、図４において、ＣＤ（Contents Descriptor）として／ｓｐｏｒｔｓが割り当てられているＳｕｂｓｃｒｉｂｅメッセージを受信する場合を、図８のフローチャートを用いて説明する。
【００５４】
Ｓ３０１で、ＣＰＵ３０１は、ｆａｃｅER1５０６でＳｕｂｓｃｒｉｂｅメッセージを受信する。
【００５５】
このＳｕｂｓｃｒｉｂｅメッセージを受信すると、ＣＰＵ３０１は、転送部（ＳＴ）５０３と転送部（ＦＩＢ）５０５における処理を並列して実行する。
【００５６】
まず、転送部（ＳＴ）５０３における処理として、Ｓ３０２で、ＣＰＵ３０１は、転送部（ＳＴ）５０３が管理するＳＴに、受信したＳｕｂｓｃｒｉｂｅメッセージに含まれるＣＤと同一名のＳＴエントリが既に存在するか否かを判定する。同一名のＳＴエントリが既に存在する場合（Ｓ３０２でＹＥＳ）、Ｓ３０３で、ＣＰＵ３０１は、そのＳＴエントリにＳｕｂｓｃｒｉｂｅメッセージを受信したｆａｃｅ名を追加して、処理を終了する。
【００５７】
一方、同一名のＳＴエントリが存在しない場合（Ｓ３０２でＮＯ）、Ｓ３０４で、Ｓｕｂｓｃｒｉｂｅメッセージに含まれるＣＤとＳｕｂｓｃｒｉｂｅメッセージを受信したｆａｃｅ名とを対応づけた新規エントリをＳＴに追加して、処理を終了する。
【００５８】
転送部（ＦＩＢ）５０５における処理として、Ｓ３０５で、ＣＰＵ３０１は、転送部（ＦＩＢ）５０５による転送処理を開始する。ここでは、転送部（ＦＩＢ）５０５が管理するＦＩＢを参照して、Ｓｕｂｓｃｒｉｂｅメッセージに使用するｆａｃｅを特定する。ここでは、rendezvous/sportsに対応するｆａｃｅとしてｆａｃｅRP５０１を特定する。
【００５９】
Ｓ３０６で、ＣＰＵ３０１は、認証振分部５０２によってｆａｃｅRP５０１のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
【００６０】
ｆａｃｅRP５０１のステータスがＯＮである場合、Ｓ３０７で、ＣＰＵ３０１は、認証振分部５０２を介してｆａｃｅRP５０１にＳｕｂｓｃｒｉｂｅメッセージを転送する。一方、ｆａｃｅRP５０１のステータスがＯＦＦである場合、Ｓ３０８で、ＣＰＵ３０１は、一定時間、Ｓｕｂｓｃｒｉｂｅメッセージを格納部５０４へ格納する。
【００６１】
一定時間経過後、Ｓ３０９で、ＣＰＵ３０１は、ｆａｃｅRP５０１のステータスがＯＮであるか否かを判定する。ｆａｃｅRP５０１のステータスがＯＮになっている場合（Ｓ３０９でＹＥＳ）、Ｓ３１０で、ＣＰＵ３０１は、認証振分部５０２を介してｆａｃｅRP５０１にＳｕｂｓｃｒｉｂｅメッセージを転送する。一方、ｆａｃｅRP５０１のステータスがＯＮになっていない場合、Ｓ３１１で、ＣＰＵ３０１は、Ｓｕｂｓｃｒｉｂｅメッセージを破棄する。
【００６２】
＜データミュール（ＤＭ）１０５にＰｕｂｌｉｓｈｅｒメッセージが到着した場合＞
ここでは、図５において、ＣＤ（Contents Descriptor）として／ｓｐｏｒｔｓが割り当てられているＰｕｂｌｉｓｈメッセージを受信する場合を、図９のフローチャートを用いて説明する。
【００６３】
このＰｕｂｌｉｓｈメッセージを受信すると、ＣＰＵ３０１は、転送部（ＳＴ）５０３と転送部（ＦＩＢ）５０５における処理を並列して実行する。
【００６４】
Ｓ４０１で、ＣＰＵ３０１は、ｆａｃｅPub５０７でＰｕｂｌｉｓｈメッセージを受信する。
【００６５】
まず、転送部（ＳＴ）５０３における処理として、Ｓ４０２で、ＣＰＵ３０１は、転送部（ＳＴ）５０４が管理するＳＴに、受信したＰｕｂｌｉｓｈメッセージに含まれるＣＤと同一名のＳＴエントリが既に存在するか否かを判定する。同一名のＳＴエントリが存在しない場合（Ｓ４０２でＮＯ）、Ｓ４０９へ進む。一方、同一名のＳＴエントリが既に存在する場合（Ｓ４０２でＹＥＳ）、Ｓ４０３で、ＣＰＵ３０１は、そのＳＴエントリに記録されているｆａｃｅ（例えば、ｆａｃｅER1５０６）のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
【００６６】
ＳＴに記録されているｆａｃｅのステータスがＯＮである場合、Ｓ４０４で、ＣＰＵ３０１は、認証振分部５０９を介して、ＳＴに記録されているｆａｃｅにＰｕｂｌｉｓｈメッセージを転送する。一方、ＳＴに記録されているｆａｃｅのステータスがＯＦＦである場合、Ｓ４０５で、ＣＰＵ３０１は、一定時間、Ｓｕｂｓｃｒｉｂｅメッセージを格納部５０８へ格納する。
【００６７】
一定時間経過後、Ｓ４０６で、ＣＰＵ３０１は、ＳＴに記録されているｆａｃｅのステータスがＯＮであるか否かを判定する。ＳＴに記録されているｆａｃｅのステータスがＯＮになっている場合（Ｓ４０６でＹＥＳ）、Ｓ４０７で、ＣＰＵ３０１は、認証振分部５０９を介して、ＳＴに記録されているｆａｃｅにＰｕｂｌｉｓｈメッセージを転送する。一方、ＳＴに記録されているｆａｃｅのステータスがＯＮになっていない場合、Ｓ４０８で、ＣＰＵ３０１は、Ｐｕｂｌｉｓｈメッセージを破棄する。
【００６８】
転送部（ＦＩＢ）５０５における処理として、Ｓ４０９で、ＣＰＵ３０１は、転送部（ＦＩＢ）５０５による転送処理を開始する。ここでは、転送部（ＦＩＢ）５０５が管理するＦＩＢを参照して、Ｐｕｂｌｉｓｈメッセージに使用するｆａｃｅを特定する。ここでは、rendezvous/sportsに対応するｆａｃｅとしてｆａｃｅRP５０１を特定する。
【００６９】
Ｓ４１０で、ＣＰＵ３０１は、認証振分部５０２によってｆａｃｅRP５０２のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
【００７０】
ｆａｃｅRP５０１のステータスがＯＮである場合、Ｓ４１１で、ＣＰＵ３０１は、認証振分部５０２を介してｆａｃｅRP５０１にＰｕｂｌｉｓｈメッセージを転送する。一方、ｆａｃｅRP５０１のステータスがＯＦＦである場合、Ｓ４１２で、ＣＰＵ３０１は、一定時間、Ｓｕｂｓｃｒｉｂｅメッセージを格納部５０４へ格納する。
【００７１】
一定時間経過後、Ｓ４１３で、ＣＰＵ３０１は、ｆａｃｅRP５０１のステータスがＯＮであるか否かを判定する。ｆａｃｅRP５０１のステータスがＯＮになっている場合（Ｓ４１３でＹＥＳ）、Ｓ４１４で、ＣＰＵ３０１は、認証振分部５０２を介してｆａｃｅRP５０１にＰｕｂｌｉｓｈメッセージを転送する。一方、ｆａｃｅRP５０１のステータスがＯＮになっていない場合、Ｓ４１５で、ＣＰＵ３０１は、Ｐｕｂｌｉｓｈメッセージを破棄する。
【００７２】
尚、図９では、転送部（ＳＴ）５０３において、Ｓ４０２で、ＳＴエントリが存在しない場合（Ｓ４０２でＮＯ）、Ｓ４０９へ移行する構成としているが、これに限定されない。用途や目的に応じて、ＳＴエントリが存在しない場合には、そのまま受信したＰｕｂｌｉｓｈメッセージを破棄する構成としても良い。この場合でも、転送部（ＦＩＢ）５０５は、別途、転送部（ＳＴ）５０３の処理に並行して、Ｓ４０９以降の処理を実行することができる。
【００７３】
＜具体例＞
図１０は通信システムの具体例を説明するための図である。
【００７４】
地震等の災害時を想定した場合、人々はそれぞれ近くの避難場所に移動している。ある夫婦（ＡｌｉｃｅとＢｏｂ）が、互いに別々の拠点である避難場所１（Ｓｈｅｌｔｅｒ＃１）と避難場所２（Ｓｈｅｌｔｅｒ＃２）におり、互いの安否確認を行いたいものとする。ここで、避難場所１にはエッジルータ（ＥＲ１）１０３が存在し、避難場所２にはエッジルータ（ＥＲ２）１０４が存在し、更には、両地域の役所（Ｇｏｖｅｒｎｍｅｎｔ  Ｏｆｆｉｃｅ）にはランデブーポイント（ＲＰ）１０７が存在し、災害の影響で、各拠点間のネットワークが分断されており、直接通信することができないとする。
【００７５】
そして、このような状況で、避難場所１と避難場所２と役所を、データミュール（ＤＭ）１０５を搭載する、車等の移動体で、巡回しているレスキュー隊（Ｒｅｓｃｕｅ）がいるとする。ここで、Ｂｏｂをサブスクライバ１０１（Ａｌｉｃｅの安否情報を購読したいユーザ）、Ａｌｉｃｅをパブリッシャ１０２（自分の安否情報を発行したいユーザ）とした場合、上記実施形態では、分断されたネットワークにおいて、図４に示す手順により、ＢｏｂはＡｌｉｃｅの安否情報を受信することができる。
【００７６】
上記実施形態では、従来のＣＯＰＳＳアーキテクチャに、「論理インタフェース」という概念を導入している。メッセージを、サブスクライバ１０１／パブリッシャ１０２から、ランデブーポイント１０７／ブローカ１０６（ここでは、単に、ブローカと呼び、プレフィックスを、例えば、/broker）に送信するためには、エッジルータ（ＥＲ１）１０３及びエッジルータ（ＥＲ２）１０４や、データミュール（ＤＭ）１０５は、ランデブーポイント１０７／ブローカ１０６までの転送情報を有する必要がある。
【００７７】
エッジルータ（ＥＲ１）１０３（あるいはエッジルータ（ＥＲ２）１０４）とデータミュール（ＤＭ）１０５間、及びデータミュール（ＤＭ）１０５とブローカ１０６間の接続は、断続的に確立するため、エッジルータ（ＥＲ１）１０３（あるいはエッジルータ（ＥＲ２）１０４）とデータミュール（ＤＭ）１０５は、論理インタフェースの状態を管理する必要がある。
【００７８】
そこで、本実施形態では、図１１に示すように、中継装置の転送部（ＦＩＢ）で管理する情報として、中継装置が備える物理的なインタフェース（ｆａｃｅ）を、一時的に接続するノードに対する論理的なインタフェースとして機能させるための代替インタフェースを定義する。この一時的に接続するノードには、データミュール（ＤＭ）１０５、ブローカ１０６、及びランデブーポイント（ＲＰ）１０７がなり得る。また、この代替インタフェースは、中継装置に未使用（空き）の物理インタフェースがあれば、その物理インタフェースを代替インタフェースとして設定することができる。あるいは、本来の接続先との通信が不能である物理インタフェースを一時的に利用する論理的な論理インタフェースとして、代替インタフェースを設定することができる。
【００７９】
具体的には、ＦＩＢにおいて、障害発生時のような、通常使用していた接続先が使用不能（あるいは通信が不能）である場合に、その接続先に代えて一時的に接続する代替接続先と接続するための代替インタフェースを指定する指定情報と、そのｆａｃｅを使用して接続する代替接続先を特定する識別情報（例えば、プレフィックス（/rendezvous、/broker、/mule等））とを対応づけて管理する。
【００８０】
ここで、論理インタフェースは、代替接続先となるノードのＭＡＣアドレスやＩＰアドレス等の識別情報により、適切な転送先を管理する。
【００８１】
また、論理インタフェースは、ｋｅｅｐ−ａｌｉｖｅメッセージ等の所定メッセージを使用することにより、論理インタフェースとして利用するｆａｃｅのステータス（リンクアップやリンクダウン）を確認し、その内容を示すステータス情報を保持することができる。このステータス情報を、更に、ＦＩＢに追加して管理しても良いし、必要の処理の際に、都度、確認するようにしても良い。例えば、図６のＳ１０６、Ｓ１１１等のステータス確認において、このｋｅｅｐ−ａｌｉｖｅメッセージを利用することができる。
【００８２】
また、論理インタフェースは、リンクダウンの間、メッセージを格納するためのキュー（Ｔｘキュー）を有する。これは、例えば、格納部４０５／５０５等の各中継装置の格納部で実現される。そして、論理インタフェースがリンクアップになった時に、キューに格納されているメッセージは、ＦＩＢで記録されている論理インタフェースに対応付けられている転送先（中継装置）へ転送される。
【００８３】
この概念は、ＣＣＮやＮＤＮにおけるｆａｃｅの概念との高い互換性を有する。
【００８４】
尚、中継装置が管理するテーブル（ＦＩＢ）への論理インタフェースの設定や更新は、例えば、中継装置に接続することが可能なホスト装置（パーソナルコンピュータ等の情報処理装置）で実現することができる。格納部で一時的に保持するメッセージを保持する時間（一定時間）も、ホスト装置を介して設定することができる。
【００８５】
また、ホスト装置では、ＦＩＢで管理される各エントリから任意のエントリを編集（削除、変更、追加等を含む）することもできる。更には、用途や目的に応じて、各エントリ毎に異なる一定時間を設定するようにしても良い。例えば、代替接続先となるデータミュール（ＤＭ）は、その提供元によって、接続対象となる中継装置が設置される各拠点に巡回する頻度が異なるので、例えば、頻度が高いデータミュール（ＤＭ）に対する論理インタフェースに対する一定時間は短くして、頻度が低いデータミュール（ＤＭ）に対する論理インタフェースに対する一定時間は長くするようにして、中継装置の処理負担を軽減したり、リソースの有効活用を促進させることができる。
【００８６】
また、中継装置でメッセージを保持する格納部の容量を監視しておいて、その残容量に応じて、保持しているメッセージを一括で破棄したり、保持しているメッセージの内、最古のメッセージだけを破棄するようにしても良い。
【００８７】
また、通信が不能とは、インタフェースそのものに物理的な障害や故障に起因して、接続先と通信ができない場合、インタフェースそのものは正常であるが、接続先そのものの故障あるいはインタフェースと接続先との間のネットワークそのものの物理的な故障や切断に起因して、接続先と通信ができない場合の少なくとも一方を含み得る概念である。また、無線通信の場合は、通信範囲内に通信対象が存在しない場合も、通信が不能と言える。
【００８８】
以上説明したように、本実施形態によれば、ＣＣＮのためのＰｕｂｌｉｓｈ／Ｓｕｂｓｃｒｉｂｅシステムにおいて、災害／緊急時等で通常利用しているネットワークが分断されるような状態が発生しても、ノード移動やリンク断に対応することができる中継装置群を利用できるようにすることで、Ｓｕｂｓｃｒｉｂｅメッセージ／Ｐｕｂｌｉｓｈメッセージが損失しないように一時的に保留することができる。また、ネットワーク復旧後には、保留しているメッセージを適切かつ確実に送信先（宛先）へ送信することができる。
【図１】
2015156569.tif 000003
【図２】
2015156569.tif 000004
【図３】
2015156569.tif 000005
【図４】
2015156569.tif 000006
【図５】
2015156569.tif 000007
【図６】
2015156569.tif 000008
【図７】
2015156569.tif 000009
【図８】
2015156569.tif 000010
【図９】
2015156569.tif 000011
【図１０】
2015156569.tif 000012
【図１１】
2015156569.tif 000013