InfoQ

News

Apache Axis2 1.1 Released

Posted by Stefan Tilkov on Nov 20, 2006 08:08 AM

Community
Java,
SOA
Topics
Web Services
Tags
Web services,
WS-Security,
WSO2,
WS-Policy,
Apache Axis

Version 1.1 of Axis2, the Apache Web services stack, has been released and  can be downloaded from the Apache site. POJO and Spring services client support has been significantly improved as well as documentation and many other aspects. A New Attachments API for sending & receiving MTOM and SwA attachments has been added, as well as built in support for WS-Policy via Apache Neethi.

The Axis2 team spoke to InfoQ about the release. Paul Fremantle, Co-founder and VP of Technology at WSO2, explained the reasons for developing a new XML object model for Axis2 as opposed to sticking with DOM, DOM4J, JDOM or another existing XML framework (this was something criticized e.g. by XML guru Elliotte Rusty Harold for Axis 1.0):

One of the challenges in efficient parsing of XML is deciding whether to parse as a tree or as an event stream. Because SOAP mixes different XML fragments (the headers and body), often you need to mix both styles. Axiom optimizes this based on what the code asks for. By deferring the building of the tree until requested, Axiom optimizes the parsing depending on what modules and databinding technology is used. For example the headers may be parsed into a tree, but the body streamed directly into Java objects.

WSO2 CEO Sanjiva Weerawarana emphasized another aspect, AXIOM's ability to "pull" a tree as an event stream:

A module that wants to consume the events and do something with it can tell AXIOM to stop building the tree and read the entire message as a stream .. and it'll "play back" the part that's been read into memory and then switch to forwarding events. So its a StAX based, deferred built, pull-through model.

The streaming -- which enables processing of arbitrarily sized messages -- is also supported by the modules that implement WS-* standards in general. According to Sanjiva, the team is interested in addressing existing limitations, such as those of the WS-Security module (which currently requires canonicalization of the complete message).

Concerning doubts about performance penalties because of the rich WS-* support, Paul assured us that the Axis2 team has worked really hard at making the modularity work for Axis2, and one certainly doesn't have to pay for the standards one doesn't use:

The core Axis2 framework is highly efficient, but adding a standard like WSSecurity is as simple as dropping a module (a single file - e.g. rampart.mar) into the modules directory. In fact one of the main drivers for developing Axiom was making sure that Axis2 could handle WS-Security efficiently without "paying" for it when you don't -- in Axis1 there is a big performance hit from the SAX event recorder which is there to ensure WSSec can work.

Compared to Axis2 1.0, the 1.1 release seems to be a significant step forward, with the documentation (available as a separate download) being one of the most important improvements.   Version 1.2 will address some of the known limitations of the current release, including  unwrapping of response messages and JSR 181/183 Annotation support (coming in 1.2). JaxMe and JAXBRI data binding support is currently experimental.

1 comment

Reply

welcome by boran Boran Posted Jun 30, 2008 9:49 AM
  1. Back to top

    welcome

    Jun 30, 2008 9:49 AM by boran Boran

Exclusive Content

Agile Project Management: Lessons Learned at Google

In this presentation filmed during QCon 2007, Jeff Sutherland, the creator of Scrum, talks about his visit at Google to do an analysis of Google's first implementation of Scrum.

AtomServer – The Power of Publishing for Data Distribution

In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera, which is now available as open source.

An Introduction to Virtualization

It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is also being applied to networking, storage, and application infrastructure.

REST Anti-Patterns

In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them.

Choosing between Routing and Orchestration in an ESB

In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup, and discuss various implementation options.

Enterprise Batch Processing with Spring

Wayne Lund discusses batch processing, Spring Batch objectives and features, scenarios for usage, Spring Batch architecture, scaling, example code, failures and retrying, and the future roadmap.

User Story Estimation Techniques

Developer Jay Fields draws on his experiences as a ThoughtWorks consultant to describe effective user story estimation techniques.

Security (CAS and OpenID) with Ruby

In this talk from QCon SF 2007, Justin Gehtland explains two open solutions to distributed identity and their Rails integration components: OpenID (using ruby-openid) and CAS (using rubycas-client).