+ All Categories
Home > Engineering > Introduction to esbs mule

Introduction to esbs mule

Date post: 18-Jan-2017
Category:
Upload: manavp
View: 282 times
Download: 0 times
Share this document with a friend
24
Introduction to ESBs: Mule
Transcript
Page 1: Introduction to esbs  mule

Introduction to ESBs:Mule

Page 2: Introduction to esbs  mule

Agenda

What is an ESB? Java Business Integration (JBI) Mule Architecture Mule in the Real World

Page 3: Introduction to esbs  mule

Source Material

[Ric] Mark Richards, “The Role of the Enterprise Service Bus”, NFJS, Oct 23, 2006. http://www.infoq.com/presentations/Enterprise-Service-Bus

[Mul] Mule Architecture Guide. http://mule.mulesource.org/display/MULE/Architecture+Guide

September [mule-user archive]

Page 4: Introduction to esbs  mule

Problems Addressed by ESBs Integration of existing systems Refactorable in real time Flexibility to change as requirements change Decentralized (service-location transparency) Scalable (point solutions to full enterprise) Sharing of services across enterprise Ability to separate Business Services from

Service Implementations Leverages standards

Page 5: Introduction to esbs  mule

Definition(s)

Gartner Group

Giant exercise in Separation of Concerns

[Ric]

Page 6: Introduction to esbs  mule

Definitions (more)

www.datapower.co

m

[Ric]

Page 7: Introduction to esbs  mule

ESB Features

Routing Message Transformation Message Enhancement Protocol Transformation Service Mapping

Message Processing Process Choreography Service Orchestration Transaction Management Security

[Ric]

Page 8: Introduction to esbs  mule

An ESB Blueprint

General case

Client calls Choreographer Client calls Mediator

vs

[Ric]

Page 9: Introduction to esbs  mule

Java Business Integration (JBI) JSR-208 Standard Defines service engines (SE – choreographers,

transformers, security, etc) and binding components (BC – xml, http, etc)

Concerned with how internal customers (not external services) interact with service providers

COTS

[Ric]

Page 10: Introduction to esbs  mule

JBI Example

XSLT – message transformation PXE – choreography Groovy – scripting

[Ric]

Page 11: Introduction to esbs  mule

JBI Case Study: Service Mix

Service Mix

Binding Components

Service Engines

[Ric]

Page 12: Introduction to esbs  mule

Mule Architecture

[Mule]

Page 13: Introduction to esbs  mule

Mule Flow View

Channel – a method of connecting between two points (not part of Mule)

Connector – a transport provider (e.g., http, jms, soap, smtp, etc) implementing message receive and message dispatch

Transformer – converts message structure/format (e.g., http to xml)

Router – moves messages amongst UMOs and connectors[Mule]

Page 14: Introduction to esbs  mule

Mule Connector View

http://myapp.com pop3://[email protected]→xml xml→pop3

myUMO (xml→xml)

[Mule]

Page 15: Introduction to esbs  mule

Mule Transports AS400 DQ EJB E-mail File FTP HTTP IMAP JDBC

JMS Multicast POP3 Quartz

RMI Servlet SMTP SOAP

SSL Stream TCP UDP VFS VM WSDL XMPP

Page 16: Introduction to esbs  mule

UMO Execution

Requires a component resolver (e.g., Spring or Pico) for Instantiation of UMOs Configuration of UMOs

Event processing Asynchronous Synchronous Request-Response

[Mule]

Page 17: Introduction to esbs  mule

Mule Programming Model

Application logic

Application glue

Mule glue

[Mule]

Page 18: Introduction to esbs  mule

Mule Routers

[Mule]

Page 19: Introduction to esbs  mule

Selective Consumer (inbound) Applies one or more filters to incoming payload, then

branch based on filter

<inbound-router>

<catch-all-strategy className="org.mule.routing.ForwardingCatchAllStrategy">

<endpoint address="jms://topic:error.topic"/></catch-all-strategy>

<router className="org.mule.routing.inbound.SelectiveConsumer">

<filter expression="msg/header/resultcode = 'success'"

className="org.mule.routing.filters.xml.JXPathFilter"/></router>

</inbound-router>

Page 20: Introduction to esbs  mule

Filtering Outbound (outbound)<outbound-router>

<catch-all-strategy className="org.mule.routing.ForwardingCatchAllStrategy"><endpoint="jms://error.queue"/></catch-all-strategy>

<router className="org.mule.routing.outbound.FilteringOutboundRouter"><endpoint address="smtp://[email protected]"/><filter expectedType="java.lang.Exception"className="org.mule.routing.filters.PayloadTypeFilter"/></router>

<router className="org.mule.routing.outbound.FilteringOutboundRouter"><endpoint address="jms://string.queue"/><filter className="org.mule.routing.filters.logic.AndFilter"><left-filter expectedType="java.lang.String"className="org.mule.routing.filters.PayloadTypeFilter"/><right-filter pattern="the quick brown (.*)"className="org.mule.routing.filters.RegExFilter"/></filter></router>

</outbound-router>

Page 21: Introduction to esbs  mule

Nested Router Allows synchronous callouts that can be intercepted and routed

<mule-descriptor name="InvokerComponent" implementation="org.mule.foo.Invoker"><inbound-router>

<endpoint address="jms://Invoker.in"/></inbound-router>

<nested-router><binding interface="org.mule.foo.HelloInterface">

<endpoint address="axis:http://192.168.2.14:81/services/HelloWebComponent?method=helloMethod" remoteSync="true"/>

</binding></nested-router>

<outbound-router><router

className="org.mule.routing.outbound.OutboundPassThroughRouter"><endpoint address="jms://Invoker.out"/>

</router></outbound-router>

</mule-descriptor>

Page 22: Introduction to esbs  mule

Dog Days with Mule September [mule-user archive]

How to get a hold of Endpoint object from the component? {mule}

Failed to throw UserDefined Exception {jaxws} Failed to invoke lifecycle “start” using CXF in

JBOSS {cxf} Problem in loading xsd files {mule} Problems with RemoteDispatcher {mule} Inject MuleClient Singleton with Spring {mule} Mule transaction support {mule}

Page 23: Introduction to esbs  mule

ESB Features

Routing Message Transformation Message Enhancement Protocol Transformation Service Mapping

Message Processing Process Choreography Service Orchestration Transaction Management Security

XX

√√√√

Page 24: Introduction to esbs  mule

Take Away Messages Mule’s generality results in great flexibility, but at the

cost of great complexity for users

Mule is the focal point of ambiguity and difficulties with many standards-based packages

Mule delivers (to a degree) on: Integration, flexibility, decentralized operation,

scalability

Mule doesn’t deliver (so much) on: Runtime refactoring, conceptualization


Recommended