SlideShare a Scribd company logo
Introduction to Open-Source ESB
1
 What is Mule?
 How do you use Mule?
 What are the core Mule concepts?
 Learning mule with File endpoints
2
 Mule is an open-source Enterprise Service
Backbone (ESB)
3
 SEDA
◦ Staged Event-Driven Architecture
 Java NIO
◦ Java New Input/Output
4
 SEDA decomposes a complex, event-driven software application
into a set of stages connected by queues
 This design avoids the high overhead associated with thread-based
concurrency models, and decouples event and thread scheduling
from application logic
 By performing admission control on each event queue, the service
can be well-conditioned to load, preventing resources from being
overcommitted when demand exceeds service capacity
 SEDA employs dynamic control to automatically tune runtime
parameters (such as the scheduling parameters of each stage) as
well as to manage load, for example, by performing adaptive load
shedding
 Decomposing services into a set of stages also enables modularity
and code reuse, as well as the development of debugging tools for
complex event-driven applications
5
 NIO is a collection of Java programming language APIs
that offer advanced features for intensive I/O operations
 NIO facilitates an implementations that can directly use
the most efficient operations of the underlying platform
 NIO includes:
Buffers for data of primitive types
Character set encoders and decoders
A pattern-matching facility based on Perl-style regular expressions
(in package java.util.regex)
Channels, a new primitive I/O abstraction
A file interface that supports locks and memory mapping
A multiplexed, non-blocking I/O facility for writing scalable servers
6
 Folder to folder
 Queue to queue
 Shared memory to shared memory
 Using different types of transports
 In a flexible way
7
 An XML pipeline is a series of operation that are
performed on one or more XML files
 Examples include:
◦ validate
◦ transform
◦ prune (remove nodes)
◦ split (break a single XML file into many files)
◦ merge (join two or more files together)
8
 Flow of XML document through approval
processes
9
Submit
CRV
Deed
Matched
CRV
SSN
Stripped
CRV
Income
Tax
Audit
County
Audit
County
Approval
State
Audit
State
Approval
 Example of XML Operations used on CRV
10
Validate Split
Remove
SSN
Element
Store
Modify
Value
Add
Element
Modify
Value
Add
Element
 Focus on specifying "What" not "How"
 Empower business analysis to write machine-
readable specifications
 Hide the "How" behind services with clear
interfaces (SOA)
11
 Mule Manager
 Mule Model
 Universal Message Object (UMO)
 Endpoints
 External Applications
12
 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
13
 A transport or "provider", is a set of objects that
add support to Mule to handle a specific kind of
transport or protocol
 Examples
◦ the "Email Provider" enables Mule to send and receive
messages via the SMTP, POP and IMAP protocols
14
 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.
15
 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
16
 A filter optionally filters incoming or outgoing
messages that are coming into or going out from
a connector.
 For example, the File Provider comes with a
FilenameWildcardFilter that restricts
which files are read by the connector based on
file name patterns. For example only files with
the .xml extension can be routed.
 Filters are used in conjunction with Routers.
17
 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.
18
 The nine stages of a
mule event
◦ first 2 – inbound
◦ middle 4 – component
◦ last 2 – outbound
19
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Inbound Transformer
Outbound Transformer
Interceptor
Service Invocation
Interceptor
Inbound
Component
Outbound
Optional Step
 Some event triggers a
message flow
◦ A file being written into a folder
◦ A message arriving on a
message queue
◦ A record in a database
◦ Data written to a socket
20
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Inbound Transformer
Outbound Transformer
Interceptor
Service Invocation
Interceptor
Endpoint
(Message Receiver)
 The inbound router is the fist step in
a message. Functions typically
performed by an inbound router
◦ Filtering
◦ Remove duplicate messages
◦ Matching messages
◦ Aggregation (combining)
◦ Re-sequence data
◦ Forwarding
 See also
◦ IdempotentReceiver
◦ CorrolationAggregator
◦ CorrelationResequencer
21
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Inbound Transformer
Outbound Transformer
Interceptor
Service Invocation
Interceptor
Endpoint
(Message Receiver)
 Used to intercept message
flow into your service
component
 Used trigger monitor/events or
interrupt the flow of the
message
 Example: an authorization
interceptor could ensure that
the current request has the
correct credentials to invoke
the service.
22
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Inbound Transformer
Outbound Transformer
Service Invocation
Interceptor
Endpoint
(Message Receiver)
Interceptor
 If the inbound data is
not in the correct
format for the service
it must be transformed
at this point
23
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Outbound Transformer
Interceptor
Service Invocation
Interceptor
Inbound Transformer
 The actual service is
performed
 In mule, this is generally a
Java object
 Service invocation can also
be a "pass through"
24
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Outbound Transformer
Interceptor
Interceptor
Inbound Transformer
Service Invocation
 Dispatching the data
to all the relevant
endpoints
25
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Transformer
Interceptor
Interceptor
Inbound Transformer
Service Invocation
Outbound Router
Inbound Outbound Response
Idempotent Receiver Filtering Outbound Router Response Aggregator
Selective Consumer Recipient List
Aggregator Multicasting Router
Resequencer Chaining Router
Forwarding Consumer Message Splitter
Filtering List Message
Splitter
Filtering Xml Message
Splitter
Exception Based Router
26
 Any transformations that needs
to be done on the message after
a service has been performed on
the message can be executed
before it is put into the endpoint
 See Also
◦ EnvelopeInterceptor
27
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Interceptor
Interceptor
Inbound Transformer
Service Invocation
Outbound Router
Outbound Transformer
28
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mule-configuration PUBLIC
"-//MuleSource //DTD mule-configuration XML
V1.0//EN"
"http://mule.mulesource.org/dtds/mule-
configuration.dtd">
29
<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>
30
<mule-configuration id="Mule_File_Move" version=" 1.0">
<connector name="SystemStreamConnector"
className="org.mule.providers.stream.SystemStreamConnector"/>
<model name="move-all-files">
<mule-descriptor name="move-file"
implementation="org.mule.components.simple.BridgeComponent">
<inbound-router>
<endpoint address="file:///c:/tmp/in"/>
</inbound-router>
<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter"
>
<endpoint address="file:///c:/tmp/out"/>
</router>
</outbound-router>
</mule-descriptor>
</model>
</mule-configuration>
31
<inbound-router>
<endpoint address="file:///c:/mule-class/in">
<filter pattern="*.xml"
className=
"org.mule.providers.file.filters.FilenameWildcardFilter"/>
</endpoint>
</inbound-router>
32
Add the filter line to only move files with the extension
"*.xml". If you add a file "foobar.txt to the input folder it
will not be moved.
<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint
address=
"file:///c:/mule-class/out?outputPattern=$[ORIGINALNAME]"
/>
</router>
</outbound-router>
33
Add the outputPattern parameter to keep the output
name the same as the input.
 By default, error free documents follow a central path
known as the "happy path"
 Documents that have errors may be handled in different
ways (rejected, warnings etc.)
34
Start StopStep 1 Step 2 Step 3
Stop Stop Stop
 Mule has a special way of handling non-happy path 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)
35
<exception-strategy
className=org.mule.impl.DefaultComponentExceptionStrategy">
<endpoint address="file:///c:/mule-class/error"/>
</exception-strategy>
36
We want all invalid documents to be moved into the
error folder.
<?xml version="1.0" encoding="UTF-8"?>
<Data>
<Element1>Hello World!</Element1>
<Element2>String</Element2>
<Element3>String</Element3>
<DansInvalidDataElement>This is Dans invalid data element</DansInvalidDataElement>
</Data>
37
XML Schema validation will generate an error message
when it gets to the fourth invalid data element:
Given the following XML Schema file:
<outbound-router>
<router className="org.mule.routing.outbound.FilteringXmlMessageSplitter">
<endpoint
address="file:///c:/mule-class/out?outputPattern=$[ORIGINALNAME]"/>
<properties>
<property name="validateSchema" value="true"/>
<property name="externalSchemaLocation"
value="file:///c:/mule-class/labs/07-validate/my-
schema.xsd"/>
</properties>
</router>
</outbound-router>
38
To validate the XML Schema, just add two properties:
1) tell it to validate the document
2) tell it what file to use and where to find it
document : cvc-complex-type.2.4.d: Invalid content was found
starting with element 'DansInvalidDataElement'. No child
element is expected at this point.
39
This error message is generated on the Mule console
when an invalid data element is found. But what should
we do with it? How do we redirect it to the appropriate
user?
Please contact me for more information:
 Enterprise Service Bus
 Enterprise Integration
 Metadata Management
 Metadata Registries
 Service Oriented Architectures
 Business Intelligence and Data Warehouse
 Semantic Web
40

More Related Content

What's hot

Rabbit Mq in Mule
Rabbit Mq in MuleRabbit Mq in Mule
Rabbit Mq in Mule
Mohammed246
 
Mule esb introduction
Mule esb introductionMule esb introduction
Mule esb introduction
Praneethchampion
 
Mule messages and transformers
Mule messages and transformersMule messages and transformers
Mule messages and transformers
Naresh Naidu
 
Concepts in mule
Concepts in muleConcepts in mule
Concepts in mule
Sindhu VL
 
Mule esb usecase
Mule esb usecaseMule esb usecase
Mule esb usecase
charan teja R
 
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
Praneethchampion
 
Mule Amazon SNS Connector
Mule Amazon SNS ConnectorMule Amazon SNS Connector
Mule Amazon SNS Connector
Ankush Sharma
 
Mule: Java Component
Mule: Java ComponentMule: Java Component
Mule: Java Component
Sulthony Hartanto
 
Introduction to mule esb
Introduction to mule esbIntroduction to mule esb
Introduction to mule esb
Khasim Cise
 
Mule jms
Mule   jmsMule   jms
Introduction to mule Esbs
Introduction to mule EsbsIntroduction to mule Esbs
Introduction to mule Esbs
Prabhat gangwar
 
Mule esb2
Mule esb2Mule esb2
Mule esb2
himajareddys
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2
Srikanth N
 
Mule Microsoft Service Bus
Mule Microsoft Service BusMule Microsoft Service Bus
Mule Microsoft Service Bus
Ankush Sharma
 
Mule esb
Mule esbMule esb
Mule esb
Son Nguyen
 
Mule Request Reply
Mule Request ReplyMule Request Reply
Mule Request Reply
Ram Bavireddi
 
Mule esb
Mule esbMule esb
Mule esb
Prabhat gangwar
 
Mule overview
Mule overviewMule overview
Mule overview
Praneethchampion
 

What's hot (18)

Rabbit Mq in Mule
Rabbit Mq in MuleRabbit Mq in Mule
Rabbit Mq in Mule
 
Mule esb introduction
Mule esb introductionMule esb introduction
Mule esb introduction
 
Mule messages and transformers
Mule messages and transformersMule messages and transformers
Mule messages and transformers
 
Concepts in mule
Concepts in muleConcepts in mule
Concepts in mule
 
Mule esb usecase
Mule esb usecaseMule esb usecase
Mule esb usecase
 
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
 
Mule Amazon SNS Connector
Mule Amazon SNS ConnectorMule Amazon SNS Connector
Mule Amazon SNS Connector
 
Mule: Java Component
Mule: Java ComponentMule: Java Component
Mule: Java Component
 
Introduction to mule esb
Introduction to mule esbIntroduction to mule esb
Introduction to mule esb
 
Mule jms
Mule   jmsMule   jms
Mule jms
 
Introduction to mule Esbs
Introduction to mule EsbsIntroduction to mule Esbs
Introduction to mule Esbs
 
Mule esb2
Mule esb2Mule esb2
Mule esb2
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2
 
Mule Microsoft Service Bus
Mule Microsoft Service BusMule Microsoft Service Bus
Mule Microsoft Service Bus
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule Request Reply
Mule Request ReplyMule Request Reply
Mule Request Reply
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule overview
Mule overviewMule overview
Mule overview
 

