[omniORB] Query - Regarding Limitations of CORBA

Duncan Grisby duncan at grisby.org
Tue Oct 9 10:38:50 BST 2012


On Fri, 2012-10-05 at 15:28 +0530, Santosh N Dumbre wrote:

> Coming across a query -
> Are there any limitations associated with CORBA ?
>  
> In case of remote call, it blocks the thread  and wait for reply  to be received. 
> Some people claim that it is inefficient and major limitation of CORBA.

What is the context for that claim?  It is certainly true that CORBA is
primarily a remote procedure call system, meaning that when a client
thread makes a call to a server object, the client does not have use of
that thread until the call returns. That's just like a local function
call, and I don't think people say that that is inefficient.

What the CORBA layer does with the thread while the call is taking place
depends on the CORBA implementation. omniORB generally does block the
thread, and that _makes_ it efficient. It means that as soon as the
reply is received from the server, the call can return to the client. If
omniORB was to use the thread for other things, the client would have to
wait until the other things were at a stage that could be suspended. So,
if you are interested in the efficiency of individual calls, the most
efficient thing any RPC system can possibly do is to block the threads
doing the calls.

I presume that the remark about it being a limitation is with regard to
cases where a client needs to concurrently make calls to thousands of
different servers. In that case, blocking a thread for each call would
indeed be inefficient. CORBA clients generally don't need to do that,
though, and if that's the main thing your application needs to do, CORBA
probably isn't the right technology to base it upon. The CORBA standard
has a thing called Asynchronous Method Invocation (AMI), which allows
clients to make asynchronous calls that the ORB can choose to perform in
a non-blocking manner. AMI support will be in omniORB 4.2.

In summary, CORBA is a tool. Like any tool, it is a good choice for some
requirements, and a less appropriate choice for other requirements. You
have to look at what you require and choose the right tool for the job.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --





More information about the omniORB-list mailing list