注文を受け付け、確認を返すシステムを開発する必要があります。注文はJavaまたは非Javaクライアントからのものです。
Webサービスの実装とJMSのどちらに進むべきかわからない。
助言がありますか ...
JMSは、ActiveMQやIBM MQSeriesなどのメッセージングミドルウェアを抽象化するAPIです。
メッセージングミドルウェアには、ストアアンドフォワードパラダイムと非同期メッセージパッシングがありますが、Webサービスは、同期プロシージャ呼び出しパラダイムを促進する傾向があります。多くのことがうまくいかない可能性のある分散システムでは、非同期で物事を処理することは、システムの一部が利用できないか、パフォーマンスが低下し、それを処理するために必要なコードがそれほど複雑ではありません。
複数のサーバーが同じキューをリッスンしている場合、クラスタリングの部分は簡単になります。この場合、並列処理と負荷分散は無料です。
個人的には、JMSはWebサービスよりもはるかに使いやすく、堅牢で信頼性が高いと思いますが、メッセージングミドルウェアは、使用するすべてのプラットフォームをサポートする必要があります。互いに通信する必要があるすべてのコンポーネントがあなたの管理下にある場合、JMSインターフェースを備えたメッセージングミドルウェアを真剣に検討します。
相手が外部の場合はおそらくWebサービスのルールであり、その場合は、シンレイヤーを使用して外部Webサービスを内部メッセージパッシングインフラストラクチャに変換することを考えると、ほとんどの利点が得られます。
「WebアプリケーションでリモートAPIを平手打ちする」だけの場合は、もちろん、非同期メッセージングの設定にもお金はかかりません。
相互運用性、スケール、配布、統合の要件に応じて、両方を使用できます。
SOAP、XML RPC、およびREST=を利用したWebサービスアプローチは、プロトコルとしてHTTPを使用すると、かなり相互運用可能なものを提供します。サービス側から、Webサービス要求を受け取ってマーシャリングして、その後、メッセージはメッセージングバスに配信されます。
JMSはメッセージングバスとのインターフェースに適したAPIであり、 Active/MQ が非常に良いことがわかりました。 Active/MQは多くの言語でJMSをサポートしています。
メッセージングを使用すると、要求/応答エンタープライズ統合パターンを利用して、応答を受信し、Webサービスを介してそれらを返すことができます。ただし、注文が処理されたかどうか、または注文が受け取られたという事実をフィードバックするかどうかについて即座にフィードバックを提供することのメリットについて考えてください。注文が受信されたことを確認するために要求/応答を実装する必要がない場合があります。
メッセージングの利点はここにあります: http://www.eaipatterns.com/Messaging.html
高度にスケーラブルな分散サービスレイヤーの開発を簡素化するために、 Apache Camel を確認することもできます。
リンクをチェック
したがって、通信するアプリケーションがJava=ベースのJMSであり、Webサービスが異なる場合は...それが私が従うものです。
相互運用性のために、Webサービスを使用します。 JMSは、Javaの世界以外ではほとんど使用されていません。