Bonobo Activation API Reference Manual | |||
---|---|---|---|
<<< Previous Page | Home | Up | Next Page >>> |
The OAF server is split in 2 parts: the ObjectDirectory
which contains the list
of all servers on a given machine, and the ActivationContext
which contains the
list of all ObjectDirectories. It contains by default the local ObjectDirectory
and you can add inside other distant ObjectDirectories.
Each server is described by its .server file which contains among others the IDL interfaces this server implements, some specific properties and an IID (Implementation ID). Each IID has to be unique. Its format is pretty simple:
OAFIID:program_name:UUID |
Each CORBA server on a given machine is thus identified in a unique way. CORBA servers on different machines are uniquely identified through the AID (Activation ID). The AID format is also pretty simple:
OAFAID:[IID,user,host,domain] |
One important thing to understand about these AID and IID is that the
ObjectDirectory
deals exclusively with IIDs (it is stritcly local) and
the ActivationContext
deals with AIDs since it can associate a set of
user, host and
domain to each IID it gets from one of its
ObjectDirectory
.
As a result of this architecture, activation requests should go to the
ActivationContext
and
registrations to the ObjectDirectory
.
make sure it has an up-to-date list of all the Servers with a call to
ObjectDirectory::get_servers
for each of its ObjectDirectory.
loop through this list to try to satisfy the query with the given requirements and sort-order.
activate the corresponding object with
ObjectDirectory::activate
(this is not exactly what happens
since there are optimizations to save this call but the general idea is right).