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.2 Arten von Strategien<br />

Entfernen erlaubt, so kann der Adm<strong>in</strong>istrator wählen, welche Art von Stellvertreter das Modul ersetzen<br />

soll.<br />

Hat der Adm<strong>in</strong>istrator e<strong>in</strong>e gültige Konfiguration erstellt, kann er sie anwenden, woraufh<strong>in</strong> die Daten<br />

zum Gerät übertragen und <strong>in</strong> den Speicher geschrieben werden. Als nächstes hat er die Möglichkeit,<br />

den Programmablauf auf dem verwalteten Gerät an e<strong>in</strong>er bestimmten Stelle zu starten oder fortzusetzen.<br />

S<strong>in</strong>d während der Bearbeitung e<strong>in</strong>er Unterstützungsanfrage Entscheidungen zu treffen, muss dies<br />

wiederum vom Adm<strong>in</strong>istrator durchgeführt werden. Reicht beispielsweise der Speicherplatz im Rahmen<br />

e<strong>in</strong>er bedarfsgesteuerten Installation nicht aus, so wird der E<strong>in</strong>griff e<strong>in</strong>es Adm<strong>in</strong>istrators benötigt.<br />

5.2.2 Automatische, anwendungsbezogene Konfiguration<br />

Bei der automatischen Konfiguration ist die Konfigurationsumgebung auf genau e<strong>in</strong>e Laufzeitumgebung<br />

zugeschnitten. Sie kennt die Wirkungsweise der e<strong>in</strong>zelnen Bestandteile und von möglichen<br />

Varianten. Daraus kann sie e<strong>in</strong>e optimale Konfiguration für die vorliegende Anwendung erstellen. Der<br />

grundlegende Ablauf ist <strong>in</strong> Abbildung 5.2 dargestellt.<br />

Abbildung 5.2: Grundlegender Ablauf e<strong>in</strong>er automatischen Konfiguration<br />

Zunächst wird die Kontrollschicht <strong>in</strong>itialisiert, <strong>in</strong>dem sie die Objektdateien des Laufzeitsystems<br />

e<strong>in</strong>liest. Gibt es von e<strong>in</strong>igen Komponenten verschiedene Versionen, die später zur Laufzeit dynamisch<br />

ausgetauscht werden können, so werden diese ebenfalls geladen. Dabei muss die Kontrollschicht die<br />

verschiedenen Versionen erkennen und ihnen Bed<strong>in</strong>gungen zuordnen, unter denen sie e<strong>in</strong>gesetzt werden<br />

sollen. Um das entfernte Ausführen auf verschiedenen Architekturen zu unterstützen, muss außerdem<br />

von den betroffenen Komponenten Code für diese Architekturen geladen werden. Beim Laden der<br />

Objektdateien werden sie durch die Basisschicht modularisiert.<br />

Nachdem die Kontrollschicht <strong>in</strong>itialisiert wurde, werden die Objektdateien der Anwendung geladen.<br />

Der nächste Schritt ist die Erstellung des <strong>in</strong>itialen Abbildes für den oder die Knoten. Dazu werden die<br />

Module <strong>in</strong> e<strong>in</strong>en Behälter geladen und mite<strong>in</strong>ander verknüpft. Hierbei ergeben sich Abhängigkeiten<br />

zu Modulen des Laufzeitsystems. Daraus kann die Kontrollschicht ermitteln, welche Dienste von der<br />

Anwendung genutzt werden.<br />

Die Kontrollschicht muss <strong>in</strong> diesem Schritt entscheiden, welche Module verwendet werden und<br />

welche durch Stellvertreter ersetzt werden. Für Komponenten, die <strong>in</strong> verschiedenen Versionen vorliegen,<br />

muss die Kontrollschicht auch entscheiden, welche Version sich für die aktuelle Anwendung am besten<br />

eignet. Da Varianten, die für bestimmte Spezialfälle optimiert s<strong>in</strong>d, meistens nicht außerhalb dieses<br />

Spezialfalles e<strong>in</strong>gesetzt werden können, muss die Kontrollschicht an den Codestellen, an denen sich<br />

die Voraussetzungen für den E<strong>in</strong>satz ändern, e<strong>in</strong>e Unterstützungsaufforderung <strong>in</strong> das Abbild e<strong>in</strong>fügen.<br />

Wird diese Codestelle während der Ausführung erreicht, kann die Konfiguration dynamisch angepasst<br />

werden und der Verwalter kann die Spezialvariante gegen e<strong>in</strong>e allgeme<strong>in</strong>e Variante austauschen.<br />

E<strong>in</strong> Beispiel hierfür ist e<strong>in</strong>e Variante der Threadverwaltung, welche für e<strong>in</strong>e feste Anzahl an Threads<br />

optimiert ist. Die Meta<strong>in</strong>formationen zu den Aktivitätsträgern können dann <strong>in</strong> e<strong>in</strong>em Feld fester Länge<br />

abgelegt und müssen nicht <strong>in</strong> e<strong>in</strong>er dynamisch wachsenden Liste organisiert werden. Vorteil dieser<br />

103

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!