Sự khác biệt giữa Apache CXF và Trục


177

Những lợi thế của việc sử dụng Apache CXF so với Apache Trục và ngược lại là gì?

Câu trả lời:


229

Hãy nhớ rằng, tôi hoàn toàn thiên vị (Chủ tịch PMC của CXF), nhưng suy nghĩ của tôi:

Từ quan điểm "dự án có thể làm những gì tôi cần làm", cả hai đều tương đương nhau. Có một số "trường hợp cạnh" mà CXF có thể làm mà Trục 2 không thể và ngược lại. Nhưng đối với 90% các trường hợp sử dụng, một trong hai sẽ hoạt động tốt.

Vì vậy, nó đi xuống một loạt các thứ khác ngoài "tính năng hộp kiểm".

  • API - CXF đẩy API "dựa trên tiêu chuẩn" (tuân thủ JAX-WS) trong khi chung về trục 2 hướng tới những thứ độc quyền. Điều đó nói rằng, thậm chí CXF có thể yêu cầu sử dụng API độc quyền để định cấu hình / kiểm soát nhiều thứ khác nhau ngoài thông số JAX-WS. Đối với REST, CXF cũng sử dụng API tiêu chuẩn (tuân thủ JAX-RS) thay vì những thứ độc quyền. (Có, tôi biết về thời gian chạy JAX-WS trong Axis2, nhưng công cụ và tài liệu và mọi thứ không nhắm mục tiêu nó)

  • Các khía cạnh cộng đồng và khả năng hỗ trợ - CXF tự hào về việc phản hồi các vấn đề và cung cấp "gói sửa lỗi" cho người dùng. CXF đã thực hiện 12 gói sửa lỗi cho 2.0.x (được phát hành hai năm trước, cứ sau khoảng 2 tháng), 6 gói sửa lỗi thành 2.1.x và bây giờ là 3 cho 2.2.x. Axis2 không thực sự "hỗ trợ" các phiên bản cũ hơn. Trừ khi có sự cố "nghiêm trọng" xảy ra, bạn có thể phải đợi đến phiên bản lớn tiếp theo (chúng trung bình cứ sau khoảng 9-10 tháng hoặc lâu hơn) để có bản sửa lỗi. (mặc dù, với một trong hai, bạn có thể lấy mã nguồn và tự sửa / sửa lỗi. Phải yêu nguồn mở.)

  • Tích hợp - CXF có tích hợp Spring tốt hơn nhiều nếu bạn sử dụng Spring. Tất cả các cấu hình và như vậy được thực hiện thông qua Spring. Ngoài ra, mọi người có xu hướng coi CXF là "có thể nhúng" hơn (tôi chưa bao giờ nhìn vào Trục 2 từ góc độ này) vào các ứng dụng khác. Không chắc chắn nếu những điều như vậy quan trọng với bạn.

  • Hiệu suất - cả hai đều thực hiện rất tốt. Tôi nghĩ rằng cơ sở dữ liệu ADB độc quyền của Axis2 nhanh hơn một chút so với CXF, nhưng nếu bạn sử dụng JAXB (API dựa trên tiêu chuẩn một lần nữa), CXF sẽ nhanh hơn một chút. Khi sử dụng các kịch bản phức tạp hơn như WS-Security, "công cụ" bảo mật cơ bản (WSS4J) là giống nhau cho cả hai vì vậy hiệu suất hoàn toàn có thể so sánh được.

Không chắc chắn nếu điều đó trả lời câu hỏi ở tất cả. Hy vọng nó ít nhất cung cấp một số thông tin.

:-)

Dân


10
Một so sánh gần đây từ quan điểm của WS-Security: ibm.com/developerworks/java/l Library / j
Daniel Kulp

Bất kỳ con trỏ nào để làm cho giao tiếp HTTP nhanh hơn khi sử dụng CXF trong mạng nội bộ? Kết nối với 8 dịch vụ web qua lan
tgkprog 17/12/13

57
  • Trục 2 : Phổ biến hơn trên thị trường, hỗ trợ nhiều ràng buộc hơn, hỗ trợ các ngôn ngữ khác như C / C ++.
  • CXF : Dễ sử dụng hơn, thân thiện với mùa xuân hơn, hỗ trợ nhanh hơn cho một số tiện ích mở rộng WS- *.

so sánh được giới thiệu không còn khả dụng nữa: "Nội dung đã tải lên đã bị xóa"
maiklos

5
+1 để dễ sử dụng hơn nhiều. IMO, CXF cũng ít dài dòng hơn khi tạo các lớp cơ bản cho WS / WS-client từ WSDL. Một máy khách Trục yêu cầu rất nhiều mã khó hiểu và khó chịu, trái ngược với CXF.
Priidu Neemre

42

Một điều nữa là hoạt động của cộng đồng. So sánh lưu lượng danh sách gửi thư cho trục và cxf (2013).

