Next: 2.2.1 Verwendung und Probleme
Up: 2 MASA-ORB Schnittstelle
Previous: Lösungsansatz
Ein weiteres Problem beim Austausch des CORBA ORBs in MASA entsteht im
Zusammenhang mit tie delegation, das zunächst kurz beschrieben
werden soll. Bei tie delegation handelt es sich um IDL-to-Java
Mapping auf Serverseite, d.h. die Abbildung der
IDL-Schnittstellenbeschreibung eines Objekts in seine Java-Klassen auf
Serverseite, die Skeletons. Das Standardverfahren wird als base
inheritance bezeichnet. Dabei wird die Klasse, die vom
Programmierer als Implementation eines Objekts realisiert wird, als
Unterklasse der vom IDL-to-Java-Compiler generierten Klasse
_interface_nameImplBase. Deshalb auch die Bezeichnung
base inheritance. tie delegation ist eine Alternative zur
base inheritance ([OrHa 98],s.S.460), ermöglicht die
Abbildung von Mehrfachvererbung in IDL nach Java. Dies wird in
Abbildung 2.2 als Beispiel der drei IDL
Interfaces A, B, C und der Implementierung von
C in Java dargestellt. Das Interface C erbt von A und
B deren Attribute und Methoden und deklariert selbst ein eigenes
Attribut und eine Methode. Vom IDL-to-Java Compiler werden die Klassen
_CImplBase und _tie_C, sowie die Interfaces C und
COperations in Java erzeugt. Die Klasse _CImplBase
implementiert das Interface C, dessen Methoden in
_CImplBase nicht ausprogrammiert sind. Bei base inheritance
fungiert _CImplBase als abstrakte Oberklasse, für die
Klasse, in der das CORBA Objekt implementiert wird. Bei tie
delegation dient die abstrakte Klasse _CImplBase nur als
Oberklasse der Klasse _tie_C, in der die vereinte Menge
aller Attribute und Methoden von A, B und C
implementiert ist. _tie_C besitzt ein ein Attribut
_delegate, das durch das Interface COperations
spezifiziert ist und an das alle Aufrufe an Attribute und Methoden
von A, B und C weitergeleitet werden. Dieses
Interface COperations muß von einer Klasse implementiert
werden um das CORBA Objekt C zu realisieren.
Abbildung:
Beispiele für tie delegation
|
Durch die Indirektheit, auf der tie delegation basiert, ist
dieser Mechnismus für den Programmierer weniger intuitiv als das
Standardverfahren mit base inheritance zur Implementierung von
IDL-Interfaces und erfordert Performanceeinbußen auf Serverseite, so
daß tie delegation nur eingestzt werden sollte, wenn es wirklich
nötig ist, d.h. Mehrfachvererbung abgebildet werden muß oder
Indirektheit erwünscht ist.
Next: 2.2.1 Verwendung und Probleme
Up: 2 MASA-ORB Schnittstelle
Previous: Lösungsansatz
Copyright Munich Network Management Team