advising on IT-business alignment
IT-business alignment about us blog our services articles & reports resources your profile exposure
blog
blog
Wednesday, December 07, 2005

With SCA, reality bites J2EE again – but is that the whole story?

[Note to readers: this is a long entry. Please bear with it!]

With the announcement last week by IBM, BEA, Oracle, SAP, Siebel, IONA and others that they are collaborating to develop a language neutral programming model tuned to the needs of SOA initiatives, it looks like a little more lustre has rubbed off J2EE. But it also looks a little like something deeper could be going on: the biggest vendors are shifting their attention to a wider market opportunity. Can they avoid the mistakes of J2EE?

J2EE was originally designed with serious input from IBM (based on its ComponentBroker middleware project), BEA and others – as well as Sun – to standardise a programming model for building web-based business applications. It arrived in the dot.com boom, when the world was awash with small innovative suppliers selling middleware which combined web servers with support for object-oriented programming, and transaction handling against remote databases; and outwardly at least, the idea was a good one – the argument from the authors was that without a clear standard in the market, the cost of developing skills and the risk of vendor lock-in would hold the market back.

But for some years now voices in the software development community briefing against the suitability of J2EE for various types of work have been getting louder.

"If it ain’t J2EE, it ain’t going to do the job"

I’m happy to admit that there’s long been a conspiracy theorist living in my brain, telling me that J2EE was an attempt by the established players (IBM, BEA and Oracle, aided by Sun) to lock small vendors out from the Java application server market opportunity. For most of the time the primary "evidence" to support my feverish imaginings was the fact that certifying products to J2EE has always been expensive – and it has become more expensive as the specification has become more complicated. Small vendors had real trouble getting the resources together to play that game. Now, though, I’m starting to think that the increasingly audible developer discontent with J2EE adds fuel to my fire.

It is entirely possible that J2EE was developed altruistically by the folks involved in the process. However good the original intention was, though, the large vendors’ sales and marketing teams have certainly been happy to associate complete J2EE compliance with the ability to deal with real-world requirements in customers’ minds (see here for just one example).

Innovation always finds a way

The shine on J2EE started to dull when a core element of the Enterprise Java Beans (EJB) element of the J2EE programming model, Entity Beans, started to be seriously tested by developers – and many declared it to be too clumsy and inefficient to provide the facilities which were advertised (again, see here for an example). Curiously, given its stated intent, as well as its shortcomings in helping developers manage persistent data, the J2EE model also never really offered design patterns to help people building web-based applications become productive. More recently, the specification has received brickbats for failing to really get to grips with the challenges of developing and deploying web services.

On top of this, J2EE is managed by the Sun-led Java Community Process (JCP), which has, in all core Java-related areas, eschewed the creation of royalty-free specifications. This is combined with the fact that as J2EE has moved through a handful of major revisions the specification has only become more difficult and expensive to certify against.

More and more Java development shops have been looking to (open-source, royalty-free) frameworks like Hibernate, Spring, Tapestry and latterly Struts – supported by "professional open source" vendor JBoss and vendors with "blended" approaches like BEA – to help them build the kinds of applications that the J2EE specification was originally designed to help with. The JCP has learned some lessons from these frameworks in the new Java Server Faces (JSF) and EJB 3.0 specifications, but the alternatives continue to thrive.

And at the same time as all these J2EE-related shenanigans have been going on, Microsoft has been steadily plugging away at its own .NET programming model – introducing features to hide the muckiness of dealing with web services and various proprietary integration technologies; offering a variety of ways of processing and managing persistent data; as well as making it relatively stress-free to develop client-server applications which can seamlessly work with or without network connectivity.

If you want to a winner, you can’t only champion Java

Moreover, IBM and BEA have done little to hide their antipathy regarding the JCP. Both abstained from voting on a recent specification proposal concerning the creation of a standard Java integration framework (JSR 208, for anyone interested ;-). IBM has taken to adding a statement (see here for an example - scroll down in the comments box) to all its JCP submissions to the effect that it disagrees with the JCP’s licensing model. And IBM and BEA have been collaborating heavily, along with a number of other very significant vendors, on two new programming model specifications: Service Component Architecture (SCA) and related Service Data Objects (SDO).

The technical details of SCA and SDO (such as they are, at this early stage) clearly borrow from the innovations of the open-source Java frameworks – as well as from Microsoft’s own programming model innovations in .NET 2.0, the Windows Communication Framework, ADO.NET and LINQ. Most importantly, however, they are explicitly "multi-language". Support for Java is obviously important, but Java is just one language that the project will target: the other "first class citizens" are C++ and PHP.

For IBM and BEA watchers, this move is very significant. Both companies are betting a lot on SOA being a Big Thing – and the truth is that SOA is about integration first and foremost – irrespective of runtime environment or programming language. A SOA technology proposition based solely on Java is a three-legged dog in what will turn out to be a fiercely-contested race. Both IBM and BEA have some serious technical and marketing work to do in this regard, as they have spent many years and hundreds of millions of dollars convincing the world that they are synonymous with “enterprise Java”. BEA’s acquisition of the language-neutral Plumtree was a good step forward; and IBM is constantly being reminded of the need to something by its Global Services outfit, which makes a lot of money away from the Java world. IBM and BEA’s roles in the development of SCA and SDO are clearly there to support the companies’ moves away from Java-centricity.

For J2EE watchers, the introduction of SCA and SDO is also of paramount importance: it’s yet another sign that J2EE is increasingly seen by many of its big vendor champions as just one possible platform design which will work for customers looking to build and integrate modern business applications. In my opinion, it’s not before time.

SCA: the next J2EE?

The SCA/SDO programming model initiative has a lot of potential to help development shops in the software community, as well as in other industries, get to grips with the challenges that SOA brings. But there are some challenges that the promoting group will have to overcome if it is to really serve the needs of customers – and if it is to avoid the slide into disillusionment that software vendors and enterprises are now experiencing with J2EE.

The group says it’s committed to developing open and royalty-free specifications. But will it also work to keep specifications simple, so as to ensure that a wide range of participants can implement them?

When and how will the group transfer the specifications to an independent standards body? This question is crucial and also tricky. There are many who say that the JCP is too quick to adopt new specifications – leading to endorsements of specifications which aren’t fully road-tested in industry. Standardisation of a technology has to both take input from commercial experience from technology innovators and early adopters; as well as making the technology appealing to the larger population of mainstream adopters.

The philosophy is language-neutral. But will the group make explicit provisions for the addition of new language bindings to SCA and SDO by third parties that may come along later, and how easy will this be?

If SCA and SDO are set up to compete against Microsoft’s programming model initiatives, the sponsoring group needs to ensure that they make solid, compelling development tools available quickly. Unless progress is swift they will leave potential customers with a complex set of specifications which are difficult to implement.
Comments:
Hi Neil,

Wow... long post :-)

You mention the importance of compelling development tools - totally agree. If you haven't already, you should take a look at WebSphere Integration Developer (the tooling for WebSphere Process Server). It has SCA running through its veins and it's available today.
 
Hmm, I wonder if you work for IBM Richard? ;-)

I've already had some good briefings on Integration Developer - the most recent with Wolfgang Kulhanek. It's a nice tool - but as SCA isn't yet a standard I wouldn't recommend that anyone gets too carried away...

I absolutely agree that tools have to be there, and Integration Developer is a nice indication of where things need to go. But it only makes sense if you're a Big Blue Shop right now...
 
Yes.... sorry, Neil; I should have made that clear. I'm an IBMer :-) I work in our Software Services for WebSphere (ISSW) organisation. I have an EAI and BPM background and now consult (both pre-sales and implementation) around Process Integration (primarily where Process Server and Integration Developer are proposed).

And now that I know you've spoken to Wolfgang, I'd better watch what I say! If anything I write below contradicts him, you are probably safe to assume that he is right and I am wrong...

Broadly speaking, my clients (as an ISSW consultant) fall into one of two camps with respect to standards. Some of them are looking to the future and trying to build a flexible, open-standards-based infrastructure. They find the vision of SOA utterly compelling and they're thinking strategically. For such organisations, implementing a major project on proprietary technology just isn't going to happen.

The second camp are clients who have a pressing problem that they have to solve right now. A typical example here is an externally-imposed deadline to attain compliance in some area (e.g. number porting time limits, updates to motor insurance database, etc, etc).

