JP2020187466A - Information processor and delivery program and decentralization processing system - Google Patents

Information processor and delivery program and decentralization processing system Download PDF

Info

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
Application number
JP2019090495A
Other languages
Japanese (ja)
Other versions
JP7207145B2 (en
Inventor
菜美 長田
Nami Osada
菜美 長田
上野 仁
Hitoshi Ueno
仁 上野
孝司 榎並
Koji Enami
孝司 榎並
公敬 山崎
Kimitaka Yamazaki
公敬 山崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019090495A priority Critical patent/JP7207145B2/en
Publication of JP2020187466A publication Critical patent/JP2020187466A/en
Application granted granted Critical
Publication of JP7207145B2 publication Critical patent/JP7207145B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

To reduce the amount of subscriber communication between locations.SOLUTION: An information processor according to one embodiment includes a forwarding unit, when receiving a subscribe from a proxy deployed at an external location, forwarding the subscribe to the broker that corresponds to a topic that requires delivery in the subscribe in broker management information mapping a broker deployed in the location to a topic of publication being received by the broker.SELECTED DRAWING: Figure 21

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, Patent Document 1 and Patent Document 2)

特開2017−224032号公報JP-A-2017-224032 特開2009−110165号公報Japanese Unexamined Patent Publication No. 2009-110165

しかしながら、エッジコンピューティングによる分散処理システムにおいて、パブリッシュ・サブスクライブモデルのデータ収集方法を用いる場合に、拠点間でサブスクライブの無駄な通信が発生することがある。 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.

例示的なパブリッシュ・サブスクライブモデルを示す図である。It is a figure which shows an exemplary publish-subscribe model. ブローカの動作例を示す説明図である。It is explanatory drawing which shows the operation example of the broker. 例示的な分散処理システムのシステム構成を示す説明図である。It is explanatory drawing which shows the system structure of the exemplary distributed processing system. 拠点管理部およびプロキシを配備した例示的な分散処理システムを示す図である。It is a figure which shows the example distributed processing system which deployed the site management part and a proxy. 配送先提供依頼を例示する図である。It is a figure which illustrates the delivery destination offer request. 例示的な拠点管理情報を示す図である。It is a figure which shows the exemplary base management information. プロキシによるメッセージの宛先変更を例示する図である。It is a figure which exemplifies the address change of a message by a proxy. 例示的な分散処理システムにおけるパブリッシャの増加を示す図である。It is a figure which shows the increase of publishers in an exemplary distributed processing system. 配備するプロキシとブローカとを増やした分散処理システムの構成を示す図である。It is a figure which shows the structure of the distributed processing system which increased the number of proxies and brokers to deploy. 実施形態に係るサーバの機能ブロック構成を例示する図である。It is a figure which illustrates the functional block configuration of the server which concerns on embodiment. 実施形態に係るプロキシの機能ブロック構成を例示する図である。It is a figure which illustrates the functional block structure of the proxy which concerns on embodiment. 実施形態に係る拠点管理情報を例示する図である。It is a figure which illustrates the base management information which concerns on embodiment. 実施形態に係るブローカ管理情報を例示する図である。It is a figure which illustrates the broker management information which concerns on embodiment. 実施形態に係る拠点管理部が実行する配送先通知処理の動作フローを例示する図である。It is a figure which illustrates the operation flow of the delivery destination notification processing executed by the base management part which concerns on embodiment. 実施形態に係るプロキシの制御部が実行するパブリッシュの配送処理の動作フローを例示する図である。It is a figure which illustrates the operation flow of the delivery process of the publish executed by the control part of the proxy which concerns on embodiment. 実施形態に係る代表プロキシに送信されるメッセージを例示する図である。It is a figure which illustrates the message transmitted to the representative proxy which concerns on embodiment. 実施形態に係る代表プロキシとして動作するプロキシによるパブリッシュの配送処理の動作フローを例示する図である。It is a figure which illustrates the operation flow of the delivery processing of the publish by the proxy which operates as the representative proxy which concerns on embodiment. 実施形態に係るプロキシの制御部が実行するサブスクライブの配送処理の動作フローを例示する図である。It is a figure which illustrates the operation flow of the delivery process of the subscription executed by the control part of the proxy which concerns on embodiment. 実施形態に係る代表プロキシとして動作するプロキシの制御部が実行するサブスクライブの配送処理の動作フローを例示する図である。It is a figure which illustrates the operation flow of the delivery processing of the subscription executed by the control part of the proxy which operates as the representative proxy which concerns on embodiment. 実施形態に係る代表プロキシを介したパブリッシュの配送の流れを例示する図である。It is a figure which illustrates the flow of delivery of a publish via the representative proxy which concerns on embodiment. 実施形態に係る代表プロキシを介したサブスクライブの配送の流れを例示する図である。It is a figure which illustrates the flow of delivery of the subscription via the representative proxy which concerns on embodiment. 実施形態に係るサーバ、エッジ装置EG、ゲートウェイ装置GWなどを実現するためのコンピュータのハードウェア構成を例示する図である。It is a figure which illustrates the hardware configuration of the computer for realizing the server, the edge device EG, the gateway device GW and the like which concerns on embodiment.

以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。 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 publisher 101 is provided to the subscriber 103 via the broker 102.

パブリッシャ101は、データを提供するものであるが、そのデータに関心のあるサブスクライバ103(例えば、アプリケーション)に関する情報は有していなくてもよく、ブローカ102のトピックを送信先としてデータを送信する。パブリッシャ101は、例えば、工場などに設置される生産機器、組立機器、センサ、カメラなどの機器である。パブリッシャ101は、これらの機器で収集されたデータをパブリケーションと呼ばれるメッセージ形式で生成し、これらのメッセージのトピックを定義して、ブローカ102に送信する。 The publisher 101 provides the data, but may not have information about the subscriber 103 (eg, the application) who is interested in the data, and transmits the data to the topic of the broker 102 as a destination. The publisher 101 is, for example, equipment such as production equipment, assembly equipment, sensors, and cameras installed in factories and the like. The publisher 101 generates the data collected by these devices in a message format called publication, defines the topics of these messages, and sends them to the broker 102.

また、サブスクライバ103は、データを要求するものである。サブスクライバ103は、データの収集を行うパブリッシャ101に関する情報は有していなくてもよく、ブローカ102にトピックの情報の配信を申し込んで、配信を申し込んだトピックに登録されるメッセージの配信を受ける。サブスクライバ103は、例えば、パブリッシャ101で取集されたデータを用いて実行される処理(アプリケーション)である。 In addition, the subscriber 103 requests data. The subscriber 103 does not have to have information about the publisher 101 that collects data, and requests the broker 102 to deliver the topic information, and receives the delivery of the message registered in the topic for which the delivery is requested. The subscriber 103 is, for example, a process (application) executed using the data collected by the publisher 101.

続いて、ブローカ102の動作例について説明する。ブローカ102は、パブリッシャ101とサブスクライバ103との間でのデータのやり取りを仲介する。 Subsequently, an operation example of the broker 102 will be described. The broker 102 mediates the exchange of data between the publisher 101 and the subscriber 103.

図2は、ブローカ102の動作例を示す説明図である。図2において、各サブスクライバ103(#1〜#4)は、ブローカ102に対して、トピックのデータを要求する登録を行う。また、各パブリッシャ101(#1〜#3)は、トピックとデータとを含むメッセージ20をブローカ102宛に送信する。 FIG. 2 is an explanatory diagram showing an operation example of the broker 102. In FIG. 2, each subscriber 103 (# 1 to # 4) registers with the broker 102 to request topic data. Further, each publisher 101 (# 1 to # 3) sends a message 20 including a topic and data to the broker 102.

トピックは、データの特徴を表す情報であり、例えば、データのタイトル、種類、形式などを示す情報であってよい。 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 broker 102 manages which subscriber 103 has applied for the distribution of data on which topic. In the example of FIG. 2, the broker 102 manages the correspondence between the subscriber 103 and the topic by using the distribution management information 200 that stores the topic and the subscriber ID in association with each other. The subscriber ID is an identifier that uniquely identifies the subscriber 103. For example, when the broker 102 receives an application for distribution of topic data from the subscriber 103, the broker 102 registers the subscriber ID of the subscriber 103 in the distribution management information 200 in association with the topic for which the application for distribution has been made.

そして、ブローカ102は、例えば、パブリッシャ:#1からのトピック1とデータとを含むメッセージ20を受け付けると、トピック1のメッセージ・キューにメッセージ20を入れる。そして、ブローカ102は、トピック1のメッセージ・キューに入れたメッセージ20を先に入れたものから順に、配信管理情報200を参照して、トピック1のデータを要求したサブスクライバ#1,#2宛に送る。 Then, when the broker 102 receives the message 20 including the topic 1 and the data from the publisher: # 1, for example, the broker 102 puts the message 20 in the message queue of the topic 1. Then, the broker 102 refers to the distribution management information 200 in order from the one in which the message 20 put in the message queue of the topic 1 is put first, and addresses the subscribers # 1 and # 2 who requested the data of the topic 1. send.

なお、以下の説明では、サブスクライバ103が、あるトピックのデータを要求する登録を行うこと、あるいは、あるトピックのデータを要求するメッセージ自体を「サブスクライブ」と呼ぶことがある。また、パブリッシャ101が、トピックとデータとを含むメッセージを送信すること、あるいは、トピックとデータとを含むメッセージ自体を「パブリッシュ」と呼ぶことがある。 In the following description, the subscriber 103 may register to request the data of a certain topic, or the message itself requesting the data of a certain topic may be referred to as "subscribe". Further, the publisher 101 may send a message including the topic and data, or the message itself including the topic and data may be referred to as "publish".

このようなパブリッシュ・サブスクライブモデルのデータ収集方法は、例えば、データをどのように用いるかは決まっていないものの、次々とデータを収集していくようなシステムなどに利用されている。そして、例えば、図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 processing system 300 by edge computing as shown in FIG. 3, the data collection method of the publish / subscribe model may be used.

図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 processing system 300. In FIG. 3, the distributed processing system 300 includes bases B0 to Bn (natural numbers of n: 1 or more). The bases B0 to Bn may be divided for each network in one example. For example, the base may be a place where a local network connected to a wide area network such as the Internet or a carrier network via a firewall and a gateway device GW is installed, and communication between the bases is via an external wide area network. May be done. For example, in the distributed processing system 300, the bases B0 to Bn are connected to each other so as to be able to communicate with each other via the network 310. The network 310 is, for example, a wide area network (WAN) or the Internet.

拠点B0は、サーバ301を含む。サーバ301は、例えば、クラウドコンピューティングのサーバコンピュータである。以下の説明では、拠点B0を「クラウド」と表記する場合がある。 The base B0 includes the server 301. The server 301 is, for example, a server computer for cloud computing. In the following description, base B0 may be referred to as “cloud”.

また、拠点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 network 320. The network 320 is, for example, a local area network (LAN).

ゲートウェイ装置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 server 301 may be implemented by a plurality of computers.

そして、例えば、以上のような分散処理システム300において、デバイスdvは、パブリッシャ101として動作してよい。また、例えば、サーバ301、エッジ装置EG、およびゲートウェイ装置GWには、サブスクライバ103として動作する処理(例えば、アプリケーション)が配備されていてよい。また更に、サーバ301、エッジ装置EG、およびゲートウェイ装置GWには、ブローカ102として動作するアプリケーションが配備されていてもよい。 Then, for example, in the distributed processing system 300 as described above, the device dv may operate as the publisher 101. Further, for example, the server 301, the edge device EG, and the gateway device GW may be provided with a process (for example, an application) that operates as the subscriber 103. Furthermore, an application that operates as a broker 102 may be deployed in the server 301, the edge device EG, and the gateway device GW.

ここで、例えば、以上のような分散処理システム300において、パブリッシュ・サブスクライブモデルのデータ収集方法を用いる場合に、クラウド上だけでなく、拠点側にもブローカ102を配置することが望ましいことがある。 Here, for example, when the data collection method of the publish / subscribe model is used in the distributed processing system 300 as described above, it may be desirable to arrange the broker 102 not only on the cloud but also on the base side. ..

例えば、ある拠点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 broker 102 is in the cloud, the data will be sent to the cloud once, and the effect of moving the subscriber 103 to the base side may not be obtained. Therefore, it is desirable to arrange the broker 102 on the base side where the subscriber 103 is moved from the cloud.

一方で、パブリッシャ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 publisher 101 to change the destination of the message (publish). For example, the device dv in each base serving as the publisher 101 may not accept remote control from the server 301 of the distributed processing system 300. In this case, when the broker 102 is moved to the base side, it may be difficult to change the destination of the message (publish) of the device dv from the broker 102 of the cloud to the broker 102 of the base side.

このため、例えば、クラウドにメッセージの配送先を管理する拠点管理部401を配備し、また、拠点にプロキシ402を配備して、プロキシ402でメッセージの配送先を制御することが考えられる。 Therefore, for example, it is conceivable to deploy a base management unit 401 that manages a message delivery destination in the cloud, and to deploy a proxy 402 at the base, and the proxy 402 controls the message delivery destination.

図4は、拠点管理部401およびプロキシ402を配備した例示的な分散処理システム300を示す図である。なお、プロキシ402は、一例では、サーバ301、エッジ装置EG、およびゲートウェイ装置GWにおいて、アプリケーションとして配備されてよい。 FIG. 4 is a diagram showing an exemplary distributed processing system 300 in which the base management unit 401 and the proxy 402 are deployed. In addition, the proxy 402 may be deployed as an application in the server 301, the edge device EG, and the gateway device GW, for example.

図4の例では、拠点B0(クラウド)上のサーバ301には、拠点管理部401、およびプロキシ402が配備されている。また、サーバ301には、ブローカ102と、サブスクライバ103としてトピックBのデータを用いて処理を実行する処理BおよびトピックCのデータを用いて処理を実行する処理Cとが配備されている。 In the example of FIG. 4, the base management unit 401 and the proxy 402 are deployed on the server 301 on the base B0 (cloud). Further, the server 301 is provided with a broker 102, a process B that executes a process using the data of the topic B as a subscriber 103, and a process C that executes a process using the data of the topic C.

また、例えば、図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 publisher 101, the broker 102, the process A that executes the process using the data of the topic A as the subscriber 103, and the proxy 402. Has been done. A proxy 402 and a sensor C as a publisher 101 are deployed at the base B2.

続いて、図4を参照して、プロキシ402を介したメッセージの配送の流れについて説明する。 Subsequently, the flow of message delivery via the proxy 402 will be described with reference to FIG.

(パブリッシュのプロキシを介した配送例)
まず、パブリッシュのプロキシ402を介した配送例について説明する。例えば、パブリッシャ101は、プロキシ402に宛ててメッセージ(パブリッシュ)を送信するように設定されてよい。例えば、図4の拠点B1では、パブリッシャ101であるセンサAは、センサで検出したデータとそのデータのトピックとを含むパブリッシュをプロキシ402に宛てて送信する(図4の(1a))。
(Example of delivery via publish proxy)
First, an example of delivery via the publish proxy 402 will be described. For example, the publisher 101 may be configured to send a message (publish) to the proxy 402. For example, at the base B1 in FIG. 4, the sensor A, which is the publisher 101, transmits a publish including the data detected by the sensor and the topic of the data to the proxy 402 ((1a) in FIG. 4).

プロキシ402は、例えば、データを受信すると、データの配送先となるブローカ102を、クラウドの拠点管理部401に問い合わせる(図4の(2a))。 When the proxy 402 receives the data, for example, the proxy 402 inquires of the broker 102, which is the delivery destination of the data, to the cloud base management unit 401 ((2a) in FIG. 4).

図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 destination provision request 500 that the proxy 402 sends to the base management unit 401 in order to inquire about the delivery destination of the message. The delivery destination provision request 500 may include, for example, a message type, a base ID, and a topic. The message type is information indicating the type of the message for which the proxy 402 inquires about the delivery destination. For example, when inquiring the base management unit 401 for the delivery destination of the publish notified by the publisher 101, the proxy 402 may register the information indicating the publish in the message type. Further, for example, when inquiring the base management unit 401 for the delivery destination of the subscription notified by the subscriber 103, the proxy 402 may register the information indicating the subscription in the message type. The base ID is, for example, an identifier that uniquely identifies the base where the proxy 402 of the source of the delivery destination provision request 500 is deployed. The topic may be, for example, information indicating a topic of data notified from the publisher 101 when the message type is publish. The topic of the data notified by the publisher 101 may be notified by the publisher 101 together with the data notified by the publisher 101, for example. Further, the topic may be, for example, information indicating a topic for which data delivery is required in the subscription notified by the subscriber 103 when the message type is subscribe.

そして、図4の(2a)において、拠点管理部401は、例えば、プロキシ402から配送先提供依頼500を受信すると、受信した配送先提供依頼500に含まれる情報と、拠点管理情報600とに基づいて、メッセージの配送先を特定する。 Then, in (2a) of FIG. 4, when the base management unit 401 receives the delivery destination provision request 500 from the proxy 402, for example, it is based on the information included in the received delivery destination provision request 500 and the base management information 600. To specify the delivery address of the message.

図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 base management information 600. The site management information 600 may be, for example, information that manages information about a proxy 402, a broker 102, a subscriber 103, a publisher 101, and the like deployed at each site. In FIG. 6, in the site management information 600, for example, an entry associated with a site ID, a proxy address, a broker address, a subscriber, and a topic is registered. The base ID of the base management information 600 is, for example, an identifier that uniquely identifies the base. The proxy address of the site management information 600 is, for example, the address of the proxy 402 deployed at the site identified by the site ID of the entry. The broker address of the base management information 600 is, for example, the address of the broker 102 deployed at the base identified by the base ID of the entry. The broker address "-(null)" may indicate, for example, that the broker 102 is not deployed at the base identified by the base ID of the entry. The subscriber of the site management information 600 is, for example, information indicating the subscriber 103 deployed at the site identified by the site ID of the entry. The subscriber "-" indicates that the subscriber 103 is not deployed at the base identified by the base ID of the entry. The topic of the site management information 600 is, for example, information indicating a publish topic received from the publisher 101 by the broker 102 deployed at the site identified by the site ID of the entry. The topic "-" indicates that there is no publish received by the broker 102 at the site identified by the site ID of the entry.

そして、拠点管理情報600を参照することで、拠点管理部401は、配送先提供依頼500で問い合わせを受けたメッセージの配送先を特定することができる。例えば、拠点管理部401は、メッセージ種別がパブリッシュである場合、配送先提供依頼500の送信元拠点と一致する拠点IDを有する拠点管理情報600のエントリのブローカアドレスを配送先として特定し、配送先提供依頼500の送信元のプロキシ402に通知する。そして、プロキシ402は、拠点管理部401からの応答で通知された配送先にメッセージ(パブリッシュ)の宛先を変更してメッセージを送信する(図4の(3a))。 Then, by referring to the base management information 600, the base management unit 401 can specify the delivery destination of the message received in the delivery destination provision request 500. For example, when the message type is publish, the base management unit 401 identifies the broker address of the entry of the base management information 600 having the base ID matching the source base of the delivery destination provision request 500 as the delivery destination, and specifies the delivery destination. Notify the proxy 402 of the source of the offer request 500. Then, the proxy 402 changes the destination of the message (publish) to the delivery destination notified by the response from the base management unit 401, and transmits the message ((3a) in FIG. 4).

図7は、プロキシ402によるメッセージの宛先変更を例示する図である。図7(a)は、パブリッシュを例示している。センサなどのパブリッシャ101から出力されるパブリッシュは、例えば、プロキシアドレス、パブリッシャアドレス、トピック、およびデータを含んでよい。プロキシアドレスは、例えば、パブリッシュの宛先となるプロキシ402のアドレスである。パブリッシャアドレスは、パブリッシュの送信元のパブリッシャ101のアドレスである。トピックは、パブリッシュのデータのトピックである。データは、パブリッシュの送信元のパブリッシャ101で収集されたデータである。 FIG. 7 is a diagram illustrating a message destination change by the proxy 402. FIG. 7 (a) illustrates publishing. The publish output from the publisher 101, such as a sensor, may include, for example, a proxy address, publisher address, topic, and data. The proxy address is, for example, the address of the proxy 402 that is the destination of publishing. The publisher address is the address of the publisher 101 from which the publication originated. Topics are topics for publish data. The data is data collected by publisher 101, the source of the publish.

そして、プロキシ402は、拠点管理部401からの応答で通知された配送先にメッセージ(パブリッシュ)の宛先を変更してメッセージを配送してよい。図7(b)は、宛先の変更後のパブリッシュを例示しており、プロキシアドレスが、拠点管理部401からの応答で通知された配送先のブローカアドレスに変更されている。 Then, the proxy 402 may change the destination of the message (publish) and deliver the message to the delivery destination notified by the response from the base management unit 401. FIG. 7B exemplifies the publication after the destination is changed, and the proxy address is changed to the broker address of the delivery destination notified in the response from the base management unit 401.

以上のように、例えば、分散処理システム300においてブローカ102を別の拠点に移動した場合にも、パブリッシャ101が送信するパブリッシュの宛先を変更しなくても、パブリッシュをプロキシ402を介して適切なブローカ102に配送することができる。 As described above, for example, even when the broker 102 is moved to another base in the distributed processing system 300, the publish can be published via the proxy 402 without changing the publishing destination sent by the publisher 101. It can be delivered to 102.

なお、拠点B2のように、ブローカ102が配備されていない場合には、拠点管理部401は、拠点B2のプロキシ402からの配送先提供依頼500に対して、クラウド(拠点B0)に配備されているブローカ102のブローカアドレスを通知してよい。この場合、拠点B2のプロキシ402は、クラウド(拠点B0)のブローカ102にパブリッシュを配送してよい(図4の(4a))。 When the broker 102 is not deployed as in the base B2, the base management unit 401 is deployed in the cloud (base B0) in response to the delivery destination provision request 500 from the proxy 402 of the base B2. The broker address of the broker 102 may be notified. In this case, the proxy 402 at the base B2 may deliver the publish to the broker 102 at the cloud (base B0) ((4a) in FIG. 4).

(サブスクライブのプロキシを介した配送例)
続いて、サブスクライブのプロキシ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 subscription proxy 402 will be described. Delivery of subscriptions can also be controlled by proxy 402. For example, the subscriber 103 may be configured to send a message (subscribe) to the proxy 402. In the example of FIG. 4, the subscriber 103 of the process B of the base B0 transmits a subscription requesting the data of the topic B to the proxy 402 ((1b) of FIG. 4).

プロキシ402は、例えば、サブスクライブを受信すると、サブスクライブの配送先となるブローカ102を、クラウドの拠点管理部401に問い合わせる(図4の(2b))。例えば、プロキシ402は、図5で示した配送先提供依頼500を拠点管理部401に送信して、サブスクライブの配送先を問い合わせてよい。なお、サブスクライブの配送先の問い合わせでは、配送先提供依頼500のメッセージ種別には、サブスクライブを示す情報が登録されてよい。また、拠点IDは、例えば、配送先提供依頼500の送信元のプロキシ402が配備されている拠点を一意に識別する識別子である。配送先提供依頼500のトピックには、例えば、サブスクライブで配送が要求されるトピックが登録されてよい。 When the proxy 402 receives the subscription, for example, it inquires of the broker 102, which is the delivery destination of the subscription, to the base management unit 401 of the cloud ((2b) in FIG. 4). For example, the proxy 402 may send the delivery destination provision request 500 shown in FIG. 5 to the base management unit 401 to inquire about the delivery destination of the subscription. In the inquiry of the delivery destination of the subscription, the information indicating the subscription may be registered in the message type of the delivery destination provision request 500. Further, the base ID is, for example, an identifier that uniquely identifies the base where the proxy 402 of the source of the delivery destination provision request 500 is deployed. In the topic of the delivery destination provision request 500, for example, a topic for which delivery is requested by subscription may be registered.

拠点管理部401は、例えば、プロキシ402から配送先提供依頼500を受信すると、配送先提供依頼500のメッセージ種別が、パブリッシュか、またはサブスクライブかを特定する。そして、例えば、メッセージ種別がサブスクライブである場合、拠点管理部401は、配送先提供依頼500のトピックと一致するトピックを含む拠点管理情報600のエントリに含まれるブローカアドレスを配送先として特定する。そして、拠点管理部401は、特定した配送先のブローカアドレスを、配送先提供依頼500の送信元のプロキシ402に通知する。 When the base management unit 401 receives the delivery destination provision request 500 from the proxy 402, for example, the base management unit 401 specifies whether the message type of the delivery destination provision request 500 is publish or subscribe. Then, for example, when the message type is subscribe, the base management unit 401 specifies the broker address included in the entry of the base management information 600 including the topic matching the topic of the delivery destination provision request 500 as the delivery destination. Then, the base management unit 401 notifies the proxy 402 of the source of the delivery destination provision request 500 of the broker address of the specified delivery destination.

そして、プロキシ402は、拠点管理部401からの応答で通知された配送先にメッセージ(サブスクライブ)の宛先を変更してメッセージを送信する(図4の(3b))。 Then, the proxy 402 changes the destination of the message (subscribe) to the delivery destination notified by the response from the base management unit 401 and transmits the message ((3b) in FIG. 4).

図7(c)は、サブスクライブを例示している。例えば、サブスクライバ103がデータを要求するために発行するサブスクライブは、プロキシアドレス、サブスクライバアドレス、サブスクライバID、およびトピックを含んでよい。プロキシアドレスは、例えば、サブスクライバ103からのサブスクライブの宛先となるプロキシ402のアドレスである。サブスクライバアドレスは、例えば、サブスクライブの送信元のサブスクライバ103のアドレスである。サブスクライバID(identifier)は、例えば、サブスクライブの送信元のサブスクライバ103を一意に識別する識別情報である。トピックは、例えば、サブスクライブでデータの送信が要求されるトピックを示す情報である。 FIG. 7 (c) illustrates subscription. For example, a subscription issued by subscriber 103 to request data may include a proxy address, subscriber address, subscriber ID, and topic. The proxy address is, for example, the address of the proxy 402 to which the subscriber 103 subscribes. The subscriber address is, for example, the address of the subscriber 103, which is the source of the subscription. The subscriber ID (identifier) is, for example, identification information that uniquely identifies the subscriber 103 that is the source of the subscription. A topic is, for example, information indicating a topic for which data is required to be sent by subscription.

そして、プロキシ402は、拠点管理部401からの応答で通知された配送先にメッセージ(サブスクライブ)の宛先を変更してメッセージを配送してよい。図7(d)は、宛先の変更後のサブスクライブを例示しており、プロキシアドレスが、拠点管理部401からの応答で通知された配送先のブローカアドレスに変更されている。 Then, the proxy 402 may change the destination of the message (subscribe) and deliver the message to the delivery destination notified by the response from the base management unit 401. FIG. 7D exemplifies the subscription after the change of the destination, and the proxy address is changed to the broker address of the delivery destination notified in the response from the base management unit 401.

以上のように、例えば、分散処理システム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 broker 102 is moved to another base in the distributed processing system 300, the subscription can be subscribed to the appropriate broker via the proxy 402 without changing the subscription destination of the subscriber 103. It can be delivered to 102. For example, in FIG. 4, the subscription requesting the data of the topic B issued by the process B is delivered to the broker 102 (address 4) deployed at the base 1 where the topic B is registered in the base management information 600. ((3b) in FIG. 4). On the other hand, the subscription requesting the data of the topic C issued by the process C is delivered to the broker 102 (address 3) deployed at the base 0 where the topic C is registered in the base management information 600 (FIG. 4 (3b')).

以上で述べたように、分散処理システム300においてある拠点から別の拠点へと拠点をまたいでパブリッシャ101、ブローカ102、およびサブスクライバ103の配置を変更したとしても、プロキシ402を用いてメッセージを適切な配送先に配送することができる。 As described above, even if the placement of the publisher 101, the broker 102, and the subscriber 103 is changed from one base to another in the distributed processing system 300, the message is appropriately sent by using the proxy 402. It can be delivered to the delivery destination.

しかしながら、近年、例えば、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 publishers 101 such as sensors deployed at bases may also increase as shown in FIG. As the number of publishers 101 increases, the number of gateway devices GW accommodating those publishers 101 may also increase. In this case, since the amount of data delivered from the publisher 101 to the broker 102 via the proxy 402 increases, the processing load on the proxy 402 and the broker 102 may increase. As a result, transfer delays and the like may occur, which may be a problem in CPS (Cyber-Physical System) applications that require real-time performance.

そのため、例えば、センサの数の多い拠点において、プロキシ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 proxies 402 and brokers 102 to distribute the processing load. FIG. 9 is a diagram showing a configuration of a distributed processing system 300 in which proxies 402 and brokers 102 deployed at base B1 are increased. As shown in the base B1 of FIG. 9, by increasing the number of brokers 102 and proxies 402 to be deployed, processing can be distributed to the increased brokers 102 and proxies 402. Therefore, it is possible to reduce the processing amount per of the broker 102 and the proxy 402.

しかしながら、ブローカ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 brokers 102 is increased, the number of subscription delivery destinations may increase by the amount of the added brokers 102. For example, as shown in FIG. 9, it is assumed that the subscriber 103: process B deployed at the base B0 (cloud) sends a subscription requesting the delivery of the data of the topic B to the proxy 402 ((1) in FIG. 9). )). When the proxy 402 receives the subscription, it inquires the base management unit 401 about the delivery destination of the subscription ((2) in FIG. 9). Here, it is assumed that the added broker 102 is, for example, a broker 102 that processes the same topic as the proxy 402 originally installed at the base B1. In this case, in the response to the delivery destination provision request 500, in addition to the broker address of the originally installed broker 102, the broker address of the added broker 102 is also notified. As a result, the proxy 402 at the base B0 transmits a subscription requesting the delivery of the data of the topic B to both the broker 102 at the base B1 and the expanded broker 102 ((3) in FIG. 9). In this case, a plurality of the same subscriptions are transmitted from the base B0 (cloud) to one base B1, and it is useless communication between the bases to transmit a plurality of duplicate data between the same bases. Therefore, it is desired to provide a technology capable of suppressing the delivery of duplicate subscriptions between bases.

以下で述べる実施形態では、プロキシ402は、拠点管理部401に問い合わせて特定したサブスクライブの配送先が、自拠点とは異なる外部拠点である場合、配送先の拠点を代表する代表プロキシにサブスクライブを送信する。そのため、例えば、図9の(3)において、拠点間で複数のブローカ102に対して配送しているサブスクライブを、代表プロキシに集約して配送することができため、拠点間での重複したサブスクライブの配送を抑制することができる。なお、代表プロキシは、サブスクライブを受信すると、代表プロキシと同じ拠点に配備されているブローカ102にサブスクライブを配送する。以下、実施形態を更に詳細に説明する。 In the embodiment described below, when the delivery destination of the subscribe specified by inquiring to the base management unit 401 is an external base different from the own base, the proxy 402 subscribes to the representative proxy representing the base of the delivery destination. To send. Therefore, for example, in FIG. 9 (3), subscriptions delivered to a plurality of brokers 102 between bases can be aggregated and delivered to a representative proxy, so that duplicate subscriptions between bases can be performed. Live delivery can be suppressed. When the representative proxy receives the subscription, the representative proxy delivers the subscription to the broker 102 deployed at the same base as the representative proxy. Hereinafter, embodiments will be described in more detail.

図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 server 301 according to the embodiment. The server 301 includes, for example, a control unit 1001, a storage unit 1002, and a communication unit 1003. The control unit 1001 operates as, for example, a base management unit 401. Further, the control unit 1001 may operate as, for example, the broker 102, the subscriber 103, and the proxy 402 deployed in the server 301. The storage unit 1002 of the server 301 may store information such as base management information 1200, which will be described later, for example. Details of each of these units and further details of the information stored in the storage unit 1002 will be described later.

図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 proxy 402 according to the embodiment. The proxy 402 may be mounted on, for example, a server 301, an edge device EG, a gateway device GW, or the like. The proxy 402 includes, for example, a control unit 1101, a storage unit 1102, and a communication unit 1103. The control unit 1101 operates as, for example, a transfer unit 1111 and an acquisition unit 1112. The storage unit 1102 of the proxy 402 may store information such as broker management information 1300 when operating as a representative proxy, for example, as will be described later. Details of each of these units and further details of the information stored in the storage unit 1102 will be described later.

図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 base management information 1200 according to the embodiment. The site management information 1200 may be, for example, information that manages information about the proxy 402, the broker 102, the subscriber 103, the publisher 101, and the like deployed at each site. In the example of FIG. 12, in the site management information 1200, entries associated with the site ID, the representative proxy address, the broker address, the subscriber, and the topic are registered. The base ID of the base management information 1200 is, for example, an identifier that uniquely identifies the base. The representative proxy address of the site management information 1200 is, for example, the address of the representative proxy representing the proxy 402 deployed at the site identified by the site ID of the entry. The broker address of the base management information 1200 is, for example, the address of the broker 102 deployed at the base identified by the base ID of the entry. The broker address "-(null)" may indicate, for example, that the broker 102 is not deployed at the base identified by the base ID of the entry. The subscriber of the site management information 1200 is, for example, information indicating a subscriber deployed at the site identified by the site ID of the entry. The subscriber "-" indicates that the subscriber 103 is not deployed at the base identified by the base ID of the entry. The topic of the site management information 1200 is, for example, information indicating a publish topic received from the publisher 101 by the broker 102 deployed at the site identified by the site ID of the entry. The topic "-" indicates that there is no publish received by the broker 102 at the site identified by the site ID of the entry. When a plurality of brokers 102 are deployed at the base, the broker addresses of all the brokers 102 deployed at the base may be registered in the broker addresses of the base management information 1200. For example, when the user additionally deploys the broker 102 to the base B1 in the distributed processing system 300, the user additionally deploys the broker 102 to the broker address of the entry of the base ID: B1 of the base management information 1200. You may add a broker address.

また、図13は、ブローカ管理情報1300を例示する図である。ブローカ管理情報1300は、例えば、代表プロキシとして動作するプロキシ402の記憶部1102に記憶されていてよい。ブローカ管理情報1300には、例えば、ブローカアドレスおよびトピックが対応付けられたエントリが登録されている。ブローカ管理情報1300のブローカアドレスには、例えば、ブローカ管理情報1300を記憶する代表プロキシと同じ拠点に配備されているブローカ102のブローカアドレスが登録されてよい。また、ブローカ管理情報1300のトピックには、エントリのブローカアドレスで識別されるブローカ102で受信されるパブリッシュのトピックを示す情報が登録されてよい。 Further, FIG. 13 is a diagram illustrating broker management information 1300. The broker management information 1300 may be stored, for example, in the storage unit 1102 of the proxy 402 that operates as a representative proxy. In the broker management information 1300, for example, an entry associated with a broker address and a topic is registered. For the broker address of the broker management information 1300, for example, the broker address of the broker 102 deployed at the same base as the representative proxy that stores the broker management information 1300 may be registered. Further, in the topic of the broker management information 1300, information indicating the topic of the publish received by the broker 102 identified by the broker address of the entry may be registered.

続いて、実施形態に係る拠点管理部401が実行する配送先通知処理を説明する。図14は、実施形態に係る拠点管理部401が実行する配送先通知処理の動作フローを例示する図である。例えば、拠点管理部401は、プロキシ402から配送先提供依頼500を受信すると、図14の動作フローを開始してよい。 Subsequently, the delivery destination notification process executed by the base management unit 401 according to the embodiment will be described. FIG. 14 is a diagram illustrating an operation flow of a delivery destination notification process executed by the base management unit 401 according to the embodiment. For example, when the base management unit 401 receives the delivery destination provision request 500 from the proxy 402, the operation flow of FIG. 14 may be started.

ステップ1401(以降、ステップを“S”と記載し、例えば、S1401と表記する)において拠点管理部401は、受信した配送先提供依頼500のメッセージ種別がパブリッシュであるか、サブスクライブであるかを判定する。配送先提供依頼500のメッセージ種別がパブリッシュである場合、フローはS1402に進む。 In step 1401 (hereinafter, step is described as "S", for example, S1401), the base management unit 401 determines whether the message type of the received delivery destination provision request 500 is publish or subscribe. judge. If the message type of the delivery destination provision request 500 is publish, the flow proceeds to S1402.

S1402において拠点管理部401は、拠点管理情報1200を参照し、配送先提供依頼500の送信元拠点と拠点管理情報1200において対応づけられている代表プロキシと、ブローカアドレスとを特定する。なお、S1402において拠点管理部401は、配送先提供依頼500の送信元拠点を含む拠点管理情報1200のエントリに、配送先提供依頼500で通知されたトピックが登録されていない場合、配送先提供依頼500で通知されたトピックを登録してよい。 In S1402, the base management unit 401 refers to the base management information 1200, and identifies the source base of the delivery destination provision request 500, the representative proxy associated with the base management information 1200, and the broker address. In S1402, the base management unit 401 requests the delivery destination provision when the topic notified by the delivery destination provision request 500 is not registered in the entry of the base management information 1200 including the source base of the delivery destination provision request 500. You may register the topic notified by 500.

S1403において拠点管理部401は、特定した代表プロキシと、ブローカアドレスとを含む応答を、配送先提供依頼500を送信してきたプロキシ402に返信し、本動作フローは終了する。 In S1403, the base management unit 401 returns a response including the specified representative proxy and the broker address to the proxy 402 that has sent the delivery destination provision request 500, and this operation flow ends.

一方、S1401において配送先提供依頼500のメッセージ種別がサブスクライブである場合、フローはS1404に進む。 On the other hand, if the message type of the delivery destination provision request 500 is subscribe in S1401, the flow proceeds to S1404.

S1404において拠点管理部401は、拠点管理情報1200を参照し、配送先提供依頼500のトピックと拠点管理情報1200において対応づけられている拠点と代表プロキシアドレスとブローカアドレスとを特定する。 In S1404, the base management unit 401 refers to the base management information 1200, and identifies the topic of the delivery destination provision request 500, the base associated with the base management information 1200, the representative proxy address, and the broker address.

S1405において拠点管理部401は、特定した拠点と代表プロキシアドレスとブローカアドレスとを含む応答を、配送先提供依頼500を送信してきたプロキシ402に返信し、本動作フローは終了する。 In S1405, the base management unit 401 returns a response including the specified base, the representative proxy address, and the broker address to the proxy 402 that has sent the delivery destination provision request 500, and this operation flow ends.

以上で述べたように、図14の動作フローによれば、拠点管理部401は、配送先提供依頼500に応じて、メッセージの配送先に関する情報をプロキシ402に提供することができる。 As described above, according to the operation flow of FIG. 14, the base management unit 401 can provide the proxy 402 with information regarding the delivery destination of the message in response to the delivery destination provision request 500.

また、図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 control unit 1101 of the proxy 402 according to the embodiment. When the control unit 1101 of the proxy 402 receives the publish from the publisher 101, for example, the operation flow of FIG. 15 may be started.

S1501においてプロキシ402の制御部1101は、受信したパブリッシュからトピックの情報を抽出する。S1502においてプロキシ402の制御部1101は、受信したパブリッシュの配送先を拠点管理部401に問い合わせる。例えば、プロキシ402の制御部1101は、S1501で抽出したトピックを含む配送先提供依頼500を生成して拠点管理部401に送信し、パブリッシュの配送先を問い合わせてよい。 In S1501, the control unit 1101 of the proxy 402 extracts the topic information from the received publish. In S1502, the control unit 1101 of the proxy 402 inquires the base management unit 401 of the delivery destination of the received publish. For example, the control unit 1101 of the proxy 402 may generate a delivery destination provision request 500 including the topic extracted in S1501 and send it to the base management unit 401 to inquire about the delivery destination of the publish.

S1503においてプロキシ402の制御部1101は、拠点管理部401からの応答から、プロキシ402が配備されている拠点に複数のブローカ102が配備されているか否かを判定する。例えば、拠点管理部401からの応答に複数のブローカアドレスが含まれている場合、プロキシ402の制御部1101は、S1503においてYesと判定してよく、フローはS1504に進む。 In S1503, the control unit 1101 of the proxy 402 determines from the response from the base management unit 401 whether or not a plurality of brokers 102 are deployed at the base where the proxy 402 is deployed. For example, when the response from the base management unit 401 includes a plurality of broker addresses, the control unit 1101 of the proxy 402 may determine Yes in S1503, and the flow proceeds to S1504.

S1504においてプロキシ402の制御部1101は、拠点管理部401からの応答に含まれる代表プロキシアドレスを用いて、代表プロキシとして動作するプロキシ402にパブリッシュ1601を送信し、本動作フローは終了する。 In S1504, the control unit 1101 of the proxy 402 transmits the publish 1601 to the proxy 402 operating as the representative proxy using the representative proxy address included in the response from the site management unit 401, and this operation flow ends.

図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 control unit 1101 of the proxy 402 in S1504. The publish 1601 may include, for example, a representative proxy address, a broker address, a publisher address, a topic, and data. The representative proxy address of the publish 1601 is the representative proxy address notified in the response from the base management unit 401. The broker address of the publish 1601 is, for example, the broker address notified by the response from the base management unit 401. The publisher address, topic, and data of the publish 1601 may be, for example, the same information as the publisher address, topic, and data of the publish of FIG. 7A.

一方、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 base management unit 401 is one, it may be determined as No in S1503, and the flow proceeds to S1505.

S1505においてプロキシ402の制御部1101は、応答で通知されたブローカアドレスにパブリッシュを送信し、本動作フローは終了する。S1505で送信されるパブリッシュは、例えば、図7(b)に示すパブリッシュであってよい。 In S1505, the control unit 1101 of the proxy 402 transmits a publish to the broker address notified in the response, and this operation flow ends. The publish transmitted in S1505 may be, for example, the publish shown in FIG. 7 (b).

以上で述べたように、プロキシ402の制御部1101は、パブリッシュを受信した場合に、パブリッシュの配送先のブローカ102が拠点内に複数ある場合には、代表プロキシにパブリッシュを転送する。一方、プロキシ402の制御部1101は、パブリッシュの配送先のブローカ102が拠点内に1つである場合には、そのブローカ102にパブリッシュを配送する。 As described above, the control unit 1101 of the proxy 402 transfers the publish to the representative proxy when the publish is received and there are a plurality of brokers 102 to which the publish is delivered in the base. On the other hand, the control unit 1101 of the proxy 402 delivers the publish to the broker 102, which is the delivery destination of the publish, when there is only one broker 102 in the base.

続いて、代表プロキシとして動作するプロキシ402の制御部1101が、他のプロキシ402からパブリッシュ1601を受信した場合に実行するパブリッシュの配送処理について説明する。図17は、実施形態に係る代表プロキシとして動作するプロキシ402によるパブリッシュの配送処理の動作フローを例示する図である。 Subsequently, the publish delivery process executed when the control unit 1101 of the proxy 402 operating as the representative proxy receives the publish 1601 from another proxy 402 will be described. FIG. 17 is a diagram illustrating an operation flow of a publish delivery process by a proxy 402 that operates as a representative proxy according to the embodiment.

S1701においてプロキシ402の制御部1101は、パブリッシュ1601に含まれるブローカアドレスおよびトピックの情報を読み出す。 In S1701, the control unit 1101 of the proxy 402 reads out the broker address and topic information included in the publish 1601.

S1702においてプロキシ402の制御部1101は、読み出したブローカアドレスおよびトピックを含むエントリが、記憶部1102に記憶されているブローカ管理情報1300に登録されているか否かを判定する。読み出したブローカアドレスおよびトピックを含むエントリが、ブローカ管理情報1300に登録されていない場合(S1702がNo)、フローはS1703に進む。 In S1702, the control unit 1101 of the proxy 402 determines whether or not the entry including the read broker address and the topic is registered in the broker management information 1300 stored in the storage unit 1102. If the entry including the read broker address and topic is not registered in the broker management information 1300 (S1702 is No), the flow proceeds to S1703.

S1703においてプロキシ402の制御部1101は、ブローカ管理情報1300に、読み出したブローカアドレスおよびトピックを対応づけたエントリを登録し、フローはS1704に進む。なお、例えば、パブリッシュ1601から読み出したブローカアドレスを含むエントリが既にブローカ管理情報1300に含まれている場合には、プロキシ402の制御部1101は、そのエントリにパブリッシュ1601から読み出したトピックを追加してよい。 In S1703, the control unit 1101 of the proxy 402 registers an entry associated with the read broker address and the topic in the broker management information 1300, and the flow proceeds to S1704. For example, when an entry including the broker address read from the publish 1601 is already included in the broker management information 1300, the control unit 1101 of the proxy 402 adds the topic read from the publish 1601 to the entry. Good.

また、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 control unit 1101 of the proxy 402 delivers the publish 1601 to the broker 102 of the broker address associated with the topic specified in the publish 1601 and the broker management information 1300, and this operation flow ends. When a plurality of broker addresses associated with the topic specified in the publish 1601 and the broker management information 1300 are registered, the control unit 1101 of the proxy 402 sets the publish 1601 out of the plurality of brokers 102. It may be sent to a part. In one example, the control unit 1101 of the proxy 402 may distribute the publish 1601 to any of the plurality of brokers 102 so that the number of publish 1601s to be processed in a predetermined period approaches evenly. Thereby, the number of publishes 1601 processed by the plurality of brokers 102 in the base can be averaged to distribute the load.

以上の図17で述べた動作フローによれば、代表プロキシとして動作するプロキシ402の制御部1101は、パブリッシュ1601を拠点内のブローカ102に配送することができる。また、図17の動作フローによれば、代表プロキシとして動作するプロキシ402の制御部1101は、拠点内のブローカ102と、拠点内のパブリッシャ101が送信したパブリッシュのトピックの情報とを、ブローカ管理情報1300に登録することができる。 According to the operation flow described with reference to FIG. 17, the control unit 1101 of the proxy 402 operating as the representative proxy can deliver the publish 1601 to the broker 102 in the base. Further, according to the operation flow of FIG. 17, the control unit 1101 of the proxy 402 that operates as the representative proxy uses the broker 102 in the base and the information of the publish topic transmitted by the publisher 101 in the base as broker management information. It can be registered in 1300.

続いて、プロキシ402の制御部1101が実行するサブスクライブの配送処理について説明する。 Subsequently, the subscription delivery process executed by the control unit 1101 of the proxy 402 will be described.

図18は、実施形態に係るプロキシ402の制御部1101が実行するサブスクライブの配送処理の動作フローを例示する図である。例えば、プロキシ402の制御部1101は、サブスクライブを受信すると、図18の動作フローを開始してよい。 FIG. 18 is a diagram illustrating an operation flow of a subscription delivery process executed by the control unit 1101 of the proxy 402 according to the embodiment. For example, when the control unit 1101 of the proxy 402 receives the subscription, the operation flow of FIG. 18 may be started.

S1801においてプロキシ402の制御部1101は、受信したサブスクライブの配送先を問い合わせる配送先提供依頼500を拠点管理部401に送信し、その応答としてサブスクライブの配送先の情報を受信する。なお、拠点管理部401は、例えば、上述の図14の動作フローのS1404〜S1405の処理で応答を、配送先提供依頼500を送付したプロキシ402に返信してよい。また、この応答は、例えば、サブスクライブで要求されるトピックと拠点管理情報1200において対応づけられている拠点IDと、代表プロキシアドレスと、ブローカアドレスとを含んでよい。 In S1801, the control unit 1101 of the proxy 402 sends a delivery destination provision request 500 inquiring about the delivery destination of the received subscription to the base management unit 401, and receives the information of the delivery destination of the subscription as a response. The base management unit 401 may, for example, return a response in the processing of S1404 to S1405 of the operation flow of FIG. 14 described above to the proxy 402 that sent the delivery destination provision request 500. Further, this response may include, for example, a topic requested by subscription, a base ID associated with the base management information 1200, a representative proxy address, and a broker address.

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 control unit 1101 of the proxy 402 determines whether or not the delivery destination of the subscription notified by the response includes its own base. For example, the control unit 1101 of the proxy 402 determines whether or not the response received from the base management unit 401 includes a base ID that matches the base ID for identifying the own base stored in the storage unit 1102. Based on this, it may be determined whether or not the delivery destination of the subscription includes the own base. If the base ID that matches the base ID for identifying the own base stored in the storage unit 1102 is not included in the response received from the base management unit 401 (S1802 is No), the flow proceeds to S1804. On the other hand, when the base ID that matches the base ID for identifying the own base stored in the storage unit 1102 is included in the response received from the base management unit 401 (S1802 is Yes), the flow is set to S1803. move on.

S1803においてプロキシ402の制御部1101は、拠点管理部401から受信した応答に含まれるブローカアドレスにサブスクライブを配送し、フローはS1804に進む。なお、プロキシ402の制御部1101は、例えば、図7(d)のサブスクライブを配送先のブローカ102に送信してよい。 In S1803, the control unit 1101 of the proxy 402 delivers the subscription to the broker address included in the response received from the base management unit 401, and the flow proceeds to S1804. The control unit 1101 of the proxy 402 may, for example, transmit the subscription shown in FIG. 7D to the delivery destination broker 102.

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 control unit 1101 of the proxy 402 determines whether or not the delivery destination of the subscription includes an external base. For example, the control unit 1101 of the proxy 402 is based on whether or not the response received from the base management unit 401 includes a base ID different from the base ID for identifying the own base stored in the storage unit 1102. Therefore, it may be determined whether or not the delivery destination of the subscription includes an external base. If a base ID different from the base ID for identifying the own base stored in the storage unit 1102 is not included in the response received from the base management unit 401 (S1804 is No), this operation flow ends. On the other hand, when a base ID different from the base ID for identifying the own base stored in the storage unit 1102 is included in the response received from the base management unit 401 (S1804 is Yes), the flow proceeds to S1805. ..

S1805においてプロキシ402の制御部1101は、拠点管理部401から受信した応答に含まれている外部拠点の代表プロキシアドレスに、サブスクライブ1602を転送する。 In S1805, the control unit 1101 of the proxy 402 transfers the subscription 1602 to the representative proxy address of the external base included in the response received from the base management unit 401.

図16(b)は、S1805でプロキシ402の制御部1101が、代表プロキシアドレスに転送するサブスクライブ1602を例示している。サブスクライブ1602は、例えば、代表プロキシアドレス、サブスクライバアドレス、サブスクライバID、およびトピックを含んでよい。サブスクライブ1602の代表プロキシアドレスは、例えば、拠点管理部401からの応答で通知された代表プロキシアドレスである。また、サブスクライブ1602のサブスクライバアドレス、サブスクライバID、トピックはそれぞれ、例えば、図7(d)のサブスクライブのサブスクライバアドレス、サブスクライバID、トピックと同様の情報であってよい。 FIG. 16B illustrates a subscription 1602 that the control unit 1101 of the proxy 402 transfers to the representative proxy address in S1805. The subscribe 1602 may include, for example, a representative proxy address, a subscriber address, a subscriber ID, and a topic. The representative proxy address of the subscription 1602 is, for example, the representative proxy address notified in the response from the base management unit 401. Further, the subscriber address, subscriber ID, and topic of the subscription 1602 may be, for example, the same information as the subscriber address, subscriber ID, and topic of the subscription of FIG. 7D, respectively.

以上の図18の動作フローによれば、プロキシ402の制御部1101は、サブスクライブを受信すると、自拠点内のブローカ102にサブスクライブを配送し、また、外部拠点の代表プロキシにサブスクライブを転送することができる。 According to the operation flow of FIG. 18 above, when the control unit 1101 of the proxy 402 receives the subscription, it delivers the subscription to the broker 102 in its own base and transfers the subscription to the representative proxy of the external base. can do.

続いて、代表プロキシとして動作するプロキシ402の制御部1101によるサブスクライブの配送処理を説明する。図19は、代表プロキシとして動作するプロキシ402の制御部1101が実行するサブスクライブの配送処理の動作フローを例示する図である。例えば、プロキシ402の制御部1101は、外部拠点のプロキシ402からサブスクライブ1602を受信すると、図19の動作フローを開始してよい。 Subsequently, the delivery process of the subscription by the control unit 1101 of the proxy 402 that operates as the representative proxy will be described. FIG. 19 is a diagram illustrating an operation flow of a subscription delivery process executed by the control unit 1101 of the proxy 402 that operates as a representative proxy. For example, when the control unit 1101 of the proxy 402 receives the subscription 1602 from the proxy 402 of the external base, the operation flow of FIG. 19 may be started.

S1901においてプロキシ402の制御部1101は、サブスクライブ1602のトピックと対応するブローカ102のブローカアドレスを特定する。例えば、プロキシ402の制御部1101は、サブスクライブ1602のトピックと一致するトピックが登録されているブローカ管理情報1300のエントリのブローカアドレスを特定してよい。 In S1901, the control unit 1101 of the proxy 402 identifies the broker address of the broker 102 that corresponds to the topic of the subscribe 1602. For example, the control unit 1101 of the proxy 402 may specify the broker address of the entry of the broker management information 1300 in which the topic matching the topic of the subscription 1602 is registered.

S1902においてプロキシ402の制御部1101は、特定したブローカアドレスのブローカ102にサブスクライブを配送し、本動作フローは終了する。なお、プロキシ402の制御部1101は、例えば、図7(d)のサブスクライブを配送先のブローカ102に送信してよい。 In S1902, the control unit 1101 of the proxy 402 delivers the subscription to the broker 102 of the specified broker address, and this operation flow ends. The control unit 1101 of the proxy 402 may, for example, transmit the subscription shown in FIG. 7D to the delivery destination broker 102.

以上の図19の動作フローによれば、代表プロキシとして動作するプロキシ402の制御部1101は、外部拠点から転送されてきたサブスクライブ1602を、自拠点内のブローカ102に配送することができる。 According to the operation flow of FIG. 19 above, the control unit 1101 of the proxy 402 operating as the representative proxy can deliver the subscription 1602 transferred from the external base to the broker 102 in the own base.

続いて、図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 publisher 101 such as sensor A and sensor B at the base B1 in FIG. 20 ((1) in FIG. 20).

この場合、プロキシ402(アドレス5)は、拠点管理部401に配送先提供依頼500を送信し、パブリッシュの配送先を問い合わせる(図20の(2))。 In this case, the proxy 402 (address 5) sends a delivery destination provision request 500 to the base management unit 401 and inquires about the delivery destination of the publish ((2) in FIG. 20).

プロキシ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 brokers 102 to which the publish is delivered, based on the response to the inquiry from the base management unit 401. Then, when there are a plurality of brokers 102 to which the publish is delivered, the proxy 402 (address 5) transfers the publish to the proxy 402 (address 1) registered as the representative proxy in the base management information 1200 ((FIG. 20). 3)).

代表プロキシとして動作するプロキシ402(アドレス1)は、ブローカ管理情報1300を参照し、拠点内のブローカ102(アドレス4.0,アドレス4.1)にパブリッシュを振り分けて配送する(図20の(4))。 The proxy 402 (address 1), which operates as a representative proxy, refers to the broker management information 1300 and distributes and delivers the publish to the broker 102 (address 4.0, address 4.1) in the base ((4) in FIG. 20). )).

そのため、代表プロキシを介して、拠点内のブローカ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 broker 102 in the base can be reduced. it can.

続いて、図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 subscriber 103 of process B at the base B0 (cloud) of FIG. 21 ((1) of FIG. 21).

この場合、プロキシ402(アドレス0)は、拠点管理部401に配送先提供依頼500を送信し、サブスクライブの配送先を問い合わせる(図21の(2))。 In this case, the proxy 402 (address 0) sends a delivery destination provision request 500 to the base management unit 401 and inquires about the delivery destination of the subscription ((2) in FIG. 21).

プロキシ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 base management information 1200 when the delivery destination notified by the response from the base management unit 401 is the base B1 of the external base. Transfer the subscription to 1) ((3) in FIG. 21).

代表プロキシとして動作するプロキシ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 brokers 102 registered in the broker management information 1300. Is delivered ((4) in FIG. 21).

以上のように、拠点間でサブスクライブを配送する場合に、代表プロキシにサブスクライブを転送し、代表プロキシから拠点内のブローカ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 broker 102 in the base, so that the subscription is communicated between the bases. The number of can be reduced. Therefore, according to the embodiment, for example, the amount of subscription communication between bases can be reduced.

なお、例えば、図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 subscriber 103 of the process A at the base B1 of FIG. 21 ((1') of FIG. 21).

この場合、プロキシ402(アドレス1)は、拠点管理部401に配送先提供依頼500を送信し、サブスクライブの配送先を問い合わせる(図21の(2’))。 In this case, the proxy 402 (address 1) sends a delivery destination provision request 500 to the base management unit 401 and inquires about the delivery destination of the subscription ((2') in FIG. 21).

プロキシ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 base management unit 401. Then, when the delivery destination of the subscription is the base B1 of the own base, the proxy 402 transfers the subscription to the broker 102 (address 4.0, address 4.1) of the broker address received in the response (FIG. 21). (3')).

以上で述べたように、プロキシ402は、自拠点内のブローカ102にサブスクライブを配送する場合には、ブローカ102に直接サブスクライブを配送してよい。 As described above, when the proxy 402 delivers the subscription to the broker 102 in its own base, the proxy 402 may deliver the subscription directly to the broker 102.

以上で述べた上述の実施形態では、サブスクライブが拠点間で通信される場合、配送先に代表プロキシを用い、代表プロキシに拠点内でのブローカ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 broker 102 in the base. That is, for example, the representative proxy performs the reception of the subscription from the external network on behalf of the representative proxy, and the representative proxy delivers the subscription to the broker in the local network. Therefore, for example, even when a plurality of brokers 102 are deployed in the base, the amount of subscription communication between the bases can be reduced.

以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、又は、一部の処理が省略されてもよい。例えば、図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 brokers 102 to which the publish is delivered, the publish is transferred to the representative proxy in the own base, and the representative proxy distributes the publish to the broker 102. For example, when the representative proxy distributes the publishes to the brokers 102, it is possible to make the number of publishes processed by the plurality of brokers 102 in the base uniform. However, in another embodiment, when the proxy 402 includes a plurality of delivery destination brokers 102 in the response from the site management unit 401, the proxy 402 that receives the response publishes the multiple brokers 102. It may be distributed to either.

また、上述の実施形態において、拠点管理情報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 base management information 1200 may be registered by, for example, the administrator of the distributed processing system 300 via the server 301. Alternatively, in another embodiment, it is assumed that the base management unit 401 receives the delivery destination provision request 500 for the first time to inquire about the delivery destination of the publish from the proxy 402 of the base identified by the base ID of the entry of the base management information 1200. In this case, the base management unit 401 may register the address of the proxy 402 of the source of the delivery destination provision request 500 in the representative proxy address of the entry of the base ID. In this way, by using the proxy 402 that first inquires about the delivery destination of the publish as the representative proxy, it is possible to save the trouble of the administrator of the distributed processing system 300 registering the representative proxy in the base management information 1200.

また、上述の実施形態では、プロキシ402は、パブリッシュおよびサブスクライブなどのメッセージを受信すると、メッセージの配送先を拠点管理部401に問い合わせる例を述べているが、実施形態はこれに限定されるものではない。例えば、別の実施形態では、プロキシ402は、メッセージの宛先を拠点管理部401に問い合わせて、配送先の情報を得ると、その配送先を記憶部1102に記憶し、以降はその配送先に対象のメッセージを送信するように動作してよい。例えば、この様にすることで、メッセージの宛先を拠点管理部401に問い合わせる処理を削減することが可能である。 Further, in the above-described embodiment, when the proxy 402 receives a message such as publish and subscribe, the proxy 402 inquires the base management unit 401 for the delivery destination of the message, but the embodiment is limited to this. is not. For example, in another embodiment, when the proxy 402 inquires of the base management unit 401 for the destination of the message and obtains the delivery destination information, the proxy 402 stores the delivery destination in the storage unit 1102, and thereafter targets the delivery destination. May act to send the message. For example, by doing so, it is possible to reduce the process of inquiring the destination of the message to the base management unit 401.

また、上述の実施形態では、拠点B0(クラウド)に配備されるサーバ301にサブスクライバ103、拠点管理部401、およびプロキシ402などが実装される例を述べているが、実施形態はこれに限定されるものではない。例えば、上述の実施形態でサーバ301が実行する処理は、複数の装置で分担して実行されてもよい。 Further, in the above-described embodiment, an example in which the subscriber 103, the base management unit 401, the proxy 402, and the like are implemented in the server 301 deployed in the base B0 (cloud) is described, but the embodiment is limited to this. It's not something. For example, the process executed by the server 301 in the above-described embodiment may be shared and executed by a plurality of devices.

また、上述の実施形態では、拠点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 publisher 101 such as the sensor A that provides the data of the topic A is also deployed at the base B0 (cloud). Then, when the proxy 402 (address 1) receives the subscription requesting the data of the topic A from the subscriber 103 of the process A and inquires the delivery destination to the base management unit 401, the delivery destination is the base B0 (the delivery destination). It is assumed that the broker 102 of the cloud) is included. In this case, the proxy 402 (address 1) may transfer the subscription to the representative proxy of the external base B0 (cloud). As described above, in the embodiment, for example, when transferring a subscription between bases, the subscription is transferred to the representative proxy, so that even when a plurality of brokers 102 are included in the delivery destination base. It is possible to reduce the amount of subscription communication between bases.

図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 server 301, the edge device EG, the gateway device GW, and the like according to the embodiment. The server 301, the edge device EG, and the gateway device GW may be provided with, for example, the above-mentioned broker 102, subscriber 103, base management unit 401, and proxy 402. Further, in one example, the publisher 101 may be deployed in the server 301, the edge device EG, and the gateway device GW.

図22のコンピュータ2200のハードウェア構成は、例えば、プロセッサ2201、メモリ2202、記憶装置2203、読取装置2204、通信インタフェース2206、及び入出力インタフェース2207を備える。なお、プロセッサ2201、メモリ2202、記憶装置2203、読取装置2204、通信インタフェース2206、入出力インタフェース2207は、例えば、バス2208を介して互いに接続されている。 The hardware configuration of the computer 2200 of FIG. 22 includes, for example, a processor 2201, a memory 2202, a storage device 2203, a reading device 2204, a communication interface 2206, and an input / output interface 2207. The processor 2201, the memory 2202, the storage device 2203, the reading device 2204, the communication interface 2206, and the input / output interface 2207 are connected to each other via, for example, the bus 2208.

プロセッサ2201は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ2201は、メモリ2202を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述したブローカ102、サブスクライバ103、拠点管理部401、プロキシ402などの各機能部の一部または全部の機能を提供する。例えば、サーバ301のプロセッサ2201は、記憶装置2203に格納されているプログラムを読み出して実行することで、拠点管理部401として動作する。また、例えば、プロキシ402が実装されるサーバ301、エッジ装置EG、ゲートウェイ装置GWのプロセッサ2201は、記憶装置2203に格納されているプログラムを読み出して実行することで、転送部1111および取得部1112として動作する。 The processor 2201 may be, for example, a single processor, a multiprocessor, or a multicore. The processor 2201 is a part of each functional unit such as the broker 102, the subscriber 103, the site management unit 401, and the proxy 402 described above by executing, for example, a program describing the procedure of the operation flow described above using the memory 2202. Or provide all the features. For example, the processor 2201 of the server 301 operates as the base management unit 401 by reading and executing the program stored in the storage device 2203. Further, for example, the processor 2201 of the server 301 on which the proxy 402 is mounted, the edge device EG, and the gateway device GW reads and executes the program stored in the storage device 2203 to serve as the transfer unit 1111 and the acquisition unit 1112. Operate.

メモリ2202は、例えば半導体メモリであり、RAM領域及びROM領域を含んでいてよい。記憶装置2203は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、又は外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。 The memory 2202 is, for example, a semiconductor memory, and may include a RAM area and a ROM area. The storage device 2203 is, for example, a semiconductor memory such as a hard disk or a flash memory, or an external storage device. RAM is an abbreviation for Random Access Memory. ROM is an abbreviation for Read Only Memory.

読取装置2204は、プロセッサ2201の指示に従って着脱可能記憶媒体2205にアクセスする。着脱可能記憶媒体2205は、例えば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。なお、USBは、Universal Serial Busの略称である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。 The reading device 2204 accesses the removable storage medium 2205 according to the instructions of the processor 2201. The removable storage medium 2205 is, for example, a semiconductor device (USB memory or the like), a medium to which information is input / output by a magnetic action (magnetic disk or the like), a medium to which information is input / output by an optical action (CD-ROM, It is realized by DVD etc.). USB is an abbreviation for Universal Serial Bus. CD is an abbreviation for Compact Disc. DVD is an abbreviation for Digital Versatile Disk.

また、上述の記憶部1002および記憶部1102は、例えばメモリ2202、記憶装置2203、及び着脱可能記憶媒体2205を含んでよい。例えば、サーバ301の記憶装置2203には、拠点管理情報1200が格納されている。また、例えば、代表プロキシとして動作するエッジ装置EGまたはゲートウェイ装置GWの記憶装置2203には、ブローカ管理情報1300が格納されている。 Further, the above-mentioned storage unit 1002 and storage unit 1102 may include, for example, a memory 2202, a storage device 2203, and a removable storage medium 2205. For example, the base management information 1200 is stored in the storage device 2203 of the server 301. Further, for example, the broker management information 1300 is stored in the storage device 2203 of the edge device EG or the gateway device GW that operates as a representative proxy.

通信インタフェース2206は、プロセッサ2201の指示に従ってネットワークを介してデータを送受信する。通信インタフェース2206は、例えば、上述の通信部1003および通信部1103の一例である。 The communication interface 2206 transmits / receives data via the network according to the instructions of the processor 2201. The communication interface 2206 is, for example, an example of the above-mentioned communication unit 1003 and communication unit 1103.

入出力インタフェース2207は、例えば、入力装置及び出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボードやマウスなどのデバイスである。出力装置は、例えばディスプレーなどの表示装置、及びスピーカなどの音声装置である。 The input / output interface 2207 may be, for example, an interface between an input device and an output device. The input device is, for example, a device such as a keyboard or a mouse that receives an instruction from a user. The output device is, for example, a display device such as a display and an audio device such as a speaker.

実施形態に係る各プログラムは、例えば、下記の形態でサーバ301、エッジ装置EG、ゲートウェイ装置GWに提供される。
(1)記憶装置2203に予めインストールされている。
(2)着脱可能記憶媒体2205により提供される。
(3)プログラムサーバなどのサーバから提供される。
Each program according to the embodiment is provided to the server 301, the edge device EG, and the gateway device GW in the following form, for example.
(1) It is pre-installed in the storage device 2203.
(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 computer 2200 for realizing the server 301, the edge device EG, and the gateway device GW described with reference to FIG. 22 is an example, and the embodiment is not limited thereto. For example, some or all the functions of the above-mentioned functional parts may be implemented as hardware by FPGA, SoC, or the like. FPGA is an abbreviation for Field Programmable Gate Array. SoC is an abbreviation for System-on-a-chip.

以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。 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のサブスクライブを受信した場合、前記第2のサブスクライブで配送が要求されるトピックの情報を用いて、前記第2のサブスクライブの配送先を示す情報を取得する取得部、
を更に含み、
前記転送部は、前記取得部で取得した前記配送先を示す情報に他の拠点が含まれている場合、前記他の拠点に配備されているプロキシを代表する代表プロキシに前記第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のサブスクライブを転送する、
ことを特徴とする請求項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の拠点に配備されている第1のプロキシと、
前記第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.
JP2019090495A 2019-05-13 2019-05-13 Information processing device, delivery program and distributed processing system Active JP7207145B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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