112
Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 1 Mule - A Detailed Look at an Enterprise Service Bus Tom Bender Tendril Networks tommybender@gmail .com

Mule - A Detailed Look at an Enterprise Service Bus

Embed Size (px)

Citation preview

Page 1: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 1

Mule - A Detailed Look at anEnterprise Service Bus

Tom Bender

Tendril Networks

[email protected]

Page 2: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 2

Introduction• Adoption of SOA Architecture?

• Commercial, Open Source, Rolled your own?

• Adoption of ESB Solution?

• Commercial, Open Source, Rolled your own?

• What are your goals in attending this session?

• What, Why and Where of ESB?

• What makes Mule so cool?

• Mule ESB Coding Samples?

Page 3: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 3

Introduction

Tom Bender

Page 4: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 4

Introduction

Page 5: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 5

Introduction

Page 6: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 6

Introduction

Page 7: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 7

Introduction

Page 8: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 8

Introduction

Page 9: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 9

Introduction

Page 10: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 10

Introduction

Page 11: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 11

Introduction

Page 12: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 12

Introduction

Systems Architect

Page 13: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 13

Introduction

Industrial Machine Vision

Ann Arbor, Michigan

Page 14: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 14

Introduction

Financial Quantitative ExpertTrading Systems

Los Angeles, CA

Page 15: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 15

Introduction

Expert Constraint Systems

Sales Force Automation

Golden, CO

Page 16: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 16

Introduction

Consultant

Boulder, CO

Page 17: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 17

Introduction

Local Commerce

Jabber IM

Denver, CO

Page 18: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 18

Introduction

Satellite Scheduling Systems

Geospatial InformationSystems

Longmont, CO

Page 19: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 19

Introduction

802.15.4

Wireless Sensor & ActuatorNetworks

Boulder, CO

Page 20: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 20

Introduction

• Dave Chappelle?

Page 21: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 21

Introduction

• Dave Chappelle David Chappell

Page 22: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 22

Agenda

Definition of Terms

Introduction to Mule

A Closer Look at Mule

Inside Mule, A Look at SEDA

Workflow Examples using Mule ESB

Page 23: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 23

Technology Quote

"Perfection is achieved, not when there is nothing more toadd, but when there is nothing left to take away." - Antoine de Saint-Exupery

Page 24: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 24

Definition of Terms

Service:

is a coarse-grained, discoverable, and self-contained software entity that

interacts with applications and other services through a loosely coupled,

often asynchronous, message-based communication model.

Service Oriented Architecture:a collection of services with well-defined interfaces and a shared

communications model is called a service-oriented architecture (SOA). A

system or application is designed and implemented as a set of interactions

among these services.

Enterprise Service Bus:provides a light weight, loosely coupled, event-driven SOA with a highly

distributed universe of named routing destinations across a multi-protocol

message bus.

Page 25: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 25

Definition of Terms

Workflow:

A workflow management system (WFMS) is a software component that

takes as input a formal description of business processes and maintains the

state of processes executions, thereby delegating activities amongst people

and applications. - Tom Baeyens, jBPM Founder

Page 26: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 26

Principles of SOA

“Four Tenets of SOA” as proposed by Don Box:

Boundaries are Explicit

Services are Autonomous

Services share Schema and Contract, not Class

Compatibility is based upon Policy

Page 27: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 27

Properties of an ESBLight Weight

Loosely Coupled

Event-Driven

Transactional

Securable

Distributed Network Topologies

Abstract Endpoints

Intelligent Routing

Message Transformation (inbound/outbound)

Reliable Messaging / QoS

Multi-Protocol Message Bus

Page 28: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 28

ESB Adoption:Partitioning and Encapsulating SOA

Integration Approaches

Application andIntegration Logic

separated

Application andIntegration logicnot separated

Hub-and-SpokeIntegration

DistributedIntegration

TraditionalEAI

ESB

ApplicationServers

Custom Code/MOM

Page 29: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 29

Introduction to Mule

