Download Introduction to CORBA - School of Computing and Information

Document related concepts
no text concepts found
Transcript
Introduction to
CORBA
SeyedMasoud Sadjadi
Software Engineering and Networking Systems Laboratory
Department of Computer Science and Engineering
Michigan State University
www.cse.msu.edu/sens
CSE812 Monday (Feb. 14, 2003) and Wednesday (Feb. 16, 2003)
Acknowledgements






Object Management Group (OMG)
IONA Technology
Eternal Systems
Steve Vinoski, IONA Technology
Niall Stapley, CERN
Mojtaba Hosseini
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
2
Agenda
Overview:
Motivation
Introduction
Interoperability
Motivation
Introduction
Example
Evolution
Advanced
Interoperability
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
3
Motivation (1)
Overview:
Motivation
Introduction
Interoperability
Example

Object-oriented computational model
– An application is represented by
interactions among a web of objects
Evolution
Advanced
Big Picture
Service provided
through interface Thread
Service is accessed
Main Loop through a reference
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
4
Motivation (2)
Overview:
Motivation

Distributed object computational model
– Objects are distributed across network.
– Tedious and error-prone programming.
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
Pipeline
Socket
Shared
Memory
Operating
System
Layer
File
Pipeline
Socket
Shared
Memory
File
Application
Layer
Network
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
5
Motivation (3)
Middleware
Solution
Overview:
Motivation
Introduction
Interoperability
Example
Application
Layer
Evolution
Advanced
Big Picture
Stub
Skeleton
Middleware
Layer
Pipeline
Socket
Shared
Memory
Operating
System
Layer
File
ORB
Pipeline
Socket
Shared
Memory
File
ORB
Network
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
6
Agenda
Overview:
Motivation
Introduction
Interoperability
Motivation
Introduction
Example
Evolution
Advanced
Interoperability
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
7
What is CORBA?
Overview:
Motivation

Introduction
CORBA

Features
Objects
Architecture

ORB
IDL
Stub & Skeleton

DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture

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, multiplatform 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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
8
Who should use CORBA?
Overview:
Motivation

Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub & Skeleton
DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture

“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].
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
9
CORBA Features (1)
Overview:
Motivation

–
–
–
–
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub & Skeleton

OA
Interoperability
Example
Evolution
Advanced

Hardware devices
Operating System
Network protocols
Programming languages
Object Orientation
–
–
–
–
DII & DSI & IR
Big Picture
Heterogeneity
Encapsulation
Polymorphism
Inheritance
Instantiation
Dynamic binding and typing
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
10
CORBA Features (2)
Overview:
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub & Skeleton
DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture

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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
11
CORBA Objects
Overview:
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub & Skeleton
DII & DSI & IR
OA
Interoperability
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
Example
Evolution
Advanced
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
12
CORBA Architecture
Overview:
Motivation
Introduction

CORBA is composed of ORB core, ORB
interface, stub, skeleton, DII, DSI, and OA.
CORBA
Features
Client
Object Implementation
Objects
Architecture
ORB
IDL
Stub & Skeleton
DII & DSI & IR
OA
Dynamic
Invocation
Static
IDL
Stub
ORB
Interface
Static IDL
Skeleton
Dynamic
Skeleton
Object
Adapter
Interoperability
Example
Evolution
Advanced
Big Picture
ORB Core
Interface Identical for all ORB implementations
There may be multiple object adapters
There are stubs and a skeleton for each object type
ORB-dependent interface
Introduction to CORBA by SeyedMasoud Sadjadi
Up-call interface
Normal call interface
CSE 812 04/14-16/2003
13
Object Request Broker (1)
Overview:
Motivation
Introduction
CORBA
Responsibilities
 Object location transparency
– Find the object implementation for the
request
Features
Objects
Architecture
ORB

– Prepare the object implementation to
receive the request
IDL
Stub & Skeleton
DII & DSI & IR
OA
Interoperability
Example
Evolution
Object activation

Communication
– Communicate the data making up the
request
Advanced
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
14
Object Request Broker (2)
Overview:
Motivation

Introduction
CORBA
Features
Objects

Architecture
ORB
IDL
Stub & Skeleton
DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture

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)
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
15
Interface Definition Language (1)
Overview:
Motivation

Introduction
CORBA
Features

Objects
Architecture
ORB

IDL
Stub & Skeleton

DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture



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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
16
Interface Definition Language (2)
Overview:
The role of IDL
Motivation
Introduction
CORBA
Features
Client Side
Server Side
Objects
Architecture
C
COBOL
IDL
IDL
ORB
C++
IDL
Stub & Skeleton
DII & DSI & IR
IDL
IDL
COBOL
Ada
IDL
IDL
ORB
OA
Interoperability
Ada
IDL
Small
talk
IDL
IDL
IDL
Evolution
Big Picture
ORB
IDL
Example
Advanced
C
IDL
Java
C++
More
Introduction to CORBA by SeyedMasoud Sadjadi
More
CSE 812 04/14-16/2003
17
Interface Definition Language (3)
Overview:
IDL File
Motivation
Introduction
CORBA
Features
IDL Compiler
Objects
Architecture
ORB
IDL
Stub & Skeleton
Client
Implementation
Server
Skeleton File
Client Stub
File
Object
Implementation
DII & DSI & IR
OA
Interoperability
Lang A Compiler
Lang B Compiler
Example
Evolution
Advanced
Big Picture
Client
Program
Introduction to CORBA by SeyedMasoud Sadjadi
Server
Program
CSE 812 04/14-16/2003
18
Interface Definition Language (4)
Overview:
Motivation
Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub & Skeleton
DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture
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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
19
Stubs and Skeletons
Overview:
Motivation

Introduction
CORBA
Features
Objects

Architecture
ORB
IDL

Stub & Skeleton
DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture

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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
20
Dynamic Invocation Interface
Overview:
Motivation

Introduction
CORBA
Features

Objects
Architecture
ORB

IDL
Stub & Skeleton
DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced

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
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
21
Dynamic Skeleton Interface
Overview:
Motivation

Introduction
CORBA
Features
Objects
Architecture

ORB
IDL
Stub & Skeleton

DII & DSI & IR
OA
Interoperability
Example
Evolution
Advanced
Big Picture

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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
22
Interface Repository
Overview:
Motivation

Introduction
CORBA
Features
Objects
Architecture
ORB
IDL
Stub & Skeleton
DII & DSI & IR


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
OA
Interoperability
Example
Evolution
Advanced
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
23
Object Adaptors
Overview:
Motivation

Introduction
CORBA
Features
Objects
Architecture
ORB


IDL
Stub & Skeleton
DII & DSI & IR
OA


The primary way that an object
implementation accesses services
provided by ORB
Method invocation
Security
Object reference generation
Object activation and deactivation
Interoperability
Example
Evolution
Advanced
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
24
Agenda
Overview:
Motivation
Introduction
Interoperability
Motivation
Introduction
Example
Evolution
Advanced
Interoperability
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
25
Interoperability (1)
Overview:
ORB from different vendors are
interoperable
Motivation
Introduction
Interoperability
Interoperability
IOR & IOGR
CORBA Clients
Client
Obj. Impl.
Client
Obj. Impl.
IDL
IDL
IDL
IDL
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
ORB
ORB
Example
Evolution
Advanced
Big Picture
ORB
ORB
IDL
IDL
Obj. Impl.
Client
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
26
Interoperability (2)
Overview:
Motivation
CORBA 2.0 Interoperability Comprises
Introduction

Interoperability
Interoperability

IOR & IOGR

CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture

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 halfbridge
 Specialized protocols are optional and well
supported by the specifications.
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
27
IOR Example
Overview:
Motivation
Introduction
Interoperability
Interoperability
IOR & IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture

IOR:000000000000001049444c3a547
2697669616c3a312e30000000000100
0000000000007c000102000000000d3
135322e38312e342e31313000000480
00000025abacab31313030333836323
13336005f526f6f74504f410000cafebab
e3bd5b8780000000000000000000001
000000010000002c000000000001000
1000000040001002000010109000101
0005010001000101090000000200010
10005010001
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
28
Interoperable Object Group Ref
Overview:
corbaloc::1.2@hostA:683,
:1.2@hostB:683/myObj
Motivation
Introduction
Interoperability
Interoperability
Number
of Profiles
Type_id
IIOP Profile
IIOP Profile
…
Multiple
Components Profile
IOR & IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
TAG_
INTERNET_IOP
Profile
Body
CORBA vs. DCOM
Example
IIOP
Version
Host
Port
Object
Components
Key
Evolution
Advanced
Big Picture
Number of
Components
tag_group_
version
TAG_GROUP
Component
ft_domain_
id
TAG_PRIMARY
Component
object_group_
id
Introduction to CORBA by SeyedMasoud Sadjadi
Other
Components
object_group_
version
CSE 812 04/14-16/2003
29
Clients for CORBA
Overview:
Motivation
Introduction


Interoperability
Interoperability

CORBA Client – CORBA Server
Java Client – CORBA, Java RMI, and HTTP
Server
DCOM Client – CORBA and DCOM Server
IOR & IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
standalone
CORBA
client
CORBA vs. DCOM
Example
ORB
Windows app
JAVA/CORBA
client
JAVA ORBlet
COM/CORBA link
ORB
JAVA VM (browser)
Evolution
HTTP
Advanced
Big Picture
CORBA
server
JAVA/RMI
server
HTTP
server
Introduction to CORBA by SeyedMasoud Sadjadi
DCOM
server
CSE 812 04/14-16/2003
30
Java and CORBA
Overview:
Motivation
Introduction
Interoperability
Interoperability



IOR & IOGR
CORBA Clients
Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM


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
There’s an ORB in the JDK
Example
Evolution
Advanced
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
31
CORBA vs. Java RMI
Overview:
Motivation

Introduction
Interoperability
Interoperability
IOR & IOGR
CORBA Clients

Java and CORBA
CORBA vs. RMI
CORBA vs. DCOM
Example
Evolution
Advanced
Big Picture

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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
32
DCOM 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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
33
Agenda
Overview:
Motivation
Introduction
Interoperability
Motivation
Introduction
Example
Evolution
Advanced
Interoperability
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
34
Steps to Implement “Hello World”
Overview:
Motivation
Introduction
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
We use a CROBA implementation such
as ORBacus, ORBIX, VisiBroker,
JacORB, and TAO
1. Define an interface using IDL
2. Use the IDL compiler
3. Implement the Hello object
4. Implement the server
5. Implement the client
6. Compile
7. Run
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
35
Define Interface in IDL
Overview:
Motivation
Introduction
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture

