web-dev-qa-db-ja.com

JMSとWebサービスの違い

注文を受け付け、確認を返すシステムを開発する必要があります。注文はJavaまたは非Javaクライアントからのものです。

Webサービスの実装とJMSのどちらに進むべきかわからない。

助言がありますか ...

20
SyAu

JMSは、ActiveMQやIBM MQSeriesなどのメッセージングミドルウェアを抽象化するAPIです。

メッセージングミドルウェアには、ストアアンドフォワードパラダイムと非同期メッセージパッシングがありますが、Webサービスは、同期プロシージャ呼び出しパラダイムを促進する傾向があります。多くのことがうまくいかない可能性のある分散システムでは、非同期で物事を処理することは、システムの一部が利用できないか、パフォーマンスが低下し、それを処理するために必要なコードがそれほど複雑ではありません。

複数のサーバーが同じキューをリッスンしている場合、クラスタリングの部分は簡単になります。この場合、並列処理と負荷分散は無料です。

個人的には、JMSはWebサービスよりもはるかに使いやすく、堅牢で信頼性が高いと思いますが、メッセージングミドルウェアは、使用するすべてのプラットフォームをサポートする必要があります。互いに通信する必要があるすべてのコンポーネントがあなたの管理下にある場合、JMSインターフェースを備えたメッセージングミドルウェアを真剣に検討します。

相手が外部の場合はおそらくWebサービスのルールであり、その場合は、シンレイヤーを使用して外部Webサービスを内部メッセージパッシングインフラストラクチャに変換することを考えると、ほとんどの利点が得られます。

「WebアプリケーションでリモートAPIを平手打ちする」だけの場合は、もちろん、非同期メッセージングの設定にもお金はかかりません。

23
Peter Tillemans

相互運用性、スケール、配布、統合の要件に応じて、両方を使用できます。

SOAP、XML RPC、およびREST=を利用したWebサービスアプローチは、プロトコルとしてHTTPを使用すると、かなり相互運用可能なものを提供します。サービス側から、Webサービス要求を受け取ってマーシャリングして、その後、メッセージはメッセージングバスに配信されます。

JMSはメッセージングバスとのインターフェースに適したAPIであり、 Active/MQ が非常に良いことがわかりました。 Active/MQは多くの言語でJMSをサポートしています。

メッセージングを使用すると、要求/応答エンタープライズ統合パターンを利用して、応答を受信し、Webサービスを介してそれらを返すことができます。ただし、注文が処理されたかどうか、または注文が受け取られたという事実をフィードバックするかどうかについて即座にフィードバックを提供することのメリットについて考えてください。注文が受信されたことを確認するために要求/応答を実装する必要がない場合があります。

メッセージングの利点はここにあります: http://www.eaipatterns.com/Messaging.html

高度にスケーラブルな分散サービスレイヤーの開発を簡素化するために、 Apache Camel を確認することもできます。

5

リンクをチェック

JMS /メッセージングミドルウェアとWebサービスの違い

メッセージング、JMS、およびWebサービス

WebサービスHTTP対JMS

JCA、JMS、およびWebサービスからの選択

Javaメッセージサービス

Webサービス

したがって、通信するアプリケーションがJava=ベースのJMSであり、Webサービスが異なる場合は...それが私が従うものです。

5
Azhar

相互運用性のために、Webサービスを使用します。 JMSは、Javaの世界以外ではほとんど使用されていません。

0
Sjoerd