next up previous contents
Next: 2.2.1 Verwendung und Probleme Up: 2 MASA-ORB Schnittstelle Previous: Lösungsansatz

2.2 Tie delegation

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
\begin{figure}
 \begin{center}
 \leavevmode 
\epsffile {Bilder/Tie_delegation_beispiel.eps}

 \end{center}\end{figure}

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 up previous contents
Next: 2.2.1 Verwendung und Probleme Up: 2 MASA-ORB Schnittstelle Previous: Lösungsansatz
Copyright Munich Network Management Team