# SDLIP CORBA Transport Mapping

SDLIP document map and recommended reading sequence (click to navigate):

This document describes how SDLIP client and server transport modules communicate with each other via CORBA. The process is extremely simple. Since SDLIP is specified in CORBA's Interface Definition Language (IDL) anyway, the same interface describes the inter transport module communication. For clarity, here is a copy of the implementation architecture introduced in SDLIP-Core:

Figure 1: Reminder of the SDLIP Implementation Architecture

When CORBA is used between the two transport modules, all SDLIP operations are transmitted as CORBA calls across the network boundary.

The CORBA interfaces are different from the IDL descriptions of the SDLIP interfaces in only one respect: Whenever an XMLObject is transmitted between transport modules, the structure is not passed as an object, but as an XML string. The module that originates the operation serializes XMLObjects into such strings before making a call. The receiving module reconstitutes an XMLObject from the serialized string, and passes that object up to the client application or LSP. The reason for this maneuver is that CORBA passes objects only by reference. If transport modules were to communicate XMLObject references from, say, the client to the LSP, then additional calls from the LSP back to the client would be required to retrieve the actual information (which is stored in the instance variables of the XMLObject). This is inefficient.

The redefinition of the SDLIP parameter XMLObject types is done in a small IDL file `SDLIPCorba.idl`. It then imports the same `SDLIPCore.idl` file that defines the SDLIP interface itself.