CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature...
Transcript of CORBA - IIOP - George Mason Universitysetia/inft803/corba.pdf · CORBA IIOP versus HTTP-CGI Feature...
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”.
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
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: