You are on page 1of 16

Common Object

Request Broker
Architecture
taking objects a step further!

Rapid changes in HW and OS lead to advantages


of client/server systems
Result: greater system complexity, user demand,
management expectations
Additional pressure from the necessity to
maintain legacy systems

Object Management Group,


(OMG) formed in 1989

Focus on integration of systems and


applications across heterogeneous platforms

After soliciting input,


CORBA standard was
defined and introduced
in 1991

PROVIDES HIGH-LEVEL OBJECT


ORIENTED INTERFACE!!!
The only REAL competitor is, of course

MICROSOFT DCOM

allows applications and their objects to


communicate with each other no matter
where they are and or who designed them!!

When introduced in 1991, CORBA defined the Interface


Design Language, (IDL), and Application Programming
Interface, (API)
These allow client/server interaction within a specific
implementation of an Object Request Broker, (ORB)
ORB
request

SERVER/OBJECT
IMPLEMENTATION

CLIENT
ORB
Result/
error

A technology independent
syntax for describing object
encapsulation

<specification> ::= <definition>+


<definition>

::= <type_dcl> ;
|

<const_dcl> ;

<except_dcl> ;

<interface> ;

<module> ;

An example of the
syntax

it even has its own hello world!!


import HelloWorld.*;
The first thing we must do is define the
interface to the serving object in OMG
IDL:

public class HelloWorldImpl


implements SimpleHelloWorldServant{
private final java.lang.String
myString = "Hello World!";

#ifndef _HELLOWORLD_IDL
#define _HELLOWORLD_IDL

public synchronized
java.lang.String sayHello()
throws
sunw.corba.SystemException
{
return myString;
}

module HelloWorld {
interface SimpleHelloWorld {
string sayHello();
};
};
#endif

ORB is middleware
Based on client/server model of distributed
computing, CORBA inserts a broker
between client and server
ORB
request

SERVER/OBJECT
IMPLEMENTATION

CLIENT
ORB
Result/
error

Broker provides basic messaging and


communication between client and server,
insulating applications from the specifics of
the system configuration

Client transparently invokes


methods on server, either on same
machine or across network

The ORB :
intercepts calls
finds object
invokes method
passes parameters
returns results or error messages
REGARDLESS OF THE OBJECTS
LOCATION, ITS PROGRAMMING
LANGUAGE OR EVEN THE OPERATING
SYSTEMS INVOLVED!!

Application software
client

stub

Object implementation

DLL

skeleton

Object
Adapter
adapter

Object Request Broker, (ORB)

IDL generates stubs and skeleton programs for each interface


Stub acts like a local function call, providing interface to ORB
Skeleton is server side implementation of IDL interface

Application software
client

stub

Object implementation

DLL

skeleton

Object
Adapter
adapter

Object Request Broker, (ORB)

Skeletons and stubs


return the results and error messages

The role of CORBA and the ORB are defined in the


Object Management Architecture
Application
objects

CORBAdomains

CORBAfacilities

Object Request Broker


CORBAservices

Included within the OMA are four object


categories:

The four categories of the OMA:


CORBAservices: creation/movement of objects,
queries/transactions, concurrency control, directory
servi ces
CORBAdomains are vertical market standards. For example:
financial, medical, telecommunications and manufacturing
CORBAfacilities include compound document and system
management. Both can be applied across multiple vertical
domains for added functionality
Applications: user defined and proprietary interfaces

The result?
Programmer free to design system as they see fit, ORB defines
application protocol via IDL
Programmer free to choose language, environment and OS
ORB allows integration of existing components into
a network object architecture
now possible to integrate existing systems with off-theshelf products

represents the next step in software


re-use

You might also like