Viewers also liked

Initialize database in Mule part2
Initialize database in Mule part2Initialize database in Mule part2
Initialize database in Mule part2
Anirban Sen Chowdhary
 
Mule esb made system integration easy
Mule esb made system integration easyMule esb made system integration easy
Mule esb made system integration easy
Sudha Ch
 
Mule tcat server
Mule  tcat serverMule  tcat server
Mule tcat server
D.Rajesh Kumar
 
Mule security - saml
Mule  security - samlMule  security - saml
Mule security - saml
D.Rajesh Kumar
 
For each component in mule demo
For each component in mule demoFor each component in mule demo
For each component in mule demo
Sudha Ch
 
Mule esb–api layer
Mule esb–api layerMule esb–api layer
Mule esb–api layer
himajareddys
 
Mule batch processing
Mule  batch processingMule  batch processing
Mule batch processing
himajareddys
 
Integration with Sercice-Now using Mule ESB
Integration with Sercice-Now using Mule ESBIntegration with Sercice-Now using Mule ESB
Integration with Sercice-Now using Mule ESB
Sanjeet Pandey
 
Mule with rabbitmq
Mule with rabbitmqMule with rabbitmq
Mule with rabbitmq
Rajkattamuri
 
Mule java part-3
Mule java part-3Mule java part-3
Mule java part-3
Karnam Karthik
 
Mule microsoft environment
Mule  microsoft environmentMule  microsoft environment
Mule microsoft environment
vishnukanthro45
 
Mule technology
Mule technologyMule technology
Mule technology
F K
 
Mule anypoint workday-connectors
Mule  anypoint workday-connectorsMule  anypoint workday-connectors
Mule anypoint workday-connectors
vishnukanthro45
 
Deploy apps in standalone with maven
Deploy apps in standalone with mavenDeploy apps in standalone with maven
Deploy apps in standalone with maven
Anirban Sen Chowdhary
 
Webservice with vm in mule
Webservice with vm in mule Webservice with vm in mule
Webservice with vm in mule
Mohammed625
 
Creating a custom connector in mule
Creating a custom connector in muleCreating a custom connector in mule
Creating a custom connector in mule
Achyuta Lakshmi
 
Mule Esb Introduction
Mule Esb IntroductionMule Esb Introduction
Mule Esb Introduction
AbdulImrankhan7
 
Mule overview
Mule overviewMule overview
Mule overview
Mohammed625
 
Mule enricher component
Mule enricher component Mule enricher component
Mule enricher component
Gandham38
 
Introduction to mule esb
Introduction to mule esbIntroduction to mule esb
Introduction to mule esb
Khasim Cise
 

Viewers also liked (20)

Initialize database in Mule part2
Initialize database in Mule part2Initialize database in Mule part2
Initialize database in Mule part2
 
Mule esb made system integration easy
Mule esb made system integration easyMule esb made system integration easy
Mule esb made system integration easy
 
Mule tcat server
Mule  tcat serverMule  tcat server
Mule tcat server
 
Mule security - saml
Mule  security - samlMule  security - saml
Mule security - saml
 
For each component in mule demo
For each component in mule demoFor each component in mule demo
For each component in mule demo
 
Mule esb–api layer
Mule esb–api layerMule esb–api layer
Mule esb–api layer
 
Mule batch processing
Mule  batch processingMule  batch processing
Mule batch processing
 
Integration with Sercice-Now using Mule ESB
Integration with Sercice-Now using Mule ESBIntegration with Sercice-Now using Mule ESB
Integration with Sercice-Now using Mule ESB
 
Mule with rabbitmq
Mule with rabbitmqMule with rabbitmq
Mule with rabbitmq
 
Mule java part-3
Mule java part-3Mule java part-3
Mule java part-3
 
Mule microsoft environment
Mule  microsoft environmentMule  microsoft environment
Mule microsoft environment
 
Mule technology
Mule technologyMule technology
Mule technology
 
