Developing with an enterprise service bus
Download
1 / 22

Developing with an Enterprise Service Bus - PowerPoint PPT Presentation


  • 332 Views
  • Updated On :

Developing with an Enterprise Service Bus. Brian Cochran & Eric Stevens. 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Developing with an Enterprise Service Bus' - elina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Developing with an enterprise service bus l.jpg

Developing with an Enterprise Service Bus

Brian Cochran & Eric Stevens


Who we are l.jpg
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.


Outline l.jpg
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?


Software agility l.jpg
Software Agility

Agility

Customizations

Renovation Roadmap

Green Field


Soa background l.jpg
SOA Background

What is a Service Oriented Architecture?

  • Loosely Coupled Business Services

  • Cross Platform

  • Distributed Environment

Quoting

App Submission

Credit Inquiry

Presentation Tier

Not Just

Business Tier

Data Tier


Defining esb l.jpg
Defining ESB

  • 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

NQuote

NRate

JCredit

J2Quote


Applications of an esb l.jpg
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


Lending twig loan broker adapted from the eip book l.jpg
Lending Twig Loan Broker(adapted from the EIP book)

I need a simple loan quoting site for

Bank Fred ASAP!

Yeah right, you’ve never done

anything simple in your life.


Lending twig loan broker l.jpg
Lending Twig Loan Broker

Hibernate

public class LoanBrokerImpl implements LoanBroker {

// injected dependencies

CreditAgencyService creditAgency = null;

BankServiceFacade bankFacade = null;

 // service method

pulic LoanQuote createQuote(QuoteRequest req){ CreditReport cr =creditAgency.createCreditReport(

req.getSSN()); LoanQuote lq = bankFacade.createQuote(req.getSSN(),

req.getAmount(),cr);  return lq;}

}

Spring

JSF

Struts


Service enabling lending twig l.jpg
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.


Finding an esb l.jpg
Finding an ESB

Well I certainly don’t want to expose the

Integration technology to my POJOs. And I’m betting

That WS isn’t going to be the only way people try to

integrate with this stuff. Let me look at using an ESB.

Celtix

TIBCO

Mule

Cape Clear

Service Mix


Mule esb l.jpg
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)


Some mule supported technologies l.jpg
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


Exposing services l.jpg
Exposing Services

public class LoanBrokerImpl implements LoanBroker {

public LoanQuote createQuote(

QuoteRequest req)

{…}

}

LoanBroker.java

mule-config.xml

<!–- descriptor -->

<mule-descriptor name=“loanBroker“

implementation=“loanBroker">

<inbound-router>

<endpoint address=“axis:http://host/loanBroker” />

<endpoint

address=“vm://vmLoanBroker” />

</inbound-router>

</mule-descriptor>

spring-context.xml

<bean

id=“loanBroker”

class=“LoanBroker” />


Mule architecture guide from mule codehaus org l.jpg
Mule Architecture Guide(from mule.codehaus.org)

Component

Endpoints


Multiple services l.jpg
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 don’t 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?


Loan broker from eip book l.jpg
Loan Broker(from EIP book)


Lessons learned l.jpg
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


Who s using this stuff l.jpg
Who’s using this stuff?

Mule:

  • HP

  • Sony

  • Deutche Bank

  • CitiBank


Other real world application l.jpg
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.


More information l.jpg
More Information

  • mule.codehaus.org – Mule Web Site

  • Enterprise Integration Patterns – Gregor Hohpe, Bobby Woolf

  • http://www.atlantacs.com/

  • Atlanta CS – [email protected]



ad