JP6539617B2 - 分散連携プロキシおよびそれを用いた非同期メッセージングシステム - Google Patents
分散連携プロキシおよびそれを用いた非同期メッセージングシステム Download PDFInfo
- Publication number
- JP6539617B2 JP6539617B2 JP2016117119A JP2016117119A JP6539617B2 JP 6539617 B2 JP6539617 B2 JP 6539617B2 JP 2016117119 A JP2016117119 A JP 2016117119A JP 2016117119 A JP2016117119 A JP 2016117119A JP 6539617 B2 JP6539617 B2 JP 6539617B2
- Authority
- JP
- Japan
- Prior art keywords
- proxy
- distributed
- communication means
- cooperation
- broker
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Description
図1は、第1の実施形態に係るpub/subメッセージングシステムの構成例を示している。図1に示されるpub/subメッセージングシステムは、複数のブローカ(ブローカB1、B2、B3)と、複数のブローカそれぞれに対応して設けられた複数の分散連携プロキシ(分散連携プロキシD1、D2、D3)と、を備える。ブローカB1には分散連携プロキシD1が接続され、ブローカB2には分散連携プロキシD2が接続され、ブローカB3には分散連携プロキシD3が接続されている。さらに、分散連携プロキシD1は分散連携プロキシD2に接続され、分散連携プロキシD2は分散連携プロキシD1、D3に接続され、分散連携プロキシD3は分散連携プロキシD2に接続されている。
このように、分散連携プロキシD1、D2は、異なるブローカに収容されたクライアント同士が単一ブローカを用いる場合と同様に通信可能となるように、相互連携する。
第1の実施形態では、サブスクライブメッセージを伝搬させずに、パブリッシュメッセージを全てのブローカに伝搬させる連携方式(PFA)を説明した。第2の実施形態では、サブスクライブメッセージを全てのブローカに伝搬させ、パブリッシュメッセージを必要なブローカにのみ転送する連携方式について説明する。この連携方式をSFA(Subscribe Flooding Algorithm)と称する。第2の実施形態に係るpub/subメッセージングシステムは、第1の実施形態に係るpub/subメッセージングシステムと同様の構成を有し、メッセージの転送処理を除いて同様の動作を行なうので、ここでは、第1の実施形態と異なる点について主に説明する。
ローカル連携部301は、クライアントC1からメッセージを受信すると、ブローカ連携部303を介してブローカB1にこのメッセージを送信するとともに、リモート連携部302にこのメッセージを渡す。この場合において、リモート連携部302は、クライアントC1からのメッセージがサブスクライブメッセージである場合には、擬似的なサブスクライバとして分散連携プロキシD2にこのメッセージを送信するが、クライアントC1からのメッセージがパブリッシャメッセージである場合には、分散連携プロキシD2へのメッセージ送信を行なわない。
図7に示されるpub/subメッセージングシステムでは、分散連携プロキシD1がブローカB1に対応して設けられ、分散連携プロキシD2がブローカB2に対応して設けられ、分散連携プロキシD1、D2が互いに接続されている。さらに、パブリッシャP1およびパブリッシャP2が分散連携プロキシD1に接続され、サブスクライバS1が分散連携プロキシD2に接続されている。
このように、分散連携プロキシD1、D2は、異なるブローカに収容されたクライアント同士が単一ブローカを用いる場合と同様に通信可能となるように、相互連携する。
第1の実施形態で説明したPFAおよび第2の実施形態で説明したSFAにおいては、図9を参照して以下に説明するように、分散連携プロキシがメッセージを隣接する分散連携プロキシに転送することによって無限ループが発生することがある。第3の実施形態では、無限ループを回避する方法について説明する。
一実施形態に係るpub/subメッセージングシステムは、第1の実施形態に係る連携方式PFAおよび第2の実施形態に係る連携方式SFAを選択的に使用してメッセージ配信を行なう。連携方式は、例えばシステムの通信状況に応じて、PFAまたはSFAに切り替えられる。PFAは、パブリッシャメッセージを、接続されている全ての分散連携プロキシに転送するので、分散連携プロキシの処理は楽になる。しかしながら、本来メッセージを必要としない分散連携プロキシにも転送を行なうことになるため、トラフィックの無駄が生じることがある。一方、SFAは、要求のあったサブスクライバが接続されている分散連携プロキシに対してパブリッシュメッセージを転送するので、トラフィックの無駄はないが、分散連携プロキシの処理が難しくなる。このため、通信が全体に対して局所的に行なわれる部分がある場合には、PFAではトラフィックの無駄が大きくなるので、SFAが選択される。
Claims (8)
- クライアントとブローカとの間に設けられる分散連携プロキシであって、
前記クライアントと通信するための第1の通信手段と、
前記ブローカと通信するための第2の通信手段と、
隣接する分散連携プロキシと通信するための第3の通信手段と、
を具備し、
前記第1の通信手段および前記第2の通信手段は、前記クライアントと前記ブローカとの間の通信の中継を行なうように連動し、
前記第3の通信手段は、前記第1の通信手段を介して前記クライアントから受信したメッセージまたは前記第2の通信手段を介して前記ブローカから受信したメッセージに基づいて、前記ブローカと前記隣接する分散連携プロキシに接続された他のブローカとの間の通信の中継を行なう、ことを特徴とする分散連携プロキシ。 - 前記第3の通信手段が前記第1の通信手段を介して前記クライアントからパブリッシュメッセージを受信した場合、前記第3の通信手段は、前記クライアントから受信した前記パブリッシュメッセージを前記隣接する分散連携プロキシに送信し、
前記第3の通信手段が前記隣接する分散連携プロキシのうちの1つの分散連携プロキシからパブリッシュメッセージを受信した場合、前記第3の通信手段は、前記隣接する分散連携プロキシのうちの他の分散連携プロキシに、前記1つの分散連携プロキシから受信したパブリッシュメッセージを送信するとともに、前記第2の通信手段を介して、前記隣接する分散連携プロキシから受信した前記パブリッシュメッセージを前記ブローカに送信する、ことを特徴とする請求項1に記載の分散連携プロキシ。 - 前記第3の通信手段が前記第1の通信手段を介して前記クライアントからサブスクライブメッセージを受信した場合、前記第3の通信手段は、前記クライアントから受信した前記サブスクライブメッセージを前記隣接する分散連携プロキシに送信し、
前記第3の通信手段が前記隣接する分散連携プロキシのうちの1つの分散連携プロキシからサブスクライブメッセージを受信した場合、前記第3の通信手段は、前記隣接する分散連携プロキシのうちの他の分散連携プロキシに、前記1つの分散連携プロキシから受信したサブスクライブメッセージを送信するとともに、前記第2の通信手段を介して、前記隣接する分散連携プロキシから受信した前記サブスクライブメッセージを前記ブローカに送信する、ことを特徴とする請求項1に記載の分散連携プロキシ。 - 前記第3の通信手段は、メッセージの同一性を識別可能な情報と、当該メッセージの送信相手または受信相手を示す情報と、を履歴情報として保持し、前記履歴情報に基づいてメッセージ送信を行なうか否かを判定することを特徴とする請求項1乃至3のいずれか一項に記載の分散連携プロキシ。
- 複数のブローカと、前記複数のブローカにそれぞれ対応する複数の分散連携プロキシと、を備える非同期メッセージングシステムであって、
前記複数の分散連携プロキシの各々は、当該分散連携プロキシに対応するブローカとクライアントとの間に設けられ、
前記複数の分散連携プロキシの各々は、
前記クライアントと通信するための第1の通信手段と、
前記対応するブローカと通信するための第2の通信手段と、
前記複数の分散連携プロキシのうちの隣接する分散連携プロキシと通信するための第3の通信手段と、
を具備し、
前記第1の通信手段および前記第2の通信手段は、前記クライアントと前記対応するブローカとの間の通信の中継を行なうように連動し、
前記第3の通信手段は、前記第1の通信手段を介して前記クライアントから受信したメッセージまたは前記第2の通信手段を介して前記対応するブローカから受信したメッセージに基づいて、前記対応するブローカと前記隣接する分散連携プロキシに対応するブローカとの間の通信の中継を行なう、ことを特徴とする非同期メッセージングシステム。 - 前記第3の通信手段が前記第1の通信手段を介して前記クライアントからパブリッシュメッセージを受信した場合、前記第3の通信手段は、前記クライアントから受信した前記パブリッシュメッセージを前記隣接する分散連携プロキシに送信し、
前記第3の通信手段が前記隣接する分散連携プロキシのうちの1つの分散連携プロキシからパブリッシュメッセージを受信した場合、前記第3の通信手段は、前記隣接する分散連携プロキシのうちの他の分散連携プロキシに、前記1つの分散連携プロキシから受信したパブリッシュメッセージを送信するとともに、前記第2の通信手段を介して、前記隣接する分散連携プロキシから受信した前記パブリッシュメッセージを前記対応するブローカに送信する、ことを特徴とする請求項5に記載の非同期メッセージングシステム。 - 前記第3の通信手段が前記第1の通信手段を介して前記クライアントからサブスクライブメッセージを受信した場合、前記第3の通信手段は、前記クライアントから受信した前記サブスクライブメッセージを前記隣接する分散連携プロキシに送信し、
前記第3の通信手段が前記隣接する分散連携プロキシのうちの1つの分散連携プロキシからサブスクライブメッセージを受信した場合、前記第3の通信手段は、前記隣接する分散連携プロキシのうちの他の分散連携プロキシに、前記1つの分散連携プロキシから受信したサブスクライブメッセージを送信するとともに、前記第2の通信手段を介して、前記隣接する分散連携プロキシから受信した前記サブスクライブメッセージを前記対応するブローカに送信する、ことを特徴とする請求項5に記載の非同期メッセージングシステム。 - 前記第3の通信手段は、メッセージの同一性を識別可能な情報と、当該メッセージの送信相手または受信相手を示す情報と、を履歴情報として保持し、前記履歴情報に基づいてメッセージ送信を行なうか否かを判定することを特徴とする請求項5乃至7のいずれか一項に記載の非同期メッセージングシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016117119A JP6539617B2 (ja) | 2016-06-13 | 2016-06-13 | 分散連携プロキシおよびそれを用いた非同期メッセージングシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016117119A JP6539617B2 (ja) | 2016-06-13 | 2016-06-13 | 分散連携プロキシおよびそれを用いた非同期メッセージングシステム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2017224032A JP2017224032A (ja) | 2017-12-21 |
| JP6539617B2 true JP6539617B2 (ja) | 2019-07-03 |
Family
ID=60686414
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016117119A Active JP6539617B2 (ja) | 2016-06-13 | 2016-06-13 | 分散連携プロキシおよびそれを用いた非同期メッセージングシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6539617B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7163093B2 (ja) * | 2018-07-26 | 2022-10-31 | 株式会社東芝 | ブローカ装置、通信システム、通信方法、およびプログラム |
| JP7207145B2 (ja) * | 2019-05-13 | 2023-01-18 | 富士通株式会社 | 情報処理装置、配送プログラムおよび分散処理システム |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB0305066D0 (en) * | 2003-03-06 | 2003-04-09 | Ibm | System and method for publish/subscribe messaging |
| KR101197365B1 (ko) * | 2005-04-06 | 2012-11-05 | 삼성전자주식회사 | 멀티미디어 메시지 서비스 방법 및 장치 |
| JP2009110165A (ja) * | 2007-10-29 | 2009-05-21 | Hitachi Ltd | パブリッシュ/サブスクライブ通信における負荷分散処理方法及びその実施装置と処理プログラム |
| US9144082B2 (en) * | 2012-06-13 | 2015-09-22 | All Purpose Networks LLC | Locating and tracking user equipment in the RF beam areas of an LTE wireless system employing agile beam forming techniques |
| JP6368624B2 (ja) * | 2014-11-06 | 2018-08-01 | 日本電信電話株式会社 | 非同期メッセージングサーバ連携方式の評価装置及び評価方法 |
-
2016
- 2016-06-13 JP JP2016117119A patent/JP6539617B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2017224032A (ja) | 2017-12-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Hwang et al. | Design and implementation of a reliable message transmission system based on MQTT protocol in IoT | |
| JP3956365B2 (ja) | 分散コンピュータ・ネットワーク内の資源要求に応答するシステムおよび方法 | |
| JP3851275B2 (ja) | 分散コンピュータ・ネットワークのスケーラブルなリソース・ディスカバリおよび再構成 | |
| US20120079066A1 (en) | System and method to create bi-directional event subscriptions | |
| CN101854338B (zh) | 订户设备及其订阅管理方法、实时通信方法和系统 | |
| US8423619B2 (en) | Message brokering in a consuming broker device | |
| US7543023B2 (en) | Service support framework for peer to peer applications | |
| US7426194B2 (en) | System and method for asynchronous wireless services using reverse service schema generation | |
| US7493413B2 (en) | APIS to build peer to peer messaging applications | |
| US8726079B2 (en) | Handling of messages in a message system | |
| CN110661871A (zh) | 一种数据传输方法及mqtt服务器 | |
| JP2009522690A (ja) | スケーラブルなピア・グループを使用して通信を最適化すること | |
| JP6539617B2 (ja) | 分散連携プロキシおよびそれを用いた非同期メッセージングシステム | |
| CN102037712A (zh) | 受限广播、dht之间的对等化、仅广播受限内容的put | |
| EP3920035B1 (en) | Message transmission/reception method, communication device, and program | |
| Pautasso et al. | The web as a software connector: integration resting on linked resources | |
| US20090006563A1 (en) | Dynamic peer network extension bridge | |
| KR20060089624A (ko) | 런타임 통신 채널의 플러그가능한 모듈러 채널 컴포넌트를통한 메시지 프로세싱 방법 | |
| Bayramcavus et al. | Interoperability of microservice-based systems | |
| JP2017073688A (ja) | 通信ネットワークシステム | |
| JP6089363B2 (ja) | ネットワーク通信システム、サーバプッシュ通信制御サーバ、クライアント端末、サーバプッシュ通信制御方法、情報処理方法、およびプログラム | |
| JP2005092872A (ja) | サービス処理システムおよびその処理方法並びにその処理プログラム | |
| JP7649162B2 (ja) | パブリッシュ・サブスクライブ・システム | |
| Lever | Bidirectional Remote Procedure Call on RPC-over-RDMA Transports | |
| Papazoglou | SOAP: Simple Object Access Protocol |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180822 |
|
| 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: 20190604 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190531 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190610 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6539617 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |