SlideShare a Scribd company logo
Copyright 2006-2009 Dan 1
M
D
The Enterprise Service Bus
Introduction using Mule
Introduction to Open-Source ESB
Authors: Dan McCreary and Arun Batchu
Date: 11/20/2006
Version: DRAFT 0.2
Copyright 2006-2009 Dan 2
M
D
Agenda
• What is Mule?
• How do you use Mule?
• What are the core Mule concepts?
• Learning mule with File endpoints
Copyright 2006-2009 Dan 3
M
D
Enterprise Service Backbone
• Mule is an open-source Enterprise Service
Backbone (ESB)
Copyright 2006-2009 Dan 4
M
D
Mule is Has Advanced
Technologies
• SEDA
– Staged Event-Driven Architecture
• Java NIO
– Java New Input/Output

Recommended for you

WSDL in Mule Esb
WSDL in Mule EsbWSDL in Mule Esb
WSDL in Mule Esb

WSDL is an XML language used to describe web services, defining operations provided by the service, data formats, and location. It describes what a service does via operations, how it is accessed via protocols and data formats, and where it is located via URLs. A WSDL document defines types, messages, operations, bindings and services. Translators can generate code from WSDL or derive WSDL from existing code.

Mule JMS Transport
Mule JMS TransportMule JMS Transport
Mule JMS Transport

The document provides an overview of Java Messaging Services (JMS) in MuleSoft Mule ESB 3.6. It describes key JMS concepts like the JMS messaging model with queues and topics, backchannels, message filtering using selectors, transformers, and provides an example ActiveMQ configuration with inbound and outbound endpoints.

muleesbmulejms
Thrift
ThriftThrift
Thrift

This document proposes enhancing Thrift to allow multiple services to be hosted on a single server port through multiplexing. It describes adding components like a Multiplexer processor that directs requests to the appropriate service based on a service context, a protocol wrapper that embeds the service context, and a registry for lookup of available services. This allows Thrift to better meet the needs of enterprises by reducing administrative overhead compared to hosting each service on a separate port.

thrift rpc
Copyright 2006-2009 Dan 5
M
D
SEDA
• 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
Copyright 2006-2009 Dan 6
M
D
Java NIO
• 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
Copyright 2006-2009 Dan 7
M
D
Mule’s “Moves Things Around”
• Folder to folder
• Queue to queue
• Shared memory to shared memory
• Using different types of transports
• In a flexible way
Copyright 2006-2009 Dan 8
M
D
XML Pipeline
• 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)

Recommended for you

Clustering & nlb
Clustering & nlbClustering & nlb
Clustering & nlb

Clustering technologies in Windows Server 2003 help achieve high availability and scalability for critical applications. Server clusters provide high availability by redistributing workloads from failed servers, while Network Load Balancing provides scalability and availability for web services by load balancing requests across multiple servers. The choice depends on whether applications have long-running in-memory state, with server clusters intended for stateful applications like databases and NLB for stateless applications like web servers.

JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache CamelJUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel

Scalable Messaging is the the need of the enterprise messaging infrastructure. JBossA-MQ is one of the leading products for scalable messaging. It also covers some common concepts beween Apache Active MQ and JBoss A-MQ . Apache Camel as a integration framework supports the enterprise messaging greately and the presentation also contains some of its areas of adjunction to Scalable messaging with queues and topics.

active mqjbosscamel
Mule overview
Mule overviewMule overview
Mule overview

The document discusses the open-source enterprise service bus Mule, including what Mule is, its core concepts like the universal message object and endpoints, and how Mule uses technologies like staged event-driven architecture and non-blocking I/O to move data between different systems and formats in a flexible way. It also provides examples of using Mule to move XML files between directories and handling exceptions.

Copyright 2006-2009 Dan 9
M
D
CRV Example
• Flow of XML document through approval
processes
Submit
CRV
Deed
Matched
CRV
SSN
Stripped
CRV
Income
Tax
Audit
County
Audit
County
Approval
State
Audit
State
Approval
Copyright 2006-2009 Dan 10
M
D
Decomposition
• Example of XML Operations used on CRV
Validate Split
Remove
SSN
Element
Store
Modify
Value
Add
Element
Modify
Value
Add
Element
Copyright 2006-2009 Dan 11
M
D
Declarative Approach
• Focus on specifying "What" not "How"
• Empower business analysis to write
machine-readable specifications
• Hide the "How" behind services with clear
interfaces (SOA)
Copyright 2006-2009 Dan 12
M
D
Core Mule Concepts
• Mule Manager
• Mule Model
• Universal Message Object (UMO)
• Endpoints
• External Applications

Recommended for you

Acceleration Technology: Solving File Transfer Issues
Acceleration Technology: Solving File Transfer IssuesAcceleration Technology: Solving File Transfer Issues
Acceleration Technology: Solving File Transfer Issues

File transfer acceleration can significantly increase file transfer speeds compared to traditional methods like FTP. It works by transferring files over UDP instead of TCP, avoiding issues from network latency and packet loss that slow TCP transfers. This allows files to be sent at full network speed even over long distances or unreliable links. As a result, file transfer acceleration can reduce costs from unused bandwidth and boost productivity by speeding file sharing and project completion.

big data transferbig data infrastructurebig data
WSO2 ESB Introduction to Inbound Endpoints
WSO2 ESB Introduction to Inbound EndpointsWSO2 ESB Introduction to Inbound Endpoints
WSO2 ESB Introduction to Inbound Endpoints

This document provides an introduction to inbound endpoints in WSO2 ESB. It discusses the key features and benefits of inbound endpoints, including dynamic configuration, multi-tenancy support, coordination in clustered environments, and direct message injection to mediation flows. Specific inbound endpoint types are described, including HTTP/HTTPS, JMS, and file inbound endpoints. Configuration parameters for each of these endpoint types are outlined. The presentation concludes with a demonstration of inbound endpoints.

wso2esb
Tv and video on the Internet
Tv and video on the InternetTv and video on the Internet
Tv and video on the Internet

This document summarizes a content delivery network (CDN) created to host video clips and live broadcasts. The CDN uses edge nodes located in different networks to serve traffic and origin nodes for storage. A redirector selects the best edge node based on location and load. Files are replicated across origin nodes and managed through a bridge that provides a WebDAV interface. Live broadcasts are supported through RTMP and plans include expanding support to additional streaming protocols and platforms.

nginxvarnishmogilefs
Copyright 2006-2009 Dan 13
M
D
Universal Message Object (UMO)
• 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
Copyright 2006-2009 Dan 14
M
D
Transport
• 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
Copyright 2006-2009 Dan 15
M
D
Connector
• 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.
Copyright 2006-2009 Dan 16
M
D
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

Recommended for you

Edge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format TodayEdge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format Today

MPEG DASH – Tomorrow's Format Today by Nicolas Weil Senior Solutions Architect, Akamai Technologies & Will Law, Chief Architect, Media Cloud Engineering, Akamai Technologies As an open standard designed to help simplify video delivery across connected devices, MPEG-DASH is continuing to gain momentum in the OTT, broadcast and wireless industries. Join Akamai's DASH experts for a discussion on what differentiates the emerging standard from legacy formats along with a demonstration showing the ease of deploying DASH playback across devices. The panel will also highlight current deployments, offer a review of the industry and provide a three-year outlook. Akamai Edge is the premier event for Internet innovators, tech professionals and online business pioneers who together are forging a Faster Forward World. At Edge, the architects, experts and implementers of the most innovative global online businesses gather face-to-face for an invaluable three days of sharing, learning and together pushing the limits of the Faster Forward World. Learn more at: http://www.akamai.com/edge

hybrid cloudtom leightonakamai
CCNA part 1 osi
CCNA part 1 osiCCNA part 1 osi
CCNA part 1 osi

The document provides information about the CCNA certification process and overview. It discusses that the CCNA exam costs $150, has a 90 minute time limit, and consists of 55-65 questions in various formats. It also lists recommended study books. It then provides a detailed overview of each layer of the OSI model, describing the functions and responsibilities of the application, presentation, session, transport, network, data link, and physical layers.

osiccna
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013

Attention, session en anglais. Animée par Scott Schnoll, Principal Technical Writer dans l'équipe Exchange à Microsoft corp. Découvrez la nouvelle architecture des serveurs Exchange 2013. Cette nouvelle version apporte des nouveautés fondamentales et bénéficie de l'expérience de gestion du Cloud O365 par les équipes online. Des évolutions de l'architecture fondamentale d'Exchange découlent directement de ce retour d'expérience et ont été intégrées au produit. Venez découvrir celles-ci par l'expert mondial sur le sujet.

itdmtechdays 2013
Copyright 2006-2009 Dan 17
M
D
Filter
• 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.
Copyright 2006-2009 Dan 18
M
D
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.
Copyright 2006-2009 Dan 19
M
D
Mule 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
Copyright 2006-2009 Dan 20
M
D
Message Receiver Endpoint
• 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
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Inbound Transformer
Outbound Transformer
Interceptor
Service Invocation
Interceptor
Endpoint
(Message Receiver)

Recommended for you

04.m3 cms streaming-protocol
04.m3 cms streaming-protocol04.m3 cms streaming-protocol
04.m3 cms streaming-protocol

This document defines streaming protocols, compares mashups and portals, and describes different types of portals. It outlines several streaming protocols including RTSP, MMS, PNM, RTMP, and HTTP streaming. It also discusses protocol issues such as using UDP vs TCP and unicast vs multicast delivery. Mashups are described as combining content in new ways using APIs, while portals aggregate pre-existing content on servers. Finally, the document lists various types of portals including personal, business, news, government, and domain-specific portals.

QLogic Solutions - Microsoft Exchange Server
QLogic Solutions - Microsoft Exchange ServerQLogic Solutions - Microsoft Exchange Server
QLogic Solutions - Microsoft Exchange Server

Microsoft Exchange environments can host more mailboxes with faster access times when using QLogic adapters

adaptermicrosoft exchange serverqlogic
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq

RabbitMQ is an open-source message broker software written in Erlang. It uses exchanges to route messages from producers to queues based on routing keys or bindings. There are four main exchange types - direct, fanout, topic, and headers. Mule connects to RabbitMQ using the AMQP connector. It can send and receive messages to/from RabbitMQ queues using different exchange types like direct exchanges as demonstrated in the example config with two flows, one to send and one to receive a message.

Copyright 2006-2009 Dan 21
M
D
Inbound Router
• 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
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Inbound Transformer
Outbound Transformer
Interceptor
Service Invocation
Interceptor
Endpoint
(Message Receiver)
Copyright 2006-2009 Dan 22
M
D
Interceptor
• 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.
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Inbound Transformer
Outbound Transformer
Service Invocation
Interceptor
Endpoint
(Message Receiver)
Interceptor
Copyright 2006-2009 Dan 23
M
D
Inbound Transformer
• If the inbound data is
not in the correct
format for the
service it must be
transformed at this
point
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Router
Outbound Transformer
Interceptor
Service Invocation
Interceptor
Inbound Transformer
Copyright 2006-2009 Dan 24
M
D
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

Recommended for you

Differentiated services - Advance Routing
Differentiated services - Advance RoutingDifferentiated services - Advance Routing
Differentiated services - Advance Routing

This document discusses RSVP and differentiated services (DS) network models. It provides details on: 1) RSVP uses objects like INTEGRITY, SCOPE, and RESV_CONFIRM carried in messages to establish and maintain reservations. Messages include a common header followed by objects. 2) The DS model aggregates traffic by service level agreements rather than per-flow reservations. Packets are marked with DS field codepoints to receive different per-hop behaviors like expedited forwarding or assured forwarding. 3) DS routers classify and condition traffic at ingress based on DS fields and traffic agreements. Core routers provide behaviors like low latency for expedited forwarding or high assurance delivery for assured forwarding traffic within configured rates.

differentiated servicesadvance routingcomputer networks
Load balancing
Load balancingLoad balancing
Load balancing

slides are about load balancing as a concept and implementation of load balancing on computer technical level slides show the server load balancing different architectures , algorithms and examples

load balancingservers
Discordância
Discordância Discordância
Discordância

1. O documento discute discordâncias em materiais cristalinos, defeitos que causam distorções na estrutura cristalina e afetam a deformação plástica e resistência mecânica. 2. As discordâncias se movimentam durante a deformação plástica, e a resistência pode ser aumentada restringindo seu movimento, por exemplo, reduzindo o tamanho de grão. 3. Vários tratamentos térmicos como recuperação e recristalização podem alterar as discordâncias e propriedades do material.

Copyright 2006-2009 Dan 25
M
D
Outbound Router
• Dispatching the data
to all the relevant
endpoints
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Outbound Transformer
Interceptor
Interceptor
Inbound Transformer
Service Invocation
Outbound Router
Copyright 2006-2009 Dan 26
M
D
Built-in Router Classes
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
Copyright 2006-2009 Dan 27
M
D
Outbound Transformer
• 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
Endpoint
(Message Receiver)
Endpoint
(Message Dispatcher)
Inbound Router
Interceptor
Interceptor
Inbound Transformer
Service Invocation
Outbound Router
Outbound Transformer
Copyright 2006-2009 Dan 28
M
D
Test Environment

Recommended for you

3 discordancias e deformacao
3  discordancias e deformacao3  discordancias e deformacao
3 discordancias e deformacao

1. O documento discute os mecanismos de deformação plástica em metais, especificamente o movimento de discordâncias. 2. A deformação plástica ocorre principalmente pelo escorregamento de planos atômicos, que envolve o movimento de discordâncias. 3. Vários tratamentos como adição de ligas, redução do tamanho de grão e encruamento podem aumentar a resistência mecânica ao restringir o movimento de discordâncias.

Grupo Discordâncias e deformação plástica
Grupo Discordâncias e deformação plásticaGrupo Discordâncias e deformação plástica
Grupo Discordâncias e deformação plástica

O documento discute os principais tipos de defeitos em materiais cristalinos que influenciam a deformação plástica, incluindo discordâncias, maclações e falhas de empilhamento. Explica como o movimento de discordâncias depende de fatores como a estrutura cristalina, a orientação dos cristais e a presença de outros defeitos. Também aborda a termodinâmica por trás da geração e movimentação de defeitos durante a deformação.

orestes alarconufscemc5714
Estampagem
EstampagemEstampagem
Estampagem

O documento descreve processos de conformação de chapas metálicas como estampagem, estampagem profunda e hidroconformação. A estampagem é geralmente realizada a frio em chapas delgadas de aço, alumínio ou cobre. A estampagem profunda é feita em vários estágios usando punções, matrizes e sujeitadores para formar copos e caixas. A hidroconformação usa alta pressão hidráulica para formar peças tubulares complexas.

Copyright 2006-2009 Dan 29
M
D
Omitted From Examples for Brevity
<?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">
Copyright 2006-2009 Dan 30
M
D
Outline of Move All Files
<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>
Copyright 2006-2009 Dan 31
M
D
Move All Files – Procedural
Details
<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.OutboundPassThroughRou
ter">
<endpoint address="file:///c:/tmp/out"/>
</router>
</outbound-router>
</mule-descriptor>
</model>
</mule-configuration>
Copyright 2006-2009 Dan 32
M
D
Only Moving XML Files
<inbound-router>
<endpoint address="file:///c:/mule-class/in">
<filter pattern="*.xml"
className=
"org.mule.providers.file.filters.FilenameWildcardFilter"/>
</endpoint>
</inbound-router>
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.

Recommended for you

Conformação mecânica
Conformação mecânicaConformação mecânica
Conformação mecânica

O documento discute os principais processos de conformação mecânica de metais, incluindo forjamento, laminação, trefilagem, extrusão e estampagem. Explica cada processo e como eles transformam a forma dos metais aplicando força externa para deformação plástica enquanto mantêm o volume e massa originais. O documento também discute trabalhos a quente e a frio durante a conformação mecânica.

Estampagem
EstampagemEstampagem
Estampagem

O documento descreve os processos de estampagem, incluindo corte de chapas, conformação mecânica e estampagem profunda. A conformação mecânica envolve técnicas como dobramento, rebordamento e enrolamento para dar forma a peças de metal. A estampagem profunda cria objetos ocos de formato cilíndrico. O processo Guerin usa uma "almofada" de borracha ao invés de matriz rígida.

