Corba Fundamentals   «Prev  Next»
Lesson 3IIOP and related protocols
ObjectiveLearn about how IIOP provides Protocol-Level Interoperability.

IIOP related Protocols

How IIOP provides Protocol-Level Interoperability

CORBA's interoperability is guaranteed even to lowest protocol levels because the specification makes this guarantee a requirement for vendors. When the OMG decided to design CORBA's protocol, they focused on a balance between real-world usability and abstract interoperability. The OMG decided to provide a protocol mapping that would run over the most widely used networking protocol, TCP/IP.

General Inter-ORB Protocol (GIOP)

The OMG also specified that protocol in such a way that it could also run over existing networking protocols. This specification, named the General Inter-ORB Protocol (GIOP), provides protocol definitions for low-level data representations and network connection handling.
The specification goes one step further and specifies a GIOP mapping specific to TCP/IP, named Internet Inter-ORB Protocol (IIOP). Support for IIOP is a requirement for any ORB vendor that wishes to comply with the CORBA specification. The benefit of an interoperable protocol layer is that it allows products from different ORB vendors to work together. This has only been a part of the CORBA specification since version two. Earlier versions of the CORBA specification provided a very good framework for building distributed software, but vendor interoperability was absent.

Inter-ORB Protocols

So how does CORBA fit into this networking model? It turns out that the CORBA specification is neutral with respect to network protocols; the CORBA standard specifies what is known as the General Inter-ORB Protocol (GIOP)[1] , which specifies, on a high level, a standard for communication between various CORBA ORBs and components. GIOP, as its name suggests, is only a general protocol; the CORBA standard also specifies additional protocols that specialize GIOP to use a particular transport protocol. For instance, GIOP-based protocols exist for TCP/IP and DCE (the Open Software Foundation's Distributed Computing Environment protocol). Additionally, vendors can (and do) define and use proprietary protocols for communication between CORBA components.

For discussion and use of CORBA in this course, your main interest will be the GIOP-based protocol for TCP/IP networks, known as the Internet Inter-ORB Protocol (IIOP)[2]. As of the 2.0 version of the CORBA specification, vendors are required to implement the IIOP protocol in order to be considered CORBA-compliant (although they might offer their proprietary protocols in addition to IIOP). This requirement helps to ensure interoperability between CORBA products from different vendors because each CORBA 2.0-compliant product must be able to speak the same language. Some vendors have gone so far as to adopt IIOP as their products native protocol (the protocol used by default) rather than use a proprietary protocol; however, an ORB is allowed to support any number of protocols, as long as IIOP is supported (when communicating with each other, ORBs can negotiate which protocol to use). Additionally, a number of vendors are including IIOP-compliant ORBs with products ranging from database servers to application development tools to Web browsers. IIOP, as you can see, is an important key to CORBA interoperability.

GIOP IIOP - Exercise

In this exercise, you will have a chance to read more about GIOP and IIOP.
GIOP IIOP - Exercise

[1](GIOP) General Inter-ORB Protocol: The General Inter-ORB Protocol (GIOP) is a high-level standard protocol for communication between ORBs. Because GIOP is a generalized protocol, it is not used directly; instead, it is specialized by a particular protocol that would then be used directly.
[2](IIOP) Internet Inter-ORB Protocol: The Internet Inter-ORB Protocol (IIOP) is a specialization of the GIOP. IIOP is the standard protocol for communication between ORBs on TCP/IP based networks. An ORB must support IIOP (but can support other additional protocols) in order to be considered CORBA 2.0-compliant.