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 Kontroll- und Verwaltungsschicht<br />

der Anwendung umzusetzen, aber auch, um Fehlerzustände bei der Interpretation der Anwendung zu<br />

melden (RuntimeException).<br />

Wird <strong>in</strong> e<strong>in</strong>er Anwendung ke<strong>in</strong>e Ausnahme abgefangen, so muss auch ke<strong>in</strong> Bauste<strong>in</strong> zur Ausnahmeverarbeitung<br />

vorhanden se<strong>in</strong>. Ob Ausnahmen abgefangen werden, kann automatisch bestimmt werden,<br />

da geprüft werden kann, ob e<strong>in</strong>e Ausnahmebehandlung vorhanden ist.<br />

Das Auslagern der Ausnahmeverarbeitung ist s<strong>in</strong>nvoll, wenn nur wenige Ausnahmen geworfen<br />

werden. Dies sollte im Allgeme<strong>in</strong>en der Fall se<strong>in</strong>, denn der Ausnahmemechanismus soll auf e<strong>in</strong>e Abweichung<br />

von der normalen Ausführung h<strong>in</strong>deuten und e<strong>in</strong>en möglichen Fehlerzustand anzeigen. Durch<br />

die Auslagerung können auch die Ausnahmebehandlungstabellen der Klassenverwaltung ausgelagert<br />

werden, da sie nur von der Ausnahmeverarbeitung gebraucht werden.<br />

5.4.7 Codevorbereitung<br />

In der Codevorbereitung s<strong>in</strong>d alle Bauste<strong>in</strong>e zusammengefasst, die notwendig s<strong>in</strong>d, um neue Klassen<br />

verwenden zu können.<br />

5.4.7.1 Klassenlader<br />

Java bietet Anwendungen die Möglichkeit, zur Laufzeit neue Klassen zu laden und damit neue Typen zu<br />

def<strong>in</strong>ieren. Diese Funktionalität wird durch den Klassenlader realisiert. Er bekommt e<strong>in</strong>e Klassendatei<br />

als E<strong>in</strong>gabe und verändert die <strong>in</strong>ternen Datenstrukturen der virtuellen Masch<strong>in</strong>e entsprechend, sodass<br />

die neue Klasse verwendet werden kann. Dabei werden neue Typen <strong>in</strong> die Typhierarchie e<strong>in</strong>gefügt,<br />

neue Objektstruktur-, Klassenstruktur- und Methodenbeschreibungen erzeugt. Außerdem werden neue<br />

Ausnahmebehandlungstabellen angelegt und der Code der Methoden bereitgelegt. Im Rahmen dessen<br />

wird auch Speicher für die Klassenvariablen der Klasse angefordert. Der benötigte Speicherplatz wird<br />

mithilfe der Klassenlayoutverwaltung bestimmt.<br />

Abbildung 5.14: Abhängigkeiten des Klassenladers<br />

Das Laden neuer Klassen kann explizit <strong>in</strong> der Anwendung angestoßen werden. Darüber h<strong>in</strong>aus kann<br />

es beim B<strong>in</strong>den e<strong>in</strong>er neu geladenen Klasse dazu kommen, dass weitere Klassen nachgeladen werden<br />

118

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!