SlideShare a Scribd company logo
1 of 24
Introduction to ESBs:
Mule
Agenda
• What is an ESB?
• Java Business Integration (JBI)
• Mule Architecture
• Mule in the Real World
Source Material
• [Ric] Mark Richards, “The Role of the
Enterprise Service Bus”, NFJS, Oct 23, 2006.
http://www.infoq.com/presentations/Enterprise-Service-Bus
• [Mul] Mule Architecture Guide.
http://mule.mulesource.org/display/MULE/Architecture+Guide
• September [mule-user archive]
Problems Addressed by ESBs
• Integration of existing systems
• Refactorable in real time
• Flexibility to change as requirements change
• Decentralized (service-location transparency)
• Scalable (point solutions to full enterprise)
• Sharing of services across enterprise
• Ability to separate Business Services from
Service Implementations
• Leverages standards
Definition(s)
Gartner Group
Giant exercise in Separation of Concerns
[Ric]
Definitions (more)
www.datapower.com
[Ric]
ESB Features
• Routing
• Message Transformation
• Message Enhancement
• Protocol Transformation
• Service Mapping
 Message Processing
 Process Choreography
 Service Orchestration
 Transaction Management
 Security
[Ric]
An ESB Blueprint
General case
Client calls Choreographer Client calls Mediator
vs
[Ric]
Java Business Integration (JBI)
• JSR-208 Standard
• Defines service engines (SE – choreographers,
transformers, security, etc) and binding components (BC –
xml, http, etc)
• Concerned with how internal customers (not external
services) interact with service providers
COTS
[Ric]
JBI Example
• XSLT – message transformation
• PXE – choreography
• Groovy – scripting
[Ric]
JBI Case Study: Service Mix
Service Mix
Binding Components
Service Engines
[Ric]
Mule Architecture
[Mule]
Mule Flow View
• Channel – a method of connecting between two points (not part of
Mule)
• Connector – a transport provider (e.g., http, jms, soap, smtp, etc)
implementing message receive and message dispatch
• Transformer – converts message structure/format (e.g., http to xml)
• Router – moves messages amongst UMOs and connectors
[Mule]
Mule Connector View
http://myapp.com pop3://user@userland.comhttp→xml xml→pop3
myUMO (xml→xml)
[Mule]
Mule Transports
• AS400 DQ
• EJB
• E-mail
• File
• FTP
• HTTP
• IMAP
• JDBC
 JMS
 Multicast
 POP3
 Quartz
RMI
 Servlet
 SMTP
 SOAP
 SSL
 Stream
 TCP
 UDP
 VFS
 VM
 WSDL
 XMPP
UMO Execution
• Requires a component resolver (e.g., Spring or
Pico) for
– Instantiation of UMOs
– Configuration of UMOs
• Event processing
– Asynchronous
– Synchronous
– Request-Response
[Mule]
Mule Programming Model
Application logic
Application glue
Mule glue
[Mule]
Mule Routers
[Mule]
Selective Consumer (inbound)
• Applies one or more filters to incoming payload, then
branch based on filter
<inbound-router>
<catch-all-strategy
className="org.mule.routing.ForwardingCatchAllStrategy">
<endpoint address="jms://topic:error.topic"/>
</catch-all-strategy>
<router
className="org.mule.routing.inbound.SelectiveConsumer">
<filter expression="msg/header/resultcode = 'success'"
className="org.mule.routing.filters.xml.JXPathFilter"/>
</router>
</inbound-router>
Filtering Outbound (outbound)
<outbound-router>
<catch-all-strategy
className="org.mule.routing.ForwardingCatchAllStrategy">
<endpoint="jms://error.queue"/>
</catch-all-strategy>
<router className="org.mule.routing.outbound.FilteringOutboundRouter">
<endpoint address="smtp://ross@muleumo.org"/>
<filter expectedType="java.lang.Exception"
className="org.mule.routing.filters.PayloadTypeFilter"/>
</router>
<router className="org.mule.routing.outbound.FilteringOutboundRouter">
<endpoint address="jms://string.queue"/>
<filter className="org.mule.routing.filters.logic.AndFilter">
<left-filter expectedType="java.lang.String"
className="org.mule.routing.filters.PayloadTypeFilter"/>
<right-filter pattern="the quick brown (.*)"
className="org.mule.routing.filters.RegExFilter"/>
</filter>
</router>
</outbound-router>
Nested Router
• Allows synchronous callouts that can be intercepted and routed
<mule-descriptor name="InvokerComponent"
implementation="org.mule.foo.Invoker">
<inbound-router>
<endpoint address="jms://Invoker.in"/>
</inbound-router>
<nested-router>
<binding interface="org.mule.foo.HelloInterface">
<endpoint
address="axis:http://192.168.2.14:81/services/HelloWebComponent?
method=helloMethod" remoteSync="true"/>
</binding>
</nested-router>
<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint address="jms://Invoker.out"/>
</router>
</outbound-router>
</mule-descriptor>
Dog Days with Mule
• September [mule-user archive]
– How to get a hold of Endpoint object from the
component? {mule}
– Failed to throw UserDefined Exception {jaxws}
– Failed to invoke lifecycle “start” using CXF in
JBOSS {cxf}
– Problem in loading xsd files {mule}
– Problems with RemoteDispatcher {mule}
– Inject MuleClient Singleton with Spring {mule}
– Mule transaction support {mule}
ESB Features
• Routing
• Message Transformation
• Message Enhancement
• Protocol Transformation
• Service Mapping
 Message Processing
 Process Choreography
 Service Orchestration
 Transaction Management
 Security
