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

4.6 Operationen zur dynamischen Konfiguration e<strong>in</strong>es Knotens<br />

Aufbauend auf den <strong>in</strong> Abschnitt 4.3 beschriebenen Mechanismen, können Verwaltungsoperationen<br />

zur Unterstützung und Konfiguration von kle<strong>in</strong>en Knoten realisiert werden. Die Basisschicht stellt die<br />

grundlegende Infrastruktur zur Realisierung dieser Methoden bereit. Die Steuerung der Operationen ist<br />

jedoch Aufgabe der Kontrollschicht, da strategische Entscheidungen den genauen Ablauf bee<strong>in</strong>flussen.<br />

In diesem Abschnitt wird die Realisierung der Operationen dargestellt. Dabei wird aufgezeigt,<br />

welche Entscheidungen von der Kontrollschicht zu treffen s<strong>in</strong>d.<br />

4.6.1 Bedarfsgesteuertes Installieren von Modulen<br />

Das bedarfsgesteuerte Installieren wird durch e<strong>in</strong> ActionHook-Objekt vom Untertyp<br />

InstallOnDemand realisiert. Es verwendet die e<strong>in</strong>fache Stellvertreterfabrik, da außer der Identifikation<br />

der Funktion ke<strong>in</strong>e weiteren Informationen benötigt werden.<br />

Welche Funktionen erst bei Bedarf <strong>in</strong>stalliert werden sollen, entscheidet die Kontrollschicht bei<br />

der Erzeugung des <strong>in</strong>itialen Abbildes. Ebenso muss die Kontrollschicht dafür sorgen, dass zu dem<br />

Zeitpunkt, an dem die Funktion <strong>in</strong>stalliert werden soll, genügend Speicher verfügbar ist.<br />

Der Vorgang des Installierens wird durch den Austauschmechanismus realisiert. Abhängigkeiten des<br />

neu zu <strong>in</strong>stallierenden Moduls müssen dabei aufgelöst werden. Funktionen, von denen es abhängig ist,<br />

können entweder mit<strong>in</strong>stalliert oder durch Stellvertreter ersetzt werden. Datenmodule müssen immer<br />

mit<strong>in</strong>stalliert werden, wie im nächsten Abschnitt erläutert wird.<br />

Nach Beendigung des Austausches wird die Ausführung an der Stelle der neu <strong>in</strong>stallierten Funktion<br />

fortgesetzt.<br />

Bedarfsgesteuertes Installieren für Datenmodule<br />

Bedarfsgesteuertes Installieren wird nur für Funktionsmodule angeboten, da hierbei durch e<strong>in</strong>en<br />

Stellvertreter e<strong>in</strong>e e<strong>in</strong>fache Möglichkeit besteht, die Benutzung der Funktion auf dem verwalteten<br />

Knoten festzustellen und Unterstützung anzufordern. Für Daten funktioniert dieser Weg im Allgeme<strong>in</strong>en<br />

nicht. Um den Zugriff auf Daten festzustellen, könnte man e<strong>in</strong>e der beiden folgenden Möglichkeiten<br />

nutzen:<br />

• Zugriffe auf Daten könnten auf Funktionsaufrufe abgebildet werden. Um das für die Anwendungsentwicklung<br />

transparent zu realisieren, müssen automatisch alle Zugriffe auf Daten durch<br />

entsprechende Funktionsaufrufe umgesetzt werden. Hierzu benötigt man jedoch e<strong>in</strong>en entsprechenden<br />

Codetransformator oder Unterstützung vom verwendeten Compiler. Nachteil dabei ist<br />

außerdem, dass e<strong>in</strong>e zusätzliche Indirektionsstufe e<strong>in</strong>geführt wird, die e<strong>in</strong>en entsprechenden<br />

Mehraufwand verursacht.<br />

• E<strong>in</strong>e Adressumsetze<strong>in</strong>heit (Memory Management Unit, MMU) kann genutzt werden, um Zugriffe<br />

auf bestimmte Adressen abzufangen und zu melden. Kle<strong>in</strong>e Mikrocontroller s<strong>in</strong>d jedoch häufig<br />

nicht mit dieser Hardwareunterstützung ausgestattet.<br />

4.6.2 Parken von Modulen<br />

Das Parken wird von der Kontrollschicht ausgehend <strong>in</strong>itiiert, um zum Beispiel Speicher für das<br />

bedarfsgesteuerte Installieren freizumachen. Beim Parken wird e<strong>in</strong>e Funktion durch e<strong>in</strong>en Stellvertreter<br />

ausgetauscht, der mithilfe des InstallOnDemand-ActionHook-Objekts erzeugt wird. Da e<strong>in</strong><br />

91

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!