"Axis2 in Action" is a three-day training course that provides in-depth
coverage of the Apache Axis2 web services framework. Material covered includes
the basics of Axis2
client and server development using Axis Data Binding (ADB), comparisons with
other data binding alternatives (XMLBeans, JiBX, and JAXB), start-from-code and
start-from-WSDL service definition, best practices for web service schema
design, security using both SSL and Rampart/WS-Security, and advanced details of
working with Axis2. Facilitator Dennis Sosnoski is one of the committers for the
Apache Axis2 project, and also the primary developer for the JiBX data binding
framework and the Jibx2Wsdl WSDL generation tool, so he's able to present unique
insights into both the structure and usage of the Axis2 framework and related
tools.
This Axis2 training course is a mixture of presentation, demonstration, and
hands-on development, and is limited to a maximum of 12 students in order to
assure sufficient attention to each student's needs. The outline below lists the
most common options, including several advanced features. The course can also be
customized to exclude technologies that are not relevant to a company's needs,
or to include other technologies (such as added depth of coverage in particular
areas).
Part I – Getting started
- The changing world of Web services
- Axis2 architecture
- Getting started with client-side development
- Axis2 server configuration and setup
- Getting started with server-side development
Assignments:
- ADB client for remote service
- ADB client and server
Part II – Working with data binding
- Monitoring and controlling services
- Debugging client and server code
- Data binding alternatives:
- XMLBeans principles and usage
- JAXB principles and usage
- JiBX principles and usage
- Strengths and weaknesses of alternatives
- Fault handling in Axis2
Assignments:
- Extending and debugging client/service code
- XMLBeans client and server
- JAXB client and server
- JiBX client and server
- Adding Fault handling to ADB assignment
Part III – WSDL-first service specification
- Understanding WSDL:
- Basic structure and styles
- Analyzing WSDL
- Schema structure and usage:
- Schema for developers
- Tools for working with schema
- Issues in schema for web services:
- Interoperability problem areas
- Service evolution issues
- Best practices for web service schemas
- WSDL-first service development
- Issues with WSDL-first approach
Assignments:
- Schema construction and document validation
- WSDL construction and validation
- Developing the service and client
Part IV – Code-first service specification
- Java2WSDL usage
- Jibx2Wsdl usage:
- Operation and features
- Customizations structure
- Building clean WSDL+schema from code
- Issues with code-first approach
Assignments:
- Java2WSDL service creation
- Jibx2Wsdl service creation
- Customizing Jibx2Wsdl generation
- Implementing the service and client
Part V – Dealing with performance
- SOAP vs. Java RMI performance comparison
- Data binding performance impact
- Structuring operations and XML for performance
- Using attachments for performance
- Using GZip or FastInfoset
Assignments:
- Restructuring service and XML for performance
- Adding attachment support to client and server
Part VI – Securing web services
- Understanding keys and certificates
- SSL for point-to-point security
- WS-Security:
- Rampart installation and configuration
- Understanding WS-Policy
- Implementing common options
- Performance costs of security
- Choosing appropriate security
Assignments:
- Enabling SSL security
- Enabling WS-Security
Part VII – Advanced features
- Axis2 handlers and modules
- Going beyond synchronous HTTP:
- True asynchronous with client listener
- Configuring and using JMS transport
- Implementing publish-subscribe patterns
- WS-ReliableMessaging with Sandesha2
- Server clustering support
Assignments:
- Request authorization module client and server
- JMS client implementation
- Sandesha2 configuration and usage