X
X
√
√
√
√
√
Take Away Messages
• Mule’s generality results in great flexibility, but at the cost of
great complexity for users
• Mule is the focal point of ambiguity and difficulties with many
standards-based packages
• Mule delivers (to a degree) on:
– Integration, flexibility, decentralized operation, scalability
• Mule doesn’t deliver (so much) on:
– Runtime refactoring, conceptualization

More Related Content

What's hot

Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introductionSon Nguyen
 
Mule - beginners guide
Mule - beginners guideMule - beginners guide
Mule - beginners guideSindhu VL
 
Introduction to mule esb
Introduction to mule esbIntroduction to mule esb
Introduction to mule esbKhasim Cise
 
Mule overview
Mule overviewMule overview
Mule overviewF K
 
Core concepts - mule
Core concepts - muleCore concepts - mule
Core concepts - muleSindhu VL
 
Mule Cloudhub Connector
Mule Cloudhub ConnectorMule Cloudhub Connector
Mule Cloudhub ConnectorAnkush Sharma
 
What is the difference between using private flow
What is the difference between using private flowWhat is the difference between using private flow
What is the difference between using private flowSon Nguyen
 
Rabbit Mq in Mule
Rabbit Mq in MuleRabbit Mq in Mule
Rabbit Mq in MuleMohammed246
 
Message structure
Message structureMessage structure
Message structureSon Nguyen
 
Mule Amazon SNS Connector
Mule Amazon SNS ConnectorMule Amazon SNS Connector
Mule Amazon SNS ConnectorAnkush Sharma
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Srikanth N
 
Introduction to es bs mule
Introduction to es bs   muleIntroduction to es bs   mule
Introduction to es bs muleAchyuta Lakshmi
 
Mule esb made system integration easy
Mule esb made system integration easyMule esb made system integration easy
Mule esb made system integration easySudha Ch
 

What's hot (20)

Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
 
Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introduction
 
Mule - beginners guide
Mule - beginners guideMule - beginners guide
Mule - beginners guide
 
Introduction to mule esb
Introduction to mule esbIntroduction to mule esb
Introduction to mule esb
 
Mule overview
Mule overviewMule overview
Mule overview
 
Mule overview
Mule overviewMule overview
Mule overview
 
Webservice vm in mule
Webservice vm in muleWebservice vm in mule
Webservice vm in mule
 
Mule soa
Mule soaMule soa
Mule soa
 
Mule overview-ppt
Mule overview-pptMule overview-ppt
Mule overview-ppt
 
Core concepts - mule
Core concepts - muleCore concepts - mule
Core concepts - mule
 
Mule Cloudhub Connector
Mule Cloudhub ConnectorMule Cloudhub Connector
Mule Cloudhub Connector
 
What is the difference between using private flow
What is the difference between using private flowWhat is the difference between using private flow
What is the difference between using private flow
 
Rabbit Mq in Mule
Rabbit Mq in MuleRabbit Mq in Mule
Rabbit Mq in Mule
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
 
Message structure
Message structureMessage structure
Message structure
 
Mule Amazon SNS Connector
Mule Amazon SNS ConnectorMule Amazon SNS Connector
Mule Amazon SNS Connector
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2
 
Introduction to es bs mule
Introduction to es bs   muleIntroduction to es bs   mule
Introduction to es bs mule
 
Mule rabbit mq
Mule rabbit mqMule rabbit mq
Mule rabbit mq
 
Mule esb made system integration easy
Mule esb made system integration easyMule esb made system integration easy
Mule esb made system integration easy
 

Similar to Mule esb introduction

Introduction to esbs mule
Introduction to esbs  muleIntroduction to esbs  mule
Introduction to esbs mulemanavp
 
Introduction to mule esb's
Introduction to mule esb's Introduction to mule esb's
Introduction to mule esb's F K
 
Introduction to es bs mule
Introduction to es bs   muleIntroduction to es bs   mule
Introduction to es bs mulebdemchak
 
Global Scale ESB with Mule
Global Scale ESB with MuleGlobal Scale ESB with Mule
Global Scale ESB with MuleAndrew Kennedy
 
Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service busThang Loi
 
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftReal world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftChristian Posta
 
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftReal-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftChristian Posta
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africamagnifics
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africamagnificsairam
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africamagnificsmile
 
Mule and web services
Mule and web servicesMule and web services
Mule and web servicesManav Prasad
 
Mule web services
Mule web servicesMule web services
Mule web servicesThang Loi
 
Introduction to mule Esbs
Introduction to mule EsbsIntroduction to mule Esbs
Introduction to mule EsbsPrabhat gangwar
 
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
 
Paa sing a java ee 6 application kshitiz saxena
Paa sing a java ee 6 application   kshitiz saxenaPaa sing a java ee 6 application   kshitiz saxena
Paa sing a java ee 6 application kshitiz saxenaIndicThreads
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1WSO2
 

Similar to Mule esb introduction (20)

Introduction to esbs mule
Introduction to esbs  muleIntroduction to esbs  mule
Introduction to esbs mule
 
Introduction to mule esb's
Introduction to mule esb's Introduction to mule esb's
Introduction to mule esb's
 
Introduction to es bs mule
Introduction to es bs   muleIntroduction to es bs   mule
Introduction to es bs mule
 
Global Scale ESB with Mule
Global Scale ESB with MuleGlobal Scale ESB with Mule
Global Scale ESB with Mule
 
EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
 
Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service bus
 
Oracle OpenWorld 2014 Review Part Four - PaaS Middleware
Oracle OpenWorld 2014 Review Part Four - PaaS MiddlewareOracle OpenWorld 2014 Review Part Four - PaaS Middleware
Oracle OpenWorld 2014 Review Part Four - PaaS Middleware
 
Real world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShiftReal world #microservices with Apache Camel, Fabric8, and OpenShift
Real world #microservices with Apache Camel, Fabric8, and OpenShift
 
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftReal-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
 
Mule overview
Mule overviewMule overview
Mule overview
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africa
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africa
 
Oracle fusion soa online training in africa
Oracle fusion soa online training in africaOracle fusion soa online training in africa
Oracle fusion soa online training in africa
 
Mule and web services
Mule and web servicesMule and web services
Mule and web services
 
Mule web services
Mule web servicesMule web services
Mule web services
 
Introduction to mule Esbs
Introduction to mule EsbsIntroduction to mule Esbs
Introduction to mule Esbs
 
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
 
Paa sing a java ee 6 application kshitiz saxena
Paa sing a java ee 6 application   kshitiz saxenaPaa sing a java ee 6 application   kshitiz saxena
Paa sing a java ee 6 application kshitiz saxena
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1
 

More from Mohammed625

Mule with drools
Mule with drools Mule with drools
Mule with drools Mohammed625
 
Creating dynamic json
Creating dynamic json Creating dynamic json
Creating dynamic json Mohammed625
 
Simple groovy example in mule
Simple groovy example in mule Simple groovy example in mule
Simple groovy example in mule Mohammed625
 
