Web service engine
This article needs to be updated. Please help update this article to reflect recent events or newly available information. Last update: 24 January 2016 (January 2016)
Apache Axis2 is a web service engine. It is a redesign and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C.
Axis2 provides the capability to add Web services interfaces to Web applications. It can also function as a standalone application server.
Why Apache Axis2
A new architecture for Axis2 was introduced during the August 2004 Axis2 Summit in Colombo, Sri Lanka. Some concepts from Axis 1.x, like handlers etc., have been preserved in the new architecture.
Apache Axis2 supports SOAP 1.1 and SOAP 1.2, and it has integrated support for the REST style of Web services. The same business-logic implementation can offer both a WS-* style interface as well as a REST/POX style interface simultaneously.
Axis2/Java has support for Spring Framework.
Axis2/C is a high-performance Web services implementation that has been implemented with portability and ability to be embedded or hosted in Apache Httpd, Microsoft IIS or Axis Http Server. See article about Apache Axis2/C Performance (2008) (latest release occurred in 2009).
Axis2 came with new features, enhancements and industry specification implementations. Key features include:
Apache Axis2 includes support for following standards:
Below a list of features and selling points cited from the Apache axis site:
- Speed – Axis2 uses its own object model and StAX (Streaming API for XML) .
- Low memory foot print – Axis2 was designed to consume a low amount of memory.
- AXIOM – Axis2 comes with its own light-weight object model, AXIOM
- Hot Deployment – Axis2 can deploy Web services and handlers while the system is running.
- Asynchronous Web services – Axis2 supports asynchronous Web services and asynchronous Web services invocation using non-blocking clients and transports.
- MEP Support – Axis2 supports Message Exchange Patterns (MEPs) with support for basic MEPs defined in WSDL 2.0.
- Flexibility – The Axis2 architecture allows the developer to insert extensions into the engine for custom header processing, system management, etc.
- Stability – Axis2 defines a set of published interfaces.
- Component-oriented Deployment – Developers can define reusable networks of Handlers to implement common patterns of processing in applications, or to distribute to partners.
- Transport Framework – Axis2 has a simple abstraction for integrating and using Transports (i.e., senders and listeners for SOAP over protocols such as SMTP, FTP, message-oriented middleware, etc.), and the core of the engine is transport-independent.
- WSDL support – Axis2 supports the Web Services Description Language, version 1.1 and 2.0, which allows developers to build stubs to access remote services, and also to automatically export machine-readable descriptions of deployed services from Axis2.
- Add-ons – Web services specifications have been incorporated including WSS4J for security (Apache Rampart), Sandesha for messaging, Kandula which is an encapsulation of WS-Coordination, WS-AtomicTransaction and WS-BusinessActivity.
- Composition and Extensibility – Modules and phases improve support for composability and extensibility. Modules can also support new WS-* specifications. They are however not hot deployable as they change the overall behavior of the system.
Axis2 modules provide QoS features like security, reliable messaging, etc.