Contents Distributed Objects Previous Next

IOM CORBA Support status explanation

This section documents the IOM CORBA support for Release 8.2 of SAS Integration Technologies. This feature allows you to use a CORBA ORB on your server platform and communicate with client ORBs using the Internet Inter-ORB Protocol (IIOP). IIOP is the communications protocol that is used between CORBA-compliant ORBs. Software components that use CORBA-compliant ORBs are interoperable. This means that you can develop your client application for any platform (using any supported language for that platform) and use any commercially available CORBA-compliant ORB for that platform to access the services on an IOM server.

Software Requirements

The IOM CORBA support has the following software requirements for your server platform:

Release 8.2 of SAS Integration Technologies introduces CORBA support for IONA Technologies Orbix2000 for C++. We anticipate that future releases will include support for additional server platforms.

The client machines also need a fully compliant CORBA 2.0 ORB. SAS has successfully used the following ORBs:

Configuring the IONA Implementation Repository

IOM CORBA support is provided with SAS Integration Technologies software as two executables. When you install the SAS system for the Windows NT platform and include Integration Technologies, the executables are installed as $sasroot/inttech/sasexe/orbitsrv.exe and $sasroot/inttech/sasexe/sasorbit.exe. When launched as part of IONA's ITADMIN implementation repository tool, the orbitsrv executable handles all of the details of starting an IOM server that uses the Orbix2000 ORB.

To use the SAS IOM CORBA server within an IONA implementation repository, the server administrator must configure the repository with the following IONA ITADMIN commands:

process create -activator server_node/it_activator
               -startupmode on_demand -dir "$sasroot"
               -pathname "$sasroot\\inttech\\sasexe\\orbitsrv.exe" sasspawn

orbname create -process sasspawn

poa create -orbname sas_spawner_autopoa


For more information on ITADMIN, see the IONA Orbix2000 Administrator's Guide.

Accessing the Server From the Client

In the COM, the IOM Bridge for COM, or the IOM Bridge for Java environments, there are factory methods available to create a workspace on the IOM server using a logical name for the server. To access an IOM server using IIOP, you use an Interoperable Object Reference (IOR) to obtain an IIOMFactory object on the IOM server. (The IOR is a standard way of encapsulating IP name, port, and class ID to identify the object server that you want to communicate with.) The IIOMFactory object is then used to create workspaces.

Below is a C++ example of creating a workspace object on an IOM CORBA server. The program first reads the IOR from the file (IOR_file_name) where the server wrote it during startup. Note that this is a stringified IOR and must be converted to an object before it can be used to get the workspace.

  CORBA::ORB_ptr orb = CORBA::ORB_init(argc, argv);
  char IORstring[1024];

  char IOR_file_name[512];

  /* The variable IOR_file_name must be initialized
     to the path and filename that was specified with
     the -IORgen switch when the server was started */

  FILE *fp = fopen(IOR_file_name, "r");
  fgets(IORstring, 1024, fp);

  CORBA::Object* str_object = orb->string_to_object(IORstring);
  SASIOMDefs::IIOMFactory_var IOMFactory = SASIOMDefs::IIOMFactory::_narrow(str_object);
  SAS::IWorkspace_var IWorkspace = IOMFactory->CreateObjectWithUserID("domain\\username", "password");

As discussed above, the CreateObject method can be used if the -public option is set. However, authentication and access rights assignment are bypassed.

You need to generate the appropriate stubs and headers using your own IDL compiler. The CORBA IOM IDL files are installed as part of the base SAS system and can be found in the following zip file:


This zip file contains the following IDL files:

From this point, once you have the workspace interface, your application accesses the IOM server the same way regardless of whether you're using the IIOP or the IOM Bridge protocol.


The IOM CORBA support in Release 8.2 has the following restrictions:

Contents Distributed Objects Previous Next