mule-overview.ppt
mule-overview.pptmule-overview.ppt
mule-overview.ppt

This document provides an introduction to using Mule, an open-source enterprise service bus (ESB). It discusses Mule's core concepts like the universal message object, endpoints, transports, connectors, routers, filters and transformers. It provides examples of using Mule to move files between directories and validate XML files against a schema. The document is intended to explain Mule's declarative approach and how data flows through various stages of receiving, routing, transforming and dispatching events.

muel
Copyright 2006-2009 Dan 33
M
D
Keeping the Name The Same
<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint
address=
"file:///c:/mule-class/out?outputPattern=$[ORIGINALNAME]"
/>
</router>
</outbound-router>
Add the outputPattern parameter to keep the output
name the same as the input.
Copyright 2006-2009 Dan 34
M
D
Happy Path and Exceptions
• 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.)
Start StopStep 1 Step 2 Step 3
Stop Stop Stop
Copyright 2006-2009 Dan 35
M
D
Exception Handling
• 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)
Copyright 2006-2009 Dan 36
M
D
Exception Strategy
<exception-strategy
className=org.mule.impl.DefaultComponentExceptionStrategy">
<endpoint address="file:///c:/mule-class/error"/>
</exception-strategy>
We want all invalid documents to be moved into the
error folder.

Recommended for you

Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt

This document provides an introduction to Mule, an open-source enterprise service bus (ESB). It discusses what Mule is, how to use it, and some of its core concepts. Mule uses technologies like staged event-driven architecture (SEDA) and Java NIO to process events and messages asynchronously and efficiently. The document then explains Mule concepts like endpoints, transports, connectors, routers, filters, transformers and the universal message object (UMO) that Mule uses to process events through its pipeline. It provides examples of using Mule with file endpoints and XML pipelines.

open sourcemulesoftintegration
Mule esb
Mule esbMule esb
Mule esb

This document provides an introduction to Mule, an open-source enterprise service bus (ESB). It discusses what Mule is, how it can be used, and its core concepts. Mule uses technologies like staged event-driven architecture (SEDA) and Java NIO to facilitate integration. Core Mule concepts include endpoints, routers, filters, transformers, and the universal message object (UMO). The document also provides examples of using Mule for file processing and XML pipelines. It demonstrates how Mule handles normal processing as well as exceptions.

Mule Overview
Mule OverviewMule Overview
Mule Overview

The document discusses the open-source enterprise service bus Mule, including what Mule is, its core concepts like the universal message object and endpoints, and how Mule uses technologies like staged event-driven architecture and non-blocking I/O to move data between different systems and formats in a flexible way. It also provides examples of using Mule to move XML files between directories and handling exceptions.

Copyright 2006-2009 Dan 37
M
D
Sample XML
<?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>
XML Schema validation will generate an error message
when it gets to the fourth invalid data element:
Given the following XML Schema file:
Copyright 2006-2009 Dan 38
M
D
Validating against an XML Schema
<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>
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
Copyright 2006-2009 Dan 39
M
D
Error Message
document : cvc-complex-type.2.4.d: Invalid content was found
starting with element 'DansInvalidDataElement'. No child
element is expected at this point.
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?
Copyright 2006-2009 Dan 40
M
D
Thank You!
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
Dan McCreary, President
Dan McCreary & Associates
Metadata Strategy Development
dan@danmccreary.com
(952) 931-9198

Recommended for you

Mule overview
Mule overviewMule overview
Mule overview

The document discusses the open-source enterprise service bus Mule, including what Mule is, its core concepts like the universal message object and endpoints, and how Mule uses technologies like staged event-driven architecture and non-blocking I/O to move data between different systems and formats in a flexible way. It also provides examples of using Mule to move XML files between directories and handling exceptions.

Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule

This document provides an introduction and overview of Mule, an open-source enterprise service bus (ESB). It discusses what Mule is, how it uses advanced technologies like staged event-driven architecture (SEDA) and Java NIO. The core concepts of Mule like the universal message object, endpoints, transports, connectors, routers, filters and transformers are explained. Examples are given of using Mule for file processing and XML pipelines. Exception handling in Mule is also covered.

Mule
MuleMule
Mule

This document provides an overview of Mule, an open-source enterprise service backbone. It discusses key Mule concepts like the universal message object, transports, connectors, routers, filters, transformers and the Mule event flow. It also covers how Mule uses staged event-driven architecture and Java NIO for advanced technologies. Specific examples are provided around using Mule with file endpoints and for XML pipelines. The document concludes with a discussion of exception handling in Mule.

mulé

More Related Content

What's hot

Mule overview
Mule overviewMule overview
Mule overview
F K
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
Oleg Tsal-Tsalko
 
Dcnintroduction 141010054657-conversion-gate01
Dcnintroduction 141010054657-conversion-gate01Dcnintroduction 141010054657-conversion-gate01
Dcnintroduction 141010054657-conversion-gate01
yibeltal yideg
 
WSDL in Mule Esb
WSDL in Mule EsbWSDL in Mule Esb
WSDL in Mule Esb
Anand kalla
 
Mule JMS Transport
Mule JMS TransportMule JMS Transport
Mule JMS Transport
Rupesh Sinha
 
Thrift
ThriftThrift
Thrift
银行 孙
 
Clustering & nlb
Clustering & nlbClustering & nlb
Clustering & nlb
Vinod Hanumantharayappa
 
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache CamelJUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
Naveen Raj Balasubramaniam
 
