Apa keuntungan menggunakan Apache CXF dibandingkan Apache Axis dan sebaliknya?
Perlu diingat, saya benar-benar bias (PMC Chair of CXF), tetapi pikiran saya:
Dari sudut pandang "dapatkah proyek melakukan apa yang saya perlukan", keduanya cukup setara. Ada beberapa "kasus tepi" hal-hal yang dapat dilakukan CXF yang Axis 2 tidak bisa dan sebaliknya. Tetapi untuk 90% kasus penggunaan, keduanya akan berfungsi dengan baik.
Dengan demikian, ia datang ke banyak hal lain selain "fitur kotak centang".
API - CXF mendorong API "berbasis standar" (JAX-WS compliant) sedangkan Axis2 general mengarah ke hal-hal yang menjadi hak milik. Yang mengatakan, bahkan CXF mungkin memerlukan penggunaan API milik untuk mengkonfigurasi / mengendalikan berbagai hal di luar spesifikasi JAX-WS. Untuk REST, CXF juga menggunakan standar API (JAX-RS compliant) alih-alih hal-hal kepemilikan. (Ya, saya mengetahui runtime JAX-WS di Axis2, tetapi tooling dan dokumen dan semuanya tidak menargetkannya)
Aspek dan daya dukung komunitas - CXF bangga karena merespons masalah dan menyediakan "paket perbaikan" bagi pengguna. CXF melakukan 12 fixpacks untuk 2.0.x (dirilis dua tahun lalu, jadi setiap 2 bulan), 6 fixpacks ke 2.1.x, dan sekarang 3 untuk 2.2.x. Axis2 tidak benar-benar "mendukung" versi lama. Kecuali jika masalah "kritis" terjadi, Anda mungkin perlu menunggu sampai rilis besar berikutnya (rata-rata setiap 9-10 bulan) untuk mendapatkan perbaikan. (walaupun, dengan salah satu, Anda dapat mengambil kode sumber dan menambal / memperbaiki diri sendiri. Anda harus mencintai open source.)
Integrasi - CXF memiliki integrasi Spring yang jauh lebih baik jika Anda menggunakan Spring. Semua konfigurasi dan semacamnya dilakukan melalui Spring. Juga, orang-orang cenderung menganggap CXF sebagai lebih "embeddable" (Saya tidak pernah melihat Axis2 dari perspektif ini) ke dalam aplikasi lain. Tidak yakin apakah hal-hal seperti itu penting bagi Anda.
Kinerja - keduanya bekerja dengan sangat baik. Saya pikir penyatuan data ADB milik Axis2 sedikit lebih cepat daripada CXF, tetapi jika Anda menggunakan JAXB (API berbasis standar lagi), CXF sedikit lebih cepat. Ketika menggunakan skenario yang lebih kompleks seperti WS-Security, "engine" keamanan yang mendasarinya (WSS4J) adalah sama untuk keduanya sehingga kinerjanya benar-benar sebanding.
Tidak yakin apakah itu menjawab pertanyaan sama sekali. Semoga setidaknya memberikan beberapa informasi.
:-)
Dan
sumber
Satu hal lagi adalah aktivitas masyarakat. Bandingkan lalu lintas milis untuk sumbu dan cxf (2013).
Jadi jika ini adalah indikator penggunaan maka sumbu jauh lebih sedikit digunakan daripada cxf.
Bandingkan statistik CXF dan Axis di ohloh . CXF memiliki aktivitas yang sangat tinggi sementara Axis memiliki aktivitas yang rendah secara keseluruhan.
Ini adalah bagan untuk jumlah komit dari waktu ke waktu untuk CXF (merah) dan Sumbu1 (hijau) Sumbu2 (biru).
sumber
Keuntungan CXF:
Keuntungan dari Axis2:
Dalam Ringkasan: Dari item keunggulan di atas, membawa kita pada pemikiran yang baik untuk membandingkan Axis2 dan CXF berdasarkan kemampuannya sendiri. mereka semua memiliki area berbeda yang dikembangkan dengan baik dalam bidang tertentu, CXF sangat dapat dikonfigurasi, terintegrasi dan memiliki banyak tool kit yang didukung dan dekat dengan komunitas Java, Axis2 telah mengambil pendekatan yang membuatnya menyerupai server aplikasi dalam miniatur. itu di berbagai bahasa pemrograman. karena Kemandiriannya, Axis2 cocok untuk layanan web yang berdiri sendiri, independen dari aplikasi lain, dan menawarkan berbagai fungsionalitas.
Sebagai pengembang, kami harus menyesuaikan perspektif kami untuk memilih yang tepat, kerangka mana pun yang Anda pilih, Anda akan mendapat manfaat dari komunitas open source yang aktif dan stabil. Dalam hal kinerja, saya melakukan tes berdasarkan fungsionalitas yang sama dan dikonfigurasi dalam wadah web yang sama, hasilnya menunjukkan bahwa CXF tampil sedikit lebih baik daripada Axis2, satu kasus mungkin tidak mencerminkan kemampuan dan kinerja mereka.
Dalam beberapa artikel penelitian, terungkap bahwa penyatuan data ADB milik Axis2 sedikit lebih cepat daripada CXF karena tidak memiliki fitur tambahan (WS-Security). Apache AXIS2 adalah kerangka kerja yang paling banyak digunakan tetapi skor Apache CXF atas Kerangka Layanan Web lainnya secara komparatif mempertimbangkan kemudahan pengembangan, tren industri saat ini, kinerja, scorecard keseluruhan dan fitur-fitur lainnya (kecuali jika ada dukungan Layanan Web Orkestrasi secara eksplisit diperlukan, yang tidak diperlukan di sini )
sumber
Sesuai pengalaman saya CXF baik dalam hal mengkonfigurasi ke lingkungan Spring. Kelas yang dihasilkan juga mudah dipahami. Dan karena lebih aktif, kami mendapatkan dukungan yang lebih baik dibandingkan dengan AXIS atau AXIS2.
sumber
Keuntungan lain dari CXF: terhubung ke server web menggunakan otentikasi NTLMV2 di luar kotak. (digunakan oleh Windows 2008 & ke atas) Sebelum menggunakan CXF, saya meretas Axis2 untuk menggunakan HTTPClient V4 + JCIFS untuk memungkinkan hal ini.
sumber