Axis Internal Message Exchance Interfaces
Contents
1 Introduction
1.1 Disclaimer
1.2 Purpose
1.3 Scope
1.4 Feature Overview
2 Phased Delivery
3 Functional Description
3.1 Message Exchange
3.2 Message Correlation
3.3 Message Exchange Events
3.4 Message Exchange Lifecycle
3.5 Interface Specifications
4 Development Model
4.1 Base Implementation
4.2 Creating MessageExchange implementations using MessageExchangeProvider
4.3 Creating Custom MessageExchange implementations
4.4 Using HandlerMessageExchange to wrap legacy Axis handlers
4.5 Creating custom ReceivedMessageDispatchPolicy implementations
4.6 Creating custom MessageExchangeCorrelator implementations
4.7 Creating custom MessageExchangeCorrelatorService implementations
4.8 Implementing custom MessageExchange events
5 Understanding how Axis uses the IME interfaces
5.1 Breakdown of the Axis IME architecture
5.2 Transports and Providers
5.3 AxisEngine, AxisClient and AxisServer
5.4 Deployment and configuration
7 Outstanding issues
1 Introduction
1.1 Disclaimer
This document is a work in progress.
1.2 Purpose
Apache Axis provides robust support for synchronous style communications with RPC
and document-oriented web services. Support for asynchronous invocation, however, is
a feature that is not available in the current release of Axis. Goals of this proposal
are documented in the list below.
- Ability to receive unsolicited messages asynchronously from the client thus
enabling Notification and Solicit/Response operation styles
- Ability to perform work while the web service interaction is being processed
- Ability to have multiple invocations outstanding from the same client thread
- Ability to use different transports for inbound and outbound communications
1.3 Scope
The definition and implementation of an asynchronous message exchange subsystem
for Axis that must resolve the following issues:
- Axis 1.0's current reliance on the org.apache.axis.Handler interface for communication
through each layered subsystem does not account properly for asynchronous request/response,
notification, and solicit/response operations.
- Axis 1.0's current implementation does not allow for additional work to be performed
while the web service interaction is being processed, nor does it allow multiple outstanding
invocations from the same client thread.
- Axis 1.0's current implementation requires the use of the same transport for inbound
and outbound communications.
1.4 Feature Overview
2 Phased Delivery
3 Functional Description
3.1 Message Exchange
3.2 Message Correlation
3.3 Message Exchange Events
3.4 Message Exchange Lifecycle
3.5 Interface Specifications
4 Development Model
4.1 Base Implementation
4.2 Creating MessageExchange implementations using MessageExchangeProvider
4.3 Creating Custom MessageExchange implementations
4.4 Using HandlerMessageExchange to wrap legacy Axis handlers
4.5 Creating custom ReceivedMessageDispatchPolicy implementations
4.6 Creating custom MessageExchangeCorrelator implementations
4.7 Creating custom MessageExchangeCorrelatorService implementations
4.8 Implementing custom MessageExchange events
5 Understanding how Axis uses the IME interfaces
5.1 Breakdown of the Axis IME architecture
5.2 Transports and Providers
5.3 AxisEngine, AxisClient and AxisServer
5.4 Deployment and configuration
7 Outstanding issues