SlideShare ist ein Scribd-Unternehmen logo
1 von 87
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

bfarm-v2
bfarm-v2bfarm-v2
bfarm-v2
Zeus G
 
IBM Websphere MQ Basic
IBM Websphere MQ BasicIBM Websphere MQ Basic
IBM Websphere MQ Basic
PRASAD BHATKAR
 
Evaluating the networking performance of linux based home router platforms fo...
Evaluating the networking performance of linux based home router platforms fo...Evaluating the networking performance of linux based home router platforms fo...
Evaluating the networking performance of linux based home router platforms fo...
Alpen-Adria-Universität
 
[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...
[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...
[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...
npinto
 
[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...
[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...
[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...
npinto
 

Was ist angesagt? (20)

Panasas pNFS Status (September 2010)
Panasas pNFS Status (September 2010)Panasas pNFS Status (September 2010)
Panasas pNFS Status (September 2010)
 
9P Overview
9P Overview9P Overview
9P Overview
 
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC clusterToward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
 
bfarm-v2
bfarm-v2bfarm-v2
bfarm-v2
 
VirtFS
VirtFSVirtFS
VirtFS
 
WebSphere MQ tutorial
WebSphere MQ tutorialWebSphere MQ tutorial
WebSphere MQ tutorial
 
Advanced Components on Top of L4Re
Advanced Components on Top of L4ReAdvanced Components on Top of L4Re
Advanced Components on Top of L4Re
 
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC clusterToward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
Toward a practical “HPC Cloud”: Performance tuning of a virtualized HPC cluster
 
Memory, IPC and L4Re
Memory, IPC and L4ReMemory, IPC and L4Re
Memory, IPC and L4Re
 
Amd accelerated computing -ufrj
Amd   accelerated computing -ufrjAmd   accelerated computing -ufrj
Amd accelerated computing -ufrj
 
IBM Websphere MQ Basic
IBM Websphere MQ BasicIBM Websphere MQ Basic
IBM Websphere MQ Basic
 
DataPower-MQ Integration Deep Dive
DataPower-MQ Integration Deep DiveDataPower-MQ Integration Deep Dive
DataPower-MQ Integration Deep Dive
 
Evaluating the networking performance of linux based home router platforms fo...
Evaluating the networking performance of linux based home router platforms fo...Evaluating the networking performance of linux based home router platforms fo...
Evaluating the networking performance of linux based home router platforms fo...
 
Messaging in the Cloud - AMQP, RabbitMQ and Spring
Messaging in the Cloud - AMQP, RabbitMQ and SpringMessaging in the Cloud - AMQP, RabbitMQ and Spring
Messaging in the Cloud - AMQP, RabbitMQ and Spring
 
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQAn Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
 
Windows Server 2012 Hyper-V Networking Evolved
Windows Server 2012 Hyper-V Networking Evolved Windows Server 2012 Hyper-V Networking Evolved
Windows Server 2012 Hyper-V Networking Evolved
 
Syllable OS
Syllable OSSyllable OS
Syllable OS
 
[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...
[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...
[Harvard CS264] 11b - Analysis-Driven Performance Optimization with CUDA (Cli...
 
[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...
[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...
[Harvard CS264] 11a - Programming the Memory Hierarchy with Sequoia (Mike Bau...
 
WebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
WebSphere Message Broker Training | IBM WebSphere Message Broker Online TrainingWebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
WebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
 

Andere mochten auch

Healthcare Information Systems - Past, Present, and Future
Healthcare Information Systems - Past, Present, and FutureHealthcare Information Systems - Past, Present, and Future
Healthcare Information Systems - Past, Present, and Future
Health Catalyst
 

Andere mochten auch (6)

FHIR Server Design Review
FHIR Server Design ReviewFHIR Server Design Review
FHIR Server Design Review
 
FHIR - Feel the Fire - 1
FHIR - Feel the Fire - 1FHIR - Feel the Fire - 1
FHIR - Feel the Fire - 1
 
How to Assess the ROI of Your Population Health Initiative
How to Assess the ROI of Your Population Health InitiativeHow to Assess the ROI of Your Population Health Initiative
How to Assess the ROI of Your Population Health Initiative
 
Patient satisfaction
Patient satisfactionPatient satisfaction
Patient satisfaction
 
In Pursuit of the Patient Stratification Gold Standard: Getting There with He...
In Pursuit of the Patient Stratification Gold Standard: Getting There with He...In Pursuit of the Patient Stratification Gold Standard: Getting There with He...
In Pursuit of the Patient Stratification Gold Standard: Getting There with He...
 
Healthcare Information Systems - Past, Present, and Future
Healthcare Information Systems - Past, Present, and FutureHealthcare Information Systems - Past, Present, and Future
Healthcare Information Systems - Past, Present, and Future
 

Ähnlich wie Leveraging Open Source Integration with WSO2 Enterprise Service Bus

Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1
WSO2
 
Webbinar slides
Webbinar slidesWebbinar slides
Webbinar slides
WSO2
 
Containerization - The DevOps Revolution
Containerization - The DevOps RevolutionContainerization - The DevOps Revolution
Containerization - The DevOps Revolution
Yulian Slobodyan
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB
WSO2
 
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
JUDCon London 2011 - Elastic SOA on the Cloud, Steve MillidgeJUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
C2B2 Consulting
 
A multi-tenant architecture for Apache Axis2
A multi-tenant architecture for Apache Axis2A multi-tenant architecture for Apache Axis2
A multi-tenant architecture for Apache Axis2
Afkham Azeez
 
How the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendorsHow the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendors
WSO2
 

Ähnlich wie Leveraging Open Source Integration with WSO2 Enterprise Service Bus (20)

Open Source Integration with WSO2 Enterprise Service Bus
Open Source Integration  with  WSO2 Enterprise Service BusOpen Source Integration  with  WSO2 Enterprise Service Bus
Open Source Integration with WSO2 Enterprise Service Bus
 
WSO2 ESB Webinar 01 Sept 2009
WSO2 ESB Webinar 01 Sept 2009WSO2 ESB Webinar 01 Sept 2009
WSO2 ESB Webinar 01 Sept 2009
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1
 
WSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration PlatformWSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
 
Riding with camel
Riding with camelRiding with camel
Riding with camel
 
Webbinar slides
Webbinar slidesWebbinar slides
Webbinar slides
 
Introduction to WSO2 Integration Platform
Introduction to WSO2 Integration PlatformIntroduction to WSO2 Integration Platform
Introduction to WSO2 Integration Platform
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 
IBM MQ vs Apache ActiveMQ
IBM MQ vs Apache ActiveMQIBM MQ vs Apache ActiveMQ
IBM MQ vs Apache ActiveMQ
 
Containerization - The DevOps Revolution
Containerization - The DevOps RevolutionContainerization - The DevOps Revolution
Containerization - The DevOps Revolution
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB
 
Wso2 esb
Wso2 esbWso2 esb
Wso2 esb
 
Wso2 esb
Wso2 esbWso2 esb
Wso2 esb
 
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
JUDCon London 2011 - Elastic SOA on the Cloud, Steve MillidgeJUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
JUDCon London 2011 - Elastic SOA on the Cloud, Steve Millidge
 
A multi-tenant architecture for Apache Axis2
A multi-tenant architecture for Apache Axis2A multi-tenant architecture for Apache Axis2
A multi-tenant architecture for Apache Axis2
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
Mina2
Mina2Mina2
Mina2
 
How the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendorsHow the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendors
 
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure Functions
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure FunctionsMessaging - RabbitMQ, Azure (Service Bus), Docker and Azure Functions
Messaging - RabbitMQ, Azure (Service Bus), Docker and Azure Functions
 
Reference design for v mware nsx
Reference design for v mware nsxReference design for v mware nsx
Reference design for v mware nsx
 

Mehr von WSO2

Mehr von WSO2 (20)

Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2Driving Innovation: Scania's API Revolution with WSO2
Driving Innovation: Scania's API Revolution with WSO2
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
WSO2CON 2024 - Elevating the Integration Game to the Cloud
WSO2CON 2024 - Elevating the Integration Game to the CloudWSO2CON 2024 - Elevating the Integration Game to the Cloud
WSO2CON 2024 - Elevating the Integration Game to the Cloud
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital Businesses
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

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 sumedha@wso2.com (on behalf of WSO2 ESB team) 87