SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
ESBs and SOA

      Paul Fremantle
     paul@wso2.com
CTO and Co-Founder, WSO2
   VP, Apache Synapse
Service Oriented Architecture

• SOA is the best practce for building distributed
  interconnected systems
  – Using well-defned interactons between systems

  – Moving from proprietary formats to open formats:
     • XML, HTTP, SOAP

  – Integraton is dependent on external interfaces not on
    internal code
Bus concept
Busbar
A common ESB defniton

 “Any to any data connectvity and transformaton
   (including Web Services) built on an advanced,
   proven, reliable middleware infrastructure”
ESB defniton

 “Any to any data connectvity and transformaton
   (including Web Services) built on an advanced,
   proven, reliable middleware infrastructure”
 which means
 • Our existng middleware re-branded as an SOA
   platorm, with some new web services adapters at
   the edges
Jason Bloomberg, Zapthink

  “You're a sofware vendor with a product line chock full
  of proprietary, tghtly-coupled integraton middleware…

  Your sofware, however, does not lend itself to SOA best
  practces – loose coupling, composable Services, and
  fexibility in general are all capabilites that you failed to
  build           into          your          sofware…
  What to do? The only opton is to slap Web Services
  interfaces on your stuf, call it an Enterprise Service Bus
  (ESB), and sell it as SOA middleware. Hopefully your
  customers won't notce the old wine in new botles. Afer
  all, that's what marketng is for!”
My defniton 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

  • Locaton and Access
     – Scale up, failover, contngency
  • Programming Language
     – Work with available skills
     – Integrate old and new
  • Stack/Vendor
     – No te in to a partcular proprietary soluton
  • Time
     – Asynchronous interactons avoid gridlock
Do you need an ESB to do SOA?
Do you need an ESB to do SOA?
SOA can end up as spaghet




 • Too many point-to-point links
 • Multple protocols, diferent qualites of service
 • No clear picture of all available services
An ESB can simplify SOA deployment




                                     Virtualization
                                     Perf Mgmt
                                     •Load balance
                                     •Throttle
                                     Transport
                                      matching
                                     Access control
                                     Message
                                       transform
                                     Logging and
                                      auditability



                                                      Integrated
                                                       Registry/
                                                      Repository
                      Web-based console
Pragmatc SOA scenarios

• SOA has been seeded “botom-up” within a company, and now
  looking for a way to add order and consistency
• Looking to expose existng 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 throtling
• Startng to expose services to partners and require a soluton to
  managing access control, security keys and auditability
• Integratng Java and .NET systems with other stacks, need a
  simple independent way to manage WS-Security, Reliable
  Messaging
Apply those rules to an ESB

• Locaton and Access
   – Must provide virtualizaton, multple protocol support, transparency
• Programming Language
   – Minimal te 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 Paterns and Ant-Paterns

• How are ESBs used efectvely
• How are they abused
  – High-level paterns
     • How the ESB fts into an organizaton
     • How the ESB fts into an Enterprise Architecture
  – Low-level paterns
     • How the ESB fts into a specifc message fow or business problem
The Concentrator Patern


                        Mashup/Web Applicaton
                             Dashboard



                           Concentrator ESB
         Consistent access, security, logging, audit, monitoring
                        But no transformaton



    .NET           CRM            Apache
                                                  C/C++             Data
   service        service          Axis2
                                                  service          service
                                  service
The Federated ESB patern

                                         Department
                                            ESB


                   Enterprise ESB
                   Routng, Audit
     Department
        ESB


                                    Department
                                       ESB
The mini-ESB patern

•   Use a lightweight ESB
•   Co-locate on the same hardware/VM as the service
•   Transformaton, polling, protocol translaton, etc
•   Why?
    – In the control of the team who own the services
    – Keeps the SOA model (ownership) with a simple efectve
      approach to exposing services

• What about the embedded ESB model?
    – e.g. embed transformaton and logging into your Service
      Hostng platorm
Actve vs Passive

• The concentrator patern is efectvely passive
   – The ESB reacts to messages/requests from the front-end
• Actve ESBs:
   – Poll fle systems/FTP/SFTP for updated work
   – Actvely call remote services based on tmers
   – Integrate passive services
