SlideShare a Scribd company logo
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

More Related Content

What's hot (20)

PDF
Panasas pNFS Status (September 2010)
Panasas
 
PDF
9P Overview
Eric Van Hensbergen
 
PDF
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
Ryousei Takano
 
PPTX
bfarm-v2
Zeus G
 
PDF
WebSphere MQ tutorial
Joseph's WebSphere Library
 
PDF
Advanced Components on Top of L4Re
Vasily Sartakov
 
PDF
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
Ryousei Takano
 
PDF
Memory, IPC and L4Re
Vasily Sartakov
 
PDF
Amd accelerated computing -ufrj
Roberto Brandao
 
PPT
IBM Websphere MQ Basic
PRASAD BHATKAR
 
PDF
DataPower-MQ Integration Deep Dive
Morag Hughson
 
PDF
Evaluating the networking performance of linux based home router platforms fo...
Alpen-Adria-Universität
 
PDF
Messaging in the Cloud - AMQP, RabbitMQ and Spring
Eberhard Wolff
 
PDF
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
Ravi Yogesh
 
PDF
Windows Server 2012 Hyper-V Networking Evolved
Microsoft TechNet - Belgium and Luxembourg
 
PPT
Syllable OS
karla tabaco
 
PDF
[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...
npinto
 
PDF
[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...
npinto
 
PPT
WebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
ecorptraining2
 
Panasas pNFS Status (September 2010)
Panasas
 
9P Overview
Eric Van Hensbergen
 
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
Ryousei Takano
 
bfarm-v2
Zeus G
 
WebSphere MQ tutorial
Joseph's WebSphere Library
 
Advanced Components on Top of L4Re
Vasily Sartakov
 
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
Ryousei Takano
 
Memory, IPC and L4Re
Vasily Sartakov
 
Amd accelerated computing -ufrj
Roberto Brandao
 
IBM Websphere MQ Basic
PRASAD BHATKAR
 
DataPower-MQ Integration Deep Dive
Morag Hughson
 
Evaluating the networking performance of linux based home router platforms fo...
Alpen-Adria-Universität
 
Messaging in the Cloud - AMQP, RabbitMQ and Spring
Eberhard Wolff
 
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
Ravi Yogesh
 
Windows Server 2012 Hyper-V Networking Evolved
Microsoft TechNet - Belgium and Luxembourg
 
Syllable OS
karla tabaco
 
[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...
npinto
 
[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...
npinto
 
WebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
ecorptraining2
 

Viewers also liked (6)

PPTX
FHIR Server Design Review
Brian Postlethwaite
 
PPTX
FHIR - Feel the Fire - 1
Jayant Singh
 
PPTX
How to Assess the ROI of Your Population Health Initiative
Health Catalyst
 
PPT
Patient satisfaction
Nc Das
 
PPTX
In Pursuit of the Patient Stratification Gold Standard: Getting There with He...
Health Catalyst
 
PPTX
Healthcare Information Systems - Past, Present, and Future
Health Catalyst
 
FHIR Server Design Review
Brian Postlethwaite
 
FHIR - Feel the Fire - 1
Jayant Singh
 
How to Assess the ROI of Your Population Health Initiative
Health Catalyst
 
Patient satisfaction
Nc Das
 
In Pursuit of the Patient Stratification Gold Standard: Getting There with He...
Health Catalyst
 
Healthcare Information Systems - Past, Present, and Future
Health Catalyst
 
Ad

Similar to Leveraging Open Source Integration with WSO2 Enterprise Service Bus (20)

PDF
Open Source Integration with WSO2 Enterprise Service Bus
sumedha.r
 
PDF
WSO2 ESB Webinar 01 Sept 2009
WSO2
 
PDF
Enterprise Use Case - Selecting an Enterprise Service Bus
WSO2
 
PDF
Wso2 integration platform deep dive eu con 2016
Chanaka Fernando
 
PPTX
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2
 
PDF
The Evolution of Integration
Paul Fremantle
 
PDF
Wso2 esb 5.0.0 product release webinar
Chanaka Fernando
 
PDF
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
PDF
ESB and SOA
WSO2
 
PDF
Enterprise Integration with the WSO2 ESB
WSO2
 
PDF
Implementing advanced integration patterns with WSO2 ESB
WSO2
 
PDF
WSO2 Product Release webinar - The WSO2 ESB 4.8.0
WSO2
 
PDF
ESB Evaluation Framework
WSO2
 
PDF
USP presentation of CHOReOS @ FISL Conference
choreos
 
PDF
WSO2 Enterprise Service Bus - Product Overview
WSO2
 
PDF
Better Enterprise Integration With the WSO2 ESB 4.5.1
WSO2
 
PPTX
High Volume Web API Management with WSO2 ESB
WSO2
 
PDF
Maximize Messaging and Performance and Lowering Infrastructure Footprint
WSO2
 
Open Source Integration with WSO2 Enterprise Service Bus
sumedha.r
 
WSO2 ESB Webinar 01 Sept 2009
WSO2
 
Enterprise Use Case - Selecting an Enterprise Service Bus
WSO2
 
Wso2 integration platform deep dive eu con 2016
Chanaka Fernando
 
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2
 
The Evolution of Integration
Paul Fremantle
 
Wso2 esb 5.0.0 product release webinar
Chanaka Fernando
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
ESB and SOA
WSO2
 
Enterprise Integration with the WSO2 ESB
WSO2
 
Implementing advanced integration patterns with WSO2 ESB
WSO2
 
WSO2 Product Release webinar - The WSO2 ESB 4.8.0
WSO2
 
ESB Evaluation Framework
WSO2
 
USP presentation of CHOReOS @ FISL Conference
choreos
 
WSO2 Enterprise Service Bus - Product Overview
WSO2
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
WSO2
 
High Volume Web API Management with WSO2 ESB
WSO2
 
Maximize Messaging and Performance and Lowering Infrastructure Footprint
WSO2
 
Ad

More from WSO2 (20)

PDF
Quantum Threats Are Closer Than You Think – Act Now to Stay Secure
WSO2
 
PDF
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
WSO2
 
PDF
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
PDF
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
WSO2
 
PDF
Platformless Modernization with Choreo.pdf
WSO2
 
PDF
Application Modernization with Choreo for the BFSI Sector
WSO2
 
PDF
Choreo - The AI-Native Internal Developer Platform as a Service: Overview
WSO2
 
PDF
[Roundtable] Choreo - The AI-Native Internal Developer Platform as a Service
WSO2
 
PPTX
WSO2Con 2025 - Building AI Applications in the Enterprise (Part 1)
WSO2
 
PPTX
WSO2Con 2025 - Building Secure Business Customer and Partner Experience (B2B)...
WSO2
 
PPTX
WSO2Con 2025 - Building Secure Customer Experience Apps
WSO2
 
PPTX
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
WSO2
 
PPTX
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
WSO2
 
PPTX
WSO2Con 2025 - Unified Management of Ingress and Egress Across Multiple API G...
WSO2
 
PPTX
WSO2Con 2025 - How an Internal Developer Platform Lets Developers Focus on Code
WSO2
 
PPTX
WSO2Con 2025 - Architecting Cloud-Native Applications
WSO2
 
PDF
Mastering Intelligent Digital Experiences with Platformless Modernization
WSO2
 
PDF
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
PDF
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
PDF
architecting-ai-in-the-enterprise-apis-and-applications.pdf
WSO2
 
Quantum Threats Are Closer Than You Think – Act Now to Stay Secure
WSO2
 
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
WSO2
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
WSO2
 
Platformless Modernization with Choreo.pdf
WSO2
 
Application Modernization with Choreo for the BFSI Sector
WSO2
 
Choreo - The AI-Native Internal Developer Platform as a Service: Overview
WSO2
 
[Roundtable] Choreo - The AI-Native Internal Developer Platform as a Service
WSO2
 
WSO2Con 2025 - Building AI Applications in the Enterprise (Part 1)
WSO2
 
WSO2Con 2025 - Building Secure Business Customer and Partner Experience (B2B)...
WSO2
 
WSO2Con 2025 - Building Secure Customer Experience Apps
WSO2
 
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
WSO2
 
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
WSO2
 
WSO2Con 2025 - Unified Management of Ingress and Egress Across Multiple API G...
WSO2
 
WSO2Con 2025 - How an Internal Developer Platform Lets Developers Focus on Code
WSO2
 
WSO2Con 2025 - Architecting Cloud-Native Applications
WSO2
 
Mastering Intelligent Digital Experiences with Platformless Modernization
WSO2
 
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
WSO2
 

Recently uploaded (20)

PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Python basic programing language for automation
DanialHabibi2
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
July Patch Tuesday
Ivanti
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 

Leveraging Open Source Integration with WSO2 Enterprise Service Bus

  • 1. Leveraging Open Source Integration with WSO2 Enterprise Service Bus Sumedha Rubasinghe 2009 Air Force Information Technology Conference Montgomery, Atlanta
  • 2. Agenda  The Need  Introduction  Features  Important Concepts  Extendibility  Performance  Use cases  Getting started & Help 2
  • 3. 3
  • 4. 4
  • 5. 5
  • 6. 6
  • 7. 7
  • 8. Busbar 8
  • 9. 9
  • 10. Introducing Mattson ... Hi.. Mattson here.. I am an architect 10
  • 11. So.. What is WSO2 ESB? 11
  • 12. 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
  • 13. wait.. What is Apache Synapse? How is it related to WSO2 ESB? 13
  • 14. 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
  • 18. In what type of scenarios Can I use WSO2 ESB? 18
  • 19. 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
  • 20. Tell me some of the main features of WSO2 ESB 20
  • 21. WSO2 ESB Features  Message Routing  Message Transformation & Mapping  Scheduled Tasks  Orchestration  Protocol Switching  Transaction Support  Eventing 21
  • 22. Message Routing  Act as a simple Proxy 22
  • 23. Message Routing  Content based routing 23
  • 24. Message Transformation & Mapping  XSLT 24
  • 25. Message Transformation & Mapping  XQuery 25
  • 26. Message Transformation & Mapping  E4X 26
  • 27. Message Transformation & Mapping  Support for different file formats – EDI – flat files – CSV – COBOL/Record 27
  • 28. Tasks  Allow the ESB to initiate work on a timed basis  Cron/simple interval  Write your own tasks 28
  • 29. Orchestration  Aggregate 29
  • 30. Orchestration  Disaggregate 30
  • 31. Orchestration  Callout 31
  • 32. Orchestration  If/Then/Else 32
  • 33. Orchestration  BPEL Feature plug-in – Adds BPS capabilities into ESB 33
  • 36. 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
  • 38. 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
  • 39. What if I want more? Can I extend WSO2 ESB? Yes.. you can.. Just write a mediator.. 39
  • 41. 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
  • 42. 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
  • 43. Important concept – Sequence • Special mediator – List of mediators to be executed in an order • Pipeline pattern • Special sequences – main – fault 43
  • 44. Important concept – operation modes • Act as a proxy • Main Sequence – If none of the proxy services matches the request pattern 44
  • 45. I would like to have few more mediator examples.. 45
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. Extending WSO2 ESB  Registry as a repository – Loading configuration from external registry  New Transports 50
  • 51. So how does all of these fit together?... What happens with-in WSO2 ESB? 51
  • 53. Runtime 53
  • 55. 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
  • 56. Performance  http://wso2.org/library/3740 56
  • 57. 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
  • 58. Monitoring  Monitor System statistics  Running logs  Message Tracing  Dynamically configurable Logger  Exposes statistics via JMX  Dashboard – Google Gadgets 58
  • 59. I would like to see some Use cases where all of these are applied... 59
  • 60. 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
  • 62. Use Case 1 - configuration 62
  • 63. 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
  • 65. Use Case 2 - Configuration 65
  • 66. 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
  • 68. Use Case 3 - Configuration 68
  • 69. Use Case 3 - Configuration 69
  • 70. Use Case 3 - Configuration 70
  • 71. Use Case 3 - Configuration 71
  • 72. Use Case 3 - Configuration 72
  • 73. 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
  • 75. Use Case 4 - Configuration 75
  • 76. Use Case 5 - FIX to HTTP transport http://wso2.org/library/3837 76
  • 77. 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
  • 80. That's lot of information... Now I would like to try these out myself. How do I get started? 80
  • 81. 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
  • 82. Help.. I messed it up... 82
  • 83. 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
  • 84. I would like to have some URLs for reference. 84
  • 85. 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
  • 86. Summary •Hypothetical Enterprise •Brief Introduction on WSO2 ESB •Features •Important concepts – Mediators – Sequence •Extendibility •Use cases •Getting started & Help 86
  • 87. Thank you [email protected] (on behalf of WSO2 ESB team) 87