• Share
  • Email
  • Embed
  • Like
  • Private Content
Leveraging Open Source Integration with WSO2 Enterprise Service Bus
 

Leveraging Open Source Integration with WSO2 Enterprise Service Bus

on

  • 2,335 views

This presentation at the AFITC 2009 (Air Force Information Technology Conference, August 24 - 27, 2009), Montgomery, Alabama by Sumedha Rubasinghe covered how you can deploy enterprise integration ...

This presentation at the AFITC 2009 (Air Force Information Technology Conference, August 24 - 27, 2009), Montgomery, Alabama by Sumedha Rubasinghe covered how you can deploy enterprise integration faster and easier with the WSO2 ESB.

Statistics

Views

Total Views
2,335
Views on SlideShare
2,037
Embed Views
298

Actions

Likes
1
Downloads
137
Comments
0

6 Embeds 298

http://wso2.org 281
http://wso2.com 7
http://static.slidesharecdn.com 4
http://www.slideshare.net 3
https://www.wso2.org 2
https://wso2.org 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Leveraging Open Source Integration with WSO2 Enterprise Service Bus Leveraging Open Source Integration with WSO2 Enterprise Service Bus Presentation Transcript

    • Leveraging Open Source Integration with WSO2 Enterprise Service Bus Sumedha Rubasinghe 2009 Air Force Information Technology Conference Montgomery, Atlanta
    • Agenda  The Need  Introduction  Features  Important Concepts  Extendibility  Performance  Use cases  Getting started & Help 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • Busbar 8
    • 9
    • Introducing Mattson ... Hi.. Mattson here.. I am an architect 10
    • So.. What is WSO2 ESB? 11
    • WSO2 Enterprise Service Bus  A fast,Light weight, easy-to-use Enterprise Service Bus product  Open source product with commercial support (if required)  Released with business friendly Apache License 2.0  Based on Apache Synapse  Customizable to match the needs of your Enterprise 12
    • wait.. What is Apache Synapse? How is it related to WSO2 ESB? 13
    • Apache Synapse & WSO2 ESB  Leading project developed by Apache community  Some of the key committers with in WSO2  WSO2 ESB is built on top of Apache Synapse  Synapse provides the core mediation capabilities  WSO2 ESB uses Synapse's configuration language 14
    • Screenshots 15
    • Screen shots 16
    • Screen shots 17
    • In what type of scenarios Can I use WSO2 ESB? 18
    • Usage scenarios  Link legacy files to messaging based systems  Transform CSV or EDI formats to XML  Act as a high-performance XML Gateway  Content-based routing and creating virtual services  Integrate FIX based trading systems with XML and non-XML backends  Log, trace and audit live systems 19
    • Tell me some of the main features of WSO2 ESB 20
    • WSO2 ESB Features  Message Routing  Message Transformation & Mapping  Scheduled Tasks  Orchestration  Protocol Switching  Transaction Support  Eventing 21
    • Message Routing  Act as a simple Proxy 22
    • Message Routing  Content based routing 23
    • Message Transformation & Mapping  XSLT 24
    • Message Transformation & Mapping  XQuery 25
    • Message Transformation & Mapping  E4X 26
    • Message Transformation & Mapping  Support for different file formats – EDI – flat files – CSV – COBOL/Record 27
    • Tasks  Allow the ESB to initiate work on a timed basis  Cron/simple interval  Write your own tasks 28
    • Orchestration  Aggregate 29
    • Orchestration  Disaggregate 30
    • Orchestration  Callout 31
    • Orchestration  If/Then/Else 32
    • Orchestration  BPEL Feature plug-in – Adds BPS capabilities into ESB 33
    • interesting... 34
    • Protocol Support 35
    • Protocol Support  File, (S)FTP, HTTP(S), REST, Hessian, JSON  SOAP  JMS – MQSeries, AMQP/ Apache Qpid,Apache ActiveMQ – Transactional support  Email, XMPP,FIX,TCP 36
    • Rule based Mediation  Drools 37
    • Many more features ...  Load balancing  Fail-over handling  Caching / Throttling  Registry based Clustering  WS-Reliable Messaging  FIX  CEP (Complex Event Processing)  and many more.... 38
    • What if I want more? Can I extend WSO2 ESB? Yes.. you can.. Just write a mediator.. 39
    • Mediator ..!! what is that? 40
    • Important concept - Mediator • Basic component of ESB • Mediates messages going through • Core mediators – Send, Drop, Log, Property • Filter mediators – Filter, Switch, Validate, Throttle, In, Out • Transformation mediators – XSLT, Header, Fault, XQuery • Advanced mediators – Clone, Cache, Aggregate, DBLookup, Callout 41
    • Important concept – Send Mediator • Used to send out the messages • Used in almost all the cases • Wrapped an endpoint – if no endpoint is specified, anonymous 'To' address will be taken as the EPR 42
    • Important concept – Sequence • Special mediator – List of mediators to be executed in an order • Pipeline pattern • Special sequences – main – fault 43
    • Important concept – operation modes • Act as a proxy • Main Sequence – If none of the proxy services matches the request pattern 44
    • I would like to have few more mediator examples.. 45
    • Extendibility – Java Mediator • Class implementing the Mediator interface – Or AbstractMediator class – Custom mediator is executed through the ClassMediator in ESB – Corresponding setter methods in the custom class will be set before executing the custom mediator if any properties are specified 46
    • Extendibility - POJOCommand • Extends the mediation capabilities using the well known command pattern – Class implementing the Command interface or a POJO with a void execute() method – execute() method will be invoked using the Command interface or by using reflection – Sets the properties before execution and retrieves the properties after execution 47
    • Extendibility – Script Mediator • Enables scripting for extending mediation • Supports all the Apache BSF scripting languages – JRuby, Jython, Groovy, Java Script • Embed the script inline or can be referred to a separate script file with the function name to be executed 48
    • Extendibility – Spring Mediator • Spring configurations to extend the mediation • Spring bean must implement the Mediator interface • Refer to the spring application context using the key • The Spring bean is managed by the spring context at mediation time 49
    • Extending WSO2 ESB  Registry as a repository – Loading configuration from external registry  New Transports 50
    • So how does all of these fit together?... What happens with-in WSO2 ESB? 51
    • Architecture 52
    • Runtime 53
    • Deployment 54
    • Performance  Completely asynchronous architecture internally  Streaming support for messages  100% error free and zero memory leaks under heavy load  Up to 4500tps out-of-the-box for proxying – Intel(R) Xeon(TM) 3.20GHz 2MB Cache – Dual Core - 2 CPU system – 2GB RAM – 1Gb Ethernet  http://wso2.org/library/3740 55
    • Performance  http://wso2.org/library/3740 56
    • Non-Blocking IO Synapse Incoming req Request Thread1 processing Outgoing req Socket open Socket open TIME TIME TIME TIME Incoming resp Response Thread2 processing Outgoing resp This model means: 1. Synapse threads never blocked during normal processing 2. Number of sockets open >> number of threads 57
    • Monitoring  Monitor System statistics  Running logs  Message Tracing  Dynamically configurable Logger  Exposes statistics via JMX  Dashboard – Google Gadgets 58
    • I would like to see some Use cases where all of these are applied... 59
    • Use Case 1 • Problem – I want to send a notification email whenever there is a request to a particular service which satisfies a set of conditions over the request • Solution – Filter the messages over the request and evaluate the conditions – If the conditions evaluate to true then clone the message – Send the request to the desired endpoint while forwarding a copy (may be after transformation) 60 through the mail transport
    • Use Case 1 61
    • Use Case 1 - configuration 62
    • Use Case 2 • Problem – I have a service exposed over HTTP transport and now I want the same service to be accessed through JMS • Solution – Expose a proxy service with JMS (and what ever transport) and switch the transport to HTTP (if not http) – Invoke the actual service with HTTP transport – Switch the transport back to JMS of the response message 63
    • Use Case 2 64
    • Use Case 2 - Configuration 65
    • Use Case 3 • Problem – I want the ESB to invoke several services of the same type for a request, evaluate all the responses and respond me with the best one • Solution – Clone the message and send the requests to different endpoints – Get the responses from all services and aggregate the responses – Select the best out of the aggregated responses and respond to the client 66
    • Use Case 3 67
    • Use Case 3 - Configuration 68
    • Use Case 3 - Configuration 69
    • Use Case 3 - Configuration 70
    • Use Case 3 - Configuration 71
    • Use Case 3 - Configuration 72
    • Use Case 4 • Problem – I have a non secure service and now I want to expose this service with security • Solution – Expose a proxy service – Add security to that proxy service and specify the policy on which you want to enforce security – Invoke the actual service without security by removing security headers in the request comes to the proxy – Add security for responses from the actual service 73 to client
    • Use Case 4 74
    • Use Case 4 - Configuration 75
    • Use Case 5 - FIX to HTTP transport http://wso2.org/library/3837 76
    • Use Case 6 - Eventing •http://wso2.org/library/articles/fusion-eventing-soa •http://wso2.org/library/articles/fusion-eventing-soa-part-2-eventing-using- synapse-wso2esb 77
    • Use Case 7 78
    • WSO2 Product Platform 79
    • That's lot of information... Now I would like to try these out myself. How do I get started? 80
    • How to get started?  Download binary distribution from http://wso2.org/projects/esb/java  Latest is v2.1.0  Unzip • Run bin/wso2server.sh (on Unix) or bin/wso2server.bat (on Windows) • Management console – https://localhost:9443/carbon – admin/admin 81
    • Help.. I messed it up... 82
    • How to get help?  Online forum  Active community of external users  Ample free documentation on wso2.org  If needed, we provided commercial support on – Getting started – Deployment – Custom development – Production support 83
    • I would like to have some URLs for reference. 84
    • Useful references  WSO2 Oxygen Tank for Web Service Developers – http://wso2.org  WSO2 ESB project page – http://wso2.org/projects/esb  Performance testing – http://wso2.org/library/3740 – http://wso2.org/library/2259 – http://wso2.org/library/1721  Apache Synapse – http://synapse.apache.org 85
    • Summary •Hypothetical Enterprise •Brief Introduction on WSO2 ESB •Features •Important concepts – Mediators – Sequence •Extendibility •Use cases •Getting started & Help 86
    • Thank you sumedha@wso2.com (on behalf of WSO2 ESB team) 87