Scenario – Financial Security blocking




   Existing
   System
                                              XML/JMS


    legacy
    flat file                                           Existing
                                                        System
                               WSO2 ESB
                              Split/Iterate
                            DBLookup/Filter
                            Transform to MQ
                                  Send




   WSO2 ESB                    Database
     Poll
 Record->XML
  XML->XML
     Send
 NEW YORK                   LONDON
Push-Me Pull-You
Push-me Pull-you
Ant-Paterns

• Ant-Patern #1
  – Implement all your business logic in the ESB
  – Why not?
     • Mixing Infrastructure logic and Business Logic
     • Maintainability
     • Tooling and Skills
• Ant-Patern #2
  – Apply waterfall and applicaton deployment approaches to
    the ESB
     • Long project cycles
     • No iteratve approach
  – Why not?
     • Lose all fexibility and agility
     • Once the ESB becomes a statc, code-driven system then you would
       be beter of updatng your applicatons
Ant-Patern #3

• “Big Brother”
  – The ESB is hosted, managed and controlled by a central IT
    team
  – Because of organizatonal issues using the ESB is complex:
     • e.g.
         – It takes months of meetngs 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 communicatons
     • Avoid the ESB at all costs
The biggest Ant-Patern 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 litle market success
  – Failed to bring true portability
  – Based on a very code-centric deployment model inherited
    from J2EE
• JBI v2 was destned to fx those problems but has gone
  quiet
• Oracle/Sun acquisiton has also thrown doubt on JBI
Openness

• Since the only standard for portability is fawed, 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 efectve as the component approach for
  Eclipse
• Gaining strong tracton 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 runtmes
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 functon


  – 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)                    –   Property
   – Sequence (call another        –   Header
     sequence)                     –   Validate
   – Clone                         –   DBReport
   – Callout (call a WS)           –   DBLookup
   – Filter (if-then-else)         –   Class mediator
   – Switch                        –   Command Mediator
   – Iterate                       –   Script
   – Aggregate                     –   Spring
   – Send                          –   Throtle
   – Router                        –   Cache
   – Smooks (transform library)    –   XSLT
   – Rule (use a Rules engine)     –   XQuery
   – Enttlement (validate access
     against a XACML server)
Understanding performance

• Performance of an ESB can be critcal
• Key Measurements are
  – Throughput (can the ESB cope with the required load)
  – Latency (does the ESB add unacceptable tme)
  – 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 connectons with constant
       thread pool
Case Study

• Mobile phone ringtone/media provider
• Every request goes via the ESB
  – Performance and Streaming are critcal
  – Streaming and non-blocking are key
• Contnuous Availability
  – Ability to upgrade the system live
  – Without losing transactons
  – Under load
Event Driven Architecture

• Event Architecture takes the SOA one step further
  towards loose-coupling than the previous paterns:
   – 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 situatonal integraton

• In the previous paterns the wiring was encoded into
  the ESB
Eventng in Synapse

                            Synapse

                                                       Subscriber

                            Mediaton    Event          Subscriber
Publisher       Proxy       Sequence
                                       Publisher

                                                       Subscriber

                             Event
                            Source
                     Subs                  subscribe
                     Mgr
Event Driven Architecture with a Master Data
Patern
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
  –   Identfed how ESBs ft into a Service Oriented Architecture
  –   Discussed when to use an ESB and when not to
  –   Looked at ESB paterns and ant-paterns
  –   Covered some simple ESB approaches
  –   Investgated how ESBs can ft into EDA
Questons
Resources

• Reclaiming the ESB
  – htp://wso2.org/library/2913
• Open Source SOA (book) by Jef Davis
  – htp://www.manning.com/davis/
• htp://en.wikipedia.org/wiki/Enterprise_service_bus
• Apache Synapse
  – htp://synapse.apache.org
• WSO2 ESB
  – htp://wso2.org/esb

Contenu connexe

Tendances

Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPELOracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Guido Schmutz
 
Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus
WSO2
 
Integration of Web Service Stacks in an Esb
Integration of Web Service Stacks in an EsbIntegration of Web Service Stacks in an Esb
Integration of Web Service Stacks in an Esb
Wen Zhu
 

Tendances (20)

Overview of ESB at Azilen Tech Meetup
Overview of ESB at Azilen Tech MeetupOverview of ESB at Azilen Tech Meetup
Overview of ESB at Azilen Tech Meetup
 
Overview of SOA and the role of ESB / OSB
Overview of SOA and the role of ESB / OSBOverview of SOA and the role of ESB / OSB
Overview of SOA and the role of ESB / OSB
 
Introduction to Enterprise Service Bus
Introduction to Enterprise Service BusIntroduction to Enterprise Service Bus
Introduction to Enterprise Service Bus
 
oracle-osb
oracle-osboracle-osb
oracle-osb
 
Tactics Esb Implementation
Tactics Esb ImplementationTactics Esb Implementation
Tactics Esb Implementation
 
ESB Concepts
ESB ConceptsESB Concepts
ESB Concepts
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)
 
ESB Usage Scenarios and Patterns
ESB Usage Scenarios and PatternsESB Usage Scenarios and Patterns
ESB Usage Scenarios and Patterns
 
Why Enterprise Service Bus (ESB)
Why Enterprise Service Bus (ESB)Why Enterprise Service Bus (ESB)
Why Enterprise Service Bus (ESB)
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
Enterprise Service Bus Part 1
Enterprise Service Bus Part 1Enterprise Service Bus Part 1
Enterprise Service Bus Part 1
 
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPELOracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
Oracle Service Bus vs. Oracle Enterprise Service Bus vs. BPEL
 
Where to use OSB
Where to use OSBWhere to use OSB
Where to use OSB
 
Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus Enterprise Use Case - Selecting an Enterprise Service Bus
Enterprise Use Case - Selecting an Enterprise Service Bus
 
Enterprise service bus
Enterprise service busEnterprise service bus
Enterprise service bus
 
Enterprise Service Bus Part 2
Enterprise Service Bus Part 2Enterprise Service Bus Part 2
Enterprise Service Bus Part 2
 
Integration of Web Service Stacks in an Esb
Integration of Web Service Stacks in an EsbIntegration of Web Service Stacks in an Esb
Integration of Web Service Stacks in an Esb
 
Enterprise service bus part 1
Enterprise service bus part 1Enterprise service bus part 1
Enterprise service bus part 1
 
Reusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11gReusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11g
 
SOA Suite 12c - Service Bus new features summary
SOA Suite 12c - Service Bus new features summarySOA Suite 12c - Service Bus new features summary
SOA Suite 12c - Service Bus new features summary
 

En vedette

Enterprise Integration made easy with WSO2 ESB
Enterprise Integration made easy with WSO2 ESBEnterprise Integration made easy with WSO2 ESB
Enterprise Integration made easy with WSO2 ESB
WSO2
 

En vedette (20)

Desafiando las transformaciones con WSO2 ESB
Desafiando las transformaciones con WSO2 ESBDesafiando las transformaciones con WSO2 ESB
Desafiando las transformaciones con WSO2 ESB
 
Webinar Smile et WSO2 ESB, vers une architecture orientée service, ouverte et...
Webinar Smile et WSO2 ESB, vers une architecture orientée service, ouverte et...Webinar Smile et WSO2 ESB, vers une architecture orientée service, ouverte et...
Webinar Smile et WSO2 ESB, vers une architecture orientée service, ouverte et...
 
Mule connectors
Mule connectorsMule connectors
Mule connectors
 
Administration and Management with UltraESB
Administration and Management with UltraESBAdministration and Management with UltraESB
Administration and Management with UltraESB
 
Siddhi CEP 2nd sideshow presentation
Siddhi CEP 2nd sideshow presentationSiddhi CEP 2nd sideshow presentation
Siddhi CEP 2nd sideshow presentation
 
Debug Program in Mule
Debug Program in MuleDebug Program in Mule
Debug Program in Mule
 
Developer’s viewpoint on swift programming language
Developer’s viewpoint on swift programming languageDeveloper’s viewpoint on swift programming language
Developer’s viewpoint on swift programming language
 
Siddhi CEP 1st presentation
Siddhi CEP 1st presentationSiddhi CEP 1st presentation
Siddhi CEP 1st presentation
 
