JP2020187466A - Information processor and delivery program and decentralization processing system - Google Patents
Information processor and delivery program and decentralization processing system Download PDFInfo
- Publication number
- JP2020187466A JP2020187466A JP2019090495A JP2019090495A JP2020187466A JP 2020187466 A JP2020187466 A JP 2020187466A JP 2019090495 A JP2019090495 A JP 2019090495A JP 2019090495 A JP2019090495 A JP 2019090495A JP 2020187466 A JP2020187466 A JP 2020187466A
- Authority
- JP
- Japan
- Prior art keywords
- proxy
- base
- broker
- subscription
- topic
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
本発明は、情報処理装置、配送プログラムおよび分散処理システムに関する。 The present invention relates to information processing devices, delivery programs and distributed processing systems.
パブリッシュ・サブスクライブモデルのデータ収集方法が知られている。このデータ収集方法では、サブスクライバが、ブローカを介してパブリッシャからのデータを取得する。パブリッシャは、データを提供する側であり、サブスクライバを意識することなく、ブローカにデータを送る。サブスクライバは、データを利用する側であり、パブリッシャを意識することなく、ブローカにデータを要求する。 Data collection methods for publish-subscribe models are known. In this data collection method, the subscriber retrieves data from the publisher through the broker. The publisher is the provider of the data and sends the data to the broker without being aware of the subscriber. The subscriber is the user of the data and requests the data from the broker without being aware of the publisher.
また、IoT(Internet of Things)の進展にともなって、エンドデバイスが生み出すデータ量が増加し、全てのデータの処理やデバイスの制御をクラウドで行うことが難しくなってきている。このため、エッジコンピューティングによる分散処理環境に注目が集まっている。エッジコンピューティングは、コンピュータネットワーク上で、利用者に近い場所に複数のエッジ装置を配置して、負荷の分散と通信の低遅延化を図る技術である。 In addition, with the progress of IoT (Internet of Things), the amount of data generated by end devices is increasing, and it is becoming difficult to process all data and control devices in the cloud. For this reason, attention is focused on the distributed processing environment by edge computing. Edge computing is a technology for arranging a plurality of edge devices close to a user on a computer network to distribute the load and reduce the communication delay.
これに関し、パブリッシュ・サブスクライブモデルにおける負荷分散に関連する技術が知られている。(例えば、特許文献1および特許文献2)
In this regard, techniques related to load distribution in publish-subscribe models are known. (For example,
しかしながら、エッジコンピューティングによる分散処理システムにおいて、パブリッシュ・サブスクライブモデルのデータ収集方法を用いる場合に、拠点間でサブスクライブの無駄な通信が発生することがある。 However, in a distributed processing system by edge computing, when the data collection method of the publish-subscribe model is used, useless communication of subscribe may occur between bases.
1つの側面では、本発明は、拠点間でのサブスクライブの通信量を削減することを目的とする。 In one aspect, the present invention aims to reduce the amount of subscription traffic between sites.
本発明の一つの態様の情報処理装置は、外部拠点に配備されているプロキシからサブスクライブを受信した場合、自拠点内に配備されているブローカと、ブローカで受けているパブリッシュのトピックとを対応づけるブローカ管理情報において、サブスクライブで配送が要求されるトピックに対応づけられているブローカに、サブスクライブを転送する転送部、を含む。 When the information processing device of one aspect of the present invention receives a subscription from a proxy deployed at an external base, it corresponds to the broker deployed in the own base and the topic of publishing received by the broker. In the broker management information to be attached, the transfer unit that transfers the subscription to the broker associated with the topic for which delivery is required by the subscription is included.
拠点間でのサブスクライブの通信量を削減することができる。 It is possible to reduce the amount of subscription communication between bases.
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。 Hereinafter, some embodiments of the present invention will be described in detail with reference to the drawings. The same reference numerals are given to the corresponding elements in the plurality of drawings.
上述のように、パブリッシュ・サブスクライブモデルのデータ収集方法が知られている。以下、図1および図2を参照して、例示的なパブリッシュ・サブスクライブモデルのデータ収集を説明する。 As mentioned above, data collection methods for publish-subscribe models are known. Data collection of an exemplary publish-subscribe model will be described below with reference to FIGS. 1 and 2.
(パブリッシュ・サブスクライブモデル)
図1は、例示的なパブリッシュ・サブスクライブモデルを示す図である。パブリッシュ・サブスクライブモデルのデータ収集方法では、パブリッシャ101がパブリッシュしたデータは、ブローカ102を介してサブスクライバ103に提供される。
(Publish / subscribe model)
FIG. 1 is a diagram showing an exemplary publish-subscribe model. In the publish-subscribe model data collection method, the data published by the
パブリッシャ101は、データを提供するものであるが、そのデータに関心のあるサブスクライバ103(例えば、アプリケーション)に関する情報は有していなくてもよく、ブローカ102のトピックを送信先としてデータを送信する。パブリッシャ101は、例えば、工場などに設置される生産機器、組立機器、センサ、カメラなどの機器である。パブリッシャ101は、これらの機器で収集されたデータをパブリケーションと呼ばれるメッセージ形式で生成し、これらのメッセージのトピックを定義して、ブローカ102に送信する。
The
また、サブスクライバ103は、データを要求するものである。サブスクライバ103は、データの収集を行うパブリッシャ101に関する情報は有していなくてもよく、ブローカ102にトピックの情報の配信を申し込んで、配信を申し込んだトピックに登録されるメッセージの配信を受ける。サブスクライバ103は、例えば、パブリッシャ101で取集されたデータを用いて実行される処理(アプリケーション)である。
In addition, the
続いて、ブローカ102の動作例について説明する。ブローカ102は、パブリッシャ101とサブスクライバ103との間でのデータのやり取りを仲介する。
Subsequently, an operation example of the
図2は、ブローカ102の動作例を示す説明図である。図2において、各サブスクライバ103(#1〜#4)は、ブローカ102に対して、トピックのデータを要求する登録を行う。また、各パブリッシャ101(#1〜#3)は、トピックとデータとを含むメッセージ20をブローカ102宛に送信する。
FIG. 2 is an explanatory diagram showing an operation example of the
トピックは、データの特徴を表す情報であり、例えば、データのタイトル、種類、形式などを示す情報であってよい。 The topic is information that represents the characteristics of the data, and may be, for example, information that indicates the title, type, format, and the like of the data.
ブローカ102は、どのサブスクライバ103が、どのトピックのデータの配信を申し込んだかを管理している。図2の例では、ブローカ102は、トピックとサブスクライバIDとを対応付けて記憶する配信管理情報200を用いて、サブスクライバ103とトピックとの対応関係を管理する。サブスクライバIDは、サブスクライバ103を一意に識別する識別子である。例えば、ブローカ102は、サブスクライバ103からトピックのデータの配信の申し込みを受けると、そのサブスクライバ103のサブスクライバIDを、配信の申し込みのあったトピックと対応づけて配信管理情報200に登録する。
The
そして、ブローカ102は、例えば、パブリッシャ:#1からのトピック1とデータとを含むメッセージ20を受け付けると、トピック1のメッセージ・キューにメッセージ20を入れる。そして、ブローカ102は、トピック1のメッセージ・キューに入れたメッセージ20を先に入れたものから順に、配信管理情報200を参照して、トピック1のデータを要求したサブスクライバ#1,#2宛に送る。
Then, when the
なお、以下の説明では、サブスクライバ103が、あるトピックのデータを要求する登録を行うこと、あるいは、あるトピックのデータを要求するメッセージ自体を「サブスクライブ」と呼ぶことがある。また、パブリッシャ101が、トピックとデータとを含むメッセージを送信すること、あるいは、トピックとデータとを含むメッセージ自体を「パブリッシュ」と呼ぶことがある。
In the following description, the
このようなパブリッシュ・サブスクライブモデルのデータ収集方法は、例えば、データをどのように用いるかは決まっていないものの、次々とデータを収集していくようなシステムなどに利用されている。そして、例えば、図3に示すような、エッジコンピューティングによる分散処理システム300において、パブリッシュ・サブスクライブモデルのデータ収集方法を用いることがある。
Such a publish-subscribe model data collection method is used, for example, in a system that collects data one after another, although it is not decided how to use the data. Then, for example, in the distributed
図3は、例示的な分散処理システム300のシステム構成を示す説明図である。図3において、分散処理システム300は、拠点B0〜Bn(n:1以上の自然数)を含む。拠点B0〜Bnは、一例ではネットワークごとに区分されていてよい。例えば、拠点は、インターネット、キャリア網などの広域網とファイアウォールおよびゲートウェイ装置GWを介して接続しているローカル網が設置される場所であってよく、拠点間の通信は外部の広域網を介して行われてよい。例えば、分散処理システム300において、拠点B0〜Bnの拠点間は、ネットワーク310を介して相互に通信可能に接続される。ネットワーク310は、例えば、広域通信網(WAN:Wide Area Network)、インターネットである。
FIG. 3 is an explanatory diagram showing a system configuration of an exemplary distributed
拠点B0は、サーバ301を含む。サーバ301は、例えば、クラウドコンピューティングのサーバコンピュータである。以下の説明では、拠点B0を「クラウド」と表記する場合がある。
The base B0 includes the
また、拠点B0を除く拠点B1〜Bnのうちの任意の拠点を「拠点Bi」と表記する場合がある(i=1,2,…,n)。拠点Biは、エッジ装置EGと、ゲートウェイ装置GWとを含む。拠点Biにおいて、エッジ装置EGと、ゲートウェイ装置GWとは、ネットワーク320を介して相互に通信可能に接続される。ネットワーク320は、例えば、構内通信網(LAN:Local Area Network)である。
Further, any base among the bases B1 to Bn other than the base B0 may be described as "base Bi" (i = 1, 2, ..., N). The base Bi includes an edge device EG and a gateway device GW. At the base Bi, the edge device EG and the gateway device GW are connected to each other so as to be able to communicate with each other via the
ゲートウェイ装置GWは、近距離無線通信または有線通信により、デバイスdvから送出されるデータを受信する情報処理装置である。近距離無線通信としては、無線LAN、Bluetooth(登録商標)などを利用した通信が挙げられる。また、ゲートウェイ装置GWは、デバイスdvから受信したデータを、他のコンピュータ(例えば、エッジ装置EG、サーバ301)に中継する機能を有する。ゲートウェイ装置GWは、例えば、無線LANやBluetooth(登録商標)などのアクセスポイントであってよく、また、サーバやパーソナルコンピュータ(PC)であってもよい。また、デバイスdvは、例えば、工場などに設置される生産機器、組立機器、センサ、カメラなどの機器である。 The gateway device GW is an information processing device that receives data transmitted from the device dv by short-range wireless communication or wired communication. Examples of short-range wireless communication include communication using a wireless LAN, Bluetooth (registered trademark), and the like. Further, the gateway device GW has a function of relaying the data received from the device dv to another computer (for example, edge device EG, server 301). The gateway device GW may be, for example, an access point such as a wireless LAN or Bluetooth (registered trademark), or may be a server or a personal computer (PC). Further, the device dv is, for example, a device such as a production device, an assembly device, a sensor, or a camera installed in a factory or the like.
エッジ装置EGは、各種処理を行う情報処理装置である。エッジ装置EGは、エッジコンピューティングにおけるエッジサーバであり、サーバ301(クラウド)に比べて、デバイスdvやユーザに近い位置に配置される。エッジ装置EGは、例えば、サーバ、PC、アクセスポイントなどである。 The edge device EG is an information processing device that performs various processes. The edge device EG is an edge server in edge computing, and is arranged at a position closer to the device dv and the user than the server 301 (cloud). The edge device EG is, for example, a server, a PC, an access point, or the like.
なお、図3の例では、拠点Bi内のエッジ装置EGおよびゲートウェイ装置GWを、それぞれ1台だけ示しているが、実施形態はこれに限定されるものではない。例えば、拠点Biは、2台以上のエッジ装置EGおよびゲートウェイ装置GWを含んでいてもよい。また、サーバ301は、複数のコンピュータにより実装されてもよい。
In the example of FIG. 3, only one edge device EG and one gateway device GW in the base Bi are shown, but the embodiment is not limited to this. For example, the base Bi may include two or more edge device EGs and a gateway device GW. Further, the
そして、例えば、以上のような分散処理システム300において、デバイスdvは、パブリッシャ101として動作してよい。また、例えば、サーバ301、エッジ装置EG、およびゲートウェイ装置GWには、サブスクライバ103として動作する処理(例えば、アプリケーション)が配備されていてよい。また更に、サーバ301、エッジ装置EG、およびゲートウェイ装置GWには、ブローカ102として動作するアプリケーションが配備されていてもよい。
Then, for example, in the distributed
ここで、例えば、以上のような分散処理システム300において、パブリッシュ・サブスクライブモデルのデータ収集方法を用いる場合に、クラウド上だけでなく、拠点側にもブローカ102を配置することが望ましいことがある。
Here, for example, when the data collection method of the publish / subscribe model is used in the distributed
例えば、ある拠点Biに配置されているパブリッシャ101(例えば、デバイスdv)がパブリッシュするデータを利用するサブスクライバ103(例えば、処理(アプリケーション))を、クラウド上からその拠点Biに移動したとする。この場合にも、ブローカ102がクラウドにあると、データを一旦クラウドに送ることになり、拠点側にサブスクライバ103を移動した効果が得られなくなる恐れがある。そのため、クラウドからサブスクライバ103を移動した拠点側にもブローカ102を配置することが望ましい。
For example, suppose that a subscriber 103 (for example, a process (application)) that uses data published by a publisher 101 (for example, device dv) located in a certain base Bi is moved from the cloud to the base Bi. In this case as well, if the
一方で、パブリッシャ101となる各拠点内のデバイス(例えば、デバイスdv)は、メッセージ(パブリッシュ)の宛先を変更することが難しいことがある。例えば、パブリッシャ101となる各拠点内のデバイスdvは、分散処理システム300のサーバ301からの遠隔制御を受け付けないことがある。この場合、拠点側にブローカ102を移動した際に、デバイスdvのメッセージ(パブリッシュ)の宛先を、クラウドのブローカ102から拠点側のブローカ102に変更することが難しいことがある。
On the other hand, it may be difficult for the device (for example, device dv) in each base that becomes the
このため、例えば、クラウドにメッセージの配送先を管理する拠点管理部401を配備し、また、拠点にプロキシ402を配備して、プロキシ402でメッセージの配送先を制御することが考えられる。
Therefore, for example, it is conceivable to deploy a
図4は、拠点管理部401およびプロキシ402を配備した例示的な分散処理システム300を示す図である。なお、プロキシ402は、一例では、サーバ301、エッジ装置EG、およびゲートウェイ装置GWにおいて、アプリケーションとして配備されてよい。
FIG. 4 is a diagram showing an exemplary distributed
図4の例では、拠点B0(クラウド)上のサーバ301には、拠点管理部401、およびプロキシ402が配備されている。また、サーバ301には、ブローカ102と、サブスクライバ103としてトピックBのデータを用いて処理を実行する処理BおよびトピックCのデータを用いて処理を実行する処理Cとが配備されている。
In the example of FIG. 4, the
また、例えば、図4では、拠点B1には、パブリッシャ101としてセンサAおよびセンサBと、ブローカ102と、サブスクライバ103としてトピックAのデータを用いて処理を実行する処理Aと、プロキシ402とが配備されている。拠点B2には、プロキシ402と、パブリッシャ101としてセンサCとが配備されている。
Further, for example, in FIG. 4, the base B1 is provided with the sensor A and the sensor B as the
続いて、図4を参照して、プロキシ402を介したメッセージの配送の流れについて説明する。
Subsequently, the flow of message delivery via the
(パブリッシュのプロキシを介した配送例)
まず、パブリッシュのプロキシ402を介した配送例について説明する。例えば、パブリッシャ101は、プロキシ402に宛ててメッセージ(パブリッシュ)を送信するように設定されてよい。例えば、図4の拠点B1では、パブリッシャ101であるセンサAは、センサで検出したデータとそのデータのトピックとを含むパブリッシュをプロキシ402に宛てて送信する(図4の(1a))。
(Example of delivery via publish proxy)
First, an example of delivery via the publish
プロキシ402は、例えば、データを受信すると、データの配送先となるブローカ102を、クラウドの拠点管理部401に問い合わせる(図4の(2a))。
When the
図5は、プロキシ402がメッセージの配送先を問い合わせるために拠点管理部401に送信する配送先提供依頼500を例示する図である。配送先提供依頼500は、例えば、メッセージ種別と、拠点IDと、トピックとを含んでよい。メッセージ種別は、プロキシ402が配送先の問い合わせを行うメッセージの種別を示す情報である。例えば、パブリッシャ101から通知されたパブリッシュの配送先を拠点管理部401に問い合わせる場合、プロキシ402は、メッセージ種別にパブリッシュを示す情報を登録してよい。また、例えば、サブスクライバ103から通知されたサブスクライブの配送先を拠点管理部401に問い合わせる場合、プロキシ402は、メッセージ種別にサブスクライブを示す情報を登録してよい。拠点IDは、例えば、配送先提供依頼500の送信元のプロキシ402が配備されている拠点を一意に識別する識別子である。トピックは、例えば、メッセージ種別がパブリッシュである場合には、パブリッシャ101から通知されたデータのトピックを示す情報であってよい。パブリッシャ101から通知されたデータのトピックは、一例では、パブリッシャ101から通知されたデータとともに、パブリッシャ101から通知されてよい。また、トピックは、例えば、メッセージ種別がサブスクライブである場合には、サブスクライバ103から通知されたサブスクライブでデータの配送が要求されるトピックを示す情報であってよい。
FIG. 5 is a diagram illustrating a delivery
そして、図4の(2a)において、拠点管理部401は、例えば、プロキシ402から配送先提供依頼500を受信すると、受信した配送先提供依頼500に含まれる情報と、拠点管理情報600とに基づいて、メッセージの配送先を特定する。
Then, in (2a) of FIG. 4, when the
図6は、例示的な拠点管理情報600を示す図である。拠点管理情報600は、例えば、各拠点に配備されているプロキシ402、ブローカ102、サブスクライバ103、およびパブリッシャ101などに関する情報を管理する情報であってよい。図6では、拠点管理情報600には、例えば、拠点ID、プロキシアドレス、ブローカアドレス、サブスクライバ、およびトピックが対応づけられたエントリが登録されている。拠点管理情報600の拠点IDは、例えば、拠点を一意に識別する識別子である。拠点管理情報600のプロキシアドレスは、例えば、エントリの拠点IDで識別される拠点に配備されているプロキシ402のアドレスである。拠点管理情報600のブローカアドレスは、例えば、エントリの拠点IDで識別される拠点に配備されているブローカ102のアドレスである。なお、ブローカアドレス「−(null)」は、例えば、エントリの拠点IDで識別される拠点に、ブローカ102が配備されていないことを示してよい。拠点管理情報600のサブスクライバは、例えば、エントリの拠点IDで識別される拠点に配備されているサブスクライバ103を示す情報である。サブスクライバ「−」は、エントリの拠点IDで識別される拠点にサブスクライバ103が配備されていないことを示す。拠点管理情報600のトピックは、例えば、エントリの拠点IDで識別される拠点に配備されているブローカ102が、パブリッシャ101から受信しているパブリッシュのトピックを示す情報である。トピック「−」は、エントリの拠点IDで識別される拠点でブローカ102が受信しているパブリッシュがないことを示す。
FIG. 6 is a diagram showing exemplary
そして、拠点管理情報600を参照することで、拠点管理部401は、配送先提供依頼500で問い合わせを受けたメッセージの配送先を特定することができる。例えば、拠点管理部401は、メッセージ種別がパブリッシュである場合、配送先提供依頼500の送信元拠点と一致する拠点IDを有する拠点管理情報600のエントリのブローカアドレスを配送先として特定し、配送先提供依頼500の送信元のプロキシ402に通知する。そして、プロキシ402は、拠点管理部401からの応答で通知された配送先にメッセージ(パブリッシュ)の宛先を変更してメッセージを送信する(図4の(3a))。
Then, by referring to the
図7は、プロキシ402によるメッセージの宛先変更を例示する図である。図7(a)は、パブリッシュを例示している。センサなどのパブリッシャ101から出力されるパブリッシュは、例えば、プロキシアドレス、パブリッシャアドレス、トピック、およびデータを含んでよい。プロキシアドレスは、例えば、パブリッシュの宛先となるプロキシ402のアドレスである。パブリッシャアドレスは、パブリッシュの送信元のパブリッシャ101のアドレスである。トピックは、パブリッシュのデータのトピックである。データは、パブリッシュの送信元のパブリッシャ101で収集されたデータである。
FIG. 7 is a diagram illustrating a message destination change by the
そして、プロキシ402は、拠点管理部401からの応答で通知された配送先にメッセージ(パブリッシュ)の宛先を変更してメッセージを配送してよい。図7(b)は、宛先の変更後のパブリッシュを例示しており、プロキシアドレスが、拠点管理部401からの応答で通知された配送先のブローカアドレスに変更されている。
Then, the
以上のように、例えば、分散処理システム300においてブローカ102を別の拠点に移動した場合にも、パブリッシャ101が送信するパブリッシュの宛先を変更しなくても、パブリッシュをプロキシ402を介して適切なブローカ102に配送することができる。
As described above, for example, even when the
なお、拠点B2のように、ブローカ102が配備されていない場合には、拠点管理部401は、拠点B2のプロキシ402からの配送先提供依頼500に対して、クラウド(拠点B0)に配備されているブローカ102のブローカアドレスを通知してよい。この場合、拠点B2のプロキシ402は、クラウド(拠点B0)のブローカ102にパブリッシュを配送してよい(図4の(4a))。
When the
(サブスクライブのプロキシを介した配送例)
続いて、サブスクライブのプロキシ402を介した配送例を説明する。サブスクライブの配送もプロキシ402で制御することができる。例えば、サブスクライバ103は、プロキシ402に宛ててメッセージ(サブスクライブ)を送信するように設定されていてよい。図4の例では、拠点B0の処理Bのサブスクライバ103は、トピックBのデータを要求するサブスクライブをプロキシ402に宛てて送信する(図4の(1b))。
(Example of delivery via subscription proxy)
Subsequently, an example of delivery via the
プロキシ402は、例えば、サブスクライブを受信すると、サブスクライブの配送先となるブローカ102を、クラウドの拠点管理部401に問い合わせる(図4の(2b))。例えば、プロキシ402は、図5で示した配送先提供依頼500を拠点管理部401に送信して、サブスクライブの配送先を問い合わせてよい。なお、サブスクライブの配送先の問い合わせでは、配送先提供依頼500のメッセージ種別には、サブスクライブを示す情報が登録されてよい。また、拠点IDは、例えば、配送先提供依頼500の送信元のプロキシ402が配備されている拠点を一意に識別する識別子である。配送先提供依頼500のトピックには、例えば、サブスクライブで配送が要求されるトピックが登録されてよい。
When the
拠点管理部401は、例えば、プロキシ402から配送先提供依頼500を受信すると、配送先提供依頼500のメッセージ種別が、パブリッシュか、またはサブスクライブかを特定する。そして、例えば、メッセージ種別がサブスクライブである場合、拠点管理部401は、配送先提供依頼500のトピックと一致するトピックを含む拠点管理情報600のエントリに含まれるブローカアドレスを配送先として特定する。そして、拠点管理部401は、特定した配送先のブローカアドレスを、配送先提供依頼500の送信元のプロキシ402に通知する。
When the
そして、プロキシ402は、拠点管理部401からの応答で通知された配送先にメッセージ(サブスクライブ)の宛先を変更してメッセージを送信する(図4の(3b))。
Then, the
図7(c)は、サブスクライブを例示している。例えば、サブスクライバ103がデータを要求するために発行するサブスクライブは、プロキシアドレス、サブスクライバアドレス、サブスクライバID、およびトピックを含んでよい。プロキシアドレスは、例えば、サブスクライバ103からのサブスクライブの宛先となるプロキシ402のアドレスである。サブスクライバアドレスは、例えば、サブスクライブの送信元のサブスクライバ103のアドレスである。サブスクライバID(identifier)は、例えば、サブスクライブの送信元のサブスクライバ103を一意に識別する識別情報である。トピックは、例えば、サブスクライブでデータの送信が要求されるトピックを示す情報である。
FIG. 7 (c) illustrates subscription. For example, a subscription issued by
そして、プロキシ402は、拠点管理部401からの応答で通知された配送先にメッセージ(サブスクライブ)の宛先を変更してメッセージを配送してよい。図7(d)は、宛先の変更後のサブスクライブを例示しており、プロキシアドレスが、拠点管理部401からの応答で通知された配送先のブローカアドレスに変更されている。
Then, the
以上のように、例えば、分散処理システム300においてブローカ102を別の拠点に移動した場合に、サブスクライバ103のサブスクライブの送信先を変更しなくても、サブスクライブをプロキシ402を介して適切なブローカ102に配送することができる。例えば、図4では、処理Bが発行したトピックBのデータを要求するサブスクライブは、拠点管理情報600においてトピックにBが登録されている拠点1に配備されているブローカ102(アドレス4)に配送される(図4の(3b))。一方、処理Cが発行したトピックCのデータを要求するサブスクライブは、拠点管理情報600においてトピックにCが登録されている拠点0に配備されているブローカ102(アドレス3)に配送される(図4の(3b’))。
As described above, for example, when the
以上で述べたように、分散処理システム300においてある拠点から別の拠点へと拠点をまたいでパブリッシャ101、ブローカ102、およびサブスクライバ103の配置を変更したとしても、プロキシ402を用いてメッセージを適切な配送先に配送することができる。
As described above, even if the placement of the
しかしながら、近年、例えば、IoTデバイスなどのセンサを備えるデバイスは増加傾向にあり、それにともない、拠点に配備されるセンサなどのパブリッシャ101の数も、図8に示すように、増加することがある。なお、パブリッシャ101の増加にともない、それらのパブリッシャ101を収容するゲートウェイ装置GWの数も増加してもよい。この場合、パブリッシャ101からプロキシ402を介してブローカ102に配送されるデータの量が増加するため、プロキシ402およびブローカ102にかかる処理負荷が高くなることがある。その結果、転送遅延などが発生してしまうことがあり、リアルタイム性が要求されるCPS(Cyber-Physical System)アプリケーションなどでは問題になることがある。
However, in recent years, for example, the number of devices equipped with sensors such as IoT devices has been increasing, and along with this, the number of
そのため、例えば、センサの数の多い拠点において、プロキシ402およびブローカ102の数を増やして、処理負荷を分散させることが考えられる。図9は、拠点B1において配備するプロキシ402とブローカ102とを増やした分散処理システム300の構成を示す図である。図9の拠点B1に示すように、配備するブローカ102およびプロキシ402を増やすことで、増やしたブローカ102およびプロキシ402に処理を分散させることができる。そのため、ブローカ102およびプロキシ402の1つあたりの処理量を削減することが可能になる。
Therefore, for example, in a base having a large number of sensors, it is conceivable to increase the number of
しかしながら、ブローカ102を増やすと、サブスクライブの配信先が、増設したブローカ102の分増加してしまうことがある。例えば、図9に示すように、拠点B0(クラウド)に配備されているサブスクライバ103:処理BがトピックBのデータの配送を要求するサブスクライブをプロキシ402に送信したとする(図9の(1))。プロキシ402は、サブスクライブを受信すると、サブスクライブの配送先を拠点管理部401に問い合わせる(図9の(2))。ここで、増設したブローカ102は、例えば、拠点B1にもともと設置されているプロキシ402と同じトピックを処理するブローカ102であるとする。この場合、配送先提供依頼500に対する応答では、もともと設置されているブローカ102のブローカアドレスに加えて、増設されたブローカ102のブローカアドレスも通知される。その結果、拠点B0のプロキシ402は、拠点B1のブローカ102と、増設されたブローカ102の双方に、トピックBのデータの配送を要求するサブスクライブを送信する(図9の(3))。この場合、拠点B0(クラウド)から1つの拠点B1に対して同じサブスクライブを複数送信しており、重複したデータを同じ拠点間で複数送信することは無駄な拠点間の通信となる。そのため、拠点間での重複したサブスクライブの配送を抑制することのできる技術の提供が望まれている。
However, if the number of
以下で述べる実施形態では、プロキシ402は、拠点管理部401に問い合わせて特定したサブスクライブの配送先が、自拠点とは異なる外部拠点である場合、配送先の拠点を代表する代表プロキシにサブスクライブを送信する。そのため、例えば、図9の(3)において、拠点間で複数のブローカ102に対して配送しているサブスクライブを、代表プロキシに集約して配送することができため、拠点間での重複したサブスクライブの配送を抑制することができる。なお、代表プロキシは、サブスクライブを受信すると、代表プロキシと同じ拠点に配備されているブローカ102にサブスクライブを配送する。以下、実施形態を更に詳細に説明する。
In the embodiment described below, when the delivery destination of the subscribe specified by inquiring to the
図10は、実施形態に係るサーバ301の機能ブロック構成を例示する図である。サーバ301は、例えば、制御部1001、記憶部1002、および通信部1003を含む。制御部1001は、例えば拠点管理部401などとして動作する。また、制御部1001は、例えば、サーバ301に配備されているブローカ102、サブスクライバ103、およびプロキシ402として動作してもよい。サーバ301の記憶部1002は、例えば、後述する拠点管理情報1200などの情報を記憶していてよい。これらの各部の詳細及び記憶部1002に格納されている情報の更なる詳細については後述する。
FIG. 10 is a diagram illustrating a functional block configuration of the
図11は、実施形態に係るプロキシ402の機能ブロック構成を例示する図である。なお、プロキシ402は、例えば、サーバ301、エッジ装置EG、およびゲートウェイ装置GWなどに実装されてよい。プロキシ402は、例えば、制御部1101、記憶部1102、および通信部1103を含む。制御部1101は、例えば転送部1111および取得部1112などとして動作する。プロキシ402の記憶部1102は、例えば、後述するように、代表プロキシとして動作する場合には、ブローカ管理情報1300などの情報を記憶していてよい。これらの各部の詳細及び記憶部1102に格納されている情報の更なる詳細については後述する。
FIG. 11 is a diagram illustrating a functional block configuration of the
図12は、実施形態に係る拠点管理情報1200を例示する図である。拠点管理情報1200は、例えば、各拠点に配備されているプロキシ402、ブローカ102、サブスクライバ103、およびパブリッシャ101などに関する情報を管理する情報であってよい。図12の例では、拠点管理情報1200には、拠点ID、代表プロキシアドレス、ブローカアドレス、サブスクライバ、およびトピックが対応づけられたエントリが登録されている。拠点管理情報1200の拠点IDは、例えば、拠点を一意に識別する識別子である。拠点管理情報1200の代表プロキシアドレスは、例えば、エントリの拠点IDで識別される拠点に配備されているプロキシ402を代表する代表プロキシのアドレスである。拠点管理情報1200のブローカアドレスは、例えば、エントリの拠点IDで識別される拠点に配備されているブローカ102のアドレスである。なお、ブローカアドレス「−(null)」は、例えば、エントリの拠点IDで識別される拠点にブローカ102が配備されていないことを示してよい。拠点管理情報1200のサブスクライバは、例えば、エントリの拠点IDで識別される拠点に配備されているサブスクライバを示す情報である。サブスクライバ「−」は、エントリの拠点IDで識別される拠点にサブスクライバ103が配備されていないことを示す。拠点管理情報1200のトピックは、例えば、エントリの拠点IDで識別される拠点に配備されているブローカ102が、パブリッシャ101から受信しているパブリッシュのトピックを示す情報である。トピック「−」は、エントリの拠点IDで識別される拠点でブローカ102が受けるパブリッシュがないことを示す。なお、拠点に複数のブローカ102が配備される場合、拠点管理情報1200のブローカアドレスには、拠点に配備された全てのブローカ102のブローカアドレスが登録されてよい。例えば、ユーザが分散処理システム300において、拠点B1にブローカ102を追加して配備する場合、ユーザは、拠点管理情報1200の拠点ID:B1のエントリのブローカアドレスに、追加して配備したブローカ102のブローカアドレスを追加してよい。
FIG. 12 is a diagram illustrating the
また、図13は、ブローカ管理情報1300を例示する図である。ブローカ管理情報1300は、例えば、代表プロキシとして動作するプロキシ402の記憶部1102に記憶されていてよい。ブローカ管理情報1300には、例えば、ブローカアドレスおよびトピックが対応付けられたエントリが登録されている。ブローカ管理情報1300のブローカアドレスには、例えば、ブローカ管理情報1300を記憶する代表プロキシと同じ拠点に配備されているブローカ102のブローカアドレスが登録されてよい。また、ブローカ管理情報1300のトピックには、エントリのブローカアドレスで識別されるブローカ102で受信されるパブリッシュのトピックを示す情報が登録されてよい。
Further, FIG. 13 is a diagram illustrating
続いて、実施形態に係る拠点管理部401が実行する配送先通知処理を説明する。図14は、実施形態に係る拠点管理部401が実行する配送先通知処理の動作フローを例示する図である。例えば、拠点管理部401は、プロキシ402から配送先提供依頼500を受信すると、図14の動作フローを開始してよい。
Subsequently, the delivery destination notification process executed by the
ステップ1401(以降、ステップを“S”と記載し、例えば、S1401と表記する)において拠点管理部401は、受信した配送先提供依頼500のメッセージ種別がパブリッシュであるか、サブスクライブであるかを判定する。配送先提供依頼500のメッセージ種別がパブリッシュである場合、フローはS1402に進む。
In step 1401 (hereinafter, step is described as "S", for example, S1401), the
S1402において拠点管理部401は、拠点管理情報1200を参照し、配送先提供依頼500の送信元拠点と拠点管理情報1200において対応づけられている代表プロキシと、ブローカアドレスとを特定する。なお、S1402において拠点管理部401は、配送先提供依頼500の送信元拠点を含む拠点管理情報1200のエントリに、配送先提供依頼500で通知されたトピックが登録されていない場合、配送先提供依頼500で通知されたトピックを登録してよい。
In S1402, the
S1403において拠点管理部401は、特定した代表プロキシと、ブローカアドレスとを含む応答を、配送先提供依頼500を送信してきたプロキシ402に返信し、本動作フローは終了する。
In S1403, the
一方、S1401において配送先提供依頼500のメッセージ種別がサブスクライブである場合、フローはS1404に進む。
On the other hand, if the message type of the delivery
S1404において拠点管理部401は、拠点管理情報1200を参照し、配送先提供依頼500のトピックと拠点管理情報1200において対応づけられている拠点と代表プロキシアドレスとブローカアドレスとを特定する。
In S1404, the
S1405において拠点管理部401は、特定した拠点と代表プロキシアドレスとブローカアドレスとを含む応答を、配送先提供依頼500を送信してきたプロキシ402に返信し、本動作フローは終了する。
In S1405, the
以上で述べたように、図14の動作フローによれば、拠点管理部401は、配送先提供依頼500に応じて、メッセージの配送先に関する情報をプロキシ402に提供することができる。
As described above, according to the operation flow of FIG. 14, the
また、図15は、実施形態に係るプロキシ402の制御部1101が実行するパブリッシュの配送処理の動作フローを例示する図である。プロキシ402の制御部1101は、例えば、パブリッシャ101からパブリッシュを受信すると、図15の動作フローを開始してよい。
Further, FIG. 15 is a diagram illustrating an operation flow of a publish delivery process executed by the
S1501においてプロキシ402の制御部1101は、受信したパブリッシュからトピックの情報を抽出する。S1502においてプロキシ402の制御部1101は、受信したパブリッシュの配送先を拠点管理部401に問い合わせる。例えば、プロキシ402の制御部1101は、S1501で抽出したトピックを含む配送先提供依頼500を生成して拠点管理部401に送信し、パブリッシュの配送先を問い合わせてよい。
In S1501, the
S1503においてプロキシ402の制御部1101は、拠点管理部401からの応答から、プロキシ402が配備されている拠点に複数のブローカ102が配備されているか否かを判定する。例えば、拠点管理部401からの応答に複数のブローカアドレスが含まれている場合、プロキシ402の制御部1101は、S1503においてYesと判定してよく、フローはS1504に進む。
In S1503, the
S1504においてプロキシ402の制御部1101は、拠点管理部401からの応答に含まれる代表プロキシアドレスを用いて、代表プロキシとして動作するプロキシ402にパブリッシュ1601を送信し、本動作フローは終了する。
In S1504, the
図16は、実施形態に係る代表プロキシに送信されるメッセージを例示する図である。図16(a)は、S1504でプロキシ402の制御部1101が、代表プロキシアドレスに送信するパブリッシュ1601を例示している。パブリッシュ1601は、例えば、代表プロキシアドレス、ブローカアドレス、パブリッシャアドレス、トピック、およびデータを含んでよい。パブリッシュ1601の代表プロキシアドレスは、拠点管理部401からの応答で通知された代表プロキシアドレスである。また、パブリッシュ1601のブローカアドレスは、例えば、拠点管理部401からの応答で通知されたブローカアドレスである。パブリッシュ1601のパブリッシャアドレス、トピック、データはそれぞれ、例えば、図7(a)のパブリッシュのパブリッシャアドレス、トピック、データと同様の情報であってよい。
FIG. 16 is a diagram illustrating a message transmitted to the representative proxy according to the embodiment. FIG. 16A illustrates the publish 1601 transmitted to the representative proxy address by the
一方、S1503において例えば、拠点管理部401からの応答に含まれるブローカアドレスが1つである場合、S1503においてNoと判定してよく、フローはS1505に進む。
On the other hand, in S1503, for example, when the number of broker addresses included in the response from the
S1505においてプロキシ402の制御部1101は、応答で通知されたブローカアドレスにパブリッシュを送信し、本動作フローは終了する。S1505で送信されるパブリッシュは、例えば、図7(b)に示すパブリッシュであってよい。
In S1505, the
以上で述べたように、プロキシ402の制御部1101は、パブリッシュを受信した場合に、パブリッシュの配送先のブローカ102が拠点内に複数ある場合には、代表プロキシにパブリッシュを転送する。一方、プロキシ402の制御部1101は、パブリッシュの配送先のブローカ102が拠点内に1つである場合には、そのブローカ102にパブリッシュを配送する。
As described above, the
続いて、代表プロキシとして動作するプロキシ402の制御部1101が、他のプロキシ402からパブリッシュ1601を受信した場合に実行するパブリッシュの配送処理について説明する。図17は、実施形態に係る代表プロキシとして動作するプロキシ402によるパブリッシュの配送処理の動作フローを例示する図である。
Subsequently, the publish delivery process executed when the
S1701においてプロキシ402の制御部1101は、パブリッシュ1601に含まれるブローカアドレスおよびトピックの情報を読み出す。
In S1701, the
S1702においてプロキシ402の制御部1101は、読み出したブローカアドレスおよびトピックを含むエントリが、記憶部1102に記憶されているブローカ管理情報1300に登録されているか否かを判定する。読み出したブローカアドレスおよびトピックを含むエントリが、ブローカ管理情報1300に登録されていない場合(S1702がNo)、フローはS1703に進む。
In S1702, the
S1703においてプロキシ402の制御部1101は、ブローカ管理情報1300に、読み出したブローカアドレスおよびトピックを対応づけたエントリを登録し、フローはS1704に進む。なお、例えば、パブリッシュ1601から読み出したブローカアドレスを含むエントリが既にブローカ管理情報1300に含まれている場合には、プロキシ402の制御部1101は、そのエントリにパブリッシュ1601から読み出したトピックを追加してよい。
In S1703, the
また、S1702において読み出したブローカアドレスおよびトピックを含むエントリが、ブローカ管理情報1300に登録されている場合(S1702がYes)、フローはS1704に進む。 If the entry including the broker address and the topic read in S1702 is registered in the broker management information 1300 (S1702 is Yes), the flow proceeds to S1704.
S1704においてプロキシ402の制御部1101は、パブリッシュ1601で指定されるトピックとブローカ管理情報1300において対応づけられているブローカアドレスのブローカ102にパブリッシュ1601を配送し、本動作フローは終了する。なお、パブリッシュ1601で指定されるトピックとブローカ管理情報1300において対応づけられているブローカアドレスが複数登録されている場合には、プロキシ402の制御部1101は、パブリッシュ1601を複数のブローカ102のうちの一部に送信してもよい。一例では、プロキシ402の制御部1101は、所定期間に処理するパブリッシュ1601の数が均一に近づくように、複数のブローカ102のうちのいずれかにパブリッシュ1601を振り分けてよい。それにより、拠点内の複数のブローカ102が処理するパブリッシュ1601の数を平均化して、負荷を分散させることができる。
In S1704, the
以上の図17で述べた動作フローによれば、代表プロキシとして動作するプロキシ402の制御部1101は、パブリッシュ1601を拠点内のブローカ102に配送することができる。また、図17の動作フローによれば、代表プロキシとして動作するプロキシ402の制御部1101は、拠点内のブローカ102と、拠点内のパブリッシャ101が送信したパブリッシュのトピックの情報とを、ブローカ管理情報1300に登録することができる。
According to the operation flow described with reference to FIG. 17, the
続いて、プロキシ402の制御部1101が実行するサブスクライブの配送処理について説明する。
Subsequently, the subscription delivery process executed by the
図18は、実施形態に係るプロキシ402の制御部1101が実行するサブスクライブの配送処理の動作フローを例示する図である。例えば、プロキシ402の制御部1101は、サブスクライブを受信すると、図18の動作フローを開始してよい。
FIG. 18 is a diagram illustrating an operation flow of a subscription delivery process executed by the
S1801においてプロキシ402の制御部1101は、受信したサブスクライブの配送先を問い合わせる配送先提供依頼500を拠点管理部401に送信し、その応答としてサブスクライブの配送先の情報を受信する。なお、拠点管理部401は、例えば、上述の図14の動作フローのS1404〜S1405の処理で応答を、配送先提供依頼500を送付したプロキシ402に返信してよい。また、この応答は、例えば、サブスクライブで要求されるトピックと拠点管理情報1200において対応づけられている拠点IDと、代表プロキシアドレスと、ブローカアドレスとを含んでよい。
In S1801, the
S1802においてプロキシ402の制御部1101は、応答で通知されるサブスクライブの配送先に自拠点が含まれるか否かを判定する。例えば、プロキシ402の制御部1101は、記憶部1102に記憶されている自拠点を識別するための拠点IDと一致する拠点IDが、拠点管理部401から受信した応答に含まれているか否かに基づいて、サブスクライブの配送先に自拠点が含まれるか否かを判定してよい。記憶部1102に記憶されている自拠点を識別するための拠点IDと一致する拠点IDが、拠点管理部401から受信した応答に含まれていない場合(S1802がNo)、フローはS1804に進む。一方、記憶部1102に記憶されている自拠点を識別するための拠点IDと一致する拠点IDが、拠点管理部401から受信した応答に含まれている場合(S1802がYes)、フローはS1803に進む。
In S1802, the
S1803においてプロキシ402の制御部1101は、拠点管理部401から受信した応答に含まれるブローカアドレスにサブスクライブを配送し、フローはS1804に進む。なお、プロキシ402の制御部1101は、例えば、図7(d)のサブスクライブを配送先のブローカ102に送信してよい。
In S1803, the
S1804においてプロキシ402の制御部1101は、サブスクライブの配送先に外部拠点が含まれるか否かを判定する。例えば、プロキシ402の制御部1101は、記憶部1102に記憶されている自拠点を識別するための拠点IDと異なる拠点IDが、拠点管理部401から受信した応答に含まれているか否かに基づいて、サブスクライブの配送先に外部拠点が含まれるか否かを判定してよい。記憶部1102に記憶されている自拠点を識別するための拠点IDと異なる拠点IDが、拠点管理部401から受信した応答に含まれていない場合(S1804がNo)、本動作フローは終了する。一方、記憶部1102に記憶されている自拠点を識別するための拠点IDと異なる拠点IDが、拠点管理部401から受信した応答に含まれている場合(S1804がYes)、フローはS1805に進む。
In S1804, the
S1805においてプロキシ402の制御部1101は、拠点管理部401から受信した応答に含まれている外部拠点の代表プロキシアドレスに、サブスクライブ1602を転送する。
In S1805, the
図16(b)は、S1805でプロキシ402の制御部1101が、代表プロキシアドレスに転送するサブスクライブ1602を例示している。サブスクライブ1602は、例えば、代表プロキシアドレス、サブスクライバアドレス、サブスクライバID、およびトピックを含んでよい。サブスクライブ1602の代表プロキシアドレスは、例えば、拠点管理部401からの応答で通知された代表プロキシアドレスである。また、サブスクライブ1602のサブスクライバアドレス、サブスクライバID、トピックはそれぞれ、例えば、図7(d)のサブスクライブのサブスクライバアドレス、サブスクライバID、トピックと同様の情報であってよい。
FIG. 16B illustrates a
以上の図18の動作フローによれば、プロキシ402の制御部1101は、サブスクライブを受信すると、自拠点内のブローカ102にサブスクライブを配送し、また、外部拠点の代表プロキシにサブスクライブを転送することができる。
According to the operation flow of FIG. 18 above, when the
続いて、代表プロキシとして動作するプロキシ402の制御部1101によるサブスクライブの配送処理を説明する。図19は、代表プロキシとして動作するプロキシ402の制御部1101が実行するサブスクライブの配送処理の動作フローを例示する図である。例えば、プロキシ402の制御部1101は、外部拠点のプロキシ402からサブスクライブ1602を受信すると、図19の動作フローを開始してよい。
Subsequently, the delivery process of the subscription by the
S1901においてプロキシ402の制御部1101は、サブスクライブ1602のトピックと対応するブローカ102のブローカアドレスを特定する。例えば、プロキシ402の制御部1101は、サブスクライブ1602のトピックと一致するトピックが登録されているブローカ管理情報1300のエントリのブローカアドレスを特定してよい。
In S1901, the
S1902においてプロキシ402の制御部1101は、特定したブローカアドレスのブローカ102にサブスクライブを配送し、本動作フローは終了する。なお、プロキシ402の制御部1101は、例えば、図7(d)のサブスクライブを配送先のブローカ102に送信してよい。
In S1902, the
以上の図19の動作フローによれば、代表プロキシとして動作するプロキシ402の制御部1101は、外部拠点から転送されてきたサブスクライブ1602を、自拠点内のブローカ102に配送することができる。
According to the operation flow of FIG. 19 above, the
続いて、図20は、上述した実施形態に係る代表プロキシを介したパブリッシュの配送の流れを例示する図である。 Subsequently, FIG. 20 is a diagram illustrating the flow of delivery of the publish via the representative proxy according to the above-described embodiment.
例えば、図20の拠点B1においてプロキシ402(アドレス5)が、センサAおよびセンサBなどのパブリッシャ101からトピックAのパブリッシュを受信したとする(図20の(1))。
For example, suppose that the proxy 402 (address 5) receives the publication of topic A from the
この場合、プロキシ402(アドレス5)は、拠点管理部401に配送先提供依頼500を送信し、パブリッシュの配送先を問い合わせる(図20の(2))。
In this case, the proxy 402 (address 5) sends a delivery
プロキシ402(アドレス5)は、拠点管理部401からの問い合わせに対する応答に基づいてパブリッシュの配送先のブローカ102が複数あるか否かを判定する。そして、パブリッシュの配送先のブローカ102が複数ある場合、プロキシ402(アドレス5)は、拠点管理情報1200に代表プロキシとして登録されているプロキシ402(アドレス1)にパブリッシュを転送する(図20の(3))。
The proxy 402 (address 5) determines whether or not there are a plurality of
代表プロキシとして動作するプロキシ402(アドレス1)は、ブローカ管理情報1300を参照し、拠点内のブローカ102(アドレス4.0,アドレス4.1)にパブリッシュを振り分けて配送する(図20の(4))。
The proxy 402 (address 1), which operates as a representative proxy, refers to the
そのため、代表プロキシを介して、拠点内のブローカ102(アドレス4.0,アドレス4.1)にパブリッシュを分配することができ、拠点内のブローカ102のパブリッシュの処理にかかる負荷を低減することができる。
Therefore, the publish can be distributed to the brokers 102 (address 4.0, address 4.1) in the base via the representative proxy, and the load on the publish processing of the
続いて、図21は、上述した実施形態に係る代表プロキシを介したサブスクライブの配送の流れを例示する図である。 Subsequently, FIG. 21 is a diagram illustrating a flow of delivery of the subscription via the representative proxy according to the above-described embodiment.
例えば、図21の拠点B0(クラウド)においてプロキシ402(アドレス0)が、処理Bのサブスクライバ103からトピックBのサブスクライブを受信したとする(図21の(1))。
For example, suppose that the proxy 402 (address 0) receives the subscription of topic B from the
この場合、プロキシ402(アドレス0)は、拠点管理部401に配送先提供依頼500を送信し、サブスクライブの配送先を問い合わせる(図21の(2))。
In this case, the proxy 402 (address 0) sends a delivery
プロキシ402(アドレス0)は、拠点管理部401からの応答で通知される配送先が外部拠点の拠点B1である場合、拠点管理情報1200に代表プロキシとして登録されている拠点B1のプロキシ402(アドレス1)にサブスクライブを転送する(図21の(3))。
The proxy 402 (address 0) is the proxy 402 (address) of the base B1 registered as the representative proxy in the
代表プロキシとして動作するプロキシ402(アドレス1)は、ブローカ管理情報1300に登録されているブローカ102のうちでトピックBが登録されているブローカ102(アドレス4.0,アドレス4.1)にサブスクライブを配送する(図21の(4))。
The proxy 402 (address 1) that operates as a representative proxy subscribes to the broker 102 (address 4.0, address 4.1) in which topic B is registered among the
以上のように、拠点間でサブスクライブを配送する場合に、代表プロキシにサブスクライブを転送し、代表プロキシから拠点内のブローカ102にサブスクライブを配送することで、拠点間で通信されるサブスクライブの数を削減することができる。従って、実施形態によれば、例えば、拠点間でのサブスクライブの通信量を削減することができる。
As described above, when delivering a subscription between bases, the subscription is transferred to the representative proxy, and the subscription is delivered from the representative proxy to the
なお、例えば、図21の拠点B1においてプロキシ402(アドレス1)が、処理Aのサブスクライバ103からトピックAのサブスクライブを受信したとする(図21の(1’))。
For example, it is assumed that the proxy 402 (address 1) receives the subscription of topic A from the
この場合、プロキシ402(アドレス1)は、拠点管理部401に配送先提供依頼500を送信し、サブスクライブの配送先を問い合わせる(図21の(2’))。
In this case, the proxy 402 (address 1) sends a delivery
プロキシ402(アドレス0)は、拠点管理部401からの問い合わせに対する応答に基づいてサブスクライブの配送先が自拠点の拠点B1であるか否かを判定する。そして、サブスクライブの配送先が自拠点の拠点B1である場合、プロキシ402は、応答で受信したブローカアドレスのブローカ102(アドレス4.0,アドレス4.1)にサブスクライブを転送する(図21の(3’))。
The proxy 402 (address 0) determines whether or not the delivery destination of the subscription is the base B1 of the own base based on the response to the inquiry from the
以上で述べたように、プロキシ402は、自拠点内のブローカ102にサブスクライブを配送する場合には、ブローカ102に直接サブスクライブを配送してよい。
As described above, when the
以上で述べた上述の実施形態では、サブスクライブが拠点間で通信される場合、配送先に代表プロキシを用い、代表プロキシに拠点内でのブローカ102への配送を実行させる。即ち、例えば、外部ネットワークからのサブスクライブの受信は代表プロキシが代表して行い、代表プロキシがローカルネットワーク内のブローカに配送する。そのため、例えば、拠点内に複数のブローカ102が配備されている場合にも、拠点間でのサブスクライブの通信量を削減することができる。
In the above-described embodiment described above, when the subscription is communicated between the bases, the representative proxy is used as the delivery destination, and the representative proxy is made to execute the delivery to the
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、又は、一部の処理が省略されてもよい。例えば、図18のS1802からS1803の処理と、S1804からS1805の処理とは順序を入れ替えて実行してもよい。 Although the embodiments have been illustrated above, the embodiments are not limited thereto. For example, the above-mentioned operation flow is an example, and the embodiment is not limited thereto. When possible, the operation flow may be executed by changing the order of processing, may include additional processing, or may omit some processing. For example, the processes S1802 to S1803 in FIG. 18 and the processes S1804 to S1805 may be executed by changing the order.
また、上述の実施形態では、パブリッシュの配送先のブローカ102が複数ある場合に、自拠点内の代表プロキシにパブリッシュを転送し、代表プロキシがパブリッシュをブローカ102に振り分ける例を述べている。例えば、代表プロキシがパブリッシュをブローカ102に振り分けることで、拠点内の複数のブローカ102が処理するパブリッシュの数を均一にすることが可能である。しかしながら、別の実施形態では、プロキシ402は、拠点管理部401からの応答において、配送先のブローカ102が複数含まれている場合には、応答を受信したプロキシ402がパブリッシュを複数のブローカ102のいずれかに振り分けてもよい。
Further, in the above-described embodiment, when there are a plurality of
また、上述の実施形態において、拠点管理情報1200の代表プロキシアドレスは、例えば、分散処理システム300の管理者がサーバ301を介して登録してもよい。或いは、別の実施形態では、拠点管理情報1200のエントリの拠点IDで識別される拠点のプロキシ402から、拠点管理部401が初めてパブリッシュの配送先を問い合わせる配送先提供依頼500を受信したとする。この場合に、拠点管理部401は、配送先提供依頼500の送信元のプロキシ402のアドレスを、その拠点IDのエントリの代表プロキシアドレスに登録してよい。この様に、最初にパブリッシュの配送先を問い合わせたプロキシ402を代表プロキシとすることで、分散処理システム300の管理者が拠点管理情報1200に代表プロキシを登録する手間を省くことができる。
Further, in the above-described embodiment, the representative proxy address of the
また、上述の実施形態では、プロキシ402は、パブリッシュおよびサブスクライブなどのメッセージを受信すると、メッセージの配送先を拠点管理部401に問い合わせる例を述べているが、実施形態はこれに限定されるものではない。例えば、別の実施形態では、プロキシ402は、メッセージの宛先を拠点管理部401に問い合わせて、配送先の情報を得ると、その配送先を記憶部1102に記憶し、以降はその配送先に対象のメッセージを送信するように動作してよい。例えば、この様にすることで、メッセージの宛先を拠点管理部401に問い合わせる処理を削減することが可能である。
Further, in the above-described embodiment, when the
また、上述の実施形態では、拠点B0(クラウド)に配備されるサーバ301にサブスクライバ103、拠点管理部401、およびプロキシ402などが実装される例を述べているが、実施形態はこれに限定されるものではない。例えば、上述の実施形態でサーバ301が実行する処理は、複数の装置で分担して実行されてもよい。
Further, in the above-described embodiment, an example in which the
また、上述の実施形態では、拠点B0(クラウド)から、拠点B1にサブスクライブを配送する際に、代表プロキシに転送する例を述べているが、実施形態はこれに限定されるものではない。別の例では、拠点Biから拠点B0へ配送されるサブスクライブの通信量が削減されてもよい。即ち、例えば、図21において、拠点B0(クラウド)にもトピックAのデータを提供するセンサAなどのパブリッシャ101が配備されているとする。そして、プロキシ402(アドレス1)が、処理Aのサブスクライバ103からトピックAのデータを要求するサブスクライブを受信して、その配送先を拠点管理部401に問い合わせた際に、配送先に拠点B0(クラウド)のブローカ102が含まれているとする。この場合に、プロキシ402(アドレス1)は、外部の拠点B0(クラウド)の代表プロキシにサブスクライブを転送してよい。以上のように、実施形態では、例えば、拠点間でサブスクライブを転送する場合に、代表プロキシにサブスクライブを転送するため、配送先の拠点に複数のブローカ102が含まれている場合にも、拠点間で行われるサブスクライブの通信量を削減することができる。
Further, in the above-described embodiment, an example of transferring the subscription from the base B0 (cloud) to the base B1 to the representative proxy is described, but the embodiment is not limited to this. In another example, the amount of subscription communication delivered from the base Bi to the base B0 may be reduced. That is, for example, in FIG. 21, it is assumed that the
図22は、実施形態に係るサーバ301、エッジ装置EG、ゲートウェイ装置GWなどを実現するためのコンピュータ(情報処理装置)2200のハードウェア構成を例示する図である。なお、サーバ301、エッジ装置EG、ゲートウェイ装置GWには、例えば、上述のブローカ102、サブスクライバ103、拠点管理部401、プロキシ402が配備され得る。また、一例では、サーバ301、エッジ装置EG、ゲートウェイ装置GWに、パブリッシャ101が配備されてもよい。
FIG. 22 is a diagram illustrating a hardware configuration of a computer (information processing device) 2200 for realizing the
図22のコンピュータ2200のハードウェア構成は、例えば、プロセッサ2201、メモリ2202、記憶装置2203、読取装置2204、通信インタフェース2206、及び入出力インタフェース2207を備える。なお、プロセッサ2201、メモリ2202、記憶装置2203、読取装置2204、通信インタフェース2206、入出力インタフェース2207は、例えば、バス2208を介して互いに接続されている。
The hardware configuration of the
プロセッサ2201は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ2201は、メモリ2202を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述したブローカ102、サブスクライバ103、拠点管理部401、プロキシ402などの各機能部の一部または全部の機能を提供する。例えば、サーバ301のプロセッサ2201は、記憶装置2203に格納されているプログラムを読み出して実行することで、拠点管理部401として動作する。また、例えば、プロキシ402が実装されるサーバ301、エッジ装置EG、ゲートウェイ装置GWのプロセッサ2201は、記憶装置2203に格納されているプログラムを読み出して実行することで、転送部1111および取得部1112として動作する。
The
メモリ2202は、例えば半導体メモリであり、RAM領域及びROM領域を含んでいてよい。記憶装置2203は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、又は外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。
The
読取装置2204は、プロセッサ2201の指示に従って着脱可能記憶媒体2205にアクセスする。着脱可能記憶媒体2205は、例えば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。なお、USBは、Universal Serial Busの略称である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
The
また、上述の記憶部1002および記憶部1102は、例えばメモリ2202、記憶装置2203、及び着脱可能記憶媒体2205を含んでよい。例えば、サーバ301の記憶装置2203には、拠点管理情報1200が格納されている。また、例えば、代表プロキシとして動作するエッジ装置EGまたはゲートウェイ装置GWの記憶装置2203には、ブローカ管理情報1300が格納されている。
Further, the above-mentioned
通信インタフェース2206は、プロセッサ2201の指示に従ってネットワークを介してデータを送受信する。通信インタフェース2206は、例えば、上述の通信部1003および通信部1103の一例である。
The
入出力インタフェース2207は、例えば、入力装置及び出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボードやマウスなどのデバイスである。出力装置は、例えばディスプレーなどの表示装置、及びスピーカなどの音声装置である。
The input /
実施形態に係る各プログラムは、例えば、下記の形態でサーバ301、エッジ装置EG、ゲートウェイ装置GWに提供される。
(1)記憶装置2203に予めインストールされている。
(2)着脱可能記憶媒体2205により提供される。
(3)プログラムサーバなどのサーバから提供される。
Each program according to the embodiment is provided to the
(1) It is pre-installed in the
(2) Provided by the removable storage medium 2205.
(3) Provided from a server such as a program server.
なお、図22を参照して述べたサーバ301、エッジ装置EG、ゲートウェイ装置GWを実現するためのコンピュータ2200のハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の機能部の一部または全部の機能がFPGA及びSoCなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。
The hardware configuration of the
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。 In the above, some embodiments will be described. However, the embodiments are not limited to the above embodiments, and should be understood to include various modifications and alternatives of the above embodiments. For example, it will be understood that various embodiments can be embodied by modifying the components within a range that does not deviate from the purpose and scope. It will also be appreciated that various embodiments can be implemented by appropriately combining the plurality of components disclosed in the above-described embodiments. Further, various embodiments are implemented by removing or replacing some components from all the components shown in the embodiments, or by adding some components to the components shown in the embodiments. Those skilled in the art will understand that it can be done.
101 :パブリッシャ
102 :ブローカ
103 :サブスクライバ
200 :配信管理情報
300 :分散処理システム
301 :サーバ
310 :ネットワーク
320 :ネットワーク
401 :拠点管理部
402 :プロキシ
1001 :制御部
1002 :記憶部
1003 :通信部
1101 :制御部
1102 :記憶部
1103 :通信部
1111 :転送部
1112 :取得部
2200 :コンピュータ
2201 :プロセッサ
2202 :メモリ
2203 :記憶装置
2204 :読取装置
2205 :着脱可能記憶媒体
2206 :通信インタフェース
2207 :入出力インタフェース
2208 :バス
EG :エッジ装置
GW :ゲートウェイ装置
dv :デバイス
101: Publisher 102: Broker 103: Subscriber 200: Distribution management information 300: Distributed processing system 301: Server 310: Network 320: Network 401: Base management unit 402: Proxy 1001: Control unit 1002: Storage unit 1003: Communication unit 1101: Control unit 1102: Storage unit 1103: Communication unit 1111: Transfer unit 1112: Acquisition unit 2200: Computer 2201: Processor 2202: Memory 2203: Storage device 2204: Reading device 2205: Detachable storage medium 2206: Communication interface 2207: Input / output interface 2208: Bus EG: Edge device GW: Gateway device dv: Device
Claims (5)
を含む、情報処理装置。 When a subscription is received from a proxy deployed at an external base, it is delivered by the subscription in the broker management information that associates the broker deployed at the own base with the publish topic received by the broker. A transfer unit that transfers the subscription to a broker associated with the required topic,
Information processing equipment, including.
を更に含み、
前記転送部は、前記取得部で取得した前記配送先を示す情報に他の拠点が含まれている場合、前記他の拠点に配備されているプロキシを代表する代表プロキシに前記第2のサブスクライブを転送する、
ことを特徴とする請求項1に記載の情報処理装置。 When the second subscription is received from the subscriber deployed in the own base, the delivery destination of the second subscription is determined by using the information of the topic for which delivery is required in the second subscription. Acquisition unit to acquire the information to be shown,
Including
When the information indicating the delivery destination acquired by the acquisition unit includes another base, the transfer unit subscribes to the representative proxy representing the proxy deployed at the other base. To transfer,
The information processing apparatus according to claim 1.
ことを特徴とする請求項2に記載の情報処理装置。 When the delivery destination specified by the acquisition unit includes the own base, the transfer unit may use the broker of the delivery destination acquired by the acquisition unit among the brokers deployed at the own base. Transfer the second subscription,
The information processing apparatus according to claim 2.
処理をコンピュータに実行させる配送プログラム。 When a subscription is received from a proxy deployed at an external base, the broker management information that associates the broker deployed at the base with the publish topic received by the broker will be delivered by the subscription. Transfer the subscription to a broker associated with the requested topic,
A delivery program that lets a computer perform processing.
前記第1の拠点とは異なる第2の拠点に配備されているプロキシを代表する第2のプロキシと、
を含む、分散処理システムであって、
前記第1のプロキシは、
サブスクライバからサブスクライブを受信した場合、前記サブスクライブで配送が要求されるトピックの情報を用いて、前記サブスクライブの配送先を示す情報を取得し、
前記配送先を示す情報に前記第2の拠点が含まれている場合、前記第2の拠点に配備されているプロキシを代表する前記第2のプロキシに前記サブスクライブを転送し、
前記第2のプロキシは、
前記第1のプロキシから前記サブスクライブを受信した場合、前記第2の拠点内に配備されているブローカと、前記ブローカで受けているパブリッシュのトピックとを対応づけるブローカ管理情報において、前記サブスクライブで配送が要求されるトピックに対応づけられているブローカに、前記サブスクライブを配送する、
ことを特徴とする、分散処理システム。 With the first proxy deployed at the first base,
A second proxy that represents a proxy deployed at a second base different from the first base, and
Is a distributed processing system that includes
The first proxy is
When a subscription is received from a subscriber, information indicating the delivery destination of the subscription is obtained by using the information of the topic for which delivery is required by the subscription.
When the information indicating the delivery destination includes the second base, the subscription is transferred to the second proxy representing the proxy deployed at the second base.
The second proxy is
When the subscription is received from the first proxy, the subscriber manages information that associates the broker deployed in the second base with the publish topic received by the broker in the subscription. Deliver the subscription to a broker associated with the topic for which delivery is required.
A distributed processing system characterized by this.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019090495A JP7207145B2 (en) | 2019-05-13 | 2019-05-13 | Information processing device, delivery program and distributed processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019090495A JP7207145B2 (en) | 2019-05-13 | 2019-05-13 | Information processing device, delivery program and distributed processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020187466A true JP2020187466A (en) | 2020-11-19 |
JP7207145B2 JP7207145B2 (en) | 2023-01-18 |
Family
ID=73223492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019090495A Active JP7207145B2 (en) | 2019-05-13 | 2019-05-13 | Information processing device, delivery program and distributed processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7207145B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017224032A (en) * | 2016-06-13 | 2017-12-21 | 日本電信電話株式会社 | Distributed cooperation proxy and asynchronous messaging system using the same |
US20180167476A1 (en) * | 2016-12-12 | 2018-06-14 | Sap Se | Meta broker for publish-subscribe-based messaging |
JP2018148560A (en) * | 2017-03-08 | 2018-09-20 | 株式会社リコー | Subsumption architecture for processing fragments of video stream |
-
2019
- 2019-05-13 JP JP2019090495A patent/JP7207145B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017224032A (en) * | 2016-06-13 | 2017-12-21 | 日本電信電話株式会社 | Distributed cooperation proxy and asynchronous messaging system using the same |
US20180167476A1 (en) * | 2016-12-12 | 2018-06-14 | Sap Se | Meta broker for publish-subscribe-based messaging |
JP2018148560A (en) * | 2017-03-08 | 2018-09-20 | 株式会社リコー | Subsumption architecture for processing fragments of video stream |
Non-Patent Citations (1)
Title |
---|
川口 遼 RYO KAWAGUCHI: "MQTTにおける地理的分散Brokerシステムの開発", 電子情報通信学会2018年通信ソサイエティ大会講演論文集2 PROCEEDINGS OF THE 2018 IEICE COMMUNICAT, JPN6022051130, 28 August 2018 (2018-08-28), JP, ISSN: 0004936805 * |
Also Published As
Publication number | Publication date |
---|---|
JP7207145B2 (en) | 2023-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4753052B2 (en) | Content delivery method and system | |
EP1606917B1 (en) | System and method for publish/subscribe messaging | |
US8306979B2 (en) | Service query, selection, routing and propagation | |
KR101473317B1 (en) | Cloud computing system and traffic distributing and control method in cloud computing system | |
JP5847185B2 (en) | Content sharing method and apparatus using group change information in content-centric network environment | |
US20070083618A1 (en) | Method and apparatus for providing home network device service to an external device through web service | |
US20080104258A1 (en) | System and method for dynamic data discovery in service oriented networks with peer-to-peer based communication | |
JP2019186771A (en) | Information processing apparatus, distributed processing program, and distributed processing system | |
US7934218B2 (en) | Interprocess communication management using a socket layer | |
JP2008234206A (en) | Information transmitting system, information processor, information management device, and information transmission method | |
JP4663948B2 (en) | Anonymous subject-based addressing method and apparatus | |
US9560135B2 (en) | Technique for communication between networks for distributing digital contents | |
EP2996298A1 (en) | Open m2m system and method | |
JP2014038483A (en) | Data distribution system, data distribution method, and program | |
EP2635001B1 (en) | System for providing access to presence status for mobile devices | |
JP7207145B2 (en) | Information processing device, delivery program and distributed processing system | |
US20230283695A1 (en) | Communication Protocol for Knative Eventing's Kafka components | |
KR20190068384A (en) | Method and apparatus of data-centric networking with Network nodes | |
KR20110065917A (en) | The communication middleware for providing publish/subscribe service in regard to latency optimization | |
CN113382050B (en) | Message transmission method, system, computing device and storage medium | |
Grubitzsch et al. | A Concept for Interoperable IoT Intercloud Architectures | |
Piro et al. | A de-verticalizing middleware for IoT systems based on information centric networking design | |
WO2023238284A1 (en) | Management system, management method, and management program | |
US20230171830A1 (en) | Apparatus and method for configuring data communication between robot components in different networks | |
JP2007323350A (en) | Data processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221122 |
|
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: 20221206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7207145 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |