CORBA uses a broker, or intermediary, to handle requests
between clients and servers in the system. The broker chooses the best server
to meet the client's request and separates the interface that the client sees from the implementation of
the server.
The broker, known as the ORB, intercepts client method calls and is responsible
for finding objects that can implement requests, passing them parameters,
invoking their methods, and returning results. The client does not need to
know where the object is located, its programming language, its operating
system, or any other system aspects that are not part of the object's interface.
In this way, the ORB provides interoperability between applications on
different machines in heterogeneous distributed environments, and interconnects
multiple object systems.
The CICS® ORB implements the following level of function:
- Support for CORBA Version 2.3, except for:
- Support for IIOP 1.2—including
GIOP 1.2 fragments.
- Support for both inbound and outbound IIOP requests. IIOP applications
can act as both client and server.
- Support for transactional objects. CICS method invocations
may participate in Object Transaction Service (OTS) distributed transactions.
If a client calls an IIOP application within the scope of an OTS transaction,
information about the transaction flows as an extra parameter on the IIOP
call. If the client ORB sends an OTS Transaction Service Context and the target
stateless CORBA object implements CosTransactions::TransactionalObject, the object is treated as transactional.
Note: An
OTS transaction is a distributed unit of work, not a CICS transaction
instance or resource definition. For a description of a CICS transaction,
see
CICS transactions.
ORB function is implemented in CICS by:
- The CICS sockets domain listener
- The CICS IIOP request receiver
- The CICS IIOP request processor