Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.