WWW: Beyond the Basics

20 Common Object Request broker Architecture (CORBA)

20.5 Structure of CORBA 2.0

Figure I shows the various components that form CORBA 2.0 ORB. This section gives a brief description of each component and its functions in CORBA. The components are designed keeping in mind that CORBA provides both static and dynamic invocation of methods.

Fig 1: Components of CORBA

20.5.1 Components on the Client Side

Client IDL Stubs provide static interfaces to object services. These stubs define how clients invoke corresponding services on the servers. From a clients perspective these stubs are local proxies for remote server objects. A client must have an IDL stub for each interface it uses on the server. The stub includes code to perform marshalling i.e., encoding to convert the interfaces and parameters into flattened message formats to transfer it over the network to the server. It includes header files that enables to invoke a method from a higher level programming language without worrying about any details about low level details to obtain a remote service

Dynamic Invocation Interface (DII) is used for dynamic method invocation. CORBA defines Application Programming Interfaces (API) for looking up the metadata that defines the server interface, generating the parameters, issuing the remote call and getting back the parameters.

Interface Repository is a dynamic metadata repository of the ORBs which contains machine readable versions of the IDL-defined interfaces. API's allow to obtain, store and modify the descriptions of all the server components interfaces the methods they support and the parameters they require. Thus, the interface repository allows every component that exists on ORB to have self-described interfaces.

ORB Interface consists of few API's for local services in client. Ex. CORBA provides API's to convert an object reference to a string and vice versa. These calls are useful to store as well as communicate object references across the network.

20.5.2 Components on the Server side

Server does not distinguish between static and dynamic method invocations. In both cases the ORB locates the server object adapter, transmits the parameters and transfers the control to the object implementation.

Sserver IDL Stubs provides static interfaces to each object exported by the server. The stubs are created using an IDL compiler.

Dynamic Skeleton Interface (DSI) provides run time binding for servers which need to handle incoming method calls for components that do not have IDL stubs. Dynamic Skeleton Interface looks at parameter values in an incoming message to figure out the object and the method. DSI is the server equivalent of DII. It can receive both static and dynamic method invocations.

Object Adapter sits on top of the ORB core communication services and accepts requests on behalf of the server objects. It interacts with the top layer of ORB core communication stack, peels off the request and hands it over to the interface stub. It provides run-time environment for creating object references and passing parameters. It also registers the server classes with the implementation repository. It is a requirement as per CORBA specification that each ORB must support a Basic Object Adapter. Servers may support more than one object adapters.

Implementation Repository provides a run-time repository of information about the classes a server supports, the objects that are instantiated and the object references. It has all the run-time information about the invocation of methods on the client side.

ORB Interface is similar to the client side which has certain API's to support local services.

[PREV][NEXT][UP][HOME][VT CS]

Copyright © 1996 Virginia Polytechnic Institute & State University
All Rights Reserved

Padmapriya Vasudevan priya@csgrad.cs.vt.edu
Last modified: Sun Sep 22 21:16:15 1996