written 8.8 years ago by |
CORBA is a standard for Distributed Object Middleware defined by OMG (Object Management Group).
Conformance to the CORBA’s specifications enables development of heterogeneous application across all major hardware platforms and operating system.
OMG provides specification to encapsulate application data and business logic within objects called Distributed Components.
The Major Components of CORBA are as follows :
ORB( Object Request Broker):
1)It provides the communication and activation infrastructure for distributed object applications.
2)To make a request, client specifies the target object by using an Object Reference (OR).
3) When a CORBA Object is created, an OR is also created.
4) It is unique, immutable and opaque.
5) ORB Facilities communication transparency in terms of :
Object Location: The client has no knowledge of whether the target object is in process or out-process on same machine or different machine.
ii) Object Implementation: Here, the client does not know the language platform or hardware in which object is implemented.
iii) Object Execution State: Here, the client does not know whether the object is active or in-active. ORB transparently activates object when required by client.
iv) Object Communication Mechanism: ORB can use memory, RPC & TCP/IP for communication.
OMG Interface Definition Language (OMG-IDL):
An object i/ifs defines the requests that can be made by the object.
It is a declarative language which forces clear separation of i/ifs from object implementation.
Stubs & Skeletons:
A client side stub is a mechanism that effectively creates an issue request on behalf of a client.
While server side skeleton is a mechanism that delivers request to the CORBA object implementation.
As they are i/f-specific dispatching through stubs and skeletons is called Static Inovocation.
IDL Compiler:
- It generates static stubs and skeletons SI & SSI (Static Invocation/Skeletons from ilf definition)
It allows object invocation through SSI & SII.
IFR (Interface Repository):
- It allows system to be accessed and written programmatically at runtime so it is used in dynamic object invocation.
DII (Dynamic I/f Invocation ):
It allows client to generate request at run time.
DLL allows an ORB to deliver request to servants that have no compile-time knowledge of i/f it accesses.
Object Adapter(QA):
It serves as a Glue between CORBA Object Implementation and ORB.
It is an object that add up if of an object to the i/f expected by a caller.
There are two types of QA :
BOA(Basic QA):
BOA defines an object adapter which can be used for most conventional object implementation.
POA (Portable QA)
POA specifications provide portability for CORBA Server code.
Inter-ORB Protocol:
To support interoperability CORBA processes :
GIOP(General Inter-operable Protocol):
It defines common mechanism of communication between ORB’s in general forms.
It describes CDR (Common Character Data Representation) and message formats between ORB’s.
IIOP(Internet Interoperable Protocol)
IIOP provides full duplex, connection-oriented communication channel through TCP/IP Protocol.
It gives client an ability to access that object while hiding details of that object implementation and status.
- ORB if:
To decouple applications from implementations details if is defined.
Thus provides standard operations to initialize and shutdown ORB, convert OR to string and back.
IMR (Implementation Repository)
It contains information that allows an ORB to activate servers on demand.
The IMR maintains table that associates table name with start command.