ESB 4.9.0 extension points, Connectors and Inbound Endpoints
ESB 4.9.0 extension points, Connectors and Inbound Endpoints ESB 4.9.0 extension points, Connectors and Inbound Endpoints
ESB 4.9.0 extension points, Connectors and Inbound Endpoints
 
Wso2 esb
Wso2 esbWso2 esb
Wso2 esb
 
Enterprise Integration made easy with WSO2 ESB
Enterprise Integration made easy with WSO2 ESBEnterprise Integration made easy with WSO2 ESB
Enterprise Integration made easy with WSO2 ESB
 
Systems management - UltraESB
Systems management - UltraESBSystems management - UltraESB
Systems management - UltraESB
 
Magento 2.0 - eCommerce Web Portal Solutions | Case Study
Magento 2.0 - eCommerce Web Portal Solutions | Case StudyMagento 2.0 - eCommerce Web Portal Solutions | Case Study
Magento 2.0 - eCommerce Web Portal Solutions | Case Study
 
Microintegration
MicrointegrationMicrointegration
Microintegration
 
WSO2 Gateway
WSO2 GatewayWSO2 Gateway
WSO2 Gateway
 
Mulesoft - Documentation (Automation)
Mulesoft - Documentation (Automation)Mulesoft - Documentation (Automation)
Mulesoft - Documentation (Automation)
 
Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0 Deep-dive into WSO2 ESB 5.0
Deep-dive into WSO2 ESB 5.0
 
WSO2-ESB - The backbone of Enterprise Integration
WSO2-ESB - The backbone of Enterprise IntegrationWSO2-ESB - The backbone of Enterprise Integration
WSO2-ESB - The backbone of Enterprise Integration
 
System Configuration for UltraESB
System Configuration for UltraESBSystem Configuration for UltraESB
System Configuration for UltraESB
 
Liferay (DXP) 7 Tech Meetup for Developers
Liferay (DXP) 7 Tech Meetup for DevelopersLiferay (DXP) 7 Tech Meetup for Developers
Liferay (DXP) 7 Tech Meetup for Developers
 

Similaire à WSO2 ESB and SOA

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
 
Webbinar slides
Webbinar slidesWebbinar slides
Webbinar slides
WSO2
 
Ss Esb
Ss EsbSs Esb
Ss Esb
WSO2
 
Ss Esb
Ss EsbSs Esb
Ss Esb
WSO2
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
Ss Wrap Up Session 13 Aug
Ss Wrap Up Session 13 AugSs Wrap Up Session 13 Aug
Ss Wrap Up Session 13 Aug
WSO2
 
ESB and Mule ESB solution
ESB and Mule ESB solutionESB and Mule ESB solution
ESB and Mule ESB solution
Swati Bansal
 
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
 
Esb buyers guide_final
Esb buyers guide_finalEsb buyers guide_final
Esb buyers guide_final
WSO2
 
A Buyers Guide to an Enterprise Service Bus (ESB)
A Buyers Guide to an Enterprise Service Bus (ESB)A Buyers Guide to an Enterprise Service Bus (ESB)
A Buyers Guide to an Enterprise Service Bus (ESB)
WSO2
 
Exploring the WSO2 ESB 4.7
Exploring the WSO2 ESB 4.7 Exploring the WSO2 ESB 4.7
Exploring the WSO2 ESB 4.7
WSO2
 
Integration Solution Patterns
Integration Solution Patterns Integration Solution Patterns
Integration Solution Patterns
WSO2
 
High Volume Web API Management with WSO2 ESB
High Volume Web API Management with WSO2 ESBHigh Volume Web API Management with WSO2 ESB
High Volume Web API Management with WSO2 ESB
WSO2
 

Similaire à WSO2 ESB and SOA (20)

Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Service Oriented Architecture (SOA) [2/5] : Enterprise Service BusService Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
 
Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB Enterprise Integration with the WSO2 ESB
Enterprise Integration with the WSO2 ESB
 
Enterprise Service Bus and JBI
Enterprise Service Bus and JBIEnterprise Service Bus and JBI
Enterprise Service Bus and JBI
 
Webbinar slides
Webbinar slidesWebbinar slides
Webbinar slides
 
Ss Esb
Ss EsbSs Esb
Ss Esb
 
Ss Esb
Ss EsbSs Esb
Ss Esb
 
