CORBA
defines a model that specifies interoperability
between distributed objects on a network in a way
that is transparent to the programmer. It achieves
this by defining ways for specifying the externally
visible characterestics of a distributed object in a
way that is implementation-independant.
This
model is based on clients requesting the services from distributed
objects or servers through a well-defined
interface, by issuing requests to the objects in the
form of events. An event carries information about an operation
that needs to be performed including the object name
(called an object reference) of the service provider and the actual
parameters if any.
CORBA
automatically handles a lot of network programming
tasks such as object registration, object location,
object activation, request demultiplexing, frame and
error-handling, marshalling and operation dispatching.
CORBA
objects are accessed through the use of an interface.
OMG's Interface Definition Language (IDL for short)
is used to define interfaces, their attributes,
methods and parameters to those methods within the
interface.
The
central component of CORBA is the Object Request
Broker (ORB for short). This component provides all
the communication infrastructure needed to identify
and locate objects, handle connection management and
deliver data and request communication. One CORBA
object never talks directly with another. Instead,
the object requests for an interface to the ORB
running on the local machine. The local ORB then
passes the request to an ORB on the other machine.
The remote ORB then locates the appropriate object
and passes back an object reference to the requester.
The
functions of the ORB are as follows:
|
Lookup and
instantiate objects on remote machines |
|
Marshal
parameters from one application object to the
other |
|
Handle
security issues across machine boundaries |
|
Retrieve and
publish data on objects on local machine for
another ORB to use |
|
Invoke
methods on a remote object using static
method invocation |
|
Invoke
methods on a remote object using dynamic
method invocation |
|
Automatically
instantiate objects that are'nt currently
running |
|
Route
callback methods to the appropriate local
object being managed |
|
Communicate
with other ORBs using Internet Inter-ORB
Protocol ( IIOP ) |
The other
components that make up a CORBA application are
Object Services, Application Interfaces, Domain
Interfaces and Common Facilities.