Mule overview
Mule overviewMule overview
Mule overview
Praneethchampion
 
Acceleration Technology: Solving File Transfer Issues
Acceleration Technology: Solving File Transfer IssuesAcceleration Technology: Solving File Transfer Issues
Acceleration Technology: Solving File Transfer Issues
FileCatalyst
 
WSO2 ESB Introduction to Inbound Endpoints
WSO2 ESB Introduction to Inbound EndpointsWSO2 ESB Introduction to Inbound Endpoints
WSO2 ESB Introduction to Inbound Endpoints
Isuru Udana
 
Tv and video on the Internet
Tv and video on the InternetTv and video on the Internet
Tv and video on the Internet
Divante
 
Edge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format TodayEdge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format Today
Akamai Technologies
 
CCNA part 1 osi
CCNA part 1 osiCCNA part 1 osi
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Microsoft Décideurs IT
 
04.m3 cms streaming-protocol
04.m3 cms streaming-protocol04.m3 cms streaming-protocol
04.m3 cms streaming-protocol
tarensi
 
QLogic Solutions - Microsoft Exchange Server
QLogic Solutions - Microsoft Exchange ServerQLogic Solutions - Microsoft Exchange Server
QLogic Solutions - Microsoft Exchange Server
QLogic Corporation
 
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
Praneethchampion
 
Differentiated services - Advance Routing
Differentiated services - Advance RoutingDifferentiated services - Advance Routing
Differentiated services - Advance Routing
Pradnya Saval
 
Load balancing
Load balancingLoad balancing

What's hot (20)

Mule overview
Mule overviewMule overview
Mule overview
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
 
Dcnintroduction 141010054657-conversion-gate01
Dcnintroduction 141010054657-conversion-gate01Dcnintroduction 141010054657-conversion-gate01
Dcnintroduction 141010054657-conversion-gate01
 
WSDL in Mule Esb
WSDL in Mule EsbWSDL in Mule Esb
WSDL in Mule Esb
 
Mule JMS Transport
Mule JMS TransportMule JMS Transport
Mule JMS Transport
 
Thrift
ThriftThrift
Thrift
 
Clustering & nlb
Clustering & nlbClustering & nlb
Clustering & nlb
 
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache CamelJUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
JUDCon2014-ScalableMessagingWithJBossA-MQ and Apache Camel
 
Mule overview
Mule overviewMule overview
Mule overview
 
Acceleration Technology: Solving File Transfer Issues
Acceleration Technology: Solving File Transfer IssuesAcceleration Technology: Solving File Transfer Issues
Acceleration Technology: Solving File Transfer Issues
 
WSO2 ESB Introduction to Inbound Endpoints
WSO2 ESB Introduction to Inbound EndpointsWSO2 ESB Introduction to Inbound Endpoints
WSO2 ESB Introduction to Inbound Endpoints
 
Tv and video on the Internet
Tv and video on the InternetTv and video on the Internet
Tv and video on the Internet
 
Edge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format TodayEdge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format Today
 
CCNA part 1 osi
CCNA part 1 osiCCNA part 1 osi
CCNA part 1 osi
 
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
 
04.m3 cms streaming-protocol
04.m3 cms streaming-protocol04.m3 cms streaming-protocol
04.m3 cms streaming-protocol
 
QLogic Solutions - Microsoft Exchange Server
QLogic Solutions - Microsoft Exchange ServerQLogic Solutions - Microsoft Exchange Server
QLogic Solutions - Microsoft Exchange Server
 
Mule rabbitmq
Mule rabbitmqMule rabbitmq
Mule rabbitmq
 
Differentiated services - Advance Routing
Differentiated services - Advance RoutingDifferentiated services - Advance Routing
Differentiated services - Advance Routing
 
Load balancing
Load balancingLoad balancing
Load balancing
 

Viewers also liked

Discordância
Discordância Discordância
3 discordancias e deformacao
3  discordancias e deformacao3  discordancias e deformacao
3 discordancias e deformacao
Juliana Faber
 
Grupo Discordâncias e deformação plástica
Grupo Discordâncias e deformação plásticaGrupo Discordâncias e deformação plástica
Grupo Discordâncias e deformação plástica
emc5714
 
Estampagem
EstampagemEstampagem
Estampagem
André Sampaio
 
Conformação mecânica
Conformação mecânicaConformação mecânica
Conformação mecânica
Vitor Paese
 
Estampagem
EstampagemEstampagem
Estampagem
Hertz Oliveira
 

Viewers also liked (6)

Discordância
Discordância Discordância
Discordância
 
3 discordancias e deformacao
3  discordancias e deformacao3  discordancias e deformacao
3 discordancias e deformacao
 
Grupo Discordâncias e deformação plástica
Grupo Discordâncias e deformação plásticaGrupo Discordâncias e deformação plástica
Grupo Discordâncias e deformação plástica
 
Estampagem
EstampagemEstampagem
Estampagem
 
Conformação mecânica
Conformação mecânicaConformação mecânica
Conformação mecânica
 
Estampagem
EstampagemEstampagem
Estampagem
 

Similar to Mule overview

mule-overview.ppt
mule-overview.pptmule-overview.ppt
mule-overview.ppt
NalamalpuBhakthavats
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
Achyuta Lakshmi
 
Mule esb
Mule esbMule esb
Mule esb
Naveen Chintala
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
AbdulImrankhan7
 
Mule overview
Mule overviewMule overview
Mule overview
Mohammed625
 
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
mdfkhan625
 
