Mule ESB
AGENDA
Enterprise Service
Bus
MULE ESB
Enterprise Service Bus
Enterprise Service Bus
 Software Architecture Construct
 Cross Platform Business Integration
 Provide Services through Event Driven & Messaging Bus
 Loosely Coupled Architecture
Enterprise Service Bus
Enterprise Without ESB – Point to Point Integration with ESB
Enterprise Service Bus
Processes
People
Partners Applications Legacy Applications
Enterprise Service Bus
Declarative Transformation includes:
Message Normalization,
Validation, Enrichment,
Via XSLT, Groovy, Java, StringTemplate
Service
Registry
UDDI
ESB
Message
Store
Transformation Routing
Infrastructure Services
Security Management
Declarative
Orchestration
Engine
BPEL
jPDL
Process
Store
Event
Notification
Pluggable Architecture
for integrating infrastructure services
Web Services
EJB
POJOs
Business Service
Components
Business
Data
RDBMS
Legacy
COTS
Business Services
runs within a container or
standalone
Service Data Object
Service Component Architecture
HTTP(S)
FTP
File
JMS
Email
SOAP
Excel
Browser
Java
Native
ASCII
XML
Binary
Transports
Web
SQL
Event Listeners and Actions
provide transport mediation
Socket
Hibernate
JCA/Inflow
Custom
Action
Seam
Drools
Spring
Groovy
MULE ESB
Mule
 Open Source ESB
 One of the Most Preferred ESB
 Lightweight & Flexible
 Loosely Coupled Architecture
 Supports Major Protocols, Technologies, Platforms
MULE ESB – Loose Coupling
Loose Coupling
The consumer of the service is required to provide only the
stated data on the interface definition, and to expect only
the specified results on the interface definition.
The service is capable of handling all processing (including
exception processing).
MULE ESB – SEDA Architecture
SEDA – Staged Event Driven
 Decomposing a complex, event-driven software application into a set of
stages connected by Queues
 Avoiding the high overhead associated with thread-based concurrency
models
 Decouples event and thread scheduling from application logic
 Admission control on each event queue – Load Balancing
 Decomposing services into a set of stages for modularity and code reuse
MULE ESB – Concepts
UMO – Universal Message Objects
•A UMO is a type of Java object that can
•receive events "from anywhere"
•send events
•UMO Components are usually your business objects. They are components
that execute business logic on an incoming event
•UMO are standard JavaBeans (containers)
•There is no Mule-specific code in your components
•Mule handles all routing and transformation of events to and from your objects
based on the configuration of your component
MULE ESB – Concepts
End Points
 InBound EndPoints
 Kicks an Event
 Called by External Clients
 OutBound EndPoints
 Called by Mule Flow
 Publish Data to Service, Application & Resource
MULE ESB – Concepts
<mule-configuration>
<model>
<mule-descriptor>
<inbound-router>
<endpoint
address="file:///c:/mule-class/in"/>
</inbound-router>
<outbound-router>
<router>
<endpoint
address="file:///c:/mule-class/out"/>
</router>
</outbound-router>
</mule-descriptor>
</model>
</mule-configuration>
<inbound-router>
<endpoint address="file:///c:/mule-class/in">
<filter pattern="*.xml"
className=
"org.mule.providers.file.filters.FilenameWildcardFilter"/>
</endpoint>
</inbound-router>
MULE ESB – Concepts
Transports
A transport or "provider", is a set of objects that add support to Mule to handle a specific kind of
transport or protocol
Examples
SMTP/FTP/Queues
the "Email Provider" enables Mule to send and receive messages via the SMTP, POP and IMAP
protocols
MULE ESB – Concepts
Connectors
•A connector is the object that sends and receives messages on behalf of an endpoint.
•Connectors are bundled as part of specific transports or providers.
•For example, the FileConnector can read and write file system files
Router
•A router is the object that do something with messages once they have been received by
a connector, or prior to being sent out by the connector
MULE ESB – Concepts
Transformer
A transformer optionally changes incoming or outgoing messages in some way
This is usually done to make the message format useable by a downstream function
Examples:
the ByteArrayToString transformer converts byte arrays into String objects.
MULE ESB – Event Flow
 The nine stages of a mule event
 first 2 – inbound
 middle 4 – component
 last 2 – outbound
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Inbound Transformer
Outbound Transformer
Interceptor
Service Invocation
Interceptor
Inbound
Component
Outbound
Optional Step
MULE ESB – Service Invocation
 The actual service is performed
 In mule, this is generally a Java object
 Service invocation can also be a "pass
through"
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Outbound Transformer
Interceptor
Interceptor
Inbound Transformer
Service Invocation
MULE ESB – Exception Handling
Exception Handling
• Mule has a special way of handling error processing.
• This is called an "Exception Strategy" but is it really just and exception
path and there is very little strategy involved.
• There are three places you can associate an exception strategy
• connector
• component
• model (set for all components in a model)
MULE ESB – Exception Strategy
<exception-strategy
className=org.mule.impl.DefaultComponentExceptionStrategy">
<endpoint address="file:///c:/mule-class/error"/>
</exception-strategy>
MULE ESB – Concepts – Mule Studio
Thanks

