Skip to main content

Web Service Framework comparison

Web Services is one of those concepts made all the more difficult to understand because of the myriad acronyms and abbreviations that are superfluous in any discussion. Covering all the concepts and standards associated with Web Services is a vast topic in itself. There are a large number of standards around Web Services. These standards define the norms of a Web Services implementation and ensure that a Web Services is accessed independently of the client platform. There are numerous frameworks available to select to build web service today. Below is the most widely used ones.

Product

Does it fit my need?

Axis2.0

Apache Axis2 is a complete re-design and re-write of the widely used Apache Axis SOAP stack to build on the lessons learnt from Apache Axis.

An advantage of Axis 2 is its support for the binding frameworks XMLBeans. Axis 2 with XMLBeans is widely used for building Web Services solutions with very complex schema definitions.

The disadvantages of Axis 2 are its complexity and insufficient JAX-WS support.

There is also no integration support for Spring. Currently the only available Spring support in Axis2 is by embedding a Spring container inside a service archive (AAR), i.e. implementing an Axis2 service using Spring. However, what most people are looking for is to embed Axis2 inside Spring, i.e. to configure and manage the Axis2 runtime (including the deployed services) using Spring application contexts. This is a serious limitation.

Apache CXF

CXF is a merger of two prior OSS projects - Celtix ObjectWeb and XFire projects. CXF support JAX-WS, RESTful and POJO for the building Web Servicess. CXF support SOAP, JMS, CORBA and more.

CXF has better support for JAX-WS and offers seamless integration with Spring framework. CXF is slim, intuitive, performs well and is easy to use. Invoking a Web Services using CXF will boost developer productivity since all marshalling/un-marshalling and transfer of data is taken care of automatically.

CXF is designed with Spring in mind and supports the Spring 2.0 XML syntax, making it trivial to declare endpoints which are backed by Spring and inject clients into the application.

CXF is the also tool of choice if a SOAP engine has to be embedded into existing software.

GlassFish Metro

The Metro Web Services stack is a part of the GlassFish community, but it can be also used outside GlassFish. The core of Metro implements the JAX-WS API and serves as the foundation where all the higher-level features plug in.

Metro is known to have poorly documented its APIs.

Metro also only works with JAXB 2.x data binding and JAX-WS 2.x Web Services configuration, as opposed to the wider range of data bindings and alternative configuration supported by Axis2 and CXF.

Popularity Analysis

Below is a trend analysis that shows the requirement for major Web Service frame work (source: http://www.indeed.com ) over the last 5 years.

cxf-axis

Comments