Mule anypoint workday-connectors
Mule  anypoint workday-connectorsMule  anypoint workday-connectors
Mule anypoint workday-connectors
 
Deploy apps in standalone with maven
Deploy apps in standalone with mavenDeploy apps in standalone with maven
Deploy apps in standalone with maven
 
Webservice with vm in mule
Webservice with vm in mule Webservice with vm in mule
Webservice with vm in mule
 
Creating a custom connector in mule
Creating a custom connector in muleCreating a custom connector in mule
Creating a custom connector in mule
 
Mule Esb Introduction
Mule Esb IntroductionMule Esb Introduction
Mule Esb Introduction
 
Mule overview
Mule overviewMule overview
Mule overview
 
Mule enricher component
Mule enricher component Mule enricher component
Mule enricher component
 
Introduction to mule esb
Introduction to mule esbIntroduction to mule esb
Introduction to mule esb
 

Similar to Mule overview

Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
AbdulImrankhan7
 
Mulesoftppt
Mulesoftppt Mulesoftppt
Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service bus
Thang Loi
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
AbdulImrankhan7
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
Achyuta Lakshmi
 
Mule
MuleMule
Mule esb
Mule esbMule esb
Mule esb
Naveen Chintala
 
Mule introduction
Mule introductionMule introduction
Mule introduction
Satya Sekhar Das Mandal
 
Mule overview
Mule overviewMule overview
Mule overview
nikitjain2011
 
Mule overview
Mule overviewMule overview
Mule overview
Sandhya Sandy
 
Mule and web services
Mule and web servicesMule and web services
Mule and web services
Manav Prasad
 
Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introduction
Son Nguyen
 
Red Hat Open Day JBoss Fuse
Red Hat Open Day JBoss FuseRed Hat Open Day JBoss Fuse
Red Hat Open Day JBoss Fuse
Adrian Gigante
 
Mule overview
Mule overviewMule overview
Mule overview
sssatya
 
mule-overview.ppt
mule-overview.pptmule-overview.ppt
mule-overview.ppt
NalamalpuBhakthavats
 
Mule overview
Mule overviewMule overview
Mule overview
ppts123456
 
Mule web services
Mule web servicesMule web services
Mule web services
Thang Loi
 
Mule esb intoduction
Mule esb intoductionMule esb intoduction
Mule esb intoduction
Vamsi Krishna
 
Mule core concepts
Mule core conceptsMule core concepts
Mule core concepts
Khadhar Koneti
 
Introduction to esbs mule
Introduction to esbs  muleIntroduction to esbs  mule
Introduction to esbs mule
manavp
 

Similar to Mule overview (20)

Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
 
Mulesoftppt
Mulesoftppt Mulesoftppt
Mulesoftppt
 
Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service bus
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
 
Mule
MuleMule
Mule
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule introduction
Mule introductionMule introduction
Mule introduction
 
Mule overview
Mule overviewMule overview
Mule overview
 
Mule overview
Mule overviewMule overview
Mule overview
 
Mule and web services
Mule and web servicesMule and web services
Mule and web services
 
Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introduction
 
Red Hat Open Day JBoss Fuse
Red Hat Open Day JBoss FuseRed Hat Open Day JBoss Fuse
Red Hat Open Day JBoss Fuse
 
Mule overview
Mule overviewMule overview
Mule overview
 
mule-overview.ppt
mule-overview.pptmule-overview.ppt
mule-overview.ppt
 
Mule overview
Mule overviewMule overview
Mule overview
 
Mule web services
Mule web servicesMule web services
Mule web services
 
Mule esb intoduction
Mule esb intoductionMule esb intoduction
Mule esb intoduction
 
Mule core concepts
Mule core conceptsMule core concepts
Mule core concepts
 
Introduction to esbs mule
Introduction to esbs  muleIntroduction to esbs  mule
Introduction to esbs mule
 

More from Rajkattamuri

Github plugin setup in anypointstudio
Github plugin setup in anypointstudioGithub plugin setup in anypointstudio
Github plugin setup in anypointstudio
Rajkattamuri
 
For each component in mule
For each component in muleFor each component in mule
For each component in mule
Rajkattamuri
 
Filter expression in mule
Filter expression in muleFilter expression in mule
Filter expression in mule
Rajkattamuri
 
File component in mule
File component in muleFile component in mule
File component in mule
Rajkattamuri
 
Database component in mule
Database component in muleDatabase component in mule
Database component in mule
Rajkattamuri
 
Choice component in mule
Choice component in mule Choice component in mule
Choice component in mule
Rajkattamuri
 
WebServices
WebServicesWebServices
WebServices
Rajkattamuri
 
Java Basics in Mule
Java Basics in MuleJava Basics in Mule
Java Basics in Mule
Rajkattamuri
 
WebServices Basic Overview
WebServices Basic OverviewWebServices Basic Overview
WebServices Basic Overview
Rajkattamuri
 
Java For Begineers
Java For BegineersJava For Begineers
Java For Begineers
Rajkattamuri
 
Java Basics
Java BasicsJava Basics
Java Basics
Rajkattamuri
 
WebServices Basics
WebServices BasicsWebServices Basics
WebServices Basics
Rajkattamuri
 
Core java
Core javaCore java
Core java
Rajkattamuri
 
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
Rajkattamuri
 
Web services soap
Web services soapWeb services soap
Web services soap
Rajkattamuri
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
Rajkattamuri
 
Web services uddi
Web services uddiWeb services uddi
Web services uddi
Rajkattamuri
 
Maven
MavenMaven
Mule esb dataweave
Mule esb dataweaveMule esb dataweave
Mule esb dataweave
Rajkattamuri
 
Mule with drools
Mule with drools Mule with drools
Mule with drools
Rajkattamuri
 

More from Rajkattamuri (20)

Github plugin setup in anypointstudio
Github plugin setup in anypointstudioGithub plugin setup in anypointstudio
Github plugin setup in anypointstudio
 
For each component in mule
For each component in muleFor each component in mule
For each component in mule
 
Filter expression in mule
Filter expression in muleFilter expression in mule
Filter expression in mule
 
File component in mule
File component in muleFile component in mule
File component in mule
 
Database component in mule
Database component in muleDatabase component in mule
Database component in mule
 
Choice component in mule
Choice component in mule Choice component in mule
Choice component in mule
 
WebServices
WebServicesWebServices
WebServices
 
Java Basics in Mule
Java Basics in MuleJava Basics in Mule
Java Basics in Mule
 
WebServices Basic Overview
WebServices Basic OverviewWebServices Basic Overview
WebServices Basic Overview
 
Java For Begineers
Java For BegineersJava For Begineers
Java For Begineers
 
Java Basics
Java BasicsJava Basics
Java Basics
 
WebServices Basics
WebServices BasicsWebServices Basics
WebServices Basics
 
Core java
Core javaCore java
Core java
 
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
 
Web services soap
Web services soapWeb services soap
Web services soap
 
Web services wsdl
Web services wsdlWeb services wsdl
Web services wsdl
 
Web services uddi
Web services uddiWeb services uddi
Web services uddi
 
Maven
MavenMaven
Maven
 
Mule esb dataweave
Mule esb dataweaveMule esb dataweave
Mule esb dataweave
 
Mule with drools
Mule with drools Mule with drools
Mule with drools
 

Recently uploaded

TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Zilliz
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
Edge AI and Vision Alliance
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024
aakash malhotra
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 

Recently uploaded (20)

TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024Three New Criminal Laws in India 1 July 2024
Three New Criminal Laws in India 1 July 2024
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 