Webservice with vm in mule
Webservice with vm in mule Webservice with vm in mule
Webservice with vm in mule Mohammed625
 
Mule with stored procedure
Mule with stored procedureMule with stored procedure
Mule with stored procedureMohammed625
 
Deploying and running in mule standalone
Deploying and running in mule standaloneDeploying and running in mule standalone
Deploying and running in mule standaloneMohammed625
 
Mule real world old
Mule real world oldMule real world old
Mule real world oldMohammed625
 
Scatter gather in mule
Scatter gather in muleScatter gather in mule
Scatter gather in muleMohammed625
 
Xml to xml transformation in mule
Xml to xml transformation in muleXml to xml transformation in mule
Xml to xml transformation in muleMohammed625
 
Java multithreading
Java multithreadingJava multithreading
Java multithreadingMohammed625
 
WebServices using Soap
WebServices using SoapWebServices using Soap
WebServices using SoapMohammed625
 

More from Mohammed625 (15)

Mule with drools
Mule with drools Mule with drools
Mule with drools
 
Creating dynamic json
Creating dynamic json Creating dynamic json
Creating dynamic json
 
Simple groovy example in mule
Simple groovy example in mule Simple groovy example in mule
Simple groovy example in mule
 
Webservice with vm in mule
Webservice with vm in mule Webservice with vm in mule
Webservice with vm in mule
 
Mule with stored procedure
Mule with stored procedureMule with stored procedure
Mule with stored procedure
 
Deploying and running in mule standalone
Deploying and running in mule standaloneDeploying and running in mule standalone
Deploying and running in mule standalone
 
Mule real world old
Mule real world oldMule real world old
Mule real world old
 
Mule technology
Mule technologyMule technology
Mule technology
 
Presentation
PresentationPresentation
Presentation
 
Scatter gather in mule
Scatter gather in muleScatter gather in mule
Scatter gather in mule
 
Xml to xml transformation in mule
Xml to xml transformation in muleXml to xml transformation in mule
Xml to xml transformation in mule
 
Java multithreading
Java multithreadingJava multithreading
Java multithreading
 
WebServices using Soap
WebServices using SoapWebServices using Soap
WebServices using Soap
 
Sunstate
SunstateSunstate
Sunstate
 
MuleEsb
MuleEsbMuleEsb
MuleEsb
 

