Consider GlassFish ESB v2 for SOA Tooling
After working through the examples in this article, you should be able to do the following:
- Install NetBeans IDE and the GlassFish ESB
- Create a simple Business Process Execution Language (BPEL) 2.0 project
- Use the following BPEL nodes in designing a process: Process Start, Receive, Reply, Invoke, Assign, PartnerLink, Process End
- Use the Mapper feature of the Assign node
- Create a simple Composite Application Project
- Create a simple Composite Application Service Assembly (CASA)
- Create a Composite Application Test Case within NetBeans IDE
- Deploy a Composite Application (JBI and BPEL modules) to GlassFish ESB
Confession: I am a pragmatist. I do believe that SOA is more about the design—and not the technology. However, I also believe that if you don't have some tools to implement some of the more complex design patterns for SOA, you are probably wasting a tremendous amount of time, energy, resources, opportunity, and money creating the infrastructure and plumbing that you will need anyway. SOA with tools is not evil. Misuse of tools, or worse, confusing the tool for SOA, is what needs to be avoided.
A recent client engagement has involved providing assistance in the design and implementation of a Service Oriented Architecture. The client's core development expertise is primarily with Microsoft .NET technologies, while most of their legacy code runs on a mainframe.
Over the last few months, given the prospect of looming budget constraints, and the practical cost barriers that are encountered when scaling commercial SOA vendor products across the enterprise, I've spent quite a bit of time evaluating a number of different Open Source projects for possible consideration as part of the enterprise architecture technology stack.
I've been working with the GlassFish Java 5 EE Application Server for the last 18 months—using it primarily to run the Hudson continuous integration engine—and have been extremely pleased with its stability as well as the quality of the admin console.
As you can imagine, introducing Open Source tools into any organization can be quite challenging, but an unexpected ally arrived recently which has increased the attractiveness of that option: Budget Reductions.
In considering options for implementing an Enterprise Service Bus (ESB), my design principles favor a solution that will allow the creation of a "virtual bus"—without incurring a severe cost penalty for instantiating an instance of the necessary technology stacks on every server; as well as avoiding the hub-and-spoke enterprise architecture integration model.
Apache Synape looks promising—and is still under consideration, but the recent GlassFish ESB announcements have drawn my attention: On October 12, 2008, the GlassFish ESB V2 Release Candidate was made available. The General Availability (GA) Build was certified on December 5, 2008, and and Commercial Support for early adopters was made available as of December 23, 2008. A formal launch is planned for sometime in February 2009.
Just to be clear: I'm technology neutral. I always take into consideration an organization's existing developer skillsets, the education commitment necessary to introduce new tools and technologies, the long-term maintenance and operational support issues, and the very real nature of limitations of available funding.
What Is GlassFish?
"GlassFish is a free, open source application server which implements the newest features in the Java EE 5 platform (the next version of the J2EE platform). The Java EE 5 platform includes the latest versions of technologies such as Enterprise JavaBeans (EJB) 3.0, JavaServer Faces (JSF) 1.2, Servlet 2.5, JavaServer Pages (JSP) 2.1, Java API for Web Services (JAX-WS) 2.0, Java Architecture for XML Binding (JAXB) 2.0, Java Persistence 1.0, Common Annotations 1.0, Streaming API for XML."
What is GlassFish ESB?
GlassFish ESB v2 integrates the OpenESB project into the GlassFish Java 5 EE Application Server:
"Project OpenESB implements an Enterprise Service Bus (ESB) runtime using Java Business Integration (JBI) as the foundation, enabling the easy integration of web services to create loosely coupled, enterprise-class composite applications."
The download of GlassFish ESB includes the following bundled components:
- NetBeans 6.1 + OpenESB addons
- GlassFish V2 UR2 Build 04 Release
- JBI Runtime Components: BPEL SE, JMS BC, HTTP BC, File BC, FTP BC, Database BC, LDAP BC, XSLT SE, Data mashup SE
- GlassFish Addons
- JBI Runtime
- JBI Design time Components (OpenESB NBM addons)
The following features are available in the basic installation and support modeling a wide variety of SOA design patterns:
|BPEL Design Palette includes:||CASA Design Palette includes:|
|Basic Activities:||Structured Activities:||WSDL Bindings:|
Other GlassFish Projects
Another GlassFish project that is beyond the scope of this article, but worth keeping an eye on, is GlassFish Server v3 Prelude:
"GlassFish v3 Prelude is the next major release of the GlassFish application server. GlassFish v3 Prelude provides a lightweight and extensible core based on OSGi, a web and scripting container, an easy-to-use Admin Console for configuration and management, and Update Center connectivity."