0% found this document useful (0 votes)
263 views35 pages

Common Object Request Broker Architecture (CORBA)

CORBA allows for the development of distributed, portable, and interoperable applications by defining an Interface Definition Language (IDL) to describe object interfaces and an Object Request Broker (ORB) that enables communication between objects by transparently handling remote method invocations across a network. The ORB hides the location and implementation details of objects from clients, allowing objects to be accessed in the same way as local objects through object references and stubs/skeletons generated from IDL definitions.

Uploaded by

om18sahu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
263 views35 pages

Common Object Request Broker Architecture (CORBA)

CORBA allows for the development of distributed, portable, and interoperable applications by defining an Interface Definition Language (IDL) to describe object interfaces and an Object Request Broker (ORB) that enables communication between objects by transparently handling remote method invocations across a network. The ORB hides the location and implementation details of objects from clients, allowing objects to be accessed in the same way as local objects through object references and stubs/skeletons generated from IDL definitions.

Uploaded by

om18sahu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 35

Common Object Request

Broker Architecture
(CORBA)

By:
Naresh Nagwani
NIT Raipur
Introduction

• What is the purpose / goals of CORBA?


• How to meet goals?
• Conclusion
Object Management Group
• OMG creates specifications, not
implementations.
• Some Key Specifications:
– OMA: Object Management Architecture.
– CORBA: Common Object Request Broker
Architecture.
OMA Object Model
• Objects provide services.
• Clients makes a request to an object for a
service.
• Client doesn’t need to know where the
object is, or anything about how the object
is implemented!
• Object interface must be known (public) -
provides signature for each object method.
Object References

• Clients don’t have objects, they just have


object references.

• Object references can be persistent (saved


for use later).
Accessing Remote Methods

• Clients can call remote methods in 2 ways:


– Static Invocation: using stubs built at compile
time (just like with RPC).
– Dynamic Invocation: actual method call is
created on the fly. It is possible for a client to
discover new objects at run time and access the
object methods.
What is the purpose / goals of CORBA?

• Enable the building of plug and play


component software environment
• Enable the development of portable, object
oriented, interoperable code that is
hardware, operating system, network, and
programming language independent
How to meet goals?

• Interface Definition Language (IDL)


• Object Request Broker (ORB)
Interface Definition Language (IDL)

• 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

• Compiles IDL definition into stubs and


skeletons
• Uses OMG specified language mappings
to translate IDL into a language specific
implementation

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?

• Implementation of CORBA specification


• Middleware product
• Conceptual Software Bus
• Hides location and Application
implementation details
Middleware
about objects
OS Drivers

Hardware
Client / Object Interaction

Client Obj Impl Client Obj Impl


IDL IDL IDL IDL

ORB ORB
TCP/IP

TCP/IP
ATM

ATM
OSI

IPX

OSI

IPX
Network
ORB Architecture
Interface IDL Implementation
Repository Compiler Repository

Client OBJ Object (servant)


Ref

IDL
DSI
IDL ORB Skeleton
DII
Stub Interface
Object Adapter

GIOP/IOOP ORB Core


Interface Repository
Interface
Repository

• Database of object definitions


• Contains metadata about each object
• Allows for introspection
• Allows clients to discover interfaces at run-time
• Used in support of dynamic invocations
Object Adapter
Interface Repository

• An IR provides persistent storage of IDL


interface declarations.
• IR serves 2 purposes:
– tool for programmers. Basically a database of
object interfaces and inheritance hierarchy.
– Support dynamic invocation interface (DII).
Implementation Repository
Implementation
Repository

• Contains information that allows the ORB


to locate and activate object
implementations
• Provides information about the classes a
server supports, the objects that are
instantiated, and their IDs
Object Adapter
ORB Core

• Provides mechanism for transparently


communicating client requests to target
object implementations
• Makes client requests appear to be local
procedure calls
• GIOP – General Inter-ORB Protocol
• IIOP – Internet Inter-ORB Protocol

Object Adapter

GIOP/IOOP ORB Core


ORB Interface

Client Object (servant)

• Provides helper functions


ORB • Converting object
Interface references to strings
Object Adapter
• Creating argument
lists for requests made
through DII
IDL Stub

• 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 side analogue to DII


• Allows an ORB to deliver Object (servant)
requests to an object
implementation that does
not have compile-time
knowledge of the type of DSI
object it is implementing
Object Adapter
Object Adapter
• Accept requests for service on behalf
of the server’s objects
• Demultiplexes requests to the correct
servant Object (servant)
• Dispatches the appropriate operation
upcall on the servant
• Registers classes it supports and their
run-time instances with the IDL
implementation repository DSI
Skeleton
• Portable Object Adapter (POA)
• policies control object behavior Object Adapter
(ie. LifespanPolicy)
• Instance of the adapter design pattern
Object Adapters

• Object Adapters provide a layer between


object method requests and the servers that
service the requests. Functions include:
– generation of object references
– starting up the actual server program(s)
– handling security
Basic Object Adapter

• Simplest Object Adapter, can support a


number of different implementations:
– one server that always is running
– one program that can handle requests for
multiple objects.
– one program per object implementation.
– one program for each object method.
Object Reference

Client OBJ Object (servant)


Ref

• Interoperable Object Reference (IOR)


• Uniquely identifies each object
• Contents
• Type Name (repository ID)
Object Adapter
• Protocol and Address Details
• Object Key (object adaptor name, object name)
Request Handling

Server Application
POA

Incoming
Request ORB POA Servants

POA
Scenario
Interface IDL Implementation
Repository Compiler Repository

Client OBJ Object (servant)


Ref

IDL
DSI
IDL ORB Skeleton
DII
Stub Interface
Object Adapter

GIOP/IOOP ORB Core


CORBA Services
• Provide basic infrastructure functionality
• Currently there are 15 defined services
– Naming - maps human names to object references
(White Pages)
– Event - provides both a push and pull event model
– Object Trader - discover objects based on the services
they provide (Yellow Pages)
– Transactions – allows distributed objects to participate
in atomic transactions
CORBA Facilities
• Provide higher-level functionality at the
application level
• Provide standard components that can be used
“off-the-shelf”
• Two Categories
– Horizontal – user interface, information management,
systems management, and task management
– Vertical – domain based, telecommunications, financial
services

You might also like