Bionic Buffalo Tech Note #20: Quick Start Guide to Writing CORBA Client Applications
When an application is run, the distinction between application
ORBs and shared-process ORBs must
be understood.
An application
ORB is linked to an application, the same as any other library. The ORB
runs in the same process as the main application, although it may create separate threads
for some activities. Bionic Buffalo application
ORBs include sudan, gibraltar,
egypt, and taiwan.
A shared-process
ORB runs in its own process, and serves the requirements of one or
more separate and distinct application processes. It uses either networking or inter-process
communication to communicate with a library linked to the application processes. Bionic
Buffalo shared process
ORBs include mexico and jordan.
Since shared process
ORBs are separate programs, they must be started separately when running an
application which uses them. This implies an extra step. Usually, a shared process
ORB can be started
using a subroutine delivered with the
ORB, so (for testing, at least) the shared process ORB can be
started by the application itself.
Beyond the Basics
The procedures described above may be used for simple client applications. In addition, CORBA has
other facilities which may be of interest to programmers, and which can be used to enhance the above
procedures. Some of these facilities include:
The interface repository is a database of interface, operation, attribute, data structure, and other
definitions, which can be described in IDL. Given an object reference, it is possible to obtain the
definitions of its operations, attributes, and all related data structures.
Although an ORB might be usable in real-time applications without them, the real time extensions
give an application finer and more direct control over such things as the thread priorities used
internally by an ORB.
The security service can provide authentication, encryption, non repudiation, and other related
capabilities. These capabilities can operate transparently, or applications can exercise control over
their operation.
The messaging APIs allow control of various aspects of the way messages are passed among client
and server ORBs; these enable control of quality of service, asynchronous messaging (with polling
or callback), and specification of routing mechanisms
Fault tolerance
allows replication of servers and automatic or managed recovery from failure
conditions. Client applications specify some of the operational parameters in such an environment.
Transaction processing
allows clients to group multiple operation invocations, possibly backing out
Page 10 of 11