[erlang-questions] Re-entrant CORBA services

Steve Vinoski <>
Tue Sep 14 02:06:04 CEST 2010


On Mon, Sep 13, 2010 at 6:03 PM, Geoffrey Biggs
<> wrote:
>
> I agree; I prefer one-way calls for the same reasons, and particularly
> for the reason that lead to this post.

CORBA oneway calls aren't really equivalent to async send calls. When
my colleagues and I wrote the first ORBs back in the early 90s while
we also worked on the CORBA spec, we intended oneways to be
best-effort calls implemented over UDP. As ORBs evolved most
implemented oneways over TCP, but there was nothing in the CORBA spec
requiring any particular quality-of-service from a oneway call;
indeed, a spec-compliant ORB implementation could just drop all
oneways on the floor if it wanted to. Much later we added the AMI
stuff and as part of that we added a number of delivery guarantees to
oneways that applications could choose to use. Ultimately, unless you
know for sure what sorts of delivery guarantees the ORB implementation
you're using gives you regarding oneways, or unless it supports AMI,
my advice is to avoid oneways. In all the CORBA work I've done I think
I used them only once or twice.

> It's a good real-life example of
> how Erlang has a better RPC system than CORBA.

Ah, don't get me started. :-) This really depends. When you consider
the original intent of RPC, which was to make remote calls look just
like local calls, then CORBA does just fine, and does just as well as
Erlang does. But of course that goal ignores a whole bunch of
real-world stuff that really can't be ignored, which is why the very
concept of RPC is fundamentally flawed given that a remote call can
never be "just like" a local call. See:

http://qconlondon.com/dl/qcon-london-2009/slides/SteveVinoski_RPCAndItsOffspringConvenientYetFundamentallyFlawed.pdf

for many more details.

--steve


More information about the erlang-questions mailing list