Summary
Axis 2 is the second generation of Apache's Web service stack that operates either standalone or as part of a J2EE servlet container. AXIS 2 is a complete rewrite of the earlier version, and supports both SOAP and REST, Web services security, reliable messaging, and achieves a significant speed boost due to its own object model and StAX parsing.
Advertisement
Axis2 is a complete redesign of Apache's Web service stack, and provides SOAP 1.1, SOAP 1.2, as well as REST support:
The same business logic implementation can offer both a WS-* style interface as well as a REST style interface simultaneously.
While performance was a concern with the earlier version, Axis2 provides significant speed boost due to its new object model, AXIOM:
Apache AXIOM is a StAX-based, XML Infoset compliant object model which supports on-demand building of the object tree. It supports a novel "pull-through" model [that] allows one to turn off the tree building and directly access the underlying pull event stream. It also has built in support for XML Optimized Packaging (XOP) and MTOM [Message Transmission Optimization Mechanism], the combination of which allows XML to carry binary data efficiently and in a transparent manner. The combination of these is an easy to use API with a very high performant architecture.
Axis2 provides many of its advanced functionality through plugin modules, such as:
WS-ReliableMessaging, supported by Apache Sandesha2
WS-Coordination and WS-AtomicTransaction, supported by Apache Kandula2
Axis2 supports HTTP, SMTP, JMS, and TCP for transports, and ADB (Axis Data Binding), XMLBeans, JibX, and JaxMe for Java-to-XML data binding.
Notwithstanding the initial hype surrounding Web services, many developers gave Web services the cold shoulder at first: SOAP proved just too complex for most application requirements, and tools were lacking in performance and development ease.
Slowly, however, Web service tools are catching up, and there is more all-around experience with XML Web services. Axis2, for instance, is the culmination of many years of experience with the earlier version of this feature-rich tool. Will the emergence of better tools and more real-world experience lead to increased developer interest in Web services?
And if you did dip your foot into Web service development, what were your the biggest challenges?
Biggest challenge was keeping the implementors and the callers synchronized, making sure they share the same understanding of functional and non-functional requirements.