2009-04-02 12 views
12

私たちのアプリケーションは、Webサービス、MQ、JDBC、独自の(ダイレクトオーバソケット)およびその他のトランスポートの子供を介して、さまざまなバックエンドのバックエンドに接続することがよくあります。アプリケーションからこれらのバックエンドに接続できる数多くの実装がすでにありますが、これらの実装のすべてが共通のJavaインタフェースを実装していますが、他のものは共有していません。JCAのメリットは何ですか?

これらの特定のコネクタの実装に共通する意味のあるコードがあり、将来のコネクタの開発を1つのユニバーサルコネクタで合理化することを決定しました。このコネクタは、バックエンドによって要求される形式にメッセージをフォーマットし、利用可能な転送メカニズムを使用してメッセージを送信することができます。たとえば、MQまたはソケットを介した固定長メッセージ形式。

私たちが直面しているジレンマの1つは、この種のコネクタにとって最も適切な技術です。これまでのところ、私たちのコネクタは、共通のJavaインターフェイスを実装する基本的なJavaクラスでした。私たちは一般的に、いくつかのJava EEアプリケーションサーバーでアプリケーションをホストしているので、Java Connector Architectureはこのソフトウェアにとって最も適切な技術と思われます。しかし、JCA準拠のコネクタを実装するのは比較的複雑です。 JCAと一緒に行く利点は何ですか?また、利益は追加の努力を正当化するのでしょうか?

+0

私はその組み合わせにJBIを含めるべきだと思います。その場合、問題は、JBIのメリットとJCAのメリットとPOJOのメリットのメリットです。 – Dan

答えて

7

確かにJCA と思われます。既に優れた議論が行われています。すなわち、移植性、標準化されたインタフェース、接続プーリング、トランザクションサポートです。そして、セキュリティを忘れないでください。

WebSphere Process Serverでは、アダプターがSCAサービスとして公開される可能性があります。これが重要な場合は、多くのメリットがあります。

開発ツールの中には、JCAコネクタの開発とテストに幅広くサポートされているものもあります。

Java EE管理者とJava EE開発者(経験者)が標準を知っているので、管理と開発を合理化しやすくする必要があります。

最終的には、プロジェクトの範囲、プロジェクトの今後の計画、またはあなたの会社のポリシーの範囲内でJCAを実装する理由を見つける必要があります。

0

バインディング成分を持つ容器JBIのような音がします。 JCA対JBIのDiscussion

4

私は、プロプライエタリプロトコルで通信するgpsデバイス用の受信リソースアダプタを開発しました。それほど面倒なことではありませんでしたが、アウトバウンドの開発にはもっと多くの作業が必要になるという印象を受けました。 JCAの最悪のことは、ドキュメントがないことです。すべての本と記事は同じ馬鹿げた例を持っているようです。

私が最も気に入っているのは携帯性です。アダプタを作成したら、rar(リソースアダプタアーカイブ)を任意のアプリケーションサーバーに接続して、デプロイされたアプリケーションにあなたのサポートしているeisと通信する機能を提供できます。または、あなたは戦争/耳にrarを束ねることができます。

1

利点は、WebsphereではなくWebLogic上でのみ動作するかどうかを気にせずにコネクタにドロップできるようにするために、任意のアプリケーションサーバーで使用する独自のバックエンドシステムにコネクタを販売するベンダー実際、これは一般的なJava EEの目標です。

JBossはJCAにいくつかのものを入れることに決めました。たとえば、JDBC接続はJCAを経由します。

将来のクライアントコードには、標準化されたインターフェイス、いくつかのプーリングおよびトランザクションサポートなどがありますが、より大きな画像を見守ることが重要です。つまり、特典はあなたとあなたの1つのプロジェクトを対象とするのではなく、多くのアプリケーションサーバー、多くのバックエンドシステム、多くのコネクタなどで構成されたソフトウェアエコシステムです。

5

短い答え:他のテクノロジよりもJCAを選択するメリットはありませんが、Java EEコンテナが必要なため、これは欠点といえます。

長い答え:

私は今、いくつかの時間のためにこれらのJava EE標準について懐疑的となってきました。 テクニカル用のより良いオープンソース実装が提供されているので、フィーチャーが提供されているので、完全な機能を備えたJava EEサーバーを使用する理由はありません。私は、 "enterpriseyソリューション"に/から移動するとき、実装の非互換性によって何度もかまれました。

ここではJCAのアイデアが浮上しており、私は代わりにapache camelまたはspring integrationを試してみようとしています。私はどこでも使えるオープンソースの実装のためにすべてです。そして、多くのことが続いています。 this list of componentsを確認してください。確かに、JCAで既に開発されているものよりも小さいかもしれませんが、すべてのビットはオープンソースであり、すべてが1つの場所にあります。また、ドキュメントはよりシンプルで完璧だと思います。統合の要望は、多くのオープンソース、実際のライブサンプルを備えた強力なSPIを必要とし、同じ方法で開発され、同じ場所で見つけることができます。

私は否定性を嫌っていますが、フル機能のアプリケーションサーバーは好きではありません。例えば、JCAの前にラクダと一緒に行くように、JCAの必要性が実証されるまで、私はtomcatとterracota のいずれかの日にの他の "enterprisey"製品に行きます。私はJava委員会が自分のアプリケーションをどのように開発すべきかを私が信用していないために伝えたいという考えが嫌いです。 Java EE環境や純粋なサーブレット・コンテナのように、Java SE/RCP上でソフトウェアのように簡単に動作することができるのが私の最大の関心事だと思います。

関連する問題