In addition to processing requests as a client, the connector
can act as a server that receives requests from external CORBA
clients. These requests invoke collaborations on the integration
broker, which, for example, can update data in an external
application.
This section describes the architecture of the connector when it
runs as a server. For details about the connector running as a
client, see Architecture of the
connector running as a client.
Figure 3 illustrates the
request flow when the connector runs as a server. In this scenario,
the connector executes a collaboration on behalf of a CORBA
client.
Figure 3. Request process when the
connector acts as a server

- When you first start the connector, all business objects that
have been configured as server-side objects are registered by the
connector with the ORB. For details about configuring a business
object as a server, see Understanding business objects.
- The CORBA client application sends a
method call request through the connector against a registered
server object.
- The connector converts the method call
to the verb that has been specified in the attribute ASI of the
registered CORBA server object. For details about the attribute ASI
of a business object, see Attribute-level ASI.
- The connector invokes the
excecuteCollaboration() method of the adapter's Agent
class. Based on the connector's BO_COLLAB_MAPPING
property, which associates a business object verb (Step 3) to a particular collaboration,
executeCollaboration() calls the appropriate collaboration
(business process). For details about the
BO_COLLAB_MAPPING property, see Configuring the connector.
- The integration broker sends data from the collaboration or
business process that was executed to the connector for the
external application (that is, the application with which the
collaboration is exchanging data; in Figure 3, the example of this
external application is Clarify).
- The connector of the external application sends the data to
that application.
- The application returns a message to the connector of the
external application (for example, Clarify, as shown in Figure 3).
- The connector of the external application forwards the message
to the integration broker.
- The integration broker forwards the message to the connector
acting as a CORBA server (the connector that invoked the
excecuteCollaboration() method in Step 4).
- An exception, if it has occurred, is sent to the CORBA client
application that initiated the original request (Step 2).
When running as a server, the connector performs business object
processing in a different manner than when running as a client.
This section describes how the different parts of the connector,
running as a server, process business objects, as illustrated in
Figure 4.
Figure 4. The connector for CORBA running
as a server

- When you start the connector, its Agent class performs the
following initialization processes:
- Instantiates the CORBA environment by initializing the
ORB.
- Passes information to the implementation classes about the
business objects that will be processed as server objects. To
determine if a business object is a server object, the connector
verifies that the BO ASI includes the attribute
object_type=CorbaImplObject.
- Registers with the ORB the implementation classes that
correspond to the business objects. You specify the implementation
class of a given business object in the
implementation_class ASI. Class definitions are stored in
the .jar file generated by the ODA when you create the
business objects. For details, see Creating and modifying business
objects.
- The Agent class sets up the factory, the instance of the
factory proxy object, or the connection objects, depending on how
the connector properties have been set. For details about connector
properties, see Connector-specific properties.
- The external CORBA client sends to the CORBA server business
object in the connector a request to invoke a collaboration. The
request, sent via the ORB, is in the form of input arguments of a
method.
- As described in step 3
and step 4:
- The connector creates a business object using the argument
values of the method.
- The connector then sets the verb on the business object, as
specified in the attribute ASI of the CORBA server business
object.
- Next, the connector calls the executeCollab() method
of the connector's Agent class.
- The executeCollab() method looks for the collaboration
specified in the BO_COLLAB_MAPPING property, a connector property
that maps the business object verb to a collaboration. If the
collaboration is found, the connector executes the collaboration.
If the collaboration is not found, an exception is raised. (For
return parameters, the connector creates the return proxy object
and also updates the in / out parameters).
- The data resulting from collaboration processing is then passed
back to the CORBA client application via the ORB.
