Professional Documents
Culture Documents
Corba: Common Object Request Broker Architecture
Corba: Common Object Request Broker Architecture
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
Overview
ORB is responsible for enabling communication Between objects and their clients while hiding issues related to distribution and heterogeneity.
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
Object Model
Description Facilities for grouping objects into lists, queue, sets, etc. Facilities for querying collections of objects in a declarative manner Facilities to allow concurrent access to shared objects
Transaction
Event Notification Externalization
Life cycle
Licensing Naming Property Trading Persistence
Relationship
Corba Services
Security
Time
One-way
Deferred synchronous
At-most-once
1.
2.
1.
Messaging
2.
Messaging
Description Contains an invocation request Contains the response to an invocation Contains a request on the exact location of an object Contains location information on an object
CancelRequest
CloseConnection MessageError Fragment
Client
Both Both Both
Interoperability
Process
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
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
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
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
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
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 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
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