Leveraging Open Source Integration
              with
   WSO2 Enterprise Service Bus
                 Sumedha Rubasinghe
 ...
Agenda

    The Need

    Introduction

    Features

    Important Concepts

    Extendibility

    Performance

 ...
3
4
5
6
7
Busbar




         8
9
Introducing Mattson ...
                   Hi..
                   Mattson here..
                   I am an architect



...
So.. What is WSO2 ESB?




                         11
WSO2 Enterprise Service Bus

    A fast,Light weight, easy-to-use Enterprise
    Service Bus product

    Open source pr...
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...
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 ...
Tell me some of the
main features of WSO2 ESB




                            20
WSO2 ESB Features

    Message Routing

    Message Transformation & Mapping

    Scheduled Tasks

    Orchestration
...
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...
Tasks

    Allow the ESB to initiate work on a timed basis

    Cron/simple interval

    Write your own tasks




    ...
Orchestration

    Aggregate




                29
Orchestration

    Disaggregate




                   30
Orchestration

    Callout




                31
Orchestration

    If/Then/Else




                   32
Orchestration

    BPEL Feature plug-in
      –   Adds BPS capabilities into ESB




                                    ...
interesting...




                 34
Protocol Support




                   35
Protocol Support

    File, (S)FTP, HTTP(S), REST, Hessian, JSON

    SOAP

    JMS
      –    MQSeries, AMQP/ Apache Q...
Rule based Mediation

    Drools




                       37
Many more features ...

    Load balancing

    Fail-over handling

    Caching / Throttling

    Registry based Clust...
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,...
Important concept – Send Mediator
• Used to send out the messages
• Used in almost all the cases
• Wrapped an endpoint
  –...
Important concept – Sequence
• Special mediator
     –   List of mediators to be executed in an order
• Pipeline pattern
•...
Important concept – operation modes
• Act as a proxy
• Main Sequence
      – If none of the proxy services matches the
   ...
I would like to have few
more mediator examples..




                           45
Extendibility – Java Mediator
• Class implementing the Mediator interface
  –   Or AbstractMediator class
  –   Custom med...
Extendibility - POJOCommand
• Extends the mediation capabilities using the
  well known command pattern
      – Class impl...
Extendibility – Script Mediator
• Enables scripting for extending mediation
• Supports all the Apache BSF scripting langua...
Extendibility – Spring Mediator
• Spring configurations to extend the mediation
• Spring bean must implement the Mediator
...
Extending WSO2 ESB

    Registry as a repository
        – Loading configuration from external registry

    New Transpo...
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 fr...
Performance

    http://wso2.org/library/3740




                                   56
Non-Blocking IO
                                      Synapse
       Incoming req

                                       ...
Monitoring

    Monitor System statistics

    Running logs

    Message Tracing

    Dynamically configurable Logger
...
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...
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 t...
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 re...
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
  ...
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-e...
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?




                         ...
How to get started?

    Download binary distribution from
    http://wso2.org/projects/esb/java

    Latest is v2.1.0
...
Help.. I messed it up...




                           82
How to get help?

    Online forum

    Active community of external users

    Ample free documentation on wso2.org

...
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
  ...
Summary

•Hypothetical Enterprise
•Brief Introduction on WSO2 ESB
•Features
•Important concepts
   – Mediators
   – Sequen...
Thank you
    sumedha@wso2.com
(on behalf of WSO2 ESB team)




                               87
Upcoming SlideShare
Loading in …5
×

Leveraging Open Source Integration with WSO2 Enterprise Service Bus

1,815 views
1,703 views

Published on

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

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,815
On SlideShare
0
From Embeds
0
Number of Embeds
310
Actions
Shares
0
Downloads
146
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Leveraging Open Source Integration with WSO2 Enterprise Service Bus

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

×