Stand-alone hello world application
public class Greeter
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
1. Define an interface using IDL
// IDL
interface Hello
{
void say_hello();
};
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
36
Implement the Hello Object
Overview:
Motivation
Introduction
Interoperability
2. Use the IDL compiler
jidl --package hello Hello.idl
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
3. Implement the Hello object
// Java
package hello;
public class Hello_impl extends HelloPOA {
public void say_hello() {
System.out.println("Hello World!");
}
}
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
37
Implement the Server (1)
Overview:
Motivation
4. Implement the Server
Introduction
Interoperability
Example
// Java
package hello;
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
Advanced
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.ORBSingleton");
Big Picture
int status = 0;
org.omg.CORBA.ORB orb = null;
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
38
Implement the Server (2)
Overview:
Motivation
4. Implement the Server (cont.)
Introduction
try {
orb = org.omg.CORBA.ORB.init(args, props);
status = run(orb);
}
catch(Exception ex) { ex.printStackTrace(); status = 1; }
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
if(orb != null) {
try {
orb.destroy();
}
catch(Exception ex) { ex.printStackTrace(); status = 1; }
}
System.exit(status);
Implement Client
Compile and Run
Evolution
Advanced
Big Picture
}
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
39
Implement the Server (3)
Overview:
Motivation
4. Implement the Server (cont.)
Introduction
Interoperability
Example
static int run(org.omg.CORBA.ORB orb)
throws org.omg.CORBA.UserException {
Steps
Write Interface
Implement Hello
Implement Server
org.omg.PortableServer.POA rootPOA =
org.omg.PortableServer.POAHelper.narrow(
orb.resolve_initial_references("RootPOA"));
Implement Client
Compile and Run
Evolution
org.omg.PortableServer.POAManager manager =
rootPOA.the_POAManager();
Advanced
Big Picture
Hello_impl helloImpl = new Hello_impl();
Hello hello = helloImpl._this(orb);
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
40
Implement the Server (3)
Overview:
Motivation
4. Implement the Server (cont.)
Introduction
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
try {
String ref = orb.object_to_string(hello);
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; }
Advanced
manager.activate();
orb.run();
Big Picture
return 0;
}
}
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
41
Implement the Client (1)
Overview:
Motivation
5. Implement the Client
Introduction
Interoperability
Example
// Java
package hello;
Steps
Write Interface
public class Client {
Implement Hello
Implement Server
Implement Client
Compile and Run
public static void main(String args[]) {
... // Same code as the server
}
Evolution
Advanced
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
42
Implement the Client (2)
Overview:
Motivation
5. Implement the Client (cont.)
Introduction
Interoperability
Example
Steps
Write Interface
Implement Hello
Implement Server
Implement Client
Compile and Run
Evolution
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(ref);
} catch(IOException ex) {ex.printStackTrace(); return 1; }
Advanced
Hello hello = HelloHelper.narrow(obj);
hello.say_hello();
return 0;
Big Picture
}
}
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
43
Compile and Run
Overview:
Motivation
6. Compile
Introduction
Interoperability
Example
Steps
Write Interface
CLASSPATH=.:your_orbacus_directory/lib/OB.jar:$CLASSPATH
export CLASSPATH
javac hello/*.java
Implement Hello
Implement Server
7. Run
Implement Client
Compile and Run
java hello.Server
Evolution
Advanced
java hello.Client
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
44
Agenda
Overview:
Motivation
Introduction
Interoperability
Motivation
Introduction
Example
Evolution
Advanced
Interoperability
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
45
CORBA Evolution (1)
Overview:
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
Horizontal,
Vertical
Facilities
CORBA 3.0
1999
Facilities
1998
Interoperability
IDL, Object
Model, ORB
CCM
Real-time
Fault Tolerance
1996
Interoperability
Networking
CORBA
Core
1991
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
46
CORBA Evolution (2)
Overview:
Motivation

–
–
–
–
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
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.
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
47
CORBA Evolution (3)
Overview:
Motivation

CORBA 2.0 (August 1996)
–
–
–
–
–
–
–
–
–
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture

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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
48
CORBA Evolution (4)
Overview:
Motivation

CORBA 2.2 (February 1998)
– POA
– DCOM Interworking
– IDL/JAVA language mapping specification.
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture

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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
49
CORBA Evolution (5)
Overview:
Motivation

–
–
–
–
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
CORBA 2.4 (October 2000)

CORBA 2.5 (September 2001)
–
–
–
–

Messaging specification
Interoperable Naming service
Notification service
Minimum and Real-time CORBA
Fault Tolerant
Messaging (editorial changes)
Portable Interceptors
Realtime CORBA, v1.2
CORBA 2.6 (December 2001)
– Common Security
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
50
CORBA Evolution (6)
Overview:
Motivation
Introduction
Interoperability
Example

CORBA 3.0 (June 2002)
– Java and Internet Integration

Evolution

Advanced

Big Picture

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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
51
Agenda
Overview:
Motivation
Introduction
Interoperability
Motivation
Introduction
Example
Evolution
Advanced
Interoperability
Big Picture
Example
CORBA Evolution
Advanced Features
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
52
POA Supports Scalability
Overview:
Motivation

Introduction
Interoperability
Example
Evolution
Advanced



POA
Object by Value
QoS
CCM


Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture


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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
53
Objects by Value
Overview:
Motivation

– They can have state and behaviour
– Not CORBA objects
– Can inherit from other valuetypes and
support interfaces
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value

QoS
CCM
Minimum CORBA
RT CORBA

FT CORBA
Others
Big Picture
A struct with added value

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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
54
Quality of Service (1)
Overview:
Motivation
Introduction
Interoperability


Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA

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
Others
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
55
Quality of Service (2)
Overview:
Motivation

Introduction
Specifying QoS Parameters
– Specify for an Object Implementation
Interoperability

Example
Evolution
– Specify for a particular Request
Advanced
POA

Object by Value
QoS
RT CORBA
FT CORBA
Others
Big Picture
In a GIOP request, QoS requirements are expressed
as part of its Service Context
– CORBA resolves conflicts
CCM
Minimum CORBA
In an object reference, QoS requirements are
expressed through a profile Component in the IOR

Asynchronous Method Invocation (AMI)
– Callback mode

Similar to providing a callback handler object
– Polling mode

Returns a valuetype object for client to check
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
56
Quality of Service (3)
Overview:
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture

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.
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
57
Quality of Service (4)
Overview:
Motivation
Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others

Ordering Invocations
– ANY: the client doesn’t 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.
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
58
CORBA Component Model (1)
Overview:
Motivation

Introduction
Interoperability
Example
Evolution
Advanced
POA
Object by Value
QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA

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
Others
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
59
CORBA Component Model (2)
Overview:
Motivation

– Basic - fully compatible with EJB
– Extended - components expose ports
Introduction
Interoperability
Example
Evolution
Advanced

QoS

CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
Component categories
– Session, Service, Entity, Process
POA
Object by Value
Two levels of component

More extra keywords like component,
home, supports
Implementations?
– K2 Component Server
– MicoCCM
– OpenCCM
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
60
Minimum CORBA (1)
Overview:
Motivation

Introduction
Interoperability
– Do not need everything that CORBA
provides
– Has size and space limits
Example
Evolution
Advanced
POA
Object by Value

QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
Designed systems with limited
resources

Some operations are omitted from
Object, ORB
Other omissions
–
–
–
–
Dynamic Invocation Interface
Dynamic Skeleton interface
Dynamic any
Interface Repository
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
61
Minimum CORBA (2)
Overview:
Motivation
Introduction
Interoperability
Example

The POA
– Default policies only for:

Evolution

Advanced

POA
Object by Value
QoS
CCM

create_thread_policy
create_implicit_activation_policy
create_servant_retention_policy
create_request_processing_policy
– No dynamic activation of POAs
– No ServantManagers
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
62
Real-Time CORBA (1)
Overview:
Motivation

– Adds QoS control capabilities to regular
CORBA.
– Improve application predictability by
bounding priority inversion
– Manage system resources end-to-end.
Introduction
Interoperability
Example
Evolution
Advanced
POA

Object by Value

QoS
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture
Features


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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
63
Real-Time CORBA (2)
Overview:
Motivation

Real-time CORBA extensions
Introduction
Interoperability
Example
Evolution
Advanced
POA
Client
RTCORBA::
Current
CORBA::
Current
Scheduling
Service
Server
Servant
RTCORBA::
Priority
POA
RTPOA
Object by Value
RTCORBA::
Threadpool
QoS
CCM
Minimum CORBA
RT CORBA
ORB
RTORB
FT CORBA
Others
Big Picture
IIOP
(GIOP/TCP)
ESIOP
(Others)
RTCORBA::
PriorityMapping
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
64
Fault Tolerant CORBA (1)
Overview:
Motivation

Introduction
Interoperability
Example
Evolution
Advanced


Aims to provide robust support for high
reliability
Defines a fault-tolerance infrastructure
Provides reliability by
– entity redundancy
POA
Object by Value

QoS
object replication (passive and active)
– request retry and redirection
– fault detection and recovery
CCM
Minimum CORBA
RT CORBA
FT CORBA
Others
Big Picture

Multiple profiles in IOR
– Example of a FT corbaloc URL

corbaloc::1.2@hostA:683,:1.2@hostB:683/myO
bj
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
65
Fault Tolerant CORBA (2)
Overview:
Motivation
Introduction
create_
object()
set_
properties()
Interoperability
Example
Evolution
Advanced
POA
Replication
Manager
notifications
create_
object()
Fault
Notifier
Fault
Detector
is_alive()
fault reports
Object by Value
QoS
Client
CCM
Minimum CORBA
Server
C
Server
S1
S2
RT CORBA
FT CORBA
Others
Big Picture
CORBA
ORB
Logging
Mechanism
Factory
Fault
Detector
Factory
Fault
Detector
CORBA
ORB
CORBA
ORB
Recovery
Mechanism
Logging
Mechanism
Recovery
Mechanism
Logging
Mechanism
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
66
Other New Specifications
Overview:
Motivation

– Defines Architecture for parallel programming
– Data is typically divided and redistributed
Introduction
Interoperability
Example
Evolution

POA
Object by Value
QoS
CCM
RT CORBA
FT CORBA
Others
Unreliable Multicast (MIOP)
–
–
–
–
Advanced
Minimum CORBA
Data Parallel Processing

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.”
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
67
Agenda
Overview:
Motivation
Introduction
Interoperability
Motivation
Introduction
Example
Evolution
Advanced
Interoperability
Big Picture
Example
CORBA Evolution
Advance Features
Big Picture
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
68
Model Driven Architecture
Overview:
Motivation
Introduction


Open vendor-neutral approach
Separating business logic from technology
Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
69
MDA Specifications
Overview:
Motivation
Introduction


Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA










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
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
70
OMA Overview (1)
Overview:
Motivation
Introduction
Interoperability
Example
OMG's vision for the component software
Not standardized by
OMG; Scope is
Single application
or vendor
Business Objects
Healthcare
Finance
Telecommunication
Compound Docs
Object Linking
Help Facilities
Desktop Mgmt
Evolution
Advanced
Big Picture
Application
Objects
Vertical
CORBA Facilities
Horizomtal
CORBA Facilities
MDA
OMA
Object Request Broker
Lifecycle
Events
Naming
Persistence
Transactions
Concurrency
CORBA Services
Introduction to CORBA by SeyedMasoud Sadjadi
Externalization
Security
Time
Properties
Query
Licensing
CSE 812 04/14-16/2003
71
Object Management Architecture (2)
Overview:
Motivation

– (a.k.a, CORBA Services)
– Domain-independent services.
– Naming Service and Trading Service.
Introduction
Interoperability
Example
Evolution

Common Services
– (a.k.a, Common Facilities and Horizontal Facilities)
– are less oriented towards end-user applications.
– Distributed Document Component Facility (DDCF).
Advanced
Big Picture
MDA
Object Services

OMA
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.
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
72
Vertical CORBA Services
Overview:
Motivation

Introduction
Official OMG specifications in vertical
market domains:
–
–
–
–
–
–
–
–
–
Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA

Business Objects
Finance/Insurance
Electronic Commerce
Healthcare
Telecommunications
Transportation
Manufacturing
Life Sciences Research
Coming: Utilities, Statistics
Bring benefits of CORBA and OMA to
Domains.
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
73
CORBA/OMA Environment
Overview:
Motivation

Starts with the Basics:
–
–
–
–
–
–
–
Introduction
Interoperability
Example
Evolution
Advanced
Big Picture
MDA
OMA

Add Services and Facilities:
–
–
–
–

IDL Interfaces & Mappings
ORB-based Architecture
Static & Dynamic Invocation Modes
GIOP/IIOP Interoperability
Optional Asynchronous Modes
Naming Service
Event Service
Security Service
Transaction Service
Object Trader Service
COM/CORBA Mapping
Then add Domain Componet
Introduction to CORBA by SeyedMasoud Sadjadi
CSE 812 04/14-16/2003
74
Related documents