2009-08-07 18 views

Odpowiedz

209

Pamiętaj, jestem całkowicie stronniczy (PMC Przewodniczący CXF), ale moje myśli:

Od stricte „projekt może robić to, co muszę to zrobić” perspektywę, oba są równoważne ładna. Istnieją pewne rzeczy, które CXF może wykonać w Oś 2, i odwrotnie. Ale dla 90% przypadków użycia, albo będzie działać dobrze.

Tak więc sprowadza się do wielu innych rzeczy poza "funkcjami pola wyboru".

  • API - CXF wypycha "własnych" normy API (JAX-WS zgodny), natomiast Axis2 ogóle idzie w kierunku własnych rzeczy. Powiedział, że nawet CXF może wymagać użycia zastrzeżonych API do konfigurowania/kontrolowania różnych rzeczy poza specyfikacją JAX-WS. W przypadku REST, CXF wykorzystuje również standardowe API (zgodne z JAX-RS) zamiast własnościowych. (Tak, zdaję sobie sprawę z środowiska wykonawczego JAX-WS w Axis2, ale narzędzia i dokumenty i wszystko to nie jest celem)

  • Aspekty społeczności i wsparcie techniczne - CXF szczyci się odpowiedzią na problemy i tworzeniem "pakietów poprawek" "dostępne dla użytkowników. CXF zrobił 12 pakietów poprawek dla wersji 2.0.x (wydany dwa lata temu, czyli około co 2 miesiące), 6 pakietów poprawek do wersji 2.1.x, a teraz 3 dla wersji 2.2.x. Axis2 tak naprawdę "nie obsługuje" starszych wersji. O ile nie pojawi się "krytyczny" problem, być może trzeba będzie poczekać do kolejnej dużej wersji (średnio około 9-10 miesięcy), aby uzyskać poprawki. (chociaż, z jednym z nich, możesz pobrać kod źródłowy i załatać/naprawić sam siebie.) Uwielbiam open source.)

  • Integracja - CXF ma znacznie lepszą integrację Spring, jeśli używasz Spring. Cała konfiguracja i takie odbywa się przez Spring. Również ludzie mają tendencję do traktowania CXF jako bardziej "możliwego do osadzenia" (nigdy nie patrzyłem na Axis2 z tej perspektywy) na inne aplikacje. Nie jestem pewien, czy takie rzeczy mają dla ciebie znaczenie.

  • Wydajność - obaj radzą sobie bardzo dobrze. Wydaje mi się, że własnościowe wiązanie danych ADB jest nieco szybsze niż CXF, ale jeśli używasz JAXB (oparte na standardach API), CXF jest nieco szybszy. Podczas korzystania z bardziej złożonych scenariuszy, takich jak WS-Security, podstawowy "mechanizm" bezpieczeństwa (WSS4J) jest taki sam dla obu, aby wydajność była całkowicie porównywalna.

Nie jestem pewien, czy to w ogóle odpowiada na pytanie. Mam nadzieję, że przynajmniej dostarcza pewnych informacji.

:-)

Dan

+10

Niedawne porównanie z punktu widzenia WS-Security: http://www.ibm.com/developerworks/java/library/j-jws19/index.html –

+0

Wszelkie wskazówki dotyczące szybszego komunikowania się HTTP przy korzystaniu z CXF w ramach intranet? Połącz się z 8 usługami sieci Web za pośrednictwem sieci LAN – tgkprog

50
  • Axis2: Bardziej powszechne na rynku, obsługuje więcej powiązań, wspiera innych języków takich jak C/C++.
  • CXF: Znacznie łatwiejszy w użyciu, bardziej przyjazny dla wiosny, szybszy, uzyskał wsparcie dla niektórych rozszerzeń WS- *.
+0

. Porównywane porównanie nie jest już dostępne: "Przesłana treść usunięta" – maiklos

+5

+1 jest znacznie łatwiejsza w użyciu. IMO, CXF jest mniej dokładny podczas generowania podstawowych klas dla WS/WS-client z WSDL. Klient Axis wymaga mnóstwa kodu, który jest irytująco trudny do zrozumienia i refraktora, w przeciwieństwie do CXF. –

38

Jeszcze jedno jest działanie społeczności. Porównaj ruch listy mailingowej dla osi i cxf (2013).

Więc jeśli to jest jakiś wskaźnik wykorzystania wówczas oś jest zdecydowanie mniej używane niż CXF.

