WSO2

Courses

Developing Web Services with SOAP and Apache Axis2/C

Request Info

Course Summary:

Apache Axis2/C is a Web services engine based on Axis2 architecture, and is a foundational technology for next generation Web services. Apache Axis2/C has a modular and flexible message handling pipeline that makes it an extensible and robust Web services engine.

This course focuses on the details of message handling and provides clear hooks for implementations of associated Web services standards and protocols.

Course Objectives:

  • Deep understanding of SOAP, WSDL, WS-Addressing
  • Understanding of Service Oriented Architecture (SOA) and how to use Axis2/C in SOA
  • Better understanding of Web services security and reliability
  • How to install and configure Apache Axis2/C
  • How to create and consume Web services
  • Ability to generate Services and Clients using tools
  • How to make interactions secure and reliable
  • Understanding Axis2/C architecture
  • Understanding all components/features of Axis2/C: AXIOM, Handlers, Phases, Policy, Contexts

Duration:

  • Four days

Audience:

  • This course is suitable for developers with some understanding of Web services technologies and Service Oriented Architecture (SOA) concepts.

Prerequisites:

  • To benefit from this Axis2/C training, the delegates should be proficient in C and XML, and have a basic knowledge of: SOAP, WSDL, Web services, and SOA.

Program:

  • Introduction, course outline, objectives
  • Recap on SOA and SOAP
    • SOA aims
    • Loose coupling
    • SOAP 1.1, SOAP 1.2
    • Examples of SOAP messages
    • Use a tool to send and receive SOAP messages
  • Introduction to Apache Axis2/C
    • Overview
    • Aims
    • Top level components and flows
    • Demonstration
    • Repository
    • Install, start-up and test Apache Axis2/C
    • Explore repository, services, modules, axis2.xml
  • Introduction to WS-Addressing
    • Why WS-A?
    • Asynchronous model
    • Endpoint References
    • Reference Parameters
  • Creating services with Apache Axis2/C
    • Deploying a C service
    • XML-based services vs. Bound services
    • Creating a service with Apache Axis2/C, and testing it
    • Simple Axis server vs. HTTPD module
  • Asynchronous Web Services
    • Reply-To
    • HTTP 202
    • Tracing asynchronous interactions
  • WSDL
    • WSDL 1.1 vs WSDL2
    • Tools for creating and reading WSDL
    • Contract first development
  • Building a Web service contract first
  • Creating Stubs and Skeletons
  • Building an end-to-end service from WSDL
  • Axis Data Binding
    • Introduction to ADB
    • Exploring ADB
  • AXIOM
    • Looking at AXIOM and STaX
    • Detailed examples
    • Building XML structures dynamically
    • Creating and parsing XML using AXIOM
  • Dynamic clients
    • Using the ServiceClient API
    • Calling services using AXIOM and ServiceClient
  • Tooling
    • Linux make system
    • Windows make system
    • Using Apache Axis2/C on Windows with MS Visual Studio
  • REST
    • REST arguments and positioning
    • Using Apache Axis2 with GET and POST
  • MTOM - building and using binary attachments with Apache Axis2
    • Build a binary service and a client
    • Trace with/without optimization
  • More internals of Apache Axis2
    • Modules, phases, handlers
    • Service and module loading with dlopen
    • Description and Context hierarchies
    • Building and testing a simple Logging Module
  • Advanced Web Services
    • Overview of the full WS-platform
  • Introduction to WS Security
    • Authentication
    • Signature
    • Encryption
    • Efficiency of WSS vs HTTPS
    • Mixing HTTPS and WSS
    • Securing a Web Service with WSS Tracing flows
  • Introduction to WS Reliable Messaging
    • Simple flows
    • Reliable WS with Apache Sandesha2/C
    • Tracing flows
  • Introduction to WS-Policy and MetadataExchange
    • Why Policy?
    • How Policy fits into Axis2/C
    • Policy driven secure client
  • Wrap up talk
    • Tradeoffs / Best Practices
    • Interoperability issues
    • Production deployment issues / tips
    • Future
Request Info