CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature...

30
CORBA - IIOP T. Rozenbroek GMU INFT 803 Fall 1999 [email protected]

Transcript of CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature...

CORBA - IIOP

T. Rozenbroek

GMU INFT 803

Fall 1999

[email protected]

Web versus TraditionalApplicationCharacteristic

WebEnvironment

TraditionalEnvironment

Number of Clients perApplication

Millions < 100

Number of Servers perApplication

> 1,000,000 1-10

Geography Global CampusServer-to-server invocations Yes RarelyMiddleware ORBs/Active Agents,

EtcSQL and stored

proceduresClient/Server Architecture 3-tier or greater 2-tierTransactional updates Pervasive Very InfrequentMultimedia Content High LowMobile Agents Yes No

Pg 55 Client/Server Programming with Java and CORBA with updates

Definitions

• CORBA– Common Object Request Broker Architecture

• IIOP– Internet Inter-ORB Protocol

• ORB– Object Request Broker

• IDL– Interface Definition Language

Why CORBA

“We expect that over the next few years IIOP will become as ubiquitousas HTTP and CGI, IIOP provides a comprehensive system through

which objects can request services from one another across the widevariety of platforms or database systems they’re built on. Just as Web

technology has helped companies simplify and centralize thedistribution of information, distributed objects will help them simplify

and centrilize their enterprise applications… Now that we havestandard ways to build networks and run services on them, we have anopportunity that never existed before - to build network applications.

Let’s take advantage of it.”

Marc Andreessen, Netscape Co-founder

October 1996

Who Controls CORBA?

• Object Management Group (OMG)

• Over 700 member companies– including

Sun Microsystems CMSTAT

Visigenics Matrix One

IBM Iona

Sherpa Metaphase

Migration to CORBA

FTP

Gopher

FTPUser wasrequired toknow where

theinformation

was locacted

GopherUser was able to

do string serachesfor information but

there was nolinking of

information

WebPagesAdds links

between pages soinformation can

be related, still nocontext tags to aid

in informationretrieval

XMLPages

Adds context tagsto enable better

informationretrieval, still

limted control overdata methods

CORBAObjects

Full objectdefintions,including

attributes andmethods

Why use CORBA?

• Improved Performance over HTTP & CGIs

• Persistent Connections

• Inter-Operability between ORB Vendors

• Good for Inter-Language Communications

• Excellent Interface to Legacy Systems

• Can be Delivered using existing WebSolutions.

CORBA IIOP versus HTTP-CGI

Feature CORBA IIOP HTTP-CGIState preservation across invocations Yes NoIDL and interface repository Yes NoMetadata support Yes NoDynamic Invocations Yes NoTransactions Yes NoSecurity Yes YesRich object services Yes NoCallbacks Yes NoServer/server infrastructure Yes NoServer scalability Yes NoIDL-defined methods Yes No

Pg 35 Instant CORBA

Interoperability

• By using CORBA version 2, it is possible tointerconnect ORBs from different vendors.

• Demonstrated by Software EngineeringInstitute (SEI) of Carniege MellonUniversity (CMU)

• SEI also demonstrated that ORBs can beconnected to Microsoft DCOM

Comparison of CORBA ORBs

CORBA Feature ObrixWeb Joe Visibroker forJava

Client-side Java Yes Yes YesStatic method invocations Yes Yes YesDynamic methodinvocations

Yes No Yes

Interface Repository Yes No YesServer Callbacks Yes (Ver 2) Yes YesNative Java over IIOP No No Yes (Caffeine)Server-side Java Yer (Ver 2) No YesWide market support Yes Yes Yes

Circa Late 1996Pg 50 Instant CORBA

At the Heart of CORBA

• CORBA deals with Objects.

• All Interactions take place via the ORB or“Object Request Broker”

• All Interfaces to an Object are defined usingIDL or “Interface Definition Language”.

The ORB and the IDL

C Java ADA

IDL IDL IDL

Client

C++ Java Cobol

IDL IDL IDL

Server

ORB

Legacy System Interfacing

Clie

nt S

tubs

CO

RB

A O

RB

Ser

ver

Ske

leto

n

Legacy Data SourceWeb Server

WWW(HTML/XML)

Using the Web with CORBA

TheInternet

Workstation

HTML Request via HTTPHTTPServer

CO

RB

A O