Recently uploaded

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 organizationRadu Cotescu
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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 AutomationSafe Software
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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.pdfsudhanshuwaghmare1
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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 DiscoveryTrustArc
 
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...DianaGray10
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Recently uploaded (20)

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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Mule esb introduction

  • 2. Agenda • What is an ESB? • Java Business Integration (JBI) • Mule Architecture • Mule in the Real World
  • 3. Source Material • [Ric] Mark Richards, “The Role of the Enterprise Service Bus”, NFJS, Oct 23, 2006. http://www.infoq.com/presentations/Enterprise-Service-Bus • [Mul] Mule Architecture Guide. http://mule.mulesource.org/display/MULE/Architecture+Guide • September [mule-user archive]
  • 4. Problems Addressed by ESBs • Integration of existing systems • Refactorable in real time • Flexibility to change as requirements change • Decentralized (service-location transparency) • Scalable (point solutions to full enterprise) • Sharing of services across enterprise • Ability to separate Business Services from Service Implementations • Leverages standards
  • 5. Definition(s) Gartner Group Giant exercise in Separation of Concerns [Ric]
  • 7. ESB Features • Routing • Message Transformation • Message Enhancement • Protocol Transformation • Service Mapping  Message Processing  Process Choreography  Service Orchestration  Transaction Management  Security [Ric]
  • 8. An ESB Blueprint General case Client calls Choreographer Client calls Mediator vs [Ric]
  • 9. Java Business Integration (JBI) • JSR-208 Standard • Defines service engines (SE – choreographers, transformers, security, etc) and binding components (BC – xml, http, etc) • Concerned with how internal customers (not external services) interact with service providers COTS [Ric]
  • 10. JBI Example • XSLT – message transformation • PXE – choreography • Groovy – scripting [Ric]
  • 11. JBI Case Study: Service Mix Service Mix Binding Components Service Engines [Ric]
  • 13. Mule Flow View • Channel – a method of connecting between two points (not part of Mule) • Connector – a transport provider (e.g., http, jms, soap, smtp, etc) implementing message receive and message dispatch • Transformer – converts message structure/format (e.g., http to xml) • Router – moves messages amongst UMOs and connectors [Mule]
  • 14. Mule Connector View http://myapp.com pop3://user@userland.comhttp→xml xml→pop3 myUMO (xml→xml) [Mule]
  • 15. Mule Transports • AS400 DQ • EJB • E-mail • File • FTP • HTTP • IMAP • JDBC  JMS  Multicast  POP3  Quartz RMI  Servlet  SMTP  SOAP  SSL  Stream  TCP  UDP  VFS  VM  WSDL  XMPP
  • 16. UMO Execution • Requires a component resolver (e.g., Spring or Pico) for – Instantiation of UMOs – Configuration of UMOs • Event processing – Asynchronous – Synchronous – Request-Response [Mule]
  • 17. Mule Programming Model Application logic Application glue Mule glue [Mule]
  • 19. Selective Consumer (inbound) • Applies one or more filters to incoming payload, then branch based on filter <inbound-router> <catch-all-strategy className="org.mule.routing.ForwardingCatchAllStrategy"> <endpoint address="jms://topic:error.topic"/> </catch-all-strategy> <router className="org.mule.routing.inbound.SelectiveConsumer"> <filter expression="msg/header/resultcode = 'success'" className="org.mule.routing.filters.xml.JXPathFilter"/> </router> </inbound-router>
  • 20. Filtering Outbound (outbound) <outbound-router> <catch-all-strategy className="org.mule.routing.ForwardingCatchAllStrategy"> <endpoint="jms://error.queue"/> </catch-all-strategy> <router className="org.mule.routing.outbound.FilteringOutboundRouter"> <endpoint address="smtp://ross@muleumo.org"/> <filter expectedType="java.lang.Exception" className="org.mule.routing.filters.PayloadTypeFilter"/> </router> <router className="org.mule.routing.outbound.FilteringOutboundRouter"> <endpoint address="jms://string.queue"/> <filter className="org.mule.routing.filters.logic.AndFilter"> <left-filter expectedType="java.lang.String" className="org.mule.routing.filters.PayloadTypeFilter"/> <right-filter pattern="the quick brown (.*)" className="org.mule.routing.filters.RegExFilter"/> </filter> </router> </outbound-router>
  • 21. Nested Router • Allows synchronous callouts that can be intercepted and routed <mule-descriptor name="InvokerComponent" implementation="org.mule.foo.Invoker"> <inbound-router> <endpoint address="jms://Invoker.in"/> </inbound-router> <nested-router> <binding interface="org.mule.foo.HelloInterface"> <endpoint address="axis:http://192.168.2.14:81/services/HelloWebComponent? method=helloMethod" remoteSync="true"/> </binding> </nested-router> <outbound-router> <router className="org.mule.routing.outbound.OutboundPassThroughRouter"> <endpoint address="jms://Invoker.out"/> </router> </outbound-router> </mule-descriptor>
  • 22. Dog Days with Mule • September [mule-user archive] – How to get a hold of Endpoint object from the component? {mule} – Failed to throw UserDefined Exception {jaxws} – Failed to invoke lifecycle “start” using CXF in JBOSS {cxf} – Problem in loading xsd files {mule} – Problems with RemoteDispatcher {mule} – Inject MuleClient Singleton with Spring {mule} – Mule transaction support {mule}
  • 23. ESB Features • Routing • Message Transformation • Message Enhancement • Protocol Transformation • Service Mapping  Message Processing  Process Choreography  Service Orchestration  Transaction Management  Security X X √ √ √ √ √
  • 24. Take Away Messages • Mule’s generality results in great flexibility, but at the cost of great complexity for users • Mule is the focal point of ambiguity and difficulties with many standards-based packages • Mule delivers (to a degree) on: – Integration, flexibility, decentralized operation, scalability • Mule doesn’t deliver (so much) on: – Runtime refactoring, conceptualization

