[omniORB-dev] Implementation Repository

kendall bailey kendall@drakealumni.net
Thu, 30 Jan 2003 12:34:16 -0600


James Waller wrote:

>Judging from what I've been reading so far, there is
>one major difference between the design I have worked
>on and the one being agreed here. That is, my ImR
>works on the premise that you don't register each and
>every object with the ImR, instead you register the
>POAs that contain the objects (as described in the
>Henning paper).
>  
>

Not quite.  Each IOR for a persistent object must be generated by the 
ImR, that much is true.  But the ImR does not store per-object 
information.  That would not scale well.  Some load balancing ideas I'm 
working on in parallel with this ImR work would require the ImR to store 
object references for all *active* replica objects.  I don't see any way 
around that.

The ImR prototype and IDL I've posted has 2 ways to create a persistent 
reference.  The generatePersistent is used to create a reference based 
solely on the info passed in.  The ImR does not remember anything about 
the call.  makePersistent must be called from a currently registered 
server process, but even then, the ImR does not add anything to it's 
persistent store when creating the indirect reference.  All of the 
needed info is encoded into the indirect reference itself.

The difference I see in your IDL is that you tie things to POA 
identities.  That's perfect if the POAs themselves cooperate.  If not, I 
see no reason to force the concept of a POA identity into the ImR.  Its 
still a valid partitioning of the location domain, but perhaps not the 
only one.

>Originally I felt that the advantages of that approach
>outweighed the disadvantages. With hindsight, the
>other approach would have made my ImR *much* simpler
>(there's quite a bit of code in there for manipulating
>object references, POAs and so on). Maybe the ImR
>could make both methods available, the
>register-every-object way for portable servers and the
>register-every-POA way for more scalable (but
>non-portable) servers. Comments anyone?
>  
>

Are you saying you've modified the POA itself?  You may have to convince 
Duncan to merge your code if so.  I like the portable approach, since I 
don't see the explicit creation of the persistent references to be much 
of a burden.  Portable Helper libraries to ease the job of the server 
processes should be part of the ImR project.

Are you planning to release your ImR under an open license?  I'd be 
interested in seeing the code.

Kendall