Compare CXF and Axis statistics at ohloh. CXF ma bardzo wysoką aktywność, podczas gdy Oś ma ogólną niską aktywność.

To jest wykres liczby zatwierdzeń w czasie dla CXF (czerwony) i Axis1 (zielony) Axis2 (niebieski). enter image description here

1

Jak na moje doświadczenie CXF jest dobry pod względem konfiguracji do środowiska Spring. Również wygenerowane klasy są łatwe do zrozumienia. A ponieważ jest bardziej aktywny, otrzymujemy lepszą obsługę w porównaniu z AXIS lub AXIS2.

19

Zalety CXF:

  1. CXF obsługuje do WS-Addressing, WS-Policy, WS-RM, WS-Security i WS-I BasicProfile.
  2. CXF implementuje interfejs API JAX-WS (zgodnie z JAX-WS 2.0 TCK).
  3. CXF ma lepszą integrację ze Spring i innymi frameworkami.
  4. CXF ma dużą rozciągliwość pod względem strategii przechwytywania.
  5. CXF ma bardziej konfigurowalną funkcję za pośrednictwem interfejsu API zamiast uciążliwych plików XML.
  6. CXF ma powiązania: SOAP, REST/HTTP i powiązania danych obsługują JAXB 2.0, Aegis, domyślnie używają JAXB 2.0 i bliżej specyfikacji standardu Java.
  7. CXF ma liczne zestawy narzędzi, np. Java do WSDL, WSDL do Java, XSD do WSDL, WSDL do XML, WSDL do SOAP, WSDL do usługi.

Zalety Axis2:

  1. Axis2 obsługuje również WS-RM, WS-Security i WS-I BasicProfile wyjątkiem WS-Policy, spodziewam będzie obsługiwana w nadchodzących wersja.
  2. Osi ma więcej opcji dla powiązań danych do wyboru
  3. Axis2 obsługuje wiele języków - w tym wersję C/C++ i wersję Java.
  4. Axis2 obsługuje szerszy zakres powiązań danych, w tym XMLBeans, JiBX, JaxMe i JaxBRI, jak również własne natywne wiązanie danych, ADB. dłuższa historia niż CXF.

W skrócie: Z powyższych pozycji korzyści, jakie przynosi nam do dobrej myśli porównać oś2 i CXF na własnych zasług. wszystkie mają różne dobrze rozwinięte obszary w pewnej dziedzinie, CXF jest bardzo konfigurowalny, integralny i ma bogate zestawy narzędzi obsługiwane i blisko społeczności Java, Axis2 podjął podejście, które sprawia, że ​​pod wieloma względami przypomina serwer aplikacji w miniaturze. jest w wielu językach programowania.Dzięki swojej niezależności Axis2 nadaje się do usług sieciowych, które są niezależne od innych aplikacji i oferują szeroką gamę funkcji.

Jako programista musimy pogodzić się z naszą perspektywą, aby wybrać właściwą, niezależnie od wybranej struktury, będziesz mieć korzyści z aktywnej i stabilnej społeczności open source. Jeśli chodzi o wydajność, zrobiłem test oparty na tej samej funkcjonalności i skonfigurowany w tym samym kontenerze sieciowym, wynik pokazuje, że CXF działał trochę lepiej niż Axis2, pojedynczy przypadek może nie odzwierciedlać dokładnie ich możliwości i wydajności.

W niektórych artykułach badawczych okazuje się, że opatentowane przez Axis2 wiązanie danych ADB jest nieco szybsze niż CXF, ponieważ nie ma dodatkowej funkcji (WS-Security). Apache AXIS2 jest względnie najczęściej wykorzystywanym frameworkiem, ale wyniki Apache CXF w porównaniu z innymi usługami Web Service Framework porównuje się z łatwością rozwoju, aktualnym trendem w branży, wydajnością, ogólną kartą wyników i innymi funkcjami (o ile nie jest wymagana obsługa orkiestracji Web Services, która nie jest wymagana tutaj)

1

Kolejna zaleta CXF: łączy się z serwerami sieciowymi za pomocą uwierzytelniania NTLMV2 po wyjęciu z pudełka. (używane przez Windows 2008 & do góry) Przed użyciem CXF, zhackowałem Axis2, aby użyć HTTPClient V4 + JCIFS, aby było to możliwe.

Powiązane problemy