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.1 Aufgaben und Dienste der Basisschicht<br />

In e<strong>in</strong>em Betriebssystem können Dienste, welche nur relativ selten verwendet werden, wie zum<br />

Beispiel das Starten von neuen Anwendungen oder das Bereitstellen von neuen Aktivitätsträgern,<br />

geparkt werden, wenn sie <strong>in</strong> absehbarer Zeit nicht genutzt werden.<br />

4.1.3 Ersetzen von Modulen<br />

Beim Ersetzen von Modulen soll e<strong>in</strong> Modul durch e<strong>in</strong> anderes Modul ausgetauscht werden. Mit<br />

diesem Mechanismus ist es beispielsweise möglich, e<strong>in</strong> fehlerhaftes Modul durch e<strong>in</strong>e neue, korrigierte<br />

Version zu ersetzen. Das neue Modul muss dazu schnittstellenkompatibel mit dem alten Modul se<strong>in</strong>.<br />

Üblicherweise ist auch die Funktionalität der Module gleich. Man kann diesen Mechanismus aber auch<br />

dazu nutzen, zwischen verschiedenen Modulen umzuschalten, welche dieselbe Aufgabe erledigen,<br />

jedoch auf unterschiedliche Art und Weisen und unter unterschiedlichen Rahmenbed<strong>in</strong>gungen. In<br />

Abschnitt 5.4 werden solche Szenarios am Beispiel e<strong>in</strong>er Java-Umgebung vorgestellt.<br />

Das Austauschen von Modulen basiert auf denselben Mechanismen wie das Parken und Installieren.<br />

Das aktuelle Modul wird vom verwalteten Gerät entfernt, anschließend wird die neue Version <strong>in</strong>stalliert.<br />

Da sich die Arbeitsweise des Moduls verändert haben kann, muss neben dem Austauschen des<br />

Programmcodes möglicherweise auch e<strong>in</strong>e Anpassung des Zustands erfolgen. Zu diesem Zweck wird<br />

mit dem Entfernen des alten Moduls auch der dazugehörende Zustand gesichert. Vor dem Installieren<br />

des neuen Moduls muss die Möglichkeit e<strong>in</strong>er Zustandskonvertierung bestehen. Diese Konvertierung<br />

ist modulspezifisch und hängt unter anderem von der Version des alten Moduls als auch von der des<br />

neuen Moduls ab. Der Auftraggeber des Austausches, üblicherweise die Kontrollschicht, muss daher<br />

e<strong>in</strong>e Konvertierungsfunktion zur Verfügung stellen. Der angepasste Zustand wird dann mit dem neuen<br />

Modul <strong>in</strong> den Knoten <strong>in</strong>tegriert.<br />

4.1.4 Module als entfernten Dienst auslagern<br />

Die bisher vorgestellten Verwaltungsoperationen dienten hauptsächlich dazu, die Softwarekonfiguration<br />

e<strong>in</strong>es verwalteten Knotens zu erstellen und zu verändern. Der Verwalter kann aber auch aktiv <strong>in</strong> die<br />

Ausführung der Aufgaben mit e<strong>in</strong>bezogen werden, <strong>in</strong>dem Teile der Anwendung von ihm ausgeführt<br />

werden. Zu diesem Zweck können Module vom verwalteten Knoten entfernt werden, um sie stattdessen<br />

auf dem Verwalterknoten zu <strong>in</strong>stallieren. So ist es möglich, die Ressourcen des Verwalterknotens für<br />

den verwalteten Knoten zu nutzen. Auf e<strong>in</strong>em verwalteten Knoten können dadurch Anwendungen<br />

ausgeführt werden, für welche die tatsächlich vorhandenen Ressourcen des Knotens nicht ausreichen<br />

würden.<br />

Dies ist beispielsweise notwendig, falls die Software durch Weiterentwicklung mit der Zeit anwächst<br />

und nicht mehr vollständig von dem verwalteten Knoten ausgeführt werden kann. Anstatt Funktionen<br />

komplett zu entfernen, können sie durch Auslagern dennoch genutzt werden.<br />

E<strong>in</strong> anderes Szenario stellt die Nutzung e<strong>in</strong>er Laufzeitumgebung dar, mit deren Hilfe kle<strong>in</strong>e Knoten<br />

auf e<strong>in</strong>em höheren Abstraktionsniveau dargestellt werden. Durch den E<strong>in</strong>satz e<strong>in</strong>er etablierten<br />

Laufzeitumgebung könnte man e<strong>in</strong>e große Vere<strong>in</strong>heitlichung verschiedener Knoten erreichen. Diese<br />

Umgebungen s<strong>in</strong>d jedoch ursprünglich für leistungsstärkere Knoten entwickelt worden (siehe Abschnitt<br />

5.3.2). Das Auslagern von selten benötigten Funktionen ist e<strong>in</strong>e Möglichkeit, e<strong>in</strong>e solche<br />

Laufzeitumgebung auf jedem kle<strong>in</strong>en Knoten zur Verfügung zu stellen. Somit steht die komplette<br />

Laufzeitunterstützung der Umgebung zur Verfügung und kle<strong>in</strong>e Knoten können theoretisch genauso<br />

programmiert werden wie große Knoten.<br />

Das Verwenden e<strong>in</strong>es Moduls als entfernter Dienst wird durch e<strong>in</strong>en Fernaufruf realisiert. Anstelle<br />

des Moduls wird e<strong>in</strong> Stellvertreter <strong>in</strong> die Anwendung <strong>in</strong>tegriert. Hierzu wird der Mechanismus des<br />

33

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!