Sunday, August 5, 2007

What is Axis2?

The Apache Axis2 project is a Java-based implementation of both the client and server sides of the Web services equation. Designed to take advantage of the lessons learned from Apache Axis 1.0, Apache Axis2 provides a complete object model and a modular architecture that makes it easy to add functionality and support for new Web services-related specifications and recommendations.

Axis2 enables you to easily perform the following tasks
  • Send SOAP messages
  • Receive and process SOAP messages
  • Create a Web service out of a plain Java class
  • Create implementation classes for both the server and client using WSDL
  • Easily retrieve the WSDL for a service
  • Send and receive SOAP messages with attachments
  • Create or utilize a REST-based Web service
  • Create or utilize services that take advantage of the WS-Security, WS-Reliable Messaging, WS-Addressing, WS-Coordination, and WS-Atomic Transaction recommendations
  • Use Axis2's modular structure to easily add support for new recommendations as they emerge

To understand Axis2 and what it does, you must have a good idea of the life cycle of a Web services message



The sending application creates the original SOAP message, an XML message that consists of headers and a body.

If the system requires the use of WS* recommendations such as WS-Addressing or WS-Security, the message may undergo additional processing before it leaves the sender. Once the message is ready, it is sent via a particular transport such as HTTP, JMS, and so on.

The message works its way over to the receiver, which takes in the message via the transport listener. (In other words, if the application doesn't have an HTTP listener running, it's not going to receive any HTTP messages.) Again, if the message is part of a system that requires the use of WS-Security or other recommendations, it may need additional processing for the purpose of checking credentials or decrypting sensitive information. Finally, a dispatcher determines the specific application (or other component, such as a Java method) for which the message was intended, and sends it to that component. That component is part of an overall application designed to work with the data being sent back and forth.

No comments: