Patrick Logan points to a debate over CORBA and WS* between Roger Sessions and Terry Coatta over at ACM Queue. He points out some fun stuff, like this exchange here:
RS If you’re using the J2EE standards such as RMI (remote method invocation) over IIOP (Internet Inter-ORB Protocol), you are primarily going to be doing that within a single vendor’s system, such as a WebSphere system. If you’re going from a WebSphere system to a WebLogic system, your best shot at interoperability is through Web services. Why? Because you’re crossing a technology boundary.
TC You’re claiming that RMI over IIOP doesn’t actually work?
RS It doesn’t work for interoperability across technology boundaries.
TC There seem to be people out there getting it to work. Certainly, back in the days when I worked with CORBA there was no problem having different vendors’ ORBs (object request brokers) interoperate with one another. We used three or four of them at Open Text and had no difficulty at all with those environments interoperating with one another.
RS As long as you’re going CORBA to CORBA, it works fine. But not when you are trying to get a CORBA system to work with a non-CORBA system.
TC But going from WebSphere to one of the other EJB vendors (e.g., WebLogic) in the CORBA space, there were probably five or six different major ORB vendors floating around, not to mention a couple of open source efforts, and all of those interoperated really well with one another.
RS CORBA to CORBA. They’re all running on the same basic core of CORBA technology. The difference between that and Web services is that for Web services, unlike CORBA, there is no assumption whatsoever about what the underlying technology is.
Yes, one CORBA end point only works with another CORBA end point. Does that mean that Sessions believes that WS* works differently? Can I send a plain text (as opposed to XML) document via FTP to a WS* server listening via HTTP? What point is Sessions trying to make here? WS* is no more or less interoperable than CORBA was. The difference? The fact that most web services run via HTTP (and thus, via port 80) - so they can move between firewalls. With CORBA, you have to get IT (or IT security) to open up a port in the firewall (on both ends). The usage of HTTP as a transport gets around that problem.
That's really the only difference between the two at the 50,000 foot level. Lower down, of course, WS* manages to be even more complex (as Patrick points out). Managing to be more complex than CORBA is a rare achievement.