Previous Table of Contents Next


13.5.2 Handling of Referencing Between Domains


   When a bridge hands an object reference to an ORB, it must do so in a form understood by that ORB: the object reference must be in the recipient ORB’s native format. Also, in cases where that object originated from some other ORB, the bridge must associate each newly created “proxy? object reference with (what it sees as) the original object reference.

   Several basic schemes to solve these two problems exist. These all have advantages in some circumstances; all can be used, and in arbitrary combination with each other, since CORBA object references are opaque to applications. The ramifications of each scheme merits attention, with respect to scaling and administration. The schemes include:


   Figure 13-4 Reference encapsulation adds domain information during bridging.

   3. Domain Reference Translation: Like object reference translation, this scheme holds some state in the bridge. However, it supports sharing that state between multiple object references by adding a domain-based route identifier to the proxy (which still holds the original reference, as in the reference encapsulation scheme). It achieves this by providing encoded domain route information each time a domain boundary is traversed; thus if a reference D0.R, originating in domain D0, traversed domains D1...D4 it would be identified in D4 as (d3, x3).R, and in D2 as (d1,x1).R, and so on, where dn is the address of Dn relative to Dn+1, and xn identifies the pair (dn-1, xn-1).


   Figure 13-5 Domain Reference Translation substitutes domain references during bridging.

   4. Reference Canonicalization: This scheme is like domain reference translation, except that the proxy uses a “well-known? (e.g., global) domain identifier rather than an encoded path. Thus a reference R, originating in domain D0 would be identified in other domains as D0.R.

   Observations about these approaches to inter-domain reference handling are as follows: