Sunday, January 6, 2008

Axis vs XFire- Better Web Services Framework

Axis and XFire are competing Java web service frameworks; Axis is an Apache project and XFire is a Codehaus project.

It is difficult to compare the Axis and XFire web services frameworks for the purpose of deciding which one to adopt. Both web services frameworks have some significant challenges associated with using them, and there are good reasons to choose either one or the other. It all depends on where the emphasis is being placed when comparing them: stability, performance, or ease of use.

2 Branches Of Axis

Before comparing Axis to anything else, however, it is important to make note of the fact that there are two separate Axis frameworks: Axis 1 and Axis2. The Axis development team has shifted to Axis2 and has made it clear that while Axis1 bugs may be fixed, all enhancement and feature work is going to take place on Axis2, which is a ground-up reimplementation of the framework using a very different model.

Axis1 is a stable platform—stable to the point of ossification. It does have outstanding bugs, but there seems to be little effort on the part of the developers to correct them, or even evaluate patches contributed by non-Axis developers. Recent months have seen a drop-off even in responses to Axis1 question on the axis-users mailing list.

For this reason, it is reasonable to continue to use Axis1 for legacy applications that are already working and do not require major changes, as its very stability is an advantage there. However, in developing new applications it is probably advisable to look to Axis2, since it is under active development and it has a large, active community associated with it. Therefore it makes more sense to compare Axis2 and XFire for purposes of selecting a platform for new applications, or porting an existing legacy application to one of the current frameworks.

Comparing Axis2 and XFire

With this in mind, then, what differentiates Axis2 and XFire? Perhaps before highlighting differences we should look at the ways in which they are the same:

* Both have active user and developer communities
* As of February 12, 2007, both have an almost identical number of open bugs
* As of February 12, 2007, both have an almost identical quantity and distribution of Blocker, Critical, Major, Minor and Trivial bugs in their JIRAs (Axis2 JIRA, XFire JIRA)

So from this we can conclude that in terms of the number of reported bugs the two projects are pretty similar. How are they different?
Axis2:

* Has more active committers
* Has both Java and C/C++ implementations
* Has a sponsoring company (WSO2)
* Is perhaps more widely known
* Has completed a major codebase change and is moving towards stability (but is not as stable as Axis1 yet)
* Performance is comparable to XFire

XFire:

* Is thought to be easier to use
* Has more clearly-written documentation
* Is currently fairly stable
* Performance is much better than Axis1 and equivalent to Axis2 in most cases

However, there is one major issue that makes Axis2 preferable over XFire at this time: On July 22, 2006, the XFire team announced that in XFire 2 they would be merging codebases with the Celtix framework and joining the Apache Software Foundation as CeltiXfire. One of the stated non-goals for this migration stated by the team is backwards compatibility with the current XFire code base—meaning that developers who write new applications using the XFire 1.x framework are going to be facing a situation similar to the one faced by Axis developers when that team dropped Axis1 and began Axis2. Since Axis2 has already completed this transition it makes sense not to adopt XFire for new projects at this time.

NOTE from XFire author: XFire services will be deployable inside CXF with little/no modification for most people. Your XML deployment descriptors and/or your usage of the XFire APIs wlil need to change though. Hoewver, the APIs in CXF are very similar to the XFire APIs. It is not a major departure for the most part!

Once the CeltiXfire migration is complete, however, and the new version of the software has had the chance to mature, this comparison needs to be revisited.
See also

* JAX WS

External Links

* codehaus xfire soap stack comparison

Also see sample implementation of Axis 2 and Xfire in the following articles.....

Axis 2- http://wso2.org/library/95

XFire-http://www.javaworld.com/javaworld/jw-05-2006/jw-0501-xfire.html

Print this post

0 comments: