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.
