SlideShare a Scribd company logo
ESBs and SOA Paul Fremantle [email_address] CTO and Co-Founder, WSO2 VP, Apache Synapse
Service Oriented Architecture SOA is the  best practice  for building distributed interconnected systems Using well-defined interactions between systems Moving from proprietary formats to open formats: XML, HTTP, SOAP Integration is dependent on external  interfaces  not on internal  code
Bus concept
Busbar
A common ESB definition “ Any to any data connectivity and transformation (including Web Services) built on an advanced, proven, reliable middleware infrastructure”
ESB definition “ Any to any data connectivity and transformation (including Web Services) built on an advanced, proven, reliable middleware infrastructure” which means Our existing middleware re-branded as an SOA platform, with some new web services adapters at the edges
Jason Bloomberg, Zapthink “ You're a software vendor with a product line chock full of proprietary, tightly-coupled integration middleware…  Your software, however, does not lend itself to SOA best practices – loose coupling, composable Services, and flexibility in general are all capabilities that you failed to build into your software… What to do? The only option is to slap Web Services interfaces on your stuff, call it an Enterprise Service Bus (ESB), and sell it as SOA middleware. Hopefully your customers won't notice the old wine in new bottles. After all, that's what marketing is for!”
My definition of an ESB “ What does it do?” not “How does it do it?” Services are independent of the transport and protocol used to access them Monitors and manages services with minimal intrusion Transforms and mediates messages
Loose Coupling Location and Access Scale up, failover, contingency Programming Language Work with available skills Integrate old and new Stack/Vendor No tie in to a particular proprietary solution Time Asynchronous interactions avoid gridlock
Do you need an ESB to do SOA?
Do you need an ESB to do SOA?
SOA can end up as spaghetti Too many point-to-point links Multiple protocols, different qualities of service No clear picture of all available services
An ESB can simplify SOA deployment Integrated Registry/ Repository Virtualization Perf Mgmt Load balance Throttle Transport  matching Access control Message  transform Logging and  auditability Web-based console
Pragmatic SOA scenarios SOA has been seeded “bottom-up” within a company, and now looking for a way to add order and consistency Looking to expose existing backend systems as services in a consistent way Need to provide scale-up and performance management for SOAP and HTTP systems including load-balancing and throttling Starting to expose services to partners and require a solution to managing access control, security keys and auditability Integrating Java and .NET systems with other stacks, need a simple independent way to manage WS-Security, Reliable Messaging
Apply those rules to an ESB Location and Access Must provide virtualization, multiple protocol support, transparency Programming Language Minimal tie to any one programming language Focus on dynamic languages and XML-centric approaches such as XPath, XQuery and XSLT Stack/Vendor Interoperability, works with clients and services from many systems No requirement to have a proprietary system everywhere Time Asynchronous, non-blocking, scalable
ESB Patterns and Anti-Patterns How are ESBs used effectively  How are they abused High-level patterns How the ESB fits into an organization How the ESB fits into an Enterprise Architecture Low-level patterns How the ESB fits into a specific message flow or business problem
The Concentrator Pattern .NET  service CRM service Apache Axis2  service C/C++ service Concentrator ESB Consistent access, security, logging, audit, monitoring But no transformation Data  service Mashup/Web Application Dashboard
The Federated ESB pattern Enterprise ESB Routing, Audit Department ESB Department ESB Department ESB
The mini-ESB pattern Use a lightweight ESB Co-locate on the same hardware/VM as the service Transformation, polling, protocol translation, etc Why? In the control of the team who own the services Keeps the SOA model (ownership) with a simple effective approach to exposing services What about the embedded ESB model?  e.g. embed transformation and logging into your Service Hosting platform
Active vs Passive  The concentrator pattern is effectively  passive The ESB reacts to messages/requests from the front-end Active ESBs: Poll file systems/FTP/SFTP for updated work Actively call remote services based on timers Integrate passive services
Scenario – Financial Security blocking Database legacy flat file NEW YORK Existing System WSO2 ESB Poll Record->XML XML->XML Send LONDON WSO2 ESB Split/Iterate DBLookup/Filter Transform to MQ Send Existing System XML/JMS
Push-Me Pull-You
Push-me Pull-you
Anti-Patterns Anti-Pattern #1  Implement all your business logic in the ESB Why not? Mixing Infrastructure logic and Business Logic Maintainability Tooling and Skills Anti-Pattern #2 Apply waterfall and application deployment approaches to the ESB Long project cycles No iterative approach Why not? Lose all flexibility and agility Once the ESB becomes a static, code-driven system then you would be better off updating your applications
Anti-Pattern #3 “ Big Brother” The ESB is hosted, managed and controlled by a central IT team Because of  organizational  issues using the ESB is complex: e.g.  It takes months of meetings to get access The Central IT team is trying to recoup the investment and internally charges $000/year to use the ESB The central IT deployment model holds up users Departments and divisions actually sneak behind the ESB Set up peer-to-peer communications Avoid the ESB at all costs
The biggest Anti-Pattern of all Use an ESB because: You heard it was a good idea The salesman told you that you need one (over a nice dinner) You need a new TLA on your resume/CV Its an excuse to spend several months learning and going to conferences
ESB Market Proprietary IBM WebSphere Oracle/BEA Tibco Open Source Fuse/ServiceMix MuleSource/Mule WSO2 ESB/Synapse
What about JBI? JBI is the JCP/Sun sponsored standard for ESBs Allows a standard deployment and also standard adapters Can be seen as a follow-on to JCA JBI has had little market success Failed to bring true portability Based on a very code-centric deployment model inherited from J2EE JBI v2 was destined to fix those problems but has gone quiet Oracle/Sun acquisition has also thrown doubt on JBI
Openness Since the only standard for portability is flawed, I  highly recommend: Using an Open Source ESB Avoid lock-in and proprietary approach Using open network protocols E.g. SOAP, HTTP, XMPP, AMQP Avoid lock-in to MQSeries or Tibco Use as many standards based approaches as possible XSLT, XQuery, E4X/JavaScript, SOAP Headers, WS-Security, WS-RM, etc
OSGi and ESBs OSGi is a pluggability and component model for Java Proven to be effective as the component approach for Eclipse Gaining strong traction with middleware vendors BEA/Oracle IBM SpringSource WSO2 Both ServiceMix and WSO2 ESB have strong OSGi basis ServiceMix Kernel  WSO2 Carbon OSGi framework OSGi looks like a much stronger approach than JBI for plugging components into middleware runtimes
Understanding an ESB I’m an expert on the WSO2 ESB and Apache Synapse Both share the same core engine and model Scenario walkthrough Similar approaches will work with other Open Source ESBs
 
Core model of the ESB Two main approaches “ Proxy” approach Messages come into a proxy Proxy = { inSequence, targetEndpoint, outSequence, faultSequence} Sequence = { ordered list of mediators } Mediator = Unit of function Rule/Policy based approach All messages come to a central sequence Sequence categorizes and routes requests based on the message Known in Synapse as the “main” sequence
Sequence concept
Built-in Mediators Drop (end) Sequence (call another sequence) Clone  Callout (call a WS) Filter (if-then-else) Switch Iterate Aggregate Send Router Smooks (transform library) Rule (use a Rules engine) Entitlement (validate access against a XACML server) Property Header Validate DBReport DBLookup Class mediator Command Mediator Script Spring Throttle Cache XSLT XQuery
Understanding performance Performance of an ESB  can  be critical Key Measurements are  Throughput (can the ESB cope with the required load) Latency (does the ESB add unacceptable time) Concurrency (does the ESB run out of threads) Two key technologies Streaming and Streaming XML  Ability to operate in constant memory and handle XML without building a full tree Non-blocking IO Ability to manage large numbers of connections with constant thread pool
Case Study Mobile phone ringtone/media provider Every request goes via the ESB Performance and Streaming are critical Streaming and non-blocking are key Continuous Availability  Ability to upgrade the system live Without losing transactions Under load
Event Driven Architecture Event Architecture takes the SOA one step further towards loose-coupling than the previous patterns: Its up to you to publish to the right place Its up to you to subscribe to the right events You own the wiring too Allows for situational integration In the previous patterns the wiring was encoded into the ESB
Eventing in Synapse Synapse Proxy Event Source Event Publisher Subs Mgr Subscriber Publisher Subscriber Subscriber subscribe Mediation Sequence
Event Driven Architecture with a Master Data Pattern
Governance and ESBs Governance is a key issue for SOA Governance is fundamentally about ensuring standards around Enterprise IT Policies People  Processes ESBs can be very important for this Policy Enforcement Point Monitoring Point Central Access Point for enterprise services
Summary We have Identified how ESBs fit into a Service Oriented Architecture Discussed when to use an ESB and when  not  to Looked at ESB patterns and anti-patterns Covered some simple ESB approaches Investigated how ESBs can fit into EDA
Questions
Resources Reclaiming the ESB http://wso2.org/library/2913 Open Source SOA (book) by Jeff Davis http://www.manning.com/davis/   http://en.wikipedia.org/wiki/Enterprise_service_bus   Apache Synapse http://synapse.apache.org WSO2 ESB http://wso2.org/esb

