At next week's OMG meeting in Montreal, one thing I hope to achieve is getting the OMG to issue an RFP for a CORBA binding for WSDL. WSDL is explicitly designed to be extensible, and allowing it to used as a service abstraction over existing CORBA services has proven to work extremely well in practice. For example, we have an Artix customer who has saved quite literally millions of dollars in hardware and J2EE middleware licensing costs for their customer care system by fronting their existing back-end mainframe CORBA systems with Artix and WSDL, allowing their stock .NET clients to transparently and securely access their CORBA-based customer care systems. The customer achieved all this without needing to redesign or redevelop those CORBA services, or even touch them at all.
Some, such as Savas, think such a binding is "the wrong thing." However, as I implied in my review of Savas's and Jim's Web Services Journal article entitled, "Why WSDL Is Not Yet Another Object IDL", there's a great deal of misunderstanding out there about exactly what CORBA IDL is, and in fact about what CORBA is. Savas seems to complain that a CORBA binding for WSDL means a loss of focus on the messages that are exchanged. Hardly! If anything, it enhances that focus. In fact, it allows properly-constructed applications, or applications built on the right middleware, to focus entirely on the exchanged messages, and not worry about the details of underlying object models, or about tying themselves so tightly to SOAP that they'll have to be thrown away and rewritten when the next silver bullet protocol comes along.
Unfortunately many out there seem to think that CORBA IDL implies concrete objects. Umm, no. Don't mistake the fact that most CORBA systems have been implemented in OO languages for the fact that CORBA says absolutely nothing about object implementations. The implementation approach has pretty much nothing to do with CORBA itself. People seem to have a real tough time keeping this straight. Also, since it doesn't fit their arguments, people conveniently ignore the fact that CORBA even allows you to implement each operation within an interface as a whole separate program! (In fact, DEC's old ObjectBroker ORB supported exactly this.)
Repeat after me: CORBA objects are virtual. I explained this in a fair amount of detail in Michi's and my book, and Jacek explains this pretty well, too. These objects simply don't necessarily exist as "physical" entities the way objects do in Java or C++. When it comes down to it, CORBA interfaces are really just a way of combining and grouping operations into coherent services, implying nothing at all about whether actual objects, with all the things that that would imply, exist underneath it all. That's why, when it's done properly, a CORBA binding for WSDL is a pretty natural fit, and why fears of it causing us to forget the importance of the message are totally unfounded.

Comments (1)
Hey Steve,
There is a follow on at http://savas.parastatidis.name/2004/08/23/29eae751-6738-4655-9aad-91823c98f751.aspx
.savas.
Posted by Savas Parastatidis | August 24, 2004 4:09 AM
Posted on August 24, 2004 04:09