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 Basisschicht e<strong>in</strong>es Verwalters<br />

Abbildung 4.11: Vorgehen beim Austausch e<strong>in</strong>es Moduls<br />

die entfernt werden sollen, durch neue Module erfüllt werden müssen. Im e<strong>in</strong>fachsten Fall wird e<strong>in</strong>e<br />

Funktion durch e<strong>in</strong>en Stellvertreter ausgetauscht. Dieser ist vollständig schnittstellenkompatibel, da er<br />

dieselben Symbole wie das ursprüngliche Modul anbietet und erwartet unter denselben Umständen<br />

aufgerufen zu werden. Bei Datenmodulen bedeutet die Schnittstellenkompatibilität, dass sie dieselbe<br />

Struktur besitzen. Änderungen s<strong>in</strong>d daher nur begrenzt möglich. E<strong>in</strong>e kompatible Änderung stellt<br />

zum Beispiel das H<strong>in</strong>zufügen e<strong>in</strong>es zusätzlichen Elements am Ende e<strong>in</strong>er Struktur dar, da hierbei die<br />

existierende Schnittstelle erhalten bleibt und lediglich erweitert wird. Das Entfernen von Elementen<br />

e<strong>in</strong>er Struktur ist h<strong>in</strong>gegen nicht zulässig, da die Elemente möglicherweise noch im vorhandenen Code<br />

benötigt werden.<br />

Bei Schnittstellenkompatibilität handelt es sich somit um e<strong>in</strong>e re<strong>in</strong> syntaktische Eigenschaft, die<br />

sicherstellt, dass die Software überhaupt ausgeführt werden kann. Sie sagt nichts über die Änderung<br />

der semantischen Eigenschaften des Moduls aus. Von der Infrastruktur werden hieran auch ke<strong>in</strong>e<br />

Forderungen gestellt. Es ist die Aufgabe der Kontrollschicht beziehungsweise des Adm<strong>in</strong>istrators, die<br />

Kompatibilität der funktionalen und nicht-funktionalen Eigenschaften der Module zu berücksichtigen.<br />

S<strong>in</strong>d die Schnittstellen kompatibel, so müssen die Abhängigkeiten der neuen Module analog zur<br />

Installation von Modulen überprüft und erfüllt werden. Sollte also das neue Modul Abhängigkeiten<br />

haben, die auf dem Knoten nicht erfüllt s<strong>in</strong>d, so müssen zusätzliche Module zur Installation ausgewählt<br />

werden. Auf der anderen Seite kann das neue Modul auch weniger Abhängigkeiten haben. Dadurch<br />

kann es vorkommen, dass Module auf dem Gerät nicht mehr benötigt werden. Diese werden im<br />

Normalfall nach dem Austausch entfernt.<br />

Das Austauschen verwendet somit die beiden bereits bekannten Teiloperationen “Installieren” und<br />

“Entfernen” und fügt das Anpassen der Verweise als neue Teiloperation h<strong>in</strong>zu.<br />

4.4 Verweise auf Module<br />

Um Module auszutauschen oder zu entfernen, müssen alle Verweise auf diese Module gefunden<br />

werden. Daraufh<strong>in</strong> können die Verweise entweder angepasst werden oder es kann sichergestellt werden,<br />

dass ke<strong>in</strong>e Verweise mehr existieren. Auch bei der Installation müssen die Referenzen zwischen<br />

den Modulen überprüft werden. Dieser Abschnitt beschäftigt sich daher mit den Möglichkeiten und<br />

Problemen beim Identifizieren und Modifizieren von Verweisen auf e<strong>in</strong> Modul.<br />

4.4.1 Klassifikation von Verweisen<br />

Es gibt verschiedene Arten, wie e<strong>in</strong> Modul <strong>in</strong> e<strong>in</strong>em Programm referenziert werden kann. Im Folgenden<br />

unterteilen wir die Verweise nach der Art, wie sie entstehen.<br />

64

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!