Wso2 esb
Wso2 esbWso2 esb
Wso2 esb
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
 
Ss Wrap Up Session 13 Aug
Ss Wrap Up Session 13 AugSs Wrap Up Session 13 Aug
Ss Wrap Up Session 13 Aug
 
SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session SOA Summer School: Best of SOA Summer School – Encore Session
SOA Summer School: Best of SOA Summer School – Encore Session
 
ESB and Mule ESB solution
ESB and Mule ESB solutionESB and Mule ESB solution
ESB and Mule ESB solution
 
Mule ESB - Why and how?
Mule ESB - Why and how?Mule ESB - Why and how?
Mule ESB - Why and how?
 
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
 
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep DiveWSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
 
Esb buyers guide_final
Esb buyers guide_finalEsb buyers guide_final
Esb buyers guide_final
 
A Buyers Guide to an Enterprise Service Bus (ESB)
A Buyers Guide to an Enterprise Service Bus (ESB)A Buyers Guide to an Enterprise Service Bus (ESB)
A Buyers Guide to an Enterprise Service Bus (ESB)
 
Exploring the WSO2 ESB 4.7
Exploring the WSO2 ESB 4.7 Exploring the WSO2 ESB 4.7
Exploring the WSO2 ESB 4.7
 
Integration Solution Patterns
Integration Solution Patterns Integration Solution Patterns
Integration Solution Patterns
 
Do We Need Esb Any More
Do We Need Esb Any MoreDo We Need Esb Any More
Do We Need Esb Any More
 
High Volume Web API Management with WSO2 ESB
High Volume Web API Management with WSO2 ESBHigh Volume Web API Management with WSO2 ESB
High Volume Web API Management with WSO2 ESB
 

Plus de WSO2

Plus de 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...
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 

