Monday, August 28, 2006

Axis 1.x or Axis2?

A lot of people have been asking which version of Axis should they use:

Axis2 is the next generation web services platform. It supports all the latest and greatest SOAP and REST capabilities. It's definitely the system you'll be wanting to use in 2007. Unfortunately, it is not yet stable. The developers are planning to release v1.1 in late September, and I'm hoping that version will be stable. But if you want to use Axis2 before that release comes out, you must be preprared to use the nightly builds, to help identify bugs, and to perhaps propose fixes. The documentation is also pretty sketchy for those unfamiliar with the Axis2 architecture.

Axis is pretty much on life support. It's pretty stable, although a few bugs still exist regarding arrays. If you find a bug, please report it, and it will probably get fixed, but don't expect to see any enhancements going forward.

A little history
Axis2 is actually Apache's third generation SOAP engine:

Generation 1: Apache SOAP -- based on IBM's SOAP4J. Apache SOAP 1.0 was released on June 1, 2000. The last release, V2.3.1, came out on June 10, 2002. (This is now a dead project.) Apache SOAP was the first released SOAP engine, and it relied on DOM to process SOAP messages. It was extremely inefficient. It pre-dated WSDL, and it pretty much required RPC/encoded unless you wanted to programmatically manipulate the messages using DOM.

Generation 2: Apache Axis -- a completely redesigned SOAP engine with native support for WSDL and the JAX-RPC and SAAJ APIs. The first alpha release came out on August 15, 2001, and V1.0 was released on October 7, 2002. The last release, V1.4, came out on April 22, 2006. It relies on SAX to process messages. It's much more performant than Apache SOAP, but definitely not the most efficient engine available. Releases prior to V1.3 provided minimal support for document/literal.

Generation 3: Apache Axis2 -- yet another completely redesigned SOAP engine with an architecture that natively supports the next generation WS-* stack, including SOAP 1.2, WSDL 2.0, WS-Addressing, and plug-in modules for any WS-* header system. It also supports SOAP 1.1/WSDL 1.1, as well as RESTful services. The Axis2 native programming model is based on AXIOM, the Axis Object Model -- which relies on StAX for XML processing. Axis2 supports automatic object/XML data mapping via optional plug-in data binding systems, such as the Axis2 Data Binding (ADB) and XMLBeans. The Axis2 developers are currently working on implementing the JAX-WS API over Axis2.

8 comments:

gzug said...
This comment has been removed by a blog administrator.
Anne Thomas Manes said...

Someone named gzug left a rather crude post that I deleted, but I did want to maintain the useful information that he desired to convey:

He questioned the quality of Axis2 and the team that builds it (mostly folks from WSO2). [I concur that the team probably should not have released Axis2 1.0 in the state it was in. The next release -- 1.1 -- should be viewed as the first stable release.]

He also suggested that folks check out CeltiXFire as an alternative to Axis2. He offered these two links:

http://www.blogjava.net/openssl/archive/2006/08/28/xfire_soa_websevice.html
http://www.blogjava.net/openssl/archive/2006/08/23/AXIS.html

And he posited that Axis2 will die after CeltiXFire is contributed to Apache.

[My guess, though, is that Apache will not accept a competing contribution.]

Dan said...

Hi Anne, I would encourage you to check out the Celtixfire proposal which was accepted to apache:

http://wiki.apache.org/incubator/CeltiXfireProposal
http://www.mail-archive.com/general@incubator.apache.org/msg09442.html

Celtixfire will be based on XFire in part(http://xfire.codehaus.org). And XFire is available now for people looking to do web service development. In fact we just released our 1.2 release. It is very stable and widely deployed.

gzug said...

anne, i appologize for my crude comment on AXIS2.
In fact, in our POJOer's eye, AXIS is not POJO Style, or Spring Style, which XFire do a great job.
Dan Diephouse has proved that XFire has a larger marketShare than AXIS and i've seen that many AXIS Users have been migrated to XFire, and i am the case too.

I make some performance test on XFire 1.1.2 and AXIS 1.5, Under 100 concurrnet-Threads circumstance, A is slower twice than X.

Dan said...

Just wanted to chime in here once more and clarify - I don't think XFire has a larger market share than Axis 1. It is probably the most widely deployed SOAP stack around. But from what I've seen, I think its more deployed than Axis 2. However, there is no definitive way to tell.

andig said...

Not sure what you mean with 'all features'- even simple SOAP arrays aren't supported yet which makes it pretty much useless for php/nusoap ws providers...

Davanum Srinivas (dims) said...

andig,

You can now use - WSO2 Web Services Framework/PHP which supports a lot of the same specs that Axis2 itself supports. More info at : http://wso2.org/projects/wsf/php

abby brock said...

I am so glad this internet thing works and your article really helped me. Thanks for this.

movers in virginia