Previous | Table of Contents | Next |
The CORBA Core specifications define the following interfaces. These interfaces are of particular significance when building
a generic request-level bridge:
• Dynamic Invocation Interface (DII) lets the bridge make arbitrary invocations on object references whose types may not have been known when the bridge was developed or deployed.
• Dynamic Skeleton Interface (DSI) lets the bridge handle invocations on proxy object references that it implements, even when their types may not have been known when the bridge was developed or deployed.
• Interface Repositories are consulted by the bridge to acquire the information used to drive DII and DSI, such as the type codes for operation parameters, return values, and exceptions.
• Object Adapters (such as the Basic Object Adapter) are used to create proxy object references both when bootstrapping the bridge and when mapping object references, which are dynamically passed from one ORB to the other.
• CORBA Object References support operations to fully describe their interfaces and to create tables mapping object references to their proxies (and vice versa).
Interface repositories accessed on either side of a half bridge need not have the same information, though of course the information
associated with any given repository ID (e.g., an interface type ID, exception ID) or operation ID must be the same.
Using these interfaces and an interface to some common transport mechanism such as TCP, portable request-level half bridges
connected to an ORB can:
• Use DSI to translate all CORBA invocations on proxy objects to the form used by some mediating protocol such as IIOP (see the General Inter-ORB Protocol chapter).
• Translate requests made using such a mediating protocol into DII requests on objects in the ORB.
As noted in Section 14.2, “In-Line and Request-Level Bridging,? on page 14-2,
translating requests and responses (including exceptional responses) involves mapping object references (and other explicit
and implicit parameter data) from the form used by the ORB to the form used by the mediating protocol, and vice versa. Explicit
parameters, which are defined by an operation’s OMG-IDL definition, are presented through DII or DSI and are listed in the
Interface Repository entry for any particular operation.
Operations on object references such as hash() and is_equivalent() may be used to maintain tables that support such mappings.
When such a mapping does not exist, an object adapter is used to create ORB-specific proxy object references, and bridge-internal
interfaces are used to create the analogous data structure for the mediating protocol.