[omniORB-dev] ImR idl proposal
krbailey6@mchsi.com
krbailey6@mchsi.com
Tue, 28 Jan 2003 16:07:30 +0000
I thought there would be some value to keeping part of the server identity out
of the IOR's that the ImR generated. How would your scheme deal with migration
of objects from one part of the tree to another? Say that all foo/bar objects
need to move to the process B that also hosts abc/xyz objects? The IORs are
already published, but now the IOR with foo/bar/baz/wibble really ought to be
abc/xyz/baz/wibble in order to trigger startup of process B.
This is why I thought a process name could be associated with one or more
(possibly related in a hierarchy) subsystem names (I've dubbed them 'programs'
so far). The IORs would carry only the subsystem names and object names, and
the ImR would look up the current host process name.
Your scheme could combine the subsytem/object name pair into a single
structured string as you've described, but not eliminate the need for process
names. If that's what you meant, then I can agree with that. My motivation
for splitting subsystem names from object names was to avoid imposing any
structure on the names' formats. If there is to be hierarchical structure, is
it advisable to use delimiter characters as you suggest, or should we use a
structured type similar to the way CosNaming does with NameComponent
sequences?? I find myself always using the string representation of
CosNaming::NameComponent sequences anyway, so structured strings are fine with
me. In any case, I think the server process should see the whole identifier,
and not just the trailing portion. The initial portions may correspond to POA
names that the ProcessManager can use to traverse the POA hierarchy.
Kendall
> I haven't completely followed the discussion up to here, so this idea
> might be irrelevant, but I've been imagining a scheme where object
> identifiers are slash separated strings, like foo/bar/baz/wibble. The
> ImR keeps a mapping from partial names to programs (that are running
> or it can start). For example, the ImR might know that all names
> starting foo/bar are serviced by program A. When a request for
> foo/bar/baz/wibble comes in, it kicks A into action, and asks it for
> object baz/wibble. Later, the ImR might be reconfigured so that a
> single program supports all objects under name foo, meaning that now
> the program would be asked for bar/baz/wibble.
>
> I think this kind of scheme would avoid having to come up with names
> for the different kinds of entities. You just have simple strings,
> part of which are interpreted by the ImR, the other part by the
> programs it controls.
>
> Cheers,
>
> Duncan.