Describe the structure and components of the CORBA programming model.
CORBA Programming Model Review
Before jumping into a discussion of the IDL-to-Java mapping of client and server side code, we will briefly review the overall structure of the CORBA programming model, of which that code is a part.
As you should already know, when developing a CORBA system, you will use code supplied by a CORBA vendor, code generated by an IDL compiler, and code you yourself write.
To develop such a system successfully, you need to understand which pieces of code fall in which category and how to tie them together.
Vendor-supplied components
The vendor-supplied ORB is the communications layer of the system. ORB code on both the client and server sides functions as a unitary bus on top of which the client and server run.
The object adaptor (OA) is also provided by the vendor, and mediates between the ORB and CORBA objects. This extra layer of indirection allows for the management of CORBA objects.
The Object Adaptor is responsible for activating and deactivating CORBA objects. There are many ways to do this:
for example, all client requests could be directed to the same server process, or they could each be given a separate server process.
Object activation is covered in depth later in
this course, when we discuss both the newer portable object adaptor (POA) and the older deprecated basic object adaptor (BOA).
IDL-generated components
Stubs and skeletons provide the plumbing for data marshalling and unmarshalling. Stubs serve as client-side proxies for CORBA objects.
Skeletons provide the framework for hooking actual language-specific implementation objects up to the object adaptor, and hence to the ORB as well.
Stubs and skeletons are generated by the IDL compiler, and are specific to particular IDL interfaces. Just as for every IDL interface a corresponding Java interface is generated,
so too Java stub and skeleton classes are generated for that IDL interface.
Developer-written components
The CORBA developer writes the actual client and server code. The server provides some desired system functionality and is accessed by clients.
In the next lesson, you will identify the stub and skeleton Java classes that the IDL compiler will generate from an IDL interface.
Inter-ORB protocols
The IIOP specification includes the following elements:
Transport management requirements
a) connection and disconnection requirements; b) roles for object client and object server in making and unmaking connections
Definition of common data representation
a) a coding scheme for marshalling and unmarshalling data of each IDL data type