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

CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

Feb 15, 2019

Download

Documents

phamkhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

CORBA - IIOP

T. Rozenbroek

GMU INFT 803

Fall 1999

[email protected]

Page 2: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 3: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

Definitions

• CORBA– Common Object Request Broker Architecture

• IIOP– Internet Inter-ORB Protocol

• ORB– Object Request Broker

• IDL– Interface Definition Language

Page 4: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 5: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

Who Controls CORBA?

• Object Management Group (OMG)

• Over 700 member companies– including

Sun Microsystems CMSTAT

Visigenics Matrix One

IBM Iona

Sherpa Metaphase

Page 6: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 7: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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.

Page 8: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 9: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 10: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 11: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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”.

Page 12: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

The ORB and the IDL

C Java ADA

IDL IDL IDL

Client

C++ Java Cobol

IDL IDL IDL

Server

ORB

Page 13: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

Legacy System Interfacing

Clie

nt S

tubs

CO

RB

A O

RB

Ser

ver

Ske

leto

n

Legacy Data SourceWeb Server

WWW(HTML/XML)

Page 14: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

Using the Web with CORBA

TheInternet

Workstation

HTML Request via HTTPHTTPServer

CO

RB

A O

RB

LegacyDatabaseC

OR

BA

Bus

ines

sO

bjec

t

Page 15: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 16: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 17: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 18: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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

Page 19: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

The ORB and the IDL

C Java ADA

IDL IDL IDL

Client

C++ Java Cobol

IDL IDL IDL

Server

ORB

Page 20: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

From IDL to Interface

CreateIDL Definition

IDL to Language Compilers

ClientStubs

ServerSkeletons

ClientApplicationSoftware

ServerApplicationSoftware

ClientStubs

ServerSkeletons

ClientApplicationSoftware

ServerApplicationSoftware

ClientStubs

ClientApplicationSoftware

ServerSkeletons

ServerApplicationSoftware

Page 21: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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 */

Page 22: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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 */

Page 23: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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 */

Page 24: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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 */

Page 25: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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 */

Page 26: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

Larger Frameworks

Interoperation Collaboration

Interoperable Supersmart BusinessComponents Components Obj Suites

BusinessObjects

Application-LevelFrameworks

System-LevelServices

ComponentBus

Pg 26 Instant Corba

Page 27: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

CORBAServices

Object Request Broker

Naming Persistence

Events

Externalization

Security Life Cycle

Query Properties Concurrency

Collections Relationships

Time Licensing

Trader Transactions

Page 28: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

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:

Page 29: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

Are there any Questions orComments

Thank you for your attention

Page 30: CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature CORBA IIOP HTTP-CGI State preservation across invocations Yes No IDL and interface

Break Time