Mule
MuleMule
Mule overview
Mule overviewMule overview
Mule overview
Manav Prasad
 
Mule overview-ppt
Mule overview-pptMule overview-ppt
Mule overview-ppt
Prabhat gangwar
 
Mule overview
Mule overviewMule overview
Mule overview
nikitjain2011
 
Mulesoftppt
Mulesoftppt Mulesoftppt
Mule overview
Mule overviewMule overview
Mule overview
Rajkattamuri
 
ESB introduction using Mule
ESB introduction using MuleESB introduction using Mule
ESB introduction using Mule
Khasim Cise
 
An introduction to Apache Camel
An introduction to Apache CamelAn introduction to Apache Camel
An introduction to Apache Camel
Kapil Kumar
 
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
AbdulImrankhan7
 
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep DiveWSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2
 
complete web service1.ppt
complete web service1.pptcomplete web service1.ppt
complete web service1.ppt
Dr.Saranya K.G
 
Introduction to the client server computing By Attaullah Hazrat
Introduction to the client server computing By Attaullah HazratIntroduction to the client server computing By Attaullah Hazrat
Introduction to the client server computing By Attaullah Hazrat
Attaullah Hazrat
 
Web service architecture
Web service architectureWeb service architecture
Web service architecture
Muhammad Shahroz Anwar
 
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Amazon Web Services
 

Similar to Mule overview (20)

mule-overview.ppt
mule-overview.pptmule-overview.ppt
mule-overview.ppt
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
 
Mule overview
Mule overviewMule overview
Mule overview
 
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
 
Mule
MuleMule
Mule
 
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
 
Mulesoftppt
Mulesoftppt Mulesoftppt
Mulesoftppt
 
Mule overview
Mule overviewMule overview
Mule overview
 
ESB introduction using Mule
ESB introduction using MuleESB introduction using Mule
ESB introduction using Mule
 
An introduction to Apache Camel
An introduction to Apache CamelAn introduction to Apache Camel
An introduction to Apache Camel
 
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
 
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep DiveWSO2Con USA 2015: WSO2 Integration Platform Deep Dive
WSO2Con USA 2015: WSO2 Integration Platform Deep Dive
 
complete web service1.ppt
complete web service1.pptcomplete web service1.ppt
complete web service1.ppt
 
Introduction to the client server computing By Attaullah Hazrat
Introduction to the client server computing By Attaullah HazratIntroduction to the client server computing By Attaullah Hazrat
Introduction to the client server computing By Attaullah Hazrat
 
Web service architecture
Web service architectureWeb service architecture
Web service architecture
 
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
Migrate from Oracle to Aurora PostgreSQL: Best Practices, Design Patterns, & ...
 

More from ppts123456

Anypointconnectordevkit 160816041722
Anypointconnectordevkit 160816041722Anypointconnectordevkit 160816041722
Anypointconnectordevkit 160816041722
ppts123456
 
Muleesbcomponents1 160625154208
Muleesbcomponents1 160625154208Muleesbcomponents1 160625154208
Muleesbcomponents1 160625154208
ppts123456
 
Flowsinmule 160517130818
Flowsinmule 160517130818Flowsinmule 160517130818
Flowsinmule 160517130818
ppts123456
 
Mulefundamentals 160503050909
Mulefundamentals 160503050909Mulefundamentals 160503050909
Mulefundamentals 160503050909
ppts123456
 
4 150915033746-lva1-app6892
4 150915033746-lva1-app68924 150915033746-lva1-app6892
4 150915033746-lva1-app6892
ppts123456
 
Mulehdfsconnector 160810122655
Mulehdfsconnector 160810122655Mulehdfsconnector 160810122655
Mulehdfsconnector 160810122655
ppts123456
 
Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841
ppts123456
 
Deployingmuleapplications 160903085602
Deployingmuleapplications 160903085602Deployingmuleapplications 160903085602
Deployingmuleapplications 160903085602
ppts123456
 
Mulesoftanypointplatformintro
MulesoftanypointplatformintroMulesoftanypointplatformintro
Mulesoftanypointplatformintro
ppts123456
 
Wsdl
WsdlWsdl
2016 08-08 ecology and environment
2016 08-08 ecology and environment2016 08-08 ecology and environment
2016 08-08 ecology and environment
ppts123456
 
Algorithm analysis and efficiency
Algorithm analysis and efficiencyAlgorithm analysis and efficiency
Algorithm analysis and efficiency
ppts123456
 
E procureppt
E procurepptE procureppt
E procureppt
ppts123456
 

More from ppts123456 (13)

Anypointconnectordevkit 160816041722
Anypointconnectordevkit 160816041722Anypointconnectordevkit 160816041722
Anypointconnectordevkit 160816041722
 
Muleesbcomponents1 160625154208
Muleesbcomponents1 160625154208Muleesbcomponents1 160625154208
Muleesbcomponents1 160625154208
 
Flowsinmule 160517130818
Flowsinmule 160517130818Flowsinmule 160517130818
Flowsinmule 160517130818
 
Mulefundamentals 160503050909
Mulefundamentals 160503050909Mulefundamentals 160503050909
Mulefundamentals 160503050909
 
4 150915033746-lva1-app6892
4 150915033746-lva1-app68924 150915033746-lva1-app6892
4 150915033746-lva1-app6892
 
Mulehdfsconnector 160810122655
Mulehdfsconnector 160810122655Mulehdfsconnector 160810122655
Mulehdfsconnector 160810122655
 
Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841Mulethenewtechnology 12549172699166-phpapp03-160421133841
Mulethenewtechnology 12549172699166-phpapp03-160421133841
 
