[omniORB] Server & client on the same machine: no network use d ?

Brenneis, Steve steve.brenneis@attws.com
Wed, 23 May 2001 11:16:12 -0400


I apparently didn't read Stefan's question the same way you did.

I inferred the question was one of clients performing requests on object
references. If that is the case, the mechanics of the ORB differentiating
between co-located and remote servers/ORB's/implementations would be
needlessly complex. It has been a while since I dove into the belly of
omni's socket code, but I don't remember there being any optimization or
otherwise that attempted to discover whether the implementation was
co-located. The network stack is more than capable of handling the loopback
and if the marshalling code is efficient (as is the case with omniORB),
there should be no need to differentiate between local or remote requests. I
wouldn't mean to imply that ORB's can't differentiate, but I'm not sure they
should differentiate and many don't differentiate.

I may have read Stefan's question wrong, in which case, sorry for the
confusion.

Steve Brenneis
ProServe Lead Developer
AT&T Wireless Services
Desk (336) 286-1783
Cell (336) 456-3290
FAX (336) 286-1880
"I am opposed to millionaires, but it would be dangerous to offer me the
position." -- Mark Twain


-----Original Message-----
From: Stefan Seefeld [mailto:seefeld@sympatico.ca]
Sent: Wednesday, May 23, 2001 11:47 AM
To: omniorb-list
Subject: Re: [omniORB] Server & client on the same machine: no network
used ?


"Brenneis, Steve" wrote:
> 
> Hello Stefan,
> 
> omniORB (or any other ORB, for that matter) really doesn't differentiate
> between co-located clients/servers and those in different address spaces.

that's not quite correct. For one, Stefan was asking for a local call, i.e.
one that stays on the same machine. Collocation is a different story (as you
recognize yourself).
Second, I don't think that ORBs can't differenciate between these
situations.
Collocation is usually the easiest to optimize, since you can just drop in
a different proxy implementation that doesn't call any marshalling code.
If, however, server and client are in different processes, the ORB may find
out that the server side uses the same ORB, and based on that negotiate
alternative transport protocols (such as shm). It doesn't appear all that
unusual.

Regards,	Stefan