Last week IBM/BEA/SAP and a few others announced a new specification called the "Service Connector Architecture" (SCA). Here is an article about the news
BEA official: New SOA spec won't go to JCP
From a technology standpoint we are still wrapping our heads around this announcement, but cursory analysis reveals that it is a potpourri of JBI/EJB3/SEAM. That is interesting actually, at least from a tech standpoint. It seems to re-invent, by copying a lot of programmatic constructs, a lot of the microcontainer, IOC, annotations, stateful conversation innovations that are present in these three frameworks and standards. It is a new shot at a closed standard for SOA.
But the real meat in this announcement is what is missing:
- The fact that key vendors like MSFT, Sun and JBoss were left out of this, making it a de facto closed standard
- It is done OUTSIDE of the JCP standards body, in fact purposefully bypassing it.
That right there should be a warning flag as far as the adoption of this technology goes. Guys and gals, this is a declaration of war on standards and you shouldn't bank your future on closed proprietary formats. It is a closed standard, not an open standard and SCA will have problems getting support from JBoss and Sun, without a true open standard endorsed by the JCP.
It is not the first time BEA and IBM attempt this kind of dubious manoeuvre. The first time they were simply frustrated by the slow speed of the JCP, rightfully so. Earlier, they attempted the SDO coup to force Sun's hand to standardize a spec, written outside and after the fact, with a stamp of approval at the JCP level. These are known as "purple JSRs" -- JSRs that were created outside by a small clan and then forced on the JCP. SDO failed. This time around it is something different.
We are all frustrated with the speed of the JCP and would like to see it be more nimble (note to Bill Shannon: follow an aspect oriented approach to service definition, TX would fit in 5 pages with annotations, same for security, same for webservices, same for persistence, same for remoteness, same for monitoring, same for management, same for injection, same for dependencies, same for clustering yada yada, we are well on our way to do that. What we need is to break up EJB4 in many little pieces, my two cents…) But here BEA and IBM said they don't want to standardize. It may be a bluff, but I don't think so.
I wonder if SCA isn't IBM and BEA’s response to Sun open sourcing SeeBeyond, or vice versa. But I don't think this is the heart of the matter anyway. I do, however, really believe IBM and BEA want to bypass the JCP. See, what happened to Java EE when JBoss joined was a rapid commoditization of that stack. We rapidly became the number one vendor. After all, why compete on a standardized technology when it is implemented by a credible and independent open source entity? I knew that when we joined the JCP EC, achieved standardization and captured volume leadership IBM was going to react. They did so by acquiring Gluecode and are botching it.
Bottom line is that FOSS a la JBoss, where developers are in control scares the hell out of IBM. We heard from ex-IBM'ers that we are the new Microsoft to them. We commoditized EE fast, capturing volume leadership, and they REALLY don't want to see the same thing happenning to SOA and integration where they make so much of their money. So IBM and BEA left the JBI specification when we joined. Of course they used a weak excuse about some tech point or other, but if you put the timelines together you get the picture.
Now they went off and created their own little exclusive club keeping us, MSFT and Sun out. Are they afraid of REAL standardization? I think they have just done a great disservice to the Java community by attempting to splinter the spec in the Java world. This coup d'etat attempt worries me. These folks want to sell proprietary implementations of proprietary standards and not let Sun and JBoss mess it all up with open standards and open source. Here again MSFT must be laughing its @ss off at the mess being created.
To add insult to injury, IBM and BEA are trying to "open source" the Tuscany project at Apache. I read the announcement by the IBM employee to the Apache lists, What turns my stomach upside down is when I read this letter telling the Apache community about "meritocracy". Haven't you guys had enough of this hypocrisy from IBM, enough of being treated by IBM like a colony? I know we do as members of the apache community. Here is a message for our developer friends in the Apache community. Beware of uncle IBM offering you candy and talking about how right you are to do BSD licenses and about meritocracies. It is all about being able to fork the good community work you put in there for their competing implementations. END OF STORY. I am sad when I see young developers buy into the license noise and how GREAT it is to do BSD. To me, this is nothing but naivete asking to be taken advantage of. Guys, BSD is a license FOR VENDORS that doesn't protect your work. ISV's should beware of these licenses as well, since they lead to forking and poor community implementations BY DESIGN.
IBM is deathly afraid of companies like JBoss that can self-sustain and beat them in the marketplace with FOSS. As long as they control the timeline of releases, the roadmap and they can fork when needed (which they ALREADY did to Geronogo, poor guys…), they are fine with FOSS. Developers take note. By BSD licensing your software, the best you can professionally hope for is low level employment in the belly of the beast.
Oh don't get me wrong, we at JBoss are just as controlling in the sense that we control the roadmap and quality of the FOSS projects we lead, but we do it with a different mindset. WE ARE COMMITTED TO PURE OPEN SOURCE PLAYS. BE IT AT APACHE (Tomcat/mod-jk) or with Hibernate, or Arjuna etc. Remember IBM loves Linux under GPL, because it has no choice on the license and it helps them fight MSFT but they HATE REAL FOSS when it comes to MySQL and JBoss. They pay lip service to how committed they are to FOSS. In areas where they actually make money, they make sure their low end FOSS implementations are crap…and then fork the hell out of them. BEA is there in the SCA, I am not sure why. They look more like a headless chicken than a leader here.
Again, while big vendors like IBM and BEA are taking the road of closed standards and closed implementations and paying lip-service to open source, we at JBoss choose the road of true open standards, the JCP and real pure-play FOSS. Our agenda is completely transparent; theirs is not and never will be. If you are an end-user or an ISV you should know where the difference lies and care about it. SCA is just another attempt to force everyone's hand, in this case by capturing volume with closed-standards open source a la IBM. Ask yourselves why they didn't want JBoss and Sun in there? Simple: JBoss would probably have the best implementation before they could say "my license business is safe"--they don’t want to repeat the EE commodization nightmare.
This leaves JBoss and Sun in a mode where we MUST collaborate to make the JCP a success. Together, we control the volume distribution of STANDARD EE. JBoss reiterates its commitment to the JCP and Sun as a leader of the JCP. We are looking at SCA, from a technology standpoint and if there is anything worth doing, we will. We will also standardize a lot of the work we have already been doing. Collectively, we already have most of the tech that they have, the differentiator will be programming models and I believe in the EJB3 style standard of programming (which I helped write, so it is not surprising :) Open Standards, open source and good programming models will prevail.
I will leave our friends at IBM and BEA with a little historical parallel. Attempting to split the programming model by splitting the standards according to vendor interest will play out just like THE UNIX WARS. IBM believes they can win it, that they control all the cards, and BEA is so afraid of us that they would rather cozy up to their old enemy… Meanwhile, IBM already lost with Gluecode. Maybe they’re still inebriated with their Linux success against MSFT and don’t see it. Sun WON the proprietary Unix wars, they lost. Then Linux started to trump Solaris, but it wasn't all about IBM, it was mostly the improving quality of Linux and the power of FOSS. IBM has none of this with SCA and Tuscany, not a volume play (we do) not a true FOSS play in L/GPL (we do). Oh how quickly some forget that Open Source IS NOT JUST LINUX. Now ask yourselves who is the Linux of Java EE? JBoss, that's who.
Much as IBM would like to believe their little coup d'etat will succeed, if tech history has anything to teach us, it is that they have already lost. Open Source on Open Standards has always prevailed. Why? What’s in the best interest for the customer? Proprietary standards and proprietary implementations or open standards and open source?
I know where I vote. I know where the majority votes.