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.

4 Basisschicht e<strong>in</strong>es Verwalters<br />

Stellvertreter im Allgeme<strong>in</strong>en ke<strong>in</strong>e Abhängigkeiten zu anderen Anwendungsfunktionen hat, können<br />

durch das Parken e<strong>in</strong>er Funktion andere Daten- und Funktionen ebenfalls nicht mehr benötigt werden.<br />

Abbildung 4.23 zeigt das anhand e<strong>in</strong>es e<strong>in</strong>fachen Beispiels.<br />

(a) createThread wird durch Stellvertreter ersetzt<br />

(b) weitere Module werden geparkt bzw. entfernt<br />

(c) Endergebnis<br />

Abbildung 4.23: Entfernen von abhängigen Modulen beim Parken<br />

Anhand e<strong>in</strong>es Ausschnitts aus dem vere<strong>in</strong>fachten Abhängigkeitsgraphen um die Funktion createThread, zeigen<br />

die Teilabbildungen die Auswirkungen beim Parken dieser Funktion. Da die Funktion durch e<strong>in</strong>en Stellvertreter ersetzt<br />

wurde, werden e<strong>in</strong>ige abhängige Module nicht mehr referenziert. Sie können daher ebenfalls geparkt werden. E<strong>in</strong><br />

Stellvertreter muss lediglich für die Funktion createThread e<strong>in</strong>gesetzt werden, da sie die e<strong>in</strong>zige ist, die noch vom<br />

verbleibenden Programm referenziert wird.<br />

Funktionen, die durch das Parken e<strong>in</strong>er Funktion im Abhängigkeitsgraphen nicht mehr erreichbar<br />

s<strong>in</strong>d, werden daher entfernt, wenn es von der Kontrollschicht gewünscht wird. Da diese Funktionen<br />

nicht mehr referenziert werden, muss auch ke<strong>in</strong> Stellvertreter <strong>in</strong>stalliert werden. Bei Datenmodulen<br />

wird der aktuelle Zustand gesichert, um ihn wieder herzustellen, wenn das Modul durch e<strong>in</strong>en späteren<br />

Bedarf wieder <strong>in</strong>stalliert wird.<br />

Das Parken von e<strong>in</strong>zelnen Datenmodulen kann nur angeboten werden, wenn das bedarfsgesteuerte<br />

Installieren für Datenmodule unterstützt wird. Ansonsten werden Datenmodule nur <strong>in</strong> Abhängigkeit<br />

e<strong>in</strong>er Funktion geparkt. Außerdem muss die Kontrollschicht je nach Situation damit rechnen, dass die<br />

Funktion zurzeit aktiv ist und die Operation nicht durchgeführt werden kann.<br />

4.6.3 Ersetzen und Aktualisieren von Modulen<br />

Das Ersetzen e<strong>in</strong>es Moduls entspricht zunächst dem Austauschen e<strong>in</strong>es Anwendungsmoduls durch e<strong>in</strong><br />

anderes Anwendungsmodul. Es unterscheidet sich jedoch von den bisher vorgestellten Verwendungen<br />

der Basisoperation “Austauschen”, da bisher immer e<strong>in</strong> Stellvertreter beteiligt war, von dem bekannt ist,<br />

dass er ke<strong>in</strong>e Abhängigkeiten zu anderen Anwendungsmodulen hat. Beim Ersetzen hat normalerweise<br />

sowohl das ursprüngliche als auch das neue Modul Abhängigkeiten auf andere Module. E<strong>in</strong> Beispiel<br />

e<strong>in</strong>es üblichen Falles ist das Aktualisieren e<strong>in</strong>er Funktion, welche auf globale Daten zugreift. Die entsprechenden<br />

Datenmodule müssen gleichzeitig mit dem Funktionsmodul angepasst oder ausgetauscht<br />

werden.<br />

Da ke<strong>in</strong> Stellvertreter direkt beteiligt ist, wird der Vorgang immer von der Kontrollschicht ausgehend<br />

gestartet. Es kann jedoch se<strong>in</strong>, dass der Anlass des Ersetzens e<strong>in</strong>e Benachrichtigung durch den<br />

verwalteten Knoten war.<br />

92

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!