Title: Common%20Object%20Request%20Broker%20Architecture%20(CORBA)
1Common Object Request Broker Architecture (CORBA)
2What 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
3CORBAs 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
4Distributed 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 - based on client/server concepts
- Benefits
- sharing of scarce resources
- load balancing
- run applications on most appriate hardware
- Existing Mechanisms - RMI, RPC, Corba, network
APIs
5Distributed Object Computing
- Marriage of Distributed Computing with an Object
Model - Uses a broker to handle messages requests between
clients and servers - broker can choose server that best fits needs of
client - allows separation of interface and
implementation - allows building block approach to development and
evolution
6Object 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
7Object Management Architecture
Application Objects
Common Facilities
Object Request Broker
Object Services
8What does the ORB do?
- The ORB provides a communications hub for all
objects - analogous to a hardware bus
- Provides object services
- creation, access control and object tracking
- Common Facilities
- db access, printing, synchronization, document
management
9CORBA Object Communications
- CORBA Objects communicate via their interfaces
- Interfaces are defined using Interface Definition
Language - Language independent
- Designed to be language agnostic
- Directly maps most common data types
- There are some datatype mapping problems,
especially when using different languages for the
client and server.
10CORBA Object Communications
IIOP
Object A
Object B
Interface
Interface
11Conceptually ...
Client
Server
Client
Server
ORB
Client
Server
12What 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
13Really though...
Registration
ORB
1
Client
Server
Services
2
Client
Server
3
Client
Server
143-Tier Client Server
Sockets JavaIDL JavaRMI
JDBC Native
Client
Client
Server
DB
Client
153-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
16Interface Definition Language
- In Java we cannot separate a classs definition
from its implementations as we can in C - Header files
- Implementation files
- CORBA allows the separation of definition and
implementation
17IDL (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
18IDL/Java type mapping
- due to differences in heritage IDL and Java types
dont have a 1 to 1 mapping
long 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 Special type
consisting of any of the above
19an IDL interface
interface Cooler int getHotWaterLevel()
int getWarnWaterLevel() int
getColdWaterLevel() exception
NoMoreWaterException int getHotWater()
throws NoMoreWaterException int
getWarmWater() throws NoMoreWaterException
int getColdWater() throws NoMoreWaterException
20Compiling the IDL
- Compiling the IDL using the javatoidl compiler
will produce six classes - CoolerRef
- CoolerHolder
- CoolerOperations
- CoolerStub
- CoolerServant
- CoolerSkeleton
21The ORB
- What is it that the ORB does ?
- Object location
- Location transparency
- Object communications
- Marshalls and unmarshalls parameter and results
data - Services
- Object Life Cycle Management
- Naming
- Event decoupling
- Relationship management
- Externalization
- Transaction management
- Concurrency control
- Property management
- Trader locating objects based on properties
- Object query
22OEM Orb Info
- The Borland VisiBroker Orb is built into
Netscape Communicator 4.x but can be purchased
seperately - CORBA 3.0 Compliant
- Language support C, Java, .NET (C and C)
- Orbix Orbacus (Progress Software (previously
Iona Technologies) - CORBA 2.6 Compliant
- 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. - J2SE - org.omg.CORBA ( in the JDK) since JDK 1.3)
- Provides the mapping of the OMG CORBA APIs to the
JavaTM programming language, including the class
ORB - class ORB is implemented such that a programmer
can use it as a fully-functional Object Request
Broker (ORB).