Projektstudium SS98 - distributed computing


CORBA IDL nach Java Mapping

In März 1997 vollendete die OMG den ersten Teil ihres CORBA IDL-to-Java Mapping Spezifikation. Heutzutage bieten die meisten Java ORBs fast komplette Implementationen der neuen Sprachanbindung.

Java Programmierer werden mit den Language Mappings für die Basis CORBA Typen vertraut sein. Allerdings verbreiten möglicherweise die zusammengesetzten Typen Kopfzerbrechen. Sie basieren auf C++ Konstrukten, die absichtlich von Java entfernt sind. Daher sind sie etwas schwerer zu verarbeiten-wie soll eine C++ Union oder ein C++ typedef in Java repräsentiert werden?

CORBA IDL ist die Sprache zur Beschreibung von Multiplattform Services in einer heterogenen Welt. Eine Sache, die IDL-to-Java zu einem ausgezeichneten Hilfsmittel macht, ist die Transformation von Konstrukten, die in anderen Sprachen ihren Ursprung haben, nach Java. Diese Transformation befreit den Programmierer von dem, alles selbst machen zu müssen.

Das neue IDL-to-Java Language Mapping definiert zusätzlich ein Interface für portable Stubs und Skeletons, die CORBA Anbieter implementieren müssen. Dadurch lassen sich Stubs und Skeletons erzeugen, die nicht für jeden ORBs neu compiliert werden müssen. Der gleiche Stub Bytecode läuft auf jedem Java ORB, der das Interface unterstützt.

 

Überblick über das IDL-to-Java Mapping

CORBA IDL

Java

General Constructs

Module package
Benutzerdefinierte Exceptions Java Klasse, die org.omg.CORBA.UserException erweitert.
In Parameter Normale Java Parameter
Out und inout Parameter Java Holder Klassen
Typecasts Java Helper Klassen
Attribute Java Lese und Manipulationsmethoden dem Namen des Attributs

Einfache Typen

Const Public static final Feld
Boolean, TRUE, FALSE Boolean, true, false
Char, wchar Char
Octet Byte
String, wsrting Java.lang.String
Short, unsigned short Short
Long, unsigned long Int
Long long, unsigned long long Long
Float Float
Double Double

Konstruierte Typen

Interface Interface
Sequence Array
Array Array
Struct Java Klasse mit dem gleichen Namen wie der Struct Typ.
Enum Java Klasse mit dem gleichen Namen wie der enum Typ
Union Java Klasse mit dem Namen der Union.
Typedef Java besitzt kein Typedef Konstrukt. Es wird deswegen in einen einfachen IDL Typen oder benutzerdefinierten IDL Typen transformiert.
Any Java class org.omg.CORBA.Any

Server-Side Mapping

Server Implementation unter Verwendung von Vererbung Schreib eine Implementationsklasse, die die IDL generierte Klasse <Name_des_Interfaces>ImplBase erweitert
Server Implementation unter Verwendung von Delegation (zum Beispiel Tie) IDL-generierte tie<Interface_Name> Klasse, die delegate calls zur Implementationsklasse bietet. Die Implmentationsklasse implementiert ein oder mehr IDL definierte Interfaces (jede von ihnen wird durch eine IDL generierte <Interface_Name>Operation Interface repräsentiert).
POA root servant Klasse Java Klasse org.omg.CORBA.portable.ObjectImpl

Pseudo-Objekte nach Java Klassen (Auszug)

CORBA::ORB Java Klasse org.omg.CORBA.ORB
CORBA::Object Java Klasse org.omg.CORBA.Object
CORBA::NamedValue Java Klasse org.omg.CORBA.NamedValue
CORBA::NVList Java Klasse org.omg.CORBA.NVList
CORBA::Request Java Klasse org.omg.CORBA.Request
CORBA::ServerRequest (und DSI) Java Klasse org.omg.CORBA.ServerRequest (und DSI Mappings)
CORBA::TypeCode Java Klasse org.omg.CORBA.TypeCode
CORBA::TCKind Java Klasse org.omg.CORBA.org.omg.CORBA.TCKind

 

nächste Seite 


© Copyright 1998 André Möller, Oliver Mentz & Magnus Wiencke