TAO Services Directory Hierarchy

The file and directory organization for TAO services can be confusing at first glance (and even on subsequent ones to be honest), so we felt like some rationale and explanation of the directory hierarchy was needed.

For general sanity all TAO services files are located under $TAO_ROOT/orbsvcs.

It is expected that clients use more than one service at the same time (in fact some of the services already do, for instance the Event Service uses the Naming Service and the Scheduling Service); for this reason all the services stubs are grouped in one library; this library is located in $TAO_ROOT/orbsvcs/orbsvcs. Usually the include path is only $TAO_ROOT/orbsvcs, so files are included like in:

#include "orbsvcs/CosNamingC.h"

To simplify the IDL generation the skeletons are also on the library, this is not a problem for client programs and most services need to link the library anyway (since they use other services.) Further, the current support for collocation requires that clients link the skeleton files also.

In the future we intend to use ACE Service Configurator to give the users control over servant collocation. As a first cut all the service implementations are included in the orbsvcs library $TAO_ROOT/orbsvcs/orbsvcs, since there are serveral services and each one require several files we have given a different directory to each service; for instance Naming Service is in $TAO_ROOT/orbsvcs/orbsvcs/Naming. This structure could also simplify a future split into several libraries (if it proves necessary).

Please note that in this revision we still have a separate binary for each service, once the complete support for ACE Service Configurator is included we will probably have a single server, much like in $ACE_ROOT/netsvcs.

Finally some test are located in $TAO_ROOT/orbsvcs/tests, since most tests require several files each one has its own directory.

SEE ALSO

You may you to check TAO release notes for up to date information on status, changes, future work, etc.


Carlos O'Ryan