Welcome to Apache Axis2

Apache Axis2 is an implementation of the Simple Object Access Protocol (SOAP) Recommendation from the W3C. Axis2 can be used to provide and consume Web Services.

From the W3C recommendation:

"SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing remote procedure calls and responses."

Apache Axis2 is an effort to re-implement both Axis/Java and Axis/C++ on a new architecture. Building upon the "handler chain" model developed in Axis1, Axis2 introduces a more flexible pipeline architecture which lends itself to greater modularity and extensibility. This extensibility will allow Axis2 to act as a foundation for a growing constellation of associated Web Services protocols including:

Latest Release

12 August 2005 - Apache Axis2 Version 0.91 Released! (Download 0.91)

Axis2 is becoming more and more stable. Download it! This 0.91 release is a glimpse of 1.0 that should be comming soon. This 0.91 release contains the following additional features:

We are getting closer to a 1.0 release, the remaining tasks to be completed before a 1.0 release include: SOAP 1.1 and 1.2 validation, JAX-RPC 1.1/2.0 compliance, Complete XML infoset support for AXIOM, implementation of JMS transport, and Web Service Policy support.

Axis2 Background and Motivation

Axis1 was built under the assumption that other protocols such as WS-ReliableMessaging would be integrated into Axis1's handler chain. Axis1 had the concept of a MessageContext and a chain of transport, service, and global message handlers, but Axis1 lacked a clear extension architecture to enable clean composition of such layers. One of the key motivations for Axis2 is to provide a clean and simple environment for implementations of associated WS standards such as Apache Sandesha and Apache WSS4J. Implementations of associated standards should be able to easily interface with the base SOAP Message handling system. In summary, Axis2 has a more modular and flexible message handling pipeline, it focuses on the details of message handling and provides clear hooks for implementations of associated Web Services standards and protocols. This evolution will allow Axis to be a foundational technology for next generation Web Services.

Axis2 introduces a representation for SOAP messages called AXIOM (AXIs Object Model). AXIOM consists of two parts: a complete XML Infoset representation and a SOAP Infoset representation. The XML Infoset representation provides a JDOM-esque API built atop a deferred model via a StAX-based (Streaming API for XML) pull parsing API. A key feature of AXIOM is that it allows one to stop building the XML tree and just access the pull stream directly; thus enabling both maximum flexibility and maximum performance. This approach allows Axis2 to support multiple levels of abstraction for consuming and offering Web services: using plain AXIOM, using generated code and statically data-bound data types and so on. Developers with demanding performance requirements will be able to use AXIOM to create highly scaleable Web Services.

A third shift in Axis 2 is the de-emphasis of RPC-oriented Web Services and a shift towards more document-oriented, message style asynchronous service interactions. With Axis2, clients can interact with servers in a number of ways, and the client API provides both a blocking and non-blocking API. At the time of Axis1's design, RPC-style, synchronous, request-response interactions were the order of the day for Web services. Today service interactions are much more message-oriented and exploit many different message exchange patterns. The Axis2 engine architecture is careful to not build in any assumptions of request-response patterns to ensure that it can be used easily to support arbitrary message exchange patterns. Don't worry,you'll still be able to use Axis2 like you used Axis1, you'll just have a richer set of options for client-server interaction.

Archived News

02 July 2005 - Apache Axis2 Version 0.9 Released! (Download 0.9)

Axis2 is taking shape. Download it! This 0.9 release is a glimpse of 1.0 that should be comming soon. This 0.9 release contains the following additional features:

07 June 2005 - Apache Axis2 Milestone 2 (M2) Released (Download M2)

Apache Axis2 is starting to take shape, features implemented in this second milestone release are:

This release also includes tools such as an administraion web application, and three Eclipse plug-ins: WSDL2WS, Service Archive Wizard, and Module Archive Wizard.

24 February 2005 - Apache Axis2 Milestone 1 (M1) Released (Download M1)

This first milestone release of Axis2 includes the following features: