0% found this document useful (0 votes)
4 views30 pages

Rmi Over Iiop: David Heisser Manager, Java Enterprise Technologies Simon Nash Senior Technical Staff Member, IBM

The document provides an overview of RMI over IIOP, detailing its history, goals, design, and performance. It highlights the interoperability between Java and C++ applications, the mapping of Java technology to IDL, and the components involved in RMI-IIOP. Additionally, it discusses the development and standardization status of RMI-IIOP, along with resources for further information.

Uploaded by

Arun Seetharaman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views30 pages

Rmi Over Iiop: David Heisser Manager, Java Enterprise Technologies Simon Nash Senior Technical Staff Member, IBM

The document provides an overview of RMI over IIOP, detailing its history, goals, design, and performance. It highlights the interoperability between Java and C++ applications, the mapping of Java technology to IDL, and the components involved in RMI-IIOP. Additionally, it discusses the development and standardization status of RMI-IIOP, along with resources for further information.

Uploaded by

Arun Seetharaman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

RMI over IIOP

David Heisser
Manager, Java Enterprise Technologies
Simon Nash
Senior Technical Staff Member, IBM
Agenda

• History of RMI over IIOP


• RMI over IIOP Overview
• CORBA - RMI Comparisons
• Current Status
• RMI over IIOP Design
• Performance
RMI Heritage

• Java™ Distributed Object Programming


– Pervasive
• JDK™ 1.1 software
• Extended features in JDK 1.2 software
• Enterprise JavaBeans™ technology
– Easy to use

• Open Survey on Distributed Strategy


– RMI ideal for Java Java technology
• Byte code implementation always available
– CORBA standard for Enterprise
• Multi-vendor; Cross language
Goals for RMI-IIOP

• Allow interfaces to be defined in RMI


– IDL can be generated from RMI interfaces
– Make changes only in CORBA world

• Allow interoperability:
– Both C++ and Java technology-based
applications can
• Implement interfaces
• Call interfaces
– C++ developers use IDL interfaces
– Developers using Java technology see
RMI interfaces
Object-by-Value Goals

• Allow objects to freely move around


the network
• No implementation language constraints
Java™ Technology to IDL
Mapping Goals

• Generate clean IDL


– As if written by well-intentioned human

• Maximize the RMI subset


• Support Java programming language features
– Overloaded methods
– Names differing only in case
– Exception hierarchies, etc.

• Result is a trade-off
– Support common cases well
– Less concerned about obscure cases
Java™ Technology to IDL
Mapping Non-Goals

• Not all of IDL supported


– No support for struct, union, inout

• The mapping is not reversible


– Not the inverse of OMG IDL to Java
language mapping
What Is RMI-IIOP?

• Large subset of JDK™ 1.2 RMI API over


CORBA IIOP
– True subset of RMI over JRMP
– RMI ease of use

• Implements the OMG/CORBA specs


– CORBA objects-by-value extension
– CORBA Java language to IDL Mapping
– Genuine interoperability with CORBA languages
RMI-IIOP Programming

• New base class PortableRemoteObject


– Like UnicastRemoteObject
– Supports both IIOP and JRMP
– Tie-style skeletons

• Need explicit "unexport" call


– Can’t rely on distributed garbage collection

• RMI registry JNDI™/CosNaming


• Casts of remote interfaces narrows
New rmic Features

• New options for rmic


– Generate IIOP stubs/skeletons
– Generate IDL from Java Interfaces (RMI)

• Remote interface as input


– Can be implemented in any language

• Strictly compatible JRMP stubs generated


Java IDL and RMI-IIOP

• Java IDL = IDL to Java language mapping


– Write IDL interface definitions
– Use tools to map IDL to Java
– Write Java implementation code

• RMI-IIOP = Java language to IDL mapping


– Write Java RMI interfaces
– Write Java implementation code
– Use tools to generate IDL if desired
– Write other language implementation
Distributed Systems Strategy

• Continue Java IDL development


– Allows Java apps to access CORBA services
• IDL interfaces
• Standard IIOP protocol

• Continue RMI development


– Uncompromised Java distributed programming
using Java language semantics
• Proprietary protocol (JRMP)

• Continue RMI over IIOP development


– RMI style + cross language interoperability
• Full CORBA compliance
• Maintain RMI syntax
Development Status

• Sun and IBM codeveloped implementation


– Standard Extension on both 1.1.6 and 1.2
– Early Access release Sept. ’98
– Beta Dec. ’98
– FCS June 10, 1999

• Bundled into the next JDK™ platform


– All RMI-IIOP functionality
– Compiler written entirely in the Java language
Standardization Status

• IDL Objects By Value Spec


– Approved by OMG in Feb. ’98
– Final RTF Mar. ’99
– Incorporated into CORBA 2.3

• Java language to IDL mapping Spec


– Initial draft in Sept. ’97
– Formal approval by OMG in Apr. ’98
– Final RTF Mar. ’99
– Chap. 28 in CORBA 2.3

• OMG ‘Proposes’, Sun ‘Disposes’


RMI-IIOP Components

• Runtime (including ORB)


• Stub Generator
• IDL Generator
• IDL to Java Language Compiler
(separate download)
• Samples
• Documentation
RMI over IIOP (“Java to Java”)

Java RMI
Interface
Definition Java RMI
Java RMI
Client Implementation

IIOP IIOP
Stub Tie

ORB Runtime ORB Runtime


IIOP
RMI over IIOP (“Java to C++”)

Java RMI
Interface
Definition
Java RMI C++ CORBA
Client Implementation
IDL

IIOP C++ CORBA


Stub Skeleton

ORB Runtime C++ ORB Runtime


IIOP
ORB Runtime

Java RMI
Interface
Definition Java RMI
Java RMI
Client Implementation

IIOP IIOP
Stub Tie

ORB Runtime ORB Runtime


IIOP
ORB Runtime

• User APIs
– javax.rmi.PortableRemoteObject
– Server base class, narrow method

• Enhanced Java IDL ORB


– Objects By Value support
– Java to IDL Mapping extensions

• Portability APIs
– Utility functions for portable stubs and ties
– Runtime functionality common across ORBs
– Java language serialization over IIOP
Stub Generator

Java RMI
Interface
Definition Java RMI
Java RMI
Client Implementation

IIOP IIOP
Stub Tie

ORB Runtime ORB Runtime


IIOP
Stub Generator

• Enhanced version of rmic compiler


– New option -iiop generates tie and stubs
– Can specify an interface to get a stub only

• Can generate both IIOP and JRMP stubs


– Can do “dual export” to IIOP and JRMP

• RMI semantics supported over IIOP


– References to shared objects
– Exception handling

• Optimization for local calls


– Preserving remote/local transparency
IDL Generator

Java RMI
Interface
Definition
Java RMI C++ CORBA
Client Implementation
IDL

IIOP C++ CORBA


Stub Skeleton

ORB Runtime C++ ORB Runtime


IIOP
IDL Generator

• Generates OMG IDL from Java RMI


interface definitions
– New option -idl on rmic compiler
– See OMG Java to IDL Mapping spec for details

• Use generated IDL to produce bindings


for other languages
– Need IDL compiler that supports CORBA 2.3

• Java language types passed by value need


to be reimplemented for other languages
IDL to Java™ Language Compiler

• Early access of next IDL to Java language


compiler
– Written in the Java programming language
– Supports CORBA 2.3 IDL (nearly!)

• Available as separate download


• Not intended for production use
– Objects By Value Java bindings will change

• Can be used with RMI-IIOP to experiment


with generated IDL
Performance

Primitive data types (geometric mean)

2.5

1.5
scalar
1 array[1]

0.5

0
JRMP beta 7b 8c fcs2 fcs4
Performance

Remote object reference

3 scalar
array[1]
2

0
JRMP beta 7b 8c fcs2 fcs4
Performance

Array of 64 elements

250

200

150
structure
100 obj ref

50

0
JRMP beta 7b 8c fcs2 fcs4
Resources

• RMI-IIOP home page


– http://java.sun.com/products/rmi-iiop/index.html
– “Additional Resources” link to SpaceConquest

• OMG Java language to IDL Mapping


specification
– ftp://ftp.omg.org/pub/docs/ptc/99-03-09.pdf

• OMG Objects By Value specification


– ftp://ftp.omg.org/pub/docs/orbos/98-01-18.pdf

• RMI over IIOP BOF, Friday, 12:15pm,


Room C3

You might also like