InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Apache Axis2 1.1 Released

Posted by Stefan Tilkov on Nov 20, 2006

Sections
Development,
Enterprise Architecture
Topics
SOA ,
Java ,
Web Services
Tags
WS-Policy ,
Apache Axis ,
Web services ,
WS-Security ,
WSO2

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.

  • This article is part of a featured topic series on SOA

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.