Reputation: 1577
As I've understood so far, the usual way to bootstrap CORBA applications is to run an external naming service on some dedicated machine and have all instances find and connect to it to setup connection/reference management. However, what if I'm planning on running small on-the-fly networks (probably 10 instances at most) with shorter lifetimes? Imagine remotely controlled hardware devices with one host per network that's manageing data acquisition and processing. Ideally each of these host/servant networks should be able to boot without depending on external services (or at least make it transparent to the user) and lots of configuration efforts, not interfere with other networks in range and be able to go offline without affecting others.
I haven't yet figured out how to nicely solve this with CORBA. The framework I'm most use to is ACE/TAO if there only are framework-dependant solutions. Especially when deploying an application to clients, I don't want to impose complicated setup routines on them and have it setup with as little manual intervention as possible. Is there a way to do cleanly do this or are other technologies more applicable in this case?
Upvotes: 0
Views: 163
Reputation: 3002
A lot of CORBA tutorials do use the naming service but in real systems I see that a lot of people don't use it. It is a single point of failure which also causes the external dependency you mention. Especially in more embedded systems people use the IORTable support with a fixed port number. At the moment you know the IP address of the host the CORBA server is located on you can construct a corbaloc to make an invocation to the CORBA server. For an example see ACE_wrappers/TAO/tests/Forwarding which is part of the TAO distribtuion.
Upvotes: 2