Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing a CORBA interface without recompiling

Tags:

c++

corba

idl

tao

I'd like to add a method to my existing server's CORBA interface. Will that require recompiling all clients?

I'm using TAO.

like image 772
Dmitry Shechtman Avatar asked Jan 24 '23 03:01

Dmitry Shechtman


2 Answers

Recompilation of clients is not required (and should not be, regardless of the ORB that you use). As Adam indicated, lookups are done by operation name (a straight text comparison).

I've done what you're describing with our ACE/TAO-based system, and encountered no issues (servers were in ACE/TAO C++, clients were ACE/TAO C++, C# using Borland's Janeva, and OmniORBPy).

like image 53
Jason Etheridge Avatar answered Jan 26 '23 16:01

Jason Etheridge


Assuming that the clients and servers are communicating via IIOP, no recompilation is required. An IIOP message contains the name of the interface, the name of the method, and the parameters. If none of those things have changed, then everything should remain compatible. Adding another method to the interface won't change any of those existing things.

On the other hand, if your objects are using a different protocol, or if the clients are in-process with the server and thus bypassing IIOP, you may need to make sure everything gets recompiled.

like image 31
Kristopher Johnson Avatar answered Jan 26 '23 16:01

Kristopher Johnson