Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introducing Axis2 Ajith Ranabahu

Similar presentations


Presentation on theme: "Introducing Axis2 Ajith Ranabahu"— Presentation transcript:

1 Introducing Axis2 Ajith Ranabahu
Lanka Software Foundation and Apache Software Foundation

2 The Axis2 Team (in alphabetical order)
Committers Contributors Ajith Ranabahu Aleksander Slominski Ashutosh Shahi Chathura Herath Dasarath Weeratunga Deepal Jayasinghe Davanum Srinivas Eran Chinthaka Glen Daniels Jaliya Ekanayake Jeyachandra Rao Sanjiva Weerawarana Srinath Perera Thilina Gunaratne Venkat Reddy Anne Thomas Manes Chamil Thanthirimudalige Chengshin Lee Geoffrey Fox Gulliame Sauthier Paul Freemantle Shawn Dahlen Steve Loughran Tom Jordahl Arrange the names in alphabetical order And a lot more

3 Agenda Introduction and Motivation The “big picture”
Key Features of Axis2 High Performance XML Processing Model Extensible Messaging Engine Pluggable Module Architecture Improved Deployment Model New Client API Optional Pluggable Data Binding REST Support Other Improvements Summary

4 Introduction – What is SOAP ?
An XML envelope to carry application messages <s:Envelope> <s:Body> Your XML Goes Here </s:Body> </s:Envelope> Highly extensible to layer QoS (security, reliability, etc.) <s:Header> Extension data </s:Header> Defined abstractly – supports any serialization

5 Introduction – What are Web Services ?
Services based on SOAP over HTTP Governed by WSDL, UDDI and other WS-* specifications A linking mechanism for heterogeneous systems

6 Introduction – SOAP Stacks
Initial model – SOAP carries RPC requests & responses in XML form Apache SOAP Allow access to headers for extensibility Apache Axis Modular platform to support Web services architecture Apache Axis2

7 A Quick Look At SOAP Stacks First Generation :: Apache SOAP
First Apache driven SOAP stack Apache SOAP Based on DOM Slower and memory intensive

8 A Quick Look … Second Generation :: AXIS
Based on SAX Introduced the handler architecture for SOAP stacks Faster and better than Apache SOAP Wide Industry Acceptance Integrated to major application servers like WebSphere and JBoss Highly Interoperable

9 Motivation for Axis2 Limitations of handler architecture
Inherent request/response nature Need for more document centric interactions Need for more asynchrony Need to support new specifications like WSDL 2.0 and various QoS protocols

10 Axis2 Architecture - The “big picture”
The Component View StAX AXIOM Module Framework (Modules, Handlers and Phases) Engine Registry Transport and Data binding Core

11 Axis2 “big picture” (Cont..)
The “Dynamic” View Application Transport Phase Z Phase Y Phase X XML Message Engine Receiver AXIOM representation

12 Key Features of Axis2 New XML Infoset Representation
Deferred building StAX integrated Extensible Messaging Engine Pluggable Module Architecture Improved Deployment Model New Client API Optional Pluggable Data Binding REST Support

13 New XML Infoset Representation

14 New XML Infoset Representation
Known as AXIOM (Axis Object Model) Yet another XML object model API is more like a simplified DOM Fundamental Difference ? Objects are made “on demand” using a pull model Allows direct access to the underlying pull stream with or without building the tree Support for storing binary values

15 New XML Infoset Representation (Cont…)
API also provides a StAX parser interface at any element Allows the event based navigation of the OM tree.

16 New XML Infoset Representation (Cont…)
AXIOM Pull Event Stream Push Event Stream Programmatical Creation

17 New XML Infoset Representation (cont..)
In built binary storage support Can store binary (unchanged) Natively supports XOP/MTOM XOP? MTOM?? XOP - XML Optimized Packaging MTOM - Message Transfer Optimization Mechanism A way to send binary content without base64 encoding Put some XOP explanation here

18 Use of AXIOM in Axis2 AXIOM is the primary means of representing/manipulating the XML message inside Axis

19 Extensible Messaging Engine

20 Extensible Messaging Engine
It is the “core” A pure SOAP processor Not aware of any java web service specifications (e.g. JAX-RPC) Contains A Context Hierarchy Concept of descriptors and contexts Phases Phases ? Have to add a context herarchy picture here

