2012-01-11 15 views
0

Glassfish 3.1にインバウンドリソースアダプタ(コネクタモジュール)を作成しています。Java EE SDKのサンプルでは、​​MDBを使用してメッセージをEISからGlassfishアプリケーション。ターゲットオブジェクトがEJBの場合はMDBを使用する必要がありますか?ターゲットEJBのJNDIルックアップを行い、直接MDBを回避することが賢明でしょうか?MDBの代わりにEJBに配信するJava EEコネクタ

ありがとうございます!

答えて

3

後者の場合、同期操作を実行しますが、最初のアプローチは非同期操作です。アプリケーションへのアプリケーション(A2A)の統合シナリオでは、ほとんどの場合、非同期インターフェイスを実装することをお勧めします。これについて多くのことが書かれていますが、Java documentation itselfを参照してください。セクション6.3.3:

アプリケーションを設計するには、そのターゲットのEISと 既存のアプリケーションと 同期または非同期統合を使用するかどうかを決定する必要があります。同期統合と非同期統合の両方とも、アプリケーション統合に有効です。 の選択は、統合要件とユースケースに基づいて行う必要があります。ベース 次のガイドラインに基づいて決定してください。必要なサービスの

  • 品質 - キューの使用またはパブリッシュ・サブスクライブシステムは、同期 通信より高いサービスの品質、など メッセージのルーティングと信頼性の高いメッセージ配信を提供します。
  • アプリケーションスループット - 非同期メッセージングは​​、キューがメッセージをバッファリングし、メッセージルーティングをサポートし、 をサポートし、メッセージ配信を保証するため、スループットが向上します。
  • トランザクションインテグレーション - クライアントが 要求処理に対してセキュアで、1つ以上のEISesへのトランザクションアクセスを同期的に実行する必要がある場合、同期通信モデルがより適しています。このような場合、アプリケーションは、より高い品質の要求処理およびエラー処理を保証するために、EISとのより緊密な結合のオーバーヘッドをもたらす可能性があります。
  • プログラミングモデルの複雑さ - 非同期通信プログラミングモデルは、より一般的な同期型の 要求応答モデルより複雑です。非同期モデルではより多くのサービスが提供されますが、アプリケーションの複雑さが増し、開発者の方々の負担が大きくなります。

結論としては、必要ではないかもしれませんが、MDBを実装することが賢明かもしれません。

+0

お返事ありがとうございます。真ですが、EJBも非同期メソッドをサポートしています。非同期処理が必要な場合に使用できます。 – Dario

+0

@Dario:はい、間にメッセージングエンジンはありません。メッセージングではなく、非同期呼び出しに関するものです。 MDBベースのシナリオでは、キューを処理する並列MDBの最大数を定義できます。間接参照の別のレベルがあります(潜在的には永続的にキューを実装できます)。 – home

+0

非常によく、感謝のフィードバックのためにたくさん。 – Dario

関連する問題