Axis2, middleware for next generation web services


Published on

Axis2 ICWS 2006 Paper at Chicago

Published in: Technology, Education
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Axis2, middleware for next generation web services

    1. 1. Axis2, Middleware for Next Generation Web Services Srinath Perera
    2. 2. Next 20 Minutes <ul><li>Why Axis2? </li></ul><ul><li>What does it have? </li></ul><ul><li>Architecture </li></ul><ul><li>Core Concepts </li></ul><ul><ul><li>XML processing </li></ul></ul><ul><ul><li>Extensibility </li></ul></ul><ul><ul><li>Messaging </li></ul></ul><ul><li>Conclusion </li></ul>
    3. 3. Why Axis2? <ul><li>Web Services has changed, so are the values and expectations from WS Middleware </li></ul><ul><ul><li>Better support for Messaging, Asynchronous interactions </li></ul></ul><ul><ul><li>Performance, Need for better XML processing </li></ul></ul><ul><ul><li>Better support for WS-* specifications </li></ul></ul><ul><ul><li>New specs, and changes to specs </li></ul></ul><ul><ul><li>(Better or for worse) </li></ul></ul>
    4. 4. What does it have? <ul><li>Better XML processing model </li></ul><ul><li>Powerful messaging support </li></ul><ul><li>Seamless integration with WS-* implementations – WS-Addressing, WS-Security, WS-RM …. </li></ul><ul><li>Archive based Deployment </li></ul><ul><li>Close integration with Policy </li></ul><ul><li>HTTP, TCP, SMTP and JMS transports </li></ul><ul><li>REST, MTOM, WS-Policy … </li></ul><ul><li>Pluggable data Binding </li></ul><ul><li>WSDL based Code Generation </li></ul>
    5. 5. Architecture 10,000 foot view
    6. 6. XML processing Model <ul><li>Major decider of performance </li></ul><ul><li>Expectations </li></ul><ul><ul><li>Better performance, Streaming access to the Soap Message </li></ul></ul><ul><ul><li>Move back and forth </li></ul></ul><ul><ul><li>Easy accesses to the Soap Message, in other words Tree like (DOM like) representation </li></ul></ul>
    7. 7. How to tackle XML Processing? <ul><li>Use of XML streaming API </li></ul><ul><li>Virtual XML elements, that provide familiar interface to user </li></ul><ul><li>Underline implementation based on differed/lazy parsing (Data is read as late as possible) </li></ul><ul><li>Switching back to the pull parser </li></ul><ul><li>Use cases </li></ul><ul><ul><li>Streaming at data binding </li></ul></ul><ul><ul><li>Pass result to another Web Service </li></ul></ul><ul><ul><li>(Workflows) </li></ul></ul>
    8. 8. Extensibility <ul><li>Support for security, reliability, transactions, addressing …. </li></ul><ul><li>Axis1 approach, Handler architecture </li></ul>
    9. 9. Need bit more than Handlers <ul><li>Simpler deployment </li></ul><ul><li>Automatic configuration e.g. Security </li></ul><ul><li>What if two or more Handlers co-exists? E.g. Security and Reliable Messaging </li></ul><ul><li>Operation Injection - e.g. RM, WS-RF, WS-Sec Conversation </li></ul><ul><li>Managing Handlers automatically and transparently based on Policy </li></ul>
    10. 10. Axis2 Modules for extensibility <ul><li>Module = Handler(s), + ordering rules + Initialization logic + Operations </li></ul><ul><li>Archive based deployment, just copy it to Axis2 repository. </li></ul><ul><li>Available modules vs Engaged modules </li></ul><ul><li>WS-Policy based engagement and automatic configuration </li></ul><ul><li>Possibility of automatically adapting services with (dynamic/static) policy negotiation </li></ul>
    11. 11. Messaging <ul><li>Messaging System addresses three issues </li></ul><ul><ul><li>Complex message groupings and correlation </li></ul></ul><ul><ul><li>Blocking-Non Blocking behavior of Client /Server API </li></ul></ul><ul><ul><li>Synchronous and Asynchronous behavior of transports </li></ul></ul><ul><li>Supports for following cases </li></ul><ul><ul><li>Request response, non-blocking synchronous </li></ul></ul><ul><ul><li>Request response, non-blocking asynchronous </li></ul></ul><ul><ul><li>Request response, blocking synchronous </li></ul></ul><ul><ul><li>Request response, blocking asynchronous </li></ul></ul><ul><ul><li>One way </li></ul></ul>
    12. 12. Messaging in Axis2 <ul><li>Two Pipes, IN and OUT </li></ul><ul><li>Composing pipes at the Client (MEP clients) and Server (Message Receiver) to yield different MEPS </li></ul>
    13. 13. Messaging (Continued) <ul><li>Three Properties (non-blocking, MEP, Sync-Async) are Handled in Operation Clients and Message receivers </li></ul><ul><li>Switch between the different modes by simply setting client API parameters </li></ul><ul><li>If you are a Geek, you may even add new Operation clients/ Message Receivers </li></ul><ul><ul><li>e.g. Pub-Sub use case </li></ul></ul>
    14. 14. Architecture (Revisited)
    15. 15. Summery <ul><li>We discussed rationale for Axis2, and brief looked at the architecture </li></ul><ul><li>We discuss three main topics, XML Processing, Extending SOAP Processing Model and Messaging </li></ul><ul><li>For more information </li></ul><ul><ul><li>Official Site </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Mailing List </li></ul></ul><ul><ul><li> </li></ul></ul>