Apache Axis is an implementation of the SOAP ("Simple Object Access Protocol") submission to W3C. SOAP is a lightweight protocol for exchanging structured 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.
What is Axis
Axis is essentially a
SOAP engine -- a framework for
constructing SOAP processors such as clients, servers, gateways, etc.
The current version of Axis is written in Java, but a C++
implementation of the client side of Axis is being developed.
But Axis isn't just a SOAP engine -- it also includes:
- a simple stand-alone server,
- a server which plugs into servlet engines such as Tomcat,
- extensive support for the Web Service Description Language (WSDL),
- emitter tooling that generates Java classes from WSDL.
- some sample programs, and
- a tool for monitoring TCP/IP packets.
Axis is the third generation of Apache SOAP (which began at IBM as
"SOAP4J"). In late 2000, the committers of Apache SOAP v2 began
discussing how to make the engine much more flexible, configurable, and
able to handle both SOAP and the upcoming XML Protocol specification
from the W3C.
After a little while, it became clear that a ground-up
rearchitecture was required. Several of the v2 committers proposed very
similar designs, all based around configurable "chains" of message
"handlers" which would implement small bits of functionality in a very
flexible and composable manner.
After months of continued discussion and coding effort in this direction, Axis now delivers the following key features:
-
Speed. Axis uses SAX (event-based) parsing to acheive significantly greater speed than earlier versions of Apache SOAP.
-
Flexibility. The Axis architecture gives the developer complete
freedom to insert extensions into the engine for custom header
processing, system management, or anything else you can imagine.
-
Stability. Axis defines a set of published interfaces which change relatively slowly compared to the rest of Axis.
-
Component-oriented deployment. You can easily define reusable
networks of Handlers to implement common patterns of processing for
your applications, or to distribute to partners.
-
Transport framework. We have a clean and simple abstraction for
designing transports (i.e., senders and listeners for SOAP over various
protocols such as SMTP, FTP, message-oriented middleware, etc), and the
core of the engine is completely transport-independent.
-
WSDL support. Axis supports the Web Service Description Language,
version 1.1, which allows you to easily build stubs to access remote
services, and also to automatically export machine-readable
descriptions of your deployed services from Axis.
We hope you enjoy using Axis. Please note that this is an
open-source effort - if you feel the code could use some new features
or fixes, please get involved and lend a hand! The Axis developer
community welcomes your participation. And in case you're wondering
what Axis stands for, it's Apache EXtensible Interaction System - a fancy way of implying it's a very configurable SOAP engine.
What's in this release?