Brief Description

Community

Resources

Page 30: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 30

Introduction to Mule

DescriptionMule is an event-based architecture.

Actions within a Mule network are triggered by either eventsoccurring in Mule or in external systems.

Events always contain some sort of data, the payload.

The payload is used and/or manipulated by components and a set ofproperties that are associated to the processing of the event.

These properties are arbitrary and can be set at any time from whenthe event is created.

The data in the event can be accessed in its original state or in itstransformed state.

The event will use the transformer associated with the Endpoint thatreceived the event to transform its payload into a format that thereceiving component understands.

Page 31: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 31

Introduction to Mule

Mule is a light-weight messaging framework.

Highly distributable object broker

Pluggable Connectivity for multiple transports and protocols

Multiple Messages Exchange Types

Web Services using Axis or Glue

Multiple Topology Configurations

Declarative Transactions including XA

Staged Event Driven Architecture

Dynamic, Declarative, content-based and rule-based Routing

Message Transformation

Event Routing based on Enterprise Integration Pattern

Page 32: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 32

Introduction to Mule

CommunityCommitters

• Ross Mason, [email protected]

• Guillaume [email protected]

• Brian [email protected]

• Stéphane Vanmeerhaeghe

Contributors• http://mule.codehaus.org/docs/team-list.html

• http://mule.codehaus.org/Team

Page 33: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 33

Introduction to Mule

Resources

Web Site

Documentation

IRC

Source Code

Bug Database/JIRA

Mailing List Archive

Example Code

Page 34: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 34

Introduction to Mule

Web Sites

• http://mule.codehaus.org

• http://www.muleumo.org

Page 35: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 35

Introduction to MuleDocumentation

Mule Documentation Home

• http://mule.codehaus.org/docs/

Mule User Guide

• http://docs.codehaus.org/display/MULE/User+Guide

Mule Cookbook

• http://docs.codehaus.org/display/MULE/Mule+Cookbook

Mule Client

• http://docs.codehaus.org/display/MULE/Mule+Client

Mule Message Routers

• http://mule.codehaus.org/Message+Routers

Mule Properties Configuration

• http://mule.codehaus.org/Configuring+Properties

Page 36: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 36

Introduction to MuleMule Docs (Continued)

JBoss Integration

• http://mule.codehaus.org/JBoss+Integration

Spring as a Component Factory

• http://mule.codehaus.org/Using+Spring+as+a+Component+Factory

RSS FeedsSite

• http://docs.codehaus.org/spaces/rss.action?key=MULE&newPages=false

News• http://docs.codehaus.org/spaces/blogrss.action?key=MULE

RSS

Page 37: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 37

Introduction to Mule

IRC

Information on IRC Options• http://mule.codehaus.org/IRC

IRC Channel

• irc://irc.codehaus.org/#mule

Page 38: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 38

Introduction to Mule

Source Code

Mule Releases

• http://mule.codehaus.org/Download

CVS

• http://mule.codehaus.org/CVS+Info

Page 39: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 39

Introduction to Mule

Bug DatabaseJIRA

• http://jira.muleumo.org/

Page 40: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 40

Introduction to Mule

Mailing Listhttp://archive.codehaus.org/mule/

• announce, despots, dev, scm, user

GMANE SearchUser

• http://search.gmane.org/?group=gmane.comp.java.mule.user

Dev• http://search.gmane.org/?group=gmane.comp.java.mule.devel

Page 41: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 41

A Closer Look at Mule

UMOUMO

ComponentComponent

UMO Component

Page 42: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 42

A Closer Look at Mule

Application UMOUMO

ComponentComponentApplicationApplication

Wiring Applications with Mule

Page 43: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 43

A Closer Look at Mule

ChannelChannelApplication UMOUMO

ComponentComponentApplicationApplication

Wiring Applications with Mule

Page 44: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 44

A Closer Look at Mule

ChannelChannelApplication

Me

ssa

ge

Re

ce

ive

rM

essa

ge

Re

ce

ive

r

Co

nn

ecto

rC

on

ne

cto

r

Tra

nsfo

rme

rT

ran

sfo

rme

r

UMOUMO

ComponentComponentApplicationApplication

Wiring Applications with Mule

Page 45: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 45

A Closer Look at Mule

ChannelChannelApplicationInboundInbound

RouterRouterUMOUMO

ComponentComponentApplicationApplication

Wiring Applications with MuleM

essa

ge

Re

ce

ive

rM

essa

ge

Re

ce

ive

r

Co

nn

ecto

rC

on

ne

cto

r

Tra

nsfo

rme

rT

ran

sfo

rme

r

Page 46: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 46

A Closer Look at Mule

ChannelChannelApplicationInboundInbound

RouterRouterUMOUMO

ComponentComponent

OutboundOutbound

RouterRouterApplicationApplication

Wiring Applications with MuleM

essa

ge

Re

ce

ive

rM

essa

ge

Re

ce

ive

r

Co

nn

ecto

rC

on

ne

cto

r

Tra

nsfo

rme

rT

ran

sfo

rme

r

Page 47: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 47

A Closer Look at Mule

ChannelChannelApplicationInboundInbound

RouterRouterUMOUMO

ComponentComponent

OutboundOutbound

RouterRouterApplicationApplication

Wiring Applications with MuleM

essa

ge

Dis

pa

tch

Me

ssa

ge

Dis

pa

tch

Co

nn

ecto

rC

on

ne

cto

r

Tra

nsfo

rme

rT

ran

sfo

rme

r

Me

ssa

ge

Re

ce

ive

rM

essa

ge

Re

ce

ive

r

Co

nn

ecto

rC

on

ne

cto

r

Tra

nsfo

rme

rT

ran

sfo

rme

r

Page 48: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 48

A Closer Look at Mule

ChannelChannelApplicationInboundInbound

RouterRouterUMOUMO

ComponentComponent

OutboundOutbound

RouterRouterApplicationApplication

Wiring Applications with Mule

ChannelChannel

Me

ssa

ge

Re

ce

ive

rM

essa

ge

Re

ce

ive

r

Co

nn

ecto

rC

on

ne

cto

r

Tra

nsfo

rme

rT

ran

sfo

rme

r

Me

ssa

ge

Dis

pa

tch

Me

ssa

ge

Dis

pa

tch

Co

nn

ecto

rC

on

ne

cto

r

Tra

nsfo

rme

rT

ran

sfo

rme

r

Page 49: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 49

A Closer Look at Mule

ChannelLogical address in the messaging system

Mule ChannelWires components

Supports many channel options known as TransportProviders

Page 50: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 50

A Closer Look at Mule

Message Receiver

Receives data from the Application.

Supports Multiple Transport Providers

• Jms, soap, http, tcp, xmpp, smtp, file, etc.

Additional Information

Page 51: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 51

A Closer Look at Mule

ConnectorSends and receives data over a channel

A message receiver is coupled with a connector and Transformercomprising a Transport Provider

The connector is responsible for sending data to a resource andmanaging a listener on the connector to receive data from aresource. (e.g. JmsConnector)

Page 52: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 52

A Closer Look at Mule

ConnectorMessageReceiver

• Used to listen on an endpoint to the underlying protocol.

MessageDispatcher• Is used to dispatch events to the underlying protocol.

• Message Dispatchers are poolable threads that can be used to dispatchevents or perform a receive on the underlying protocol to retrieve anavailable event if there is one.

• The UMOMessageDispatcher interface defines 3 important methods:

dispatch() - sends data to the external system asynchronously.

send() - sends data to the external system synchronously andreturns any response from the external system as a UMOEvent.

receive() - will request an event from the underlying technology andreturns the result. This method has a timeout parameter.

Page 53: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 53

A Closer Look at Mule

ConnectorAdditional Information

• http://mule.codehaus.org/Architecture+Guide#ArchitectureGuide-connectors

Page 54: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 54

A Closer Look at Mule

TransformerTransformers are used to convert source data to an object type required bythe UMO Component.

Transformers can be configured on Endpoints that receive data to ensurethat the expected object type is always received by an UMO Component.

Transformers configured on an Outbound endpoint ensure that theendpoint receives the the correct object type before dispatching the event.

Multiple transformers can be chained together to allow for finer grainedtransformer implementations that are easier to reuse.

To configure an Endpoint to use more than one transformer, just specify aspace separated list of transformers in the config file

Page 55: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 55

A Closer Look at Mule

TransformerInbound Transformer

Outbound Transformer

Page 56: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 56

A Closer Look at MuleEndpoint

a logical, configuration entity that is attached to components or externalnetwork resources and used to control where events are sent and receivedin Mule

• Endpoint URI - an address that is used to reference a resource or service eitherlocally or remotely. This must be a valid URI.

• Connector - used to connect to the underlying transport. Often the connector isnot explicitly set, instead the connector for the endpoint is found based on thescheme of the Endpoint URI.

• Filter - a filter to apply to messages being received on the endpoint. See theTransports Guide for information about filtering support for a specific transport.

• Transaction - Transactions can begin or commit when an event is received orsent.

• Properties - These can be set to override certain properties on the connector forthis endpoint instance. For example, when using a smtp endpoint you may wantto overload the from address.

Page 57: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 57

A Closer Look at MuleEndpoint Configuration

POP3/SMTP

• pop3://user:[email protected]

• smtp://user:[email protected]

JMS Topic or Queue

• jms://topic:myTopic

HTTP

• http://mycompany.com/mule

File

• file:///tmp/data/in

VM

• vm://MyUMO

SOAP

• axis:http://mycompany.com/mule/services/MyUMO

Page 58: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 58

A Closer Look at Mule

Endpoint ConfigurationAdditional Information

• http://mule.codehaus.org/Configuring+Endpoints

Page 59: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 59

A Closer Look at Mule

Elements of a Transport ProviderConnector, is responsible for connecting to the underlying resource

Message Receiver, is used to receive events from the system

Connector Dispatchers, are responsible for passing data to the system

Transformers are Transport specific transformers used to convert inboundand outbound data

Page 60: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 60

A Closer Look at MuleMessage Routers

Controls how events are sent and received by components in thesystem

Inbound Routers that are invoked when an event is received

Outbound Routers that are invoked when an event is beingdispatched

Response Routers that are invoked when a registered event isreceived

Router TypesInbound

Outbound

Response

Page 61: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 61

A Closer Look at MuleInbound Routers

Idempotent Receiver (528)

Selective Consumer (515)

Aggregator (268)

Resequencer (283)

Forwarding Consumer

Outbound RoutersFiltering Outbound Router (70)

Recipient List (249)

Multicast Router

Chaining Router

Message Splitter (259)

Filtering List Message Splitter (70), (259)

Page 62: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 62

A Closer Look at Mule

Response Routers

Response Aggregator

• Aggregation of responses from parallel requests prior to sendingresponse to caller

Page 63: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 63

A Closer Look at Mule

Inbound Router

Controls how and which events are received by theattached UMO component

Filter, aggregate and re-sequence events

Page 64: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 64

A Closer Look at Mule

Outbound Router

Controls how and which components receive thedispatched event.

Page 65: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 65

A Closer Look at Mule

Message RoutersCatch All Strategies

• No available routing path

• Associate provider and route to common endpoint

Additional Information• Mule Document: http://mule.codehaus.org/Message+Routers

Page 66: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 66

A Closer Look at Mule

FiltersFilters provide the logic by which to invoke a particularrouter.

• Multiple Filter Types

Filters can be combined using logic filters.• AndFilter

• OrFilter and

• NotFilter.

Page 67: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 67

A Closer Look at MuleFilter Types

Payload Type Filter

RegEx Filter

Wildcard Filter

XPath Filter

Logic Filters

