Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to ESBs: Mule UC San Diego CSE 294 November 14, 2008 Barry Demchak.

Similar presentations


Presentation on theme: "Introduction to ESBs: Mule UC San Diego CSE 294 November 14, 2008 Barry Demchak."— Presentation transcript:

1 Introduction to ESBs: Mule UC San Diego CSE 294 November 14, 2008 Barry Demchak

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

3 Source Material [Ric] Mark Richards, “The Role of the Enterprise Service Bus”, NFJS, Oct 23, 2006. http://www.infoq.com/presentations/Enterprise-Service-Bus http://www.infoq.com/presentations/Enterprise-Service-Bus [Mul] Mule Architecture Guide. http://mule.mulesource.org/display/MULE/Architecture+Guide http://mule.mulesource.org/display/MULE/Architecture+Guide September [mule-user archive]

4 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

5 Definition(s) Gartner Group Giant exercise in Separation of Concerns [Ric]

6 Definitions (more) www.datapower.com [Ric]

7 ESB Features Routing Message Transformation Message Enhancement Protocol Transformation Service Mapping Message Processing Process Choreography Service Orchestration Transaction Management Security [Ric]

8 An ESB Blueprint General case Client calls Choreographer Client calls Mediator vs [Ric]

9 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]

10 JBI Example XSLT – message transformation PXE – choreography Groovy – scripting [Ric]

11 JBI Case Study: Service Mix Service Mix Binding Components Service Engines [Ric]

12 Mule Architecture [Mule]

13 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]

14 Mule Connector View http://myapp.com pop3://user@userland.comhttp→xmlxml→pop3 myUMO (xml→xml) [Mule]

15 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

16 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]

17 Mule Programming Model Application logic Application glue Mule glue [Mule]

18 Mule Routers [Mule]

19 Selective Consumer (inbound) Applies one or more filters to incoming payload, then branch based on filter <filter expression="msg/header/resultcode = 'success'" className="org.mule.routing.filters.xml.JXPathFilter"/ >

20 Filtering Outbound (outbound) <filter expectedType="java.lang.Exception" className="org.mule.routing.filters.PayloadTypeFilter"/> <left-filter expectedType="java.lang.String" className="org.mule.routing.filters.PayloadTypeFilter"/> <right-filter pattern="the quick brown (.*)" className="org.mule.routing.filters.RegExFilter"/>

21 Nested Router Allows synchronous callouts that can be intercepted and routed

22 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}

23 ESB Features Routing Message Transformation Message Enhancement Protocol Transformation Service Mapping Message Processing Process Choreography Service Orchestration Transaction Management Security X X √ √ √ √ √

24 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


Download ppt "Introduction to ESBs: Mule UC San Diego CSE 294 November 14, 2008 Barry Demchak."

Similar presentations


Ads by Google