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 architectures within such an environment. Different hardware architectures can have variations in byte ordering and alignment for multi-byte data types within the address space. GIOP provides the means for resolving the differences across platforms. 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 Version 1.0, as all of the major ORBs support GIOP at this level. WebSphere Application Server supports client ORBs that use GIOP Version 1.0, 1.1, or 1.2. The WebSphere ORB accepts fragmented GIOP messages, but it does not send 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 | Yes (Footnote 1: There are differences in the wchar and wstring encoding between GIOP 1.1 and 1.2, which creates interoperability challenges. For detailed information, review the portion of the CORBA specification relating to GIOP and CDR.) | 1.1 | 1.1, 1.2 | |
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 | |
GIOP Message types | Request, Reply, CancelRequest, LocateRequest, LocateReply, CloseConnection, MessageError | Yes | Yes | Yes | Yes | Yes |
Fragment | Yes | Yes | Yes | Yes | Yes | |
Bi-directional | - | - | - | Yes | - | - |