Presentation is loading. Please wait.

Presentation is loading. Please wait.

Apache Sandesha and Apache Axis2

Similar presentations


Presentation on theme: "Apache Sandesha and Apache Axis2"— Presentation transcript:

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!


Download ppt "Apache Sandesha and Apache Axis2"

Similar presentations


Ads by Google