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)

PPTX
Exchange 2013
Somdeep Yadav
 
PPTX
SOA vs Microservices vs SBA
Michael Sukachev
 
PPTX
BizTalk Server Administration best practices
BizTalk360
 
PDF
SOA Summit 2014
Kenneth Peeples
 
PPTX
Cloud computing explained
Juan Pablo
 
PPTX
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2
 
PPTX
Top 10 BizTalk Admin Tips
Daniel Toomey
 
PDF
BizTalk Server- Schema
AboorvaRaja Ramar
 
PPT
WSO2 in Action
WSO2
 
PPT
Soa design pattern
Lap Doan
 
PPT
Novell® iChain® 2.3
webhostingguy
 
PPTX
Service Oriented Architecture Design Pattern
Shanto Rahman
 
PDF
SOA Integration Blueprint with Oracle SOA Suite
Matthias Furrer
 
PDF
Sql server 2017_licensing_guide
Santosh Kadam
 
PPTX
Introduction to business process execution language
suranisaunak
 
PPT
Documentum content server
Sanjay Singh
 
PPTX
EMC ECD Documentum D2
mister_moun
 
PPTX
Containerizing Your On-Premise Environment
Michael Mohen
 
PPTX
Principles of Service Orientation
Paulo Gandra de Sousa
 
DOC
M.Daud-UAE-Final
Muhammad Daud Soomro
 
Exchange 2013
Somdeep Yadav
 
SOA vs Microservices vs SBA
Michael Sukachev
 
BizTalk Server Administration best practices
BizTalk360
 
SOA Summit 2014
Kenneth Peeples
 
Cloud computing explained
Juan Pablo
 
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2
 
Top 10 BizTalk Admin Tips
Daniel Toomey
 
BizTalk Server- Schema
AboorvaRaja Ramar
 
WSO2 in Action
WSO2
 
Soa design pattern
Lap Doan
 
Novell® iChain® 2.3
webhostingguy
 
Service Oriented Architecture Design Pattern
Shanto Rahman
 
SOA Integration Blueprint with Oracle SOA Suite
Matthias Furrer
 
Sql server 2017_licensing_guide
Santosh Kadam
 
Introduction to business process execution language
suranisaunak
 
Documentum content server
Sanjay Singh
 
EMC ECD Documentum D2
mister_moun
 
Containerizing Your On-Premise Environment
Michael Mohen
 
Principles of Service Orientation
Paulo Gandra de Sousa
 
M.Daud-UAE-Final
Muhammad Daud Soomro
 

Viewers also liked (20)

PPTX
WSO2Con 2011: Introduction to the WSO2 Carbon Platform
Afkham Azeez
 
PDF
WSO2-WSF-install-manual-linux-th
Infinity Levels Studio
 
PDF
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
PDF
Combining WSO2 API Manager with WSO2 BAM for billing in the energy industry
WSO2
 
PDF
Introducing The WSO2 Platform
WSO2
 
PPTX
Microservices Server - MSS Workshop
WSO2
 
PDF
Learn with WSO2 - API Security
WSO2
 
PDF
Application Development with API Manager
WSO2
 
PPTX
Understanding Microservice Architecture WSO2Con Asia 2016
Sagara Gunathunga
 
PDF
Artsofte облегченная веб шина данных для организации дистанционных каналов пр...
Artsofte IT company
 
PDF
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
Selvaratnam Uthaiyashankar
 
PPTX
Introduction to WSO2 Microservices Framework for Java (MSF4J) 2.0
Afkham Azeez
 
PPTX
Extended Security with WSO2 API Management Platform
WSO2
 
PDF
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
WSO2
 
PDF
Управление идентификационными данными и доступом
КРОК
 
PPTX
Understanding the WSO2 Platform
WSO2
 
PDF
Easy REST APIs with Jersey and RestyGWT
David Chandler
 
PDF
Необходимые условия качества данных: MDM, Шина, Хранилище данных
КРОК
 
PPT
837 preparation for testing
haigvk
 
PDF
Service-Oriented Architecture (SOA)
WSO2
 
