Download presentation
Presentation is loading. Please wait.
1
Apache Sandesha and Apache Axis2
Jaliya Ekanayake
2
Agenda Apache Axis 1.X Current Implementation of Apache Sandesha
3
Axis 1.X Support synchronous Web service invocations
Handlers participate for header processing Fixed handler path inside the engine Engine does not support “pausing” the message context Engine does not support addressing Client Side Server Side
4
WS-RelibaleMessaging
Based on two endpoint managers Endpoint managers provide a transparent message path Client should have an addressable endpoint Web service request and the response (if any) is handled in two different sequences Delivery Assurance (INORDER etc..) Reliable Messaging Model
5
WS-RM Example Client Service RM Source Destination
CreateSequenceRequest CreateSequenceResponse Web service Request Acknowledgement Retransmissions and Ack Requests TerminateSequence Similar message exchange to send the response back
6
Sandesha Architecture
Axis Architecture Typical message exchange Architecture of Sandesha on top of Axis
7
Features and Problems WS-RelibaleMessaging is fully implemented
Interoperable with IBM, Microsoft and Systinet Difficult to integrate with WS-SecureConvercation and other WS-* that require asynchronous behaviors
8
Axis2 Engine based on one-way messaging AXIOM – Based on StAX
Modules and Handlers Message Receivers Synchronous and Asynchronous Messaging support MEP Support WS-Addressing MTOM/SWA Hot deployment
9
Axis2 Architecture Main Components of Axis
10
SOAP Processing Model Based on one-way engine. Flexible Handler Chains
SOAP Processing model of Axis2 Based on one-way engine. engine.send(); engine.receive(); Flexible Handler Chains Flows Modules Ordering of handlers using “phases” MessageReceivers MEP Support Capability to Pause Messages
11
AXIOM- Axis Object Model
Differed building Pull based parsing with StAX //create the parser XMLStreamReader parser = XMLInputFactory.newInstance() .createXMLStreamReader(new FileReader(file)); //create the builder OMXMLParserWrapper builder = OMXMLBuilderFactory .createStAXSOAPModelBuilder(OMAbstractFactory.getSOAP11Factory(), parser); //get the root element (in this case the envelope) SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
12
Flows Flows represents different message paths in Axis2 engine
Collection of handlers in a flow Global and Operation specific flows Message Flows in Axis2
13
Handlers, Phases and Modules
Same concept as in Axis1.X Phases Mechanism to arrange handlers. System defined phases E.g. TransportIn, PreDispatch, Dispatch, PostDispatch User Defined Phases Logging, Security, RM Module Collection of handlers May be in different phases axis2.xml
14
Handlers, Phases and Modules contd..
E.g. Logging Module public class LoggingModule implements Module { // initialize the module public void init(AxisConfiguration axisSystem) throws AxisFault {} // shutdown the module public void shutdown(AxisConfiguration axisSystem) throws AxisFault {} } LoggingModule.java module.xml
15
Client API Available Invocation Methods One-way messaging
Blocking with Single Channel Non-Blocking with Single Channel Blocking with Dual Channel Non –blocking with Dual Channel
16
Proposed Architecture for WS-* in Axis2
Client Out Handler Context1 Context2 Module 1 Module 2 Out Flow Client In Handler In Flow
17
Questions?
18
References: http://ws.apache.org/axis/java/architecture-guide.html
19
Thank You!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.