JP2017027499A - 中継システム、中継方法、及びプログラム - Google Patents

中継システム、中継方法、及びプログラム Download PDF

Info

Publication number
JP2017027499A
JP2017027499A JP2015147678A JP2015147678A JP2017027499A JP 2017027499 A JP2017027499 A JP 2017027499A JP 2015147678 A JP2015147678 A JP 2015147678A JP 2015147678 A JP2015147678 A JP 2015147678A JP 2017027499 A JP2017027499 A JP 2017027499A
Authority
JP
Japan
Prior art keywords
distribution
subscription
data
topic
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015147678A
Other languages
English (en)
Other versions
JP6402077B2 (ja
Inventor
直樹 肥後
Naoki Higo
直樹 肥後
欣子 末田
Yoshiko Sueda
欣子 末田
巧 大羽
Takumi Oba
巧 大羽
新 小池
Arata Koike
新 小池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015147678A priority Critical patent/JP6402077B2/ja
Publication of JP2017027499A publication Critical patent/JP2017027499A/ja
Application granted granted Critical
Publication of JP6402077B2 publication Critical patent/JP6402077B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】トピックを割り当てたデータの中継を行う中継システムにおいて、データの配信元を識別して、配信元に応じたデータ配信の制御を行う。
【解決手段】配信装置から配信されたデータを受信し、当該データを購読装置へ送信する中継システムにおいて、前記配信装置から、あるトピックのデータ配信に係る登録要求を受信したことに応じて、当該トピックに対応する第1のコネクションを前記配信装置との間に確立する配信側中継手段と、前記購読装置から、前記トピックのデータ購読に係る登録要求を受信したことに応じて、当該トピックに対応する第2のコネクションを前記購読装置との間に確立する購読側中継手段と、を備え、前記購読側中継手段は、前記配信装置の識別子に基づいて、前記第1のコネクションにより配信される前記トピックのデータを前記第2のコネクションにより前記購読装置に送信するか否かを判断するように構成される。
【選択図】図3

Description

本発明は、M2M(Machine to Machine)/IoT(Internet of Things)等の分野における端末やサーバがデータの受け渡しを行うための技術に関連するものである。
ICN(Information Centric Networking)/CCN(Content Centric Networking)といった概念では、データの名前を指定することで、IP等のネットワークレイヤーを気にせず、端末やサーバがデータを受け渡しができることを目指している。この概念を実現する技術として、配信・購読モデルの通信について近年検討が進められている。配信・購読モデルでは、データを配信するエンティティをパブリッシャ、購読するエンティティをサブスクライバ、その仲介役となるエンティティをブローカと呼び、基礎的にはこれら3つのエンティティから成る(非特許文献1)。
従来の配信・購読モデルについて説明する。受け渡しするデータには、トピックと呼ばれる名前を割り当てる。パブリッシャはブローカに対して自身が送出するデータのトピック名を登録しデータを配信する。サブスクライバはブローカに対して自身が受け取りたいデータのトピック名を登録する。ブローカがサブスクライバの求めるトピックを持つデータを持っている場合には、そのデータをサブスクライバは購読する。
従来の配信・購読モデルのシステム構成例を図1に示す。図1に示すように、当該システムは、パブリッシャに相当する配信装置P1、P2、ブローカに相当するブローカ装置B、及び、サブスクライバに相当する購読装置S1〜S3を有する。図1に示すように、この例では、配信装置P1、P2はそれぞれトピック0のデータをブローカ装置Bに配信し、購読装置S1〜S3はそれぞれブローカ装置Bからトピック0のデータを購読する。
上記のような配信・購読モデルの大きな特徴としては、複数のサブスクライバが居たとしても、パブリッシャはブローカに対してデータを配信するだけで良い。また同一トピックを複数のパブリッシャが配信したとしても、サブスクライバはブローカとコネクションを持つだけで、複数のパブリッシャからのデータを受け取ることができる。すなわち、パブリッシャはブローカとのみデータの受け渡しを行うため、どのサブスクライバに対してデータが渡っているのかを意識せず、同様にサブスクライバはブローカとのみデータの受け渡しを行うため、どのパブリッシャから届いたデータなのかは意識しない。
このような配信・購読モデルの利点としては、一つはデータを配信するパブリッシャの負担がサブスクライバの数が変化しても変わらない点が挙げられる。複数サブスクライバへのコネクションの管理はブローカが担うため、パブリッシャでは複数コネクションに対して同じデータを複製し送出する処理が不要となる。特にストリーム型データを配信する場合には、負荷低減の大きな効果が得られる。他の利点としては、アプリケーション間通信の構築の簡易化が挙げられる。
インターネット、URL: http://mqtt.org/、平成27年7月21日検索
上述したとおり、配信・購読モデルでは、ブローカを介することでデータの受け渡しの処理や管理をデータの発信元及び受取先で担う必要がなくなり、また、アプリケーション間通信の構築の簡易化という利点がある。しかし、一方でデータの発信元が区別できなければ困る場合もある。特に、ストリーム型データにおける配信・購読を行う場合である。
例えば、画像を入力として画像処理を行い、物体の座標情報を出力するような画像認識機能があるとして、この機能がカメラから配信される映像ストリームであるトピック「raw_image」を購読し、物体の座標情報を検出した結果のトピック「position」をロボット等に向けて配信している状況を考える。ここで画像認識機能が起動している物理サーバの負荷が大きくなったため、別の物理サーバ上で起動する画像認識機能へと変更したいとする。
この状況は、図2(a)、(c)に示すように、配信装置P1(物理サーバ)からトピック0(具体的には「position」)のデータを購読装置S(ロボット)に配信する状態から、配信装置P2(別の物理サーバ)からトピック0(「position」)のデータを購読装置S(ロボット)に配信する状態に変更することに相当する。
ここで、新しく起動された画像認識機能も、同様に「raw_image」を購読し、「position」を配信すると、「position」を購読している購読装置S(ロボット)には二重でデータが届くことになる。しかし、ロボット側ではパブリッシャを特定できないので、データを区別して処理することが出来ない。従って、画像認識機能が起動する物理サーバを変更したい場合には、図2(b)に示すように、一度サービス全体を完全に停止させて、新しい物理サーバで画像認識機能が起動できたことを確認してから、サービスを再開させる必要がある。サービスを一度停止させることは、ユーザの利便性を低下させる原因となり得る。一瞬だけ止まるだけであれば良いが、連携している機能の依存関係によっては、起動させる順番等を考慮する必要があり、しばらくの間停止させることが必要となる。更に、再起動によって不具合が生じるケースはソフトウェアの故障において多々見られる現象である。この例では、同じ機能の物理サーバの変更だったが、機能のグレードアップ等を行う場合でも同様な問題が生じる。新しく機能を導入するたびにサービスの停止をしなければならない。
すなわち、現状の配信・購読モデルでは、アプリケーション側で配信元を意識せずトピックを指定するのみであるため、データの区別が出来ず一時的なデータの透過の振り分けが不可能であり、区別するためにはサービスを停止させる必要がある。これは、ブローカがパブリッシャ側の仲介とサブスクライバ側の仲介の役割を同時に持つことに起因した課題であると考えられる。また、この課題は、非特許文献1に記載されている特定の配信・購読モデルに限らず、トピックを割り当てたデータの中継を行う中継システム全般に生じ得る課題である。
本発明は上記の点に鑑みてなされたものであり、トピックを割り当てたデータの中継を行う中継システムにおいて、データの配信元を識別して、配信元に応じたデータ配信の制御を行うことを可能とする技術を提供することを目的とする。
本発明の実施の形態によれば、配信装置から配信されたデータを受信し、当該データを購読装置へ送信する中継システムであって、
前記配信装置から、あるトピックのデータ配信に係る登録要求を受信したことに応じて、当該トピックに対応する第1のコネクションを前記配信装置との間に確立する配信側中継手段と、
前記購読装置から、前記トピックのデータ購読に係る登録要求を受信したことに応じて、当該トピックに対応する第2のコネクションを前記購読装置との間に確立する購読側中継手段と、を備え、
前記購読側中継手段は、前記配信装置の識別子に基づいて、前記第1のコネクションにより配信される前記トピックのデータを前記第2のコネクションにより前記購読装置に送信するか否かを判断する
ことを特徴とする中継システムが提供される。
また、本発明の実施の形態によれば、配信装置から配信されたデータを受信し、当該データを購読装置へ送信する中継システムが備える配信側中継手段と購読側中継手段とが実行する中継方法であって、
前記配信側中継手段が、前記配信装置から、あるトピックのデータ配信に係る登録要求を受信したことに応じて、当該トピックに対応する第1のコネクションを前記配信装置との間に確立するステップと、
前記購読側中継手段が、前記購読装置から、前記トピックのデータ購読に係る登録要求を受信したことに応じて、当該トピックに対応する第2のコネクションを前記購読装置との間に確立するステップと、
前記購読側中継手段が、前記配信装置の識別子に基づいて、前記第1のコネクションにより配信される前記トピックのデータを前記第2のコネクションにより前記購読装置に送信するか否かを判断するステップと
を備えることを特徴とする中継方法が提供される。
本発明の実施の形態によれば、トピックを割り当てたデータの中継を行う中継システムにおいて、データの配信元を識別して、配信元に応じたデータ配信の制御を行うことを可能とする技術が提供される。
従来技術を説明するための図である。 課題を説明するための図である。 本発明の実施の形態におけるシステムの構成例を示す図である。 本発明の実施の形態におけるシステムの他の構成例を示す図である。 配信側ブローカ装置pBの構成図である。 購読側ブローカ装置sBの構成図である。 配信装置Pと配信側ブローカ装置pBとの間の処理シーケンスの例を示す図である。 購読側ブローカ装置sBと購読装置Sとの間の処理シーケンスの例を示す図である。 配信側ブローカ装置pBと購読側ブローカ装置sBとの間の処理シーケンスの例を示す図である。 ブローカ制御装置cBを介したコネクション確立処理の例を説明するための図である。 ポリシーの例を説明するための図である。
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
本実施の形態では、基本的に、配信・購読モデルにおける「パブリッシャ」の機能を実装する装置を「配信装置」と呼び、「ブローカ」の機能を実装する装置を「ブローカ装置」と呼び、「サブスクライバ」の機能を実装する装置を「購読装置」と呼ぶ。また、以下で説明する「pブローカ」の機能を実装する装置を「配信側ブローカ装置」と呼び、「sブローカ」の機能を実装する装置を「購読側ブローカ装置」と呼び、「cブローカ」の機能を実装する装置を「ブローカ制御装置」と呼ぶ。
(システム全体構成、動作概要)
本実施の形態では、従来の課題を解決するために、配信・購読モデルにおけるブローカの役割を分離することとしている。すなわち、パブリッシャ側の役割を持つエンティティをpブローカとし、サブスクライバ側の役割を持つエンティティをsブローカとして、これらのセットでブローカ全体を構成する。これらのp/sブローカは別々の装置として実装してもよいし、一つ装置で実装してもよい。また、ブローカ全体を構成するエンティティの一つとしてcブローカが含まれてもよい。cブローカについても、p/sブローカとは別々の装置として実現してもよいし、p/s/cブローカを1つの装置で実現してもよい。
図3に、本実施の形態におけるシステムの構成例を示す。図3に示すとおり、当該システムには、pブローカに相当する配信側ブローカ装置pB、sブローカに相当する購読側ブローカ装置sBが備えらる。配信側ブローカ装置pBには配信装置Pが接続され、購読側ブローカ装置sBには購読装置Sが接続されている。また、本システムには、cブローカに相当するブローカ制御装置cBが備えられる。各装置は、例えばインターネット等のネットワークに接続され、装置間では、図示のように情報送受信ができるよう通信可能になっている。
図3に示すように、ブローカ制御装置cBが配信側ブローカ装置pBに対して、付与する識別子を設定し、購読側ブローカ装置sBに対して透過ポリシーの設定を行う。配信側ブローカ装置pBは配信元を区別して識別子を付与し、購読側ブローカ装置sBは識別子と透過ポリシーに基づいてデータを選択的に透過させる。具体的な動作の一例は以下のとおりである。
ここでは、配信側ブローカ装置pBには、ブローカ制御装置cBから、配信装置P(パブリッシャ)の識別子としてXXXが設定されているものとする。また、購読側ブローカ装置sBには、ブローカ制御装置cBから透過ポリシーが設定されているものとする。
配信側ブローカ装置pBは、配信装置P(パブリッシャ)を区別して、データを購読側ブローカ装置sBに対して渡す。例えば、図3に示すように、トピック名「トピック0」のデータを配信側ブローカ装置pB(識別子:XXX)が配信する場合、配信側ブローカ装置pBは、「XXX/topic0」等の識別子付きトピック名を付与して(識別子付きトピック名に対応するコネクションを用いて)、「トピック0」を購読している購読装置Sが接続された購読側ブローカ装置sBへとデータを渡す。
購読側ブローカ装置sBは、配信側ブローカ装置pBからデータを受信したコネクションから、どの配信装置Pからのトピックであるかを判断して、透過ポリシーに基づき、購読装置Sに対してデータを渡すか否かを判断し、渡すと判断した場合に当該データを購読装置Sに渡す。
本実施の形態において、配信側ブローカ装置pBから購読側ブローカ装置sBへのデータ送信に関し、「XXX/トピック名0」等の識別子付きトピック名は一つ一つのデータに付与しているわけではなく、配信側ブローカ装置pBと購読側ブローカ装置sBとの間のコネクション(論理チャネル)に「XXX/トピック0」というトピック名が付与されている。すなわち、配信側ブローカ装置pBは、「XXX/トピック0」のデータを購読側ブローカ装置sBへ配信する際には、「XXX/トピック0」に対応付けられたコネクションを用いてデータを送信し、購読側ブローカ装置sBは、データを受信したコネクションに対応する名前「XXX/トピック0」からトピック名と配信元の識別子を識別できる。
なお、購読側ブローカ装置sBは、透過ポリシーにより、購読装置Sに対して「XXX/トピック0」のデータを送信すると決定した場合に、配信側ブローカ装置pBとの間に「XXX/トピック0」のコネクションを開設し、データを送信しない場合に、当該コネクションを開設しないこととしてもよいし、当該コネクションを開設しておき、購読側ブローカ装置sBがデータを配信側ブローカ装置pBから受信する度に、当該データを受信したコネクションの識別子付きトピック名(「XXX/トピック0」)と透過ポリシーとに基づいて、データを購読装置Sに送信するか否かを決定することとしてもよい。
図3には、配信側ブローカ装置pBと購読側ブローカ装置sBが一つずつ示されているが、これは一例である。配信側ブローカ装置pBと購読側ブローカ装置sBのそれぞれの数には特に限定はなく、例えば、図4に示すような構成をとることもできる。
(装置構成)
次に、配信側ブローカ装置pBと購読側ブローカ装置sBの構成例を説明する。なお、以下で説明する構成は、本実施の形態に特に関連する機能部のみを示すものである。また、構成図における機能区分や機能名称は一例であり、本実施の形態で説明する動作を実現できるのであればどのような機能区分/機能名称であってもよい。
図5に、配信側ブローカ装置pBの構成図を示す。図5に示すように、配信側ブローカ装置pBは、登録処理部101、情報格納部102、P側接続処理部103、探索応答部104、sB側接続処理部105を有する。各機能部の概要は以下のとおりである。
登録処理部101は、配信装置Pから配信されるデータのトピック名等を情報格納部102に格納する登録処理を行う。また、登録処理部101は、ブローカ制御装置cBからの設定情報を情報格納部102に格納する機能も含む。情報格納部102は、登録処理部101による登録情報、ブローカ制御装置cBからの設定情報、コネクションに関する情報、予め保持しておくべき情報等を格納する。
P側接続処理部103は、配信装置Pとの間にコネクションを確立するとともに、コネクションを用いたデータの送受信を行う。探索応答部104は、購読側ブローカ装置sBからのトピック名に基づく探索信号を受けて、情報格納部102に該当する識別子付きトピック名があれば当該識別子付きトピック名を探索応答として購読側ブローカ装置sBに返す。sB側接続処理部105は、購読側ブローカ装置sBとの間にコネクションを確立するとともに、コネクションを用いたデータの送受信を行う。sB側接続処理部105は、ブローカ制御装置cBを介して後述するシグナリングを実施する機能も含む。
図6に、購読側ブローカ装置sBの構成図を示す。図6に示すように、購読側ブローカ装置sBは、登録処理部201、情報格納部202、ポリシー設定部203、S側接続処理部204、探索部205、ポリシー判断部206、pB側接続処理部207を有する。各機能部の概要は以下のとおりである。
登録処理部201は、購読装置Sが購読するデータのトピック名を情報格納部202に格納する登録処理を行う。情報格納部202は、登録処理部201による登録情報、ブローカ制御装置cBからのポリシー情報、コネクションに関する情報、予め保持しておくべき情報等を格納する。
ポリシー設定部203は、ブローカ制御装置cBからポリシー情報を取得して情報格納部202に格納する。S側接続処理部204は、購読装置Sとの間にコネクションを確立するとともに、コネクションを用いたデータの送受信を行う。探索部205は、購読装置Sにより登録されたトピック名を有する配信側ブローカ装置pBを探索する。
ポリシー判断部206は、購読装置Sにより登録されたトピック名を有する配信側ブローカ装置pBに接続される配信装置Pの識別子と、ブローカ制御装置cBにより設定されたポリシーとに基づき、購読装置Sへのデータ送信を行うか否かを判断する。pB側接続処理部207は、配信側ブローカ装置pBとの間にコネクションを確立するとともに、コネクションを用いたデータの送受信を行う。pB側接続処理部207は、ブローカ制御装置cBを介して後述するシグナリングを実施する機能も含む。
本実施の形態に係る配信側ブローカ装置pBと購読側ブローカ装置sBはそれぞれ、例えば、コンピュータに、本実施の形態で説明する当該装置の処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、当該装置が有する機能は、当該コンピュータに内蔵されるCPUやメモリなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
なお、既に説明したように、配信側ブローカ装置pBと購読側ブローカ装置sBは1つの装置で実現されてもよい。その場合、配信側ブローカ装置pBと購読側ブローカ装置sBとの間の処理は当該装置内での処理となる。また、このように配信側ブローカ装置pBと購読側ブローカ装置sBが1つの装置で実現される場合でも、当該装置は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。
また、配信側ブローカ装置pBと購読側ブローカ装置sBが複数の装置で実現される場合、また、これらが1つの装置で実現される場合のいずれの場合も、配信側ブローカ装置pBと購読側ブローカ装置sBからなる構成をブローカシステムと称することができる。また、ブローカシステムを、より一般的に、中継システムと称することもできる。
(システムの動作例)
次に、上記の構成を備えるシステムの動作例をシーケンス図を参照しながら説明する。
<配信装置Pと配信側ブローカ装置pBとの間の処理シーケンス>
図7は、配信装置Pと配信側ブローカ装置pBとの間の処理シーケンスの例を示す図である。図7を参照して、配信装置Pと配信側ブローカ装置pBとの間のコネクション確立時の動作例を説明する。なお、配信装置Pと配信側ブローカ装置pBとの間のコネクションの種類に特に限定はないが、例えばTCPコネクションを使用することができる。この点は、後述する購読側ブローカ装置sBと購読装置Sとの間のコネクション、配信側ブローカ装置pBと購読側ブローカ装置sBとの間のコネクションについても同様である。
図7のステップS101において、まず、配信装置Pは、配信側ブローカ装置pBに対して、配信するトピック名を指定した登録要求を送信し、配信側ブローカ装置pBにおける登録処理部101が当該トピック名を情報格納部102に格納(登録)する。
本実施の形態では、配信装置Pに対応する識別子(名前等)が、例えばブローカ制御装置cBから配信側ブローカ装置pBに通知され、当該識別子が、例えば配信装置Pのアドレス等の情報(登録要求に含まれる情報)とともに情報格納部102に格納されているとする。そして、ステップS101では、登録処理部101は、上記トピック名と配信装置Pに対応する識別子(前述した"XXX")とを対応付けて情報格納部102に格納する。
ステップS102において、配信側ブローカ装置pBのP側接続処理部103は、登録要求に対するOK応答として、配信装置Pがコネクションを確立する宛先のポート番号(配信側ブローカ装置pB側のポート番号)等を配信装置Pに送信する。
ステップS103において、配信装置Pは、ステップS102で受信した情報を用いて配信側ブローカ装置pBとの間にコネクションを確立する。なお、コネクションが確立されると、配信側ブローカ装置pBの情報格納部102には、当該コネクションを識別する情報(例:宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号)と、配信装置Pの識別子と、配信装置Pが配信するデータのトピック名とが対応付けて格納される。
コネクションが確立されると、配信装置Pは、当該コネクションを用いて、登録したトピック名のデータの配信を随時行う(ステップS104)。
なお、本実施の形態では、配信装置Pの識別子を導入することで配信装置Pを区別することとしているが、上記のようなコネクションの情報(送信元IPアドレス等)を用いることで配信装置Pを区別することは可能である。ただし、区別することが出来ても、具体的にどの配信装置Pからのコネクションであるかを選別することは難しい。上記のように、張られたコネクションの送信元IPアドレスを用いることは出来るが、途中にNAT等がある場合には送信元IPアドレスから配信装置Pを正確に判断することは困難なので、先述の通り配信装置Pの識別子(名前)を登録することとしている。
<購読側ブローカ装置sBと購読装置Sとの間の処理シーケンス>
図8は、購読側ブローカ装置sBと購読装置Sとの間の処理シーケンスの例を示す図である。図8を参照して、購読側ブローカ装置sBと購読装置Sとの間のコネクション確立時の動作例を説明する。
図8のステップS201において、購読装置Sは、購読側ブローカ装置sBに対して、購読するトピック名を指定した登録要求を送信し、購読側ブローカ装置sBにおける登録処理部201が当該トピック名を情報格納部202に格納(登録)する。
ステップS202において、購読側ブローカ装置sBのポリシー設定部203は、当該トピック名に対するポリシー設定を行う。具体的には、例えば、ポリシー設定部203は、ブローカ制御装置cBに対してトピック名を指定してポリシーを要求し、ブローカ制御装置cBから、当該トピック名に対応するポリシーを取得し、情報格納部202に格納する。
なお、ポリシー設定のタイミングは、購読の登録を行うこのタイミングに限られるわけではなく、事前に行っておくこととしてもよい。また、ポリシーは、トピック名毎に設定することとしてもよいし、全てのトピックに共通のポリシーを設定することとしてもよい。
本実施の形態におけるポリシーは、どの配信装置Pからのデータを購読装置Sへ透過(転送)するかを決めるためのものである。例えば、全ての配信装置Pからのデータの透過をするポリシーや特定の配信装置Pからのデータのみを透過するポリシー等がある。
ステップS203において、購読側ブローカ装置sBのS側接続処理部204は、登録要求に対するOK応答として、購読装置Sがコネクションを確立する宛先のポート番号(購読側ブローカ装置sB側のポート番号)等を購読装置Sに送信する。
ステップS204において、購読装置Sは、ステップS203で受信した情報を用いて購読側ブローカ装置sBとの間にコネクションを確立する。コネクションが確立されると、購読側ブローカ装置sBの情報格納部202には、当該コネクションを識別する情報(例:宛先IPアドレス、宛先ポート番号、送信元IPアドレス、送信元ポート番号)と、購読装置Sが購読するデータのトピック名とが対応付けて格納される。
コネクションが確立された後、後述する配信側ブローカ装置pBとのコネクション確立の後、購読側ブローカ装置sBは、購読装置Sにより登録されたトピック名のデータの配信を随時行う(ステップS205)。
<配信側ブローカ装置pBと購読側ブローカ装置sBとの間の処理シーケンス>
図9は、配信側ブローカ装置pBと購読側ブローカ装置sBとの間の処理シーケンスの例を示す図である。図9を参照して、配信側ブローカ装置pBと購読側ブローカ装置sBとの間のコネクション確立時の動作例を説明する。以下の動作は、配信装置Pと配信側ブローカ装置pBとの間のコネクションが確立され、更に、購読側ブローカ装置sBと購読装置Sとの間のコネクションが確立された後の動作である。
ステップS301において、購読側ブローカ装置sBの探索部205は、購読装置Sによって登録されたトピック名の配信が登録されている配信側ブローカ装置pBを探索する。図9に示す例では、トピック名を含む探索信号をブロードキャストして探索を行う例を示しており、ステップS301ではそのブロードキャストが実行されている。
ステップS301の探索信号を受信した配信側ブローカ装置pBの探索応答部104は、探索信号に含まれるトピック名で情報格納部102を検索し、該当するトピック名があれば、当該トピック名に対応する識別子(配信元の識別子)を含む応答を購読側ブローカ装置sBに返す(ステップS302)。
ステップS303において、購読側ブローカ装置sBのポリシー判断部206は、上記の応答に含まれる識別子と、ポリシーとに基づいて、当該トピック名のデータを購読装置Sへ配信するか否かの判断をする。配信すると判断した場合、ステップS304において、pB側接続処理部207は、配信側ブローカ装置pBとの間にコネクションを確立する。当該トピック名のデータは、図7の処理で確立したコネクションを用いて配信装置Pから配信側ブローカ装置pBに送信され、配信側ブローカ装置pBから、図9のコネクションを用いて購読側ブローカ装置sBに送信され、図8のコネクションを用いて購読側ブローカ装置sBから購読装置Sに送信される。
図9のステップS304のコネクションが確立した時点で、配信側ブローカ装置pBの情報格納部102には、PとpBとの間のコネクションの識別情報、トピック名、配信元(配信装置P)の識別子、及び、pBとsBとの間のコネクションの識別情報が格納されている。また、購読側ブローカ装置sBの情報格納部202には、pBとsBとの間のコネクションの識別情報、トピック名、配信元(配信装置P)の識別子、及びsBとSとの間のコネクションの識別情報が格納されている。
よって、配信側ブローカ装置pBは、P−pB間コネクションで受信したデータを、pB−sB間コネクションに渡して、購読側ブローカ装置sBに送信できる。また、購読側ブローカ装置sBは、pB−sB間コネクションで受信したデータを、sB−S間コネクションで購読装置Sに送信できる。
図9のステップS303で、ポリシー判断の結果、当該トピック名のデータを購読装置Sへ配信しないと判断した場合、ステップS304でのコネクションを確立しない。
もしくは、図9において、ステップS303でのポリシー判断を行わずにステップS304のコネクションを確立し、購読側ブローカ装置sBが当該コネクションによりデータを受信する度に、当該コネクションに対応する識別子(データの配信元の識別子)とポリシーとに基づいてポリシー判断を行って、購読装置Sへデータを送信するか否かを判断することとしてもよい。
なお、上記の例ではステップS301でブロードキャストで探索を行っているが、これは一例であり、探索方法はこの方法に限られるわけではない。例えば、トピック名と、識別子と、配信側ブローカ装置pBの識別情報(IPアドレス、ポート番号等)とを対応付けて格納するネームサーバをネットワーク上に備え、購読側ブローカ装置sBの探索部205が、トピック名を指定した問い合わせを当該ネットワークを介して当該ネームサーバに送信し、ネームサーバから、当該トピック名の配信登録がなされている配信側ブローカ装置pBの識別情報、及び識別子を含む応答を受信して、ポリシー判断、及びコネクション確立を行うこととしてもよい。上記のようなネームサーバへの情報登録は、例えば、図7に示すステップS103でコネクションが確立されたときに、配信側ブローカ装置pBから行うことができる。
また、ブローカ制御装置cBが、配信側ブローカ装置pBと購読側ブローカ装置sBとの間のコネクションを確立するためのシグナリング機能を備えることとしてもよい。この場合の動作例を図10を参照して説明する。
図10の前提として、ブローカ制御装置cBが、トピック名及び識別子の組と、当該組を持つ配信側ブローカ装置pBの識別情報(IPアドレス、名前等)とを対応付けて予め格納(登録)しておく。この登録は、例えば、図7に示すステップS103でコネクションが確立されたときに、配信側ブローカ装置pBから行うことができる。
購読側ブローカ装置sBは、購読装置Sにより登録されたトピック名を指定した接続相手発見要求をブローカ制御装置cBに送信する(ステップS401)。ブローカ制御装置cBは、当該トピック名に対応する識別子(トピック名の配信元)と、配信側ブローカ装置pBの識別情報(ここでは名前とする)を含む応答を購読側ブローカ装置sBに送信する(ステップS402)。
購読側ブローカ装置sBは、識別子とポリシーに基づいてポリシー判断を行って(ステップS403)、配信側ブローカ装置pBとの間にコネクションを確立すると判断した場合に、接続要求をブローカ制御装置cBに送信する(ステップS404)。当該接続要求には、当該コネクション用の自身のIPアドレスとポート番号、配信側ブローカ装置pBの名前、トピック名、及び識別子が含まれる。
ブローカ制御装置cBは、上記接続要求を配信側ブローカ装置pBに転送する(ステップS405)。配信側ブローカ装置pBは、接続要求に含まれるトピック名と識別子に対応するコネクションのための自身のIPアドレスとポート番号を含む接続応答をブローカ制御装置cBに送信し(ステップS406)、当該接続応答は購読側ブローカ装置sBに転送される(ステップS407)。これにより、配信側ブローカ装置pBと購読側ブローカ装置sBはそれぞれ、トピック名と識別子に対応するコネクションのための相手のIPアドレスとポート番号を知ることができ、当該コネクションを確立できる(ステップS408)。
なお、これまでの例と同様に、コネクション確立後に、データ受信時にポリシー判断を行ってもよい。また、ブローカ制御装置cBは、配信側ブローカ装置pBと購読側ブローカ装置sBとの間のコネクションの確立後、配信側ブローカ装置pBと購読側ブローカ装置sBに指示することで、トピック名と識別子を変えることなくコネクションを変更することも可能である。
図10に示すシグナリングは一例であり、シグナリング手順はこれに限られるわけではない。また、このような機能は、SIP、WebRTC等の技術により実現することが可能である。
また、上記のような機能を有するブローカ制御装置cBは、例えば、コンピュータに、本実施の形態で説明する当該装置の処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、当該装置が有する機能は、当該コンピュータに内蔵されるCPUやメモリなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
また、配信側ブローカ装置pB、購読側ブローカ装置sB、及びブローカ制御装置cBを1つの装置で実現してもよく、その場合でも、当該装置は、コンピュータに、当該装置の処理内容を記述したプログラムを実行させることにより実現可能である。
<ポリシーの例>
図11は、ポリシーの例を説明するための図である。図11の例は、「トピック0」のデータ配信に関するものであり、図11(a)に示すように、配信側ブローカ装置pB1には、配信装置P1(識別子:XXX)からデータ配信の登録がなされ、配信側ブローカ装置pB2には、配信装置P2(識別子:YYY)からデータ配信の登録がなされている。また、購読側ブローカ装置sBには、購読装置Sからトピック0のデータ購読の登録がなされている。
図11(b)は、トピック0に対して購読側ブローカ装置sBに設定されるポリシーの例を示す。ポリシー1が設定される場合、購読側ブローカ装置sBは、各コネクションを確立し、配信側ブローカ装置pB1(識別子:XXX)から受信するトピック0のデータを破棄し、配信側ブローカ装置pB2(識別子:YYY)から受信するトピック0のデータを透過させる。もしくは、購読側ブローカ装置sBは、トピック0に関して、配信側ブローカ装置pB1(識別子:XXX)との間にコネクションは確立させず、配信側ブローカ装置pB2(識別子:YYY)との間にコネクションを確立し、データを透過させる。
また、ポリシー2が設定される場合、購読側ブローカ装置sBは、各コネクションを確立し、配信側ブローカ装置pB1(識別子:XXX)から受信するトピック0のデータ、配信側ブローカ装置pB2(識別子:YYY)から受信するトピック0のデータのいずれも透過させる。
ポリシー3が設定される場合、購読側ブローカ装置sBは、各コネクションを確立し、配信側ブローカ装置pB1(識別子:XXX)から受信するトピック0のデータを透過させるが、配信側ブローカ装置pB2(識別子:YYY)からデータを受信次第、当該データを透過させ、配信側ブローカ装置pB1(識別子:XXX)から受信するデータを破棄する。あるいは、ポリシー3が設定される場合、購読側ブローカ装置sBは、配信側ブローカ装置pB1(識別子:XXX)とのコネクションを最初に確立してデータを透過させるが、配信側ブローカ装置pB2(識別子:YYY)とのコネクションが確立し次第、配信側ブローカ装置pB1(識別子:XXX)とのコネクションを切断する。なお、図2を参照して説明した状況は、ポリシー3を設定することで対処できる。
(実施の形態のまとめ)
以上、説明したように、本実施の形態により、配信装置から配信されたデータを受信し、当該データを購読装置へ送信する中継システムであって、前記配信装置から、あるトピックのデータ配信に係る登録要求を受信したことに応じて、当該トピックに対応する第1のコネクションを前記配信装置との間に確立する配信側中継手段と、前記購読装置から、前記トピックのデータ購読に係る登録要求を受信したことに応じて、当該トピックに対応する第2のコネクションを前記購読装置との間に確立する購読側中継手段と、を備え、前記購読側中継手段は、前記配信装置の識別子に基づいて、前記第1のコネクションにより配信される前記トピックのデータを前記第2のコネクションにより前記購読装置に送信するか否かを判断する中継システムが提供される。
前記購読側中継手段は、例えば、前記トピックのデータ配信に係る登録がなされている前記配信側中継手段を探索し、当該探索により、前記配信側中継手段又はネームサーバから当該トピックのデータの配信元である前記配信装置の識別子を取得する。
前記購読側中継手段は、識別子に応じて前記トピックのデータを前記購読装置に送信するか否かを判断するためのポリシーを保持し、当該ポリシーと前記配信装置の識別子とに基づいて、前記トピックのデータを前記購読装置に送信するか否かを判断することとしてもよい。
前記購読側中継手段は、前記トピックのデータを前記第2のコネクションにより前記購読装置に送信するか否かの判断結果に応じて、前記配信側中継手段との間に第3のコネクションを確立するか否かを判断することとしてもよい。
また、前記購読側中継手段は、前記配信側中継手段との間に第3のコネクションを確立し、前記第1のコネクションにより配信される前記トピックのデータを当該第3のコネクションにより受信し、前記配信装置の識別子に基づいて、当該受信したデータを前記第2のコネクションにより前記購読装置に送信するか否かを判断することとしてもよい。
また、前記中継システムは、前記配信側中継手段と前記購読側中継手段との間の第3のコネクションを確立するために必要な情報を前記配信側中継手段と前記購読側中継手段に送信する中継制御手段を備えてもよい。
本実施の形態により、トピックを割り当てたデータの中継を行う中継システムにおいて、データの配信元を識別して、配信元に応じたデータ配信の制御を行うことができる。これにより、アプリケーションの構築の仕方やパラメタを変更せずに、トピックの購読を柔軟に変更できるようになる。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
P 配信装置
pB 配信側ブローカ装置
sB 購読側ブローカ装置
cB ブローカ制御装置
S 購読装置
101 登録処理部
102 情報格納部
103 P側接続処理部
104 探索応答部
105 sB側接続処理部
201 登録処理部
202 情報格納部
203 ポリシー設定部
204 S側接続処理部
205 探索部
206 ポリシー判断部
207 pB側接続処理部

Claims (8)

  1. 配信装置から配信されたデータを受信し、当該データを購読装置へ送信する中継システムであって、
    前記配信装置から、あるトピックのデータ配信に係る登録要求を受信したことに応じて、当該トピックに対応する第1のコネクションを前記配信装置との間に確立する配信側中継手段と、
    前記購読装置から、前記トピックのデータ購読に係る登録要求を受信したことに応じて、当該トピックに対応する第2のコネクションを前記購読装置との間に確立する購読側中継手段と、を備え、
    前記購読側中継手段は、前記配信装置の識別子に基づいて、前記第1のコネクションにより配信される前記トピックのデータを前記第2のコネクションにより前記購読装置に送信するか否かを判断する
    ことを特徴とする中継システム。
  2. 前記購読側中継手段は、前記トピックのデータ配信に係る登録がなされている前記配信側中継手段を探索し、当該探索により、前記配信側中継手段又はネームサーバから当該トピックのデータの配信元である前記配信装置の識別子を取得する
    ことを特徴とする請求項1に記載の中継システム。
  3. 前記購読側中継手段は、識別子に応じて前記トピックのデータを前記購読装置に送信するか否かを判断するためのポリシーを保持し、当該ポリシーと前記配信装置の識別子とに基づいて、前記トピックのデータを前記購読装置に送信するか否かを判断する
    ことを特徴とする請求項1又は2に記載の中継システム。
  4. 前記購読側中継手段は、前記トピックのデータを前記第2のコネクションにより前記購読装置に送信するか否かの判断結果に応じて、前記配信側中継手段との間に第3のコネクションを確立するか否かを判断する
    ことを特徴とする請求項1ないし3のうちいずれか1項に記載の中継システム。
  5. 前記購読側中継手段は、前記配信側中継手段との間に第3のコネクションを確立し、前記第1のコネクションにより配信される前記トピックのデータを当該第3のコネクションにより受信し、前記配信装置の識別子に基づいて、当該受信したデータを前記第2のコネクションにより前記購読装置に送信するか否かを判断する
    ことを特徴とする請求項1ないし3のうちいずれか1項に記載の中継システム。
  6. 前記配信側中継手段と前記購読側中継手段との間の第3のコネクションを確立するために必要な情報を前記配信側中継手段と前記購読側中継手段に送信する中継制御手段
    を備えることを特徴とする請求項1ないし5のうちいずれか1項に記載の中継システム。
  7. 配信装置から配信されたデータを受信し、当該データを購読装置へ送信する中継システムが備える配信側中継手段と購読側中継手段とが実行する中継方法であって、
    前記配信側中継手段が、前記配信装置から、あるトピックのデータ配信に係る登録要求を受信したことに応じて、当該トピックに対応する第1のコネクションを前記配信装置との間に確立するステップと、
    前記購読側中継手段が、前記購読装置から、前記トピックのデータ購読に係る登録要求を受信したことに応じて、当該トピックに対応する第2のコネクションを前記購読装置との間に確立するステップと、
    前記購読側中継手段が、前記配信装置の識別子に基づいて、前記第1のコネクションにより配信される前記トピックのデータを前記第2のコネクションにより前記購読装置に送信するか否かを判断するステップと
    を備えることを特徴とする中継方法。
  8. コンピュータを、請求項1ないし6のうちいずれか1項に記載の中継システムにおける各手段として機能させるためのプログラム。
JP2015147678A 2015-07-27 2015-07-27 中継システム、中継方法、及びプログラム Active JP6402077B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015147678A JP6402077B2 (ja) 2015-07-27 2015-07-27 中継システム、中継方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015147678A JP6402077B2 (ja) 2015-07-27 2015-07-27 中継システム、中継方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2017027499A true JP2017027499A (ja) 2017-02-02
JP6402077B2 JP6402077B2 (ja) 2018-10-10

Family

ID=57950509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015147678A Active JP6402077B2 (ja) 2015-07-27 2015-07-27 中継システム、中継方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6402077B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021510891A (ja) * 2018-01-09 2021-04-30 アーカイブ オート インクArchive Auto, Inc. 車両データの取得およびアクセスシステム、および方法
JPWO2021177377A1 (ja) * 2020-03-06 2021-09-10
CN114270325A (zh) * 2019-08-30 2022-04-01 三菱电机株式会社 数据处理系统、数据处理装置、数据处理方法及程序

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023085014A (ja) * 2021-12-08 2023-06-20 キヤノン株式会社 通信システム、通信装置、およびそれらの制御方法、プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250060A1 (en) * 2003-04-21 2004-12-09 International Business Machines Corporation Distributed method, system and computer program product for establishing security in a publish/subscribe data processing broker network
US20050138019A1 (en) * 2003-12-19 2005-06-23 Solace Systems, Inc. Meta-tagging in content routed networks
US20070067780A1 (en) * 2005-08-24 2007-03-22 Samsung Electronics Co., Ltd. Method and system for asynchronous eventing over the internet

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250060A1 (en) * 2003-04-21 2004-12-09 International Business Machines Corporation Distributed method, system and computer program product for establishing security in a publish/subscribe data processing broker network
US20050138019A1 (en) * 2003-12-19 2005-06-23 Solace Systems, Inc. Meta-tagging in content routed networks
US20070067780A1 (en) * 2005-08-24 2007-03-22 Samsung Electronics Co., Ltd. Method and system for asynchronous eventing over the internet

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021510891A (ja) * 2018-01-09 2021-04-30 アーカイブ オート インクArchive Auto, Inc. 車両データの取得およびアクセスシステム、および方法
JP7413275B2 (ja) 2018-01-09 2024-01-15 アーカイブ オート インク 車両データの取得およびアクセスシステム、および方法
CN114270325A (zh) * 2019-08-30 2022-04-01 三菱电机株式会社 数据处理系统、数据处理装置、数据处理方法及程序
JPWO2021177377A1 (ja) * 2020-03-06 2021-09-10
WO2021177377A1 (ja) * 2020-03-06 2021-09-10 三菱電機株式会社 設備サーバ、機器サーバ、通信システム、およびデータ構造
JP2022095724A (ja) * 2020-03-06 2022-06-28 三菱電機株式会社 設備サーバ、機器サーバ、通信システム、およびデータ構造
JP2022095723A (ja) * 2020-03-06 2022-06-28 三菱電機株式会社 設備サーバ、機器サーバ、通信システム、およびデータ構造
JP7168112B2 (ja) 2020-03-06 2022-11-09 三菱電機株式会社 設備サーバ、機器サーバ、および通信システム
JP7168103B2 (ja) 2020-03-06 2022-11-09 三菱電機株式会社 設備サーバ、機器サーバ、および通信システム
JP7168111B2 (ja) 2020-03-06 2022-11-09 三菱電機株式会社 設備サーバ、機器サーバ、および通信システム

Also Published As

Publication number Publication date
JP6402077B2 (ja) 2018-10-10

Similar Documents

Publication Publication Date Title
KR102046700B1 (ko) 메시지 버스 서비스 디렉토리
US8825867B2 (en) Two level packet distribution with stateless first level packet distribution to a group of servers and stateful second level packet distribution to a server within the group
US10367852B2 (en) Multiplexed demand signaled distributed messaging
US9537786B2 (en) Method, device, and system for information processing based on distributed buses
US20120290643A1 (en) Client-server system
US10637794B2 (en) Resource subscription method, resource subscription apparatus, and resource subscription system
JP6402077B2 (ja) 中継システム、中継方法、及びプログラム
CN107528891B (zh) 一种基于WebSocket的自动集群方法及其系统
US8868658B2 (en) Client assisted multicasting for audio and video streams
US20150127837A1 (en) Relay apparatus and data transfer method
CN105556929A (zh) 在云计算系统中运行应用的网络元件和方法
US10075354B2 (en) Identification of servers by common wide area network addresses
CN108833591A (zh) P2p网络中数据传输的方法、电子设备、装置、网络架构
US20190028414A1 (en) System And Method For Providing a Communications Layer to Enable Full Participation in a Distributed Computing Environment That Uses Multiple Message Types
KR20120071576A (ko) 분산 해쉬 테이블 기반의 rtps 디스커버리 방법, 장치 및 시스템
CN106970843B (zh) 远程调用方法和装置
CN110995829B (zh) 实例调用方法、装置及计算机存储介质
JP6540063B2 (ja) 通信情報制御装置、中継システム、通信情報制御方法、および、通信情報制御プログラム
CN105357329A (zh) 跨idc网络环境下业务数据的传输方法、装置及系统
US7933291B2 (en) Protocol neutral channel-based application communication
KR101857020B1 (ko) 서버에서 제공되는 서비스를 관리하기 위한 단말기의 장치 및 방법
CN114866854B (zh) 视频接入方式动态分配方法、系统、电子设备和存储介质
US20150256637A1 (en) Terminal, message distribution system, message distribution method, and computer-readable medium
CN110474781B (zh) 一种组播数据转发的方法及装置
JP2010146246A (ja) マルチエージェントシステム用フレームワークコンピュータプログラム、ネットワークシステム、及びエージェント間通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180910

R150 Certificate of patent or registration of utility model

Ref document number: 6402077

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150