WSO2 ESB and SOA

  • 1. ESBs and SOA Paul Fremantle paul@wso2.com CTO and Co-Founder, WSO2 VP, Apache Synapse
  • 2. Service Oriented Architecture • SOA is the best practce for building distributed interconnected systems – Using well-defned interactons between systems – Moving from proprietary formats to open formats: • XML, HTTP, SOAP – Integraton is dependent on external interfaces not on internal code
  • 5. A common ESB defniton “Any to any data connectvity and transformaton (including Web Services) built on an advanced, proven, reliable middleware infrastructure”
  • 6. ESB defniton “Any to any data connectvity and transformaton (including Web Services) built on an advanced, proven, reliable middleware infrastructure” which means • Our existng middleware re-branded as an SOA platorm, with some new web services adapters at the edges
  • 7. Jason Bloomberg, Zapthink “You're a sofware vendor with a product line chock full of proprietary, tghtly-coupled integraton middleware… Your sofware, however, does not lend itself to SOA best practces – loose coupling, composable Services, and fexibility in general are all capabilites that you failed to build into your sofware… What to do? The only opton is to slap Web Services interfaces on your stuf, call it an Enterprise Service Bus (ESB), and sell it as SOA middleware. Hopefully your customers won't notce the old wine in new botles. Afer all, that's what marketng is for!”
  • 8. My defniton 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 • Locaton and Access – Scale up, failover, contngency • Programming Language – Work with available skills – Integrate old and new • Stack/Vendor – No te in to a partcular proprietary soluton • Time – Asynchronous interactons 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 spaghet • Too many point-to-point links • Multple protocols, diferent qualites of service • No clear picture of all available services
  • 13. An ESB can simplify SOA deployment Virtualization Perf Mgmt •Load balance •Throttle Transport matching Access control Message transform Logging and auditability Integrated Registry/ Repository Web-based console
  • 14. Pragmatc SOA scenarios • SOA has been seeded “botom-up” within a company, and now looking for a way to add order and consistency • Looking to expose existng 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 throtling • Startng to expose services to partners and require a soluton to managing access control, security keys and auditability • Integratng 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 • Locaton and Access – Must provide virtualizaton, multple protocol support, transparency • Programming Language – Minimal te 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 Paterns and Ant-Paterns • How are ESBs used efectvely • How are they abused – High-level paterns • How the ESB fts into an organizaton • How the ESB fts into an Enterprise Architecture – Low-level paterns • How the ESB fts into a specifc message fow or business problem
  • 17. The Concentrator Patern Mashup/Web Applicaton Dashboard Concentrator ESB Consistent access, security, logging, audit, monitoring But no transformaton .NET CRM Apache C/C++ Data service service Axis2 service service service
  • 18. The Federated ESB patern Department ESB Enterprise ESB Routng, Audit Department ESB Department ESB
  • 19. The mini-ESB patern • Use a lightweight ESB • Co-locate on the same hardware/VM as the service • Transformaton, polling, protocol translaton, etc • Why? – In the control of the team who own the services – Keeps the SOA model (ownership) with a simple efectve approach to exposing services • What about the embedded ESB model? – e.g. embed transformaton and logging into your Service Hostng platorm
  • 20. Actve vs Passive • The concentrator patern is efectvely passive – The ESB reacts to messages/requests from the front-end • Actve ESBs: – Poll fle systems/FTP/SFTP for updated work – Actvely call remote services based on tmers – Integrate passive services
  • 21. Scenario – Financial Security blocking Existing System XML/JMS legacy flat file Existing System WSO2 ESB Split/Iterate DBLookup/Filter Transform to MQ Send WSO2 ESB Database Poll Record->XML XML->XML Send NEW YORK LONDON
  • 24. Ant-Paterns • Ant-Patern #1 – Implement all your business logic in the ESB – Why not? • Mixing Infrastructure logic and Business Logic • Maintainability • Tooling and Skills • Ant-Patern #2 – Apply waterfall and applicaton deployment approaches to the ESB • Long project cycles • No iteratve approach – Why not? • Lose all fexibility and agility • Once the ESB becomes a statc, code-driven system then you would be beter of updatng your applicatons
  • 25. Ant-Patern #3 • “Big Brother” – The ESB is hosted, managed and controlled by a central IT team – Because of organizatonal issues using the ESB is complex: • e.g. – It takes months of meetngs 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 communicatons • Avoid the ESB at all costs
  • 26. The biggest Ant-Patern 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 litle market success – Failed to bring true portability – Based on a very code-centric deployment model inherited from J2EE • JBI v2 was destned to fx those problems but has gone quiet • Oracle/Sun acquisiton has also thrown doubt on JBI
  • 29. Openness • Since the only standard for portability is fawed, 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 efectve as the component approach for Eclipse • Gaining strong tracton 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 runtmes
  • 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 functon – 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) – Property – Sequence (call another – Header sequence) – Validate – Clone – DBReport – Callout (call a WS) – DBLookup – Filter (if-then-else) – Class mediator – Switch – Command Mediator – Iterate – Script – Aggregate – Spring – Send – Throtle – Router – Cache – Smooks (transform library) – XSLT – Rule (use a Rules engine) – XQuery – Enttlement (validate access against a XACML server)
  • 36. Understanding performance • Performance of an ESB can be critcal • Key Measurements are – Throughput (can the ESB cope with the required load) – Latency (does the ESB add unacceptable tme) – 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 connectons with constant thread pool
  • 37. Case Study • Mobile phone ringtone/media provider • Every request goes via the ESB – Performance and Streaming are critcal – Streaming and non-blocking are key • Contnuous Availability – Ability to upgrade the system live – Without losing transactons – Under load
  • 38. Event Driven Architecture • Event Architecture takes the SOA one step further towards loose-coupling than the previous paterns: – 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 situatonal integraton • In the previous paterns the wiring was encoded into the ESB
  • 39. Eventng in Synapse Synapse Subscriber Mediaton Event Subscriber Publisher Proxy Sequence Publisher Subscriber Event Source Subs subscribe Mgr
  • 40. Event Driven Architecture with a Master Data Patern
  • 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 – Identfed how ESBs ft into a Service Oriented Architecture – Discussed when to use an ESB and when not to – Looked at ESB paterns and ant-paterns – Covered some simple ESB approaches – Investgated how ESBs can ft into EDA
  • 44. Resources • Reclaiming the ESB – htp://wso2.org/library/2913 • Open Source SOA (book) by Jef Davis – htp://www.manning.com/davis/ • htp://en.wikipedia.org/wiki/Enterprise_service_bus • Apache Synapse – htp://synapse.apache.org • WSO2 ESB – htp://wso2.org/esb