Archive of UserLand's first discussion group, started October 5, 1998.

CORBA vs. COM/AppleEvents/XML-RPC...

Author:Paul Snively
Posted:10/29/1999; 8:05:51 AM
Topic:CORBA vs. COM/AppleEvents/XML-RPC...
Msg #:12498
Prev/Next:12497 / 12499

Dave Winer wrote:

One question I'd like to hear an answer to -- where is the Unix equivalent of COM and Apple Events? The stock answer is CORBA, but think again. Apple Events and COM are *easy* -- programmers working in scripting environments such as Visual Basic and AppleScript have been able to master these protocols in weeks not years, without having to go to school. And there are hundreds of thousands of them, if not millions.

I've seen a lot of people say this in print: CORBA is too complex. What I don't see a lot of, though, is discussion as to what's meant by this. In instances when I've probed a bit, I've gotten feedback about how people don't want to write IDL; they don't want to feel like they have to specify their API's twice (which, if they do it right, they don't, but I'm talking about perception here) and it feels too static to them.

Most people that I've spoken with about this aren't aware of CORBA's DSI (Dynamic Skeleton Interface) or DII (Dynamic Invocation Interface). You can use these to make CORBA calls without writing IDL or specifying any interfaces up front at all, for that matter. Toss in support for the DynAny type and you can even manipulate data structures whose type you didn't know at compile time.

Talking about all the stuff you can do with CORBA adds, I think, to the sense that it's a complex thing, so perhaps the best thing to do is to install a really good ORB and, more importantly, a really good environment for tinkering with CORBA to show how simple it can be. My favorite ORB happens to be MICO, at <http://www.mico.org>. It supports the features an ORB must in order to support simple use (DSI, DII, DynAny, Interface Repository, Naming Service) and is interoperable with the major commercial players, VisiBroker and Orbix.

My favorite example of how straightforward CORBA can be to use can be found in CorbaScript, at <http://corbaweb.lifl.fr/CorbaScript/>. You can implement interfaces in CorbaScript, invoke any operation on any CORBA object on the Internet, etc. without writing any IDL or, in fact, doing anything more than browsing available interfaces or writing new ones. Simple.

Now, there are still plenty of issues with CORBA besides complexity: deploying CORBA in the enterprise in such a way as to be accessible from outside the enterprise means you need to get your security ducks lined up in an row, meaning you'll be figuring out how to get IIOP traffic flowing through your IP packet filters and firewalls. This is a lot easier to do if you have the source code to your ORB and firewall software (see <http://www.technosec.com/whitepapers/corba/tis_plug_gw/cfwexp1.html> and <http://www.tis.com/research/software/>). Realistically you'll also want IIOP over SSL support. And this only addressed on-the-wire security and simple handshaking, e.g. based on IP address; it doesn't really deal with authentication in a strong way.

So my take on CORBA is this: for moving bits from point A to point B it's not inherently more complex than COM, AppleEvents, or XML-RPC. The bit-moving complexity comes at the point where you want to interface CORBA-based systems across enterprise boundaries (e.g. on the Internet), and that's due, not to CORBA per se, but rather to the complexities inherent in securing non-well-known (i.e. fixed port assignment) services of any kind. One solution to this is tunneling IIOP over HTTP, since HTTP is a well-known service on port 80. XML makes a dandy tunneling protocol-builder, and in fact it might even be possible/worthwhile to develop an IIOP/XML-RPC bridge. An excellent slideshow/discussion about the issues involved is at <http://www.xmledi.net/xmlcomp.htm>.

Some of the issues, e.g. the security and authentication issue, are general: COM, AppleEvents, CORBA, and XML-RPC all face them because they're orthogonal to the communication issue. I've written about capability-based security elsewhere, so I won't reiterate here.

So to get to basic bit-twiddling connectivity, I think a decent ORB and CorbaScript meet the COM/AppleEvents/XML-RPC challenge on UNIX. As usual, however, I think that heading down that path only begins to reveal where the real complexity lies, for all such reach-out-and-touch-someone technology.


There are responses to this message:


This page was archived on 6/13/2001; 4:53:15 PM.

© Copyright 1998-2001 UserLand Software, Inc.