� � � � � � � � � � � � �
� � � � � � � � � � � � � ��
� � � � � � � � � � � � � ��
� � � � � � � � � � � � � ��
SEC. 9.1 CORBA 507
������������������������������������������������������������������������������� �������������������������������������������������������������������������������
Message type Originator Description
�������������������������������������������������������������������������������
Request Client Contains an invocation request
�������������������������������������������������������������������������������
Reply Server Contains the response to an invocation
�������������������������������������������������������������������������������
LocateRequest Client Contains a request on the exact location of an object
�������������������������������������������������������������������������������
LocateReply Server Contains location information on an object
�������������������������������������������������������������������������������
CancelRequest Client Indicates client no longer expects a reply
�������������������������������������������������������������������������������
CloseConnection Both Indication that connection will be closed
�������������������������������������������������������������������������������
MessageError Both Contains information on an error
���������������������������������������������������������������������������������
Fragment Both Part( fragment) of a larger message
Figure 9-9. GIOP message types.
request, but it is usually caused by a timeout in the client’ s application. It is important to note that canceling a request does not imply that the associated request will not be carried out. It is up to the client’ s application to cope with this situation.
In GIOP, a client always sets up a connection to a server. Servers are expected to only accept or reject incoming connection requests, but will not by themselves set up a connection to a client. However, both a client and a server are entitled to close a connection, for which they can send a CloseConnection message to the other communicating party.
If a failure occurs, the other party is notified by sending a message of type MessageError. Such a message contains the header of the GIOP message that caused the failure.( This approach is similar to ICMP messages in the Internet protocol that are used to return error information when something went wrong. In that case, the header of the IP packet that caused an error is sent as data in the ICMP message.)
Finally, GIOP also allows the various request and reply messages to be fragmented. In this way, invocations requiring that much data be shipped between a client and a server can easily be supported. Fragments are sent as special Fragment messages identifying the original message and allowing reassembly of that message at the receiver’ s side.
9.1.3 Processes
CORBA distinguishes two types of processes: clients and servers. An important design goal of CORBA is to make clients as simple as possible. The underlying thought is that it should be easy for application developers to make use of existing services as implemented on the servers.
Servers, on the other hand, were initially left open to a variety of