CORBA ARCHITECTURE

Architecture Components 
  

Object Request Broker ( ORB) Interface Definition Language (IDL) CORBA Communication Model CORBA Object Model ( BOA- Basic Object Adapters) 

 

Role of Client and Server Client stub and Server Skelton CORBA services and facilities

Object Request Broker ( ORB)  

 

When an application component wants to use a service provided by another component, it obtains an object reference. It should be obtained by the client After obtaining this the component can call methods in the object ORBs responsibility is to resolve request for object references and enable to establish connection.

Marshaling .

the communication between components is platform-independent.Platform Independence  A product of the marshaling/unmarshaling process is that. because parameters are converted upon transmission into a platformindependent format (the on-the-wire format is provided as part of the CORBA specification) and converted into a platform-specific format upon reception. .

the ORB ensures that the server is ready to receive the request. the ORB locates the corresponding object implementation (the server) on behalf of the client. its responsibilities are as follows:  Given an object reference from a client.ORB Summary  To summarize the purpose of the ORB. .  When the server is located.

.ORB Summary  The ORB on the client side accepts the parameters of the method being invoked and marshals (see the next section) the parameters to the network. see the next section) the parameters from the network and delivers them to the server.  The ORB on the server side unmarshals (again.

 The major benefit offered by the ORB is its platform-independent treatment of data. . if any. parameters can be converted on-the-fly between varying machine formats as they are marshaled and unmarshaled.ORB Summary  Return parameters. are marshaled/unmarshaled in the same way.

which can map to a C++ long (depending on the platform) or to a Java int.Interface Definition Language (IDL)    It is the language used to define interfaces between application components. not implementations. the IDL long type is a 32-bit signed integer quantity. . it can define only interfaces.  For example. The IDL specification is responsible for ensuring that data is properly exchanged between dissimilar languages. IDL is not a procedural language.

and Smalltalk. . Java. C++. A language mapping is a specification that maps IDL language constructs to the constructs of a particular programming language. COBOL. It achieves this language independence through the concept of a language mapping.Interface Definition Language     The IDL language is part of the standard CORBA specification and is independent of any programming language. including C. The OMG has defined a number of standard language mappings for many popular languages.

.CORBA Communication Model     Typically. In this age of the Internet. perhaps the most common transport protocol in use is TCP/IP (Transmission Control Protocol/Internet Protocol). a computer network consists of systems that are physically connected This physical layer provides the medium through which communication can take place. Somewhere above the physical layer lies the transport layer. which involves protocols responsible for moving packets of data from one point to another.

a standard for communication between various CORBA ORBs and components. GIOP-based protocols exist for TCP/IP and DCE (the Open Software Foundation's Distributed Computing Environment protocol).Inter-ORB Protocols   The CORBA standard specifies what is known as the General Inter-ORB Protocol (GIOP). which specifies. on a high level. .

The Internet Inter-ORB Protocol (IIOP) is a specialization of the GIOP. IIOP is the standard protocol for communication between ORBs on TCP/IP based networks. . known as the Internet Inter-ORB Protocol (IIOP).  DEF:.Inter-ORB Protocols  the GIOP-based protocol for TCP/IP networks.

The CORBA Object Model  Three of the major differences between the CORBA object model and traditional models lie in  CORBA's "semi-transparent" support for object distribution   its treatment of object references its use of what are called object adapters-particularly the Basic Object Adapter (BOA). .

CORBA must offer a contingency to handle such possibilities.Object Distribution  To a CORBA client. .  It does so by offering a set of system exceptions. and so on). server crash. a remote method call looks exactly like a local method call. which can be raised by any remote method. because of the use of client stubs  Because object distribution brings with it more potential for failure (due to a network outage.

the object itself remains "in place" while an object reference for that object is passed. .Object References  passing by reference  When an object is passed by reference. Operations on the object through the object reference are actually processed by the object itself.

.

not by the original object.passing by value  When an object is passed by value. Operations on that object's copy are processed by the copy. where a new copy of the object is instantiated. . the object's state is copied and passed to its destination.

.

 One important aspect of the CORBA object model is that all objects are passed by reference .

Basic Object Adapters (BOAs)  The CORBA standard describes a number of what are called object adapters.  provides three sample object adapters: the Basic Object Adapter (BOA). both of which are useful for accessing objects in persistent storage. whose primary purpose is to interface an object's implementation with its ORB. the Library Object Adapter and ObjectOriented Database Adapter. .

the CORBA object's interface to the ORB. These functions range from user authentication to object activation to object persistence. . The BOA provides CORBA objects with a common set of methods for accessing ORB functions. in effect. The BOA is.

. at least where that object is concerned.CORBA Clients and Servers   In a CORBA application. Being a CORBA server means that the component (the server) executes methods for a particular object on behalf of other components (the clients). any component that provides an implementation for an object is considered a server.

.

Client callback method  Client callback method. or simply callback. Callbacks essentially make a client . is a generic term given to a method that is implemented by a client and called by a server.

.

Client stubs and server skeletons serve as a sort of "glue" that connects languageindependent IDL interface specifications to language-specific implementation code. he or she processes the resulting IDL files with an IDL compiler. however. The IDL compiler generates what are known as client stubs and server skeletons. the client stub methods simply communicate with the ORB to marshal and unmarshal parameters. . Rather than execute the server functionality.Stubs and Skeletons     After a developer creates component interface definitions using IDL.

is a small piece of code that makes a particular CORBA server interface available to a client. is a piece of code that provides the "framework" on which the server implementation code for a particular interface is built. A server skeleton. .  A client stub. which is generated by the IDL compiler. also generated by the IDL compiler.

Rather than being statically linked to server interfaces.Dynamic Invocation Interface    you can build CORBA clients without using client stubs at all. using the DII significantly increases the complexity of a client application and is probably best left for a certain niche of applications. . such clients can discover server interfaces dynamically and use services not even conceived of at the time the clients were built. However. using what is known as the Dynamic Invocation Interface (DII).

Sign up to vote on this title
UsefulNot useful