10/03/07 :: [SCA] SCA: the last mile of interoperability [permalink]
Dave Chappell reopened the SCA debate arguing that there was no reason for Microsoft to join the SCA working group. Harmut summarized some of the discussions here.
I think this point that was made: “The assembly model, which is defined by the Service Component Definition Language (SCDL), does not add to interoperability either” is, IMHO, incorrect.
The Web Services standard stack does not support an “interoperable” assembly mechanism. As a matter of fact, if you are adopting the WS-I Basic Profile, you are forbidden to use “outbound” operations, so your services cannot expose “references” (using SCA lingo). The only assemblies Web Services can support are of the Client/Server type (this is tenet if you build a SOA with WS only).
Further if you want your service to participate in multiple assemblies simultaneously you have to code a an assembly context management layer between your soap stack and your business logic. This layer is thin and is low value for an infrastructure software vendor like Microsoft, but it has a huge value for a customer building connected systems at the presentation, process and information layers.
SCA is two distinct pieces, IBM should probably have separated them more clearly, but Assemblies are the “last mile” of interoperability, while the programming model is purely about portability.
At the end of the day it is inconsequential that Microsoft's participate or not in SCA, because someone, if not Microsoft, will build this thin layer on top of WCF to enable the creation of SCA components running in the CLR. Incidentally, SCA is offering a distributed CLR system for any language, not just Microsoft's CLR languages. Being able to assemble Java, BPEL, php, C++ components is a powerful value proposition for a customers.
This is how I compare a SCA world with the "interoperable" world of .Net :
| SCA world | Microsoft World |
| Any language support CLR | MS languages support |
| Distributed CLR with local optimization | Local CLR, intercommunication via WCF |
| Peer-to-peer assemblies | Binary assemblies |
| Homogeneous progr. model | Homogeneous prog. model |
Putting it that way, I don't see what the folks in Redmond have left to lose in adopting SCA's assembly model, unless it is an ego thing.