SlideShare a Scribd company logo
The Enterprise Service Bus
Introduction using Mule
By – Prabhat Gangwar
Agenda
• What is Mule?
• How do you use Mule?
• What are the core Mule concepts?
• Learning mule with File endpoints
Enterprise Service Backbone
• Mule is an open-source Enterprise Service Backbone (ESB)
Mule is Has Advanced
Technologies
• SEDA
• Staged Event-Driven Architecture
• Java NIO
• Java New Input/Output
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
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
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
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)
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)
Core Mule Concepts
• Mule Manager
• Mule Model
• Universal Message Object (UMO)
• Endpoints
• External Applications
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
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
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.
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
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.
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.

More Related Content

Mule overview-ppt

  • 1. The Enterprise Service Bus Introduction using Mule By – Prabhat Gangwar
  • 2. Agenda • What is Mule? • How do you use Mule? • What are the core Mule concepts? • Learning mule with File endpoints
  • 3. Enterprise Service Backbone • Mule is an open-source Enterprise Service Backbone (ESB)
  • 4. Mule is Has Advanced Technologies • SEDA • Staged Event-Driven Architecture • Java NIO • Java New Input/Output
  • 5. 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. 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. 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. 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. 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)
  • 10. Core Mule Concepts • Mule Manager • Mule Model • Universal Message Object (UMO) • Endpoints • External Applications
  • 11. 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
  • 12. 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
  • 13. 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.
  • 14. Router • A router is the object that do something with messages once they have been received by a connector, or prior to being sent out by the connector
  • 15. 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.
  • 16. 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.