Mule esb usecase

  • 1.
  • 2.
  • 3.
    Enterprise Service Bus EnterpriseService Bus  Software Architecture Construct  Cross Platform Business Integration  Provide Services through Event Driven & Messaging Bus  Loosely Coupled Architecture
  • 4.
    Enterprise Service Bus EnterpriseWithout ESB – Point to Point Integration with ESB
  • 5.
    Enterprise Service Bus Processes People PartnersApplications Legacy Applications
  • 6.
    Enterprise Service Bus DeclarativeTransformation includes: Message Normalization, Validation, Enrichment, Via XSLT, Groovy, Java, StringTemplate Service Registry UDDI ESB Message Store Transformation Routing Infrastructure Services Security Management Declarative Orchestration Engine BPEL jPDL Process Store Event Notification Pluggable Architecture for integrating infrastructure services Web Services EJB POJOs Business Service Components Business Data RDBMS Legacy COTS Business Services runs within a container or standalone Service Data Object Service Component Architecture HTTP(S) FTP File JMS Email SOAP Excel Browser Java Native ASCII XML Binary Transports Web SQL Event Listeners and Actions provide transport mediation Socket Hibernate JCA/Inflow Custom Action Seam Drools Spring Groovy
  • 7.
    MULE ESB Mule  OpenSource ESB  One of the Most Preferred ESB  Lightweight & Flexible  Loosely Coupled Architecture  Supports Major Protocols, Technologies, Platforms
  • 8.
    MULE ESB –Loose Coupling Loose Coupling The consumer of the service is required to provide only the stated data on the interface definition, and to expect only the specified results on the interface definition. The service is capable of handling all processing (including exception processing).
  • 9.
    MULE ESB –SEDA Architecture SEDA – Staged Event Driven  Decomposing a complex, event-driven software application into a set of stages connected by Queues  Avoiding the high overhead associated with thread-based concurrency models  Decouples event and thread scheduling from application logic  Admission control on each event queue – Load Balancing  Decomposing services into a set of stages for modularity and code reuse
  • 10.
    MULE ESB –Concepts UMO – Universal Message Objects •A UMO is a type of Java object that can •receive events "from anywhere" •send events •UMO Components are usually your business objects. They are components that execute business logic on an incoming event •UMO are standard JavaBeans (containers) •There is no Mule-specific code in your components •Mule handles all routing and transformation of events to and from your objects based on the configuration of your component
  • 11.
    MULE ESB –Concepts End Points  InBound EndPoints  Kicks an Event  Called by External Clients  OutBound EndPoints  Called by Mule Flow  Publish Data to Service, Application & Resource
  • 12.
    MULE ESB –Concepts <mule-configuration> <model> <mule-descriptor> <inbound-router> <endpoint address="file:///c:/mule-class/in"/> </inbound-router> <outbound-router> <router> <endpoint address="file:///c:/mule-class/out"/> </router> </outbound-router> </mule-descriptor> </model> </mule-configuration> <inbound-router> <endpoint address="file:///c:/mule-class/in"> <filter pattern="*.xml" className= "org.mule.providers.file.filters.FilenameWildcardFilter"/> </endpoint> </inbound-router>
  • 13.
    MULE ESB –Concepts Transports A transport or "provider", is a set of objects that add support to Mule to handle a specific kind of transport or protocol Examples SMTP/FTP/Queues the "Email Provider" enables Mule to send and receive messages via the SMTP, POP and IMAP protocols
  • 14.
    MULE ESB –Concepts Connectors •A connector is the object that sends and receives messages on behalf of an endpoint. •Connectors are bundled as part of specific transports or providers. •For example, the FileConnector can read and write file system files Router •A router is the object that do something with messages once they have been received by a connector, or prior to being sent out by the connector
  • 15.
    MULE ESB –Concepts Transformer A transformer optionally changes incoming or outgoing messages in some way This is usually done to make the message format useable by a downstream function Examples: the ByteArrayToString transformer converts byte arrays into String objects.
  • 16.
    MULE ESB –Event Flow  The nine stages of a mule event  first 2 – inbound  middle 4 – component  last 2 – outbound Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Outbound Router Inbound Transformer Outbound Transformer Interceptor Service Invocation Interceptor Inbound Component Outbound Optional Step
  • 17.
    MULE ESB –Service Invocation  The actual service is performed  In mule, this is generally a Java object  Service invocation can also be a "pass through" Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Outbound Router Outbound Transformer Interceptor Interceptor Inbound Transformer Service Invocation
  • 18.
    MULE ESB –Exception Handling Exception Handling • Mule has a special way of handling error processing. • This is called an "Exception Strategy" but is it really just and exception path and there is very little strategy involved. • There are three places you can associate an exception strategy • connector • component • model (set for all components in a model)
  • 19.
    MULE ESB –Exception Strategy <exception-strategy className=org.mule.impl.DefaultComponentExceptionStrategy"> <endpoint address="file:///c:/mule-class/error"/> </exception-strategy>
  • 20.
    MULE ESB –Concepts – Mule Studio
  • 21.