Prezentare PPT - CORBA
Prezentare PPT - CORBA
Prezentare PPT - CORBA
Architecture (CORBA)
CS-328
What is CORBA
Specification for a standard O-O
architecture for applications
1990 - Object Management Group
publishes Object Management
Architecture Guide
1991 - Common Object Request Broker
Architectural Specification
CORBAs Goal
Integrate existing mainframe applications with
desktop based tools
Access distributed information and resources from within desktop
tools
Make existing business data available as network resources
Augment desktop applications with custom functions and
capabilities for a particular business
Change and evolve network based systems to reflect new
topologies or resources
Distributed Computing
Two or more pieces of software sharing information
could be on same machine
could be on different machines on same network
could be on different machines on different networks
Object Model
Provides:
Abstraction
group objects and focus on their similarities
Encapsulation
hide implementation details from the services provided
Inheritance
ability to pass along (object-to-object) capabilities and behaviors
Polymorphism
ability to substitute objects with matching interfaces at run time
Common
Objects
Facilities
Object Request
Broker
Object
Services
Common Facilities
db access, printing, synchronization, document
management
IIOP
Object A
Interface
Object B
Interface
Conceptually ...
Client
Client
Client
Server
ORB
Server
Server
What happens...
Server objects register their methods with the
orb naming service
Client binds to the orb naming server for a
server object method
Naming service return location of server
object and disconnects
Client connects to server at returned location
Really though...
ORB
Client
Services
Registration
1
Server
2
Client
Server
3
Client
Server
Client
Client
JDBC
JavaRMI
Native
Server
DB
3-Tier Advantages
Server can manage database connections
efficiently
Client can focus on presentation
Server can preformat data for client and focus
on business logic
Running server on high performance
hardware can improve perceived performance
IDL (more)
CORBA uses IDL for defining interfaces
between clients and servers
ORB Vendors provide specific IDL
compilers for supported languages
create target language stubs and skeletonsfor
building CORBA clients and servers
C, C++, Smalltalk, Java, COBOL
Java int
short
Java short
float
Java float
double
Java double
char
Java char
boolean
Java boolean
octet
java byte
string
java.lang.String
any
an IDL interface
ex.
interface Cooler {
int getHotWaterLevel();
int getWarnWaterLevel();
int getColdWaterLevel();
exception NoMoreWaterException { };
int getHotWater() throws NoMoreWaterException;
int getWarmWater() throws NoMoreWaterException;
int getColdWater() throws NoMoreWaterException;
}
CoolerRef
CoolerHolder
CoolerOperations
CoolerStub
CoolerServant
CoolerSkeleton
The ORB
What is it that the ORB does ?
Object location
Location transparency
Object communications
Marshalls and unmarshalls parameter and results data
Services
Language support - C, C++, Java, COBOL, Smalltalk, Ada, PL/1, Lisp, Python and
IDLscript. In additionally mappings for Perl, Objective-C, Oberon, Eiffel,
Modula3, Scheme, and Tcl.