OS3G - Open Source, 3rd Generation

A (humble) attempt to publish news from the trenches where Free/Libre/Open-Source Software is brought to the mainstream -- and Francois Letellier's blog, too

Wednesday, September 14, 2005

Reinventing the Wheel

I started an entry about "reinventing the wheel" a few weeks ago but got no time to ellaborate, so I prefered to withhold it. I hope this time it'll be little clearer. My decision to publish this little entry is triggered by the appearance in 01 Informatique, a French magazine specialized in IT, of a paper written by Fred Bordage. I won't translate it entirely (it'll be illegal and time consuming). Just an excerpt for non-French readers: "Amongst major providers of infrastructure software, Oracle and Microsoft are the only ones not to be involved in an open source ESB project. The two main initiatives - Celtix and Synapse - relie almost 100% on code coming from proprietary ESB". Then comes a table comparing the ESB pojects of various communities. Although the core of the article is well thought in my opinion, I consider the comparison between various projects is somewhat misleading.

Over 1 year ago, ObjectWeb announced an "ESB initiative". Then after, we heard of Mule, then of Celtix, then of ServiceMix, then of Synapse, etc. James Strachan wrote "it's been busy in the open source world lately", and, as a joke, I would add "yes, busy reinventing the wheel". Another way to put it would be to speak of "more choice for the user", to chant "competition is good for innovation", etc.


What are We Talking About?

Two things are to be kept in mind. First, not every body agrees on "what an enterprise service bus (ESB) is" (see note below). We're not yet even close to it, although some writers, David Chappell to begin with, give their own very inspiring vision of the meaning of this concept. Second, until recently, there was no decent open standard to give hints about what an ESB could be. In the Java world, JBI became an approved JCP specification on June 20, 2005.

Then, the comparison between open source projects cannot be done in a meaningful way without taking the communities structure into account. Apache (historically the first) is a meritocracy run by individuals. The foundation has very little control over the project life, except for making sure operations comply with the bylaws. All business aspects are kept outside of the foundation. ObjectWeb (second in time) is a consortium of companies and individuals. Things may happen slower than in a purely grassroot individual-driven community, because business agendas have to be taken into account. Creating an ecosystem is a goal. My uderstanding of CodeHaus is that it's closer to Apache in its stucture, but only accepts mature projects. I may be mistaken here, but my feeling is that incubation is mainly done outside CodeHaus, the accepted projects being already mature. This is a little bias that tends to give the impression that CodeHaus projects come clean-cut right out of the blue as if developers were coding in no time at all.


History

In June 2004, ObjectWeb launched the "ESB initiative". Because nobody agreed on what an ESB is, we called it an initiative, not a project. The goal was to bring together people working on integration related topics, targeting the creation not of one open source ESB, but of a toolbox for creating ESBs. The second reason for following this rationale was due to the goal of ObjectWeb to develop an ecosystem. Because not two agree on what an ESB is, there's plenty of room for companies to differenciate. If ObjectWeb, as a consortium, had promoted a single ESB, the consortium would have competed against its own members. In June 2004, ObjectWeb already had very stable and mature code to inject in the "ESB initiative". Only one example: JORAM, a message-oriented-middleware led by ScalAgent, was stable for years, and at this time, already had JMS, SOAP and J2ME connectors. Was it an ESB? Not really, but it definitely was a good start.

Some companies developed commercial offers based on ObjectWeb ESBi components. One example: XCalia put on the market an intermediation platform called XIM and built on JORAM (and the JOnAS J2EE application server, for that matter). Should it be called an ESB? According to XCalia, the concept of ESB may not be well suited to the European market, for many reasons, including the strong habit of making taylor-made solutions -- as opposed to using off-the-shelves products. This may help explaining why not everybody is so sure about "what an ESB is".


A New Kid on the Block

Then Celtix entered the game and, because of Iona's impressive track record in integration, the press tended to equate "Celtix" with "ObjectWeb ESB". There's no denying that Celtix is a major contribution and that Iona's support is a major milestone in the history of ObjectWeb's ESBi. But I think there are 3 misunderstandings:
  1. Celtix is part of ESBi, but it is not the only project in ObjectWeb's integration toolbox
  2. Celtix should not be seen as a low-end version of Artix. Iona's investing in building a community and in creating innovative code too.
  3. in ObjectWeb's ecosystem, full-fledged ESBs are to be found in the vendors catalog, because it is the way they can create value out of the toolbox. When technology matures, an increasing part of the software stack will fall in ObjectWeb's roster of components. And this is what's happening with JBI. Now that the specification exists, open source projects will converge and find synergies to implement this standard, so to limit dupplication of efforts (or reinvention of the wheel) and let commercial vendors concentrate on innovation and added value. Something similar is expected to happen in Eclipse, with the Eclipse SOA Platform. Such tools will complement ObjectWeb toolbox of integration / SOA projects.

Reinventing the Wheel?

Coming back to Fred's article and the comparison between open source ESB projects. What are we comparing here? ESBs? probably not, as not all agree on a definition (Synapse, for instance, is not clearly refered to as an ESB, more as a SOA/WS framework). JBI-compliant projects? The spec only appeared in late June '05, so any reference to earlier version is meaningless. Projects? Do we mean incubated, under development, stable, feature-complete, and what's the status of an "initiative"? Do we take into account the commercial offers build on top?

Fred, let me re-write the entry about ObjectWeb according to this new perspective:
  • Initiative name: ObjectWeb ESBi
  • Community: ObjectWeb
  • Companies involved: EBM WebSourcing, Fossil E-Commerce, INRIA, Iona, Odonata, Open Wide, Orbeon, ScalAgent, and more that I don't remember from the top of my head (apologies).
  • Publication date for v1.0: somewhere between 1999 and 2002 (?)
  • Core technolgy: technology transfer from fundamental research + development from scratch + [more to come]...
IMHO, the conclusion of Fred's article is valid though: convergence is to be anticipated between various projects. Because depending on the circumstances, reinventing the wheel either makes sense or only dilutes efforts.


And a Parting Word of Humor: so what does ESB mean anyway? In New York, it means the Empire State Building. Star Wars fans understand "the Empire strikes back". And in France, until recently, ESB was only known as short for "Encephalopathie Spongiforme Bovine", or bovine spongiform encephalopathy!

3 Comments:

  • At 5:47 PM, September 14, 2005, Blogger Francois Letellier said…

    James -- at least I know you monitor my blog (an answer in less than 1 hour). The conclusive sentence is: "IMHO, the conclusion of Fred's article is valid though: convergence is to be anticipated between various projects. Because depending on the circumstances, reinventing the wheel either makes sense or only dilutes efforts." I'm sorry you don't like my humor. We are all so busy. All work and no play... Anyway.

    You make a very good point about OpenAdaptor. We all reinvent the wheel to some extent. Why are you so frustrated about that? Isaac Newton: "If I have seen further it is by standing upon the shoulders of giants."

    As explained earlier in response to other comments, this is still my blog though, so I'm the moderator of comments. Your statement about "ServiceMix was the first and only JBI container [...]and this was still true" is, AFAIK, factually untrue (http://forge.objectweb.org/projects/petals/).

    BTW, I'm curious to know if this sentence "incubation is mainly done outside CodeHaus, the accepted projects being already mature" is factually correct. Commenting on this would, IMHO, be more interesting than trying to decide who invented the wheel in the first place. Not me, that's sure.

     
  • At 8:37 PM, September 14, 2005, Blogger Francois Letellier said…

    I don't know if your line about "them reinventing the wheels ServiceMix has already made" is written as a joke too. I think so. But if it's not ("you may keep saying its a joke but its still plain wrong and still not even slightly funny") I will let you full responsibility for the negative connotation. Petals folks are in no way responsible for what I may write. They are talented, probably well informed about other open source projects already, and surely open to discussion.

    The ObjectWeb ESB initiative is a meeting place, where you're welcome to show up and talk to Petals folks! Come join us, and you'll find other nice projects too beside Celtix and Petals.

     
  • At 9:07 PM, September 14, 2005, Blogger Francois Letellier said…

    James said: "If we all reinvent the wheel, why am I and ServiceMix singled out - again - as being 'reinventing the wheel' folks? Why not include Celtix and ESBi and Synapse in this broad brush? Seems strange you pick on us twice and not anyone else - it certainly looks like you've some axe to grind or something."

    Conspiracy theory anyone? British OS connection ;-)?

    The truth is elsewhere.

    Truth: it all started one night when I landed on James' blog. He wrote something like "it's been really busy in the open source world lately", and then went on with some promotion for ServiceMix. I thought to myself "sure, it's been busy", as I knew from inside that it was actually being VERY busy. Like open source ESBs poping out everywhere. In no time at all, "open source ESB" became a buzz word, every community (OW, Java.net, ASF, CH, JBoss) pushing its own "open source ESB" as if we where all reinventing the wheel. I started to blog about that, introducing a little background about James BTW, then was interrupted by some emergency. I left something about "reinventing the wheel" in the message. James answered in no time at all, as if he was monitoring my blog 27/7! Oops, I deleted the fragment about "wheels", that was meanlingless without further explanation.

    James, I don't have an axe to grind, and definitely no bone to pick with you -- why would I? On the contrary, I expect that (thanks to this crazy blog story?) we'll be in touch and that CodeHaus/ServiceMix & ObjectWeb/Petals/Celtix will find ways to work together and all build nice different wheels.

    As for whom is first. The subversion log is deceptive (pun intended). Kidding not: an open source project may exist without being public! One can't be blamed for not knowing about it.

     

Post a Comment

<< Home