Title: Introduction to CORBA
1Introduction to CORBA
SeyedMasoud Sadjadi Software Engineering and
Networking Systems Laboratory Department of
Computer Science and Engineering Michigan State
University www.cse.msu.edu/sens
2Acknowledgements
- Object Management Group (OMG)
- IONA Technology
- Eternal Systems
- Steve Vinoski, IONA Technology
- Niall Stapley, CERN
- Mojtaba Hosseini
3Agenda
Motivation
Overview
Motivation
Introduction
Introduction
Interoperability
Example
Evolution
Interoperability
Advanced
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
4Motivation (1)
Overview
- Object-oriented computational model
- An application is represented by interactions
among a web of objects
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Audio Amplifier Application
Big Picture
Service provided through interface
Service is accessed through a reference
Thread
Main Loop
5Motivation (2)
Overview
- Distributed object computational model
- Objects are distributed across network.
- Tedious and error-prone programming.
Motivation
Introduction
Interoperability
Example
Evolution
Client
Server
Advanced
Big Picture
Application Layer
Operating System Layer
Socket
File
Shared Memory
Pipeline
Socket
File
Shared Memory
Pipeline
Network
6Motivation (3)
Overview
Motivation
Client
Server
Introduction
Interoperability
Example
Application Layer
Evolution
Advanced
Big Picture
Stub
Skeleton
Middleware Layer
ORB
ORB
Operating System Layer
Socket
File
Shared Memory
Pipeline
Socket
File
Shared Memory
Pipeline
Network
7Agenda
Motivation
Overview
Motivation
Introduction
Introduction
Interoperability
Example
Evolution
Interoperability
Advanced
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
8What is CORBA?
Overview
- Common Object Request Broker Architecture
- An industry standard developed by OMG to help in
distributed programming - A specification for creating and using
distributed objects - A tool for enabling multi-language,
multi-platform communication - A CORBA based-system is a collection of objects
that isolates the requestors of services
(clients) from the providers of services
(servers) by an encapsulating interface
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
9Who should use CORBA?
Overview
- The architecture and specifications described in
the Common Object Request Broker Architecture and
Specifications book are aimed at software
designers and developers who want to produce
applications that comply with OMG standards for
the Object Request Broker (ORB) OMG. - The benefit of compliance is, in general, to be
able to produce interoperable applications that
are based on distributed, interoperating objects
OMG.
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
10CORBA Features (1)
Overview
- Heterogeneity
- Hardware devices
- Operating System
- Network protocols
- Programming languages
- Object Orientation
- Encapsulation
- Polymorphism
- Inheritance
- Instantiation
- Dynamic binding and typing
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
11CORBA Features (2)
Overview
- Transparencies
- Location transparency
- the physical address of a server is masked
- Access transparency
- the access method is masked
- Data transparency
- the different data representations are masked
- Replication transparency
- the server replicas are masked
- Migration transparency
- the migration of a server is masked
- Activation transparency
- the activation of a server is masked
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
12CORBA Objects
Overview
- They are different from typical programming
objects in three ways - CORBA objects can run on any platform
- CORBA objects can be located anywhere on the
network - CORBA objects can be written in any language that
has IDL mapping
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
13CORBA Architecture
Overview
- CORBA is composed of ORB core, ORB interface,
stub, skeleton, DII, DSI, and OA.
Motivation
Introduction
CORBA
Client
Object Implementation
Features
Objects
Architecture
ORB
IDL
Dynamic Invocation
Static IDL Stub
ORB Interface
Static IDL Skeleton
Dynamic Skeleton
Object Adapter
Stub Skeleton
DII DSI IR
OA
Interoperability
ORB Core
Example
Evolution
Interface Identical for all ORB implementations
Up-call interface
Advanced
There may be multiple object adapters
There are stubs and a skeleton for each object
type
Big Picture
Normal call interface
ORB-dependent interface
14Object Request Broker (1)
Overview
- Responsibilities
- Object location transparency
- Find the object implementation for the request
- Object activation
- Prepare the object implementation to receive the
request - Communication
- Communicate the data making up the request
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
15Object Request Broker (2)
Overview
- Both the client and the object implementation are
isolated from the ORB by an IDL interface. - All requests are managed by the ORB, which means
that invocation of a CORBA object is passed to an
ORB - CORBA objects implemented in different ORBs from
different vendors should be able to communicate
with each other because all CORBA compliant ORBs
are able to interoperate via IIOP (Internet
Inter-ORB Protocol)
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
16Interface Definition Language (1)
Overview
- Separates the Interface from the Implementation
- Multiple-inheritance, strongly typed, public
interface specification language - Independent of any particular language and
compiler - Mappings will be provided for many languages and
compilers - Not a programming language
- Enables Interoperability
- Supports the dynamic request mechanism
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
17Interface Definition Language (2)
Overview
Motivation
Introduction
CORBA
Client Side
Server Side
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
ORB
ORB
OA
Interoperability
Example
Evolution
Advanced
Big Picture
18Interface Definition Language (3)
Overview
IDL File
Motivation
Introduction
CORBA
IDL Compiler
Features
Objects
Architecture
ORB
Client Stub File
Server Skeleton File
Client Implementation
Object Implementation
IDL
Stub Skeleton
DII DSI IR
OA
Lang A Compiler
Lang B Compiler
Interoperability
Example
Evolution
Client Program
Server Program
Advanced
Big Picture
19Interface Definition Language (4)
Overview
- IDL Compiler
- It will accept as input an IDL file written using
any text editor (fileName.idl) - It generates the stub and the skeleton code in
the target programming language (e.g., Java stub
and C skeleton) - The stub is given to the client as a tool to
describe the server functionality and the
skeleton file is implemented at the server
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
20Stubs and Skeletons
Overview
- In terms of CORBA development, the stubs and
skeleton files are standard in terms of their
target language. - Each file exposes the same operations specified
in the IDL file. - Invoking an operation on the stub file will cause
the method to be executed in the skeleton file - The stub file allows the client to manipulate the
remote object with the same ease with each a
local file is manipulated
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
21Dynamic Invocation Interface
Overview
- Operations can be invoked through static or
dynamic operations - Static invocation interfaces are determined at
compile time being presented to the client using
the stubs - The DII allows clients to use server objects
without knowing about them at compile time - It allows the client to obtain an instance of a
CORBA object and make invocations to it by
dynamically constructing requests using the
Interface Repository to retrieve an operation
signature
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
22Dynamic Skeleton Interface
Overview
- Similar to DII, the server-side dynamic skeleton
interface allows servers to be written without
having skeletons, for the objects being
implemented. - It allows dynamic handling of object invocations
- It can use either the pure static knowledge of
parameters or the Interface Repository to
determine the parameters - Has other applications such as interactive
software
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
23Interface Repository
Overview
- Provides another way to specify the interfaces to
the objects. - Holds a table of interfaces
- A client, using the IR, should be able to locate
an object , find information about its interface,
then make a request to be sent through the ORB
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
24Object Adaptors
Overview
- The primary way that an object implementation
accesses services provided by ORB - Method invocation
- Security
- Object reference generation
- Object activation and deactivation
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub Skeleton
DII DSI IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
25Agenda
Motivation
Overview
Motivation
Introduction
Introduction
Interoperability
Example
Evolution
Interoperability
Advanced
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
26Interoperability (1)
Overview
- ORB from different vendors are interoperable
Motivation
Introduction
Interoperability
Interoperability
IOR IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture
27Interoperability (2)
Overview
- CORBA 2.0 Interoperability Comprises
- An overall architecture for CORBA-CORBA
communications - An API for adding bridges
- A general multi-transport message format (General
Inter-ORB Protocol or GIOP) - An API for gateways using ESIOPs
(Environment-Specific Inter-ORB Protocols) - UNIVERSAL, OUT-OF-THE-BOX
INTEROPERABILITY - GIOP over TCP/IP is mandatory for compliance
either internally or via a half-bridge - Specialized protocols are optional and well
supported by the specifications.
Motivation
Introduction
Interoperability
Interoperability
IOR IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture
28IOR Example
Overview
- IOR000000000000001049444c3a5472697669616c3a312e30
0000000001000000000000007c000102000000000d3135322e
38312e342e3131300000048000000025abacab313130303338
3632313336005f526f6f74504f410000cafebabe3bd5b87800
00000000000000000001000000010000002c00000000000100
01000000040001002000010109000101000501000100010109
000000020001010005010001
Motivation
Introduction
Interoperability
Interoperability
IOR IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture
29Interoperable Object Group Ref
- corbaloc1.2_at_hostA683,
- 1.2_at_hostB683/myObj
Overview
Motivation
Introduction
Interoperability
Number of Profiles
Multiple Components Profile
Type_id
IIOP Profile
IIOP Profile
Interoperability
IOR IOGR
CORBA Clients
TAG_ INTERNET_IOP
Profile Body
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
IIOP Version
Object Key
Host
Components
Port
Example
Evolution
Advanced
Other Components
TAG_GROUP Component
Number of Components
TAG_PRIMARY Component
Big Picture
object_group_ id
object_group_ version
tag_group_ version
ft_domain_ id
30Clients for CORBA
Overview
- CORBA Client CORBA Server
- Java Client CORBA, Java RMI, and HTTP Server
- DCOM Client CORBA and DCOM Server
Motivation
Introduction
Interoperability
Interoperability
IOR IOGR
CORBA Clients
Windows app
standalone CORBA client
Java and CORBA
JAVA/CORBA client
CORBA vs. RMI
COM/CORBA link
JAVA ORBlet
CORBA vs. DCOM
ORB
ORB
JAVA VM (browser)
Example
HTTP
Evolution
Advanced
Big Picture
CORBA server
JAVA/RMI server
HTTP server
DCOM server
31Java and CORBA
Overview
- Not just the usual IDL-to-Java Mapping
- A Java-to-IDL Mapping.
- Automates creation of CORBA Objects from Java
Classes - Java RMI can use IIOP Protocol
- Theres an ORB in the JDK
Motivation
Introduction
Interoperability
Interoperability
IOR IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture
32CORBA vs. Java RMI
Overview
- CORBA was designed for language independence
whereas RMI was designed for a single language
where objects run in a homogeneous environment - CORBA interfaces are defined in IDL, while RMI
interfaces are defined in Java - CORBA objects are not garbage collected because
they are language independent and they have to be
consistent with languages that do not support
garbage collection, on the other hand RMI objects
are garbage collected automatically
Motivation
Introduction
Interoperability
Interoperability
IOR IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture
33DCOM vs. CORBA
Overview
Motivation
Introduction
Interoperability
Interoperability
IOR IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture
34Agenda
Motivation
Overview
Motivation
Introduction
Introduction
Interoperability
Example
Evolution
Interoperability
Advanced
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
35Steps to Implement Hello World
Overview
- We use a CROBA implementation such as ORBacus,
ORBIX, VisiBroker, JacORB, and TAO - Define an interface using IDL
- Use the IDL compiler
- Implement the Hello object
- Implement the server
- Implement the client
- Compile
- Run
Motivation
Introduction
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
36Define Interface in IDL
Overview
- Stand-alone hello world application
Motivation
public class Greeter public static void
main(String args) System.out.println("He
llo World!")
Introduction
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
- Define an interface using IDL
Compile and Run
Evolution
// IDL interface Hello void say_hello()
Advanced
Big Picture
37Implement the Hello Object
Overview
- Use the IDL compiler
Motivation
Introduction
jidl --package hello Hello.idl
Interoperability
Example
- Implement the Hello object
Steps
Write Interface
// Java package hello public class Hello_impl
extends HelloPOA public void say_hello()
System.out.println("Hello World!")
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
38Implement the Server (1)
Overview
- Implement the Server
Motivation
Introduction
// Java package hello public class Server
public static void main(String args)
java.util.Properties props System.getProperties(
) props.put("org.omg.CORBA.ORBClass",
"com.ooc.CORBA.ORB") props.put("org.omg.CORBA
.ORBSingletonClass", "com.ooc.CORBA.ORBSingl
eton") int status 0
org.omg.CORBA.ORB orb null
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
39Implement the Server (2)
Overview
- Implement the Server (cont.)
Motivation
Introduction
try orb org.omg.CORBA.ORB.init(args
, props) status run(orb)
catch(Exception ex) ex.printStackTrace()
status 1 if(orb ! null)
try orb.destroy()
catch(Exception ex) ex.printStackTrace()
status 1 System.exit(status)
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
40Implement the Server (3)
Overview
- Implement the Server (cont.)
Motivation
Introduction
static int run(org.omg.CORBA.ORB orb)
throws org.omg.CORBA.UserException
org.omg.PortableServer.POA rootPOA
org.omg.PortableServer.POAHelper.narrow(
orb.resolve_initial_references("RootPOA"))
org.omg.PortableServer.POAManager manager
rootPOA.the_POAManager() Hello_impl
helloImpl new Hello_impl() Hello hello
helloImpl._this(orb)
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
41Implement the Server (3)
Overview
- Implement the Server (cont.)
Motivation
Introduction
try String ref orb.object_to_string(hell
o) String refFile "Hello.ref"
java.io.PrintWriter out new java.io.PrintWriter(
new java.io.FileOutputStream(refFile))
out.println(ref) out.close()
catch(IOException ex) ex.printStackTrace()
return 1 manager.activate()
orb.run() return 0
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
42Implement the Client (1)
Overview
- Implement the Client
Motivation
Introduction
// Java package hello public class Client
public static void main(String args) ...
// Same code as the server
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
43Implement the Client (2)
Overview
- Implement the Client (cont.)
Motivation
Introduction
static int run(org.omg.CORBA.ORB orb)
org.omg.CORBA.Object obj null try
String refFile "Hello.ref"
java.io.BufferedReader in new
java.io.BufferedReader( new
java.io.FileReader(refFile)) String ref
in.readLine() obj orb.string_to_object(re
f) catch(IOException ex)
ex.printStackTrace() return 1 Hello
hello HelloHelper.narrow(obj)
hello.say_hello() return 0
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
44Compile and Run
Overview
- Compile
Motivation
Introduction
CLASSPATH.your_orbacus_directory/lib/OB.jarCLA
SSPATH export CLASSPATH javac hello/.java
Interoperability
Example
Steps
Write Interface
Implement Hello
- Run
Implement Server
Implement Client
java hello.Server java hello.Client
Compile and Run
Evolution
Advanced
Big Picture
45Agenda
Motivation
Overview
Motivation
Introduction
Introduction
Interoperability
Example
Evolution
Interoperability
Advanced
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
46CORBA Evolution (1)
Overview
Motivation
Introduction
CCM Real-time Fault Tolerance
Interoperability
Example
Horizontal, Vertical Facilities
Evolution
Advanced
Big Picture
Interoperability Networking
IDL, Object Model, ORB
47CORBA Evolution (2)
Overview
- CORBA 1.0 (October 1991)
- CORBA Object model
- Interface Definition Language (IDL)
- Core DII and Interface Repository
- single language mapping for the C
- CORBA 1.1 (February 1992)
- The first widely published version
- Interfaces for the Basic Object Adapter
- Clarified some ambiguities
- CORBA 1.2 (December 1993)
- Closed several ambiguities in memory management
and object reference comparison.
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
48CORBA Evolution (3)
Overview
- CORBA 2.0 (August 1996)
- Dynamic skeleton interface
- Extensions to the Interface Repository
- Interoperability (GIOP, IIOP, DCE CIOP)
- Layered security and transaction services
- Datatype extensions for COBOL
- Interworking with OLE2/COM
- Interoperability protocol specification
- Interface repository improvements
- C and Smalltalk IDL language mappings
- CORBA 2.1 (August 1997)
- Secure IIOP and IIOP over SSL
- COBOL and Ada language maps
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
49CORBA Evolution (4)
Overview
- CORBA 2.2 (February 1998)
- POA
- DCOM Interworking
- IDL/JAVA language mapping specification.
- CORBA 2.3 (June 1999)
- COM/CORBA Part A and B
- Portability IDL/Java
- Objects by value
- Java to IDL Language Mapping
- IDL to Java Language Mapping
- C Language Mapping
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
50CORBA Evolution (5)
Overview
- CORBA 2.4 (October 2000)
- Messaging specification
- Interoperable Naming service
- Notification service
- Minimum and Real-time CORBA
- CORBA 2.5 (September 2001)
- Fault Tolerant
- Messaging (editorial changes)
- Portable Interceptors
- Realtime CORBA, v1.2
- CORBA 2.6 (December 2001)
- Common Security
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
51CORBA Evolution (6)
Overview
- CORBA 3.0 (June 2002)
- Java and Internet Integration
- Objects Passable by Value (first in ver 2.3)
- Java-to-IDL Mapping (first in ver 2.3)
- Interoperable Name Service (first in ver 2.4)
- Firewall Specification
- Quality of Service Control
- Asynchronous Messaging (first in ver 2.4)
- Minimum (first in ver 2.4), Fault-Tolerant (first
in ver 2.5), and Real-Time CORBA (first in ver
2.4) - The CORBA component architecture
- CORBAcomponents
- Scripting Languages
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
52Agenda
Motivation
Overview
Motivation
Introduction
Introduction
Interoperability
Example
Evolution
Interoperability
Advanced
Big Picture
Example
CORBA Evolution
Advanced Features
Big Picture
53POA Supports Scalability
Overview
- Object implementation portability between ORBs
- Object instances with persistent identities
- Transparent activation
- Single servant implementing multiple instances
- Transient objects with minimal programming
- Fine or coarse control of behavior and
persistence by an implementation - Multiple policies for key object behaviors
- Implementations inheriting from static skeleton
classes
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
54Objects by Value
Overview
- A struct with added value
- They can have state and behaviour
- Not CORBA objects
- Can inherit from other valuetypes and support
interfaces - Supports the CORBA component model and Java to
IDL reverse mapping - New keywords valuetype, public, private,
abstract - Uses a value factory to create local object
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
55Quality of Service (1)
Overview
- Provides policy-based QoS Framework
- No standard defaults ORB vendor sets them
- Policy areas
- Rebind Support
- Request / Reply Priority
- Request / Reply Timeout
- Synchronization Scope
- Routing
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
56Quality of Service (2)
Overview
- Specifying QoS Parameters
- Specify for an Object Implementation
- In an object reference, QoS requirements are
expressed through a profile Component in the IOR - Specify for a particular Request
- In a GIOP request, QoS requirements are expressed
as part of its Service Context - CORBA resolves conflicts
- Asynchronous Method Invocation (AMI)
- Callback mode
- Similar to providing a callback handler object
- Polling mode
- Returns a valuetype object for client to check
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
57Quality of Service (3)
Overview
- Invocation Types
- Synchronous the reply is obtained and returned
to the client as part of the single (blocking, to
the client) operation used by the client
application to make the request. - Deferred Synchronous control returns to the
application without a reply, but the client ORB
still invokes synchronously on the target. The
reply may be returned to the client later. - Asynchronous the client ORB does not
synchronously invoke the target to obtain a
reply. Some other agent separates the client ORB
from the target. - Time-Independent a specialization of
asynchronous invocation in which the
computational context that obtains the reply may
be different from the computational context from
which the original invocation was made.
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
58Quality of Service (4)
Overview
- Ordering Invocations
- ANY the client doesnt specify in what order its
requests are processed. - TEMPORAL requests that invocations be processed
in the order in which they were issued. TEMPORAL
is the default. - PRIORITY requests that invocations be processed
based on the priority assigned in the QoS
structure described later. - DEADLINE requests that invocations whose
time_to_live is about to expire are moved to the
front of the queue.
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
59CORBA Component Model (1)
Overview
- Framework for designing, implementing and
deploying CORBA components. - Purpose is to simplify and reduce effort by using
a container that - manages lifecycle
- provides CORBA services
- allows clean separation between application logic
and CORBA - Support for ready made components
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
60CORBA Component Model (2)
Overview
- Two levels of component
- Basic - fully compatible with EJB
- Extended - components expose ports
- Component categories
- Session, Service, Entity, Process
- More extra keywords like component, home,
supports - Implementations?
- K2 Component Server
- MicoCCM
- OpenCCM
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
61Minimum CORBA (1)
Overview
- Designed systems with limited resources
- Do not need everything that CORBA provides
- Has size and space limits
- Some operations are omitted from Object, ORB
- Other omissions
- Dynamic Invocation Interface
- Dynamic Skeleton interface
- Dynamic any
- Interface Repository
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
62Minimum CORBA (2)
Overview
- The POA
- Default policies only for
- create_thread_policy
- create_implicit_activation_policy
- create_servant_retention_policy
- create_request_processing_policy
- No dynamic activation of POAs
- No ServantManagers
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
63Real-Time CORBA (1)
Overview
- Features
- Adds QoS control capabilities to regular CORBA.
- Improve application predictability by bounding
priority inversion - Manage system resources end-to-end.
- Processor resources
- Communication resources
- Memory resources
- Shortcomings
- Static fixed-priority real-time
- Steep learning curve
- Cause by the complex C mapping.
- Run-time and memory footprint overhead
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
64Real-Time CORBA (2)
Overview
- Real-time CORBA extensions
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
65Fault Tolerant CORBA (1)
Overview
- Aims to provide robust support for high
reliability - Defines a fault-tolerance infrastructure
- Provides reliability by
- entity redundancy
- object replication (passive and active)
- request retry and redirection
- fault detection and recovery
- Multiple profiles in IOR
- Example of a FT corbaloc URL
- corbaloc1.2_at_hostA683,1.2_at_hostB683/myObj
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
66Fault Tolerant CORBA (2)
Overview
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
67Other New Specifications
Overview
- Data Parallel Processing
- Defines Architecture for parallel programming
- Data is typically divided and redistributed
- Unreliable Multicast (MIOP)
- Deliver messages to many objects at once
- Takes advantage of network ability
- IDL operations would require oneway
- Clients join a multicast group with a group IOR
- Domain CORBAfacilities
- IDL is a great way to define standard interfaces
for standard objects that every company in an
industry can share.
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
68Agenda
Motivation
Overview
Motivation
Introduction
Introduction
Interoperability
Example
Evolution
Interoperability
Advanced
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
69Model Driven Architecture
Overview
- Open vendor-neutral approach
- Separating business logic from technology
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA
70MDA Specifications
Overview
- MDA Specification Support
- The MDA Architecture
- The Unified Modeling Language (UML)
- UML Profiles
- The Meta-Object Facility (MOF)
- XML Metadata Interchange (XMI)
- Common Warehouse Metamodel (CWM)
- CORBA
- Writing Standards in the MDA
- Pervasive Services
- Domain (Industry-specific) Facilities
- MDA Applications
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA
71OMA Overview (1)
- OMG's vision for the component software
Overview
Motivation
Business Objects Healthcare Finance Telecommunicat
ion
Introduction
Compound Docs Object Linking Help
Facilities Desktop Mgmt
Not standardized by OMG Scope is Single
application or vendor
Interoperability
Example
Evolution
Application Objects
Horizomtal CORBA Facilities
Vertical CORBA Facilities
Advanced
Big Picture
MDA
OMA
Object Request Broker
Lifecycle Events Naming Persistence Transactions C
oncurrency
Externalization Security Time Properties Query Lic
ensing
CORBA Services
72Object Management Architecture (2)
Overview
- Object Services
- (a.k.a, CORBA Services)
- Domain-independent services.
- Naming Service and Trading Service.
- Common Services
- (a.k.a, Common Facilities and Horizontal
Facilities) - are less oriented towards end-user applications.
- Distributed Document Component Facility (DDCF).
- Domain Services
- (a.k.a, Domain Interfaces and Vertical
Facilities) - are more oriented towards specific app domains.
- Product Data Management (PDM) Enablers for the
manufacturing domain. - Application Services
- (a.k.a, Application Interfaces and Application
Objects) - are services developed specifically for a given
application.
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA
73Vertical CORBA Services
Overview
- Official OMG specifications in vertical market
domains - Business Objects
- Finance/Insurance
- Electronic Commerce
- Healthcare
- Telecommunications
- Transportation
- Manufacturing
- Life Sciences Research
- Coming Utilities, Statistics
- Bring benefits of CORBA and OMA to Domains.
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA
74CORBA/OMA Environment
Overview
- Starts with the Basics
- IDL Interfaces Mappings
- ORB-based Architecture
- Static Dynamic Invocation Modes
- GIOP/IIOP Interoperability
- Optional Asynchronous Modes
- Naming Service
- Event Service
- Add Services and Facilities
- Security Service
- Transaction Service
- Object Trader Service
- COM/CORBA Mapping
- Then add Domain Componet
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA