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

peek- und poke-Operationen vor. In der prototypischen Realisierung für AVR-Mikrocontroller<br />

wurden getrennte Operationen zur Verfügung gestellt. Bei diesen Mikrocontrollern kommt h<strong>in</strong>zu,<br />

dass der Programmspeicher durch Flashspeicher ausgeführt ist. Dieser kann nur seitenweise gelesen<br />

und beschrieben werden, sodass die peek- und poke-Operationen e<strong>in</strong>e entsprechend abgeänderte<br />

Schnittstelle aufweisen.<br />

Zur Realisierung der Operationen für AVR-Mikrocontroller muss bei der Positionierung des RCMs<br />

berücksichtigt werden, dass der Code zum Verändern des Flashspeichers <strong>in</strong> e<strong>in</strong>em bestimmten Adressbereich<br />

des Programmspeichers liegen muss. Nur <strong>in</strong> dieser sogenannten Boot Loader Section [Atm07b]<br />

s<strong>in</strong>d die speziellen Befehle zum Beschreiben des Speichers wirksam.<br />

4.5.6.3 Funktion und Erzeugung von Stellvertretern<br />

Unterstützungsanforderungen werden durch spezielle Codestücke ausgelöst, die durch die Kontrollschicht<br />

an Stellen <strong>in</strong> den Code e<strong>in</strong>gebunden wurden, an denen e<strong>in</strong>e Umkonfiguration nötig wird, weil<br />

sich beispielsweise die Voraussetzungen für e<strong>in</strong>e Konfiguration ändern. Diese Codestücke stellen die<br />

Stellvertreter bei e<strong>in</strong>em Fernaufruf oder beim Nach<strong>in</strong>stallieren von Prozeduren dar. Sie können jedoch<br />

auch zusätzlich <strong>in</strong>tegriert werden, wenn e<strong>in</strong>e Interaktion mit dem Verwalter notwendig ist.<br />

Die Basisschicht stellt die Infrastruktur zur Verwaltung und Erzeugung dieser Stellvertreter bereit.<br />

Die Erzeugung wird von Stellvertreterfabriken vom Typ StubFactory durchgeführt. Für verschiedene<br />

Arten von Stellvertretern kann es je e<strong>in</strong> eigenes Fabrikobjekt geben. In der prototypischen<br />

Implementierung wurden zwei Fabriken entwickelt. E<strong>in</strong>e Fabrik erzeugt Codestücke, die zur allgeme<strong>in</strong>en<br />

Benachrichtigung und als Stellvertreter bei der bedarfsgesteuerten Installation verwendet werden<br />

können. Diese Stellvertreter senden neben der Unterstützungsanforderung ke<strong>in</strong>e weiteren Daten zum<br />

Verwalter. Die andere Fabrik erzeugt Stellvertreter, die für Fernaufrufe optimiert s<strong>in</strong>d. Hier werden<br />

neben der Unterstützungsaufforderung auch die Parameter der aufgerufenen Funktion an den Verwalter<br />

gesendet.<br />

Die generelle Funktionsweise der Fabriken unterscheidet sich nicht. Die Stellvertreter bestehen im<br />

Wesentlichen aus zwei Teilen:<br />

• e<strong>in</strong>em allgeme<strong>in</strong>en Teil, der nur e<strong>in</strong>mal im System vorhanden se<strong>in</strong> muss, und<br />

• e<strong>in</strong>em <strong>in</strong>dividuellen Teil, der für jeden E<strong>in</strong>satz speziell angepasst wird.<br />

Der spezifische Teil enthält e<strong>in</strong>e e<strong>in</strong>deutige Identifikationsnummer und Parameter, um die Funktion<br />

des allgeme<strong>in</strong>en Teils zu bee<strong>in</strong>flussen. Er ruft mit diesen Informationen den allgeme<strong>in</strong>en Teil auf,<br />

der e<strong>in</strong>e entsprechende Nachricht erstellt und, im Rahmen dessen, die notwendigen Informationen<br />

sammelt. Anschließend greift der allgeme<strong>in</strong>e Teil auf Funktionen des RCMs zurück, um die Nachricht<br />

abzuschicken. Abbildung 4.19 zeigt den Ablauf.<br />

Durch die Aufteilung des Stellvertreters <strong>in</strong> zwei Teile kann der Speicherbedarf pro Nutzung sehr<br />

ger<strong>in</strong>g gehalten werden. Nur der <strong>in</strong>dividuelle Teil muss mehrfach vorhanden se<strong>in</strong>. Er ist allerd<strong>in</strong>gs sehr<br />

kle<strong>in</strong>, da er nur die unbed<strong>in</strong>gt notwendigen Register sichert und mit den spezifischen Werten füllt. Dann<br />

spr<strong>in</strong>gt er sofort zu e<strong>in</strong>em geme<strong>in</strong>sam genutzten Codestück, welches die restlichen Register<strong>in</strong>halte<br />

sichert und das RCM aufruft. Tabelle 4.4 zeigt den Speicherbedarf der beiden Stellvertreter für<br />

verschiedene Architekturen.<br />

Zur Erzeugung e<strong>in</strong>es konkreten Stellvertreters lädt die Fabrik die beiden Teile für die jeweils<br />

benötigte Architektur. Für den allgeme<strong>in</strong>en Teil des Stellvertreters muss die Fabrik nur sicherstellen,<br />

dass er <strong>in</strong>stalliert wird, sobald e<strong>in</strong> Stellvertreter dieses Typs verwendet wird. Für den <strong>in</strong>dividuellen Teil<br />

stellt das geladene Modul e<strong>in</strong>e Vorlage dar, welche Platzhalter für die spezifischen Daten enthält. Die<br />

83

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!