Vergleich EJB, XFire, Axis2

nes

Grünschnabel
Hallo allseits,

ich habe noch ein prinzipielles Verständnisproblem betreffend EJBs, XFire und Axis2.

Bei uns in der Firma sind u.a. diese Technologien "wild vermischt" (Altlasten und so ...), man findet oft in einer Applikation zwei oder sogar alle drei Technologien nebeneinander.

Der Unterschied zwischen Axis2 und XFire ist mir im Groben klar, da findet man auch gute Dokumentation darüber (z.B. hier). Beides sind SOAP-Frameworks, mit beiden kann man also plattformunabhängige WebServices entwickeln.

Unklar ist mir inwieweit EJBs mit diesen Frameworks vergleichbar sind. EJBs bieten eine Fülle von Funktionalitäten, u.a. eben auch, EJBs als WebService aufzurufen.

Nur, wenn ich das ohnehin alles (und noch viel mehr) auch mit EJBs machen kann - wozu dann XFire/Axis? :)

Ist der einzige Vorteil von Axis/Xfire zum Vergleich mit EJBs tatsächlich nur die Plattformunabhängigkeit (EJB-WebServices können nur von Java aus aufgerufen werden)? Oder kann man das aus anderen Gründen, die ich nicht kenne, einfach nicht vergleichen?

Und, um den Mist der sich bei uns teilweise angesammelt hat zu vereinheitlichen: Spricht etwas dagegen, Axis2-WebServices und XFire-WebServices einfach auf EJBs umzustellen?

lg., nes
 
Hallo,

wenn du EJB mit XFire oder Axis vergleichst vermischt du konkrete Frameworks mit einer Spezifikation. Die EJB Spezifikation ist kein konkretes Framework, das heißt es gibt keinerlei Technologien vor sondern macht Aussagen darüber welche Funktionalitäten ein JEE Applikationsserver implementieren muss. Wie diese Technologien implementiert werden ist der Spezifikation egal.
EJB3 gibt für Webservices z.B. JAX-WS und JAX-B vor, das heißt ein JEE5 Applicationserver muss ein Framework anbieten welches beide Spezifikationen erfüllt, das könnte je nach Hersteller sogar Axis2 oder XFire sein. Dieses Framework enthält der Applikationserver.

Wenn du mit den Mitteln die dir die Spezifikation bietet auskommst und ohnehin EJBs benutzt (du also an der EJB Spezifikation nicht vorbei kommst) würde ich diese Funktionalität nutzen und nicht noch ein eigenes WS-Framework integrieren.

Nochwas zu XFire:
Das XFire Projekt wurde eingestellt und XFire sollte nicht mehr verwendet werden. Der Nachfolger von XFire ist Apache CXF.
 
Zuletzt bearbeitet:
Hallo,

WebServices != EJB. Webservices stellen nur eine Kommunikationsmöglichkeit dar mit der Entfernte Dienste aufgerufen werden können. EJB ist eine Spezifikation für ein Komponenten Modell auf Basis der JEE Technologie / Spec.

In dieser Spec sind auch verschiedene Remoting Möglichkeiten für EJB Komponenten dargelegt. Beispielsweise RMI / RMI over IIOP (CORBA) oder eben Webservices.

Neben der Standard Implementierung JAX-WS für Webservices gibt es eben auch andere Frameworks die quasi den Motor für eine Webservice Spezifkation darstellen (XFire, CXF, Axis, Axis2, Spring Web Services, etc.)

Zum Vergleich von Webservice Frameworks schau mal hier:
http://www.tutorials.de/forum/enterprise-java-jee-j2ee-spring-co/328532-web-service-frameworks.html

Gruß Tom
 

Neue Beiträge

Zurück