Message Property Filter

ExtensibilityCustom Filters

Additional Informationhttp://mule.codehaus.org/Filters

Page 68: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 68

A Closer Look at Mule

Interceptors

Page 69: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 69

A Closer Look at Mule

Configuration

Mule DTD Reference• http://mule.codehaus.org/docs/mule-configuration.dtd.html

Mule DTD• http://mule.codehaus.org/docs/mule-configuration.dtd.org.html

Page 70: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 70

A Closer Look at Mule

Configuration

http://mule.codehaus.org/Configuration+Options

Page 71: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 73

A Closer Look at Mule<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mule-configuration PUBLIC "-//SymphonySoft //DTD mule-configurationXML V1.0//EN" "http://www.symphonysoft.com/dtds/mule/mule-configuration.dtd">

<mule-configuration id="fileProviderSampleProperties" version="1.0">

<connector name="FileConnector"className="org.mule.providers.file.FileConnector">

<properties>

<property name="pollingFrequency" value="1000"/>

<property name="outputPattern" value="${DATE}.xml"/>

<property name="binaryMode" value="false"/>

</properties>

</connector>

<model name="fileProviderSample">

<mule-descriptor name="ProcessUMO"

inboundEndpoint="file://inbound/myFiles"

outboundEndpoint="file://outbound/myFiles"

implementation="org.mule.samples.fileProvider.Component">

</mule-descriptor>

</model>

</mule-configuration>

Page 72: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 74

A Closer Look at Mule

Configuration

Pooling Profile

• Pooling behavior of the Mule UMO Components

• Scoped to …

<mule-model/>

All Components

<mule-descriptor/> contained in the Model

Specific Component

Page 73: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 75

A Closer Look at Mule

Configuration

Page 74: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 76

A Closer Look at Mule

Configuration

Threading Profiles

• Controls thread pool behavior in Mule

org.mule.config.ThreadingProfile

• Pool Executor

Doug Lea’s Concurrency APIs / JDK 1.5

Page 75: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 77

A Closer Look at Mule

Configuration

Page 76: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 78

A Closer Look at Mule

Configuration

Page 77: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 79

A Closer Look at Mule

Configuring Programmatically

Page 78: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 80

A Closer Look at Mule

Alternate Configuration Builders

Spring Integration• Using Spring as a Component Factory

• Configuring the Mule Server From a Spring Context

• Configuring a Spring context using Mule XML

• Mule Events in Spring

Additional Information on Spring Integration• http://mule.codehaus.org/Spring+Integration

Inversion of Control / Dependency Injection Containers

• Pico

• Plexus

Page 79: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 81

A Closer Look at Mule

Mule Manager

Page 80: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 82

A Closer Look at Mule

The Model

Encapsulates and manages runtime behavior ofa Mule Server Instance.

The details describing this instance arecontained in the Mule Configuration file.

Page 81: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 83

A Closer Look at Mule

Two Control Mechanisms to determine howMule invokes a UMO component:

Entry Point Resolver

Life Cycle Adapter

Page 82: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 84

A Closer Look at Mule

Entry Point Resolverorg.mule.umo.model.UMOEntryPointResolver interface

Determines which method to invoke on an UMOcomponent when event is received

Extend EntryPointResolver

Page 83: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 85

A Closer Look at Mule

Entry Point ResolverChecks to see if the component implements the Callable lifecycle interface, then theonCall(UMOEvent) method will be used to receive the event.

If the component has a transformer configured for it, the return type for thetransformer will be matched against methods on the component to see if there is amethod that accepts the transformer return type. If so this event will be used. Noteif there is more than one match, an exception will be thrown.

If there is a method on the component that accepts an org.mule.umo.UMOEvent. Ifso this event will be used. Note if there is more than one match, an exception will bethrown.

The last check determines if there are any methods on the component that accept ajava.util.Event. If so this event will be used. Note if there is more than one match,an exception will be thrown.

If none of the above find a match an exception will be thrown and the componentregistration will fail.

