プレゼンテーション層からサービス層を呼び出す
質問
アプリケーション/プレゼンテーションレイヤー(Javaベース)とサービスレイヤー(Javaベース)を接続するには、テクノロジーを選択する必要があります。基本的に、ビジネスデリゲートオブジェクトから適切なSpringサービスを検索します。
そこには非常に多くのオプションがあり、私を混乱させています。絞り込んだオプションは次のとおりですが、確かではありません。
-
春のRMI
-
Apache Camel
-
Apache ServiceMix(ESB)
-
イオナヒューズ(ESB)
ここで私が知りたいこと
- これらのいずれかに取り組んだ(または評価した)場合、どちらの選択が適切だと思いますか? (そして、理由を教えても害はないでしょう:)
- 私が検討すべき他のテクノロジーはありますか?
- 現在のところ、アプリケーション層とサービス層が配布されているのを見ていません。しかし、将来この可能性を排除したくありません。この柔軟性を提供するように設計するのは良い考えですか?
ヘルプは役に立ちます。ありがとう!
解決
Spring Remoting(Spring RMIとを使用したい場合は、ほとんどが要約されます。 Apache Camel は)の実装です-または、Webサービス(CXFまたはMetroが実装する)にJAX-WSを使用しますか。つまり、POJOの自動リモート処理が必要ですか?またはWSDLコントラクトなどを使用したWSが必要ですか?
リモーティングテクノロジーを決定したら、次の決定は、アプリケーション内にライブラリ(Spring RMIやCamelなど)としてバンドルするか、またはServiceMixなどのESBコンテナにデプロイしてモジュールをホット再デプロイできるようにするかです。
後者を選択した場合は、Apache ServiceMixを使用します。または、より多くのドキュメント、頻繁なリリース、商用サポートなどを含む商用ディストリビューションが必要な場合は、FUSE ESBを使用します。
他のヒント
Spring Remotingは最も単純なアプローチのように思えます。また、それがあなたが望む方向であるならば、それはあなたが将来より複雑なアプローチに開かれたままにするでしょう。
要件の限られた観点から、学習曲線の低い単純なソリューションに固執し、実際に必要であると判断するまでESBをそのままにします。
KISSの原則は素晴らしいことです。