Mule overview

  • 2.  What is Mule?  How do you use Mule?  What are the core Mule concepts?  Learning mule with File endpoints 2
  • 3.  Mule is an open-source Enterprise Service Backbone (ESB) 3
  • 4.  SEDA ◦ Staged Event-Driven Architecture  Java NIO ◦ Java New Input/Output 4
  • 5.  SEDA decomposes a complex, event-driven software application into a set of stages connected by queues  This design avoids the high overhead associated with thread-based concurrency models, and decouples event and thread scheduling from application logic  By performing admission control on each event queue, the service can be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity  SEDA employs dynamic control to automatically tune runtime parameters (such as the scheduling parameters of each stage) as well as to manage load, for example, by performing adaptive load shedding  Decomposing services into a set of stages also enables modularity and code reuse, as well as the development of debugging tools for complex event-driven applications 5
  • 6.  NIO is a collection of Java programming language APIs that offer advanced features for intensive I/O operations  NIO facilitates an implementations that can directly use the most efficient operations of the underlying platform  NIO includes: Buffers for data of primitive types Character set encoders and decoders A pattern-matching facility based on Perl-style regular expressions (in package java.util.regex) Channels, a new primitive I/O abstraction A file interface that supports locks and memory mapping A multiplexed, non-blocking I/O facility for writing scalable servers 6
  • 7.  Folder to folder  Queue to queue  Shared memory to shared memory  Using different types of transports  In a flexible way 7
  • 8.  An XML pipeline is a series of operation that are performed on one or more XML files  Examples include: ◦ validate ◦ transform ◦ prune (remove nodes) ◦ split (break a single XML file into many files) ◦ merge (join two or more files together) 8
  • 9.  Flow of XML document through approval processes 9 Submit CRV Deed Matched CRV SSN Stripped CRV Income Tax Audit County Audit County Approval State Audit State Approval
  • 10.  Example of XML Operations used on CRV 10 Validate Split Remove SSN Element Store Modify Value Add Element Modify Value Add Element
  • 11.  Focus on specifying "What" not "How"  Empower business analysis to write machine- readable specifications  Hide the "How" behind services with clear interfaces (SOA) 11
  • 12.  Mule Manager  Mule Model  Universal Message Object (UMO)  Endpoints  External Applications 12
  • 13.  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 13
  • 14.  A transport or "provider", is a set of objects that add support to Mule to handle a specific kind of transport or protocol  Examples ◦ the "Email Provider" enables Mule to send and receive messages via the SMTP, POP and IMAP protocols 14
  • 15.  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. 15
  • 16.  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 16
  • 17.  A filter optionally filters incoming or outgoing messages that are coming into or going out from a connector.  For example, the File Provider comes with a FilenameWildcardFilter that restricts which files are read by the connector based on file name patterns. For example only files with the .xml extension can be routed.  Filters are used in conjunction with Routers. 17
  • 18.  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. 18
  • 19.  The nine stages of a mule event ◦ first 2 – inbound ◦ middle 4 – component ◦ last 2 – outbound 19 Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Outbound Router Inbound Transformer Outbound Transformer Interceptor Service Invocation Interceptor Inbound Component Outbound Optional Step
  • 20.  Some event triggers a message flow ◦ A file being written into a folder ◦ A message arriving on a message queue ◦ A record in a database ◦ Data written to a socket 20 Endpoint (Message Dispatcher) Inbound Router Outbound Router Inbound Transformer Outbound Transformer Interceptor Service Invocation Interceptor Endpoint (Message Receiver)
  • 21.  The inbound router is the fist step in a message. Functions typically performed by an inbound router ◦ Filtering ◦ Remove duplicate messages ◦ Matching messages ◦ Aggregation (combining) ◦ Re-sequence data ◦ Forwarding  See also ◦ IdempotentReceiver ◦ CorrolationAggregator ◦ CorrelationResequencer 21 Endpoint (Message Dispatcher) Inbound Router Outbound Router Inbound Transformer Outbound Transformer Interceptor Service Invocation Interceptor Endpoint (Message Receiver)
  • 22.  Used to intercept message flow into your service component  Used trigger monitor/events or interrupt the flow of the message  Example: an authorization interceptor could ensure that the current request has the correct credentials to invoke the service. 22 Endpoint (Message Dispatcher) Inbound Router Outbound Router Inbound Transformer Outbound Transformer Service Invocation Interceptor Endpoint (Message Receiver) Interceptor
  • 23.  If the inbound data is not in the correct format for the service it must be transformed at this point 23 Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Outbound Router Outbound Transformer Interceptor Service Invocation Interceptor Inbound Transformer
  • 24.  The actual service is performed  In mule, this is generally a Java object  Service invocation can also be a "pass through" 24 Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Outbound Router Outbound Transformer Interceptor Interceptor Inbound Transformer Service Invocation
  • 25.  Dispatching the data to all the relevant endpoints 25 Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Outbound Transformer Interceptor Interceptor Inbound Transformer Service Invocation Outbound Router
  • 26. Inbound Outbound Response Idempotent Receiver Filtering Outbound Router Response Aggregator Selective Consumer Recipient List Aggregator Multicasting Router Resequencer Chaining Router Forwarding Consumer Message Splitter Filtering List Message Splitter Filtering Xml Message Splitter Exception Based Router 26
  • 27.  Any transformations that needs to be done on the message after a service has been performed on the message can be executed before it is put into the endpoint  See Also ◦ EnvelopeInterceptor 27 Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Interceptor Interceptor Inbound Transformer Service Invocation Outbound Router Outbound Transformer
  • 28. 28
  • 29. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mule-configuration PUBLIC "-//MuleSource //DTD mule-configuration XML V1.0//EN" "http://mule.mulesource.org/dtds/mule- configuration.dtd"> 29
  • 31. <mule-configuration id="Mule_File_Move" version=" 1.0"> <connector name="SystemStreamConnector" className="org.mule.providers.stream.SystemStreamConnector"/> <model name="move-all-files"> <mule-descriptor name="move-file" implementation="org.mule.components.simple.BridgeComponent"> <inbound-router> <endpoint address="file:///c:/tmp/in"/> </inbound-router> <outbound-router> <router className="org.mule.routing.outbound.OutboundPassThroughRouter" > <endpoint address="file:///c:/tmp/out"/> </router> </outbound-router> </mule-descriptor> </model> </mule-configuration> 31
  • 32. <inbound-router> <endpoint address="file:///c:/mule-class/in"> <filter pattern="*.xml" className= "org.mule.providers.file.filters.FilenameWildcardFilter"/> </endpoint> </inbound-router> 32 Add the filter line to only move files with the extension "*.xml". If you add a file "foobar.txt to the input folder it will not be moved.
  • 34.  By default, error free documents follow a central path known as the "happy path"  Documents that have errors may be handled in different ways (rejected, warnings etc.) 34 Start StopStep 1 Step 2 Step 3 Stop Stop Stop
  • 35.  Mule has a special way of handling non-happy path 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) 35
  • 37. <?xml version="1.0" encoding="UTF-8"?> <Data> <Element1>Hello World!</Element1> <Element2>String</Element2> <Element3>String</Element3> <DansInvalidDataElement>This is Dans invalid data element</DansInvalidDataElement> </Data> 37 XML Schema validation will generate an error message when it gets to the fourth invalid data element: Given the following XML Schema file:
  • 38. <outbound-router> <router className="org.mule.routing.outbound.FilteringXmlMessageSplitter"> <endpoint address="file:///c:/mule-class/out?outputPattern=$[ORIGINALNAME]"/> <properties> <property name="validateSchema" value="true"/> <property name="externalSchemaLocation" value="file:///c:/mule-class/labs/07-validate/my- schema.xsd"/> </properties> </router> </outbound-router> 38 To validate the XML Schema, just add two properties: 1) tell it to validate the document 2) tell it what file to use and where to find it
  • 39. document : cvc-complex-type.2.4.d: Invalid content was found starting with element 'DansInvalidDataElement'. No child element is expected at this point. 39 This error message is generated on the Mule console when an invalid data element is found. But what should we do with it? How do we redirect it to the appropriate user?
  • 40. Please contact me for more information:  Enterprise Service Bus  Enterprise Integration  Metadata Management  Metadata Registries  Service Oriented Architectures  Business Intelligence and Data Warehouse  Semantic Web 40