More Related Content

PDF
Mashups For Soa
PDF
SOA: What It Means To The Enterprise
PDF
WSO2Con US 2013 - Connected Business - making it happen
PDF
SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...
PDF
TS 4839 - Enterprise Integration Patterns in Practice
PDF
Nats meetup sf 20150826
PPTX
Microservices and the Cloud based future of integration final
PDF
Enterprise Integration with the WSO2 ESB
Mashups For Soa
SOA: What It Means To The Enterprise
WSO2Con US 2013 - Connected Business - making it happen
SUSE Cloud and WSO2 Stratos - Bridging OpenStack and PaaS to Deliver the Serv...
TS 4839 - Enterprise Integration Patterns in Practice
Nats meetup sf 20150826
Microservices and the Cloud based future of integration final
Enterprise Integration with the WSO2 ESB

What's hot (20)

PDF
[WSO2Con EU 2017] Microservice Architecture (MSA) and Integration Microservices
PDF
ESB Evaluation Framework
PPTX
WSO2 ESB - The Backbone of Integration
PDF
Microservices: Where do they fit within a rapidly evolving integration archit...
PPTX
Cloud integration patterns for it pros - itprceed
PDF
Summer School 2013 - What is iPaaS and why it is important
PDF
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
PDF
Keynote-Service Orientation – Why is it good for your business
PPTX
From SOA to MSA
PPT
WSO2 in Action
PDF
ESB Evaluation Framework
PDF
WSO2 ESB Integration with REST
PDF
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
PPT
Understanding Platform as a Service
PDF
REST vs. Messaging For Microservices
PDF
Building Applications with Carbon Studio on Premise and Cloud
PPTX
01. mulesoft basics
PPTX
Introduction to WSO2 Integration Platform
PPT
Hosting rails apps
[WSO2Con EU 2017] Microservice Architecture (MSA) and Integration Microservices
ESB Evaluation Framework
WSO2 ESB - The Backbone of Integration
Microservices: Where do they fit within a rapidly evolving integration archit...
Cloud integration patterns for it pros - itprceed
Summer School 2013 - What is iPaaS and why it is important
[WSO2Con EU 2017] Creating Composite Services Using Ballerina
Keynote-Service Orientation – Why is it good for your business
From SOA to MSA
WSO2 in Action
ESB Evaluation Framework
WSO2 ESB Integration with REST
[WSO2Con EU 2017] How a Large Organization Weighted on a WSO2 Integration Pla...
Understanding Platform as a Service
REST vs. Messaging For Microservices
Building Applications with Carbon Studio on Premise and Cloud
01. mulesoft basics
Introduction to WSO2 Integration Platform
Hosting rails apps
Ad

Similar to Ss Esb (20)

PDF
WSO2 ESB and SOA
PPTX
ESB What it is?
ODP
SOA & ESB Presentation
PDF
Tactics Esb Implementation
PPT
Webbinar slides
PDF
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
PDF
Enterprise Integration with WSO2 ESB
PPTX
Enterprise Service Bus
PPT
What is an ESB? OPITZ CONSULTING - Winterberg - Trops
PPTX
Choosing The Right ESB
PPTX
Wso2 tutorial
PDF
ESB and SOA
PPSX
Getting started with Enterprise Application Integration (EAI) using Enterpris...
PDF
Exposing Business Functionalities with SOA, Integration and API Management
PPTX
Introduction to Enterprise Service Bus
PDF
2011-ESB-WP-Draft
PPT
WebServices and Workflow technologies
PPT
Enterprise service bus
PDF
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
WSO2 ESB and SOA
ESB What it is?
SOA & ESB Presentation
Tactics Esb Implementation
Webbinar slides
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
Enterprise Integration with WSO2 ESB
Enterprise Service Bus
What is an ESB? OPITZ CONSULTING - Winterberg - Trops
Choosing The Right ESB
Wso2 tutorial
ESB and SOA
Getting started with Enterprise Application Integration (EAI) using Enterpris...
Exposing Business Functionalities with SOA, Integration and API Management
Introduction to Enterprise Service Bus
2011-ESB-WP-Draft
WebServices and Workflow technologies
Enterprise service bus
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Ad

More from WSO2 (20)

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

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced IT Governance
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PPT
Teaching material agriculture food technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
cuic standard and advanced reporting.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced IT Governance
The AUB Centre for AI in Media Proposal.docx
Unlocking AI with Model Context Protocol (MCP)
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Teaching material agriculture food technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Chapter 3 Spatial Domain Image Processing.pdf
Network Security Unit 5.pdf for BCA BBA.
cuic standard and advanced reporting.pdf
Machine learning based COVID-19 study performance prediction
Advanced methodologies resolving dimensionality complications for autism neur...
Dropbox Q2 2025 Financial Results & Investor Presentation
Advanced Soft Computing BINUS July 2025.pdf
Electronic commerce courselecture one. Pdf
NewMind AI Monthly Chronicles - July 2025
NewMind AI Weekly Chronicles - August'25 Week I

