JP7163093B2 - Broker device, communication system, communication method, and program - Google Patents
Broker device, communication system, communication method, and program Download PDFInfo
- Publication number
- JP7163093B2 JP7163093B2 JP2018140330A JP2018140330A JP7163093B2 JP 7163093 B2 JP7163093 B2 JP 7163093B2 JP 2018140330 A JP2018140330 A JP 2018140330A JP 2018140330 A JP2018140330 A JP 2018140330A JP 7163093 B2 JP7163093 B2 JP 7163093B2
- Authority
- JP
- Japan
- Prior art keywords
- topic
- publication data
- broker
- client device
- unit
- 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.)
- Active
Links
Images
Description
本発明の実施形態は、出版・購読型(パブリッシュ・サブスクライブ)モデルに基づく通信に適用されるブローカ装置、通信システム、通信方法、およびプログラムに関する。
The embodiments of the present invention relate to a broker device , a communication system, a communication method, and a program applied to communication based on a publish/subscribe model.
近年、分散アプリケーションにおいて非同期での出版データ授受が可能な通信方式として、出版・購読型(パブリッシュ・サブスクライブ)モデルと呼ばれる通信方式が知られている。 2. Description of the Related Art In recent years, a communication method called a publish/subscribe model has been known as a communication method capable of asynchronously exchanging published data in a distributed application.
出版・購読型モデルによれば、特許文献1に開示されているように、情報の購読者は、所望する情報のみを効率的に受信することが可能となる。
According to the publication/subscription model, as disclosed in
特許文献1で開示されている技術によれば、出版・購読型モデルに基づく通信において、ブローカ装置の冗長化により信頼性を担保することができ、さらにコンテンツへのアクセスを制御することによってセキュリティ確保も実現することができる。
According to the technology disclosed in
しかしながら、特許文献1で開示されている技術では、ブローカ装置の役割が細分化されており、冗長化する場合には各ブローカ装置についてそれぞれ冗長化する必要がある。さらに、特定の役割を担うブローカ装置に障害が発生した場合には、他のブローカ装置が正常であっても可用性を担保することが不可能となる。
However, in the technology disclosed in
本発明が解決しようとする課題は、新たな冗長化を講じることなく、可用性を担保することができるブローカ装置、ブローカ装置とクライアント装置とを含む通信システム、および通信システムにおいて適用される通信方法、ならびにプログラムを提供することである。 SUMMARY OF THE INVENTION Problems to be solved by the present invention are a broker device capable of ensuring availability without implementing new redundancy, a communication system including a broker device and a client device, and a communication method applied in the communication system. , as well as providing programs.
実施形態のブローカ装置は、第1のクライアント装置から受信した出版データを、第2のクライアント装置および他ブローカ装置へ送信するブローカ装置であって、自購読情報受信部と、自出版データ受信部と、自出版データ送信部と、他出版データ送信部と、他出版データ受信部と、最新出版データ保持部と、他購読情報管理部と、自購読情報管理部とを備える。
自購読情報受信部は、第2のクライアント装置によって購読されるトピックに対する購読要求を、第2のクライアント装置から受信する。
自出版データ受信部は、第1のクライアント装置から、トピックに関連する出版データを受信する。
自出版データ送信部は、自出版データ受信部によって受信された出版データを、第2のクライアント装置へ送信する。
他出版データ送信部は、自出版データ受信部によって受信された出版データを、他ブローカ装置へ送信する。
他出版データ受信部は、他ブローカ装置から、トピックに関連する出版データを受信する。
最新出版データ保持部は、自出版データ受信部および他出版データ受信部によって受信された出版データから、最新の出版データをトピック毎に抽出し保持する。
他購読情報管理部は、他ブローカ装置によって購読されるトピックに対する購読要求を、他ブローカ装置から受信する。
自購読情報管理部は、ブローカ装置によって購読されるトピックを管理するとともに、管理しているトピックに変化があった場合には、このトピックを他ブローカ装置へ送信する。
自出版データ送信部はさらに、第2のクライアント装置から受信した購読要求に関連するトピックの最新の出版データを、最新出版データ保持部から取得し、第2のクライアント装置へ送信する。
他出版データ送信部はさらに、他購読情報管理部によって受信された購読要求に関連するトピックに関連する最新の出版データを、最新出版データ保持部から取得し、他ブローカ装置へ送信する。
第2のクライアント装置から、あるトピックについての購読要求があった場合、自購読情報管理部はさらに、当該トピックが新規のトピックであるかを判定するために、管理しているトピックを購読するクライアント装置が存在するか否かを判定する。
自購読情報管理部は、管理しているトピックを購読するクライアント装置が存在しない場合には、新たな購読登録の購読要求を出力する。
他購読情報管理部は、2つ以上のブローカ装置で購読されているトピックのうち、自購読情報管理部によって管理されているトピックを購読するクライアント装置が存在しない場合には、購読解除の購読要求を自購読情報管理部へ出力する。
A broker device according to an embodiment is a broker device that transmits publication data received from a first client device to a second client device and other broker devices, and comprises a self-subscribed information receiving unit and a self-published data receiving unit. , a self-published data transmitting unit, a non-published data transmitting unit, a non-published data receiving unit, a latest published data holding unit, a non-subscribed information management unit, and a self-subscribed information management unit.
The own subscription information receiving unit receives a subscription request for a topic subscribed by the second client device from the second client device.
The self-published data receiver receives topic-related publication data from the first client device.
The self-published data transmission unit transmits the published data received by the self-published data reception unit to the second client device.
The other publication data transmission unit transmits the publication data received by the own publication data reception unit to the other broker device.
The other publication data receiving unit receives publication data related to the topic from other broker devices.
The latest publication data holding unit extracts and holds the latest publication data for each topic from the publication data received by the own publication data reception unit and the other publication data reception unit.
The other subscription information management unit receives subscription requests for topics subscribed by other broker devices from other broker devices.
The own subscription information management unit manages the topic subscribed by the broker device, and transmits this topic to other broker devices when there is a change in the managed topic.
The self-published data transmission unit further acquires the latest published data of the topic related to the subscription request received from the second client device from the latest published data holding unit and transmits the data to the second client device.
The other publication data transmission unit further acquires the latest publication data related to the topic related to the subscription request received by the other subscription information management unit from the latest publication data holding unit and transmits it to the other broker device.
When a subscription request for a certain topic is received from the second client device, the subscription information management unit further determines whether the topic is a new topic. Determine if the device is present.
The self- subscription information management unit outputs a subscription request for new subscription registration when there is no client device that subscribes to the managed topic .
If there is no client device subscribing to the topic managed by the self-subscription information management unit among the topics subscribed to by two or more broker devices, the other subscription information management unit issues a subscription cancellation request. is output to the subscription information management unit .
以下に、本発明の各実施形態の通信システムを、図面を参照して説明する。 A communication system according to each embodiment of the present invention will be described below with reference to the drawings.
なお、以下の各実施形態の説明において、同一部分については、同一符号を用いて示し、重複説明を避ける。 In the description of each embodiment below, the same parts are denoted by the same reference numerals to avoid repeated description.
(第1の実施形態)
図1は、第1の実施形態の通信システムの構成例を示す概念図である。
(First embodiment)
FIG. 1 is a conceptual diagram showing a configuration example of a communication system according to the first embodiment.
通信システム1は、ネットワーク20を介して互いに通信可能に接続された複数のブローカ装置10と、複数のブローカ装置10のうちの何れかとネットワーク20を介して通信可能に接続された任意の数のクライアント装置30とからなる。
The
図1に示す例では、ネットワーク20を介して互いに通信可能に接続された4つのブローカ装置10(#0~#3)と、これらブローカ装置10(#0~#3)のうちの何れかにネットワーク20を介して通信可能に接続されたクライアント装置30(#1~#6)とが図示されている。
In the example shown in FIG. 1, four broker devices 10 (#0 to #3) are communicably connected to each other via the
図1に示す例ではまた、ブローカ装置10(#1)に、クライアント装置30(#1)、(#2)、(#3)が通信可能に接続され、ブローカ装置10(#2)に、クライアント装置30(#4)、(#5)が通信可能に接続され、ブローカ装置10(#3)に、クライアント装置30(#6)が通信可能に接続されている。 In the example shown in FIG. 1, the client devices 30 (#1), (#2), and (#3) are communicably connected to the broker device 10 (#1), and the broker device 10 (#2): The client devices 30 (#4) and (#5) are communicably connected, and the client device 30 (#6) is communicably connected to the broker device 10 (#3).
ネットワーク20は、例えばLAN等のローカルな回線であってもよいし、インターネットや専用回線等の広域な有線通信回線や、3G等の広域な無線通信回線とすることができる。
The
ブローカ装置10とクライアント装置30との間で授受される情報群は「トピック」によって分類される。クライアント装置30は、受信したいトピックを、接続しているブローカ装置10に登録する。以降、この登録動作を「購読」と称する。
A group of information exchanged between the
また、クライアント装置30は、接続しているブローカ装置10へ、トピックに関連する出版データを送信することができる。以降、この送信動作を「出版」と称する。
Also, the
ブローカ装置10は、クライアント装置30からトピックとともに出版データが出版された場合、このトピックを購読しているクライアント装置30へ、出版データを送信する。例えば図1において、クライアント装置30(#1)が、情報群Aというトピックを購読している場合、ブローカ装置10(#1)は、クライアント装置30(#2)から情報群Aというトピックに関連する出版データが出版されると、この出版データをクライアント装置30(#1)のみへ転送する。このように、クライアント装置30(#1)は、購読している出版データのみを受信することができる。
When the publication data is published together with the topic from the
複数のブローカ装置10が存在する場合、各ブローカ装置10は、例えば、図2に示すような他ブローカ装置購読情報管理表200を保持することによって、各ブローカ装置10において購読されているトピックに関する情報を共有する。
When there are a plurality of
図2は、他ブローカ装置購読情報管理表の一例を示す図である。 FIG. 2 is a diagram showing an example of an other broker device subscription information management table.
他ブローカ装置購読情報管理表200(以下、単に「管理表200」と称する)は、一例として、購読されるブローカ装置10を示す購読ブローカ装置m1と、購読ブローカ装置m1で指定されたブローカ装置10において購読されるトピックを示す購読情報(トピック)m2との2つの項目から構成されるレコードが積まれたデータテーブルである。管理表200は、ブローカ装置10内の図示しないストレージに記憶されており、ブローカ装置10内の各部位によって参照されることが可能である。
Other broker device subscription information management table 200 (hereinafter simply referred to as “management table 200”) is, for example, a subscribing broker device m1 indicating a subscribed
図2に例示する管理表200では、ブローカ装置10(#1)において情報群A、情報群B、情報群Cというトピックが購読され、ブローカ装置10(#2)において情報群A、情報群Cというトピックが購読され、ブローカ装置10(#3)において情報群Bというトピックが購読されることが示されている。 In the management table 200 illustrated in FIG. 2, topics of information group A, information group B, and information group C are subscribed to in the broker device 10 (#1), and information group A and information group C are subscribed to in the broker device 10 (#2). is subscribed to, and the broker device 10 (#3) is subscribed to a topic of information group B.
管理表200を参照することによって、ブローカ装置10は、クライアント装置30から出版データが出版された場合、この出版データがどのトピックに関連しているのかに基づいて、他のどのブローカ装置10へ転送すべきかを判定する。
By referring to the management table 200, when publication data is published from the
例えば、クライアント装置30(#3)が、情報群Bというトピックに関連する出版データをブローカ装置10(#1)へ出版した場合、ブローカ装置10(#1)は、管理表200より、ブローカ装置10(#3)がこの出版データを必要としていると判定し、ブローカ装置10(#3)へ転送する。 For example, when the client device 30 (#3) publishes publication data related to the topic of information group B to the broker device 10 (#1), the broker device 10 (#1) reads from the management table 200 the broker device 10(#3) determines that this publication data is required and transfers it to the broker device 10(#3).
このように、通信システム1は、必要最小限の出版データしか転送しないので、ネットワーク帯域を効率的に利用する。
In this way, the
また、MQTT(Message Queue Telemetry Transport)等の出版・購読型モデルを採用するプロトコルの中には、各ブローカ装置10が、トピック毎に最新の出版データを保持する機能(以下、「リテイン機能」と称する)を有するものがある。
Further, in protocols adopting a publication/subscription model such as MQTT (Message Queue Telemetry Transport), each
リテイン機能によれば、クライアント装置30は、出版データが出版された後に購読を開始した場合であっても、購読するトピックに関連する最新の出版データを常に取得することが可能となる。
According to the retain function, the
また、例えば、クライアント装置30は、バッテリ駆動タイプであれば、常に通信セッションを保持できる訳ではない。しかしながら、リテイン機能によれば、バッテリ駆動タイプのクライアント装置30のみならず、間歇的に起動するタイプのクライアント装置30であっても、ブローカ装置10に対して毎回通信セッションを張り、購読要求を行い、最新の出版データを取得し、所定の処理を実施した後に通信セッションを切断し、省電力状態に移行することも可能である。
Also, for example, if the
リテイン機能によればさらに、クライアント装置30が異常終了した場合であっても、再起動後に最新の出版データを取得することもできる。
According to the retain function, even if the
ところで、すべてのブローカ装置10に対して、最新の出版データを保持させようとすると、出版時にすべての出版データを、すべてのブローカ装置10へ転送する必要がある。しかしながら、すべてのブローカ装置10が、すべての出版データを必ずしも必要とするとは限らない。このため、出版されたすべての出版データを、すべてのブローカ装置10へ転送することは、通信リソースの浪費となり、非効率的である。そこで、通信システム1は、通信効率向上のために、出版データに関連するトピックの購読者であるクライアント装置30が接続されているブローカ装置10のみへ出版データを転送する。
By the way, if all the
例えば、購読ブローカ装置と、購読情報(トピック)との関係が、管理表200に例示されるような場合、ブローカ装置10(#1)へ、情報群Bというトピックに関連する出版データが出版されると、ブローカ装置10(#1)は、この出版データを、ブローカ装置10(#3)のみへ転送する。ブローカ装置10(#3)は、転送された出版データを保持する。 For example, when the relationship between the subscription broker device and subscription information (topic) is illustrated in the management table 200, publication data related to the topic of information group B is published to the broker device 10 (#1). Then, the broker device 10(#1) transfers this publication data only to the broker device 10(#3). Broker device 10 (#3) holds the transferred publication data.
一方、情報群Bというトピックが、ブローカ装置10(#1)以外の複数のブローカ装置10において購読されている場合、情報群Bというトピックに関連する出版データが、ブローカ装置10(#1)へ出版されると、ブローカ装置10(#1)は、この出版データを、情報群Bが購読されているすべてのブローカ装置10へ転送する。出版データを転送された各ブローカ装置10は、各々出版データを保持する。
On the other hand, when the topic of information group B is subscribed to by a plurality of
ところで、最新の出版データが、1つのブローカ装置10にしか保持されていない場合、このブローカ装置10に異常が生じると、最新の出版データが喪失される恐れがある。これは信頼性の観点から好ましくない。そこで通信システム1では、以下に説明するように、通信の効率性を維持しつつ、信頼性をも向上させながら、出版データの保持状態に応じて、出版データの冗長性を担保する機能を有するブローカ装置10を採用している。
By the way, if the latest publication data is held in only one
図3は、本実施形態の通信システムに適用されるブローカ装置の構成例を示すブロック図である。 FIG. 3 is a block diagram showing a configuration example of a broker device applied to the communication system of this embodiment.
ブローカ装置10は、通信部102、通信部104、自購読情報受信部106、自購読情報管理部108、自出版データ受信部110、自出版データ送信部112、最新出版データ保持部114、他出版データ送信部116、他出版データ受信部118、他購読情報管理部120、および終了検知部122を備える。
The
通信部102は、ネットワーク20を介して、自ブローカ装置10以外の他ブローカ装置10と通信し、自ブローカ装置10内の各部位からの情報を、ネットワーク20を介して他ブローカ装置10へ送信したり、逆に、他ブローカ装置10から送信された情報をネットワーク20を介して受信し、自ブローカ装置10内の各部位へ出力する。
The
通信部104は、ネットワーク20を介して、クライアント装置30と通信し、自ブローカ装置10内の各部位からの情報を、ネットワーク20を介してクライアント装置30へ送信したり、逆に、クライアント装置30から送信された情報をネットワーク20を介して受信し、自ブローカ装置10内の各部位へ出力する。
The
なお、以下の説明では、例として、自ブローカ装置10をブローカ装置10(#0)とし、他ブローカ装置10をブローカ装置10(#1)、(#2)、(#3)とする。さらに、説明の容易のために、他ブローカ装置10(#1)、(#2)、(#3)については、単に他ブローカ装置10として表す。
In the following description, as an example, the
自購読情報受信部106は、クライアント装置30によって購読される情報群であるトピックに対する購読要求KRを、通信部104を介して、購読要求元のクライアント装置30(例えば、クライアント装置30(#2))から受信する。
The own subscription
自購読情報受信部106は、購読要求KRが購読登録要求である場合には、自購読情報管理部108に対して、購読要求KRで指定されたトピックと、購読要求元のクライアント装置30とを、例えば図4に例示される自ブローカ装置購読情報管理表205を使用して管理させる。
When the subscription request KR is a subscription registration request, the subscription
図4は、自ブローカ装置購読情報管理表の一例を示す図である。 FIG. 4 is a diagram showing an example of a self-broker device subscription information management table.
自ブローカ装置購読情報管理表205(以下、単に「管理表205」と称する)は、自ブローカ装置10(#0)において購読される購読情報(トピック)を示す自ブローカ装置購読情報m3と、自ブローカ装置購読情報m3で指定された購読情報を購読するクライアント装置30を示す購読クライアント装置m4との2つの項目から構成されるレコードが積まれたデータテーブルである。管理表205は、ブローカ装置10内の図示しないストレージに記憶されており、ブローカ装置10内の各部位によって参照されることが可能である。
Own broker device subscription information management table 205 (hereinafter simply referred to as "management table 205") includes own broker device subscription information m3 indicating subscription information (topic) subscribed to by own broker device 10 (#0), It is a data table in which records composed of two items, namely, a subscribing client device m4 indicating a
図4に例示する管理表205では、自ブローカ装置10(#0)において、情報群Aというトピックが、クライアント装置30(#1)によって購読されることが示されている。 The management table 205 illustrated in FIG. 4 indicates that the client device 30 (#1) subscribes to the topic of information group A in the own broker device 10 (#0).
自出版データ受信部110は、出版元のクライアント装置30(例えば、クライアント装置30(#1))から、通信部104を介して、トピックおよびその出版データSDを受信する。
The self-published
また、自購読情報受信部106が受信した購読要求KRが、購読解除要求である場合には、自購読情報管理部108は、管理表205から、購読要求元のクライアント装置30が購読クライアント装置m4に書き込まれているレコードを削除する。このように、管理表205は、自ブローカ装置10(#0)に接続されたクライアント装置30の購読情報(トピック)を管理するために使用される。
Further, when the subscription request KR received by the own subscription
自購読情報受信部106が受信した購読要求KRが、購読解除要求である場合にはさらに、自購読情報管理部108が、他ブローカ装置10の購読状況を考慮して、他ブローカ装置10への購読解除の通知可否を決定する。この決定の際、自購読情報管理部108は、例えば、管理表200を使用して、購読解除の対象とされたトピックを購読している他ブローカ装置10(購読ブローカ装置)の数を判定し、判定された数が2以上の場合にのみ購読解除を行うアルゴリズムを適用する。これによって、購読ブローカ装置10の数が1である場合には、購読解除されても購読解除は行われないので、出版データSDの冗長性を引き続き確保できる。
If the subscription request KR received by the own subscription
また、このアルゴリズムでは、自ブローカ装置10(#0)が、大量のトピックを購読している場合、トラフィックの偏りが生じる可能性が高い。一方、購読しているトピックが最も少ないブローカ装置10が、当該トピックを購読すると、トラフィックを効率的に分散させることができる。そこで、購読ブローカ装置10の数が2以上ではない場合、自購読情報管理部108は、他ブローカ装置10と自ブローカ装置10(#0)との購読数を比較し、自ブローカ装置10(#0)の購読数が最も少ない場合にのみ購読を継続するようにしてもよい。
Also, in this algorithm, if the own broker device 10 (#0) subscribes to a large number of topics, there is a high possibility that traffic will be uneven. On the other hand, if the
自出版データ送信部112は、自出版データ受信部110によって受信された出版データSDを、通信部104を介して、購読要求元のクライアント装置30(例えば、クライアント装置30(#2))へ送信する。出版データSDの送信先であるクライアント装置30は、例えば管理表205を参照して決定される。管理表205によれば、自ブローカ装置購読情報m3として指定されたトピックが情報群Aである場合、送信先は、クライアント装置30(#1)であると決定される。
Self-published
他出版データ送信部116は、自出版データ受信部110によって受信された出版データSDを、通信部102を介して、他ブローカ装置10へ送信する。送信元のブローカ装置10を決定する際には、例えば管理表200が使用される。管理表200から、出版データSDに関連する購読情報(トピック)m2を把握し、対応する購読ブローカ装置m1を読み取ることによって、送信先のブローカ装置10が決定される。
The other publication
他出版データ受信部118は、他ブローカ装置10から、通信部102を介して、トピックおよびその出版データSDを受信する。
The other publication
他購読情報管理部120は、他ブローカ装置10が必要とするトピック(他ブローカ装置10に接続するクライアント装置30が購読しているトピック)を受信し、例えば管理表200を使用して管理する。
The other subscription
最新出版データ保持部114は、前述したリテイン機能を実現するために、自出版データ受信部110および他出版データ受信部118によって受信された出版データSDから、最新の出版データSDをトピック毎に抽出し、保持する。
The latest publication
他購読情報管理部120はさらに、新規の購読要求KRを、他ブローカ装置10から受信した場合、それが購読登録要求であれば、管理表200に登録するとともに、最新出版データ保持部114が、最新の出版データSDを保持している場合には、他出版データ送信部116に対して、その最新の出版データSDを、最新出版データ保持部114から取得させ、取得した出版データSDを、この出版データSDの購読を開始した他ブローカ装置10へ送信させる。
Further, when receiving a new subscription request KR from another
なお、複数の他ブローカ装置10から最新の出版データSDが送信されることを回避するため、他購読情報管理部120は、各ブローカ装置10に単なる整理番号としてブローカ番号を振っておき、最新の出版データSDを保持するブローカ装置10のうち、最小のブローカ番号を振られたブローカ装置10のみの出版データSDの送信を許可するなど、1つのブローカ装置10のみが最新の出版データSDを送信する仕組みを採用してよい。
In addition, in order to avoid transmission of the latest publication data SD from a plurality of
また、他購読情報管理部120は、ブローカ番号を、整理番号として単純に付番することに限らず、ブローカ装置10の能力に応じて付番するようにしてもよい。例えば、能力の高いブローカ番号10ほど小さいブローカ番号を付番するようにすれば、最新の出版データSDを保持するブローカ装置10のうち、最も能力の高いブローカ装置10のみの出版データSDの送信を許可できるようになる。
Further, the other subscription
さらに、購読クライアント装置30が存在しないにも関わらず出版データSDを受信し続けることを回避するため、他購読情報管理部120は、他ブローカ装置10が購読開始したトピックの購読数が2(自ブローカ装置10(#0)は含まない)になった時点で、自ブローカ装置10(#0)がそのトピックを購読しており、かつ購読クライアント装置30が存在しない場合には、購読情報を削除し、購読解除要求である購読要求KRを送信するようにしてもよい。
Furthermore, in order to avoid continuing to receive the publication data SD even though the subscribing
さらにまた、他購読情報管理部120は、他ブローカ装置10からの購読要求KRが、購読解除要求である場合に購読ブローカ装置10の数が2以下になることを回避するために、購読ブローカ装置10の数が1になる場合には、自ブローカ装置10(#0)が購読数最小の場合で、かつ購読数最小のブローカ装置10の中で最も小さいブローカ番号を有する場合に、そのトピックを購読することとし、購読要求KRを、他ブローカ装置10へ送信するようにしてもよい。
Furthermore, when the subscription request KR from the
自出版データ送信部112は、購読要求KRで指定されたトピックの最新の出版データSDを、最新出版データ保持部114から取得し、購読要求元のクライアント装置30(例えば、クライアント装置30(#2))へ送信する。出版データSDの転送先であるクライアント装置30は、前述したように、例えば管理表205を参照して決定される。
The self-published
なお、最新出版データ保持部114に最新の出版データSDが保持されていない場合、すなわち、どのクライアント装置30も出版データSDを出版していない場合、自出版データ送信部112は、上述した送信処理を行わない。
If the latest publication data SD is not held in the latest publication
他購読情報管理部120は、他ブローカ装置10によって購読される情報群であるトピックに対する購読要求KRを、通信部102を介して他ブローカ装置10から受信する。そして、受信した購読要求KRに応じて、管理表200の内容を更新する。例えば、購読要求元のブローカ装置10を、購読ブローカ装置m1として書き込み、購読要求KRで指定されたトピックを、購読情報(トピック)m2として書き込む。
The other subscription
他購読情報管理部120によって受信された購読要求KRが、購読登録要求であれば、他出版データ送信部116は、購読要求KRで指定されたトピックに関連する最新の出版データSDを、最新出版データ保持部114から取得し、取得した出版データSDを、購読要求元の他ブローカ装置10へ送信する。購読要求元の他ブローカ装置10は、例えば管理表200を使用して決定される。
If the subscription request KR received by the other subscription
自購読情報管理部108は、自ブローカ装置10(#0)によって購読される情報群であるトピックを管理するとともに、管理しているトピックに変化があった場合には、このトピックを、通信部102を介して、他ブローカ装置10へ送信する。
The self-subscribed
自購読情報管理部108は、管理しているトピックを購読するクライアント装置30が存在しない場合には、新たな購読登録要求である購読要求KRを出力する。
If there is no
他購読情報管理部120は、受信された購読要求KRによって指定されたトピックのうち、2つ以上のブローカ装置10で購読されているトピックと、自購読情報管理部108によって管理されているトピックとを購読するクライアント装置30が存在しない場合には、購読解除要求である購読要求KRを自購読情報管理部108へ出力する。
Other subscription
他購読情報管理部120は、ブローカ装置10毎に購読されるトピックの数を計算し、その最小値が自購読情報管理部108によって管理されるトピックの数の合計値を上回る場合にのみ、新たな購読登録要求である購読要求KRを、自購読情報管理部108へ出力する。
Other subscription
自購読情報管理部108は、他出版データ受信部118から出力された新たな購読登録要求である購読要求KRや、購読解除要求である購読要求KRを、通信部102を介して、他ブローカ装置10へ転送する。自購読情報管理部108は、この転送を、すべてのブローカ装置10へ行ってもよいし、ネットワークトポロジを考慮して特定のブローカ装置10のみへ行ってもよい。特定のブローカ装置10のみに転送した場合には、そのブローカ装置10のみから、購読要求KRで指定されたトピックに関連する出版データSDが返送される。
The self-subscription
終了検知部122は、他ブローカ装置10の終了および異常のうちの少なくとも何れかを検知する。この検知のために、終了検知部122は、例えば、通信部102を介して、定期的にハートビートを他ブローカ装置10へ送信し、他ブローカ装置10がそのハートビートを受信ができなくなった段階で他ブローカ装置10の異常を検知する。また、他ブローカ装置10の終了時に自発的に送信された終了通知を検出した段階で他ブローカ装置10の終了を検知する。終了検知部122によって終了または異常が検知されると、管理表200から、終了または異常を検知されたブローカ装置10が購読ブローカ装置m1として書き込まれたレコードが削除される。
The
これによって、他購読情報管理部120は、終了検知部122によって終了または異常を検知された他ブローカ装置10から購読要求KRを受信しないようになる。
As a result, the other subscription
次に、以上のように構成した第1の実施形態の通信システムの動作例について説明する。 Next, an operation example of the communication system of the first embodiment configured as above will be described.
図5は、クライアント装置からの購読要求受信時における自ブローカ装置による処理手順の一例を示すフローチャートである。 FIG. 5 is a flow chart showing an example of a processing procedure by the own broker device when receiving a subscription request from a client device.
自ブローカ装置10(#0)では、クライアント装置30から送信された購読要求KRが、通信部104を介して、自購読情報受信部106によって受信される(S1)と、購読要求KRが、購読登録要求または購読解除要求であるかが判定される(S2)。購読登録要求であれば(S2:購読登録)、自購読情報管理部108によって、管理表205が参照され、購読登録要求された購読情報(例えば、情報群A)が、自ブローカ装置購読情報m3として書き込まれ、要求元のクライアント装置30が、購読クライアント装置m4として書き込まれることによって、購読情報が登録される(S3)。
In own broker device 10 (#0), when subscription request KR transmitted from
さらに自購読情報管理部108では、登録された購読情報が、自ブローカ装置10(#0)内で新規に購読するトピックであるか否かが判定される(S4)。新規に購読するトピックであると判定されると(S4:Yes)、他出版データ送信部116によって、通信部102を介して、他のブローカ装置10へ、新規購読を開始したトピックに関連する出版データSDが送信される(S5)。
Further, the own subscription
その後、他ブローカ装置10から、当該トピックの最新の出版データSDが送信され、通信部102を介して他出版データ受信部118によって受信されると(S6:Yes)、この出版データSDは、他出版データ受信部118から、最新出版データ保持部114へ出力され、最新出版データ保持部114において保持される(S7)。また、最新出版データ保持部114において保持されている出版データSDは、自出版データ送信部112へ出力され、自出版データ送信部112から、通信部104を経由して、当該トピックの購読を開始したクライアント装置30へ送信され(S8)、処理を終了する。
After that, when the latest publication data SD of the topic is transmitted from the
一方、ステップS6において、他ブローカ装置10から当該トピックの最新の出版データSDが送信されない場合(S6:No)、すなわち、当該トピックの出版データSDがまだ一度も出版されていない場合には、処理を終了する。 On the other hand, in step S6, if the latest publication data SD of the topic has not been transmitted from the other broker device 10 (S6: No), that is, if the publication data SD of the topic has never been published, the process exit.
一方、ステップS4において、新たに登録要求されたトピックが、既に別のクライアント装置30によって購読されていた場合(S4:No)、最新出版データ保持部114に最新の出版データSDが保持されているか否かが、他出版データ受信部118によって確認され(S9)、保持されている場合(S9:Yes)、自出版データ送信部112から、通信部104を介して、クライアント装置30へ最新の出版データが送信される(S10)。一方、最新の出版データが保持されていない場合(S9:No)には、処理を終了する。
On the other hand, in step S4, if the newly requested topic has already been subscribed to by another client device 30 (S4: No), is the latest publication data SD held in the latest publication
一方、ステップS2において、購読要求KRが、購読解除要求であれば(S2:購読解除)、自購読情報管理部108によって、管理表205から、この購読要求KRで指定されたトピック(例えば、情報群A)が自ブローカ装置購読情報m3として書き込まれているレコードが削除される(S11)。
On the other hand, in step S2, if the subscription request KR is a subscription cancellation request (S2: subscription cancellation), the subscription
その後、管理表205に、当該トピック(例えば、情報群A)に購読クライアント装置30が関連付けられているレコードが残っている(S12:Yes)のであれば、処理を終了する。
After that, if there remains a record in the management table 205 in which the subscribing
一方、管理表205に、当該トピックに購読クライアント装置30が関連付けらえているレコードが残っていない(S12:No)のであれば、自購読情報管理部108によって、管理表200に基づいて、図6に示すような購読情報購読数管理表210が作成され、さらに、管理表200、205に基づいて、図7に示すようなブローカ装置購読数管理表215が作成されることによって、各ブローカ装置10のブローカ装置購読数状況が把握される(S13)。
On the other hand, if there is no record in the management table 205 in which the subscribing
図6は、購読情報購読数管理表の一例を示す図である。 FIG. 6 is a diagram showing an example of a subscription information subscription number management table.
図7は、ブローカ装置購読数管理表の一例を示す図である。 FIG. 7 is a diagram showing an example of a broker device subscription count management table.
購読情報購読数管理表210(以下、単に「管理表210」と称する)は、購読されるトピックを示す購読情報(トピック)m5と、購読情報(トピック)m5で指定されたトピックが購読される他ブローカ装置10の数を示す購読数m6との2つの項目から構成されるレコードが積まれたデータテーブルである。管理表200によれば、情報群Aというトピックの購読ブローカ装置は、ブローカ装置10(#1)と、ブローカ装置10(#2)との2つである。これに応じて、管理表210では、情報群Aというトピックに対応する購読数が2と示される。同様に、管理表200では、情報群Bというトピックの購読ブローカ装置が2つであり、情報群Cというトピックの購読ブローカ装置が2つであるので、管理表210では、情報群Bに対応する購読数が2、情報群Cに対応する購読数が2と示される。管理表210は、ブローカ装置10内の図示しないストレージに記憶されており、ブローカ装置10内の各部位によって参照されることが可能である。
Subscription information subscription number management table 210 (hereinafter simply referred to as "management table 210") includes subscription information (topic) m5 indicating topics to be subscribed to and topics specified by subscription information (topic) m5 are subscribed to. It is a data table in which records composed of two items, namely, the number of subscriptions m6 indicating the number of
ブローカ装置購読数管理表215(以下、単に「管理表215」と称する)は、ブローカ装置が記載されたブローカ装置m7と、各ブローカ装置において購読されるトピックの数を示す購読数m8との2つの項目から構成されるレコードが積まれたデータテーブルである。管理表205では、自ブローカ装置10(#0)は、情報群Aという1つのトピックを購読することが示されている。これに応じて、管理表215では、自ブローカ装置10(#0)の購読数が1と示される。また、管理表200では、ブローカ装置10(#1)は、情報群A、情報群B、情報群Cという3つのトピックを購読することが示されている。したがって、管理表215では、ブローカ装置10(#1)の購読数が3と示される。同様に、管理表200における情報に基づいて、管理表215では、ブローカ装置10(#2)の購読数が2と、ブローカ装置10(#3)の購読数が1と示される。管理表215は、ブローカ装置10内の図示しないストレージに記憶されており、ブローカ装置10内の各部位によって参照されることが可能である。
The broker device subscription count management table 215 (hereinafter simply referred to as the “management table 215”) contains two numbers: a broker device m7 in which broker devices are described and a subscription count m8 indicating the number of topics subscribed to in each broker device. It is a data table in which records consisting of one item are stacked. The management table 205 indicates that the own broker device 10 (#0) subscribes to one topic, information group A. FIG. Accordingly, the management table 215 indicates that the number of subscriptions of the local broker device 10 (#0) is one. Further, the management table 200 indicates that the broker device 10 (#1) subscribes to three topics: information group A, information group B, and information group C. FIG. Therefore, the management table 215 indicates that the number of subscriptions for the broker device 10 (#1) is three. Similarly, based on the information in the management table 200, the management table 215 indicates two subscriptions for the broker device 10(#2) and one subscription for the broker device 10(#3). The management table 215 is stored in a storage (not shown) within the
なお、管理表200、205の内容が更新された場合、自購読情報管理部108によって、管理表210、215もまたその更新内容に応じて更新される。
When the contents of the management tables 200 and 205 are updated, the subscription
ステップS13において、当該トピック(例えば、情報群A)を購読している他ブローカ装置10の数が2以上である場合(S13:Yes)、自購読情報管理部108によって、管理表205から、自ブローカ装置購読情報m3として当該トピック(例えば、情報群A)が書き込まれているレコードが削除され(S16)、当該トピックの購読解除要求が、通信部102を介して、他ブローカ装置10へと送信される(S17)。
In step S13, if the number of
一方、ステップS13において、当該トピックを購読しているブローカ装置10の数が2未満である場合(S13:No)、管理表215に基づいて、他購読情報管理部120によって、各ブローカ装置10の購読数が把握され、さらに、自ブローカ装置10(#0)の購読数が、最小か否かが判定される(S14)。
On the other hand, in step S13, if the number of
例えば、管理表215には、各ブローカ装置10の購読数は、自ブローカ装置10(#0)が1、ブローカ装置10(#1)が3、ブローカ装置10(#2)が2、ブローカ装置10(#3)が1であると示されている。この場合、自ブローカ装置10(#0)は、ブローカ装置11(#3)とともに、購読数が最小である(S14:Yes)。
For example, in the management table 215, the number of subscriptions for each
購読数が最小ではない場合(S14:No)には、前述したステップS16へ進む。 If the number of subscriptions is not the minimum (S14: No), the process proceeds to step S16 described above.
一方、ステップS14において、購読数が最小である場合(S14:Yes)、購読数最小のブローカ装置10のうち、自ブローカ装置10のブローカ番号が最も小さいか否かが、他購読情報管理部120によって判定される(S15)。
On the other hand, if the number of subscriptions is the smallest in step S14 (S14: Yes), other subscription
管理表215に示されるように、購読数最小のブローカ装置10は、購読数が1である自ブローカ装置10(#0)とブローカ装置10(#3)であり、そのうち、自ブローカ装置10(#0)のブローカ番号が0であり最小である(S15:Yes)ので、処理を終了する。
As shown in the management table 215, the
一方、ステップS15において、最小ではない場合(S15:No)には、前述したステップS16へ進む。 On the other hand, in step S15, when it is not the minimum (S15: No), it progresses to step S16 mentioned above.
図8は、他ブローカ装置からの購読要求受信時における自ブローカ装置による処理手順の一例を示すフローチャートである。 FIG. 8 is a flow chart showing an example of a processing procedure by the own broker device when receiving a subscription request from another broker device.
他ブローカ装置10から購読要求KRが送信された場合、この購読要求KRは、通信部102を介して、他購読情報管理部120によって受信される(S21)。
When the subscription request KR is transmitted from the
購読要求KRが、購読登録要求であれば(S22:購読登録)、他購読情報管理部120において、管理表200の購読ブローカ装置m1として、購読要求元のブローカ装置10が書き込まれ、購読情報(トピック)m2として、購読要求KRで指定された購読情報(トピック)が書き込まれることによって、登録がなされる(S23)。
If the subscription request KR is a subscription registration request (S22: subscription registration), the other subscription
購読要求KRで指定されたトピックが、自ブローカ装置10(#0)で購読されており(S24:Yes)、そのトピックの最新の出版データSDが、最新出版データ保持部114に保持されており(S25:Yes)、自ブローカ装置10(#0)が、購読ブローカ装置10のうち、最も小さいブローカ番号である場合(S26:Yes)には、最新の出版データSDが、他出版データ送信部116によって、通信部102を介して、要求元のブローカ装置10へ送信される(S27)。
The topic specified by the subscription request KR is subscribed to by its own broker device 10 (#0) (S24: Yes), and the latest publication data SD of the topic is held in the latest publication
ステップS25において、そのトピックの最新の出版データSDが、最新出版データ保持部114に保持されていない場合(S25:No)や、ステップS26において、購読ブローカ装置10のブローカ番号が、最も小さいブローカ番号ではない場合(S26:No)や、ステップ27の後は、ステップS28へ進む。
In step S25, if the latest publication data SD of the topic is not held in the latest publication data holding unit 114 (S25: No), or in step S26, if the broker number of the
ステップS28では、自購読情報管理部108によって、管理表205が参照されることによって、自ブローカ装置10(#0)内で当該トピックを購読するクライアント装置30が存在するか否かが判定され、存在すると判定される(S28:Yes)と、処理を終了する。
In step S28, the own subscription
一方、存在すると判定されない場合(S28:No)には、他購読情報管理部120によって、管理表210から、当該トピック(例えば、情報群A)を購読する他購読ブローカ装置10の数(購読数)が判定され、その数が2以上であれば(S29:Yes)、管理表205から、当該トピック(例えば、情報群A)が自ブローカ装置購読情報m3として書き込まれているレコードが削除され(S30)、自購読情報管理部108から、当該トピックに対する購読解除要求が、通信部102を介して、他ブローカ装置10へ送信される(S31)。
On the other hand, if it is determined not to exist (S28: No), the other subscription
一方、ステップS29において、購読ブローカ装置10の数が、2以上でない場合(S29:No)、自ブローカ装置10(#0)内で当該トピックを購読するクライアント装置30は存在しないものの、出版データSDの冗長化のために、自ブローカ装置10(#0)での購読を継続するために、何れの処理もなされずに、処理は終了する。
On the other hand, in step S29, if the number of subscribing
ステップS24において、トピックが、自ブローカ装置10(#0)で購読されておらず(S24:No)、さらに他購読ブローカ装置10の数が1であり(S33:Yes)、自ブローカ装置10(#0)が、トピック購読数最小のブローカ装置であり(S34:Yes)、自ブローカ装置10(#0)のブローカ番号が、購読数最小のブローカ装置10の中で最も小さければ(S35:Yes)、出版データSDの冗長化のためにトピックを購読するために、自購読情報管理部108によって、管理表205の自ブローカ装置購読情報m3として該トピックの購読情報(例えば、情報群A)が書き込まれ(S36)、その後、通信部102を介して、該トピックを指定した購読要求KRが、他のブローカ装置10へ送信される(S37)。
In step S24, the topic is not subscribed to by its own broker device 10 (#0) (S24: No), the number of other subscribing
さらに、他ブローカ装置10から出力された最新の出版データSDが、通信部102を介して他出版データ受信部118によって受信された場合(S38:Yes)には、受信された最新の出版データSDが、最新出版データ保持部114へ出力され、保持され(S39)、処理が終了する。
Furthermore, when the latest publication data SD output from the
なお、ステップS33において、他ブローカ装置10の購読数が1ではない場合(S33:No)、ステップS34において、自ブローカ装置10(#0)の購読数が最小ではない場合(S34:No)、ステップS35において、自ブローカ装置10(#0)のブローカ番号が、最も小さいブローカ番号でない場合(S35:No)、ステップS38において、最新の出版データSDが送信されない場合(S38:No)には、何れの処理もなされず、処理が終了する。
If the number of subscriptions of the
なお、ステップS22において、他ブローカ装置10から送信された購読要求KRが、購読解除要求である場合(S22:購読解除)には、他購読情報管理部120によって、管理表200から、購読要求KRで指定されたトピックが購読情報(トピック)m2として書き込まれているレコードが削除され(S32)、その後、ステップS33へ進む。
In step S22, if the subscription request KR transmitted from the
なお、本実施形態では、ステップS15、S26、S35における判定のために使用される判定基準に、最小のブローカ番号であるか否かが使用されている。しかしながら、判定基準はこれに限定されず、代わりに、最大のブローカ番号であるか否かを使用してもよい。あるいは、ブローカ番号によらず、直近の通信量が最も少ないブローカ装置10の購読を継続する等のようなアルゴリズムを使用してもよい。
Incidentally, in this embodiment, whether or not the broker number is the smallest is used as the judgment criterion used for the judgments in steps S15, S26, and S35. However, the criterion is not limited to this and may instead use whether or not it is the highest broker number. Alternatively, an algorithm such as continuing the subscription of the
図9は、クライアント装置からの出版データ出版要求時における自ブローカ装置による処理手順の一例を示すフローチャートである。 FIG. 9 is a flow chart showing an example of a processing procedure by the own broker device when a publication data publication request is made from a client device.
自ブローカ装置10(#0)では、クライアント装置30(例えば、クライアント装置30(#1))から、トピックおよびその出版データSDが送信されると、出版データSDは、通信部104を介して、自出版データ受信部110によって受信され、さらに自出版データ送信部112へ出力される(S41)。自出版データ送信部112では、管理表205が参照され、出版データSDに関連するトピックを購読しているクライアント装置(購読クライアント装置)30が存在するか否かが判定される(S42)。
When the topic and its publication data SD are transmitted from the client device 30 (for example, the client device 30 (#1)) in the own broker device 10 (#0), the publication data SD is transmitted via the
購読クライアント装置30が存在すると判定される(S42:Yes)と、判定されたクライアント装置30(例えば、クライアント装置30(#2))へ、自出版データ送信部112から、通信部104を介して、出版データSDが送信され(S43)、ステップS44へ進む。 If it is determined that there is a subscribing client device 30 (S42: Yes), the client device 30 (for example, client device 30 (#2)) that has been determined to have a , the publication data SD is transmitted (S43), and the process proceeds to step S44.
一方、購読しているクライアント装置30が存在しない場合(S42:No)は直接ステップS44へ進む。 On the other hand, if there is no subscribing client device 30 (S42: No), the process proceeds directly to step S44.
ステップS44では、他購読情報管理部120において、例えば管理表200が参照されることによって、出版データSDに関連するトピックを購読する他ブローカ装置10が存在するか否かが判定される(S44)。
In step S44, the other subscription
存在すると判定される(S44:Yes)と、判定されたブローカ装置10に向けて、他出版データ送信部116から、通信部102を介して、その出版データSDが送信される(S45)とともに、その出版データSDが最新出版データ保持部114に保持される(S46)。
If it is determined to exist (S44: Yes), the publication data SD is transmitted from the other publication
一方、ステップS44において、存在しないと判定される(S44:No)と、ステップS46へ進み、その出版データSDが、最新出版データ保持部114に保持される(S46)。 On the other hand, if it is determined in step S44 that it does not exist (S44: No), the process proceeds to step S46, and the publication data SD is held in the latest publication data holding unit 114 (S46).
なお、図9には示されていないが、自ブローカ装置10(#0)、他ブローカ装置10共に購読していないトピックに関連する出版データSDがある場合(S42、S44の判定が共にNoである場合)には、そのトピックの購読登録要求が、他ブローカ装置10へ送信される。
Although not shown in FIG. 9, if there is publication data SD related to a topic that is not subscribed to by both the own broker device 10 (#0) and the other broker device 10 (both determinations in S42 and S44 are No). If there is), a subscription registration request for that topic is sent to the
図10は、他ブローカ装置からの出版データ送信時における自ブローカ装置による処理手順の一例を示すフローチャートである。 FIG. 10 is a flow chart showing an example of a processing procedure by the own broker device when publishing data is transmitted from another broker device.
他ブローカ装置10から送信された出版データSDは、通信部102を介して、他出版データ受信部118によって受信される(S51)。
The publication data SD transmitted from the
これに応じて、自購読情報管理部108によって、管理表205が参照され、出版データSDに関連するトピックを購読するクライアント装置(購読クライアント装置)30が、自ブローカ装置10に接続されているか否かが判定される(S52)。
In response, the own subscription
接続されていると判定された場合(S52:Yes)には、自出版データ送信部112によって、通信部104を介して、判定されたクライアント装置30(例えば、クライアント装置30(#2))へ、出版データSDが送信される(S53)。また、この出版データSDが、最新出版データ保持部114に保持され(S54)、その後、処理を終了する。
If it is determined to be connected (S52: Yes), self-published
一方、接続されていないと判定された場合(S52:No)には、ステップS54へ進み、その出版データSDが、最新出版データ保持部114に保持される(S54)。 On the other hand, if it is determined that there is no connection (S52: No), the process proceeds to step S54, and the publication data SD is held in the latest publication data holding unit 114 (S54).
図11は、他ブローカ装置の終了時および異常検出時における処理手順の一例を示すフローチャートである。 FIG. 11 is a flow chart showing an example of a processing procedure when another broker device terminates and when an abnormality is detected.
他ブローカ装置10から、自ブローカ装置10(#0)の終了検知部122へ、自発的な終了通知が到着した場合(S61:Yes)、または、自ブローカ装置10(#0)の終了検知部122によって、他ブローカ装置10の異常が検知された場合(S62:Yes)、他購読情報管理部120によって、終了または異常を起こしたブローカ装置10が購読しているトピックが、管理表200の購読情報(トピック)m2として書き込まれているか否が確認される(S63)。
When a voluntary termination notification arrives from the
自発的な終了通知が到着せず(S61:No)、その後、他ブローカ装置10の異常も検知されない場合(S62:No)には、ステップS61の処理へ戻る。また、ステップS63において、書き込まれていないと判定された場合、すなわち、終了または異常を起こしたブローカ装置10が購読しているトピックが存在しない場合(S63:No)にもまた、ステップS61の処理へ戻る。
If the voluntary end notification does not arrive (S61: No), and if no abnormality of the
一方、ステップS63において、書き込まれている判定された場合、すなわち、終了または異常を起こしたブローカ装置10が購読しているトピックが存在する場合(S63:Yes)には、他購読情報管理部120によって、終了または異常を起こしたブローカ装置10が購読しているトピックが購読情報(トピック)m2として書き込まれているレコードが、管理表200から削除される(S64)。
On the other hand, if it is determined in step S63 that writing has been done, that is, if there is a topic subscribed to by the
さらに、そのトピックが自ブローカ装置10(#0)でも購読されておらず(S65:No)、他購読ブローカ装置10の数が1であり(S66:Yes)、かつ自ブローカ装置10(#0)の購読数が最小であり(S67:Yes)、購読数最小のブローカ装置10の中で自ブローカ装置10(#0)のブローカ番号が最も小さい場合(S68:Yes)、そのトピックは、自ブローカ装置10での冗長化のために購読登録され(S69)、このトピックが、自購読情報管理部108から、通信部102を介して、他ブローカ装置10へ送信される(S70)。
Further, the topic is not subscribed to by its own broker device 10 (#0) (S65: No), the number of other subscribing
それ以外(S65:Yes、S66:No、S67:No、S68:No)の場合にはステップS63へ戻る。 Otherwise (S65: Yes, S66: No, S67: No, S68: No), the process returns to step S63.
ステップS70の後、自ブローカ装置10(#0)が、最新の出版データSDを受信した場合(S71:Yes)には、最新の出版データSDが、最新出版データ保持部114に保持され(S72)、その後ステップS63へ戻る。 After step S70, when the own broker device 10 (#0) receives the latest publication data SD (S71: Yes), the latest publication data SD is held in the latest publication data holding unit 114 (S72 ), and then returns to step S63.
一方、ステップS70の後、自ブローカ装置10(#0)が、最新の出版データSDを受信しない場合(S71:No)には、ステップS63へ戻る。 On the other hand, after step S70, if the own broker device 10 (#0) does not receive the latest publication data SD (S71: No), the process returns to step S63.
以上の構成により、自ブローカ装置10(#0)は、出版データSDの冗長性を確保できるので、他ブローカ装置10の異常発生時にも出版データSDは喪失されない。これにより、出版・購読型モデルの通信プロトコルを採用するシステムにおいて、信頼性の向上を図ることが可能となる。またブローカ装置10が購読する出版データSDのデータ量に応じて、冗長化のための出版データSDの送信先を変更することもできるので、適切な負荷分散を実現することが可能となる。
With the above configuration, the own broker device 10 (# 0 ) can ensure the redundancy of the publication data SD, so that the publication data SD will not be lost even when an abnormality occurs in another
(変形例)
第1の実施形態の通信システムの変形例について説明する。
(Modification)
A modification of the communication system of the first embodiment will be described.
図3に例示するブローカ装置10では、出版データSDの冗長化のために、トピックを購読するか否かを判定する機能を備えている。本変形例では、そのような機能を、ブローカ装置の外部に、サブブローカ装置として設ける。
The
図12は、第1の実施形態の通信システムの変形例を示す概念図である。 FIG. 12 is a conceptual diagram showing a modification of the communication system of the first embodiment.
すなわち、本変形例の通信システム2では、図12に示すように、ブローカ装置11の外部に、ネットワーク21を介して、サブブローカ装置40を接続している。図12に示す例では、各ブローカ装置11に対して、サブブローカ装置40を1対1で設けているが、このような構成に限定されず、特定のブローカ装置11にのみサブブローカ装置40を設けてもよい。また、1つのサブブローカ装置40を、複数のブローカ装置11へ接続し、複数のブローカ装置11について1つのサブブローカ装置40が共通して機能するようにしてもよい。
That is, in the
ネットワーク21もまた、ネットワーク20と同様に、例えばLAN等のローカルな回線であってもよいし、インターネットや専用回線等の広域な有線通信回線や、3G等の広域な無線通信回線とすることができる。
As with the
図13は、第1の実施形態の通信システムの変形例に適用されるブローカ装置およびサブブローカ装置の構成例を示すブロック図である。 FIG. 13 is a block diagram showing a configuration example of a broker device and a sub-broker device applied to the modification of the communication system of the first embodiment.
ブローカ装置11は、ブローカ装置10から終了検知部122を削除した構成をしている。
The
サブブローカ装置40は、終了検知部402および購読決定部404を備える。
The
終了検知部402は、終了検知部122と同様の機能を有する。
The
購読決定部404は、ブローカ装置11の自購読情報管理部108および他購読情報管理部120から、購読要求KRの購読変更要求を受信する。購読決定部404は、自購読情報管理部108と他購読情報管理部120との両方から購読変更要求を受信することに代えて、通信を監視すること等により、購読変更要求を認識するようにしてもよい。
The
購読決定部404はさらに、購読変更要求の受信時に、購読変更要求元のブローカ装置11が、購読要求KRに関連付けられたトピックの新規購読要求なのか、購読解除要求なのか、購読継続要求なのか、購読解除継続要求なのかを判定する。
Further, when the subscription change request is received, the
この判定基準としては、例えば、管理表205の購読情報(トピック)m2として、当該トピック(例えば、情報群A)に購読クライアント装置30が関連付けられているレコードが残っているのであれば、購読を継続し、残っていない場合には、他ブローカ装置11の購読数や自ブローカ装置11(#0)の購読数に応じて、このトピックの購読を継続するか否かを判定することができる。
As a criterion for this determination, for example, if there remains a record in which the subscribing
購読決定部404はさらに、新規購読要求や、購読解除要求のために、購読要求KRを、ブローカ装置11の自購読情報管理部108へ出力する。
The
以上説明したように、変形例によれば、サブブローカ装置40を設けることによって、新たな冗長化機能を設けていないブローカ装置11を使用した場合であっても、高い冗長化機能を実現することが可能な通信システム2を実現することが可能となる。
As described above, according to the modified example, by providing the
(第2の実施形態)
MQTTのような一部の出版・購読型モデルを採用するプロトコルでは、QoS機能を有する。QoS機能を利用することにより、必ず到着が保証されるべき出版データSD、到着が保証されなくともよい出版データSD等を区別するために、出版データSDにラベル付けすることができる。
(Second embodiment)
Some protocols that employ a publish-subscribe model, such as MQTT, have QoS capabilities. By using the QoS function, the publication data SD can be labeled in order to distinguish publication data SD whose arrival must always be guaranteed, publication data SD whose arrival need not be guaranteed, and the like.
第1の実施形態では、すべての出版データSDの冗長性の確保を前提としていたが、QoSの値によっては必ずしも冗長性を確保する必要はない。これに着目し、本実施形態では、通信量やブローカ装置10への負荷の低減を図るために、到着を保証する必要のない出版データSDについては、冗長性を確保しない。
In the first embodiment, it is assumed that redundancy is ensured for all publication data SD, but it is not always necessary to ensure redundancy depending on the QoS value. Focusing on this, in the present embodiment, in order to reduce the amount of communication and the load on the
図14は、第2の実施形態の通信システムに適用されるブローカ装置の構成例を示すブロック図である。 FIG. 14 is a block diagram showing a configuration example of a broker device applied to the communication system of the second embodiment.
ブローカ装置12の構成は、ブローカ装置10の構成と類似しているが、ブローカ装置12は、ブローカ装置10が備えていないQoS管理部124を、他購読情報管理部120と自購読情報管理部108との間に備えていることが異なる。従って、以下では、ブローカ装置10と異なる点について説明する。
The configuration of the
他購読情報管理部120は、第1の実施形態で説明した機能に加えて、他ブローカ装置10から、購読解除要求である購読要求KRを受信すると、受信した購読解除要求に基づいて、図15に例示する他購読情報管理表220の内容を更新する。
In addition to the functions described in the first embodiment, the other subscription
図15は、他購読情報管理表の一例を示す図である。 FIG. 15 is a diagram showing an example of the other subscription information management table.
他購読情報管理表220(以下、単に「管理表220」と称する)は、管理表200の変形例であり、購読ブローカ装置m1および購読情報(トピック)m2に、新たにQoSm9を加えた3つの項目から構成されるレコードが積まれたデータテーブルである。管理表220は、ブローカ装置12内の図示しないストレージに記憶されており、ブローカ装置12内の各部位によって参照されることが可能である。
Other subscription information management table 220 (hereinafter simply referred to as "management table 220") is a modified example of management table 200, and includes three types of subscription broker device m1, subscription information (topic) m2, and QoSm9. A data table in which records consisting of items are stacked. The management table 220 is stored in a storage (not shown) within the
QoS管理部124は、出版データSDの送受信に要求される信頼性の指標値であるQoS値を算出し、管理表220のQoSm9として書き込むことによって、購読情報(トピック)毎にQoS値を管理する。また、管理表220を使って、出版データSDの複製が必要か否かを判定する。
The
他購読情報管理部120は、QoS管理部124によって出版データSDの複製が必要であると判定された場合にのみ、購読登録要求である購読要求KRを、自購読情報管理部108へ出力する。
Other subscription
これに応じて、自購読情報管理部108は、第1の実施形態で説明したアルゴリズムに従って、その出版データSDの購読を、自ブローカ装置12(#0)内で実施するか否かを判定する。
In response, the own subscription
自購読情報管理部108は、第1の実施形態で説明した機能に加えて、図16に例示するような自購読情報管理表225を管理する。
The subscription
図16は、自購読情報管理表の一例を示す図である。 FIG. 16 is a diagram showing an example of a subscription information management table.
自購読情報管理表225(以下、単に「管理表225」と称する)は、管理表205の変形例であり、自ブローカ装置購読情報m3および購読クライアント装置m4に、新たにQoSm9を加えた3つの項目から構成されるレコードが積まれたデータテーブルである。管理表225は、ブローカ装置12内の図示しないストレージに記憶されており、ブローカ装置12内の各部位によって参照されることが可能である。
Own subscription information management table 225 (hereinafter simply referred to as "management table 225") is a modified example of management table 205, and is composed of own broker device subscription information m3 and subscribed client device m4, with QoSm9 newly added. A data table in which records consisting of items are stacked. The management table 225 is stored in a storage (not shown) within the
自購読情報管理部108は、QoS管理部124によって出版データSDの複製が必要であると判定された場合、第1の実施形態で説明したアルゴリズムに従って、購読を継続するか否かを判定する。また、管理表225の変更内容を、他ブローカ装置10へ送信する際に、対応するQoS情報も併せて送信することができる。
When the
QoS管理部124は、他購読情報管理部120もしくは自購読情報管理部108からトピックを出力されることによって呼び出され、そのトピックに関連する出版データSDが、冗長性を担保すべき情報であるか否かを判定する。
The
例えば、QoSが0または1の二値を取り、0が到着を保証しなくてもよい出版データSDであり、1が到着を保証すべき出版データSDを意味するとする。この場合、QoS管理部124は、管理表220、225を参照し、当該トピックのQoSの最大値を算出する。
For example, QoS takes a binary value of 0 or 1, 0 means publication data SD whose arrival need not be guaranteed, and 1 means publication data SD whose arrival should be guaranteed. In this case, the
例えば、管理表220より、購読情報(トピック)が情報群Aの場合には、ブローカ装置10(#1)がQoS=0、ブローカ装置10(#2)がQoS=1となり、管理表225より、自ブローカ装置12(#0)購読情報が情報群Aの場合には、QoS=1であり、QoSの最大値は1となる。 For example, according to the management table 220, when the subscription information (topic) is information group A, the broker device 10 (#1) has QoS=0 and the broker device 10 (#2) has QoS=1. , when the subscription information of the own broker device 12 (#0) is information group A, QoS=1, and the maximum value of QoS is 1;
一方、情報群Cの場合には、管理表220より、ブローカ装置10(#1)がQoS=0、ブローカ装置10(#2)もQoS=0であり、最大値は0となる。 On the other hand, in the case of the information group C, according to the management table 220, the broker device 10 (#1) has QoS=0, the broker device 10 (#2) also has QoS=0, and the maximum value is 0.
QoS管理部124は、最大値が1の場合には、冗長化を行うべき出版データSDであると判定し、最大値が0の場合には、冗長化を行う必要のない出版データSDであると判定する。
When the maximum value is 1, the
なお、QoSが、前述した二値以外を取る場合にも、例えば最大値が1以上であれば、冗長化を行うべき出版データSDであると判定する等、同様のアルゴリズムで冗長化の要否判定を行うことができる。 Even when QoS takes values other than the two values described above, for example, if the maximum value is 1 or more, it is determined that the publication data SD should be made redundant. Judgment can be made.
例えば、管理表220に示される例では、情報群Bはブローカ装置10(#1)およびブローカ装置10(#3)で購読されている。情報群BのQoSの最大値は1であり、冗長化を行うべき出版データSDであるが、元々ブローカ装置10(#1)とブローカ装置10(#3)で購読されているため、既に冗長化されている。 For example, in the example shown in management table 220, information group B is subscribed to by broker device 10(#1) and broker device 10(#3). The maximum QoS value of the information group B is 1, and the publication data SD should be made redundant. has been made
ここで、ブローカ装置10(#1)が購読解除要求を行うとする。すると、情報群Bはブローカ装置10(#3)のみが購読することになる。この場合、第1の実施形態では、最も購読数が少なくブローカ番号も小さな自ブローカ装置12(#0)は、情報群Bを購読するクライアント装置30が存在しないにも関わらず、ブローカ装置10(#1)に代わって情報群Bを購読する。
Here, it is assumed that the broker device 10 (#1) issues a subscription cancellation request. Then, the information group B is subscribed only by the broker device 10 (#3). In this case, in the first embodiment, the own broker device 12 (#0) with the smallest number of subscriptions and the smallest broker number is the broker device 10 (#0) even though there is no
しかしながら、第2の実施形態では、QoSの最大値が0となり、冗長化を行う必要のない出版データSDとなる。この場合には、ブローカ装置10(#3)のみが購読を継続し、自ブローカ装置12(#0)では購読を行わないため、通信帯域を効率的に利用できることに加え、自ブローカ装置12(#0)の処理負荷を低減する。 However, in the second embodiment, the maximum QoS value is 0, and the publication data SD does not require redundancy. In this case, only the broker device 10 (#3) continues the subscription and the self-broker device 12 (#0) does not subscribe. #0) to reduce the processing load.
次に、以上のように構成した第2の実施形態の通信システムの動作例について説明する。 Next, an operation example of the communication system of the second embodiment configured as above will be described.
図17は、クライアント装置からの購読要求受信時における自ブローカ装置による処理手順の一例を示すフローチャートである。 FIG. 17 is a flow chart showing an example of a processing procedure by the own broker device when receiving a subscription request from a client device.
図17に示すフローチャートは、図5に示すフローチャートの、ステップS12と、ステップS13との間に、ステップS12aを追加したものである。 The flowchart shown in FIG. 17 is obtained by adding step S12a between step S12 and step S13 of the flowchart shown in FIG.
したがって、以下では、ステップS12aに関連する処理について説明し、重複説明を避ける。 Therefore, the processing related to step S12a will be described below, and duplicate description will be avoided.
ステップS12において、購読クライアント装置30が存在せず、購読解除時に他ブローカ装置10によって購読されている場合(S12:No)、ステップS12aでは、出版データSDの冗長化の必要性の可否を判定するために、QoS管理部124によって、QoS最大値がゼロであるか否かが判定される(S12a)。
In step S12, if the subscribing
QoS最大値がゼロであると判定された場合(S12a:Yes)、ステップS16へ進み、ゼロであると判定されなかった場合(S12a:No)、ステップS13へ進む。 If the QoS maximum value is determined to be zero (S12a: Yes), the process proceeds to step S16, and if not determined to be zero (S12a: No), the process proceeds to step S13.
図18は、他ブローカ装置からの購読要求受信時における自ブローカ装置による処理手順の一例を示すフローチャートである。 FIG. 18 is a flow chart showing an example of a processing procedure by the own broker device when receiving a subscription request from another broker device.
図18に示すフローチャートは、図8に示すフローチャートの、ステップS28と、ステップS29との間に、ステップS28aを追加し、ステップS32と、ステップS33との間に、ステップS32aを追加したものである。 The flowchart shown in FIG. 18 is obtained by adding step S28a between steps S28 and S29 of the flowchart shown in FIG. 8, and adding step S32a between steps S32 and S33. .
したがって、以下では、ステップS28aとステップS32aとに関連する処理について説明し、重複説明を避ける。 Therefore, below, the processing related to step S28a and step S32a will be described to avoid redundant description.
ステップS28において、購読登録時に当該トピックの購読を行っているクライアント装置30が存在すると判定されない場合(S28:No)、ステップS12aと同様に、QoS管理部124によって、QoS最大値がゼロであるか否かが判定される(S28a)。
If it is determined in step S28 that there is no
QoS最大値がゼロであると判定された場合(S28a:Yes)、ステップS30へ進み、ゼロであると判定されなかった場合(S28a:No)、ステップS29へ進む。 If the QoS maximum value is determined to be zero (S28a: Yes), the process proceeds to step S30, and if not determined to be zero (S28a: No), the process proceeds to step S29.
また、ステップS32の後も、ステップS12aと同様に、QoS管理部124によって、QoS最大値がゼロであるか否かが判定される(S32a)。
Also after step S32, the
そして、QoS最大値がゼロであると判定された場合(S32a:Yes)、処理は終了し、ゼロであると判定されなかった場合(S32a:No)、ステップS33へ進む。 If it is determined that the QoS maximum value is zero (S32a: Yes), the process ends, and if it is not determined to be zero (S32a: No), the process proceeds to step S33.
また、自ブローカ装置12(#0)に接続されたクライアント装置30から出版データSDの出版要求があった場合の処理手順の一例は、図9のフローチャートに示す通りであり、他ブローカ装置10から、出版データSDが送信された場合における処理手順の一例は、図10のフローチャートに示す通りである。
An example of the processing procedure when a
上述したように、第2の実施形態の通信システムによれば、QoSの値に応じて冗長化の必要性の可否を判定するために、すべての出版データSDについて冗長性を確保する必要はなくなるので、通信量やブローカ装置への負荷の低減を図ることが可能となる。 As described above, according to the communication system of the second embodiment, it is not necessary to ensure redundancy for all publication data SD in order to determine whether or not redundancy is necessary according to the QoS value. Therefore, it is possible to reduce the amount of communication and the load on the broker device.
(第3の実施形態)
第1および第2の実施形態では、出版データSDの出版時には、個々の出版データSDを個々のパケットとして送信する。IoT(Internet of things)用途でMQTTを利用する場合、パケット送信がなされると、センサ出版データ等の出版データが大量に発生して大量の通信パケットが送受信されることとなる。一般にルータ等のネットワーク機器の性能限界は、パケット数と出版データ総量で決まる。つまりパケット数および通信出版データの総量を減らすことが、より多くの出版データを送受信できるようにするために肝要である。第3の実施形態は、MQTTのパケットの総量および送信出版データ量を、通信の信頼性を保ったまま減らす技術を提供する。
(Third embodiment)
In the first and second embodiments, when publishing the publication data SD, the individual publication data SD are transmitted as individual packets. When MQTT is used for IoT (Internet of things), when packets are transmitted, a large amount of published data such as sensor published data is generated and a large amount of communication packets are transmitted and received. In general, the performance limit of network equipment such as routers is determined by the number of packets and the total amount of published data. Therefore, reducing the number of packets and the total amount of communication publication data is essential to enable more publication data to be sent and received. The third embodiment provides a technique for reducing the total amount of MQTT packets and the amount of transmitted published data while maintaining communication reliability.
図19は、第3の実施形態の通信システムに適用されるブローカ装置の構成例を示すブロック図である。 FIG. 19 is a block diagram showing a configuration example of a broker device applied to the communication system of the third embodiment.
ブローカ装置13の構成は、ブローカ装置10の構成と類似しているが、ブローカ装置13は、ブローカ装置10が備えていない集約・圧縮部126と、リアルタイム性判定部128と、分割・展開部130とを備えている。従って、以下では、ブローカ装置10と異なる点について説明する。
The configuration of the
リアルタイム性判定部128は、周期的に送信すべき出版データSDを決定するために、他出版データ送信部116に接続され、現在時刻から一定時間経過した時刻と、受信時刻との差が、トピック毎に定められた最大待機時間を超える出版データSDを、集約・圧縮部126による集約の対象であると判定する。
The real-
このため、自出版データ受信部110は、本実施形態ではさらに、クライアント装置30(例えば、クライアント装置30(#1))から受信した出版データSDの受信時刻を記録する。
Therefore, in the present embodiment, the self-published
図20は、送信待機リストの一例を示す図である。 FIG. 20 is a diagram showing an example of a transmission waiting list.
送信待機リスト230には、一例として、出版データの宛先m10、購読情報(トピック)m11、出版データm12、受信日時m13、および処理済みフラグm14からなる各項目から構成されるレコードが積まれたデータテーブルである。送信待機リスト230は、ブローカ装置13内の図示しないストレージに記憶されており、ブローカ装置13内の各部位によって参照されることが可能である。
In the transmission waiting list 230, as an example, data in which records composed of items such as publication data destination m10, subscription information (topic) m11, publication data m12, reception date and time m13, and processed flag m14 are piled up. is a table. The transmission waiting list 230 is stored in a storage (not shown) within the
リアルタイム性判定部128は、クライアント装置30から、出版データSDに対する要求があった場合、送信待機リスト230のレコードの内容を更新する。
When the
図21は、最大待機時間リストおよび時間条件の一例を示す図である。 FIG. 21 is a diagram showing an example of a maximum waiting time list and time conditions.
最大待機時間リスト235は、購読情報(トピック)m15および最大待機時間m16からなる2項目から構成されるレコードが積まれたデータテーブルである。最大待機時間リスト235および時間条件240は、ブローカ装置13内の図示しないストレージに記憶されており、ブローカ装置13内の各部位によって参照されることが可能である。
The maximum waiting time list 235 is a data table in which records composed of two items of subscription information (topic) m15 and maximum waiting time m16 are piled up. The maximum waiting time list 235 and the
時間条件240には、一例として、パケット送信周期T=10ms(ミリ秒)、現在時刻=2017/12/01 00:00:01.090が示されている。
The
送受信に要求されるリアルタイム性は、出版データSD毎に異なるため、リアルタイム性判定部128はさらに、最大待機時間リスト235を使用して、購読情報(トピック)m15毎に、最大待機時間m16として書き込まれた送信までの最大待機時間を管理する。
Since the real-time property required for transmission/reception differs for each publication data SD, the real-time
例えば、時間条件240に示されているように、T=10ミリ秒毎にパケット送信が行われる場合、10ミリ秒毎にリアルタイム性判定部128が呼びされ、次回呼出時刻において、リアルタイム性判定部128は、最大待機時間リスト235に示される最大待機時間m16を超過するパケットを取り出す。
For example, as shown in the
例えば、時間条件240に示されるように、「現在時刻」が「2017/12/01 00:00:01.090」である場合、次回のパケット送信時刻は、現在時刻にパケット送信周期T=10ミリ秒を加えた「2017/12/01 00:00:01.100」となる。すると、送信待機リスト230において次回パケット送信時刻において最大待機時間m16として書き込まれた最大待機時間を超過するパケットは、図20に例示される送信待機リスト230における上から1、2、4番目のレコードに相当するパケットとなる。
For example, as shown in the
送信待機リスト230において、1番目のレコードに相当するパケットの購読情報(トピック)m11は情報群Aであるため、受信日時m13に、最大待機時間リスト235に示される情報群Aの最大待機時間m16である100ミリ秒を加算しても「00:00:01.095」としかならず、次回パケット送信時刻である「2017/12/01 00:00:01.100」には至らないために、待機時間は、最大待機時間m16を超過する。同様に、2番目のレコードに相当するパケットの購読情報(トピック)m11は情報群Bであるため、受信日時m13に、情報群Bの最大待機時間m16である15ミリ秒を加算しても「00:00:01.097」としかならず、次回パケット送信時刻である「2017/12/01 00:00:01.100」には至らないために、やはり、待機時間は、最大待機時間m16を超過する。また同様に、4番目のレコードに相当するパケットの購読情報(トピック)m11は情報群Cであるため、受信日時m13に、情報群Cの最大待機時間m16である50ミリ秒を加算しても「00:00:01.095」としかならず、次回パケット送信時刻である「2017/12/01 00:00:01.100」には至らないために、待機時間は、最大待機時間m16を超過する。 In the transmission waiting list 230, the subscription information (topic) m11 of the packet corresponding to the first record is the information group A, so the maximum waiting time m16 of the information group A shown in the maximum waiting time list 235 is displayed in the reception date and time m13. Even if 100 milliseconds is added, the result is only "00:00:01.095", and the next packet transmission time "2017/12/01 00:00:01.100" is not reached. The time exceeds the maximum waiting time m16. Similarly, since the subscription information (topic) m11 of the packet corresponding to the second record is information group B, even if 15 milliseconds, which is the maximum waiting time m16 of information group B, is added to the reception date and time m13, " 00:00:01.097" and does not reach the next packet transmission time of "2017/12/01 00:00:01.100", so the waiting time also exceeds the maximum waiting time m16. do. Similarly, since the subscription information (topic) m11 of the packet corresponding to the fourth record is information group C, even if 50 milliseconds, which is the maximum waiting time m16 of information group C, is added to the reception date and time m13, Since it is only "00:00:01.095" and does not reach the next packet transmission time "2017/12/01 00:00:01.100", the waiting time exceeds the maximum waiting time m16. .
一方、それ以外のパケットは、次回パケット送信時刻において、待機時間は、最大待機時間m16を超過しないため、送信は見送られる。 On the other hand, the waiting time for other packets does not exceed the maximum waiting time m16 at the next packet transmission time, so the transmission is postponed.
集約・圧縮部126は、他出版データ送信部116に接続され、他ブローカ装置10へ送信される出版データSDを、他ブローカ装置10別に、一定時間毎に1つの集約済出版データに集約する。集約・圧縮部126はさらに、集約済出版データを、予め定められたアルゴリズムに従って圧縮する。
The aggregation/
具体的には、集約・圧縮部126は、リアルタイム性判定部128が取り出した他のブローカ装置10へ送信する複数の出版データSDを、送信待機リスト230の宛先m10で指定されたブローカ装置10毎に1つのパケットにまとめ、圧縮する。
Specifically, the aggregating/compressing
例えば図20および図21を用いて説明した例は、「現在時刻」である「2017/12/01 00:00:01.090」において、送信待機リスト230における上から1、2、4番目のレコードに相当するパケットを送信するが、送信待機リスト230の宛先m10は、1番目と2番目のレコードに相当するパケットがブローカ装置10(#1)であり、4番目のレコードに相当するパケットがブローカ装置10(#2)である。このため、集約・圧縮部126は、1番目と2番目のレコードに相当するパケットを1つのパケットにまとめ、圧縮する。また、4番目のレコードに相当するパケットを、1つのパケットとして圧縮する。圧縮されたパケット形式の一例は、図22に示す通りである。
For example, in the example described with reference to FIGS. 20 and 21, the 1st, 2nd, and 4th from the top in the transmission waiting list 230 at the “current time” of “2017/12/01 00:00:01.090”. The packets corresponding to the records are transmitted. For the destination m10 in the transmission waiting list 230, the packets corresponding to the first and second records are the broker device 10 (#1), and the packet corresponding to the fourth record is the broker apparatus 10 (#1). It is the broker device 10 (#2). Therefore, the aggregation/
図22は、圧縮集約済出版データのパケット形式を例示するデータ構造図である。 FIG. 22 is a data structure diagram illustrating a packet format of compressed and aggregated publication data.
圧縮集約済出版データ245は、集約・圧縮部126によって、集約された複数の出版データSDが、さらに圧縮されたものである。
The compressed/aggregated
図22に示す例では、圧縮集約済出版データ245は、出版データSD1と出版データSD2とが並べられて1つの出版データとして集約された後に圧縮された構成をしている。出版データSD1は、購読情報(トピック)j1、データヘッダ(出版データサイズ等)h1、およびデータ本体b1を含み、出版データSD2は、購読情報(トピック)j2、データヘッダ(出版データサイズ等)h2、およびデータ本体b2を含む。なお、圧縮集約済出版データ245において集約される出版データSDの数は2つに限定されず、任意の数であってよい。
In the example shown in FIG. 22, the compressed/aggregated
分割・展開部130は、他出版データ受信部118に接続され、他ブローカ装置10から送信された圧縮集約済出版データ245を展開して集約済出版データへ復元し、集約済出版データを分割して、各出版データSD1、SD2へ復元し、復元された各出版データSD1、SD2を、他出版データ受信部118へ出力する。
The division/
分割・展開部130はさらに、他ブローカ装置10から出力された圧縮集約済出版データを、予め定められたアルゴリズムに従って展開することによって、圧縮集約済出版データから、集約済出版データを復元する。さらに、集約済出版データを分割することによって、集約済出版データから、複数の出版データを復元する。
Further, the division/
次に、以上のように構成した第3の実施形態の通信システムの動作例について説明する。 Next, an operation example of the communication system of the third embodiment configured as above will be described.
先ず、クライアント装置30からの出版データSDの出版要求受信時における処理について説明する。
First, processing when receiving a publication request for publication data SD from the
図23は、クライアント装置からの出版データの出版要求受信時における処理手順の一例を示すフローチャートである。 FIG. 23 is a flow chart showing an example of a processing procedure when receiving a publication data publication request from a client device.
クライアント装置30から送信された出版要求が受信される(S81)と、自購読情報管理部108によって、管理表205が参照され、出版要求があったトピックを自ブローカ装置購読情報m3とするクライアント装置30が、購読クライアント装置m4として書き込まれているレコードが存在するか否かが確認される(S82)。
When the publication request transmitted from the
購読クライアント装置30が、購読クライアント装置m4として書き込まれているレコードが存在すると判定された場合(S82:Yes)、そのクライアント装置30へ、出版データSDが送信され(S83)、ステップS84へ進む。
If the subscribing
ステップS82において、存在しないと判定された場合(S82:No)には、直接ステップS84へ進む。 If it is determined in step S82 that it does not exist (S82: No), the process proceeds directly to step S84.
ステップS84では、管理表200が参照され、出版要求があった購読情報(トピック)を購読する他ブローカ装置30が、購読ブローカ装置m1として書き込まれたレコードが存在するか否が判定される(S84)。
In step S84, the management table 200 is referred to, and it is determined whether or not there is a record in which the
存在すると判定された場合(S84:Yes)には、図20に示すような送信待機リスト230における各項目に該当する情報が書き込まれることによって登録がなされ(S85)、最終的な出版データSDが最新出版データ保持部114へ保持され、処理を終了する(S86)。なお、複数のブローカ装置10が、単一の出版データSDのトピックを購読している場合には、送信待機リスト230に、宛先ブローカ装置10毎に出版データSDが保持される。
If it is determined to exist (S84: Yes), registration is made by writing information corresponding to each item in the transmission waiting list 230 as shown in FIG. 20 (S85), and the final publication data SD is It is held in the latest publication
一方、ステップS84において、存在しないと判定された場合(S84:No)には、最新の出版データSDの最新出版データ保持部114への保持だけが行われた後、処理を終了する。
On the other hand, if it is determined in step S84 that it does not exist (S84: No), only the latest publication data SD is held in the latest publication
次に、出版要求に応じて出版データを送信する際における処理について説明する。 Next, the processing for transmitting publication data in response to a publication request will be described.
図24は、出版要求に応じた出版データ送信時における処理手順の一例を示すフローチャートである。 FIG. 24 is a flow chart showing an example of a processing procedure when publishing data is transmitted in response to a publication request.
先ず、自ブローカ装置13(#0)以外のブローカ装置10毎に送信するパケットを生成するために、未処理の宛先があるか否かが確認される(S91)。
First, in order to generate a packet to be transmitted to each
未処理の宛先がない場合(S92:No)には、一定時間(例えば、T=10ミリ秒)待機した後(S99)、送信待機リスト230における対応する処理済みフラグm14に書き込まれたフラグがクリアされ(S100)、ステップS91に戻る。 If there is no unprocessed destination (S92: No), after waiting for a certain period of time (for example, T=10 milliseconds) (S99), the flag written in the corresponding processed flag m14 in the transmission waiting list 230 is It is cleared (S100) and returns to step S91.
一方、ステップS91において、未処理の宛先がある場合(S91:Yes)には、その宛先が取得される(S92)。 On the other hand, if there is an unprocessed destination in step S91 (S91: Yes), that destination is acquired (S92).
続いて、図20に示す送信待機リスト230が参照され、取得された宛先が宛先m10に指定された未処理の、すなわち処理済みフラグm14が付いていない出版データSDが存在するか否かが判定される(S93)。 Subsequently, the transmission waiting list 230 shown in FIG. 20 is referred to, and it is determined whether or not there is unprocessed publication data SD with the acquired destination designated as the destination m10, that is, without the processed flag m14. (S93).
出版データSDが存在すると判定された場合(S93:Yes)、その出版データSDが取り出され、送信待機リスト230の該当レコードの処理済みフラグm14にフラグが付与される(S94)。 If it is determined that the publication data SD exists (S93: Yes), the publication data SD is extracted and a flag is added to the processed flag m14 of the corresponding record in the transmission waiting list 230 (S94).
さらに、その購読情報(トピック)の最大待機時間(例えば、最大待機時間M)が、最大待機時間リスト235から取得される(S95)。なお、最大待機時間リスト235は、あらかじめ準備されたものでも、あるいは、クライアント装置30等からの要求により動的に生成されたものでもよい。
Furthermore, the maximum waiting time (for example, maximum waiting time M) of the subscription information (topic) is acquired from the maximum waiting time list 235 (S95). Note that the maximum waiting time list 235 may be prepared in advance or dynamically generated upon request from the
さらに、実行日時が登録日時から最大待機時間Mを経過した後になるか否か、すなわち、(現在時刻+T)>(登録日時+M)となるか否かが判定される(S96)。 Further, it is determined whether or not the execution date and time will be after the maximum waiting time M has elapsed from the registration date and time, that is, whether (current time + T) > (registration date and time + M) (S96).
実行日時が、登録日時から最大待機時間Mを経過した後になると判定された場合(S96:Yes)、今回の出版データSDを送信するために、当該出版データSDが、送信待機リスト230と同一の構成をしている送信リストに登録され(S97)、これに応じて、当該出版データSDが送信待機リスト230から削除され(S98)、ステップS93へ戻る。なお、送信リストは、送信待機リスト230と同一の構成をしているので、図示を省略する。 When it is determined that the execution date and time will be after the maximum waiting time M has passed from the registration date and time (S96: Yes), in order to send the current publication data SD, the publication data SD is the same as the transmission waiting list 230. It is registered in the configured transmission list (S97), correspondingly, the publication data SD is deleted from the transmission standby list 230 (S98), and the process returns to step S93. Note that the transmission list has the same configuration as the transmission standby list 230, so illustration thereof is omitted.
一方、ステップS96において、実行日時が登録日時から最大待機時間Mを経過した後にならないと判定された場合(S96:No)もまた、ステップS93へ戻る。 On the other hand, if it is determined in step S96 that the execution date and time will not be after the maximum waiting time M has elapsed from the registration date and time (S96: No), the process also returns to step S93.
一方、ステップS93において、出版データSDが存在すると判定されなかった場合(S93:No)、送信リストに、保持した出版データSDが結合され(S101)、圧縮され(S102)、宛先ブローカ装置30へパケットが送信され(S103)、送信リストがクリアされ(S104)、ステップS91へ戻る。
On the other hand, in step S93, if it is determined that there is no publication data SD (S93: No), the held publication data SD is combined with the transmission list (S101), compressed (S102), and sent to the
次に、他ブローカ装置10から出版データが送信された場合における処理について説明する。
Next, processing when publication data is transmitted from another
図25は、他ブローカ装置からの出版データ送信場合における処理手順の一例を示すフローチャートである。 FIG. 25 is a flow chart showing an example of a processing procedure when publication data is transmitted from another broker device.
他ブローカ装置10から送信された出版データSDが、自ブローカ装置13(#0)によって受信される(S111)と、圧縮されているパケットが、分割・展開部130によって展開され、展開されたパケットに、複数の出版データSDが含まれている場合には、さらに展開されたパケットが分割され、各出版データSDが復元される(S112)。
When the publication data SD transmitted from the
分割されたパケットに、未処理の出版データSDが存在しないと判定された場合(ステップS113:No)には、処理を終了する。 If it is determined that the unprocessed publication data SD does not exist in the divided packets (step S113: No), the process ends.
一方、分割されたパケットに、未処理の出版データSDがあると判定された場合(ステップS113:Yes)には、未処理の出版データSDが1件取り出され(S114)、管理表205の購読ブローカ装置m1に、当該トピックの購読クライアント装置30が存在するか否かが判定される(S115)。
On the other hand, if it is determined that there is unprocessed publication data SD in the divided packet (step S113: Yes), one piece of unprocessed publication data SD is taken out (S114), and subscription to management table 205 is performed. It is determined whether or not the subscribing
購読クライアント装置30が存在すると判定された場合(S115:Yes)、そのクライアント装置30へ、出版データSDが送信され(S116)、最新の出版データSDが、最新出版データ保持部114に保持され(S117)、ステップS113へ戻る。
If it is determined that the subscribing
一方、ステップS115において、購読クライアント装置30が存在しないと判定された場合(S115:No)、ステップS117へ進む。
On the other hand, if it is determined in step S115 that the subscribing
なお、自ブローカ装置13(#0)がクライアント装置30から購読要求を受信した際の処理手順は、図5のフローチャートを用いて説明した通りであり、自ブローカ装置13(#0)が他ブローカ装置10から購読要求を受信した際の処理手順は、図8のフローチャートを用いて説明した通りであり、他ブローカ装置10の終了時および異常検出時における処理手順は、図11のフローチャートを用いて説明した通りである。
The processing procedure when own broker device 13 (#0) receives a subscription request from
このように、第3の実施形態によれば、パケットの総量および送信出版データ量を、通信の信頼性を保ったまま減らすことが可能となる。 Thus, according to the third embodiment, it is possible to reduce the total amount of packets and the amount of transmitted published data while maintaining the reliability of communication.
(変形例)
第3の実施形態の通信システムの変形例について説明する。
(Modification)
A modification of the communication system of the third embodiment will be described.
第3の実施形態では、図19に示すように、パケットの集約・圧縮および分割・展開は、集約・圧縮部126および分割・展開部130を備えたブローカ装置13によって実行されているが、本変形例では、ブローカ装置13ではなく、クライアント装置によって実行される。
In the third embodiment, as shown in FIG. 19, aggregation/compression and segmentation/decompression of packets are executed by the
図26は、第3の実施形態の通信システムの変形例に適用されるクライアント装置の構成例を示す概念図である。 FIG. 26 is a conceptual diagram showing a configuration example of a client device applied to the modification of the communication system of the third embodiment.
変形例のクライアント装置31は、ブローカ装置10に、ネットワーク20を介して接続されている。ブローカ装置10の構成は、図3に示す通りであるので、重複説明を避ける。
The
クライアント装置31は、通信部302、分割・展開部304、購読・出版要求部306、集約・圧縮部308、異常検出部310、および負荷検出部312を備える。
The
集約・圧縮部308は、同一のトピックに関連する複数の出版データSDを集約して1つの集約済出版データを生成し、生成された集約済出版データを圧縮し、集約圧縮済出版データを生成する。しかしながら、集約・圧縮部308は、各ブローカ装置10が購読しているトピックがわからないため、宛先ブローカ装置10毎にパケットを圧縮することができない。そこで、トピック毎に出版データSDを集約して圧縮する。
The aggregation/
図27は、最大待機時間リストの一例を示す図である。 FIG. 27 is a diagram showing an example of a maximum waiting time list.
図28は、送信待機リストの一例を示す図である。 FIG. 28 is a diagram showing an example of a transmission waiting list.
図27に示す最大待機時間リスト250および時間条件255は、図21に示す最大待機時間リスト235および時間条件240と同一である。最大待機時間リスト250および時間条件255は、クライアント装置31内の図示しないストレージに記憶されており、クライアント装置31内の各部位によって参照されることが可能である。
The maximum waiting time list 250 and
図28に示す送信待機リスト260は、図20に示す送信待機リスト230から、宛先m10を削除した構成となっている。送信待機リスト260もまた、クライアント装置31内の図示しないストレージに記憶されており、クライアント装置31内の各部位によって参照されることが可能である。
The transmission standby list 260 shown in FIG. 28 has a configuration in which the destination m10 is deleted from the transmission standby list 230 shown in FIG. The transmission waiting list 260 is also stored in a storage (not shown) within the
例えば、各購読情報(トピック)m15毎の最大待機時間m16が図27に示す通りであり、T=10ミリ秒毎にパケット送信が行われる場合、図28に示す送信待機リスト260において、次回呼出時に最大待機時間を経過する購読情報(トピック)m1は、上から1~4番目のレコードに相当する情報群A、情報群B、情報群B、および情報群Cとなる。そこで、集約・圧縮部308は、情報群Aのパケット、情報群Bのパケット、情報群Cのパケットそれぞれを集約して圧縮する。情報群Aのデータは1番目のレコードのみ、情報群Cのデータは4番目のレコードのみであるためそのまま圧縮する。一方、情報群Bのパケットは2、3番目のレコードに相当するデータがあるため、2つのデータを集約してから圧縮する。
For example, if the maximum waiting time m16 for each subscription information (topic) m15 is as shown in FIG. The subscription information (topic) m1 for which the maximum waiting time has passed at some time becomes information group A, information group B, information group B, and information group C corresponding to the first to fourth records from the top. Therefore, the aggregation/
図29は、圧縮集約済データのパケット形式を例示するデータ構造図である。 FIG. 29 is a data structure diagram illustrating a packet format of compressed aggregated data.
圧縮集約済出版データ265は、集約・圧縮部308によって、集約された複数の出版データSDが、さらに圧縮されたものである。
The compressed aggregated
図29に示す例では、圧縮集約済出版データ265は、出版データSD1と出版データSD2とが1つの出版データとして集約された後に圧縮された構成をしている。ここで、出版データSD1と出版データSD2とは同じ購読情報(トピック)であるので、先頭に購読情報(トピック)jを出版データSD1と出版データSD2とに共通した情報として備え、その後、出版データSD1のデータヘッダh1およびデータ本体b1が続き、その後、出版データSD2のデータヘッダh2およびデータ本体b2が続くような形式であって良い。なお、圧縮集約済出版データ265において集約される出版データSDの数は2つに限定されず、任意の数であってよい。 ブローカ装置10側では、受信したパケットのトピック情報が参照されることによって、転送するクライアント装置31およびブローカ装置10が決定される。他ブローカ装置10へ転送する際には、さらに図19の構成と組み合わせて、宛先ブローカ装置10毎にさらに出版データSDを集約してから送信してもよい。
In the example shown in FIG. 29, the compressed and aggregated
一方、ブローカ装置10から送信された出版データSDが、クライアント装置31によって受信された場合には、トピック毎に出版データSDが集約・圧縮されているため、分割・展開部304は、トピック毎に出版データSDが集約・圧縮されている集約圧縮済出版データを、個々の出版データに分割する機能を有する。
On the other hand, when the publication data SD transmitted from the
すなわち、分割・展開部304は、集約圧縮済出版データを展開して、圧縮前の集約済出版データを復元し、復元された集約済出版データを分割して、複数の出版データSDを復元する。
That is, the division/
異常検出部310は、接続されたブローカ装置10の異常を検出すると、異常検出されたブローカ装置10から、別のブローカ装置10(例えば、ブローカ装置10(#1))へ接続先を変更する。
When detecting an abnormality in the
負荷検出部312は、ブローカ装置10の負荷増大を検出すると、負荷増大を検出されたブローカ装置10から、別のブローカ装置10(例えば、ブローカ装置10(#1))へ接続先を変更する。
When the
通信部302は、異常検出部310および負荷検出部312によって接続先として変更されたブローカ装置10(例えば、ブローカ装置10(#1))へ、集約圧縮済出版データを送信するとともに、ブローカ装置10から送信された集約圧縮済出版データを、分割・展開部304へ出力する。
The
なお、本変形例において、ブローカ装置10は、第1の実施形態で説明した機能に加えて、集約・圧縮されたパケットの購読情報(トピック)等を管理する機能を有する。
In this modification, the
図30は、クライアント装置からの出版データの出版要求受信時における処理手順の一例を示すフローチャートである。 FIG. 30 is a flow chart showing an example of a processing procedure when receiving a publication request for publication data from a client device.
クライアント装置31が、出版要求を行う場合(S121)には、図28に示すような送信待機リスト260に出版データSDの購読情報(トピック)m11、データm12、登録日時m13を保持して終了する(S122)。
When the
一方で、クライアント装置31は、定期的にブローカ装置10に対して出版データSDを送信するため、購読情報(トピック)毎にパケットの集約・圧縮および送信処理を行う。
On the other hand, the
図31は、購読情報(トピック)毎にパケットの集約・圧縮および送信処理を行う際における処理手順の一例を示すフローチャートである。 FIG. 31 is a flow chart showing an example of a processing procedure when aggregation/compression and transmission processing of packets are performed for each subscription information (topic).
図31に示すフローチャートは、図24に示すフローチャートに類似しているので、重複説明を避け、相違点について説明する。 Since the flowchart shown in FIG. 31 is similar to the flowchart shown in FIG. 24, redundant description will be avoided and differences will be described.
すなわち、図24では、宛先ブローカ装置10毎にパケットの集約・圧縮処理を行うが、図31では、トピック毎にパケットの集約・圧縮処理を行う。このため、図31では、ステップS131において、未処理の購読情報(トピック)が存在するか否かが判定され、存在すると判定された場合には、ステップS132において、未処理の購読情報(トピック)が取得され、ステップS133において、取得された購読情報(トピック)に合致する送信待機データが存在するか否かが判定され、存在すると判定された場合には、ステップS134において、取得された購読情報に合致する送信待機データが取り出される。
That is, in FIG. 24, packet aggregation/compression processing is performed for each
ステップS131において、存在すると判定されなかった場合(S131:No)には、図24におけるステップS99以降の処理がなされ、ステップS133において、存在すると判定されなかった場合(S133:No)には、図24におけるステップS101以降の処理がなされ、ステップS134の後は、図24におけるステップS95以降の処理がなされる。 If it is determined not to exist in step S131 (S131: No), the processing from step S99 onward in FIG. 24 is performed. 24 are performed, and after step S134, the processes after step S95 in FIG. 24 are performed.
図32は、ブローカ装置からの出版データ送信時における処理手順の一例を示すフローチャートである。 FIG. 32 is a flow chart showing an example of a processing procedure when publishing data is transmitted from a broker device.
クライアント装置31では、ブローカ装置10から送信された出版データSDが、通信部302によって受信される(S141)と、その出版データSDが分割・展開部304によって展開された後に、分割される(S142)。さらに個々の出版データSD毎に処理を行うため、分割された出版データSDに、未処理の出版データSDが存在するか否が判定される(S143)。
In the
未処理の出版データSDが存在しなければ(S143:No)、そのまま処理を終了し、未処理の出版データSDが存在すれば(S143:Yes)、1件の出版データSDが取り出され、処理が実行された後に、S144へ戻る。 If there is no unprocessed publication data SD (S143: No), the process is terminated, and if there is unprocessed publication data SD (S143: Yes), one publication data SD is extracted and processed. is executed, the process returns to S144.
なお、購読要求時の処理手順は、ブローカ装置10に購読要求を送信するのみであるため、ここでは省略する。また、ブローカ装置10側での処理手順は、第1の実施形態において説明済みであるので、重複説明を避ける。
It should be noted that the processing procedure for the subscription request is omitted here because it only transmits the subscription request to the
このような変形例によっても、パケットの総量および送信出版データ量を通信の信頼性を保ったまま減らすことが可能となる。 This modification also makes it possible to reduce the total amount of packets and the amount of published data to be transmitted while maintaining the reliability of communication.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。 While several embodiments of the invention have been described, these embodiments have been presented by way of example and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, replacements, and modifications can be made without departing from the scope of the invention. These embodiments and their modifications are included in the scope and spirit of the invention, as well as the scope of the invention described in the claims and equivalents thereof.
1 通信システム、2 通信システム、10 ブローカ装置、11 ブローカ装置、12 ブローカ装置、13 ブローカ装置、20 ネットワーク、21 ネットワーク、30 クライアント装置、31 クライアント装置、40 サブブローカ装置、102 通信部、104 通信部、106 自購読情報受信部、108 自購読情報管理部、110 自出版データ受信部、112 自出版データ送信部、114 最新出版データ保持部、116 他出版データ送信部、118 他出版データ受信部、120 他購読情報管理部、122 終了検知部、124 QoS管理部、126 集約・圧縮部、128 リアルタイム性判定部、130 分割・展開部、200 他ブローカ装置購読情報管理表、205 自ブローカ装置購読情報管理表、210 購読情報購読数管理表、215 ブローカ装置購読数管理表、220 他購読情報管理表、225 自購読情報管理表、230 送信待機リスト、235 最大待機時間リスト、240 時間条件、245 圧縮集約済出版データ、250 最大待機時間リスト、255 時間条件、260 送信待機リスト、265 圧縮集約済出版データ、302 通信部、304 分割・展開部、306 購読・出版要求部、308 集約・圧縮部、310 異常検出部、312 負荷検出部、402 終了検知部、404 購読決定部。
1 communication system, 2 communication system, 10 broker device, 11 broker device, 12 broker device, 13 broker device, 20 network, 21 network, 30 client device, 31 client device, 40 sub-broker device, 102 communication unit, 104 communication unit, 106 Own subscription
Claims (9)
前記第2のクライアント装置によって購読されるトピックに対する購読要求を、前記第2のクライアント装置から受信する自購読情報受信部と、
前記第1のクライアント装置から、前記トピックに関連する出版データを受信する自出版データ受信部と、
前記自出版データ受信部によって受信された出版データを、前記第2のクライアント装置へ送信する自出版データ送信部と、
前記自出版データ受信部によって受信された出版データを、前記他ブローカ装置へ送信する他出版データ送信部と、
前記他ブローカ装置から、前記トピックに関連する出版データを受信する他出版データ受信部と、
前記自出版データ受信部および前記他出版データ受信部によって受信された前記出版データから、最新の出版データを前記トピック毎に抽出し保持する最新出版データ保持部と、
前記他ブローカ装置によって購読されるトピックに対する購読要求を、前記他ブローカ装置から受信する他購読情報管理部と、
前記ブローカ装置によって購読されるトピックを管理するとともに、前記管理しているトピックに変化があった場合には、このトピックを前記他ブローカ装置へ送信する自購読情報管理部とを備え、
前記自出版データ送信部は、前記第2のクライアント装置から受信した購読要求に関連するトピックの最新の出版データを、前記最新出版データ保持部から取得し、前記第2のクライアント装置へ送信し、
前記他出版データ送信部は、前記他購読情報管理部によって受信された購読要求に関連するトピックに関連する最新の出版データを、前記最新出版データ保持部から取得し、前記他ブローカ装置へ送信し、
前記第2のクライアント装置から、あるトピックについての購読要求があった場合、前記自購読情報管理部は、当該トピックが新規のトピックであるかを判定するために、管理しているトピックを購読するクライアント装置が存在するか否かを判定し、
前記自購読情報管理部は、前記管理しているトピックを購読するクライアント装置が存在しない場合には、新たな購読登録の購読要求を出力し、
前記他購読情報管理部は、2つ以上のブローカ装置で購読されているトピックのうち、前記自購読情報管理部によって管理されている前記トピックを購読するクライアント装置が存在しない場合には、購読解除の購読要求を前記自購読情報管理部へ出力する、ブローカ装置。 A broker device that transmits publication data received from a first client device to a second client device and another broker device,
a subscription information receiving unit that receives a subscription request for a topic subscribed by the second client device from the second client device;
a self-published data receiving unit that receives published data related to the topic from the first client device;
a self-published data transmission unit that transmits the published data received by the self-published data receiving unit to the second client device;
an other publication data transmission unit that transmits the publication data received by the own publication data reception unit to the other broker device;
a other publication data receiving unit that receives publication data related to the topic from the other broker device;
a latest publication data holding unit for extracting and holding the latest publication data for each topic from the publication data received by the own publication data reception unit and the other publication data reception unit;
a other subscription information management unit that receives a subscription request for a topic subscribed by the other broker device from the other broker device;
a self-subscription information management unit that manages topics subscribed by the broker device and transmits the topic to the other broker device when there is a change in the managed topic;
The self-published data transmission unit obtains from the latest published data holding unit the latest published data of a topic related to the subscription request received from the second client device, and transmits the data to the second client device;
The other publication data transmission unit obtains the latest publication data related to the topic related to the subscription request received by the other subscription information management unit from the latest publication data holding unit, and transmits the latest publication data to the other broker device. ,
When a subscription request for a certain topic is received from the second client device, the self-subscription information management unit subscribes to the managed topic in order to determine whether the topic is a new topic. determining whether a client device is present;
The self-subscription information management unit outputs a subscription request for new subscription registration when there is no client device that subscribes to the managed topic,
If there is no client device subscribing to the topic managed by the self-subscription information management unit among the topics subscribed to by two or more broker devices, the other subscription information management unit cancels the subscription. to the own subscription information management unit .
前記第2のクライアント装置によって購読されるトピックに対する購読要求を、前記第2のクライアント装置から受信する自購読情報受信部と、
前記第1のクライアント装置から、前記トピックに関連する出版データを受信する自出版データ受信部と、
前記自出版データ受信部によって受信された出版データを、前記第2のクライアント装置へ送信する自出版データ送信部と、
前記自出版データ受信部によって受信された出版データを、前記他ブローカ装置へ送信する他出版データ送信部と、
前記他ブローカ装置から、前記トピックに関連する出版データを受信する他出版データ受信部と、
前記自出版データ受信部および前記他出版データ受信部によって受信された前記出版データから、最新の出版データを前記トピック毎に抽出し保持する最新出版データ保持部と、
前記他ブローカ装置によって購読されるトピックに対する購読要求を、前記他ブローカ装置から受信する他購読情報管理部と、
前記ブローカ装置によって購読されるトピックを管理するとともに、前記管理しているトピックに変化があった場合には、このトピックを前記他ブローカ装置へ送信する自購読情報管理部とを備え、
前記自出版データ送信部は、前記第2のクライアント装置から受信した購読要求に関連するトピックの最新の出版データを、前記最新出版データ保持部から取得し、前記第2のクライアント装置へ送信し、
前記他出版データ送信部は、前記他購読情報管理部によって受信された購読要求に関連するトピックに関連する最新の出版データを、前記最新出版データ保持部から取得し、前記他ブローカ装置へ送信し、
前記第2のクライアント装置から、あるトピックについての購読要求があった場合、前記自購読情報管理部は、当該トピックが新規のトピックであるかを判定するために、管理しているトピックを購読するクライアント装置が存在するか否かを判定し、
前記自購読情報管理部は、前記管理しているトピックを購読するクライアント装置が存在しない場合には、新たな購読登録の購読要求を出力し、
前記他購読情報管理部は、ブローカ装置毎に購読される前記トピックの数を計算し、前記ブローカ装置毎に購読される前記トピックの数の最小値が前記自購読情報管理部によって管理される前記トピックの数の合計値を上回る場合、新たな購読登録の購読要求を、前記自購読情報管理部へ出力する、ブローカ装置。 A broker device that transmits publication data received from a first client device to a second client device and another broker device,
a subscription information receiving unit that receives a subscription request for a topic subscribed by the second client device from the second client device;
a self-published data receiving unit that receives published data related to the topic from the first client device;
a self-published data transmission unit that transmits the published data received by the self-published data receiving unit to the second client device;
an other publication data transmission unit that transmits the publication data received by the own publication data reception unit to the other broker device;
a other publication data receiving unit that receives publication data related to the topic from the other broker device;
a latest publication data holding unit for extracting and holding the latest publication data for each topic from the publication data received by the own publication data reception unit and the other publication data reception unit;
a other subscription information management unit that receives a subscription request for a topic subscribed by the other broker device from the other broker device;
a self-subscription information management unit that manages topics subscribed by the broker device and transmits the topic to the other broker device when there is a change in the managed topic;
The self-published data transmission unit obtains from the latest published data holding unit the latest published data of a topic related to the subscription request received from the second client device, and transmits the data to the second client device;
The other publication data transmission unit obtains the latest publication data related to the topic related to the subscription request received by the other subscription information management unit from the latest publication data holding unit, and transmits the latest publication data to the other broker device. ,
When a subscription request for a certain topic is received from the second client device, the self-subscription information management unit subscribes to the managed topic in order to determine whether the topic is a new topic. determining whether a client device is present;
The self-subscription information management unit outputs a subscription request for new subscription registration when there is no client device that subscribes to the managed topic,
The other subscription information management unit calculates the number of topics subscribed to for each broker device, and the minimum number of topics subscribed to each broker device is managed by the own subscription information management unit. A broker device that outputs a subscription request for new subscription registration to the own subscription information management unit when the total number of topics exceeds the total value.
前記第2のクライアント装置によって購読されるトピックに対する購読要求を、前記第2のクライアント装置から受信する自購読情報受信部と、
前記第1のクライアント装置から、前記トピックに関連する出版データを受信する自出版データ受信部と、
前記自出版データ受信部によって受信された出版データを、前記第2のクライアント装置へ送信する自出版データ送信部と、
前記自出版データ受信部によって受信された出版データを、前記他ブローカ装置へ送信する他出版データ送信部と、
前記他ブローカ装置から、前記トピックに関連する出版データを受信する他出版データ受信部と、
前記自出版データ受信部および前記他出版データ受信部によって受信された前記出版データから、最新の出版データを前記トピック毎に抽出し保持する最新出版データ保持部と、
前記他ブローカ装置によって購読されるトピックに対する購読要求を、前記他ブローカ装置から受信する他購読情報管理部と、
前記ブローカ装置によって購読されるトピックを管理するとともに、前記管理しているトピックに変化があった場合には、このトピックを前記他ブローカ装置へ送信する自購読情報管理部と、
前記トピック毎に、前記出版データの送受信に要求される信頼性の指標値を管理するとともに、前記出版データの複製が必要か否かを判定する指標値管理部とを備え、
前記自出版データ送信部は、前記第2のクライアント装置から受信した購読要求に関連するトピックの最新の出版データを、前記最新出版データ保持部から取得し、前記第2のクライアント装置へ送信し、
前記他出版データ送信部は、前記他購読情報管理部によって受信された購読要求に関連するトピックに関連する最新の出版データを、前記最新出版データ保持部から取得し、前記他ブローカ装置へ送信し、
前記第2のクライアント装置から、あるトピックについての購読要求があった場合、前記自購読情報管理部は、当該トピックが新規のトピックであるかを判定するために、管理しているトピックを購読するクライアント装置が存在するか否かを判定し、
前記自購読情報管理部は、前記管理しているトピックを購読するクライアント装置が存在しない場合には、新たな購読登録の購読要求を出力し、
前記他購読情報管理部は、前記他ブローカ装置から、購読解除の購読要求があった前記トピックについて、前記指標値管理部によって、前記出版データの複製が必要であると判定された場合に、購読登録の購読要求を、前記自購読情報管理部へ出力する、ブローカ装置。 A broker device that transmits publication data received from a first client device to a second client device and another broker device,
a subscription information receiving unit that receives a subscription request for a topic subscribed by the second client device from the second client device;
a self-published data receiving unit that receives published data related to the topic from the first client device;
a self-published data transmission unit that transmits the published data received by the self-published data receiving unit to the second client device;
an other publication data transmission unit that transmits the publication data received by the own publication data reception unit to the other broker device;
a other publication data receiving unit that receives publication data related to the topic from the other broker device;
a latest publication data holding unit for extracting and holding the latest publication data for each topic from the publication data received by the own publication data reception unit and the other publication data reception unit;
a other subscription information management unit that receives a subscription request for a topic subscribed by the other broker device from the other broker device;
a subscription information management unit that manages the topic subscribed by the broker device and transmits the topic to the other broker device when there is a change in the managed topic;
an index value management unit that manages an index value of reliability required for transmission and reception of the publication data for each topic and determines whether or not duplication of the publication data is necessary ;
The self-published data transmission unit obtains from the latest published data holding unit the latest published data of a topic related to the subscription request received from the second client device, and transmits the data to the second client device;
The other publication data transmission unit obtains the latest publication data related to the topic related to the subscription request received by the other subscription information management unit from the latest publication data holding unit, and transmits the latest publication data to the other broker device. ,
When a subscription request for a certain topic is received from the second client device, the self-subscription information management unit subscribes to the managed topic in order to determine whether the topic is a new topic. determining whether a client device is present;
The self-subscription information management unit outputs a subscription request for new subscription registration when there is no client device that subscribes to the managed topic,
When the index value management unit determines that duplication of the publication data is necessary for the topic for which a subscription cancellation request has been received from the other broker device, the other subscription information management unit A broker device that outputs a subscription request for registration to the own subscription information management unit.
前記集約部によって集約された前記集約済出版データを、予め定められた第1のアルゴリズムに従って圧縮する圧縮部とをさらに備えた、請求項1乃至3のうち何れか1項に記載のブローカ装置。 an aggregating unit for aggregating the publication data transmitted from the other publication data transmission unit to a plurality of the other broker devices into one aggregated publication data at regular time intervals for each of the other broker devices;
4. The broker device according to any one of claims 1 to 3 , further comprising a compression unit for compressing said aggregated publication data aggregated by said aggregation unit according to a predetermined first algorithm.
さらに、現在時刻から前記一定時間経過した時刻と、前記受信時刻との差が、前記トピック毎に予め定められた最大待機時間を超える前記出版データを、前記集約部による集約の対象であると判定するリアルタイム性判定部を備えた、請求項4に記載のブローカ装置。 The self-published data receiving unit records the reception time of the published data received from the first client device,
Further, the aggregating unit determines that the publication data in which the difference between the time when the predetermined time has passed from the current time and the reception time exceeds a predetermined maximum waiting time for each topic is to be aggregated by the aggregating unit. 5. The broker device according to claim 4 , comprising a real-time determining unit that
前記展開部によって復元された前記圧縮前の集約済出版データを分割して、前記圧縮前の集約済出版データから、集約前の複数の出版データを復元する分割部とをさらに備えた、請求項1乃至5のうち何れか1項に記載のブローカ装置。 By developing aggregated publication data, which is obtained by aggregating and compressing a plurality of publication data transmitted from the other broker device and received by the other publication data receiving unit, according to a predetermined second algorithm, a decompression unit that restores the aggregated publication data before compression from the compressed aggregated publication data;
and a dividing unit that divides the uncompressed aggregated publication data restored by the expansion unit, and restores a plurality of unaggregated publication data from the uncompressed aggregated publication data. 6. The broker device according to any one of 1 to 5.
前記ブローカ装置が、
前記第2のクライアント装置によって購読されるトピックに対する購読要求を、前記第2のクライアント装置から受信する第1工程と、
前記第1のクライアント装置から、前記トピックに関連する出版データを受信する第2工程と、
前記受信された出版データを、前記第2のクライアント装置へ送信する第3工程と、
前記受信された出版データを、前記他ブローカ装置へ送信する第4工程と、
前記他ブローカ装置から、前記トピックに関連する出版データを受信する第5工程と、
前記第2工程および前記第5工程で受信された出版データから、最新の出版データを前記トピック毎に抽出し保持する第6工程と、
前記他ブローカ装置によって購読されるトピックに対する購読要求を、前記他ブローカ装置から受信する第7工程と、
前記ブローカ装置によって購読されるトピックを管理するとともに、前記管理しているトピックに変化があった場合には、このトピックを前記他ブローカ装置へ送信する第8工程と、
前記第2のクライアント装置から受信した購読要求に関連するトピックの最新の出版データを取得し、前記第2のクライアント装置へ送信する第9工程と、
前記第7工程で受信された購読要求に関連するトピックに関連する最新の出版データを、前記他ブローカ装置へ送信する第10工程と、
前記第2のクライアント装置から、あるトピックについての購読要求があった場合、当該トピックが新規のトピックであるかを判定するために、管理しているトピックを購読するクライアント装置が存在するか否かを判定する第11工程と、
前記管理されているトピックを購読するクライアント装置が存在しない場合には、新たな購読登録の購読要求を出力する第12工程と、
2つ以上のブローカ装置で購読されているトピックのうち、前記管理されているトピックを購読するクライアント装置が存在しない場合には、購読解除の購読要求を出力する第13工程とを含む、通信方法。 A communication method implemented by a broker device for transmitting publication data received from a first client device to a second client device and other broker devices, comprising:
The broker device
a first step of receiving from said second client device a subscription request for a topic subscribed to by said second client device;
a second step of receiving publication data related to the topic from the first client device;
a third step of transmitting said received publication data to said second client device;
a fourth step of transmitting the received publication data to the other broker device;
a fifth step of receiving publication data related to the topic from the other broker device;
a sixth step of extracting and holding the latest publication data for each topic from the publication data received in the second step and the fifth step;
a seventh step of receiving a subscription request for a topic subscribed by the other broker device from the other broker device;
an eighth step of managing topics subscribed to by said broker device and transmitting this topic to said other broker device when there is a change in said managed topic;
a ninth step of retrieving and transmitting to the second client device the latest publication data for topics related to the subscription request received from the second client device;
a tenth step of sending the latest publication data related to the topic related to the subscription request received in the seventh step to the other broker device;
If there is a subscription request for a certain topic from the second client device, whether or not there is a client device that subscribes to the managed topic in order to determine whether the topic is a new topic an eleventh step of determining
a twelfth step of outputting a subscription request for a new subscription if no client device subscribes to the managed topic ;
a thirteenth step of outputting a subscription request for unsubscribing when there is no client device subscribing to the managed topic among the topics subscribed to by two or more broker devices. .
前記第2のクライアント装置によって購読されるトピックに対する購読要求を、前記第2のクライアント装置から受信する第1機能、
前記第1のクライアント装置から、前記トピックに関連する出版データを受信する第2機能、
前記受信された出版データを、前記第2のクライアント装置へ送信する第3機能、
前記受信された出版データを、前記他ブローカ装置へ送信する第4機能、
前記他ブローカ装置から、前記トピックに関連する出版データを受信する第5機能、
前記第2機能および前記第5機能で受信された出版データから、最新の出版データを前記トピック毎に抽出し保持する第6機能、
前記他ブローカ装置によって購読されるトピックに対する購読要求を、前記他ブローカ装置から受信する第7機能、
ブローカ装置によって購読されるトピックを管理するとともに、前記管理しているトピックに変化があった場合には、このトピックを前記他ブローカ装置へ送信する第8機能、
前記第2のクライアント装置から受信した購読要求に関連するトピックの最新の出版データを取得し、前記第2のクライアント装置へ送信する第9機能、
前記第7機能で受信された購読要求に関連するトピックに関連する最新の出版データを、前記他ブローカ装置へ送信する第10機能、
前記第2のクライアント装置から、あるトピックについての購読要求があった場合、当該トピックが新規のトピックであるかを判定するために、管理しているトピックを購読するクライアント装置が存在するか否かを判定する第11機能、
前記管理されているトピックを購読するクライアント装置が存在しない場合には、新たな購読登録の購読要求を出力する第12機能、
2つ以上のブローカ装置で購読されているトピックのうち、前記管理されているトピックを購読するクライアント装置が存在しない場合には、購読解除の購読要求を出力する第13機能、
をコンピュータに実現させるためのプログラム。 A program for transmitting publication data received from a first client device to a second client device and another broker device,
a first function for receiving from said second client device a subscription request for a topic subscribed to by said second client device;
a second function for receiving publication data related to the topic from the first client device;
a third function of transmitting said received publication data to said second client device;
a fourth function of transmitting the received publication data to the other broker device;
a fifth function of receiving publication data related to the topic from the other broker device;
A sixth function for extracting and holding the latest publication data for each topic from the publication data received by the second function and the fifth function;
a seventh function of receiving, from the other broker device, a subscription request for a topic subscribed by the other broker device;
an eighth function of managing topics subscribed to by a broker device and transmitting this topic to the other broker device when there is a change in the managed topic;
a ninth function of retrieving and transmitting to the second client device the latest publication data for topics related to the subscription request received from the second client device;
A tenth function of sending the latest publication data related to the topic related to the subscription request received by the seventh function to the other broker device;
If there is a subscription request for a certain topic from the second client device, whether or not there is a client device that subscribes to the managed topic in order to determine whether the topic is a new topic An eleventh function that determines
A twelfth function that outputs a subscription request for new subscription registration when there is no client device that subscribes to the managed topic;
a thirteenth function of outputting a subscription request for unsubscribing when there is no client device subscribing to the managed topic among the topics subscribed to by two or more broker devices;
A program for realizing on a computer.
前記複数のブローカ装置のうち少なくとも1つのブローカ装置は、
前記複数のクライアント装置のうち第2のクライアント装置によって購読されるトピックに対する購読要求を、前記第2のクライアント装置から受信する自購読情報受信部と、
前記複数のクライアント装置のうち第1のクライアント装置から、前記トピックに関連する出版データを受信する自出版データ受信部と、
前記自出版データ受信部によって受信された出版データを、前記第2のクライアント装置へ送信する自出版データ送信部と、
前記自出版データ受信部によって受信された出版データを、前記複数のブローカ装置のうち他ブローカ装置へ送信する他出版データ送信部と、
前記他ブローカ装置から、前記トピックに関連する出版データを受信する他出版データ受信部と、
前記自出版データ受信部および前記他出版データ受信部によって受信された前記出版データから、最新の出版データを前記トピック毎に抽出し保持する最新出版データ保持部と、
前記他ブローカ装置によって購読されるトピックに対する購読要求を、前記他ブローカ装置から受信する他購読情報管理部と、
前記ブローカ装置によって購読されるトピックを管理するとともに、前記管理しているトピックに変化があった場合には、このトピックを前記他ブローカ装置へ送信する自購読情報管理部とを備え、
前記自出版データ送信部は、前記第2のクライアント装置から受信した購読要求に関連するトピックの最新の出版データを、前記最新出版データ保持部から取得し、前記第2のクライアント装置へ送信し、
前記他出版データ送信部は、前記他購読情報管理部によって受信された購読要求に関連するトピックに関連する最新の出版データを、前記最新出版データ保持部から取得し、前記他ブローカ装置へ送信し、
前記第2のクライアント装置から、あるトピックについての購読要求があった場合、前記自購読情報管理部は、当該トピックが新規のトピックであるかを判定するために、管理しているトピックを購読するクライアント装置が存在するか否かを判定し、
前記自購読情報管理部は、前記管理しているトピックを購読するクライアント装置が存在しない場合には、新たな購読登録の購読要求を出力し、
前記他購読情報管理部は、2つ以上のブローカ装置で購読されているトピックのうち、前記自購読情報管理部によって管理されている前記トピックを購読するクライアント装置が存在しない場合には、購読解除の購読要求を前記自購読情報管理部へ出力し、
前記複数のクライアント装置のうち少なくとも1つのクライアント装置は、
前記複数のブローカ装置のうち、接続先のブローカ装置から送信された、複数の出版データが集約および圧縮されてなる集約済出版データを展開して、圧縮前の前記集約済出版データを復元し、前記復元された前記集約済出版データを分割して、集約前の出版データを復元する分割展開部と、
前記接続先のブローカ装置へ送信される複数の出版データを、それぞれ関連するトピック毎に集約して集約済出版データを生成し、前記生成された集約済出版データを圧縮する集約圧縮部と、
前記集約圧縮部によって圧縮された前記集約済出版データを、前記接続先のブローカ装置へ送信するとともに、前記接続先のブローカ装置から送信された前記集約済出版データを受信して、前記分割展開部へ提供する通信部とを備えた、通信システム。 A communication system comprising a plurality of client devices and a plurality of broker devices,
At least one broker device among the plurality of broker devices,
a subscription information receiving unit that receives, from the second client device, a subscription request for a topic subscribed by the second client device among the plurality of client devices;
a self-published data receiving unit that receives published data related to the topic from a first client device among the plurality of client devices;
a self-published data transmission unit that transmits the published data received by the self-published data receiving unit to the second client device;
an other publication data transmission unit that transmits the publication data received by the own publication data reception unit to another broker device among the plurality of broker devices;
a other publication data receiving unit that receives publication data related to the topic from the other broker device;
a latest publication data holding unit for extracting and holding the latest publication data for each topic from the publication data received by the own publication data reception unit and the other publication data reception unit;
a other subscription information management unit that receives a subscription request for a topic subscribed by the other broker device from the other broker device;
a self-subscription information management unit that manages topics subscribed by the broker device and transmits the topic to the other broker device when there is a change in the managed topic;
The self-published data transmission unit obtains from the latest published data storage unit the latest published data of a topic related to the subscription request received from the second client device, and transmits the data to the second client device;
The other publication data transmission unit obtains the latest publication data related to the topic related to the subscription request received by the other subscription information management unit from the latest publication data holding unit, and transmits the latest publication data to the other broker device. ,
When a subscription request for a certain topic is received from the second client device, the self-subscription information management unit subscribes to the managed topic in order to determine whether the topic is a new topic. determining whether a client device is present;
The self-subscription information management unit outputs a subscription request for new subscription registration when there is no client device that subscribes to the managed topic,
If there is no client device subscribing to the topic managed by the self-subscription information management unit among the topics subscribed to by two or more broker devices, the other subscription information management unit cancels the subscription. to the subscription information management unit,
At least one client device among the plurality of client devices,
developing aggregated publication data, which is obtained by aggregating and compressing a plurality of publication data, transmitted from a connection destination broker device among the plurality of broker devices, and restoring the aggregated publication data before compression; a division expansion unit that divides the restored aggregated publication data and restores publication data before aggregation;
an aggregation compression unit that aggregates a plurality of publication data to be transmitted to the connection destination broker device for each related topic to generate aggregated publication data, and compresses the generated aggregated publication data;
transmitting the aggregated publication data compressed by the aggregation compression unit to the connection destination broker device, receiving the aggregated publication data transmitted from the connection destination broker device, and dividing and decompressing unit a communication unit for providing to.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018140330A JP7163093B2 (en) | 2018-07-26 | 2018-07-26 | Broker device, communication system, communication method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018140330A JP7163093B2 (en) | 2018-07-26 | 2018-07-26 | Broker device, communication system, communication method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020017118A JP2020017118A (en) | 2020-01-30 |
JP7163093B2 true JP7163093B2 (en) | 2022-10-31 |
Family
ID=69580396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018140330A Active JP7163093B2 (en) | 2018-07-26 | 2018-07-26 | Broker device, communication system, communication method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7163093B2 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003003673A1 (en) | 2001-06-28 | 2003-01-09 | Ntt Docomo, Inc. | Routing method, node, packet communication system, program, and recording medium |
WO2009050794A1 (en) | 2007-10-16 | 2009-04-23 | Fujitsu Limited | Relay station device, terminal station device, wireless communication system, and method for distributing load |
JP2015192356A (en) | 2014-03-28 | 2015-11-02 | クラリオン株式会社 | On-vehicle communication unit and service provision system |
JP2017224032A (en) | 2016-06-13 | 2017-12-21 | 日本電信電話株式会社 | Distributed cooperation proxy and asynchronous messaging system using the same |
JP2018046404A (en) | 2016-09-14 | 2018-03-22 | 株式会社東芝 | Relay device, relay system, relay program, and relay method |
US20180167476A1 (en) | 2016-12-12 | 2018-06-14 | Sap Se | Meta broker for publish-subscribe-based messaging |
-
2018
- 2018-07-26 JP JP2018140330A patent/JP7163093B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003003673A1 (en) | 2001-06-28 | 2003-01-09 | Ntt Docomo, Inc. | Routing method, node, packet communication system, program, and recording medium |
WO2009050794A1 (en) | 2007-10-16 | 2009-04-23 | Fujitsu Limited | Relay station device, terminal station device, wireless communication system, and method for distributing load |
JP2015192356A (en) | 2014-03-28 | 2015-11-02 | クラリオン株式会社 | On-vehicle communication unit and service provision system |
JP2017224032A (en) | 2016-06-13 | 2017-12-21 | 日本電信電話株式会社 | Distributed cooperation proxy and asynchronous messaging system using the same |
JP2018046404A (en) | 2016-09-14 | 2018-03-22 | 株式会社東芝 | Relay device, relay system, relay program, and relay method |
US20180167476A1 (en) | 2016-12-12 | 2018-06-14 | Sap Se | Meta broker for publish-subscribe-based messaging |
Non-Patent Citations (1)
Title |
---|
伊藤 克恭 Katsutaka ITO,IoT向けプロトコル用ハニーポットの初期検討 Primary Discussion about a Honeypot System for IoT Aimed Protocols,電子情報通信学会技術研究報告 Vol.116 No.522 IEICE Technical Report,日本,一般社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2017年03月06日,第116巻,p103-108,ISSN 0913-5685 |
Also Published As
Publication number | Publication date |
---|---|
JP2020017118A (en) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7990900B2 (en) | Event notification control based on data about a user's communication device stored in a user notification profile | |
US8819080B2 (en) | System and method for collection, retrieval, and distribution of data | |
US6760765B1 (en) | Cluster server apparatus | |
US7715308B2 (en) | Fault tolerance in a wireless network | |
US7518983B2 (en) | Proxy response apparatus | |
US20050201282A1 (en) | Optimization of subnetwork bandwidth based on desired subscription rates | |
US20070204275A1 (en) | Method and system for reliable message delivery | |
JPWO2011074630A1 (en) | Load distribution system, load distribution method, apparatus and program constituting load distribution system | |
JP2005532748A (en) | Caching including packet inspection for payload inspection, alert service, digital content delivery, and quality of service management, and selective multicasting in publish-subscribe networks | |
JP2012095098A (en) | Data communication method and information processor | |
US6067567A (en) | Message distribution capability which uses distribution nodes to collect acknowledgements for a primary node | |
CN113162970B (en) | Message routing method, device, equipment and medium based on publish/subscribe model | |
CN104618221A (en) | Decentralized message service system | |
CN110661871A (en) | Data transmission method and MQTT server | |
JP2016066882A (en) | Communication system, node device, node program, and communication program | |
JP4538465B2 (en) | How to improve the quality of service for networked clients | |
JP2004199578A (en) | Content delivery method, device, program, and storage medium | |
WO2004105314A2 (en) | Service management using multiple service location managers | |
JP7163093B2 (en) | Broker device, communication system, communication method, and program | |
JP2003101518A (en) | Live mobile camera system | |
US7779115B2 (en) | Method and apparatus for processing client capability information over a network | |
JP4793254B2 (en) | Content distribution system and method | |
JP2008129628A (en) | Communication system in system for processing predetermined operation by transferring message by multiple computer systems and message communication program | |
JP2006100906A (en) | Method for managing operation of network system and storage device | |
JP4146373B2 (en) | Service selection method and service selection system in dynamic network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220419 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220602 |
|
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: 20220920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221019 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7163093 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |