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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.4 E<strong>in</strong>e JVM als Baukasten<br />

5.4 E<strong>in</strong>e JVM als Baukasten<br />

In diesem Abschnitt soll e<strong>in</strong>e Aufteilung e<strong>in</strong>er JVM <strong>in</strong> Bauste<strong>in</strong>e erfolgen. Dabei sollen die Abhängigkeiten<br />

der Bestandteile verdeutlicht werden, um geeignete Bauste<strong>in</strong>e zu f<strong>in</strong>den, die als entfernter<br />

Dienst angeboten werden können. Die Aufteilung erfolgt hauptsächlich <strong>in</strong> funktionale E<strong>in</strong>heiten, das<br />

heißt, jeder Bauste<strong>in</strong> erfüllt e<strong>in</strong>e bestimmte Funktion oder bietet e<strong>in</strong>en Dienst an. Neben den funktionalen<br />

Bauste<strong>in</strong>en werden aber auch e<strong>in</strong>ige Datenstrukturen als Bauste<strong>in</strong>e e<strong>in</strong>geführt. Dabei handelt es<br />

sich hauptsächlich um Klassendaten, welche die Anwendung beschreiben. Diese Daten werden von<br />

verschiedenen anderen funktionalen Bauste<strong>in</strong>en verarbeitet und ausgewertet und stellen somit e<strong>in</strong>e<br />

wichtige Abhängigkeit dar. Abbildung 5.3 zeigt e<strong>in</strong>e grobe Übersicht über die Bauste<strong>in</strong>e e<strong>in</strong>er JVM<br />

und die Abhängigkeiten zwischen diesen. In den folgenden Abschnitten über die e<strong>in</strong>zelnen Bauste<strong>in</strong>e<br />

ist jeweils e<strong>in</strong>e detailliertere Abbildung gegeben. Funktionale Bauste<strong>in</strong>e s<strong>in</strong>d dabei gelb h<strong>in</strong>terlegt,<br />

re<strong>in</strong>e Daten werden durch e<strong>in</strong>en weißen H<strong>in</strong>tergrund gekennzeichnet.<br />

Abbildung 5.3: Bauste<strong>in</strong>e e<strong>in</strong>er JVM<br />

Die Abbildung zeigt e<strong>in</strong>e grobe und vere<strong>in</strong>fachte Übersicht der Bauste<strong>in</strong>e e<strong>in</strong>er JVM. Detailliertere Abbildungen f<strong>in</strong>den<br />

sich <strong>in</strong> den folgenden Abschnitten.<br />

Weiterh<strong>in</strong> sollen Varianten der e<strong>in</strong>zelnen Dienste und Bauste<strong>in</strong>e betrachtet werden. Dabei werden<br />

die Vor- und Nachteile der verschiedenen Versionen hervorgehoben und Szenarios beschrieben, <strong>in</strong><br />

denen die Varianten s<strong>in</strong>nvoll e<strong>in</strong>gesetzt werden können. Im Zusammenhang damit werden auch die<br />

Grenzen der E<strong>in</strong>setzbarkeit e<strong>in</strong>er Variante und die Ereignisse aufgezeigt, die dazu führen, dass e<strong>in</strong>e<br />

bestimmte Variante nicht mehr genutzt werden kann.<br />

5.4.1 Ausführungse<strong>in</strong>heit<br />

Die zentrale Aufgabe e<strong>in</strong>er virtuellen Masch<strong>in</strong>e ist das Ausführen von Anwendungen. Als Ausführungse<strong>in</strong>heit<br />

bezeichnen wir <strong>in</strong> unserem Baukasten die E<strong>in</strong>heit, die für das Ausführen des Anwendungscodes<br />

zuständig ist. Pr<strong>in</strong>zipiell existieren jedoch zwei konzeptionell unterschiedliche Ansätze, e<strong>in</strong>e Anwendung<br />

für e<strong>in</strong>e virtuelle Masch<strong>in</strong>e auf e<strong>in</strong>er echten Masch<strong>in</strong>e auszuführen: die Interpretation und das<br />

Kompilieren.<br />

Der traditionelle Ansatz ist die Interpretation des Bytecodes. Hierbei wird der Bytecode zur Laufzeit<br />

analysiert und daraufh<strong>in</strong> der Zustand der virtuellen Masch<strong>in</strong>e entsprechend den Operationen im<br />

107

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!