Microsoft Proposes "Open" Replacement for CORBA
Alex T-B writes "Looks like Microsoft is taking the threat from CORBA and Java seriously. They've
launched a network protocol suite [C-Net story] to embrace
and extend the distributed business software market. SOAP, as
it's called, is based on XML, and is supposed to move audiences
away from UNIX and towards adopting Win2k and fully MS-ized
software solutions. Interestingly, no MS software is needed to
use SOAP, and it levels the playing field as 'proprietary'
solutions can be replaced with a universal standard that
enabled apps written in different languages to communicate with
each other easily over the internet. Is MS actually doing the
market a favour by removing vendors' 'lock-in' strategies to
properietary solutions?"
First: the title of this /. item is misleading:
CORBA is already open.
I've written my own CORBA implementation in perl using only the freely available documentation from the OMG (see COPE).
Second: about XML and remote procedure/method calls.
From the MS SOAP specification it looks like the scope of SOAP is far more limited than that of CORBA. The same can be said of Dave Winer's XML RPC (I forgot the exact name).
The difference is that the XML-based specifications only tell you how to make a method call. What they don't tell you are things like
CORBA uses IDL to write the contracts. Or you can use an Interface Repository.
The embrace-and-extend angle.
I noticed that MS felt the need to implement a new HTTP method called M-POST. So even though from a distance everything looks standard (XML, HTTP), a closer look reveals thta for best results people should use web servers, client libraries, proxy-servers and firewalls that are all taught to properly handle M-POST.
Conclusion
It might actually make sense to use SOAP as a new transport mechanism with CORBA. Coders would get to keep their language bindings and their existing code base, and CORBA would get a more or less standard way to travel over HTTP (which is the whole point of the SOAP excercise. HTTP means that every firewall will understand it)