Apache CXFをApache Axisに使用する利点とその逆の利点は何ですか?
私は完全に偏見を抱いていることに留意してください(CXFのPMC議長)が、私の考えは次のとおりです。
厳密に「プロジェクトで必要なことを実行できますか」という観点から見ると、どちらもかなり同等です。 Axis 2では不可能な、CXFでできる「エッジケース」があります。ただし、90%のユースケースでは、どちらでも問題なく機能します。
したがって、「チェックボックス機能」以外の多くのものになります。
API-CXFは「標準ベース」のAPI(JAX-WS準拠)をプッシュしますが、Axis2の一般的なものはプロプライエタリなものになります。ただし、CXFでさえ、JAX-WS仕様以外のさまざまなものを設定/制御するために、独自のAPIを使用する必要がある場合があります。 RESTの場合、CXFは独自仕様ではなく標準API(JAX-RS準拠)も使用します。 (はい、私はAxis2のJAX-WSランタイムを認識していますが、ツールとドキュメントおよびすべてがそれを対象としていません)
コミュニティの側面とサポート性-CXFは、問題への対応と「フィックスパック」のユーザーへの提供を誇りにしています。 CXFは2.0.x用に12個のフィックスパック(2年前にリリースされたため、約2か月ごと)、2.1.x用に6個のフィックスパック、2.2.x用に3個のフィックスパックを行いました。 Axis2は、実際には古いバージョンを「サポート」していません。 「重大な」問題が発生しない限り、修正プログラムを入手するには、次の大きなリリース(平均して約9〜10か月程度)まで待つ必要があります。 (ただし、どちらでも、ソースコードを入手して自分でパッチ/修正することができます。オープンソースが大好きです。)
統合-Springを使用する場合、CXFのSpring統合ははるかに優れています。すべての構成などは、Springを介して行われます。また、人々は、CXFを他のアプリケーションへの「埋め込み可能」(この観点からAxis2を見たことがない)と考える傾向があります。そのようなことがあなたにとって重要かどうかはわかりません。
パフォーマンス-両方とも非常によく機能します。 Axis2独自のADBデータバインディングはCXFよりも少し高速ですが、JAXB(再び標準ベースのAPI)を使用すると、CXFは少し高速になります。 WS-Securityのようなより複雑なシナリオを使用する場合、基礎となるセキュリティ「エンジン」(WSS4J)は両方で同じであるため、パフォーマンスは完全に匹敵します。
それがまったく質問に答えるかどうかはわかりません。少なくともいくつかの情報が提供されることを願っています。
:-)
ダン
もう1つは、コミュニティの活動です。 axisとcxf(2013)のメーリングリストトラフィックを比較します。
したがって、これが使用量のインジケータである場合、軸はcxfよりもはるかに少ない使用量です。
ohlohでのCXFとAxisの統計を比較 。 CXFのアクティビティは非常に高く、Axisのアクティビティは全体的に低くなっています。
これは、CXF(赤)およびAxis1(緑)Axis2(青)の経時的なコミット数のグラフです。
CXFの利点:
Axis2の利点:
概要:上記の利点の項目から、Axis2とCXFをそれぞれのメリットで比較することを検討します。それらはすべて、特定の分野で異なるよく開発された領域を持ち、CXFは非常に構成可能で統合可能で、豊富なツールキットがサポートされ、Javaコミュニティに近いため、Axis2は多くの方法で似たアプローチをとっていますミニチュアのアプリケーションサーバー。複数のプログラミング言語にまたがっています。 Axis2は独立しているため、他のアプリケーションから独立したスタンドアロンのWebサービスに役立ち、さまざまな機能を提供します。
開発者として、適切なフレームワークを選択するために視点を一致させる必要があります。どのフレームワークを選択しても、アクティブで安定したオープンソースコミュニティのメリットを享受できます。パフォーマンスに関しては、同じ機能に基づいて同じWebコンテナで構成されたテストを行いました。結果は、CXFのパフォーマンスがAxis2よりもわずかに優れていることを示しています。
いくつかの研究記事では、Axis2独自のADBデータバインディングは追加機能(WS-Security)を持たないため、CXFよりも少し速いことが明らかになっています。 Apache AXIS2は比較的使用頻度の高いフレームワークですが、Apache CXFは、開発の容易さ、現在の業界動向、パフォーマンス、全体的なスコアカードおよびその他の機能を比較的考慮して他のWebサービスフレームワークよりも高いスコアを付けます(Webサービスオーケストレーションのサポートが明示的に必要な場合を除き、ここでは必要ありません) )
私の経験では、CXFはSpring環境に設定するという点で優れています。また、生成されたクラスは簡単に理解できます。そして、よりアクティブになっているため、AXISまたはAXIS2と比較してより良いサポートを得ています。
CXFのもう1つの利点は、そのままNTLMV2認証を使用してWebサーバーに接続することです。 (Windows 2008以降で使用)CXFを使用する前に、Axis2をハッキングしてHTTPClient V4 + JCIFSを使用してこれを可能にしました。