CORBA

{

Common Object Request Broker Architecture

Vishal Singh (205111043)
Sanjeev Singh (205111046)




The Common Object Request Broker
Architecture is a
Standard defined by the object management
group that Enables software components
written in multiple computer languages and
running
on multiple computers to
work together.

CORBA


Fig - The global architecture of CORBA.

Overview
•

ORB is core of any COBRA Distributed System.

•

ORB is responsible for enabling communication
Between objects and their clients while hiding
issues related to distribution and heterogeneity.




Object Request Broker
CORBA use the remote object model in which
 the implementation of an object reside in the
address space of a server.
•

Objects and services are specified in the CORBA
Interface Definition Language(IDL).
•

Object Model


Fig - The general organization of a
CORBA system.

Object Model
Service

Description

Collection

Facilities for grouping objects into lists, queue, sets, etc.

Query

Facilities for querying collections of objects in a declarative manner

Concurrency

Facilities to allow concurrent access to shared objects

Transaction

Flat and nested transactions on method calls over multiple objects

Event

Facilities for asynchronous communication through events

Notification

Advanced facilities for event-based asynchronous communication

Externalization

Facilities for marshaling and unmarshaling of objects

Life cycle

Facilities for creation, deletion, copying, and moving of objects

Licensing

Facilities for attaching a license to an object

Naming

Facilities for systemwide name of objects

Property

Facilities for associating (attribute, value) pairs with objects

Trading

Facilities to publish and find the services on object has to offer

Corba Services

Persistence

Relationship

Facilities for expressing relationships between objects

Security

Mechanisms for secure channels, authorization, and auditing

Time



Facilities for persistently storing objects

Provides the current time within specified error margins

Fig - Overview of CORBA services.
Communication
Object Invocation Models
Request type

Failure semantics

Description

Synchronous

Caller blocks until a response is
returned or an exception is
raised

One-way

Best effort delivery

Caller continues immediately
without waiting for any response
from the server

Deferred
synchronous



At-most-once

At-most-once

Caller continues immediately
and can later block until
response is delivered

Fig - Invocation models supported in CORBA.
1.

Event and Notification
Services
Fig - The logical organization of suppliers
and
 consumers of events, following the push-style
model.

2.

Event and Notification
Services



Fig - The pull-style model for event delivery in CORBA.
1.


Fig - CORBA's callback model for
asynchronous method invocation.

Messaging
2.

Messaging


Fig - CORBA'S polling model for asynchronous method
invocation.
Message type

Originator

Description

Request

Client

Contains an invocation request

Reply

Server

Contains the response to an invocation

LocateRequest

Client

Contains a request on the exact location of an object

LocateReply

Server

Contains location information on an object

CancelRequest

Client

Indicates client no longer expects a reply

CloseConnection

Both

Indication that connection will be closed

Interoperability

MessageError

Contains information on an error

Fragment



Both
Both

Part (fragment) of a larger message

Fig - GIOP message types.
Process

{

Client- simple one
Server





IDL specification are compiled into a proxy
Marshall invocation info
Un-Marshall corresponding reply
Proxies are just to connect to underlying ORB

Client Process


It is a mechanism by which an invocation can
intercepted on its way from client to server and
adopt it



Request level interceptor
Message level interceptor



Interceptor
Logical placement of interceptor









It is just like a wrapper
Responsible for providing consistent image of
what an object is
It provides mechanism such that client can see
that program is just an object
POA are responsible to show server-side code
as object to client
Server side code need not to worry about
underlying ORB

Object adapter
Portable object adapter

a) POA supporting multiple servant
b) POA supporting single servant







To facilitate agent based system CORBA adopts a model in which
different kind of system can co-operate
CORBA provides standard interface that has to be followed
Agent system - creation, execution, transfer, termination
Each agent system has its profile
Region, finder

Agents
CORBA's overall model of agents,
agent systems, and regions



Object reference
Character based

Naming









How objects are referenced?
Client side object reference and ORB object
reference are different
A reference of X can not be passed to Y because
of address space
So marshaling is used by underlying ORB for
this
ORB has language independent reference
called IOR ( interoperable object reference)

Object reference
The organization of an IOR with
specific information for IIOP








Starts with repository identifier
Most important part is tagged profile
Profile ID
Host field
Port field
Object key
components

IOR details




Binding request is first sent to implementation
repository
It acts as a registry by which reference objects
can be located and activated

Indirect binding
Indirect binding example
CORBA naming service(char
based)





Offered by CORBA to lookup object reference using characterbased names
(id,kind) pair where both are string
(vishal,dir) as an example






Object groups - replicate objects into object
groups
Identical copies of same object
Replication is transparent to client
But how object group are referenced ?

Fault tolerance
IOGR (interoperable object group reference)





IOGR contains multiple reference to different
objects (of same type)
IOR contains multiple reference to same object
ORB binds IOGR to one of the replicas
A possible organization of an IOGR for an
object group having a primary and backups.
An example architecture
Security
The general organization for secure object invocation in CORBA.







Application level objects are unaware of
security mechanism
At binding time ORB decides which security
service is to be used at client side
Selection of service is done by security policy
Security policies are done by policy objects

Secure object invocation

1.
2.

Two different interceptors
Access control interceptor- checks the rights
Secure invocation interceptor- message
protection and it is able to encrypt the
request and response also

Replaceable security
service
The role of security interceptors in
CORBA.
Corba

Corba

  • 1.
    CORBA { Common Object RequestBroker Architecture Vishal Singh (205111043) Sanjeev Singh (205111046)
  • 2.
      The Common ObjectRequest Broker Architecture is a Standard defined by the object management group that Enables software components written in multiple computer languages and running on multiple computers to work together. CORBA
  • 3.
     Fig - Theglobal architecture of CORBA. Overview
  • 4.
    • ORB is coreof any COBRA Distributed System. • ORB is responsible for enabling communication Between objects and their clients while hiding issues related to distribution and heterogeneity.   Object Request Broker
  • 5.
    CORBA use theremote object model in which  the implementation of an object reside in the address space of a server. • Objects and services are specified in the CORBA Interface Definition Language(IDL). • Object Model
  • 6.
     Fig - Thegeneral organization of a CORBA system. Object Model
  • 7.
    Service Description Collection Facilities for groupingobjects into lists, queue, sets, etc. Query Facilities for querying collections of objects in a declarative manner Concurrency Facilities to allow concurrent access to shared objects Transaction Flat and nested transactions on method calls over multiple objects Event Facilities for asynchronous communication through events Notification Advanced facilities for event-based asynchronous communication Externalization Facilities for marshaling and unmarshaling of objects Life cycle Facilities for creation, deletion, copying, and moving of objects Licensing Facilities for attaching a license to an object Naming Facilities for systemwide name of objects Property Facilities for associating (attribute, value) pairs with objects Trading Facilities to publish and find the services on object has to offer Corba Services Persistence Relationship Facilities for expressing relationships between objects Security Mechanisms for secure channels, authorization, and auditing Time  Facilities for persistently storing objects Provides the current time within specified error margins Fig - Overview of CORBA services.
  • 8.
    Communication Object Invocation Models Requesttype Failure semantics Description Synchronous Caller blocks until a response is returned or an exception is raised One-way Best effort delivery Caller continues immediately without waiting for any response from the server Deferred synchronous  At-most-once At-most-once Caller continues immediately and can later block until response is delivered Fig - Invocation models supported in CORBA.
  • 9.
    1. Event and Notification Services Fig- The logical organization of suppliers and  consumers of events, following the push-style model. 
  • 10.
    2. Event and Notification Services  Fig- The pull-style model for event delivery in CORBA.
  • 11.
    1.  Fig - CORBA'scallback model for asynchronous method invocation. Messaging
  • 12.
    2. Messaging  Fig - CORBA'Spolling model for asynchronous method invocation.
  • 13.
    Message type Originator Description Request Client Contains aninvocation request Reply Server Contains the response to an invocation LocateRequest Client Contains a request on the exact location of an object LocateReply Server Contains location information on an object CancelRequest Client Indicates client no longer expects a reply CloseConnection Both Indication that connection will be closed Interoperability MessageError Contains information on an error Fragment  Both Both Part (fragment) of a larger message Fig - GIOP message types.
  • 14.
  • 15.
        IDL specification arecompiled into a proxy Marshall invocation info Un-Marshall corresponding reply Proxies are just to connect to underlying ORB Client Process
  • 16.
     It is amechanism by which an invocation can intercepted on its way from client to server and adopt it  Request level interceptor Message level interceptor  Interceptor
  • 17.
  • 18.
         It is justlike a wrapper Responsible for providing consistent image of what an object is It provides mechanism such that client can see that program is just an object POA are responsible to show server-side code as object to client Server side code need not to worry about underlying ORB Object adapter
  • 19.
    Portable object adapter a)POA supporting multiple servant b) POA supporting single servant
  • 20.
         To facilitate agentbased system CORBA adopts a model in which different kind of system can co-operate CORBA provides standard interface that has to be followed Agent system - creation, execution, transfer, termination Each agent system has its profile Region, finder Agents
  • 21.
    CORBA's overall modelof agents, agent systems, and regions
  • 22.
  • 23.
         How objects arereferenced? Client side object reference and ORB object reference are different A reference of X can not be passed to Y because of address space So marshaling is used by underlying ORB for this ORB has language independent reference called IOR ( interoperable object reference) Object reference
  • 24.
    The organization ofan IOR with specific information for IIOP
  • 25.
           Starts with repositoryidentifier Most important part is tagged profile Profile ID Host field Port field Object key components IOR details
  • 26.
      Binding request isfirst sent to implementation repository It acts as a registry by which reference objects can be located and activated Indirect binding
  • 27.
  • 28.
    CORBA naming service(char based)    Offeredby CORBA to lookup object reference using characterbased names (id,kind) pair where both are string (vishal,dir) as an example
  • 29.
        Object groups -replicate objects into object groups Identical copies of same object Replication is transparent to client But how object group are referenced ? Fault tolerance
  • 30.
    IOGR (interoperable objectgroup reference)    IOGR contains multiple reference to different objects (of same type) IOR contains multiple reference to same object ORB binds IOGR to one of the replicas
  • 31.
    A possible organizationof an IOGR for an object group having a primary and backups.
  • 32.
  • 33.
    Security The general organizationfor secure object invocation in CORBA.
  • 34.
        Application level objectsare unaware of security mechanism At binding time ORB decides which security service is to be used at client side Selection of service is done by security policy Security policies are done by policy objects Secure object invocation
  • 35.
     1. 2. Two different interceptors Accesscontrol interceptor- checks the rights Secure invocation interceptor- message protection and it is able to encrypt the request and response also Replaceable security service
  • 36.
    The role ofsecurity interceptors in CORBA.