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.6 Operationen zur dynamischen Konfiguration e<strong>in</strong>es Knotens<br />

Für das Ersetzen muss e<strong>in</strong>e Abbildung erstellt werden, welche die Änderung an der Struktur<br />

darstellt. Dar<strong>in</strong> muss vermerkt se<strong>in</strong>, welche Module neu h<strong>in</strong>zukommen, welche Module durch andere<br />

ausgetauscht und welche Module komplett entfernt werden.<br />

Das Erstellen der Abbildung kann man automatisieren, <strong>in</strong>dem man die Namen der Module heranzieht.<br />

Ausgangsbasis ist je e<strong>in</strong> Behälter mit der alten und e<strong>in</strong>er mit der neuen Konfiguration. Die Modulnamen<br />

werden mite<strong>in</strong>ander abgeglichen, dabei wird angenommen, dass Module mit gleichem Namen<br />

aufe<strong>in</strong>ander abgebildet werden sollen. Dieses automatische Vorgehen kann jedoch Sonderfälle nicht<br />

berücksichtigen, wenn beispielsweise e<strong>in</strong>e Funktion aufgeteilt wurde und im Rahmen dessen e<strong>in</strong>en<br />

anderen Namen erhalten hat. Daher dient die automatisch erstellte Abbildung nur als Ausgangsbasis<br />

für die Kontrollschicht, welche Änderungen vornehmen kann und die endgültige Abbildung liefert.<br />

Das Umsetzen der Abbildung und somit das Durchführen der Ersetzung wird von der Basisschicht<br />

vorgenommen. Bei e<strong>in</strong>zelnen Fällen wird die Kontrollschicht e<strong>in</strong>gebunden, um anwendungsspezifische<br />

Entscheidungen zu treffen.<br />

Im Folgenden sollen die verschiedenen Fälle anschaulich dargestellt werden. Als Beispiel soll<br />

e<strong>in</strong>e Funktion durch e<strong>in</strong>e neue Version ersetzt werden. Die Abhängigkeiten im Beispiel s<strong>in</strong>d globale<br />

Variablen, das Vorgehen ist jedoch ähnlich für abhängige Funktionen anwendbar.<br />

Neue Module Die neue Funktion benötigt e<strong>in</strong>e zusätzliche globale Variable. In diesem Fall wird das<br />

Modul, welches die neue Variable repräsentiert, <strong>in</strong>stalliert.<br />

Unbenutzte Module Im umgekehrten Fall wird e<strong>in</strong>e Variable nicht mehr von der neuen Funktion<br />

genutzt. Es muss ermittelt werden, ob das entsprechende Datenmodul noch von anderen Modulen<br />

referenziert wird. Kann mit Sicherheit festgestellt werden, dass es nicht mehr verwendet wird, so<br />

wird es entfernt.<br />

Unveränderte Module Die neue Funktion verwendet e<strong>in</strong>e globale Variable, die auch von der ursprünglichen<br />

Funktion verwendet wurde. Handelt es sich um dieselbe Variable, so muss ke<strong>in</strong>e<br />

Anpassung vorgenommen werden.<br />

Ersetzte Module Die neue Funktion verwendet e<strong>in</strong>e Variable, die den gleichen Namen hat wie e<strong>in</strong>e<br />

zuvor genutzte Variable, jedoch nicht identisch ist. Sie hat beispielsweise e<strong>in</strong>en anderen Datentyp.<br />

Dann ist zwischen zwei Fällen zu unterscheiden:<br />

• Wird die alte Variable ansonsten nicht mehr referenziert, so ist davon auszugehen, dass<br />

sie durch die neue Variable ersetzt wurde. Vor dem Austauschen des Moduls wird die<br />

Kontrollschicht beauftragt, den Zustand aus dem Speicherbereich der alten Variablen <strong>in</strong><br />

den Speicherbereich der neuen Variablen zu transferieren und umzuwandeln. Details dazu<br />

s<strong>in</strong>d im nächsten Abschnitt zu f<strong>in</strong>den.<br />

• Wird die alte Variable h<strong>in</strong>gegen noch von anderen Stellen referenziert, so handelt es sich vermutlich<br />

um e<strong>in</strong>e unvollständige Abbildung. Die Kontrollschicht wird daher benachrichtigt<br />

und kann <strong>in</strong> diesem Fall explizit anweisen, das Modul als neues Modul zu <strong>in</strong>stallieren.<br />

Zustandsübertragung<br />

Im Rahmen der Aktualisierung werden Datenmodule ersetzt. Dabei muss der Zustand des ursprünglichen<br />

Moduls <strong>in</strong> das Format des neuen Moduls umgewandelt werden. Dieser Vorgang ist im Allgeme<strong>in</strong>en<br />

anwendungsabhängig und kann nicht automatisch durchgeführt werden. Die Basisschicht bietet jedoch<br />

Unterstützung an.<br />

93

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!