21 The Messaging Engine - Phases
Concept of Phases A phase is a particular stage in execution. E.g. pre-dispatch, Transport Each Phase contains a group of Handlers Handlers are linked to rules that say where the handler should be placed A phase represents a particular stage of execution

22 The Messaging Engine - Phases (Cont…)
Standard Phases Transport phase Pre-dispatch phase Dispatch phase Post-dispatch phase Policy determination phase

23 The Messaging Engine - Pipe view
Can be viewed as a pipe

24 The Messaging Engine - Message Exchange Patterns
Describes the exchange pattern of SOAP messages per given operation. E.g. In – Out In Only In – In – Out ! WSDL 2.0 defines 8 standard MEPs.

25 The Messaging Engine - Message Exchange Patterns (cont..)
Axis2 supports MEPs with the piped model of the engine Can be easily extended to support custom MEPs

26 The Messaging Engine – Contexts and Descriptors
Places to keep static and dynamic run time information Descriptors Keeps static information E.g. deployment descriptor parameters Contexts Keeps dynamic information

27 The Messaging Engine – Contexts and Descriptors
Configuration Context Service Context Operation Context Message Context Axis Configuration Service Description Operation Description Message Description

28 Pluggable Module Architecture

29 Pluggable Modules Extensions for the server
Meant to provide a specific functionality E.g. Security,Reliability etc Consists of Handlers Special Module class A Descriptor (module.xml)

30 Pluggable Modules (Cont..)
Archived to make a single bundle Known as a “.mar” file Concept of Engaging Engaging a module means activating it Can be done Per System Per Service Per Operation

31 The Messaging Engine – Detailed Components View
Registry Modules Engine Contexts

32 Pluggable Modules - Example
The WS-Addressing module Contains Addressing-in handler Placed in the pre-dispatch phase – in pipe Addressing out handler Placed in the message-out – out pipe

33 Improved Deployment Model

34 Improved Deployment Model
Faster and Easier Deployment Service Archive files (.aar files) A collection of resources needed for a service Includes Service implementation Handlers (optional) Service descriptor (service.xml)

35 Improved Deployment Model (Cont…)
Hot Deployment “Drop in” deployment Uploaded through File system Axis2 web application

36 New Client API

37 New Client API Supports an Asynchronous programming style
Concept of callbacks for the client Can handle both transport dependent and transport independent asynchrony. Based on the “MEP Client” Can be extended to support custom MEPs

38 Pluggable Data Binding

39 Pluggable Data Binding
How to provide data binding support ? Use a well established framework Avoid reinventing the wheel! Flexible Adds more functionality E.g. XMLBeans supports the complete XML Schema Features an API that can bind to another data binding framework

40 Pluggable Data Binding (Cont …)
Currently supported frameworks XMLBeans We also plan to Axis data binding framework by default. Sufficient for simple data binding needs

41 REST Support

42 REST Support in Axis Axis2 has built in support for REST
A system wide switch to enable REST Selection of messages depending on SOAPAction / Content type All REST messages will be treated similarly to SOAP messages inside the system

43 Other Improvements Support for transports other than HTTP
Extensive tool support Other JVM languages Groovy

44 Improvements Tools Complex operations need user friendly tools
Service and module archive generator tools Axis Administration web application Improved WSDL2Code tool IDE plug-ins

45 Improvements (cont ..) Other transports
SMTP / POP based transport TCP based transport JMS based transport Can easily switch between different transports

46 Improvements (Cont…) Support for other languages
Ability to write implementations in various JVM languages Groovy Client stub generation for languages other than Java IKVM based C# and VB.Net code ! (experimental)

47 Summary Introduction and Motivation Key Features of Axis2
High Performance XML Processing Model Extensible Messaging Engine Pluggable Module Architecture Improved Deployment Model New Client API Optional Pluggable Data Binding REST Support Summary with points

48 You Can Help! Join axis-dev (filter on “[axis2]”)
Weekly IRC chats on Wednesday or Thursday. Submit ideas, code Become a committer

49 Questions ?

50 Thank you


Download ppt "Introducing Axis2 Ajith Ranabahu"

Similar presentations


Ads by Google