Page 84: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 86

A Closer Look at Mule

Lifecycle AdapterDefault ConstructorDefault Constructor

InitialiseInitialiseOrg.mule.Org.mule.umoumo.lifecycle..lifecycle.initialisableinitialisable

StartStartOrg.mule.Org.mule.umoumo.lifecycle..lifecycle.StartableStartable

OnCallOnCallOrg.mule.Org.mule.umoumo..lifecylelifecyle.Callable.Callable

StopStopOrg.mule.Org.mule.umoumo.lifecycle.Stoppable.lifecycle.Stoppable

DisposeDisposeOrg.mule.Org.mule.umoumo.lifecycle.Disposable.lifecycle.Disposable

Called when the component is Called when the component is

resolvedresolved

Called when the component is Called when the component is

registered with the Mule Modelregistered with the Mule Model

Called when the server is started Called when the server is started

Called when an event is received forCalled when an event is received for

the component.the component. By configuring anBy configuring an

EntryPointResolver EntryPointResolver this method canthis method can

be resolved to any method on yourbe resolved to any method on your

object object

Called when the Mule server isCalled when the Mule server is

Stopped.Stopped. The server can beThe server can be

Restarted. Restarted.

Called when the Mule server isCalled when the Mule server is

Shutdown.Shutdown. Clear up any resources. Clear up any resources.

Page 85: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 87

A Closer Look at Mule

EventsAsynchronous

• Many events can be processed by the same component at thesame time in different threads.

Synchronous• Entire request processed in a single thread of execution.

Request-Response• Request for an event, wait predefined timeout for response to

enable aggregation of intermediary responses.

Page 86: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 88

A Closer Look at Mule

Asynchronous Events

Page 87: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 89

A Closer Look at Mule

Synchronous Events

Page 88: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 90

A Closer Look at MuleTransactions

Agnostic to the underlying transaction manager

Mule transactions are configured on inbound endpoints

XA TransactionsXA transactions can be used if you want to enlist multiple managedresources within the same transaction.

Three providers support XA transaction (i) VM (ii) JDBC (iii) JMS

JOTMTransaction support outside of application server.

Additional Informationhttp://mule.codehaus.org/Transaction+Management

Page 89: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 91

A Closer Look at Mule

Securityauthenticate requests via endpoints using transport specific orgeneric authentication methods.

Securing MuleConfigure a Security Manager on the Mule Manager

• Setup one or more Security ProvidersAcegi Security

Configure the Security filter on the object to secure.

Additional Informationhttp://mule.codehaus.org/Mule+Security

Page 90: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 92

A Closer Look at Mule

JNDIhttp://mule.codehaus.org/Jndi+Container

Page 91: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 93

A Closer Look at Mule

Mule Clienthttp://mule.codehaus.org/Mule+Client

Page 92: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 94

A Closer Look at MuleConfiguring JMS

Page 93: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 95

A Closer Look at MuleConfiguring JMS

http://mule.codehaus.org/Configuring+Jms

Page 94: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 96

A Closer Look at MuleConfiguring Properties

Most of the configuration elements in the Mule Xml configuration can have a<properties> element. This defines a set of bean properties that will be set on anobject using standard getters and setters. As such, the properties names themselvesmust follow the JavaBean naming convention where the 'get' or 'set' part of theproperty method is removed and the first character of the property name islowercase. So for a bean that has a methods getTestProperty() andsetTestProperty(...) the property name is testProperty.

<properties> <property name="testProperty" value="foo"/>

</properties>

If a property is of type boolean, int, long, double, byte or float it will beautomatically converted to the correct type. Properties can also be Maps,Lists arrays,System properties, objects from a configured IoC container andfactory objects. Each of these are described in more detail below.

Addl Info: http://mule.codehaus.org/Configuring+Properties

Page 95: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 97

Inside Mule, A Look at SEDA

Staged Event Driven ArchitectureMatthew David Welsh• Harvard, Assistant Professor of Computer Science

