Apache CXFとAxisの違い


回答:


229

心に留めておいてください、私は完全にバイアスされています(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)はどちらも同じであるため、パフォーマンスは完全に同等です。

それが質問にまったく答えるかどうかはわかりません。それが少なくともいくつかの情報を提供することを願っています。

:-)

ダン


10
WS-Securityの観点からの最近の比較: ibm.com/developerworks/java/library/j-jws19/index.html
Daniel Kulp

イントラネット内でCXFを使用する場合にHTTP通信を高速化するための指針はありますか?LAN経由で8つのWebサービスに接続する
tgkprog 2013

57
  • Axis2:市場でのユビキタス化、より多くのバインディングのサポート、C / C ++などの他の言語のサポート。
  • CXF:はるかに使いやすく、Springフレンドリーで、一部のWS- *拡張機能のサポートがより速くなりました。

参照された比較はもう利用できません:「アップロードされたコンテンツは削除されました」
maiklos

5
+1を使用すると、はるかに使いやすくなります。IMO、CXFは、WSDLからWS / WS-clientの基本クラスを生成する場合にも冗長ではありません。Axisクライアントには、CXFのそれとは対照的に、理解しづらくて屈折しにくいコードのバットロードが必要です。
Priidu Neemre 2013

42

もう1つは、コミュニティの活動です。axisとcxf(2013)のメーリングリストトラフィックを比較します。

したがって、これが使用法の指標である場合、軸はcxfよりもはるかに使用されません。

OhlohでCXFとAxisの統計を比較する。CXFのアクティビティは非常に高く、Axisのアクティビティは全体的に低くなっています。

これは、CXF(赤)とAxis1(緑)、Axis2(青)の時間の経過に伴うコミット数のグラフです。 ここに画像の説明を入力してください


24

CXFの利点:

  1. CXFは、WS-Addressing、WS-Policy、WS-RM、WS-Security、およびWS-I BasicProfileをサポートしています。
  2. CXFはJAX-WS API(JAX-WS 2.0 TCKによる)を実装します。
  3. CXFは、Springおよびその他のフレームワークとの統合が向上しています。
  4. CXFは、インターセプター戦略の点で高い拡張性を備えています。
  5. CXFには、面倒なXMLファイルの代わりに、APIを介してより多くの構成可能な機能があります。
  6. CXFにはバインディング:SOAP、REST / HTTPがあり、そのデータバインディングはJAXB 2.0、Aegisをサポートしています。デフォルトでは、JAXB 2.0とより近いJava標準仕様を使用します。
  7. CXFには、JavaからWSDL、WSDLからJava、XSDからWSDL、WSDLからXML、WSDLからSOAP、WSDLからサービスなど、豊富なツールキットがあります。

Axis2の利点:

  1. Axis2はWS-RM、WS-Security、およびWS-I BasicProfileもサポートしていますが、WS-Policyは除きますが、今後のバージョンでサポートされる予定です。
  2. Axisには、選択したデータバインディングのオプションがあります。
  3. Axis2は、C / C ++バージョンとJavaバージョンを含む複数の言語をサポートしています。
  4. Axis2は、XMLBeans、JiBX、JaxMe、JaxBRI、および独自のネイティブデータバインディングであるADBを含む、幅広いデータバインディングをサポートしています。CXFよりも長い履歴。

要約すれば:上記の利点の項目から、Axis2とCXFをそれぞれの長所で比較することは良い考えです。CXFは非常に構成可能で統合可能であり、豊富なツールキットがサポートされており、Javaコミュニティに近いものです。Axis2は、ミニチュアのアプリケーションサーバーに多くの点で似たアプローチをとっています。複数のプログラミング言語にまたがっています。Axis2は独立しているため、他のアプリケーションから独立したスタンドアロンのWebサービスに適し、幅広い機能を提供します。

開発者として、私たちは正しいフレームワークを選択するために私たちの見解を一致させる必要があります。どちらのフレームワークを選択しても、アクティブで安定したオープンソースコミュニティのメリットを享受できます。パフォーマンスに関しては、同じ機能に基づいてテストを行い、同じWebコンテナーで構成しました。結果は、CXFがAxis2よりも少し優れていることを示しています。

一部の研究記事では、追加機能(WS-Security)がないため、Axis2独自のADBデータバインディングがCXFよりも少し速いことが明らかになっています。Apache AXIS2は比較的最も使用されているフレームワークですが、開発の容易さ、現在の業界のトレンド、パフォーマンス、全体的なスコアカード、およびその他の機能を比較的考慮して、Apache CXFは他のWebサービスフレームワークよりもスコアが高くなっています)


2

私の経験によれば、CXFはそれをSpring環境に構成するという点で優れています。また、生成されたクラスは理解しやすいです。また、アクティブなほど、AXISやAXIS2と比較してサポートが向上します。


1

CXFのもう1つの利点は、NTLMV2認証をそのまま使用してWebサーバーに接続することです。(Windows 2008以降で使用)CXFを使用する前に、Axis2をハッキングしてHTTPClient V4 + JCIFSを使用し、これを可能にしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.