Implementing advanced integration patterns with WSO2 ESB


Published on

Enterprise Integration is a means of linking the different components of an SOA system. The success of an SOA solution heavily depends on proper enterprise integration. However this is easier said than done. There are many complex requirements to this process one of which is the need to interconnect heterogeneous systems which use different message formats and protocols and these systems needs to work together to achieve the final outcome

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Implementing advanced integration patterns with WSO2 ESB

  1. 1. Implementing advanced integration patterns with WSO2 ESB Udayanga Wickramasinghe Software Engineer WSO2 ESB January 2012
  2. 2. Overview• Introduction• Demo1 – Service Chaining• Demo 2 – EIP Split/Aggregate/Clone• Demo3 – EIP Store Forward
  3. 3. SOA & ESB• SOA  The underlying structure supporting communication between services• ESB  ESB is considered as the backbone of a robust SOA  It integrates all the internal systems as well as external systems of the enterprise
  4. 4. EAI (Enterprise Application integration) SAP REST WebLogic .NET SOAP Java J2EE Java
  5. 5. Introducing WSO2 ESB...• Based on WSO2 Carbon (Modular Middleware) and Apache Synapse• Designed to be asynchronous o Based on Synapse core with non blocking I/O• Open source with commercial support o Apache Software License v2.0• Rich collection of built-in features supporting any integration scenario or EIP• Customizable by adding/removing features
  6. 6. Heterogeneous service integration• Comprehensive WS Specs and SOAP support• HTTP/S with REST/POX• Adapters for various Industry Standards • SAP • Financial Information eXchange (FIX) • Health Level 7(HL7)• VFS (File/FTP/SFTP)• JMS• SMTP• SMS
  7. 7. WSO2 ESB Components – In a nutshell..• Message and Service Mediation  Managing and transforming messages  Mediating messages coming into a specific proxy service hosted on ESB• Mediators  Simplest functional component.  Performs a predefined action on a given message• Sequences  Sequential arrangement of mediators• Proxy Services  Hosting proxy services inside ESB  Protocol switching and QoS• Endpoints  A logical representation of an actual endpoint, or else a collection of endpoints wrapped within some logic.
  8. 8. EIP Patterns with ESBEIP Patterns with ESB • Splitter • Aggregator • Message Translator • Content Enricher
  9. 9. EIP Patterns with ESB • Wire Tap • Content Based Router • Message Filter • Message Store
  10. 10. Demo #1 - Service Chaining• Invoke multiple backend services in a chain fashion for a single client request• Response of first backend invocation can be used as request of second backend invocation.. And so on…• Conditional chaining based on responses of backed services Request - Response Service 1 Request - Response Service 2 Request - Response Service 3
  11. 11. Account Balance Transfer scenario User ID •Check user validity Valid/Invalid User Validator Transfer Request User ID •Check Account Response ownership Accounts belongs to user Accounts Service Transaction Info •Perform transfer Status Transfer Processor
  12. 12. Demo #2 - Message Splitting and Aggregation• Request consists of multiple elements which can process individually• Collect and store individual messages until a complete set of related messages has been received.• Create a single message distilled from the individual messages
  13. 13. Split<soapenv:Envelope xmlns:soapenv=""> <soapenv:Header/> <soapenv:Body> <s:symbols xmlns:s=""> <s:symbol>ABC</s:symbol> <s:symbol>PQR</s:symbol> <s:symbol>XYZ</s:symbol> </s:symbols> </soapenv:Body></soapenv:Envelope> <soapenv:Envelope xmlns:soapenv=""> <soapenv:Body> <s:symbol xmlns:s="">ABC</s:symbol> </soapenv:Body> </soapenv:Envelope> <soapenv:Envelope xmlns:soapenv=""> <soapenv:Body> <s:symbol xmlns:s="">PQR</s:symbol> </soapenv:Body> </soapenv:Envelope> <soapenv:Envelope xmlns:soapenv=""> <soapenv:Body> <s:symbol xmlns:s="">XYZ</s:symbol> </soapenv:Body> </soapenv:Envelope>
  14. 14. Aggregate <soapenv:Envelope xmlns:soapenv=""> <soapenv:Body> <s:symbol xmlns:s="">ABC</s:symbol> </soapenv:Body> </soapenv:Envelope> <soapenv:Envelope xmlns:soapenv=""> <soapenv:Body> <s:symbol xmlns:s="">PQR</s:symbol> </soapenv:Body> </soapenv:Envelope> <soapenv:Envelope xmlns:soapenv=""> <soapenv:Body> <s:symbol xmlns:s="">XYZ</s:symbol> </soapenv:Body> </soapenv:Envelope><soapenv:Envelope xmlns:soapenv=""> <soapenv:Header/> <soapenv:Body> <s:symbols xmlns:s=""> <s:symbol>ABC</s:symbol> <s:symbol>PQR</s:symbol> <s:symbol>XYZ</s:symbol> </s:symbols> </soapenv:Body></soapenv:Envelope>
  15. 15. Scatter-Gather ( Clone and Aggregation ) •Check rates Ticketing ServiceA From,To Request Best Rate •Aggregate Rates Ticketing ServiceB Best Rate Response Ticketing ServiceC •Calculate Best Rate
  16. 16. Demo#3 - Dead Letter Channel• Push failed message into a message store if sending failed• Automatic/Manual retry using Forwarding message processor• Resembles to “dead letter channel” EIP• Featuring connecting to file system (transport switching)
  17. 17. Q&A
  18. 18. Selected Customers
  19. 19. WSO2 engagement model• QuickStart• Development Support• Development Services• Production Support• Turnkey Solutions • WSO2 Mobile Services Solution • WSO2 FIX Gateway Solution • WSO2 SAP Gateway Solution
  20. 20. Thank You.