The SOA Lab
Before I start talking about my experience so far with Open ESB & GlassFish let me set the stage by introducing the SOA Lab. First a special thanks to my colleague Steve Smith for blogging about a key piece of the SOA Lab and that is The Virtual Enterprise...less work for me :-). I recommend reading The Virtual Enterprise post first to get a better understanding of systems/applications that make up the VE and their interfaces. The SOA Lab is a reference architecture with the VE representing business systems and at its core is a "pluggable" component for swapping in SOA products. This provides us with an environment for evaluating SOA products, learning and performing proof-of-concepts. Ok, now that you have at least a high-level understanding of the lab lets move on.
Open ESB & GlassFish - Why?
We recently starting looking at Open ESB & GlassFish after a potential client inquired about our knowledge and experience with the products. We had identified the need to evaluate an open source SOA project but didn't select one right away. We thought that it would either ServiceMix or Mule (which we already had experience with and is a key component of the VE). Both ServiceMix and Mule are on the radar for the lab but not in our current iteration. So, knowing very little about Open ESB & GlassFish I started my research.
After spending some time on the GlassFish community website (https://glassfish.dev.java.net/) things started coming together for me. GlassFish is a Java EE 5 application server that is "...based on the source code for Sun Java System Application Server PE 9 donated by Sun Microsystems and TopLink persistence code donated by Oracle." The project is getting plenty of support from Sun and Oracle, not to mention, more than 100 contributers in the community. So, it appears that we have a mature and robust application server with good support.
Ok, so what is Open ESB? A quick google turned up its community website (https://open-esb.dev.java.net/). After spending some time on the website I'm coming to the understanding that Open ESB is a service bus based on Java Business Integration (JBI). What is very interesting is that Java EE 5 SDK now includes a subset of functionality (JBI runtime, a BPEL 2.0 Service Engine, and a SOAP binding component) from Open ESB.
So far I like what I'm reading, however, as my colleague Tom would say..."the devil is in the details." My next question is what tools do I use to build Open ESB composite application? Well good news for NetBeans IDE fans, there is a NetBeans Enterprise Pack for NetBeans 5.5 that includes nice tooling for creating BPEL processes graphically. I haven't spent a whole lot of time with the tools, but they do seem to be pretty good. The downside is that if you're IDE of choice is not NetBeans then you're out of luck. I'm not aware of Open ESB support any other IDE...after all this is a Sun supported project :)
Ok, I've liked what I've read so far and even though I haven't used NetBeans for a while I'm open to other IDEs so that doesn't bother me. It's settled, we've decided to select Open ESB & GlassFish as our first open source SOA project to evaluate in the SOA Lab.
...the next post I'll discuss my experience with JMS support in GlassFish to integrate with the Alert System in our VE, which is the first step in our business use case.