background image
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. 
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