• University of California, Berkeley (1999)Thesis: “An Architecture for Highly Concurrent, Well-Conditioned Internet Services”

• NBIO: Nonblocking I/O for Javajava.nio package

SEDA & NBIO on Sourceforge

http://sourceforge.net/projects/seda

• Additional Resourceshttp://www.eecs.harvard.edu/~mdw/proj/seda/

Page 96: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 98

Inside Mule, A Look at SEDA

Staged Event Driven Architecture GoalsSupport massive concurrency

Simplify the construction of well-conditionedservices:

Enable introspection:

Support self-tuning resource management:

Page 97: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 99

Inside Mule, A Look at SEDA

Staged Event Driven Architecturedecompose complex, event-driven applications into a set of stagesconnected by queues.

avoids the high overhead associated with thread-based concurrencymodels, and decouples event and thread scheduling fromapplication logic.

By performing admission control on each event queue, the servicecan be well-conditioned to load, preventing resources from beingovercommitted when demand exceeds service capacity.

SEDA employs dynamic control to automatically tune runtimeparameters (such as the scheduling parameters of each stage), aswell as to manage load, for example, by performing adaptive loadshedding.

Page 98: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 100

Inside Mule, A Look at SEDA

Staged Event Driven ArchitectureAn Architecture for Highly Concurrent, Well-ConditionedInternet Services

• http://www.eecs.harvard.edu/~mdw/papers/mdw-phdthesis.pdf

Page 99: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 101

ESB Related Standards :Impacts and Considerations

JSR 208 - Java Business IntegrationBPEL - Business Process ExecutionLanguageXPDLContrast and Compare XPDL & BPEL

Page 100: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 102

ESB Related Standards:Impacts and Considerations

Java Business Integration

JBI provides the core standards required to build SOA-based integration server software. It focuses onstandardising the interoperation semantics (andassociated bindings and interfaces) between what it callsservice engines and a normalized message router, whichlinks the engines together.

Page 101: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 103

ESB Related Standards:Impacts and Considerations

JBI ComponentsService Engine

• The term Service Engine (SE) is used to refer to the portion of the JBIenvironment (or framework) that is responsible for exposing anapplication programming model to developers.

• JBI does not define an application programming model but ratherdefines a set of SPIs that enable the development of standard WebService “containers” that can seamlessly utilize multiple communicationinfrastructure ranging from HTTP/SOAP [ref.] to JMS/MOM [ref.] andincluding specialized AS1/AS2 EDI [ref.] communications stacks.

Binding Component• A Binding Component may choose to implement one or more

communications protocols thus offering connectivity services to SEs andthereby enabling SEs to expose their services to local and remoteconsumers as well as enabling the consumption of remote and localWeb Services.

Page 102: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 104

ESB Related Standards:Impacts and Considerations

JMX & Web basedAdmin tools

JBI Environment

SE Life cycle& Services

ReconfigurationDeployment

ControlMonitoring

BC Life cycle& Services

Service Engine (SE) Framework

Normalized Message Service

Binding Comp (BC) Framework

WSDL-basedService Providers & Consumers

WS-IBC

\OtherBCs

BPELSE

\OtherSEs

Page 103: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 105

ESB Standards:Impacts and Considerations

Mule-JBI UpdateThe Mule team are currently working on Mule-JBI

• a JBI (JSR-208) implementation that reuses the core mulearchitecture

Alpha Release available September 2, 2005; Beta TBA• All Mule components, transports, routers and transformers can

execute in any JBI container

Mule-JBI 1.0 will support the current alpha functionality,in addition to:

• allow 3rd-party JBI components to be managed in the Mulecontainer.

• Existing Mule users will be able to integrate with JBI containersincluding Mule-JBI.

Page 104: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 106

ESB Related Standards:Impacts and Considerations

Workflow Management Coalition (“WfMC”)Founded in August, 1993

Non-profit, international organization of workflow stakeholders

Mission

• Increase the value of customers’ investment with workflow technology

