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.5 Aufbau und Architektur<br />

E<strong>in</strong> <strong>in</strong>itiales Modul ist allerd<strong>in</strong>gs nur dann notwendig, wenn der Ausgangszustand des Knotens<br />

nicht durch den Verwalter selbst erstellt wurde oder wenn die dazu verwendeten Informationen nicht<br />

mehr zu Verfügung stehen. Ansonsten kann das Speichermodell mit den Daten aus e<strong>in</strong>er vorherigen<br />

Verwalterverb<strong>in</strong>dung <strong>in</strong>itialisiert werden.<br />

4.5.5 B<strong>in</strong>der<br />

Um den Code für die Ausführung auf dem Knoten vorzubereiten, stellt die Basisschicht e<strong>in</strong>en dynamischen<br />

B<strong>in</strong>der für verschiedene Zielarchitekturen zur Verfügung. Er wird vor dem Installieren der<br />

ausgewählten Module vom ImageManager aufgerufen. Der L<strong>in</strong>ker f<strong>in</strong>det auch Verwendung, um<br />

Code im Rahmen e<strong>in</strong>er Dienstleistung für die lokale Ausführung vorzubereiten. Als E<strong>in</strong>gabe erhält er<br />

neben den Ausgangsdaten e<strong>in</strong>e Liste von Relokationen, die er anwenden soll. Anhand der Relokationsdaten<br />

kann der B<strong>in</strong>der die Adresse des Zielsymbols identifizieren und die entsprechende Speicherstelle<br />

anpassen. Die gebundenen B<strong>in</strong>ärdaten werden <strong>in</strong> e<strong>in</strong>en neuen Speicherbereich geschrieben, um die<br />

Orig<strong>in</strong>aldaten für e<strong>in</strong> erneutes B<strong>in</strong>den zu erhalten.<br />

4.5.6 Interaktion mit verwalteten Knoten<br />

Bei der Interaktion mit e<strong>in</strong>em verwalteten Knoten s<strong>in</strong>d verschiedene Komponenten beteiligt. Zunächst<br />

wird e<strong>in</strong> Kommunikationssystem benötigt, um Unterstützungsanfragen zu empfangen und Befehle<br />

an das Gerät zu schicken. Zur Umsetzung der Befehle wird auf dem Gerät ebenso e<strong>in</strong>e Infrastruktur<br />

benötigt, wie zur Erzeugung und Weiterleitung von Anfragen an den Verwalter. Diese Komponenten<br />

werden im Folgenden betrachtet.<br />

4.5.6.1 Kommunikation<br />

Die Anb<strong>in</strong>dung e<strong>in</strong>es verwalteten Knotens wird <strong>in</strong> der Basisschicht des Verwalters durch die Komponente<br />

DeviceStub realisiert. Sie bietet e<strong>in</strong>e e<strong>in</strong>heitliche Schnittstelle an, um mit e<strong>in</strong>em Knoten zu<br />

<strong>in</strong>teragieren. Die wichtigste Operation dabei ist der Zugriff auf den Speicher e<strong>in</strong>es Knotens. Daneben<br />

werden aber auch Möglichkeiten angeboten, Code auf dem Knoten aufzurufen oder die Ausführung an<br />

e<strong>in</strong>er bestimmten Stelle auf dem Knoten fortzusetzen.<br />

Für den tatsächlichen Zugriff auf den Speicher ist e<strong>in</strong>e Kommunikation mit dem verwalteten Knoten<br />

notwendig. Diese wird durch die Komponente CommSys abstrahiert. Die tatsächliche Realisierung der<br />

Kommunikation kann so unabhängig vom Rest des Systems erfolgen.<br />

Für die prototypische Implementierung wurde e<strong>in</strong> leichtgewichtiges paketorientiertes Protokoll entwickelt,<br />

welches Befehle zeichenweise über e<strong>in</strong>e unzuverlässige Kommunikationsverb<strong>in</strong>dung überträgt<br />

und Antwortpakete entsprechend auswertet. Das Protokoll verwendet Prüfsummen, um Veränderungen<br />

durch Übertragungsfehler festzustellen, und Identifikationsnummern, um falsche oder verlorene<br />

Nachrichten erneut anfordern zu können. Die Kommunikationsverb<strong>in</strong>dung, über die diese Pakete<br />

gesendet und empfangen werden, ist durch e<strong>in</strong>e e<strong>in</strong>fache Schnittstelle (DeviceL<strong>in</strong>k) vorgegeben.<br />

Abbildung 4.18 fasst den Aufbau <strong>in</strong> Form e<strong>in</strong>es Klassendiagramms zusammen.<br />

Die Trennung <strong>in</strong> drei Objekte lässt e<strong>in</strong>e flexible Abstimmung auf das tatsächliche Kommunikationsmedium<br />

zu. So wurden DeviceL<strong>in</strong>k-Objekte für Netzwerk- und serielle Verb<strong>in</strong>dungen implementiert,<br />

die unabhängig vom Übertragungsprotokoll ausgetauscht werden können. Falls das Kommunikationsmedium<br />

bereits e<strong>in</strong>e zuverlässige Übertragung bietet, so kann auch das Kommunikationsprotokoll durch<br />

e<strong>in</strong> e<strong>in</strong>facheres ersetzt werden. Man kann sogar e<strong>in</strong>e sehr enge Kopplung mithilfe geme<strong>in</strong>sam genutzten<br />

81

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!