web-dev-qa-db-ja.com

チャネルアダプタとメッセージングゲートウェイパターンの違いは何ですか?

これらの2つのパターンについていくら読んでも、違いはわかりません。

40
Pillblast

それらはメッセージングシステムへのアプリケーションアクセスを提供するという点で類似しているので、これは素晴らしい質問です。それが彼らがそれを達成する方法であると私は彼らを差別化すると思います。

チャネルアダプタパターンは、既存のシステムを変更せずに、そのシステムからデータを取得する方法を扱います。通常、ChannelAdapdterはアウトプロセスで実装されます。よく見られる例は、基になるデータベースを定期的にウォークして、キューに入れるものを見つけるプログラムです。おそらく、リモートAPIまたはHTTP APIを呼び出してシステムデータにアクセスし、メッセージを作成するスタンドアロンアプリです。重要なのは、非メッセージングシステムは完全に変更されていないということです。

メッセージゲートウェイは、インプロセスメッセージングの統合を目的としていると思います。それは本当にメッセージサブシステムの周りに良いOOカプセル化を適用することです。おそらくシステム内のいくつかのオブジェクトはSend(WorkOrder wo)と呼ばれるメソッドを持つWorkOrderSenderと呼ばれます。そのクラスの実装はアプリケーションを保護しますメッセージングの詳細...それに対する呼び出しは単なる別のメソッド呼び出しです。実際、メッセージングベンダーを交換したり、メッセージングをHTTPやFTPなどと交換したりすることも可能です。

18
tcarvin

Spring統合リファレンスドキュメントから:

JMSチャネルアダプタは単方向メッセージング(送信専用または受信専用)を対象としていますが、Spring Integrationは、要求/応答操作用のインバウンドおよびアウトバウンドJMSゲートウェイも提供します。

http://static.springsource.org/spring-integration/reference/htmlsingle/#jms を参照してください

4
emush