14.01.2015 Aufrufe

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.5 Aufbau und Architektur<br />

Abbildung 4.22: Klassendiagramm des DWARF-Typsystems<br />

Das schematische Klassendiagramm zeigt den ELFSectionExtractor, der auf die b<strong>in</strong>ären Daten im ELFFile<br />

zugreift um Function oder DataModule Objekte zu erzeugen. Zu jedem solchen Modulobjekt wird dann mithilfe<br />

des DwarfLoader-Objekts e<strong>in</strong> Subprogramm- beziehungsweise e<strong>in</strong> DataType-Objekt erstellt.<br />

Die Parameter e<strong>in</strong>er Funktion werden durch DataComponent-Objekten ausgedrückt, welche auch die Komponenten<br />

e<strong>in</strong>es zusammengesetzten Datentyps beschreiben können. DataComponent-Objekte beschreibt dabei immer e<strong>in</strong>e<br />

Position und verweisen auf e<strong>in</strong>en Typ. Das Zusammenspiel der Klassen lässt sich anhand der Methoden erahnen, die<br />

hier zum Teil angegeben s<strong>in</strong>d.<br />

untergeordneten Datum. DataComponent-Objekte werden auch e<strong>in</strong>gesetzt, um beispielsweise die<br />

Elemente e<strong>in</strong>er Struktur zu beschreiben. Datentypen werden durch Objekte vom Typ DataType<br />

dargestellt. Sie erlauben es abzufragen, ob es sich um e<strong>in</strong>en Zeiger oder e<strong>in</strong>en zusammengesetzten<br />

Datentyp handelt. Im jeweiligen Fall kann der referenzierte Typ beziehungsweise e<strong>in</strong>e Liste mit den<br />

Elementen abgefragt werden.<br />

4.5.8.2 Schnittstellenbeschreibung aus externer Quelle<br />

Pr<strong>in</strong>zipiell ist es möglich, die benötigten Typ- und Schnittstellenbeschreibungen aus e<strong>in</strong>er anderen<br />

Quelle zu erhalten. So könnte man die Schnittstellen von Funktionen mithilfe e<strong>in</strong>er speziellen Schnittstellenbeschreibungssprache<br />

wie CORBA-IDL [Omg04] oder Microsoft-IDL [Mic07] def<strong>in</strong>ieren. E<strong>in</strong><br />

solcher Ansatz hat jedoch e<strong>in</strong>ige Nachteile.<br />

Zum e<strong>in</strong>en müssen die Beschreibungen separat und manuell gepflegt werden. Änderungen am<br />

Quellcode wirken sich nicht automatisch auf die Schnittstellenbeschreibungen aus. Inkonsistenzen <strong>in</strong><br />

den Daten können zu e<strong>in</strong>em Fehlverhalten des Verwalters führen, da zum Beispiel die Parameter falsch<br />

<strong>in</strong>terpretiert werden.<br />

E<strong>in</strong> weiterer Nachteil ist, dass mit Schnittstellenbeschreibungssprachen ke<strong>in</strong>e architekturspezifischen<br />

Informationen zum Aufbau der Datentypen ausgedrückt werden. Bei Debug<strong>in</strong>formationen s<strong>in</strong>d beispielsweise<br />

die Positionen der Elemente e<strong>in</strong>er Struktur <strong>in</strong>nerhalb des Speicherbereichs, der die Struktur<br />

ausmacht, genau angegeben. In e<strong>in</strong>er allgeme<strong>in</strong>en Schnittstellenbeschreibungssprache kann man nur<br />

den strukturellen Aufbau von Schnittstellen und Datentypen beschreiben. Die Repräsentation der Daten<br />

im Speicher ist dabei nicht festgelegt.<br />

Die Verwendung e<strong>in</strong>er Schnittstellenbeschreibungssprache hat aber auch Vorteile. Debug<strong>in</strong>formationen<br />

können nur das Wissen widerspiegeln, das <strong>in</strong> der Programmiersprache ausdrückbar ist.<br />

Die Datentypen werden jedoch nicht immer e<strong>in</strong>deutig verwendet. E<strong>in</strong> Beispiel ist e<strong>in</strong> Zeiger auf e<strong>in</strong><br />

89

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!