WSO2Con 2011: Introduction to the WSO2 Carbon Platform
Afkham Azeez
 
WSO2-WSF-install-manual-linux-th
Infinity Levels Studio
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
Combining WSO2 API Manager with WSO2 BAM for billing in the energy industry
WSO2
 
Introducing The WSO2 Platform
WSO2
 
Microservices Server - MSS Workshop
WSO2
 
Learn with WSO2 - API Security
WSO2
 
Application Development with API Manager
WSO2
 
Understanding Microservice Architecture WSO2Con Asia 2016
Sagara Gunathunga
 
Artsofte облегченная веб шина данных для организации дистанционных каналов пр...
Artsofte IT company
 
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
Selvaratnam Uthaiyashankar
 
Introduction to WSO2 Microservices Framework for Java (MSF4J) 2.0
Afkham Azeez
 
Extended Security with WSO2 API Management Platform
WSO2
 
WSO2Con ASIA 2016: Creating Microservices with WSO2 Microservices Framework f...
WSO2
 
Управление идентификационными данными и доступом
КРОК
 
Understanding the WSO2 Platform
WSO2
 
Easy REST APIs with Jersey and RestyGWT
David Chandler
 
Необходимые условия качества данных: MDM, Шина, Хранилище данных
КРОК
 
837 preparation for testing
haigvk
 
Service-Oriented Architecture (SOA)
WSO2
 
Ad

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

PDF
WSO2 ESB Webinar 01 Sept 2009
WSO2
 
PDF
Leveraging Open Source Integration with WSO2 Enterprise Service Bus
WSO2
 
PDF
TS 4839 - Enterprise Integration Patterns in Practice
aegloff
 
PDF
Deployment with Ruby on Rails
Jonathan Weiss
 
PPTX
Architectures with Windows Azure
Damir Dobric
 
PDF
Messaging With ActiveMQ
Bruce Snyder
 
PDF
Scaling the Container Dataplane
Michelle Holley
 
PDF
WSO2 Enterprise Service Bus - Product Overview
WSO2
 
PPTX
Bridging the Semantic Gap in Virtualized Environment
Andy Lee
 
PDF
Os Madsen Block
oscon2007
 
PPTX
OpenStack and OpenFlow Demos
Brent Salisbury
 
PPTX
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
C2B2 Consulting
 
PDF
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PDF
Summit 16: How to Compose a New OPNFV Solution Stack?
OPNFV
 
PDF
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
Jorge Bonilla
 
PDF
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
rhatr
 
PDF
Better Enterprise Integration With the WSO2 ESB 4.5.1
WSO2
 
PPTX
PHP Performance with APC + Memcached
Ford AntiTrust
 
PPTX
Containerization - The DevOps Revolution
Yulian Slobodyan
 
PDF
AP4R on RubyConf2007
Kato Kiwamu
 
WSO2 ESB Webinar 01 Sept 2009
WSO2
 
Leveraging Open Source Integration with WSO2 Enterprise Service Bus
WSO2
 
TS 4839 - Enterprise Integration Patterns in Practice
aegloff
 
Deployment with Ruby on Rails
Jonathan Weiss
 
Architectures with Windows Azure
Damir Dobric
 
Messaging With ActiveMQ
Bruce Snyder
 
Scaling the Container Dataplane
Michelle Holley
 
WSO2 Enterprise Service Bus - Product Overview
WSO2
 
Bridging the Semantic Gap in Virtualized Environment
Andy Lee
 
Os Madsen Block
oscon2007
 
OpenStack and OpenFlow Demos
Brent Salisbury
 
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
C2B2 Consulting
 
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Summit 16: How to Compose a New OPNFV Solution Stack?
OPNFV
 
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
Jorge Bonilla
 
You Call that Micro, Mr. Docker? How OSv and Unikernels Help Micro-services S...
rhatr
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
WSO2
 
PHP Performance with APC + Memcached
Ford AntiTrust
 
Containerization - The DevOps Revolution
Yulian Slobodyan
 
AP4R on RubyConf2007
Kato Kiwamu
 
Ad

Recently uploaded (20)

PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Python basic programing language for automation
DanialHabibi2
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 

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