• Decrease the risk of using workflow products

• Expand the workflow market through increasing awareness for workflow

Standards

• Wf-XML

• XPDL - Process Definition Language

Page 105: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 107

ESB Standards:Impacts and Considerations

Executional processes versus a WFMS:

State of Workflow - Tom Baeyens jBPM

A recent trend in the BPM community is the convergence ofspecifications about executional business processes. The approachpromoted by XLANG, WSFL and BPML converged into BPEL. BPEL isbased on interactions (message exchanges). BPEL is defined in thecontext of a service-oriented architecture. One of the prerequisites isthat the services to be addressed are described in a WSDL declaration.BPEL then specifies an XML grammar that can be seen as aprogramming language to combine control flow with calls to theservices defined in WSDL.

http://www.jboss.com/products/jbpm/stateofworkflow

Page 106: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 108

ESB Standards:Impacts and Considerations

State Based Workflow vs Executional BusinessProcess

State based WFMSs are centered around the notion of state (oractivity). The workflow engine maintains the state and calculatesthe transitions from one state to the next.

On the other hand, executional business processes like BPEL arecentered around the definition of reactions upon incoming message.A set of those reactions, along with some other bells and whistles,can be seen as a business process. That explains why BPEL issomewhat complementary to state based WFMSs. A BPELonMessage event handler, which is a reaction upon an incomingmessage, could be executed e.g. on transitions between states.

Page 107: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 110

Building Enterprise Applicationswith Mule

Workflow Enterprise Integration PatternsItinerary-based Routing

• Message Splitter (259)

• Message Aggregator (268)

Content-based Routing• Composed Message Processor (294)

Message Splitter (259)

Content-based Router (230)

Context-based Routing• Dynamic Router (243)

Message Router (78)

Page 108: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 111

Mule - A Detailed Look at anEnterprise Service Bus

Thank you

Page 109: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 112

Building Enterprise Applicationswith Mule

Loan Broker (445)

Translator (85)

Aggregator (268)

Recipient List (249)

Page 110: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 113

ReferencesMule Architecture Guide & Published Works, Symphony Soft

Ross MasonSEDA: An Architecture for Well-Conditioned, Scalable Internet Services

Matt Welsh, David Culler, and Eric Brewer. In Proceedings of the Eighteenth Symposium onOperating Systems Principles (SOSP-18), Banff, Canada, October, 2001.

http://www.eecs.harvard.edu/~mdw/papers/seda-sosp01.pdf

Software Engineering Institute, Carnegie Mellon

http://www.sei.cmu.edu/

Enterprise Service Bus

David A. Chappell - 2004

Super-Peer Architectures for Distributed Computing

Fiorano - 2003

The Evolution of Internet Scale Event Notification Services: Past, Present, and Future

Adam Rifkin and Rohit Khare

JBI Specification - JSR 208

Sun Microsystems

Page 111: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 114

ReferencesLogicBlaze, ActiveMQ, ServiceMix

James Strachen

Constructing Software For Service Oriented Architecture , Attachmate

Jean-Jacques Dubray, Ph.D.

JBI, The Only Game in Town

Ronan Bradley - 2005

Microsoft Web Site

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/wsspecsover.asp

Better, Faster, Lighter Java

Bruce Tate

Workflow Management Coalition Specification

The Workflow Reference Model

http://www.wfmc.org/standards/docs.htm

The State of Workflow

Tom Baeyens, jBPM Founder

http://www.jboss.com/products/jbpm/stateofworkflow

Page 112: Mule - A Detailed Look at an Enterprise Service Bus

Colorado Software Summit: October 23 – 28, 2005 © Copyright 2005, Tendril Networks

Tom Bender — Mule – A Detailed Look at an Enterprise Service Bus Page 115

ReferencesFundamentals of Service Orientation, Attachmate

Jean-Jacques Dubray

Enterprise Integration Patterns, Addison Wesley

Gregor Hohpe & Bobby Woolf