Editor's Notes

  1. Routing – ability to channel a request to a particular service provider based on deterministic or variable routing criteria (e.g., static/deterministic, content-based, policy-based, or complex rule-based) Message Transformation – ability to convert the structure and format of the incoming business service request to the structure and format expected by the service provider (e.g., xml→xml, xml→Cobol Copybook, object→xml) Message Enhancement – ability to add or modify the information contained in the message as required by the service provider (e.g., date format conversion, supplemental data, data conversion, rules-based enhancement) Protocol Transformation – The ability to accept one type of protocol from the consumer as input (e.g., SOAP/JMS) and communicate to the service provider through a different protocol (e.g., IIOP) – concerned with message structure, not payload – has attributes of physical connection and logical connectivity Service Mapping – The ability to translate a business service into the corresponding service implementation and provide binding and location information (includes implementation service name, service protocols and binding information, protocol-specific information, service-specific routing information) Message Processing – The ability to manage state and perform request management by accepting an input request and ensuring delivery back to the client via message synchronization Process Choreography – The ability to manage complex business processes that require the coordination of multiple business services to fulfill a single business service request (usually BPEL-based, often a manifestation of a use case or business process) Service Orchestration – The ability to manage the coordination of multiple implementation services (usually inter-service communication or aggregate services) Transaction Management – The ability to provide a single unit of work for a business service request by providing a framework for the coordination of multiple resources across multiple disparate services (e.g., compensatory transactional framework, WS-Coordination or JSR-95 Activity Service) Security – The ability to protect enterprise services from unauthorized access (e.g., Authentication, Authorization, Auditing, and Administration via access to external managers)
  2. Choreographer entrypoint (containing business processes and rules) requires that all services have BPEL coordination. Problems with performance, maintenance, and complexity. Common vendor solution. Mediator entrypoint allows choreography where appropriate. Good scalability, performance, reduced complexity. Avoids layers … and mediators are fast (~ms). Choreographer is just another service provider.
  3. Create standards-based architecture for integrating middleware components to perform ESB capabilities Concerned with how internal customers (not external services) interact with service providers – transformation, security, etc. Defines service engines (SE – choreographers, transformers, security, etc) and binding components (BC – xml, http, etc)
  4. avoids vendor lockin incentivizes best of breed SE and BC Not addressing federation of ESBs
  5. Mule is a lightweight UMO container UMO = Universal Messaging Objects (POJO) UMOs are endpoints that know how to send and receive requests
  6. Constructor is called by component resolver to create object Initialize called when component is registered with Mule model Start is called when the component (server/UMO) is started onCall is called when event is received for component … can resolve to any method within UMO Stop is called when Mule server is stopped Dispose is called when Mule server is shut down
  7. Routing – ability to channel a request to a particular service provider based on deterministic or variable routing criteria (e.g., static/deterministic, content-based, policy-based, or complex rule-based) Message Transformation – ability to convert the structure and format of the incoming business service request to the structure and format expected by the service provider (e.g., xml→xml, xml→Cobol Copybook, object→xml) Message Enhancement – ability to add or modify the information contained in the message as required by the service provider (e.g., date format conversion, supplemental data, data conversion, rules-based enhancement) Protocol Transformation – The ability to accept one type of protocol from the consumer as input (e.g., SOAP/JMS) and communicate to the service provider through a different protocol (e.g., IIOP) – concerned with message structure, not payload – has attributes of physical connection and logical connectivity Service Mapping – The ability to translate a business service into the corresponding service implementation and provide binding and location information (includes implementation service name, service protocols and binding information, protocol-specific information, service-specific routing information) Message Processing – The ability to manage state and perform request management by accepting an input request and ensuring delivery back to the client via message synchronization Process Choreography – The ability to manage complex business processes that require the coordination of multiple business services to fulfill a single business service request (usually BPEL-based, often a manifestation of a use case or business process) Service Orchestration – The ability to manage the coordination of multiple implementation services (usually inter-service communication or aggregate services) Transaction Management – The ability to provide a single unit of work for a business service request by providing a framework for the coordination of multiple resources across multiple disparate services (e.g., compensatory transactional framework, WS-Coordination or JSR-95 Activity Service) Security – The ability to protect enterprise services from unauthorized access (e.g., Authentication, Authorization, Auditing, and Administration via access to external managers)