Common Object Request Broker Architecture (CORBA)
Common Object Request Broker Architecture (CORBA)
Broker Architecture
(CORBA)
By:
Naresh Nagwani
NIT Raipur
Introduction
• Language Independence
• Defines Object Interfaces
• Hides underlying object implementation
• Language mappings exist for C, C++, Java,
Cobol, Smalltalk, and Ada
Interface Definition Language
• IDL is the language used to describe object
interfaces, the same basic idea as a protocol
definition file for RPC.
• IDL is a declarative language, it only
describes object interfaces.
• IDL is language neutral - there are
mappings for many object oriented
languages (C++, Smalltalk, Java).
Interface Definition Language (IDL)
module <identifier> Defines a container
{ (namespace)
interface <identifier> [:inheritance]
{
<type declarations>; Defines a
<constant declarations>; CORBA object
<exception declarations>;
<attribute declarations>;
[<op_type>] <identifier>(<parameters>)
[raises exception][context];
} Defines a
} method
IDL Compiler
IDL
Definitions 1. Define objects using
IDL
2. Run IDL file through
IDL compiler
3. Compiler uses language
IDL mappings to generate
Compiler programming language
specific stubs and
skeletons
Stubs Skeletons
IDL Compiler
IDL
Compiler
Object Adapter
Object Request Broker (ORB)
• What is it?
• Architecture
• Request Handling
• Scenario
• CORBA Services
• CORBA Facilities
Object Request Broker
• The ORB is an abstract entity that acts as the
middleman in all remote method invocations.
• The ORB finds a server that can handle a method
invocation, passes the request to the server,
receives the response and forwards it to the
client.
• The functions handled by an ORB are actually
implemented in both client and server.
What is it?
Hardware
Client / Object Interaction
ORB ORB
TCP/IP
TCP/IP
ATM
ATM
OSI
IPX
OSI
IPX
Network
ORB Architecture
Interface IDL Implementation
Repository Compiler Repository
IDL
DSI
IDL ORB Skeleton
DII
Stub Interface
Object Adapter
Object Adapter
• Static invocation
interface (SII)
Client • Marshals application
data into a common
packet-level
representation
– Network byte order
IDL (little-endian or big-
Stub endian)
– Size of data types
IDL Skeleton
• Demarshals the
packet-level
representation back Object (servant)
into typed data that is
meaningful to an
application IDL
– Network byte order Skeleton
(little-endian or big-
endian)
– Size of data types
Dynamic Invocation Interface
• Dynamically issue requests to objects
without requiring IDL stubs to be
linked in
Client • Clients discover interfaces at run-
time and learn how to call them
Steps:
2. Obtain interface name
3. Obtain method description (from
DII interface repository)
4. Create argumentObject
list Adapter
5. Create request
6. Invoke request
Dynamic Skeleton Interface
Server Application
POA
Incoming
Request ORB POA Servants
POA
Scenario
Interface IDL Implementation
Repository Compiler Repository
IDL
DSI
IDL ORB Skeleton
DII
Stub Interface
Object Adapter