With any luck, 2008 will be the year of JBI (at long last!)
His (long) entry is very much worth reading if you’re interested in both JBI and SCA. But while I have a lot of respect for Mark, I still maintain my opinion that both JBI and SCA are not worth the hassle.
JBI aims to standardize something that’s not worth standardizing — namely the internal interfaces between an ESB’s components. I’m not at all an ESB fan, but much less do I see the vendors collaborating to create pluggable components. JBI 1.0, to be quite frank, is not a great standard — it leaves such an amazing number of things open that I’d place almost any bet that two independently developed JBI components will not work together unless they’ve been built specifically for the same container. Even WS-* Web services are much more interoperable than JBI components, even though they can be developed in different languages and run on different platforms (which is not the case for JBI). Sure, maybe JBI 2.0 will improve dramatically, but I remain highly doubtful.
Regarding SCA, I simply refuse to believe both in a server-side component assembly model (the “just build those Lego™ bricks and stick them together” model) based on arbitrary interfaces, as well as in the possibility of having the same kind of abstract model for both fine-grained and coarse-grained services. I admit I’ve not yet looked into the programming model, but I thought we already had one (whatever its quality) in the Java space.
And last of all, I don’t see that you lose anything by using neither JBI nor SCA — independently of whether you’re a WS-* or REST guy, they just seem to be another great excuse for the vendors to build new products.
The point of both JBI and SCA (which attack different problems) is for multi-technology development. So sure JAX-WS is great if you want to write in Java, but what if you have a service that wants to have some BPEL, Biz Rules as well as Java, how to you package that up and how do the different bits of that service communicate (as infrastructure).
JBI and SCA are both aimed at multi-technology problems which aren’t solved elsewhere.