This month's OCI Java lunch is a special one, because we are fortunate enough to have secured the appearance of Dr. Weiqi Gao, who will be talking about the a new open source product called Celtix.
First person is Weiqi now.
I first encountered Celtix about a month ago, and have been playing with it a little bit. I wrote a very preliminary experience report 16 days ago, mostly about some trivial stuff.
What is an ESB
An ESB is a piece of IT infrastructure that shoots (XML) messages across a message-oriented middleware core (JMS).
The term ESB was popularized by a David Chappell book of the same name. Now that it is popular, many products out there starts to use the ESB buzzword to spruce up its brochures. The definition has also been broadened to include other transport protocols.
What is Celtix
Celtix is an open source (dual licensed: LGPL and Eclipse EPL) project hosted on the ObjectWeb community. It was started by IONA to drive adoption non-server centric, distributed computing architectures.
What can Celtix do
If you read the Celtix page at ObjectWeb, you will find a laundry list of internal product features that were delivered on a per milestone bases:
Persistence support for Reliable Messaging based on Apache Derby
HTTPS based security support
Support for Javascript based webservices.
Support for changing configuration dynamically
Management support for additional Celtix components
Support for wsdlvalidator commandline tool
Routing support for all Celtix bindings and transports
Enhanced routing capabilities
WS-Addressing support for JMS based services
Interoperability with .NET.
Support for Maven 2.0.4
Support for running Celtix inside Apache Tuscany
Support for Webservice callbacks
Support for JAX-WS Dispatch APIs
Support for JAX-WS Provider APIs
Support for non-wrapper Doc/Literal style
Celtix based javatowsdl tool
Celtix based wsdltojava tool
First cut of transport APIs
Enhanced binding API for better pluggability
Support for Protocol Handlers
Support for Logical Handlers
Support for Contexts
SOAP 1.1 support for doc/rpc literal
Support for SOAP 1.1 faults
Support for SOAP 1.1 headers
Support for JAX-WS Sync APIs
Support for JAX-WS One-Way APIs
Support for inout and out variables
HTTP 1.1 transport
HTTP servlet transport
JMS transport based on Active MQ
Support for WS-Addressing
Support for JAX-WS async client APIs
Policy based configuration
Support for StreamHandler APIs
WS-RM based support for Webservices Reliability
Support for JMX based management
XML Binding
New commandline tools: xsd2wsdl, wsdl2xml, wsdl2soap, wsdl2service
Native integration into Apache Geronimo J2EE appserver
Support for validating application data against XMLSchema
Enhanced support for deploying celtix services into a servlet container based on feedback from Jonas J2EE appserver project
Some of these makes sense to the end developer (meaning the developer who's going to use it). Some doesn't (what do I care if it's Maven 1 or Maven 2.)
Luckily, Celtix comes with a set of sample applications that showcases its capabilities:
Write WSDL (basically XMS Schema for data types, composed into messages, exchanges with operations)
Generate Java code (or class files) for types, service proxy, service interface, server mainline, client mainline, implementation object, and an Ant build file.
Add business logic and run.
What others are saying about ESB
That is a piece of SOA infrastructure, which is this huge thing that many vendors are so busy to build up products for.
The only thing that's different this time is that all the big vendors are on board. When was the last time you saw Microsoft and IBM coorporate at this level?
Uh, that would be OS/2.
It's a waste of time. Everything you need is in HTTP.
I visited XYZ corporation and discovered that they have been doing SOA for 20 years. It's just that they don't know it by that name yet. They are sending bare data packets using UDP
Weiqi is done. First person is me now.
(In case you haven't noticed, I am Weiqi. Since it is quite hard to do a live blog of a talk while you yourself are talking, this live blog has been prepared ahead of time, which probably should disqualify it as a live blog. However I'll keep calling it live in the same spirit NBC Sports call it Olympic coverage live.)