
メッセージブローカー(統合ブローカーまたはインターフェースエンジン[1]とも呼ばれる)は、送信者の正式なメッセージングプロトコルから受信者の正式なメッセージングプロトコルにメッセージを変換する中間コンピュータプログラムモジュールです。メッセージブローカーは、ソフトウェアアプリケーションが正式に定義されたメッセージを交換して通信する通信またはコンピュータネットワークの要素です。 [1]メッセージブローカーは、メッセージ指向ミドルウェア(MOM)の構成要素ですが、通常、MOMやリモートプロシージャコール(RPC)などの従来のミドルウェアの代替にはなりません。[2] [3]
概要
メッセージブローカーは、メッセージの検証、変換、ルーティングのためのアーキテクチャパターンです。アプリケーション間の通信を仲介し、メッセージを交換するためにアプリケーションがお互いに持つ必要のある相互認識を最小限に抑え、効果的に分離を実現します。 [ 4 ]
目的
ブローカーの主な目的は、アプリケーションから受信メッセージを受け取り、それに対して何らかのアクションを実行することです。メッセージ ブローカーは、エンドポイントを分離し、特定の非機能要件を満たし、中間機能の再利用を容易にすることができます。たとえば、メッセージ ブローカーは、複数の受信者のワークロード キューまたはメッセージ キューを管理するために使用でき、信頼性の高いストレージ、保証されたメッセージ配信、およびトランザクション管理を提供します。
ライフサイクル
以下はブローカーが処理する可能性のある他のアクションの例です。[2] [3]
- メッセージを1つ以上の宛先にルーティングする
- メッセージを別の表現に変換する
- メッセージの集約を実行し、メッセージを複数のメッセージに分解して宛先に送信し、応答を1つのメッセージに再構成してユーザーに返します。
- 外部リポジトリとやり取りしてメッセージを拡張したり保存したりする
- Webサービスを呼び出してデータを取得する
- イベントやエラーに応答する
- パブリッシュ・サブスクライブパターンを使用してコンテンツとトピックベースのメッセージルーティングを提供する
メッセージブローカーは、一般的にハブアンドスポークとメッセージバスという2つの基本アーキテクチャのいずれかに基づいています。前者では、中央サーバーが統合サービスを提供するメカニズムとして機能しますが、後者では、メッセージブローカーはバス上で動作する通信バックボーンまたは分散サービスです。[3]さらに、よりスケーラブルなマルチハブアプローチを使用して、複数のブローカーを統合できます。[3]
リアルタイムセマンティクス
エンドツーエンドの予測可能性を備えた時間制限付き通信を実現するために特別に構築されたメッセージ ブローカーにより、実行の予測可能性を必要とするリアルタイム システムの開発が可能になります。リアルタイム要件のあるシステムでは、多くの場合、現実世界とのやり取りが伴います (ロボット工学、車両自動化、ソフトウェア定義無線など)。
Object Management Group のリアルタイム CORBA 仕様は、次の要件を課すことで、予測可能な通信テクノロジの理論的基礎を提供します。
この仕様では、固定優先度 CORBA システムにおける適時性の「エンドツーエンドの予測可能性」は、次のように定義されます。
• CORBA 呼び出しの処理中にリソースの競合を解決するために、クライアントとサーバー間のスレッドの優先順位を尊重する。
• エンドツーエンド処理中のスレッド優先度反転の継続時間を制限する。
• 操作呼び出しのレイテンシを制限する
メッセージブローカーソフトウェアのリスト
- アマゾン ウェブ サービス (AWS) Amazon MQ
- アマゾン ウェブ サービス (AWS) キネシス
- アパッチ
- アパッチアクティブMQ
- アパッチアルテミス
- アパッチキャメル
- アパッチカフカ
- アパッチQpid
- アパッチスリフト
- アパッチパルサー
- クローバーリーフ (Enovation Lifeline - NL)
- Comverse メッセージブローカー ( Comverse Technology )
- Coreflux Coreflux MQTT ブローカー
- Eclipse Mosquitto MQTT ブローカー ( Eclipse Foundation )
- EMQX EMQX MQTTブローカー
- Enduro/Xトランザクション メッセージ キュー (TMQ)
- ファイナンシャル フュージョン メッセージ ブローカー ( Sybase )
- Fuse メッセージ ブローカー(エンタープライズ ActiveMQ)
- ギアマン
- Google Cloud Pub/Sub ( Google )
- HiveMQ HiveMQ MQTT ブローカー
- HornetQ ( Red Hat ) (現在は Apache Artemis の一部)
- IBM アプリコネクト
- IBM MQ
- JBoss メッセージング( JBoss )
- ジョラム
- Microsoft Azure サービス バス( Microsoft )
- Microsoft BizTalk Server (マイクロソフト)
- MigratoryData( C10M問題[5]に対処するために書かれたパブリッシュ/サブスクライブ型WebSocketメッセージブローカー)
- NATS ( MIT オープンソースライセンス、 Goで記述)
- IoT Edge 向け NanoMQ MQTT ブローカー
- メッセージキューを開く
- Oracle メッセージ ブローカー ( Oracle Corporation )
- ORBexpress ( OIS )
について
- Adaで書かれたORBexpress
- C#で書かれたORBexpress
- C++で書かれたORBexpress
- Javaで書かれたORBexpress
- RabbitMQ ( Mozilla パブリック ライセンス、 Erlangで記述)
- Redpanda ( C++で書かれた Apache Kafka API を実装)
- Redisデータベース、キャッシュ、メッセージ ブローカーとして使用されるオープン ソースのインメモリ データ構造ストア。
- SAP PI ( SAP AG )
- SMC SMCプラットフォーム
- Solace PubSub+
- スプレッドツールキット
- Tarantool は、メッセージキュー用のストアドプロシージャを備えたNoSQLデータベースです。
- TIBCOエンタープライズ メッセージ サービス
- WSO2 メッセージブローカー
- ゼロMQ
参照
参考文献
- ^ ab 「IB (integration broker)」。IT用語集。Gartner, Inc. 2018年5月17日閲覧。
- ^ ab Kale, V. (2014). 「統合テクノロジー」。ビジネスおよびテクノロジー マネージャーのためのクラウド コンピューティング ガイド: 分散コンピューティングからクラウドウェア アプリケーションまで。CRC Press。pp. 107–134。ISBN 9781482219227. 2018年5月17日閲覧。
- ^ abcd Samtani, G.; Sadhwani, D. (2013). 「統合ブローカーと Web サービス」。 Clark, M.; Fletcher, P.; Hanson, JJ; 他 (編)。Web サービスのビジネス戦略とアーキテクチャ。 Apress。 pp. 71–84。ISBN 9781430253563. 2018年5月17日閲覧。
- ^ Ejsmont, A. (2015). 「非同期処理」。スタートアップエンジニアのためのWebスケーラビリティ。McGraw Hill Professional。pp. 275–276。ISBN 9780071843669。
- ^ Rotaru, Mihai; et al. (2017 年 12 月). 「migratorydata による数百万人のユーザーへの信頼性の高いメッセージング」。第 18 回 ACM/IFIP/USENIX ミドルウェア カンファレンス: インダストリアル トラックの議事録。pp. 1–7。arXiv : 1712.09876。doi : 10.1145 / 3154448.3154449。ISBN 9781450352000. S2CID 35552786。
