Struts Tutorials:
Struts2 Tag CheckBoxList , Checkbox, Iterator, IF
Struts2 Tag Library Example
Struts2 Tiles Example
Struts2 Tiles I18N Example
Struts2 Questions
Struts Tiles I18N Example
Struts Eclipse MVC
Struts2 Tags
Struts2 Example and Tutorial
Struts MVC
Struts2 Validation
Hibernate Tutorials:
Hibernate Case Study
Class Hierarchy Persist Example
Using Hibernate Interceptor
Hibernate Questions with Answer
Hibernate Many-to-Many Mapping Example
Hibernate one-to-many Mapping Example
Hibernate and ORM tools
Spring Hibernate Example
Hibernate SessionFactory Example
Hibernate Mapping Class Hierarchy
Hibernate Questions
Hibernate SessionFactory Questions
Spring Hibernate Example:
Spring Hibernate Case Study
Written By : Amit
Title :
Clustering solution for Java Applications
Description :
Shoal More...
|
Written By : Amit
Title :
Data migration tools
Description :
Data migration tools Java Open Source More...
|
Written By : Amit
Title :
Application development on JBoss
Description :
Using Java Technology More...
|
Written By : Amit
Title :
Mule ESB
Description :
example applications integrated More...
|
Written By : Amit
Title :
Mule ESB File Transport
Description :
Example Scenario More...
|
Written By : Amit
Title :
Mule ESB JMS Transport
Description :
Example Scenario More...
|
| Tags/Keywords : example-applications-integrated - Mule-ESB - Open-Source-Project-Ideas Example Author : Amit Date (Year/Month/Date): 2010-03-16
Example on using Mule ESB
Mule ESB (Enterprise Service Bus)
A open source framework for ESB.
To my understanding ESB may be one choice where there is
a need for integrating many applications, without really
changing the way these application has support for data
communication / channel, data format.
To give an example, suppose an application A provides
catalog of books and expose these details as web service
API with a data format in XML form, while another application
B has a email based functionality, that takes a flat file
as an input and sends those data to appropriate recipient
in HTML format.
In this scenario, what do you think in terms of integrating
these two applications without changing any of these
applications? Sounds weird, isn't it!! I am little bit
confused here.
Let me think again, there is one application that takes an
input as a search query text, then it returns search result
in form of XML file as output. And another application
requires a flat file as input and sends that file as email
in HTML format as an output. So if i think of creating an
adapter in between these two application, then what this
adapter has to do?? I think, this adapter has to have API
for invoking application A, take the output XML file, and
then create a flat file and then send that file to some
folder in the file system, from where the other application
will pick up the flat file.
I think this is quite okay and achievable, but wait, what
will happen if there is another change request whereby
there is another application that needs the search result
from the application A to be send to it as JMS message
in a queue.
Now I may have to go back to this hypothetical adapter and
change again to incorporate this support for another
communication channel, that is JMS queue.
Basically in this process we may think of reusing the logic
for converting the XML data to the flat file data, and just
try to plug-in the API for sending JMS message to a predefined
message queue. So there is need for some external configuration
support for dynamically managing any change in destination
for sending the flat file either to file system or JMS Queue
or both or any more channel in future.
After searching for more help I came across an Open Source
Framework MULE, this framework has many such integrating
prerequisites already implemented and ready to use.
It has many transport channel support, along with in-built router
and transformer for converting/transforming data from one
format to another.
Based on router configuration, Mule can be used to de-couple
external interfaces such as sources and destinations.
Mule has provision for adding service component for providing
a way to apply business logic, if any, before routing the final
message to its destination.
Before starting to explore Mule for use as ESB, I tried studing
thoroughly following features and Mule specification as
mentioned in this link below:
After evaluating Mule its time for me to start exploring
Mule ESB more closely and if possible to come up with a simple
POC in order to understand how and what it takes to integrate
two separate application, those are build separately with
completely separate functionalities, to integrate seemlessly
without touching/changing even a single file from either
applications.
So to start with I decided to create two applications, as
stated earlier in this page, one application is deployed as
web service and the other application is a utility or
a standalone application deployed as a JAR file.
One of the application that has a web service, I decided
to use Apache AXIS to deploy a rapid to compile, build,
test and deploy.
Application A: a simple application for searching through
a predefined table from a local database, and returning
the result as XML content.
Application B:
A simple Java application using SMTP mail service to send
the email in HTML format.
I am presently working on these two application and over a
period of time span I shall explore on using Mule ESB to
integrate these two applications.
Anyone having any suggestions or ideas and want to share
over here, please do so.
| |