[Enterprise Extensions only]

CORBA communication protocols (GIOP/IIOP)

The CORBA architecture provides the General Inter-ORB Protocol (GIOP) to define message formats between objects in a distributed environment. The Internet Inter-ORB Protocol (IIOP) is an implementation of GIOP.

GIOP includes a Common Data Representation (CDR) that resolves differences between native hardware architectures1 within such an environment. GIOP supports a number of simple data types, compound data types, object references, exceptions, and other features, depending upon the version of the specification (as shown in the following table). Nevertheless, early ORBs can encounter interoperability problems related to byte ordering.

If you suspect a GIOP-related interoperability problem, it is reasonably safe to adopt GIOP 1.0; all major ORBs support GIOP at this level. WebSphere supports client ORBs that use GIOP1.0 or GIOP1.1, with or without valuetypes from 1.2. Client ORBs cannot call WebSphere using GIOP1.2. Likewise, WebSphere ORBs can call 3rd-party CORBA servers at GIOP1.1 only. The WebSphere ORB does not accept or produce fragmented messages.

GIOP feature Data types GIOP version WebSphere ORB
1.0 1.1 1.2 Java C++
Simple data types octet, char, short, unsigned short, long, unsigned long long long, unsigned long long, float, double, boolean, string Yes Yes Yes Yes Yes
long double Yes Yes Yes - -
fixed Yes Yes Yes - -
wchar, wstring - Yes Yes2 1.1 1.1
enum Yes Yes Yes Yes Yes
Compound data types struct, union, array, sequence Yes Yes Yes Yes Yes
valuetype - - Yes Yes Yes
CORBA::Object Yes Yes Yes Yes Yes
any Yes Yes Yes Yes Yes
context Yes Yes Yes Yes Yes
exception Yes Yes Yes Yes Yes
Message formats Request, Reply, CancelRequest, LocateRequest, LocateReply, CloseConnection, MessageError Yes Yes Yes Yes Yes
Fragment Yes Yes Yes Yes Yes
Bi-directional - - - Yes - -