RB

LegacyDatabaseC

OR

BA

Bus

ines

sO

bjec

t

Using the Web with CORBA

TheInternet

Workstation

Applet Returned via HTTP

HTML Request via HTTPHTTPServer

CO

RB

A O

RB

LegacyDatabaseC

OR

BA

Bus

ines

sO

bjec

t

Using the Web with CORBA

TheInternet

Workstation

Applet Returned via HTTP

HTML Request via HTTPHTTPServer

LocallyRunningAppletC

OR

BA

OR

BLegacy

DatabaseCO

RB

AB

usin

ess

Obj

ect

Using the Web with CORBA

TheInternet

Workstation

Applet Returned via HTTP

HTML Request via HTTPHTTPServer

LocallyRunningApplet

IIOP SessionC

OR

BA

OR

BLegacy

DatabaseCO

RB

AB

usin

ess

Obj

ect

The IDL

• Language Neutral Description of the Objectto be exchanged

• Contains definitions for the Attributes to beexchanged and what Methods can beapplied to those attributes

The ORB and the IDL

C Java ADA

IDL IDL IDL

Client

C++ Java Cobol

IDL IDL IDL

Server

ORB

From IDL to Interface

CreateIDL Definition

IDL to Language Compilers

ClientStubs

ServerSkeletons

ClientApplicationSoftware

ServerApplicationSoftware

ClientStubs

ServerSkeletons

ClientApplicationSoftware

ServerApplicationSoftware

ClientStubs

ClientApplicationSoftware

ServerSkeletons

ServerApplicationSoftware

Sample IDL

Module MyAnimals

{

/* Class Definition of Dog */

interface Dog:Pet, Animal

{

attribute integer age;

exception NotInterested {string explanation};

void Bark(in short how_long)

raises (NotInterested);

void Sit(in string where)

raises (NotInterested);

void Growl(in string at_whom)

raises (NotInterested);

}

} /* End of MyAnimals */

Sample IDL

Module MyAnimals DEFINES THE MODULE NAME

{

/* Class Definition of Dog */

interface Dog:Pet, Animal

{

attribute integer age;

exception NotInterested {string explanation};

void Bark(in short how_long)

raises (NotInterested);

void Sit(in string where)

raises (NotInterested);

void Growl(in string at_whom)

raises (NotInterested);

}

} /* End of MyAnimals */

Sample IDL

Module MyAnimals

{

/* Class Definition of Dog */

interface Dog:Pet, Animal DEFINES CORBA CLASS

{

attribute integer age;

exception NotInterested {string explanation};

void Bark(in short how_long)

raises (NotInterested);

void Sit(in string where)

raises (NotInterested);

void Growl(in string at_whom)

raises (NotInterested);

}

} /* End of MyAnimals */

Sample IDL

Module MyAnimals

{

/* Class Definition of Dog */

interface Dog:Pet, Animal

{

attribute integer age; DEFINES AN ATTRIBUTE

exception NotInterested {string explanation};

void Bark(in short how_long)

raises (NotInterested);

void Sit(in string where)

raises (NotInterested);

void Growl(in string at_whom)

raises (NotInterested);

}

} /* End of MyAnimals */

Sample IDL

Module MyAnimals

{

/* Class Definition of Dog */

interface Dog:Pet, Animal

{

attribute integer age;

exception NotInterested {string explanation};

void Bark(in short how_long) DEFINES A METHOD

raises (NotInterested);

void Sit(in string where) DEFINES A METHOD

raises (NotInterested);

void Growl(in string at_whom) DEFINES A METHOD

raises (NotInterested);

}

} /* End of MyAnimals */

Larger Frameworks

Interoperation Collaboration

Interoperable Supersmart BusinessComponents Components Obj Suites

BusinessObjects

Application-LevelFrameworks

System-LevelServices

ComponentBus

Pg 26 Instant Corba

CORBAServices

Object Request Broker

Naming Persistence

Events

Externalization

Security Life Cycle

Query Properties Concurrency

Collections Relationships

Time Licensing

Trader Transactions

Where to go for moreinformation

• OMG Website www.omg.org

• Instant CORBA: Orfali, Harkey & Edwards

• Client/Server programming with JAVA andCORBA: Orfali & Harkey

• CORBA Design Patterns:

Are there any Questions orComments

Thank you for your attention

Break Time