The document discusses implementing an enterprise service bus (ESB) using Mule to automate the process of a customer obtaining multiple loan quotes. It describes the key components involved - a Loan Broker service, Credit Agency, Lender service, and multiple Banking services. It then provides details on how to design and implement this application using Mule, including defining the message format, configuring the various endpoints and transports, and how messages flow through the system to retrieve a credit profile, get loan quotes from banks, and return the best quote to the customer.
Frank Bien, CEO of Looker - along with Amazon, Google and other data disrupters - discuss how innovators are deeply integrating analytics into every aspect of their businesses, from mobile to warehouse to cloud.
Frank shares Looker’s vision for the future of business intelligence and data analytics and reveal pivotal product and partnership updates.
This webinar covers Looker 4, including:
- New LookML with a refreshed syntax and full-featured Integrated Development Environment that offers contextual help as you work.
- Content Discovery, which makes it easier to curate, find, and share data across your entire company.
- New Exploration tools, like the ability to fill in missing dimension values when graphing data.
- The Strengthened Platform, with our versioned, stable API and the ability to trigger actions in other tools directly from Looker.
Subscription based control system to automate management of events for robotsdbpublications
In Industrial Robots, a human machine interfaces (HMI) provide means to command and control robots for various purposes. Generally, this is implemented in a reactive manner by using polling (or pull) methodology to manage the events. This methodology restricts the possibilities of automation for reacting to events thus requires a human operator to poll and react to the events based on the skill of the human operator. This sometimes causes non-optimal or wrong responses. This paper proposes a design methodology to dynamically tap the events using a subscription based control system for event based management of robots. This design enables the client to be light-weight, cost effective and makes the responses more reliable. The paper also scrutinizes the alternative design options using semantic web for multirobot coordinative activities.
IBM Rational Host Access Transformation Services (HATS) is a tool for modernizing IBM i 5250 and mainframe 3270 telnet applications. This presentation, given at IBM Innovate 2014, demonstrates how HATS can turn those green screen applications into JAX-WS or RESTful JSON web services, how to consume Program Call Markup Language (PCML) enabled IBM i Programs, and how to to integrate with databases using SQL, JDBC, and the Java Persistence API (JPA) 2.0 features of Rational Application Developer. Finally we describe using servlet filters to further enhance the abilities of the Rational HATS entry servlet.
Constraint Aware Dynamic Web Service Composition for A Specific Business Requ...ijceronline
International Journal of Computational Engineering Research (IJCER) is dedicated to protecting personal information and will make every reasonable effort to handle collected information appropriately. All information collected, as well as related requests, will be handled as carefully and efficiently as possible in accordance with IJCER standards for integrity and objectivity.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
2. Agenda
Overview of ESB
Introduction to Mule
Mule and JBI
Real-world Application
Application Overview
Systems Involved
Design Considerations
Event Flows
Implementation with Mule
Components
Transports
Returning the Loan Quote
Fault Tolerance
Scaling
Summary
3. Introduction to ESB
What is it?
Enterprise Service Bus is an evolving architecture technique to integrate
incompatible business applications over a common messaging bus.
Why do we need it?
Many of the applications we write are in fact integration projects. Only the
most simple applications do not need to interact with other applications.
Where does SOA fit in?
ESB is one architecture style that abides by the rules of a Service Orientated
Architecture.
What is JBI?
Java Business Integration (JSR:208) is an emerging standard that defines
common interfaces for components and message exchanges for application
integration.
Does this all sound familiar?
There is nothing new about integration, we've been doing it for years. So why
the hype?
4. Properties of an ESB
Loosely Coupled
Event-Driven
Highly Distributed
Security/Authorization
Abstract Endpoints
Intelligent Routing
Data Transformation (inbound/outbound)
Reliable Messaging
Multi-Protocol Message Bus
Light Weight
5. Introduction to Mule
Service container and messaging platform
Supports a variety of topologies including ESB
Highly Scalable; uses SEDA event model
Lightweight and embeddable
Transactional; Local and Distributed
Fault tolerance; Exception management
Secure; authentication/authorization (Using Spring/Acegi)
Powerful event routing capabilities (based on EIP book)
Support for over 20 messaging protocols/transports
End-to-End Data Transformation
Management and Monitoring using JMX
BPEL Support
Deployment: JAR, WAR, RAR, EAR.
7. Mule and JBI
• Is Mule a JBI container?
• There is a separate project called Mule JBI that is a JBI implementation that reuses
the Mule service stack.
• Does Mule work with JBI?
• You can use Mule transports, components and transformers inside any JBI
container. Mule provides a couple of components that allows JBI components to
subscribe and publish events to and from Mule.
• Do Mule and JBI compete?
• JBI solves a subset of messaging problems. Mule addresses the basic need to
move any kind of data (not just XML) between services in an organization
• Which is best for me?
• Mule of course!
• The reason Mule integrates with other JBI engines and provides it own JBI
container is that one integration solution will never satisfy all integration needs.
• Mule levels the playing field allowing you to pick and choose which technologies to
integrate with.
8. Mule and JBI Differences
• JBI
– Described in terms of Service Engines (SEs) which are akin to components that
execute business logic.
– Binding Components (BCs) implement protocols to provide connectivity to
SEs.
– JBI uses a Message Exchange to manage interactions between components.
– Targeted a specifically at integration. Normalized Message
• Mule
– Components are POJOs, EJBs, Spring Beans, Remote objects.
– The component never needs to call Mule APIs making them totally portable.
– Flexible endpoint model where a component may have zero or more inbound
and outbound endpoints.
– Message routing is done via routers that are associated with the component.
– Mule is a ubiquitous messaging platform.
– A distributed container for wiring components.
10. Shopping for Loans
• Customer calls different banks to find the best deal.
• Each bank asks customer for his or her social security number, the amount
of the loan and the desired term.
• Each bank then investigates the customer's credit background, usually by
contacting a credit agency, before it finally sends the customer a quote.
• Once the customer has received quotes from all banks, he or she can then
select the best offer, i.e. the lowest rate. [1]
11. The Loan Broker
• This process can be automated to allow customers to obtain the best
quote on-line from a far broader range of banks, in much less time than if
he or she were to obtain all the quotes one by one.
– Upon receiving customer request, Loan Broker:
– obtains the credit information for that customer from the credit agency
– requests quotes for the customer from banks listed with the Lender Service
– sends aggregate compilation of quotes to the customer for selection. [2]
12. Components
Loan Broker Service Receives LoanRequests (customer, SS
number, loan amount, duration) and is
responsible for aggregating LoanQuotes
into response for the request.
Credit Agency Service An external service provider that provides
crediting checking on customers to ensure
the loan amount requested is feesible.
Credit Agency Gateway Marshals a request between the message
bus and the Credit Agency Application.
Lender Service Based on the customer's credit scoring,
loan amount and duration, the lender
service will select banks from which to
request a LoanQuote.
Lender Gateway Marshals a request from the message bus
to the Lender Application.
Banking Gateway Dispatches LoanRequests to one or more
banks.
13. Orchestration
• LoanBroker (Http/Rest)
– Receives Requests over Http from a client application, such as a web browser.
• Credit Agency (EJB)
– Is an EJB application that is managed by the Loan Broker company. It exposes an EJB
called creditAgency with a method getCreditProfile.
• Lender Application (VM)
– Is a local component, a Pojo that will determine which lenders should be used.
• Banks (SOAP)
– For simplicity of this example all banks expose the same WS interface, though it's quite
feasible to configure Mule to invoke different interfaces for different banks.
• Gateways (JMS)
– Gateways marshal the requests from the message bus to external applications and
services.
14. Design Considerations
• Constraints
– Application needs to support request/response processing model.
– Will get a high volume of requests.
– Synchronous processing will not give us enough throughput.
• Transports
– Using a JMS message bus
– Need to invoke services over JMS, Http/Rest, VM, and SOAP.
– Need to invoke services in external application containers (EJB).
– Expose components as Web services (Banks).
• Message
– The message on the bus is referred to as a LoanQuoteRequest. In this
example this is a Java bean but in real scenarios an XML document
would be used.
16. Request Event Flow
1. Client application makes a request sending the LoanBroker a
CustomerQuoteRequest Message.
2. LoanBroker creates a LoanQuoteRequest Message.
3. Mule sends the message to the Credit Agency Gateway via JMS
4. The Gateway marshals the request and invokes the CreditAgency EJB. The
component used in the RelectionMessageBuilder which automatically
attaches the CreditProfile to the LoanQuoteRequest message.
5. Mule sends the Message to the Lender Gateway via JMS
6. The Gateway uses the VM transport to invoke the Lender Application.
7. Mule sends the Message to the Banking Gateway via JMS
8. The Banking Gateway in this example invokes the Banks using SOAP.
9. Each of the Banks attaches a quote to the request and sends it back to the
LoanBroker via the ReplyTo address provided by the Banking Gateway.
10. The ResponseRouter on the Loan Broker Service receives the responses on the
ReplyTo address. It selects the lowest quote received for the request and
returns it to the client.
19. The Message
Lets start by defining the LoanQuoteRequest Message. In this example the
Message is a Java bean and is the common message format on the bus.
Normally this would be XML, but Mule allows us to pass any data format around.
public class LoanQuoteRequest implements Serializable
{
/** The request contains Customer info and loan amount and duration*/
private CustomerQuoteRequest customerRequest;
/** credit profile for the customer */
private CreditProfile creditProfile;
/** A list of lenders for this request */
private Bank[] lenders;
/** A loan quote from a bank */
private LoanQuote loanQuote;
.......
}
20. Client Request
• The whole chain of events is initiated with a client request. This is done
over Http using Mule's REST support. It is described in the Endpoint
address –
jetty:rest://localhost:8080/loanbroker
• Here we're saying -
– Embed a Jetty Servlet Engine
– Use the Rest servlet for receiving requests
– Listen on localhost:8080
– Bind the Rest servlet to the context /loanbroker
• The request from the client would look like –
http://localhost:8080/loanbroker/?name=Ross+Mason&ssn=1234&
loanAmount=10000&loanDuration=24
21. The Message
• The Loan Broker endpoint receives the request as a set of Http parameters, but we
need to transform this into a CustomerQuoteRequest object before the Loan Broker
component receives it.
• We do this by configuring a custom transformer on the endpoint.
public Object transform(Object src, UMOEventContext context)
throws TransformerException {
String name = context.getStringProperty("name");
int ssn = context.getIntProperty("ssn");
double amount = context.getDoubleProperty("loanAmount");
double duration = context.getDoubleProperty("loanDuration");
Customer customer = new Customer(name, ssn);
CustomerQuoteRequest request =
new CustomerQuoteRequest(customer, amount, duration);
return request;
}
22. Loan Broker Service
• The Loanbroker service actually doesn't need to do anything but trigger the LoanQuoteRequest
on the bus. Mule handles all routing transformation and passing the quote back to the callee.
• The transformer configured on the REST inbound endpoint for the LoanBroker converts the
REST parameters into a CustomerQuoteRequest object.
public class LoanBroker
{
public LoanQuoteRequest requestLoanQuote(
CustomerQuoteRequest request) throws Exception
{
LoanQuoteRequest bqr = new LoanQuoteRequest();
bqr.setCustomerRequest(request);
return bqr;
}
}
23. Loan Broker Configuration
All the detail is in the Loan Broker configuration.
<mule-descriptor name="LoanBroker"
implementation="org.mule.samples.loanbroker.esb.LoanBroker">
<inbound-router>
<endpoint address="jetty:rest://localhost:8080/loanbroker"/>
</inbound-router>
<outbound-router>
<router className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint address="jms://esb.credit.agency"/>
</router>
</outbound-router>
<response-router timeout="10000">
<endpoint address="jms://esb.loan.quotes"/>
<router className="
org.mule.samples.loanbroker.esb.routers.BankQuotesResponseAggregator"/>
</response-router>
</mule-descriptor>
24. Credit Agency Gateway
• The Credit Agency code is even easier! We use a standard
Mule Component called a ReflectionMessageBuilder which
builds a message based on a set of results from endpoint
invocations.
• It will use reflection to determine how to set the result of the
last endpoint invocation as a property on the master
message.
• There are other MessageBuilder components such as the
ScriptMessageBuilder component which is a JSR-223
(Scripting) component that allows you to manipulate the
payload after each request using Groovy, JavaScript, Rhino or
any other supported scripting language.
26. Credit Agency Configuration
• We invoke the CreditAgency application using an EJB endpoint –
ejb://localhost:1099/local/CreditAgency?method=getCreditProfile
• This endpoint tells Mule to –
– Look up an EJB object at localhost:1099
– Use the JNDI name local/CreditAgency
– Invoke the method getCreditProfile on the EJB object
• Notice also the transformers and responseTransformers attibutes on the
endpoint. These tell Mule how to marshal for the Application.
– LoanQuoteRequestToCreditProfileArgs – Extracts the method arguments from
the request as an array used to invoke getCreditProfile.
– CreditProfileXmlToCreditProfile – Parses the response Xml and creates a
CreditProfile object that will be set on the LoanQuoteRequest.
27. Lender Gateway
• Lender Service
– The Lender Agency is a Mule component, that receives events directly
using the VM transport.
• Leander Gateway
– The Lender Gateway marshals requests from the bus to the lender
service.
29. Banking Gateway
• The Banking Gateway is responsible for distributing requests to a list of lenders.
• The ReciptientList router configured on this gateway is responsible for extracting the endpoints
from the message and invoking them. The RecipientList is a type of Itinerary-based router that
extracts its itinerary as a static list from the event.
<mule-descriptor name="BankingGateway"
implementation="org.mule.components.simple.BridgeComponent">
<inbound-router>
<endpoint address="jms://esb.banks"/>
</inbound-router>
<outbound-router>
<router className="org.mule.routing.outbound.StaticRecipientList">
<reply-to address="jms://esb.loan.quotes"/>
</router>
</outbound-router>
</mule-descriptor>
30. Banks
• The banks in this example are just simple beans that return a
fixed interest rate and are exposed as SOAP services.
<mule-descriptor name="Bank1"
inboundEndpoint="axis:http://localhost:10001/services"
implementation="org.mule.samples.loanbroker.Bank">
</mule-descriptor>
• Note to expose a component as an Axis service all you
need to do is add an Axis endpoint!
31. Choosing the best Quote
• Once a back has a quote it passes it to Mule which will send the Quote on
the reply-to endpoint specified by the Banking Gateway.
• Looking back at the LoanBroker configuration, there is a response-router
configured as -
<response-router timeout="10000">
<endpoint address="jms://esb.loan.quotes"/>
<router className="org.mule.samples.loanbroker.esb.routers.
BankQuotesResponseAggregator"/>
</response-router>
• The BankQuoteResponseAggregator is responsible for picking the
lowest quote. But before that happens Mule needs to make sure all
responses are received for the request.
• This is done using message correlation managed by Mule.
32. Event Correlation
• When a event is dispatched from the Banking Gateway a correlationId and
correlationGroupSize is attached to the SOAP message. This is a function
of the Recipient List router. It attaches the following information -
– CorrelationId – and Id that associates all the dispatched events to the same
group
– CorrelationGroupSize – how many events are in the group.
– CorrelationSequence – the order in which the events were dispatched.
• The Response Router reads these correlation headers when events are
received and correlates the events.
• When the event group correlation is complete the response-router
invokes itself where developers can plug in custom logic.
33. Response Aggregation
• The BankQuoteResponseAggregator implements a single method that works
out the lowest quote before passing it back to Mule to route the response
back to the client.
protected UMOMessage aggregateEvents(EventGroup events) throws RoutingException {
. . . .
List list = events.getEvents();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
event = (UMOEvent) iterator.next();
quote = (LoanQuote)event.getTransformedMessage();
logger.info("Processing quote: " + quote);
if (lowestQuote == null) {
lowestQuote = quote;
} else if (quote.getInterestRate() < lowestQuote.getInterestRate()) {
lowestQuote = quote;
}
}
return new MuleMessage(lowestQuote, event.getProperties());
}
34. Transports
• Most Mule transports can be configured using just
the endpoint address. i.e. tcp://localhost:45454
contains all the information necessary to make a TCP
connection.
• However for JMS and EJB we need to define
configuration properties for each such as Jndi
information.
• This is done by configuring connectors in our
MuleXml.
36. Fault Tolerance
• Exception Strategies
– Can be defined on components and connectors
– Can be defined globally of for each connector or component
– Can handle different exception types differently.
– Exception hierarchy provides all available information
– Event payloads can be re-routed on exception
• Connection Strategies
– Control how connectors connect to underlying resources
– Allow for flexible retry policies
– Notifications of failed connections
– Consistent endpoint state maintained
– Can alter routing paths based on failed connections
37. Scaling
• SEDA Model
– Mule is SEDA-based, which is an architecture designed for high concurrency
and throughput.
• JMS Clustering
– Currently Mule can use JMS clustering to distribute events to a cluster of Mule
Nodes.
• Application Server Clustering
– Mule can be embedded inside a JCA container and allow the App server to
manage its resources and cluster instances.
• New Clustering Support
– The next release of Mule will provide clustering and distribution using
JGroups/JBossCache.
• Load Balancing using Mule
– You can use a Mule instance to provide load-balancing over any transport.
38. Summary
• An ESB integrating a client application and 3 back
office systems.
• Combined a number of transports including HTTP,
JMS, EJB and Web Services.
• Easy to add in Exception handling, transactions, etc.
All done through configuration.
• All event routing, management, transformation is
handled by Mule.
• Very little code to write. Just domain-specific logic.
• A fully functional ESB in about an hour!
39. The Mule Project
• Project was founded in 2003.
• It was started after experiences with a large Financial ESB
project.
• There are now 10 developers who help support it and add
new features.
• Has an active user community.
• Is being used in companies such as HP, Sony, Deutche Bank
and CitiBank.
• SymphonySoft has been started by Mule developers to help
support and provide professional services to these projects.
• For more information go to - http://mule.codehaus.org.
40. Resources
• EIP Book (Loan Broker Example) [1][2]
– http://www.eaipatterns.com/ComposedMessagingExample.html
– http://www.eaipatterns.com/index.html
• Introduction to ESBs – Rick Robinson
– http://www-106.ibm.com/developerworks/xml/library/ws-esbscen/
• ESB Learning Guide
– http://searchwebservices.techtarget.com/general/1,295582,sid26_gci
1085711,00.html
• Introduction to SEDA – Matt Welsh
– http://www.eecs.harvard.edu/~mdw/papers/mdw-phdthesis.pdf
• Mule User Guide
– http://mule.codehaus.org/User+Guide
41. Slides and Code
• To get this Loan Broker ESB code and these
slides go to -
– http://mule.codehaus.org/LoanBroker
• There are other examples too -
– http://mule.codehaus.org/Examples