tags:

views:

3809

answers:

11

Our company is looking to implement an ESB into our SOA. Our SOA is in initial development stages. We currently have F5/BigIP in place with sufficient health checking, load balancing, redundancy, etc. and use WCF as our service technology with occasional Java clients, but majority .NET WCF clients.

From a financial and beginning implementation perspective, have been looking into a few open source options, Mule Galaxy and WSO2. Also have been looking a bit at MS Biztalk 2006 and UDDI. UDDI seems to be a bit of a legacy registry standard.

Have also been debating whether to roll our own ESB in the form of a routing service since are just starting, with option of migrating to larger scale ESB later.

Any opinions out there on good/bad ESB and SOA registry choices? As well as if we are taking the right approach on implementing an ESB and SOA registry (governance) in intial phase of our SOA. Thanks

A: 

why would you roll your own, when, as you have stated, you have looked at the Open Source options. All of the Open Source options do SOAP, which seems to be the lingua franca of SOA. Have a look at Gigaspace (they have a free version Openspaces) that is Java, but has a full .NET stack. It integrates with Mule natively, giving you your ESB with full .NET semantics.

Aaron Arbery
Primarily financial contraints. E.g. mule galaxy support is $10000 per year. I'll look into Gigaspace, sounds good. Thanks Aaron.
+1  A: 

I would first look carefully at your requirements and understand exactly what you want the ESB / registry to do. Make a list of all your interfaces, and for each one, decide which integration pattern it will use, whether it's stateful or stateless, and what type of transformations will be applied (i.e., Decrypt, Decompress, Check for XML Welformedness ,Schema Validation, Filter (split messages)).

If your requirements are like most people's and you don't end up with stateful integrations, you'll probably find the following helpful:

"ESB" - Any decent hardware appliance like IBM DataPower, Layer7, or Vordel

SOA Registry - AmberPoint, HP Systinet, or SOPERA (open source)

Cheers

KA

Kaiser Advisor
A: 

Disclaimer: I am an IBM WebSphere Consultant so you'll want to take that into account when reading my answers. However, I am not speaking for them in an official capacity.

The three ESBs I work with most are all IBM products:

  • WebSphere ESB - built on top of WebSphere Application Server, and an excellent choice if you already use it as many of the skills and infrastructure are shared.

  • WebSphere Message Broker - an older IBM product, historically oriented around WebSphere MQ.

  • DataPower - a hardware ESB - sold as a 'black-box' appliance, very good at what it does, and very fast, but extensibility more limited than a software ESB.

IBM also has a registry product (which integrates with the options above):

  • WebSphere Service Registry and Repository - out of the box works with Web Services, highly customisable and extensible. Again, built on WebSphere Application Server.
Andrew Ferrier
+3  A: 

I would highly recommend experimenting with a proof-of-concept architecture first - using Open Source tools.

The Apache Synapse project is an excellent place to begin with a light-weight ESB - that has a quite broad set of features:

http://synapse.apache.org/

For the benefit of those that may not need a strict WCF service compliant solution - you may wish to look at Glassfish - the Open Source JEE Application Server - which includes a very nice management console/dashboard for administering services, applications, and JMS queue definitions.

https://glassfish.dev.java.net/

For a simple Registry - I would recommend the Mule Galaxy version 1.5 release

http://www.mulesource.org/display/GALAXY/Home

For a distributed cache solutioin, you may want to look at memcachd:

http://danga.com/memcached/

For a Business Rules Engine, I would suggest looking at JBoss Drools:

http://www.jboss.org/drools/

The Altova Mission Kit bundles quite a few very nice tools that will be very helpful to any team that needs to work on a semantic message mapping/transformation layer:

http://www.altova.com/products/missionkit/software_development_tools.html

I've also organized a collection of resource links related to Service Oriented Architecture that may be helpful:

http://www.intltechventures.com/resource_links.php#Service_Oriented_Architecture__SOA__Resources

Kelvin Meeks
A: 

I would highly recommend experimenting with a proof-of-concept architecture first - using Open Source tools.

The Apache Synapse project is an excellent place to begin with a light-weight ESB - that has a quite broad set of features:

http://synapse.apache.org/

For the benefit of those that may not need a strict WCF service compliant solution - you may wish to look at Glassfish - the Open Source JEE Application Server - which includes a very nice management console/dashboard for administering services, applications, and JMS queue definitions.

https://glassfish.dev.java.net/

For a simple Registry - I would recommend the Mule Galaxy version 1.5 release

http://www.mulesource.org/display/GALAXY/Home

For a distributed cache solutioin, you may want to look at memcachd:

http://danga.com/memcached/

For a Business Rules Engine, I would suggest looking at JBoss Drools:

http://www.jboss.org/drools/

The Altova Mission Kit bundles quite a few very nice tools that will be very helpful to any team that needs to work on a semantic message mapping/transformation layer:

http://www.altova.com/products/missionkit/software_development_tools.html

I've also organized a collection of resource links related to Service Oriented Architecture that may be helpful:

http://www.intltechventures.com/resource_links.php#Service_Oriented_Architecture__SOA__Resources

Kelvin Meeks
A: 
paulosuzart
A: 

We have been working with ActiveMQ as our MOM and started to use Apache ServiceMix for our ESB. Its an open source ESB that meets the JBI Spec. The purpose of JBI is to define a standard for an integration platform that consists of components from multiple vendors and open source projects in order to prevent vendor lock-in.

However I do agree that you should look carefully at your requirements and decided from that point.

Bernie Perez
+1  A: 

Best is hard as there are many definitions... However, there are a number of open source ESB solutions out there all capable of delivering enterprise solutions and all with their own set of benefits and challenges. Apache ServiceMix, Mule and OpenESB/GlassFish ESB from Sun provide broadly similar functional platforms although Sun's has extensive IDE support in the form of NetBeans. These open source products may not as be as feature rich as the commercial counter-parts but they make up for that in much less complexity and baggage (although they all require a moderate to high degree of technical capability to use effectively). My advice here is that you evaluate a couple, choose one and then invest some serious time in learning how to use it effectively. Be warned, ESB development is not for the feint-hearted and is not at all like the "click/clack" scenarios that vendors like to portray in their demos...

On the registry side, again many choices have been named above but there are also some new teams trying to innovate in that space such as Adjoovo. Check out the free-to-use Adjoovo Spaces that can handle a wide range of metadata and is not limited to just WSDL/XSD. You can upload complete ESB applications and it will extract and index the metadata and present charts and graphs to help you understand the complex relationships that often evolve in these apps.

A: 

If you are looking for a lightweight open source registry that provides:

  • Registry population by WSDL analysing
  • Service dependency Management
  • Indepth WSDL and XML Schema browsing
  • Service Monitoring
  • WSDL contract monitoring. Discovers interface changes automatically

than Membrane Registry might be interesting.

baranco
A: 

Dont do it! :)

I've just spent four days of my time; first with MessageBroker and then with JbossESB. I'm certainly a competent sys admin, but installing Jboss did my head in. Seriously bad documentation and very convoluted installation. Remember, whatever you do, you need to support it after.

From my perspective:

MessageBroker -- retarded. In fact, brings a whole new meaning to difficult.

JbossEsb -- Installation is something like this:Cut the head off a chicken, sprinkle virgin chicken blood on server {don't forget it must be a virgin chicken, if in doubt use the egg. } Cross your fingers and count to ten. Once you reach nine, subtract two. Wait until the beep and check the temperature. If its below 30c then restart the installation with a fresh copy of java. Otherwise please proceed to the next step. {don't install 4.3, 5.4 is the latest so please use 3.3}

There are a myriad of other solutions out there, don't be tempted to choose one because it purports to have some big name behind it.

Steve
A: 

In fact; let me add to that previous comment.

An associate of mine is a very senior IT systems engineer at a major investment bank in Australia. He's been ostensibly 'forced' to adopt MessageBroker because some braniac in the U.K. has deemed this to be the solution of choice.

This group has been working with this implementation now for the better part of three months. The ESB side of things is installed, but not one of them can figure out how to make a simple transform between two disparate systems. And I emphasize the 'simple transform' statement.

Enter Apache Synapse. Installed an operational in 40 minutes -- including the server build.

Now ask yourself this: If one guy can install Apache Synapse in 40 {Free} minutes and begin working with it, and a team of 8 guys can't get MessageBroker {Pay a lot for it} to work after months... how much is your time and sanity worth?

Steve