Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Looking into ESB  RSS feed

 
Robin Dee
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello all,

For some time I've been developing software and along the way I've done a number of "data synchronization" projects.

Now I'm looking into new project where data synchronization plays an important role (the main role). Given the case I know I probably shouldn't be writing my own framework, but use an ESB instead. So I've been looking into different open source ESBs (from the Java world) but it's quite hard to get the facts straight. I'm hoping you guys can shed a light on my question.

The case: we have two databases (MsSQL), an LDAP backend (active directory) and a CRM system (SugarCRM). We want to synchronize data from the databases and the AD to SugarCRM. As transport we'd like to use JDBC (for the databases), LDAP (AD) and SOAP (for the CRM system). As we need to combine data from the databases and the AD into single records, we need support for something like a decorator pattern.

We're wondering what open source ESB would suite us best. As it's just a small project there's no budget for anything fancy, so we're looking into open source / free stuff.

Any thoughts perhaps? Mule ESB CE, ServiceMix, JbossESB?

Thanks!
 
Campbell Ritchie
Marshal
Posts: 55751
163
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Too difficult a question for "beginning". Moving thread.
 
Campbell Ritchie
Marshal
Posts: 55751
163
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I earlier wrote: . . . Moving thread.
Not sure whether I have moved it to the right place, however. I was not at all sure what its most appropriate location would be.
 
Ivan Krizsan
Ranch Hand
Posts: 2198
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi!
I don't have extensive experience with different ESBs, but as far as I can tell the community (free) version of Mule 3 will be able to talk to the different systems you mention.
I do have some experience with Mule and would be happy to be of assistance. It really is not difficult, though - do some tutorials and you will quickly grasp the basics. Their documentation is quite good and there are plenty of resources in their forums.
Best wishes!
 
Robin Dee
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ivan Krizsan wrote:Hi!
I don't have extensive experience with different ESBs, but as far as I can tell the community (free) version of Mule 3 will be able to talk to the different systems you mention.
I do have some experience with Mule and would be happy to be of assistance. It really is not difficult, though - do some tutorials and you will quickly grasp the basics. Their documentation is quite good and there are plenty of resources in their forums.
Best wishes!


Hi Ivan,

Thanks for the information. I'd be glad to accept some assistance :-).

Thing is that I'm really new to ESBs and I'm probably worrying of matters of lesser importance. For example, how do I define what data to sync in what manner? I know when writing my own, I first define a set of business rules or use cases and transform those to the corresponding source code. Can I do just the same with an ESB?

So for example: update record X, providing or unless condition C applies...?

Best, R.
 
Ivan Krizsan
Ranch Hand
Posts: 2198
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi!
My experience with ESBs are that it is just as developing your own software from scratch, except that there are a set of ready-made components that you can take advantage of.
Also, deploying software into an ESB enables your modules to have lower coupling, if you take advantage of the ready-made components to connect your modules.
However, there is no need to go straight to the deepest section of the ESB pool. In a case like yours, I would use the following approach (apart from the usual approach you use):
1. Analyze the problem identifying the different kinds of external integrations required by your system and what kind of services it makes available to other systems.
2. For each integration and service, find an appropriate connector (Mule EBS terminology).
Example: If your system is to make a SOAP web service available and needs to query a database for data then you will use a SOAP connector and a JDBC connector.
3. Analyze the data flow through the system.
You can use the ESB to send the same data to more than one component or to route the data depending on its contents etc etc.
4. Analyze data formats handled in the system.
An ESB can usually aid in transforming data.

I would consider the two last steps as optional, since you still gain a lot from using the ESB connectors to interface with other systems.
It depends on how much time you have to study the ESB documentation.
I hope this should get you started.
Best wishes!
 
thilini Ishaka
Greenhorn
Posts: 2
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would rather say, the WSO2 ESB is a lightweight and easy-to-use Open Source Enterprise Service Bus (ESB) which allows to simply and easily configure message routing, virtualization, intermediation, transformation, logging, task scheduling, load balancing, fail-over routing, event brokering and much more.

Visit http://docs.wso2.org/display/ESB/Enterprise+Service+Bus+Documentation for more information.
 
Vijitha Kumara
Saloon Keeper
Posts: 3998
42
Chrome Fedora Hibernate
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the CodeRanch, Thilini
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!