Deployingmuleapplications 160903085602
Deployingmuleapplications 160903085602Deployingmuleapplications 160903085602
Deployingmuleapplications 160903085602
 
Mulesoftanypointplatformintro
MulesoftanypointplatformintroMulesoftanypointplatformintro
Mulesoftanypointplatformintro
 
Wsdl
WsdlWsdl
Wsdl
 
2016 08-08 ecology and environment
2016 08-08 ecology and environment2016 08-08 ecology and environment
2016 08-08 ecology and environment
 
Algorithm analysis and efficiency
Algorithm analysis and efficiencyAlgorithm analysis and efficiency
Algorithm analysis and efficiency
 
E procureppt
E procurepptE procureppt
E procureppt
 

Recently uploaded

Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
onemonitarsoftware
 
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdfResponsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Trackobit
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
taskroupseo
 
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
avufu
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
ssuser2b426d1
 
active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
sudsdeep
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
DNUG e.V.
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
Roshan Dwivedi
 
WEBINAR SLIDES: CCX for Cloud Service Providers
WEBINAR SLIDES: CCX for Cloud Service ProvidersWEBINAR SLIDES: CCX for Cloud Service Providers
WEBINAR SLIDES: CCX for Cloud Service Providers
Severalnines
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
SimonedeGijt
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
sudsdeep
 
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Softwares
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
bhatinidhi2001
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
Ortus Solutions, Corp
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
Philip Schwarz
 
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdfAWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
karim wahed
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
shivamt017
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
Mitchell Marsh
 
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
Semiosis Software Private Limited
 

Recently uploaded (20)

Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
Discover the Power of ONEMONITAR: The Ultimate Mobile Spy App for Android Dev...
 
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdfResponsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdf
 
Leading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptxLeading Project Management Tool Taskruop.pptx
Leading Project Management Tool Taskruop.pptx
 
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
一比一原版英国牛津大学毕业证(oxon毕业证书)如何办理
 
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTIONBITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
BITCOIN HEIST RANSOMEWARE ATTACK PREDICTION
 
active-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptxactive-directory-auditing-solution (2).pptx
active-directory-auditing-solution (2).pptx
 
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdfdachnug51 - HCL Sametime 12 as a Software Appliance.pdf
dachnug51 - HCL Sametime 12 as a Software Appliance.pdf
 
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
FAST Channels: Explosive Growth Forecast 2024-2027 (Buckle Up!)
 
WEBINAR SLIDES: CCX for Cloud Service Providers
WEBINAR SLIDES: CCX for Cloud Service ProvidersWEBINAR SLIDES: CCX for Cloud Service Providers
WEBINAR SLIDES: CCX for Cloud Service Providers
 
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptxWired_2.0_Create_AmsterdamJUG_09072024.pptx
Wired_2.0_Create_AmsterdamJUG_09072024.pptx
 
Splunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptxSplunk_Remote_Work_Insights_Overview.pptx
Splunk_Remote_Work_Insights_Overview.pptx
 
NBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial CompanyNBFC Software: Optimize Your Non-Banking Financial Company
NBFC Software: Optimize Your Non-Banking Financial Company
 
Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)Software development... for all? (keynote at ICSOFT'2024)
Software development... for all? (keynote at ICSOFT'2024)
 
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.CViewSurvey Digitech Pvt Ltd that  works on a proven C.A.A.G. model.
CViewSurvey Digitech Pvt Ltd that works on a proven C.A.A.G. model.
 
How we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hoursHow we built TryBoxLang in under 48 hours
How we built TryBoxLang in under 48 hours
 
Folding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a seriesFolding Cheat Sheet #7 - seventh in a series
Folding Cheat Sheet #7 - seventh in a series
 
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdfAWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
AWS Cloud Practitioner Essentials (Second Edition) (Arabic) AWS Security .pdf
 
Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.Shivam Pandit working on Php Web Developer.
Shivam Pandit working on Php Web Developer.
 
Overview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptxOverview of ERP - Mechlin Technologies.pptx
Overview of ERP - Mechlin Technologies.pptx
 
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
React vs Next js: Which is Better for Web Development? - Semiosis Software Pr...
 

Mule overview

  • 1. Copyright 2006-2009 Dan 1 M D The Enterprise Service Bus Introduction using Mule Introduction to Open-Source ESB Authors: Dan McCreary and Arun Batchu Date: 11/20/2006 Version: DRAFT 0.2
  • 2. Copyright 2006-2009 Dan 2 M D Agenda • What is Mule? • How do you use Mule? • What are the core Mule concepts? • Learning mule with File endpoints
  • 3. Copyright 2006-2009 Dan 3 M D Enterprise Service Backbone • Mule is an open-source Enterprise Service Backbone (ESB)
  • 4. Copyright 2006-2009 Dan 4 M D Mule is Has Advanced Technologies • SEDA – Staged Event-Driven Architecture • Java NIO – Java New Input/Output
  • 5. Copyright 2006-2009 Dan 5 M D SEDA • 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
  • 6. Copyright 2006-2009 Dan 6 M D Java NIO • 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
  • 7. Copyright 2006-2009 Dan 7 M D Mule’s “Moves Things Around” • Folder to folder • Queue to queue • Shared memory to shared memory • Using different types of transports • In a flexible way
  • 8. Copyright 2006-2009 Dan 8 M D XML Pipeline • 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)
  • 9. Copyright 2006-2009 Dan 9 M D CRV Example • Flow of XML document through approval processes Submit CRV Deed Matched CRV SSN Stripped CRV Income Tax Audit County Audit County Approval State Audit State Approval
  • 10. Copyright 2006-2009 Dan 10 M D Decomposition • Example of XML Operations used on CRV Validate Split Remove SSN Element Store Modify Value Add Element Modify Value Add Element
  • 11. Copyright 2006-2009 Dan 11 M D Declarative Approach • Focus on specifying "What" not "How" • Empower business analysis to write machine-readable specifications • Hide the "How" behind services with clear interfaces (SOA)
  • 12. Copyright 2006-2009 Dan 12 M D Core Mule Concepts • Mule Manager • Mule Model • Universal Message Object (UMO) • Endpoints • External Applications
  • 13. Copyright 2006-2009 Dan 13 M D Universal Message Object (UMO) • 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
  • 14. Copyright 2006-2009 Dan 14 M D Transport • 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
  • 15. Copyright 2006-2009 Dan 15 M D Connector • 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.
  • 16. Copyright 2006-2009 Dan 16 M D 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
  • 17. Copyright 2006-2009 Dan 17 M D Filter • 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.
  • 18. Copyright 2006-2009 Dan 18 M D 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.
  • 19. Copyright 2006-2009 Dan 19 M D Mule 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
  • 20. Copyright 2006-2009 Dan 20 M D Message Receiver Endpoint • 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 Endpoint (Message Dispatcher) Inbound Router Outbound Router Inbound Transformer Outbound Transformer Interceptor Service Invocation Interceptor Endpoint (Message Receiver)
  • 21. Copyright 2006-2009 Dan 21 M D Inbound Router • 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 Endpoint (Message Dispatcher) Inbound Router Outbound Router Inbound Transformer Outbound Transformer Interceptor Service Invocation Interceptor Endpoint (Message Receiver)
  • 22. Copyright 2006-2009 Dan 22 M D Interceptor • 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. Endpoint (Message Dispatcher) Inbound Router Outbound Router Inbound Transformer Outbound Transformer Service Invocation Interceptor Endpoint (Message Receiver) Interceptor
  • 23. Copyright 2006-2009 Dan 23 M D Inbound Transformer • If the inbound data is not in the correct format for the service it must be transformed at this point Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Outbound Router Outbound Transformer Interceptor Service Invocation Interceptor Inbound Transformer
  • 24. Copyright 2006-2009 Dan 24 M D 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
  • 25. Copyright 2006-2009 Dan 25 M D Outbound Router • Dispatching the data to all the relevant endpoints Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Outbound Transformer Interceptor Interceptor Inbound Transformer Service Invocation Outbound Router
  • 26. Copyright 2006-2009 Dan 26 M D Built-in Router Classes 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
  • 27. Copyright 2006-2009 Dan 27 M D Outbound Transformer • 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 Endpoint (Message Receiver) Endpoint (Message Dispatcher) Inbound Router Interceptor Interceptor Inbound Transformer Service Invocation Outbound Router Outbound Transformer
  • 28. Copyright 2006-2009 Dan 28 M D Test Environment
  • 29. Copyright 2006-2009 Dan 29 M D Omitted From Examples for Brevity <?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">
  • 30. Copyright 2006-2009 Dan 30 M D Outline of Move All Files <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>
  • 31. Copyright 2006-2009 Dan 31 M D Move All Files – Procedural Details <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.OutboundPassThroughRou ter"> <endpoint address="file:///c:/tmp/out"/> </router> </outbound-router> </mule-descriptor> </model> </mule-configuration>
  • 32. Copyright 2006-2009 Dan 32 M D Only Moving XML Files <inbound-router> <endpoint address="file:///c:/mule-class/in"> <filter pattern="*.xml" className= "org.mule.providers.file.filters.FilenameWildcardFilter"/> </endpoint> </inbound-router> 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.
  • 33. Copyright 2006-2009 Dan 33 M D Keeping the Name The Same <outbound-router> <router className="org.mule.routing.outbound.OutboundPassThroughRouter"> <endpoint address= "file:///c:/mule-class/out?outputPattern=$[ORIGINALNAME]" /> </router> </outbound-router> Add the outputPattern parameter to keep the output name the same as the input.
  • 34. Copyright 2006-2009 Dan 34 M D Happy Path and Exceptions • 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.) Start StopStep 1 Step 2 Step 3 Stop Stop Stop
  • 35. Copyright 2006-2009 Dan 35 M D Exception Handling • 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)
  • 36. Copyright 2006-2009 Dan 36 M D Exception Strategy <exception-strategy className=org.mule.impl.DefaultComponentExceptionStrategy"> <endpoint address="file:///c:/mule-class/error"/> </exception-strategy> We want all invalid documents to be moved into the error folder.
  • 37. Copyright 2006-2009 Dan 37 M D Sample XML <?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> XML Schema validation will generate an error message when it gets to the fourth invalid data element: Given the following XML Schema file:
  • 38. Copyright 2006-2009 Dan 38 M D Validating against an XML Schema <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> 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. Copyright 2006-2009 Dan 39 M D Error Message document : cvc-complex-type.2.4.d: Invalid content was found starting with element 'DansInvalidDataElement'. No child element is expected at this point. 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. Copyright 2006-2009 Dan 40 M D Thank You! 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 Dan McCreary, President Dan McCreary & Associates Metadata Strategy Development dan@danmccreary.com (952) 931-9198