Vì vậy, nếu đây là bất kỳ chỉ số sử dụng thì trục được sử dụng ít hơn nhiều so với cxf.

So sánh thống kê CXF và Trục tại ohloh . CXF có hoạt động rất cao trong khi Trục có hoạt động tổng thể thấp.

Đây là biểu đồ cho số lần xác nhận theo thời gian cho CXF (màu đỏ) và Trục1 (màu xanh lá cây) Trục2 (màu xanh). nhập mô tả hình ảnh ở đây


24

Ưu điểm của CXF:

  1. CXF hỗ trợ cho Địa chỉ WS, Chính sách WS, WS-RM, WS-Security và WS-I BasicProfile.
  2. CXF triển khai API JAX-WS (theo JAX-WS 2.0 TCK).
  3. CXF đã tích hợp tốt hơn với Spring và các khung khác.
  4. CXF có khả năng mở rộng cao về chiến lược đánh chặn của họ.
  5. CXF có tính năng cấu hình nhiều hơn thông qua API thay vì các tệp XML cồng kềnh.
  6. CXF có BindingsTHER SOAP, REST / HTTP và Data Bindings hỗ trợ JAXB 2.0, Aegis, theo mặc định, nó sử dụng JAXB 2.0 và đặc tả kỹ thuật tiêu chuẩn Java gần gũi hơn.
  7. CXF có các bộ công cụ phong phú, ví dụ Java sang WSDL, WSDL sang Java, XSD sang WSDL, WSDL sang XML, WSDL sang SOAP, WSDL cho dịch vụ.

Ưu điểm của Axis2:

  1. Axis2 cũng hỗ trợ WS-RM, WS-Security và WS-I BasicProfile ngoại trừ WS-Policy, tôi hy vọng nó sẽ được hỗ trợ trong phiên bản sắp tới.
  2. Trục có nhiều tùy chọn hơn cho các ràng buộc dữ liệu cho bạn chọn
  3. Axis2 hỗ trợ nhiều ngôn ngữ, bao gồm cả phiên bản C / C ++ và phiên bản Java.
  4. Axis2 hỗ trợ một phạm vi liên kết dữ liệu rộng hơn, bao gồm XMLBeans, JiBX, JaxMe và JaxBRI cũng như ràng buộc dữ liệu riêng của nó, ADB. lịch sử lâu hơn CXF.

Tóm lại: Từ các mục lợi thế trên, nó đưa chúng ta đến một suy nghĩ tốt để so sánh Axis2 và CXF về giá trị riêng của chúng. tất cả chúng đều có các khu vực phát triển tốt khác nhau trong một lĩnh vực nhất định, CXF rất có thể định cấu hình, có thể tích hợp và có bộ công cụ phong phú được hỗ trợ và gần với cộng đồng Java, Axis2 đã thực hiện một cách tiếp cận giống như một máy chủ ứng dụng thu nhỏ. nó là trên nhiều ngôn ngữ lập trình. bởi vì tính độc lập của nó, Axis2 cho vay các dịch vụ web độc lập, độc lập với các ứng dụng khác và cung cấp nhiều chức năng.

Là một nhà phát triển, chúng tôi cần phải phù hợp với quan điểm của chúng tôi để chọn đúng, bất kỳ khung nào bạn chọn, bạn sẽ có lợi ích của một cộng đồng nguồn mở ổn định và tích cực. Về hiệu suất, tôi đã thực hiện một thử nghiệm dựa trên cùng chức năng và được định cấu hình trong cùng một bộ chứa web, kết quả cho thấy CXF hoạt động tốt hơn một chút so với Axis2, trường hợp đơn lẻ có thể không phản ánh chính xác khả năng và hiệu suất của chúng.

Trong một số bài viết nghiên cứu, nó tiết lộ rằng cơ sở dữ liệu ADB độc quyền của Axis2 nhanh hơn một chút so với CXF vì nó không có tính năng bổ sung (WS-Security). Apache AXIS2 là khung tương đối được sử dụng nhiều nhất nhưng Apache CXF so với Khung dịch vụ web khác so với việc dễ dàng phát triển, xu hướng hiện tại, hiệu suất, thẻ điểm tổng thể và các tính năng khác (trừ khi có hỗ trợ phối hợp dịch vụ web là không cần thiết ở đây )


2

Theo kinh nghiệm của tôi, CXF rất tốt trong việc cấu hình nó vào môi trường Spring. Ngoài ra các lớp được tạo ra là đơn giản để hiểu. Và vì nó hoạt động nhiều hơn, chúng tôi nhận được sự hỗ trợ tốt hơn so với AXIS hoặc AXIS2.


1

Một ưu điểm khác của CXF: nó kết nối với các máy chủ web bằng cách sử dụng xác thực NTLMV2. (được sử dụng bởi Windows 2008 trở lên) Trước khi sử dụng CXF, tôi đã hack Axis2 để sử dụng HTTPClient V4 + JCIFS để thực hiện điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.