- General Inter-ORB Protocol
In
distributed computing , General Inter-ORB Protocol (GIOP) is the abstract protocol by whichobject request broker s (ORBs) communicate. Standards associated with the protocol are maintained by theObject Management Group (OMG).IIOP (Internet Inter-Orb Protocol) is the implementation of GIOP for TCP/IP. It is a concrete realization of the abstract GIOP definitions.
Message types
The Object Management Group defines three parts of GIOP:
*TheCommon Data Representation (CDR) - transfer syntax mapping OMG IDL data types into a low-level representation for “on-the-wire” transfer between ORBs and Inter-ORB bridges.
*TheInteroperable Object Reference (IOR) - define the format of a reference to a remote object. An IOR consists of tagged profiles and their components that may carry various needed information. The typical IOR usually contains the protocol version, server address and a byte sequence identifying the remote object (object key).
*The defined message formats - messages are exchanged between agents to facilitate object requests, locate object implementations, and manage communication channels. Messages are:
**"Request " is sent to invoke the remote method.
**"Reply " is returned in response to "Request". It normally contains the data, returned from the remote method. In other cases the reply may contain the redirection instruction or the description of the exception that was thrown on a server side.
**"CancelRequest" is used to cancel request that was previously sent (no longer waiting for the answer).
**"LocateRequest" is used to verify if the server knows and supports the certain remote object, and (if not), to what address the requests for that object should be sent instead.
**"LocateReply" is sent by server in response to the "LocateRequest". If needed, it may contain the new address of the remote object that has moved.
**"CloseConnection" is sent by server, indicating that it will not provide the future responses.
**"MessageError" is sent in response to the malformed or otherwise invalid messages. It is not used to report errors outside the messaging system; such errors are reported using the "Reply" message.
**"Fragment " is a subsequent message, continuing the previous one. The long messages can be split into fragments.Binary format
In the binary dumps the GIOP message can be easily recognised by the characteristic header:
# Four ASCII characters: G I O P
# The two bytes, defining first major (currently only 1) and then minor version numbers.
# One byte, defining the message flags. The least significant bit defines thebyte order (0 - big endian, 1 - little endian).
# One byte, defining the message type ("Reply", "Request", "Fragment" and so on).
# The four byte word, defining the message size (not counting the message header).Messages can also carry the arbitrary data fragments, identified by the standard integer tags. These additional data fragments are called service contexts and are used to extend the communication standard when necessary. There are standard
service context s to describe the thrown exception, to specify thecharset for representing the national characters and so on. It is possible to register the client and server side interceptors that add the specific service contexts to the messages being sent and also read the specific contexts, added by the similar interceptor on the remote side.Legal status of the GIOP abbreviation
CORBA ,IIOP and OMG are the registered marks of the Object Management Group and should be used with care. Differently, the GIOP is not the registered OMG trademark (see [http://www.omg.org/legal/tm_list.htm list of OMG marks] ). Hence in some cases it may be more appropriate just to say that the application uses or implements the GIOP-based architecture.ee also
*
DIIOP
*ESIOP
*HTIOP
*XIOP
*BIOP - Broadcast Inter-ORB ProtocolExternal links
* [http://www.omg.org/docs/formal/04-03-12.pdf The official CORBA and GIOP standard] (about 10 MB)
* [http://tele.informatik.uni-freiburg.de/Research/fmvdoos.htm Formalization and Validation of the General Inter-ORB Protocol (GIOP) Using Promela and SPIN]
* [http://citeseer.csail.mit.edu/cs?q=GIOP Citations from CiteSeer]
*Java RMI over IIOP [http://java.sun.com/products/rmi-iiop/ Overview] and [http://java.sun.com/javase/6/docs/technotes/guides/rmi-iiop/ Guide]
Wikimedia Foundation. 2010.