summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Naming/README
blob: 17912d42039cbc8880c4c9a5fa343fd2079fbbea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// $Id:

CONTENT

This directory contains files implementing CosNaming idl interface
from CORBA COSS, as well as a few utilities.


ARCHITECTURE

The architecture of the Naming Service (i.e., CosNaming)
implementation follows the Bridge pattern.
Below is the list of player classes:

 * TAO_Naming_Context (in Naming_Context.h) - this class inherits from
   POA skeleton, and plays the role of 'Abstraction' (aka 'Interface') -
   it forwards all client requests to a 'ConcreteImplementor' through an
   'Implementor' pointer.

 * TAO_Naming_Context_Impl (in Naming_Context.h) - this is an abstract base class for all
   concrete implementations of NamingContext functionality (i.e., 'Implementor').

 * TAO_Hash_Naming_Context (in Hash_Naming_Context.h) - this
   class inherits from TAO_Naming_Context_Impl.  It is a
   'ConcreteImplementor' which uses ACE_Hash_Map_Manager to implement
   NamingContext functionality.

The class structure described above makes it easy to:

1) Create and plug different Naming Service implementations by
   subclassing TAO_Naming_Context_Impl.

2) Dynamically load an appropriate Naming Service implementation at
   run-time based on the config file entry by making TAO_Naming_Context_Impl
   inherit from ACE_Service_Object, etc.


PERSISTENCE