(57)【要約】【課題】Ｐ２Ｐ型のメッセージ転送におけるホップ数を低減し、メッセージ転送遅延を抑える。【解決手段】メッセージ転送システムは、フロースイッチと、それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部を備える制御装置と、を含む。前記メッセージ転送ノードは、前記経路表に従ったメッセージの転送時に、前記制御装置に新規の経路エントリを登録する。前記制御装置は、前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御する。【選択図】図１
2013038647.tif 000002
【特許請求の範囲】
【請求項１】
メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチと、
それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、
少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部を備える制御装置と、を含み、
前記メッセージ転送ノードのいずれかが、前記経路表に従ったメッセージの転送時に、前記制御装置に新規の経路エントリを登録し、
前記制御装置は、
前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御すること、
を特徴とするメッセージ転送システム。
【請求項２】
前記制御装置は、
前記第２の転送経路上のフロースイッチに前記第２の転送経路を実現する処理規則を設定することにより、前記フロースイッチを制御する請求項１のメッセージ転送システム。
【請求項３】
前記経路エントリは、
新規メッセージを受信した送信元のメッセージ転送ノードが、前記制御装置の経路管理部に対し、前記メッセージの識別子と自装置の識別子とアドレスとを持つ新規エントリを登録し、
前記新規メッセージの到達先のメッセージ転送ノードが、前記新規エントリの到達先として自装置の識別子とアドレスを登録することによって作成される請求項１または２のメッセージ転送システム。
【請求項４】
前記経路エントリの送信元として、複数のメッセージ転送ノードを登録可能であり、
新規メッセージを受信したメッセージ転送ノードは、前記制御装置に対し、前記到達先が共通する経路エントリの登録有無を問い合わせ、
前記制御装置は、前記到達先が共通する経路エントリが登録済みである場合、経路エントリの送信元として、前記メッセージ転送のノードを追加するとともに、前記追加された送信元から前記フロースイッチを経由して前記到達先に至る第３の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御する請求項１から３いずれか一のメッセージ転送システム。
【請求項５】
前記送信元のメッセージ転送ノードは、出版購読型モデルにおける出版者ノードに接続され、
前記メッセージの到達先のメッセージ転送ノードが、出版購読型モデルにおけるランデブーポイントとして機能する請求項１から４いずれか一のメッセージ転送システム。
【請求項６】
メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチと、
それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、に接続され、
少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部と、
前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御する転送制御部と、を備えること、
を特徴とする制御装置。
【請求項７】
個々のメッセージ転送ノードが経路表に従ってメッセージを転送することにより送信元から到達先へのメッセージの転送を行うピアツーピアネットワークの前記メッセージ転送ノードとしてメッセージを転送するメッセージ転送部と、
新規メッセージを受信した際に、所定の制御装置に、少なくとも自装置の情報を含んだ経路エントリを登録する経路エントリ登録部と、
前記メッセージの到達先となった場合、前記所定の制御装置の該当経路エントリに、自装置の情報を追加する経路エントリ更新部と、
を備えたメッセージ転送ノード。
【請求項８】
メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチと、
それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、
少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部を備える制御装置と、を含むメッセージ転送システムにおけるメッセージ転送方法であって、
前記メッセージ転送ノードが、新規メッセージの転送時に、前記制御装置に新規の経路エントリを登録するステップと、
前記制御装置が、前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御するステップと、を含むメッセージ転送方法。
【請求項９】
メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチと、
それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、
少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部を備える制御装置と、を含むメッセージ転送システムの前記制御装置を構成するコンピュータに、
前記メッセージ転送ノードによる新規メッセージの転送時に前記メッセージ転送ノードから、少なくとも送信元と到達先を指定した経路エントリの登録を受け付ける処理と、
前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御する処理とを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージ転送システム、制御装置、メッセージ転送ノード、メッセージ転送方法およびプログラムに関し、特に、個々のメッセージ転送ノードが経路表に従ってメッセージを転送することにより送信元から到達先へのメッセージの転送を行うピアツーピアネットワーク（以下、「Ｐ２Ｐ」と記す。）を構成するメッセージ転送システム、制御装置、メッセージ転送ノード、メッセージ転送方法およびプログラムに関する。
【背景技術】
【０００２】
Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ（ＤＨＴ）技術を用いたＰ２Ｐ型のメッセージ転送では、メッセージ種別毎に割り振られた識別子を用いて、メッセージ転送が行われる。
【０００３】
非特許文献１には、Ｖｉｒｔｕａｌ  Ｒｉｎｇ  Ｒｏｕｔｉｎｇ方式が開示されている。Ｖｉｒｔｕａｌ  Ｒｉｎｇ  Ｒｏｕｔｉｎｇ方式では、図１１に示されたように、個々のメッセージ転送ノード（図１１では簡易化のため、メッセージ転送ノードを「ＢＲ」（Ｂｒｏｋｅｒの略）と記し、ＢＲ２０〜ＢＲ２９のみを図示する。）がノード識別子を持ち、そのノード識別子の数値順に１つのリングが構築される。そのリングを形成する過程において、メッセージ転送ノードは、ノード識別子を交換しながら、メッセージ転送のための経路表を構築している。
【０００４】
例えば、図１１のＢＲ２０は、前後２つずつのメッセージ転送ノードを隣接ノードとして経路表を構築している。同様に、他のメッセージ転送ノードも、前後２つずつのメッセージ転送ノードを隣接ノードとして経路表を構築している。ここで、例えばＢＲ２０からＢＲ２８へメッセージを転送する場合、そのメッセージは、経路表を参照して、ノード識別子を辿っていき、ＢＲ２０、ＢＲ２２、ＢＲ２４、ＢＲ２６、ＢＲ２８という経路を辿って、転送される。
【０００５】
このようなＰ２Ｐ型のメッセージ転送を利用してＰｕｂｌｉｓｈ−Ｓｕｂｓｃｒｉｂｅ型モデルの通信を実現することができる。この場合、メッセージを送信するＰｕｂｌｉｓｈｅｒが、いずれかのメッセージ転送ノードに接続し、広告処理を行う。
【０００６】
図１１では、Ｐｕｂｌｉｓｈｅｒ（図１１のＰＵＢ１０）が、ＢＲ２０に接続していることが示されている。また同様に、Ｓｕｂｓｃｒｉｂｅｒ（図１１のＳＵＢ３０）がＢＲ２９に接続していることが示されている。
【０００７】
Ｐｕｂｌｉｓｈ−Ｓｕｂｓｃｒｉｂｅ通信は、Ｐｕｂｌｉｓｈｅｒによる広告処理と、Ｓｕｂｓｃｒｉｂｅｒによる購読処理によって、メッセージ転送経路が設定される。この広告処理の過程では、いずれかのメッセージ転送ノードがＲｅｎｄｅｚｖｏｕｓ  Ｐｏｉｎｔ（ランデブーポイント、図１１のＲＰ４０）として選定される。この広告処理のための制御メッセージが、例えばＢＲ２０、ＢＲ２２、ＢＲ２４、ＢＲ２６、ＢＲ２８という経路を辿ることによって、ＰＵＢ１０〜ＢＲ２０〜ＢＲ２８／ＲＰ４０へのメッセージ転送経路が確定する。一方、Ｓｕｂｓｃｒｉｂｅｒは購読処理を通してＲｅｎｄｅｚｖｏｕｓ  Ｐｏｉｎｔへ受信登録を行う。購読処理の場合は、受信登録のための制御メッセージが、例えばＢＲ２９、ＢＲ２８という経路を辿り、その経路を逆に辿ることによって、ＢＲ２８／ＲＰ４０〜ＢＲ２９〜ＳＵＢ３０というメッセージ転送経路が確定する。このように、Ｒｅｎｄｅｚｖｏｕｓ  Ｐｏｉｎｔは、Ｐｕｂｌｉｓｈ−Ｓｕｂｓｃｒｉｂｅ通信における仲介機能を提供するものである。
【０００８】
以上のようにして、例えばＰＵＢ１０、ＳＵＢ３０へメッセージを配信する場合、メッセージは、ＢＲ２０、ＢＲ２２、ＢＲ２４、ＢＲ２６、ＢＲ２８／ＲＰ４０、ＢＲ２９、ＳＵＢ３０という経路で転送される。
【０００９】
その他特許文献１に、Ｐ２Ｐのオーバーレイネットワークにおけるスキップテーブルの更新方法が記載されている。また、非特許文献２、３は、オープンフローと呼ばれる集中制御型の制御装置（コントローラ）を持つネットワークのホワイトペーパーと仕様書である。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−１７１１５６号公報
【非特許文献】
【００１１】
【非特許文献１】Ｍａｔｔｈｅｗ  Ｃａｅｓａｒ，  Ｍｉｇｕｅｌ  Ｃａｓｔｒｏ，  Ｅｄｍｕｎｄ  Ｂ．  Ｎｉｇｈｔｉｎｇａｌｅ，  Ｇｒｅｇ  Ｏ’Ｓｈｅａ，  Ａｎｔｏｎｙ  Ｒｏｗｓｔｒｏｎ著，“Ｖｉｒｔｕａｌ  Ｒｉｎｇ  Ｒｏｕｔｉｎｇ：  Ｎｅｔｗｏｒｋ  Ｒｏｕｔｉｎｇ  Ｉｎｓｐｉｒｅｄ  ｂｙ  ＤＨＴｓ”，ＳＩＧＣＯＭＭ２００６
【非特許文献２】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２３（２０１１）年５月２６日検索］、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献３】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）  ［平成２３（２０１１）年５月２６日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以下の分析は、本発明によって与えられたものである。上述したＶｉｒｔｕａｌ  Ｒｉｎｇ  Ｒｏｕｔｉｎｇ方式に代表されるメッセージ転送方式の問題点は、Ｐ２Ｐ技術によって構築されたリングが大規模化した場合に、ホップ数、即ち、メッセージが経由するメッセージ転送ノード（ＢＲ）の数が増加することである。これは、Ｐｕｂｌｉｓｈ−Ｓｕｂｓｃｒｉｂｅ通信においては、ＰｕｂｌｉｓｈｅｒからＲｅｎｄｅｚｖｏｕｓ  Ｐｏｉｎｔへのメッセージ転送においてホップ数が増加することを意味する。
【００１３】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、上記したＰ２Ｐ型のメッセージ転送におけるホップ数を低減し、メッセージ転送遅延を抑えることのできるメッセージ転送システム、制御装置、メッセージ転送方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明の第１の視点によれば、メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチと、それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部を備える制御装置と、を含み、前記メッセージ転送ノードのいずれかが、前記経路表に従ったメッセージの転送時に、前記制御装置に新規の経路エントリを登録し、前記制御装置は、前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御するメッセージ転送システムが提供される。
【００１５】
本発明の第２の視点によれば、メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチと、それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、に接続され、少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部と、前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御する転送制御部と、を備える制御装置が提供される。
【００１６】
本発明の第３の視点によれば、個々のメッセージ転送ノードが経路表に従ってメッセージを転送することにより送信元から到達先へのメッセージの転送を行うピアツーピアネットワークの前記メッセージ転送ノードとしてメッセージを転送するメッセージ転送部と、新規メッセージを受信した際に、所定の制御装置に、少なくとも自装置の情報を含んだ経路エントリを登録する経路エントリ登録部と、前記メッセージの到達先となった場合、前記所定の制御装置の該当経路エントリに、自装置の情報を追加する経路エントリ更新部と、を備えたメッセージ転送ノードが提供される。
【００１７】
本発明の第４の視点によれば、メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチと、それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部を備える制御装置と、を含むメッセージ転送システムにおけるメッセージ転送方法であって、前記メッセージ転送ノードが、新規メッセージの転送時に、前記制御装置に新規の経路エントリを登録するステップと、前記制御装置が、前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御するステップと、を含むメッセージ転送方法が提供される。本方法は、メッセージを転送するメッセージ転送ノードおよびその制御装置という、特定の機械に結びつけられている。
【００１８】
本発明の第５の視点によれば、メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチと、それぞれ経路表を保持し、個々のメッセージ転送ノードが前記経路表に従って前記フロースイッチを介してメッセージを転送することにより、送信元から到達先にメッセージを転送する複数のメッセージ転送ノードと、少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部を備える制御装置と、を含むメッセージ転送システムの前記制御装置を構成するコンピュータに、前記メッセージ転送ノードによる新規メッセージの転送時に前記メッセージ転送ノードから、少なくとも送信元と到達先を指定した経路エントリの登録を受け付ける処理と、前記経路エントリに登録された送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御する処理とを実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１９】
本発明によれば、送信元および到達先を共通にするメッセージを、より少ないホップ数で転送することが可能となり、メッセージ転送遅延を抑えることが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態の構成を表した図である。
【図２】本発明の第１の実施形態の各装置の詳細構成を表したブロック図である。
【図３】本発明の第１の実施形態の管理される経路エントリの一例である。
【図４】本発明の第１の実施形態の動作を表したシーケンス図である。
【図５】図１に広告メッセージと配信メッセージの転送経路を追記した図である。
【図６】図３の経路エントリがメッセージ転送ノードＢＲ２８により更新された状態を示す図である。
【図７】本発明の第２の実施形態の各装置の詳細構成を表したブロック図である。
【図８】本発明の第２の実施形態の動作を表したシーケンス図である。
【図９】本発明の第２の実施形態の制御装置にて管理される経路エントリの一例である。
【図１０】本発明の第３の実施形態の構成を表した図である。
【図１１】非特許文献１のメッセージ転送方法を説明するための図である。
【発明を実施するための形態】
【００２１】
はじめに本発明の一実施形態の概要について図面を参照して説明する。以下、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００２２】
本発明は、図１に示すように、個々のメッセージ転送ノードがそれぞれ経路表を保持し、前記経路表に従ってメッセージを転送することによりメッセージを送信元から到達先に転送するよう動作する複数のメッセージ転送ノードＢＲ２０〜ＢＲ２８と、メッセージと照合する照合規則と当該照合規則に適合するメッセージの転送先とを定めた処理規則に従ってメッセージ転送を行うフロースイッチ５０〜５３と、これらメッセージ転送ノードＢＲ２０〜ＢＲ２８およびフロースイッチ５０〜５３を制御する制御装置６０とを含む構成にて実現できる。
【００２３】
より具体的には、制御装置６０は、少なくとも送信元と到達先のメッセージ転送ノードを指定した経路エントリを管理する経路管理部を備える。また各メッセージ転送ノードＢＲ２０〜ＢＲ２８は、新規メッセージ（例えば、出版購読型モデルにおける出版者ノードからの広告メッセージ）の転送時に、前記制御装置に新規の経路エントリを登録する。このような新規の経路エントリは、例えば、起点に位置する送信元のメッセージ転送ノードが当該メッセージの識別子と自装置の情報を含む新規エントリを登録し、到達先のメッセージ転送ノードが該当エントリに自装置の情報を追加することで作成できる。制御装置６０は、前記新規エントリと同一の送信元から到達先に送信されるべきメッセージについて、前記経路表に従ったメッセージの転送経路よりもホップ数の少ない第２の転送経路（即ち、ショートカット経路）でメッセージを転送するよう前記メッセージ転送ノードおよびフロースイッチを制御する（図５参照）。
【００２４】
このようにすることで、送信元および到達先を共通にするメッセージの転送ホップ数を低減し、メッセージ転送遅延を抑えることが可能となる。
【００２５】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施形態の構成を表した図である。図１を参照すると、複数のメッセージ転送ノード（ＢＲ）２０〜２９と、これらの複数のメッセージ転送ノード（ＢＲ）２０〜２９を相互に接続するフロースイッチ５０〜５３と、これらメッセージ転送ノード（ＢＲ）２０〜２９およびフロースイッチ５０〜５３を制御する制御装置６０と、を含むメッセー転送ネットワークが示されている。なお、以下の説明では、図１に示すとおり、メッセージ転送ノード（ＢＲ）２０に出版者ノードＰＵＢ１０が接続され、メッセージ転送ノード（ＢＲ）２９に購読者ノードＳＵＢ３０が接続されているものとする。図１は、メッセージ転送ノードＢＲ２８がＲｅｎｄｅｚｖｏｕｓ  Ｐｏｉｎｔ（ランデブーポイント、以下、「ＲＰ」）４０として選定された状態を示している。
【００２６】
図２は、上記図１に示された各装置の詳細構成を表したブロック図である。図２を参照すると、メッセージ転送ノード（ＢＲ）２０〜２９と、フロースイッチ５０〜５３と、制御装置６０とが示されている（出版者ノードＰＵＢ１０、購読者ノードＳＵＢ３０及びＲＰ４０は省略）。
【００２７】
制御装置６０は、メッセージ転送のための経路エントリを集中保持し、メッセージ転送ノードＢＲ２０〜ＢＲ２９からの照会や登録・更新要求に応じる経路エントリ管理部６０１と、フロースイッチ５０〜５３を含むネットワークトポロジを参照して前記経路エントリに示された送信元から到達先までの経路を計算する経路計算部６０２と、前記計算された経路での転送に必要なフロースイッチ５０〜５３へのフローエントリの設定やメッセージの出力指示等を行う転送制御部６０３とを備えて構成される。なお、制御装置６０の上記経路計算機能やフローエントリ設定機能は、非特許文献２、３のオープンフロースイッチを制御するオープンフローコントローラと同等の仕組みを用いて実現することもできる。
【００２８】
また、前記経路計算部６０２に代えて、前記制御装置６０に、任意のメッセージ転送ノード間の最短経路情報と、最短経路での転送時に各フロースイッチに設定するフローエントリを保持させる構成も採用可能である。
【００２９】
メッセージ転送ノード（以下、「ＢＲ」）２０〜２９は、非特許文献１に示したような経路表を用いたメッセージの転送、または、制御装置６０からの指示に応じフロースイッチ５０〜５２に設定されたショートカット転送用のフローエントリに適合するようメッセージのヘッダ領域等を書き換えてからメッセージを転送するメッセージ転送部２０１と、メッセージ転送部２０１にて受信した新規メッセージについて制御装置６０に対し、経路エントリの登録有無を照会する経路エントリ照会部２０２と、前記経路エントリの照会の結果、該当する経路エントリが登録されていない場合、制御装置６０に対して新規の経路エントリの登録を要求する経路エントリ登録部２０３と、経路表を用いた広告メッセージを転送した際に自装置が到達先であることが確定した場合、制御装置６０に対して該当経路エントリに自装置の識別子とアドレスの追加を要求する経路エントリ更新部２０４と、を備えて構成される。
【００３０】
フロースイッチ５０〜５３は、受信メッセージのヘッダ情報等と照合するマッチングルール（照合規則）と、当該メッセージに対して実行する処理内容（Ｉｎｓｔｒｕｃｔｉｏｎｓ）とを対応付けたフローエントリ（処理規則）を格納するフローテーブル５０１と、フローテーブル５０１から受信メッセージに適合するマッチングルールを持つフローエントリを検索して、該当するフローエントリに定められた処理を実行する転送処理部５０２とを備えて構成される。また、前記検索の結果、受信メッセージに適合するマッチングルールを持つフローエントリが見つからなかった場合、転送処理部５０２は、制御装置６０に対して、受信メッセージに適合するマッチングルールを持つフローエントリの設定を要求する。上記転送処理部５０２と制御装置６０の動作を用いて、図２のＢＲ２０〜２９と制御装置６０間の情報の授受を実現することができる。また、このようなフロースイッチ５０〜５３は、非特許文献２、３のオープンフロースイッチや、その他同等の通信装置にて構成することもできる。
【００３１】
また、上記した各ノード（ＢＲ、出版者ノード、購読者ノード等）や制御装置６０の各機能は、物理的なコンピュータ上のほか、また仮想化されたＶｉｒｔｕａｌ  Ｍａｃｈｉｎｅ上で動作するコンピュータプログラムにより実現することができる。
【００３２】
本実施形態における広告メッセージは、少なくともメッセージ種別、メッセージ識別子（ＭＳＧ＿ＩＤ）、送信元ノード識別子を含む。具体的には、メッセージ種別は広告メッセージであるか否かが判別される。ＭＳＧ＿ＩＤは、例えば天候情報、交通情報、障害情報といったメッセージ毎に付与されるメッセージの名前をハッシュすることで識別子を生成することができる。そして、送信元ノード識別子は、ＢＲが持つノード識別子を使用する。このノード識別子としては、例えば、ＢＲのＩＰアドレスを用いたり、またＩＰアドレスに加えて、ＢＲが起動した時の時刻を使用するなどして、ユニークな識別子を生成できる。本実施形態では、ＢＲ２０〜２９にそれぞれ２０〜２９の識別子が付与されているものとする。
【００３３】
図３は、制御装置６０の経路エントリ管理部６０１に保持される経路エントリの例である。図３の例では、メッセージ識別子（ＭＳＧ＿ＩＤ）と、送信元ノードの識別子（ｓｒｃ＿ＩＤ）と、送信元ノードのアドレス（ｓｒｃ＿ａｄｄｒｅｓｓ）と、到達先ノードの識別子（ｄｓｔ＿ＩＤ）と、到達先ノードのアドレス（ｄｓｔ＿ａｄｄｒｅｓｓ）と、を対応付けたエントリが示されている。なお、以下の説明では、メッセージ識別子（ＭＳＧ＿ＩＤ）として、到達先のノードの識別子を用いるものとする。送信元ノードのアドレス（ｓｒｃ＿ａｄｄｒｅｓｓ）としては、ＭＡＣアドレスとＩＰアドレスの双方または少なくとも一方を用いるものとする。なお、前記経路エントリ管理部６０１に保持される経路エントリは、一定時間の経過など、所定のタイミングで削除することが望ましい。
【００３４】
続いて、本実施形態の動作について図面を参照して詳細に説明する。以下の説明では、ＢＲ２０が、出版者ノードＰＵＢ１０から、ＢＲ２８宛ての広告メッセージを受信し、その後の配信メッセージを、ＢＲ２２〜ＢＲ２６を介さずにＢＲ２８に転送する例を挙げて説明する。
【００３５】
図４は、本発明の第１の実施形態の動作を表したシーケンス図である。図４を参照すると、まず、ＢＲ２０は、出版者ノードＰＵＢ１０から、メッセージ識別子（ＭＳＧ＿ＩＤ）として到達先のノードの識別子であるＢＲ２８の識別子が設定された広告メッセージを受信すると、制御装置６０に対し、該当する広告メッセージに対応する経路エントリが作成済みであるか否かを問い合わせる（Ｓ００１）。
【００３６】
ここでは、制御装置６０の経路エントリ管理部６０１に、到達先のノードの識別子であるＢＲ２８が設定されたエントリが未登録であるため、制御装置６０は、ＢＲ２０に対し該当エントリなしと応答する。
【００３７】
前記応答を受信したＢＲ２０は、制御装置６０に対し、広告メッセージに設定された到達先のノードの識別子であるＢＲ２８の識別子（ＭＳＧ＿ＩＤ）と、問い合わせ元である自装置の識別子（２０）と、自装置のアドレス（ｓｒｃ＿ａｄｄｒｅｓｓ）とを持つ経路エントリの登録を要求する（Ｓ００２）。この時点で、図３のような経路エントリが経路エントリ管理部６０１に登録される。
【００３８】
次に、ＢＲ２０は、メッセージ転送部２０１に保持されている経路表に従って広告メッセージの転送を行う（Ｓ００３）。具体的には、ＢＲ２０は、経路表を参照しＢＲ２２に宛てて広告メッセージを転送する。すると、広告メッセージを受信したフロースイッチ５０は、広告メッセージに対応するフローエントリを保持していないため、制御装置６０に対し、前記広告メッセージの転送に必要なフローエントリの設定を要求する。制御装置６０は、前記要求を受けると、フロースイッチ５０に、ＢＲ２２への広告メッセージの転送を指示する。なお、制御装置６０からフロースイッチ５０へのメッセージの転送指示には、非特許文献３のＰａｃｋｅｔ−Ｏｕｔメッセージを用いることができる。
【００３９】
前記広告メッセージしたＢＲ２２は、経路表を参照し、ＢＲ２４に宛てて広告メッセージを転送する。該広告メッセージを受信したフロースイッチ５０は、先のＢＲ２０からの広告メッセージの受信時と同様に、制御装置６０に問い合わせてフロースイッチ５１に広告メッセージを転送する。該広告メッセージを受信したフロースイッチ５１も同様に、制御装置６０に問い合わせてＢＲ２４に広告メッセージを転送する。このようにして、広告メッセージは、図５の破線の矢線に示すように、ＢＲ２０→ＢＲ２２→ＢＲ２４→ＢＲ２６→ＢＲ２８と転送される。ＢＲ２８では、ＭＳＧ＿ＩＤがＢＲ２８のノード識別子（＝２８）と一致するため、ＢＲ２８がＲＰ４０として確定する（Ｓ００４）。
【００４０】
次に、ＲＰ４０となったＢＲ２８は、制御装置６０に対し、該当する広告メッセージに対応する経路エントリ（ＭＳＧ＿ＩＤ＝２８、ｓｒｃ＿ＩＤ＝２０である経路エントリ）が作成済みであるか否かを問い合わせる（Ｓ００５）。
【００４１】
ここでは、Ｓ００２で該当経路エントリが登録済みであるため、制御装置６０は、ＢＲ２８に対し該当エントリの内容（図３のＭＳＧ＿ＩＤ＝２８、ｓｒｃ＿ＩＤ＝２０等）を応答する。
【００４２】
前記応答を受信したＢＲ２８は、制御装置６０に対し、応答された経路エントリに、到達先ノード識別子（ｄｓｔ＿ＩＤ）として自装置の２８、到達先ノードアドレス（ｄｓｔ＿Ａｄｄｒｅｓｓ）として自装置のＭＡＣアドレスやＩＰアドレスを追加するよう要求する（Ｓ００６）。この時点で、図６のような経路エントリが経路エントリ管理部６０１に登録される。
【００４３】
その後、制御装置６０は、上記広告メッセージに後続する配信メッセージを、ＢＲ２２からＢＲ２６を介さずに、フロースイッチ５０〜５２経由でＢＲ２０からＢＲ２８に転送する転送経路を計算し（Ｓ００７）、当該転送経路を実現するフローエントリ（ショートカット転送用のフローエントリ）をフロースイッチ５０〜５２に設定する（Ｓ００８）。例えば、図１に示したようなネットワークトポロジが構成されている場合、図５の実線の矢線に示すように、ＢＲ２０からフロースイッチ５０、フロースイッチ５０からフロースイッチ５１、フロースイッチ５１からフロースイッチ５２、フロースイッチ５２からＢＲ２８で配信メッセージを転送する転送経路が計算される。なお、この場合のフローエントリのマッチングルールとして、ＢＲ２０、２８のアドレスやメッセージ識別子（ＭＳＧ＿ＩＤ）を使用することで、各フロースイッチ５０〜５２に対象メッセージを一意に特定させることができる。
【００４４】
より具体的には、ＢＲ２０、２８のアドレスとしては、例えば、ＢＲ２０〜２９およびフロースイッチ５０〜５２によって構成される下位ネットワークがレイヤ２（Ｌ２）ネットワークであれば、ＢＲ２０やＢＲ２８のＭＡＣアドレスが用いられる。また、フロースイッチ５０〜５２によって構成される下位ネットワークがＩＰネットワークであれば、ＢＲ２０、２８のアドレスとして、ＢＲ２０やＢＲ２８のＩＰアドレスを用いることができる。また、ＭＳＧ＿ＩＤは、ＩＰパケットペイロードに含ませたり、ヘッダオプションとして加えたりすることによって識別させることができる。
【００４５】
制御装置６０は、ＢＲ２０に対し、ＭＳＧ＿ＩＤ（＝２８）を持つメッセージのショートカット転送指示を送信する（Ｓ００９）。このショートカット転送指示には、到達先であるＢＲ２８の識別子（＝２８）や、ＢＲ２８のＭＡＣアドレスやＩＰアドレス等が含まれる。
【００４６】
以上の処理の後、出版者ノードＰＵＢ１０から配信メッセージを受信した場合、ＢＲ２０は、フロースイッチ５０に設定されたショートカット転送用のフローエントリのマッチングルールに適合するようメッセージのヘッダ領域等を書き換えてからフロースイッチ５０に転送する。フロースイッチ５０は、受信したメッセージに適合するフローエントリに従って、メッセージを転送する。ここでは、フロースイッチ５０にて受信されたメッセージはフロースイッチ５１に転送される。同様に、ＭＳＧ＿ＩＤ（＝２８）を持つ配信メッセージは、フロースイッチ５１、フロースイッチ５２を経由して、ＢＲ２８へ転送される（Ｓ０１０）。
【００４７】
以上のように、本実施形態によれば、図５に示すように、経路表に従って、最初の広告メッセージを転送した後、以降の配信メッセージを、途中のＢＲを経由することなくフロースイッチ５０〜５２経由でショートカット転送することが可能になる。
【００４８】
［第２の実施形態］
続いて、上記第１の実施形態に変更を加えた第２の実施形態について図面を参照して詳細に説明する。例えば、天候情報や気温情報を観測するセンサーが出版者ノードとして接続され、これらの観測値が１つのＢＲに集められるケースがある。これらのセンサーは、各々配置された場所が異なるが、メッセージの到達先を示すＭＳＧ＿ＩＤは重なっている。本実施形態では、このような場合に、経路エントリを再利用できるようにしたものである。
【００４９】
図７は、本発明の第２の実施形態の詳細構成を表した図である。図２に示した第１の実施形態との相違点は、ＢＲ２０ａ〜２９ａ側の経路エントリ照会部２０２ａ、経路エントリ更新部２０４ａ、および、制御装置側の経路エントリ管理部６０１ａの動作が異なっている点である。
【００５０】
本実施形態では、ある出版者ノード（例えば、センサー）が、ある到達先ノードに対して広告メッセージを送信し、経路表に従った転送により到達先が確定し経路エントリの登録及び更新が済んでいる場合、当該経路エントリを同一の到達先ノードへのメッセージ転送に利用する。
【００５１】
具体的には、本実施形態の経路エントリ照会部２０２ａは、制御装置６０に対し、新規メッセージに対応する経路エントリが登録済みであるか否かを問い合わせる。このとき、制御装置６０から、同一のＭＳＧ＿ＩＤを持つ経路エントリが登録済みである旨の応答を受けている場合、経路エントリ照会部２０２ａは、経路エントリ更新部２０４ａに、当該経路エントリへ自装置が受信したメッセージの配信のための経路エントリの追加登録を要求する。
【００５２】
その後、制御装置６０の経路エントリ管理部６０１ａは、前記追加された経路エントリに従って、経路計算と、フローエントリの生成、設定を行う。これにより、前述した第１の実施形態の経路表に従った広告メッセージの転送を省略することができる。
【００５３】
続いて、本実施形態の動作について説明する。また、以下の説明では、上記第１の実施形態で説明したようにＢＲ２０を送信元としＢＲ２８を到達先とするメッセージに対する経路エントリが作成されており（図６参照）、新たにＢＲ２１がＢＲ２８を到達先とする広告メッセージを受信したものとして説明する。
【００５４】
図８は、本発明の第２の実施形態の動作を表したシーケンス図である。図８を参照すると、まず、ＢＲ２１は、出版者ノードＰＵＢ１０から、メッセージ識別子（ＭＳＧ＿ＩＤ）として到達先のノードの識別子であるＢＲ２８の識別子が設定された広告メッセージを受信すると、制御装置６０に対し、該当する広告メッセージに対応する経路エントリが作成済みであるか否かを問い合わせる（Ｓ１０１）。
【００５５】
ここでは、ＢＲ２８を到達先とするメッセージに対する経路エントリが登録済みであるため、制御装置６０は、ＢＲ２８に対し該当エントリの内容（図６のＭＳＧ＿ＩＤ＝２８、ｓｒｃ＿ＩＤ＝２０等）を応答する。
【００５６】
前記応答を受信したＢＲ２１は、制御装置６０に対し、応答された経路エントリに、第２の送信元ノードのノード識別子（ｓｒｃ＿ＩＤ）として自装置の２１、第２の送信元ノードのアドレス（ｄｓｔ＿Ａｄｄｒｅｓｓ）として自装置のＭＡＣアドレスやＩＰアドレスを追加するよう要求する（Ｓ１０２）。この時点で、図９のように、経路エントリに第２の送信元ノードの情報が追加される。
【００５７】
その後、制御装置６０は、ＢＲ２１からＢＲ２８にメッセージを転送するための経路を計算し（Ｓ１０３）、該経路を実現するためのフローエントリをフロースイッチ５０〜５２に設定する（Ｓ１０４）。なお、このときに、制御装置６０が、フロースイッチ５０〜５２に設定済みのフローエントリを書き換えることにより、フロースイッチ５０〜５２に、ＢＲ２０からＢＲ２８宛てのメッセージに加えて、ＢＲ２１からＢＲ２８宛てのメッセージを転送させるようにしてもよい。この場合、非特許文献３に示されているワイルドカードをマッチングルールに設定することでもよい。
【００５８】
その後は第１の実施形態と同様であり、制御装置６０は、ＢＲ２１に対し、ＢＲ２１が受信したＭＳＧ＿ＩＤ（＝２８）を持つメッセージのショートカット転送指示を送信する（Ｓ１０５）。このショートカット転送指示には、到達先であるＢＲ２８の識別子＝２８、ＢＲ２８のＭＡＣアドレスやＩＰアドレス等が含まれる。
【００５９】
以上の処理の後、出版者ノードＰＵＢ１０から配信メッセージを受信した場合、ＢＲ２１は、ＢＲ２８宛のメッセージについて、フロースイッチ５０に設定されたショートカット転送用のフローエントリのマッチングルールに適合するようメッセージのヘッダ領域等を書き換えてからフロースイッチ５０経由で転送する。
【００６０】
フロースイッチ５０は、受信したメッセージに適合するフローエントリに従って、メッセージを転送する。ここでは、フロースイッチ５０にて受信されたメッセージはフロースイッチ５１に転送される。同様に、ＭＳＧ＿ＩＤ（＝２８）を持つ配信メッセージは、フロースイッチ５１、フロースイッチ５２を経由して、ＢＲ２８へ転送される（Ｓ１０５）。
【００６１】
以上のように、本実施形態によれば、広告メッセージの転送を省略し、既存の経路エントリを用いてショートカット転送を行うことが可能となる。
【００６２】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、図１０に示すように、制御装置を、オープンフローコントローラ６１と、各ＢＲからの経路エントリの照会等に応答する制御装置６０に分離することも可能である。
【００６３】
また、上記した実施形態では説明を省略したが、その他のメッセージ転送ノードを到達先とする場合においても同様の手順で、経路エントリを登録し、対応するフローエントリをフロースイッチに設定することで、転送時のホップ数を低減することが可能である。
【産業上の利用可能性】
【００６４】
本発明は、例えば、分散配置された企業系サーバ間でのメッセージ交換サービスを行うメッセージングシステム等の用途に適用できる。またネットワーク制御情報を配信するメッセージングシステムとしても活用できる。この形態では、複数のネットワークに対して同時並行的にネットワーク制御情報を配信する。このように分散型のシステムは、互いに相互連携することが一般的であり、メッセージ配信遅延が小さいことが望ましい。本発明を適用すれば、少ないホップ数でメッセージ配信が可能となるため、メッセージ配信遅延を最小化することが可能となる。
【符号の説明】
【００６５】
１０  出版者ノード（ＰＵＢ）
２０〜２９  メッセージ転送ノード（ＢＲ）
３０  購読者ノード（ＳＵＢ）
４０  ランデブーポイント（ＲＰ）
５０〜５３  フロースイッチ
６０  制御装置
６１  オープンフローコントローラ
２０１  メッセージ転送部
２０２、２０２ａ  経路エントリ照会部
２０３  経路エントリ登録部
２０４、２０４ａ  経路エントリ更新部
５０１  フローテーブル
５０２  転送処理部
６０１、６０１ａ  経路エントリ管理部
６０２  経路計算部
６０３  転送制御部
【図２】
2013038647.tif 000003
【図３】
2013038647.tif 000004
【図４】
2013038647.tif 000005
【図６】
2013038647.tif 000006
【図７】
2013038647.tif 000007
【図８】
2013038647.tif 000008
【図９】
2013038647.tif 000009
【図１１】
2013038647.tif 000010
【図１】
2013038647.tif 000011
【図５】
2013038647.tif 000012
【図１０】
2013038647.tif 000013