web-dev-qa-db-ja.com

Axis2 WebサービスとCXF Webサービスの違い

Axis2 WebサービスとCXF Webサービスの違いを理解するのに役立つ人がいれば感謝します。

32
user1811206

Axis2 WebサービスとCXF Webサービスの主な違いは次のとおりです。

  1. CXFは、WS-Addressing、WS-Policy、WS-RM、WS-Security、およびWS-I BasicProfileをサポートしています。 Axis2は、次のバージョンでサポートされるWS-Policyを除き、これらのそれぞれをサポートします。

  2. CXFは、Springを念頭に置いて作成されました。 Axis2はそうではありません。

  3. Axis2は、XMLBeans、JiBX、JaxMe、JaxBRIなどの幅広いデータバインディングと、独自のネイティブデータバインディングであるADBをサポートしています。 JaxMEおよびJaxBRIのサポートは、Axis2 1.2ではまだ実験的であると見なされていることに注意してください。 CXFは現在、JAXBとAegisのみをサポートしています。 XMLBeans、JiBX、CastorのサポートはCXF 2.1で提供されます。

  4. Axis2は複数の言語をサポートしています。Javaバージョンに加えて、C/C++バージョンが利用可能です。

ただし、これらのフレームワークを比較する際には、機能を比較するのと同様に、Webサービスの開発に対するアプローチを検討することも重要です。開発者の観点から見ると、両方のフレームワークの動作は非常に異なります。 Axis2は、多くの点でミニチュアのアプリケーションサーバーに似たアプローチを採用しています。 Axis2には、Tomcatなどのサーブレットコンテナにデプロイ可能なWARがパッケージ化されており、Webサービスをその場で簡単に管理およびデプロイできるように設計されています。 Axis2 Web管理モジュールにより、アプリケーションの実行中にAxis2を動的に構成できます。新しいサービスをアップロード、アクティブ化、または非アクティブ化でき、パラメーターを変更できます。管理UIでは、1つ以上の実行中のサービスでモジュールを有効にすることもできます。これらの目的でUIを使用する場合の唯一の欠点は、UIを使用して行った構成の変更が永続的ではないという事実です。サーブレットコンテナを再起動すると消えます。

Axis2は、他のアプリケーションから独立したスタンドアロンのWebサービスに向いており、さまざまな機能を提供し、モジュラーアーキテクチャの時間経過とともに機能を追加するための優れたモデルを提供します。一部の開発者は、自分のニーズに対して少し面倒またはヘビーデューティーであることに気付くかもしれません。これらの開発者は、Apache CXFの使用を好むかもしれません。

CXFは、開発者の人間工学と埋め込み性に重点を置いています。ほとんどの設定は面倒なXMLファイルの代わりにAPIを介して行われ、Spring 2.0のサポートを含むSpringの統合が非常に重視され、CXFのAPIとSpringの設定はかなり密接にミラーリングされます。 CXFは、単純なAPIを使用して既存のアプリケーションからのサービスの開発を容易にするコードファーストデザインを強調しています(そしてその埋め込み性も役立ちます)。

どのフレームワークを選択しても、アクティブで安定したオープンソースコミュニティのメリットが得られます。これらの各フレームワークには企業の支援があります。Axis2はWSO2によって、CXFはIonaによって支援されています。どちらも活発な開発者コミュニティがあります。 Axis2はもう少し長くなりましたが、CXFはすぐに追いついています。私の推奨事項は次のとおりです。多言語サポートが重要な場合、Axis2が明確な選択肢です。 Springなどのプロジェクトに緊密に統合されたJavaに重点を置いた実装を気にする場合は、特に他のプログラム内にWebサービスを埋め込む場合、CXFの方が適しています。重要ではなく、Axis1に比較的満足しているので、移行するビジネス上の理由があるまで、これにとどまり、最新のメンテナンスリリースに遅れずについていく必要があります。

54
Sandeep