Ss Esb

  • 1. ESBs and SOA Paul Fremantle [email_address] CTO and Co-Founder, WSO2 VP, Apache Synapse
  • 2. Service Oriented Architecture SOA is the best practice for building distributed interconnected systems Using well-defined interactions between systems Moving from proprietary formats to open formats: XML, HTTP, SOAP Integration is dependent on external interfaces not on internal code
  • 5. A common ESB definition “ Any to any data connectivity and transformation (including Web Services) built on an advanced, proven, reliable middleware infrastructure”
  • 6. ESB definition “ Any to any data connectivity and transformation (including Web Services) built on an advanced, proven, reliable middleware infrastructure” which means Our existing middleware re-branded as an SOA platform, with some new web services adapters at the edges
  • 7. Jason Bloomberg, Zapthink “ You're a software vendor with a product line chock full of proprietary, tightly-coupled integration middleware… Your software, however, does not lend itself to SOA best practices – loose coupling, composable Services, and flexibility in general are all capabilities that you failed to build into your software… What to do? The only option is to slap Web Services interfaces on your stuff, call it an Enterprise Service Bus (ESB), and sell it as SOA middleware. Hopefully your customers won't notice the old wine in new bottles. After all, that's what marketing is for!”
  • 8. My definition of an ESB “ What does it do?” not “How does it do it?” Services are independent of the transport and protocol used to access them Monitors and manages services with minimal intrusion Transforms and mediates messages
  • 9. Loose Coupling Location and Access Scale up, failover, contingency Programming Language Work with available skills Integrate old and new Stack/Vendor No tie in to a particular proprietary solution Time Asynchronous interactions avoid gridlock
  • 10. Do you need an ESB to do SOA?
  • 11. Do you need an ESB to do SOA?
  • 12. SOA can end up as spaghetti Too many point-to-point links Multiple protocols, different qualities of service No clear picture of all available services
  • 13. An ESB can simplify SOA deployment Integrated Registry/ Repository Virtualization Perf Mgmt Load balance Throttle Transport matching Access control Message transform Logging and auditability Web-based console
  • 14. Pragmatic SOA scenarios SOA has been seeded “bottom-up” within a company, and now looking for a way to add order and consistency Looking to expose existing backend systems as services in a consistent way Need to provide scale-up and performance management for SOAP and HTTP systems including load-balancing and throttling Starting to expose services to partners and require a solution to managing access control, security keys and auditability Integrating Java and .NET systems with other stacks, need a simple independent way to manage WS-Security, Reliable Messaging
  • 15. Apply those rules to an ESB Location and Access Must provide virtualization, multiple protocol support, transparency Programming Language Minimal tie to any one programming language Focus on dynamic languages and XML-centric approaches such as XPath, XQuery and XSLT Stack/Vendor Interoperability, works with clients and services from many systems No requirement to have a proprietary system everywhere Time Asynchronous, non-blocking, scalable
  • 16. ESB Patterns and Anti-Patterns How are ESBs used effectively How are they abused High-level patterns How the ESB fits into an organization How the ESB fits into an Enterprise Architecture Low-level patterns How the ESB fits into a specific message flow or business problem
  • 17. The Concentrator Pattern .NET service CRM service Apache Axis2 service C/C++ service Concentrator ESB Consistent access, security, logging, audit, monitoring But no transformation Data service Mashup/Web Application Dashboard
  • 18. The Federated ESB pattern Enterprise ESB Routing, Audit Department ESB Department ESB Department ESB
  • 19. The mini-ESB pattern Use a lightweight ESB Co-locate on the same hardware/VM as the service Transformation, polling, protocol translation, etc Why? In the control of the team who own the services Keeps the SOA model (ownership) with a simple effective approach to exposing services What about the embedded ESB model? e.g. embed transformation and logging into your Service Hosting platform
  • 20. Active vs Passive The concentrator pattern is effectively passive The ESB reacts to messages/requests from the front-end Active ESBs: Poll file systems/FTP/SFTP for updated work Actively call remote services based on timers Integrate passive services
  • 21. Scenario – Financial Security blocking Database legacy flat file NEW YORK Existing System WSO2 ESB Poll Record->XML XML->XML Send LONDON WSO2 ESB Split/Iterate DBLookup/Filter Transform to MQ Send Existing System XML/JMS
  • 24. Anti-Patterns Anti-Pattern #1 Implement all your business logic in the ESB Why not? Mixing Infrastructure logic and Business Logic Maintainability Tooling and Skills Anti-Pattern #2 Apply waterfall and application deployment approaches to the ESB Long project cycles No iterative approach Why not? Lose all flexibility and agility Once the ESB becomes a static, code-driven system then you would be better off updating your applications
  • 25. Anti-Pattern #3 “ Big Brother” The ESB is hosted, managed and controlled by a central IT team Because of organizational issues using the ESB is complex: e.g. It takes months of meetings to get access The Central IT team is trying to recoup the investment and internally charges $000/year to use the ESB The central IT deployment model holds up users Departments and divisions actually sneak behind the ESB Set up peer-to-peer communications Avoid the ESB at all costs
  • 26. The biggest Anti-Pattern of all Use an ESB because: You heard it was a good idea The salesman told you that you need one (over a nice dinner) You need a new TLA on your resume/CV Its an excuse to spend several months learning and going to conferences
  • 27. ESB Market Proprietary IBM WebSphere Oracle/BEA Tibco Open Source Fuse/ServiceMix MuleSource/Mule WSO2 ESB/Synapse
  • 28. What about JBI? JBI is the JCP/Sun sponsored standard for ESBs Allows a standard deployment and also standard adapters Can be seen as a follow-on to JCA JBI has had little market success Failed to bring true portability Based on a very code-centric deployment model inherited from J2EE JBI v2 was destined to fix those problems but has gone quiet Oracle/Sun acquisition has also thrown doubt on JBI
  • 29. Openness Since the only standard for portability is flawed, I highly recommend: Using an Open Source ESB Avoid lock-in and proprietary approach Using open network protocols E.g. SOAP, HTTP, XMPP, AMQP Avoid lock-in to MQSeries or Tibco Use as many standards based approaches as possible XSLT, XQuery, E4X/JavaScript, SOAP Headers, WS-Security, WS-RM, etc
  • 30. OSGi and ESBs OSGi is a pluggability and component model for Java Proven to be effective as the component approach for Eclipse Gaining strong traction with middleware vendors BEA/Oracle IBM SpringSource WSO2 Both ServiceMix and WSO2 ESB have strong OSGi basis ServiceMix Kernel WSO2 Carbon OSGi framework OSGi looks like a much stronger approach than JBI for plugging components into middleware runtimes
  • 31. Understanding an ESB I’m an expert on the WSO2 ESB and Apache Synapse Both share the same core engine and model Scenario walkthrough Similar approaches will work with other Open Source ESBs
  • 32.  
  • 33. Core model of the ESB Two main approaches “ Proxy” approach Messages come into a proxy Proxy = { inSequence, targetEndpoint, outSequence, faultSequence} Sequence = { ordered list of mediators } Mediator = Unit of function Rule/Policy based approach All messages come to a central sequence Sequence categorizes and routes requests based on the message Known in Synapse as the “main” sequence
  • 35. Built-in Mediators Drop (end) Sequence (call another sequence) Clone Callout (call a WS) Filter (if-then-else) Switch Iterate Aggregate Send Router Smooks (transform library) Rule (use a Rules engine) Entitlement (validate access against a XACML server) Property Header Validate DBReport DBLookup Class mediator Command Mediator Script Spring Throttle Cache XSLT XQuery
  • 36. Understanding performance Performance of an ESB can be critical Key Measurements are Throughput (can the ESB cope with the required load) Latency (does the ESB add unacceptable time) Concurrency (does the ESB run out of threads) Two key technologies Streaming and Streaming XML Ability to operate in constant memory and handle XML without building a full tree Non-blocking IO Ability to manage large numbers of connections with constant thread pool
  • 37. Case Study Mobile phone ringtone/media provider Every request goes via the ESB Performance and Streaming are critical Streaming and non-blocking are key Continuous Availability Ability to upgrade the system live Without losing transactions Under load
  • 38. Event Driven Architecture Event Architecture takes the SOA one step further towards loose-coupling than the previous patterns: Its up to you to publish to the right place Its up to you to subscribe to the right events You own the wiring too Allows for situational integration In the previous patterns the wiring was encoded into the ESB
  • 39. Eventing in Synapse Synapse Proxy Event Source Event Publisher Subs Mgr Subscriber Publisher Subscriber Subscriber subscribe Mediation Sequence
  • 40. Event Driven Architecture with a Master Data Pattern
  • 41. Governance and ESBs Governance is a key issue for SOA Governance is fundamentally about ensuring standards around Enterprise IT Policies People Processes ESBs can be very important for this Policy Enforcement Point Monitoring Point Central Access Point for enterprise services
  • 42. Summary We have Identified how ESBs fit into a Service Oriented Architecture Discussed when to use an ESB and when not to Looked at ESB patterns and anti-patterns Covered some simple ESB approaches Investigated how ESBs can fit into EDA
  • 44. Resources Reclaiming the ESB http://wso2.org/library/2913 Open Source SOA (book) by Jeff Davis http://www.manning.com/davis/ http://en.wikipedia.org/wiki/Enterprise_service_bus Apache Synapse http://synapse.apache.org WSO2 ESB http://wso2.org/esb