Pages

Monday 3 December 2012

Apache CXF VS Apache Axis VS Spring Service


 Apache CXF, Apache Axis2 and Spring WS are web service framework, which is used to create web service using these engines.
 I tried to jot down some points of CXF,Axis2 and Spring WS frameworks:
Apache Axis2
Apache CXF
Spring WebServies
Apache License 2.0
Apache License 2.0
Apache License 2.0
Axis2 supports multiple language like c,c++ and java
Apache CXF support Java
Spring web Services supports java
Support Contract First and Contract Last approach Web Service Creation
Support Contract First and Contract Last approach Web Service Creation
Support only Contract First approach creating web service
Axis2 supports a wide range of data bindings, including Jaxb,JaxME,JaxBRI ,XML Beans and ADB(Axis Data Binding)
Apache CXF Supports limited bindings like JAXB, Aegis, XMLBeans, JiBX and Castor
Spring Web service support limited data bindings such as JAXB,JiBX,XMLBeans ,Xstream and Castor
Axis2 is compatible with Spring Framework
Apache CXF has better integration with spring framework
Spring Web Service has better integration than CXF with spring framework
Axis2 supports limited WS-* compliances
Apache CXF supports WS-Addressing, WS-Policy, WS-RM, WS-Security, and WS-I BasicProfile,WS-SecurityPolicy, WS-MetadataExchange,WS-Discovery,WS-SecureConverstation, and WS-Trust (partial).
Spring WebService  supports limited WS-* compliances
Axis2 does not support.
Apache CXF 2.3 added support for the Tuscany implementation of Service Data Objects as alternative data binding
Spring WebService does not support.
Rampart is the Axis2 security module, supporting WS-Security, WS-SecurityPolicy, WS-SecureConversation, and WS-Trust. Apache Rampart is implemented as pair of modules like rampart.mar and rahas.mar. Also, Rampart uses WSS4J to perform the core WS-Security functionality, and provides extended security functionality.
Apache CXF uses WSS4J to perform WS-Security. WSS4J provides an implementation of the WS-Security standards like soap message security, X.509 certification token profile, SAML token profile, Kerberos token profile and basic security profile.
Spring WebService uses WSS4J to perform WS-Security and  Acegi based Spring-Security can be used
Apache Axis2 provides WS-RM functionality by using Apache Sandesha2, It is provide the WS-RM Implementation.
Apache CXF provide the WS-RM implementation.
Spring WebService does not support WS-RM.
Axis2 does not have better support of OSGI Framework.
Apache CXF provide better support of OSGI Framework
Spring WebService provide better support of OSGI Framework

So, these web services frameworks have some advantages over each other such as Apache CXF and Axis2. But Spring WS is a minimal web services framework, it doesn’t have much advantage over Apache CXF.Also, Apache CXF has better integration with spring framework.

1 comment:

  1. APache CXF seems to have upper hand as it supports more Industry standard wrt WS-*
    All three framework uses Apache WSS4j for WS-Security

    ReplyDelete