Developing with an Enterprise Service Bus - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Developing with an Enterprise Service Bus

Description:

Mule ESB. Light Weight and Embeddable. Supports POJO Components ... We want support four new banks in our system and offer the consumer. the best rate. ... – PowerPoint PPT presentation

Number of Views:458
Avg rating:3.0/5.0
Slides: 23
Provided by: bco68
Category:

less

Transcript and Presenter's Notes

Title: Developing with an Enterprise Service Bus


1
Developing with an Enterprise Service Bus
  • Brian Cochran Eric Stevens

2
Who We Are
  • Own and Operate Architecture Consulting Company
    specializing in ESB technology and
    implementations.
  • Working on an ESB implementation in the utility
    industry for last 18 months.
  • Expertise in extremely high volume transactional
    environments. Making use of ESB as a Grid
    enabler.
  • Background in architecting financial service and
    insurance solutions for Fortune 1000.
  • Primarily open source centric.

3
Outline
  • What is an ESB?
  • Where and why should you use one?
  • What tools should you use?
  • What do you need to do (a look at the popular
    Loan Broker example)?
  • What are the gotchas?
  • Who is using this stuff?

4
Software Agility
Agility
Green Field
Customizations
Renovation Roadmap
5
SOA Background
Quoting
App Submission
Credit Inquiry
Presentation Tier
Not Just
Business Tier
Data Tier
  • What is a Service Oriented Architecture?
  • Loosely Coupled Business Services
  • Cross Platform
  • Distributed Environment

6
Defining ESB
NQuote
NRate
JCredit
J2Quote
  • A Framework that helps in implementing Service
    Oriented Architectures
  • Can be used for other things
  • SOA does not require an ESB
  • Provides framework for
  • Messaging
  • Transformation
  • Routing
  • Orchestration

7
Applications of an ESB
  • Rapid Integration of different systems
  • Reuse of existing applications
  • Parallel Grid based Applications
  • To force decoupling of components
  • Build Asynchronous Applications

8
Lending Twig Loan Broker(adapted from the EIP
book)
I need a simple loan quoting site for Bank Fred
ASAP!
Yeah right, youve never done anything simple in
your life.
9
Lending Twig Loan Broker
Hibernate
Spring
JSF
Struts
  • public class LoanBrokerImpl implements LoanBroker
  • // injected dependencies
  • CreditAgencyService creditAgency null
  • BankServiceFacade bankFacade null
  •  // service method
  • pulic LoanQuote createQuote(QuoteRequest
    req) CreditReport cr creditAgency.createCreditR
    eport(
  • req.getSSN()) LoanQuote lq
    bankFacade.createQuote(req.getSSN(),
  • req.getAmount(),cr)  return lq

10
Service Enabling Lending Twig
Our partner wants to call our software as a Web
Service and is talking about SOA things. Do we
do that?
I can see where this is going. Everyone is going
to want to communicate with our software in
different ways and use it in ways we never
intended.
11
Finding an ESB
Well I certainly dont want to expose
the Integration technology to my POJOs. And Im
betting That WS isnt going to be the only way
people try to integrate with this stuff. Let me
look at using an ESB.
Celtix
Mule
TIBCO
Cape Clear
Service Mix
12
Mule ESB
  • Light Weight and Embeddable
  • Supports POJO Components
  • Based on Enterprise Integration Patterns
  • Support for over 20 different protocols
  • Support for Pluggable Component Containers
    (Spring, JNDI, Hivemind, etc.)
  • Highly scalable (SEDA and Distributed Messaging)

13
Some Mule Supported Technologies
Tcp Http VM SSL System Stream Jdbc Axis AS400
Data Queue Ftp Glue Space GigaSpaces XMPP
File Udp Multicast Jms Rmi Ejb Email Resource
Adapter Soap Oracle AQ Quartz Xfire
JBI Spring Extensions Pico Extensions Plexus
Extensions HiveMind Extensions Jotm Support Acegi
Security PGP Security
14
Exposing Services
LoanBroker.java
mule-config.xml
  • public class LoanBrokerImpl implements LoanBroker
  • public LoanQuote createQuote(
  • QuoteRequest req)

lt!- descriptor --gt ltmule-descriptor
nameloanBroker implementationloanBroker"gt
ltinbound-routergt ltendpoint
addressaxishttp//host/loanBroker /gt
ltendpoint addressvm//vmLoanBroker /gt
lt/inbound-routergt lt/mule-descriptorgt
spring-context.xml
ltbean idloanBroker classLoanBroker /gt
15
Mule Architecture Guide(from mule.codehaus.org)
Component
Endpoints
16
Multiple Services
  • We want support four new banks in our system and
    offer the consumer
  • the best rate. But
  • Not all of them have web services, some use JMS,
    some use EJBs.
  • Not all banks write all loans, so we acquired
    SmartLender Rule Base,
  • a .NET service that will help us figure out
    which banks will
  • offer on which loan requests.
  • Sounding like an Accidental Architecture. Some
    issues are
  • We dont want a bunch of logic in our
  • existing LoanBroker based on which Bank?
  • How are we going to get the response back to the
    user
  • in any sort of reasonable time?

17
Loan Broker(from EIP book)
18
Lessons Learned
  • Concentrate on Interface Definition over
    Component Design (its hard).
  • Configuration explosion is easy (you must
    standardize).
  • Immature Development model can make things
    difficult (asynchronous, routers, transformers,
    etc.).
  • State management makes it difficult to be truly
    service oriented.
  • Use iterative, test driven development.
  • Get high level buy in

19
Whos using this stuff?
  • Mule
  • HP
  • Sony
  • Deutche Bank
  • CitiBank

20
Other Real World Application
  • Used network concepts of an ESB to build data
    collection system over millions of embedded
    devices.
  • Handle Proprietary Network Protocols using
    transformers and driver services
  • Facilitate parallel processing over large amounts
    of data using ESB patterns.
  • Integrate with external ERP and network
    management systems to manage the installation and
    maintenance of installed devices.

21
More Information
  • mule.codehaus.org Mule Web Site
  • Enterprise Integration Patterns Gregor Hohpe,
    Bobby Woolf
  • http//www.atlantacs.com/
  • Atlanta CS bc_at_atlantacs.com

22
Questions?
Write a Comment
User Comments (0)
About PowerShow.com