In these cases, open standards are nice - but they're not top of the list; a successful project at an affordable price is the goal. I guess one could say such clients are, out of short-term necessity, more tactically-driven.

Now, the key point here is that the recent SCA announcement is good news for both classes of clients.

Open-standards-based organisations can now consider products such as WebSphere Process Server safe in the knowledge that one of the key underpinning technologies has support from most of the big players in the industry. Likewise, organisations with short-term pressures driving them can now cross another objections off the list when evaluating SCA-based offerings... they no longer have to compromise between "getting the job done now" and "deferring the standards-headache for another year".

Of course, you'd be doing your clients a dis-service if you didn't counsel caution :-) But, like you say in the comment on my blog, there is real value in SCA. This means there may be an opportunity cost for those who choose not to use it. This opportunity cost should be considered in relation to the now much-reduced risk with respect to standardisation/industry support.
 
I work for a bank that uses both IBM and Sun for middleware. And frankly, I was extremely disappointed with the SCA announcement - which *Deliberately* excluded Sun, and just creates more complexity, not less.

We are moving increasingly to open source platforms, and JBoss and Sun's recent announcements seem to put them in front (and IBM and BEA's reticence positions them elsewhere) - and barring a more cooperative stance between IBM and the open source world, their management is going to hear a crisp message: we don't trust your motives.
 
Excellent post and definitely solififies a growing discomfort that I had with respect to J2EE. One thing that I fail to understand, though, is why we need these extra standards at all... To my mind the whole point of webservices/rest etc. is that you have tooling *within your environments of choice* to expose functionality to other environments. As a result my feeling is that the 'ecosystem' (I hate that word) already supports broad interoperability across a fairly open market and that things like BPEL will enable the 'composite apps' play in a vendor neutral way. My feeling is that the market should just develop in terms of how good your tooling and platform are to support networked applications and shouldn't be about single vendors trying to develop multiple platform proficiencies to serve your whole needs. The latter approach to me would appear to restrict small players (as you said) and stifle innovation - which is one of the most exciting things currently underneath all of the web 2.0 hype. I guess I'm just suspicious of the motives here; I wouldn't want to see a supposed 'simplification' that in any way endangers the current and exicting developments towards openness and innovation....

Ian
 
Anonymous:

Just to let you know - I've been in touch with Ashesh Badani (Group Marketing Director for SOA at Sun) who told me that he had had some level of visibility of the work going on around SCA. We're due to talk again in the New Year, and one of the topics I want to cover is Sun's potential role in SCA. Once I have the info I'll post it here!
 
Post a Comment

<< Home


Burn this feed
Burn this feed!

Creative Commons License
This work is licensed under a Creative Commons License.

Blog home

Previous posts

HP acquires Trustgenix: no great surprise
Just how flat is the world of IT, anyway?
Microsoft takes file formats to Ecma - but what ab...
Business process confusion: once more unto the breech
EITM is to CA, what On Demand is to IBM
Why "users" is a dirty word
Clarifying the ESB (NOT!)
IT-business alignment, and the four levels of SOA ...
"Applistructure"? Give me a break
"Loosely Coupled" reinvents Passport

Blog archive

March 2005
April 2005
May 2005
June 2005
July 2005
August 2005
September 2005
October 2005
November 2005
December 2005
January 2006
February 2006
March 2006
April 2006
May 2006
June 2006
July 2006
August 2006
September 2006
October 2006
November 2006
December 2006
January 2007
February 2007
March 2007
April 2007
May 2007
June 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
May 2008
June 2008
July 2008
August 2008
September 2008
October 2008
November 2008
December 2008
January 2009
February 2009
March 2009
April 2009
May 2009
June 2009
July 2009

Blogroll

Andrew McAfee
Andy Updegrove
Bob Sutor
Dare Obasanjo
Dave Orchard
Digital Identity
Don Box
Fred Chong's WebBlog
Inside Architecture
Irving Wladawsky-Berger
James Governor
Jon Udell
Kim Cameron
Nicholas Carr
Planet Identity
Radovan Janecek
Sandy Kemsley
Service Architecture - SOA
Todd Biske: Outside the Box

Powered by Blogger

Weblog Commenting and Trackback by HaloScan.com

Enter your email address to subscribe to updates:

Delivered by FeedBurner