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.

5 Kontroll- und Verwaltungsschicht<br />

nicht von Ressourcen abhängig, die ausschließlich auf dem verwalteten Gerät vorhanden s<strong>in</strong>d, kann die<br />

Funktion entweder auf dem Verwalter oder mithilfe e<strong>in</strong>es Rückrufs auf dem Gerät ausgeführt werden.<br />

Da e<strong>in</strong> Rückruf wieder e<strong>in</strong>en Fernaufruf darstellt, gelten hier auch die genannten Kostenfaktoren.<br />

Insbesondere müssen alle Daten am Gerät aktualisiert werden.<br />

E<strong>in</strong> weiterer wichtiger Kostenfaktor ist die Häufigkeit der Aufrufe. E<strong>in</strong>e Funktion, die nur selten<br />

aufgerufen wird, eignet sich am Besten für e<strong>in</strong>e Auslagerung, da die Kosten e<strong>in</strong>es Aufrufs nur selten<br />

anfallen. Wird e<strong>in</strong>e Funktion h<strong>in</strong>gegen sehr häufig aufgerufen, so fallen die Aufrufkosten stark <strong>in</strong>s<br />

Gewicht. Die gesamte Ausführungszeit kann dadurch stark bee<strong>in</strong>flusst werden.<br />

5.1.2 Metriken zur Abschätzung der kostenbee<strong>in</strong>flussenden Faktoren<br />

Die bisher beschriebenen kostenbee<strong>in</strong>flussenden Faktoren können teilweise aus den Daten der Basisschicht<br />

ermittelt werden. Daraus lässt sich e<strong>in</strong>e Kostenabschätzung ableiten, die zur Strategief<strong>in</strong>dung<br />

beitragen kann.<br />

• Die Datenmenge beim Installieren, Parken oder Ersetzen von Modulen lässt sich anhand der<br />

Modulgrößen ermitteln. Zusätzlich kann anhand des Abhängigkeitsgraphen im Vorfeld festgestellt<br />

werden, welche Module genau betroffen s<strong>in</strong>d. So kann beispielsweise bestimmt werden,<br />

wie viel das Installieren aller abhängigen Funktionen zusätzlich kostet. Auf dieser Basis kann<br />

entschieden werden, ob diese gleich mit<strong>in</strong>stalliert werden sollen.<br />

• Die Verknüpfung der Funktion <strong>in</strong>nerhalb der Anwendung kann anhand des Abhängigkeitsgraphen<br />

ermittelt werden. Daraus können die Kosten für das Anpassen der Verweise abgeschätzt werden.<br />

• Die Menge der zu übertragenden Daten bei e<strong>in</strong>em Aufruf e<strong>in</strong>er ausgelagerten Funktion kann<br />

ebenfalls im Vorfeld abgeschätzt werden. Zur Bestimmung der direkten Parameter wird auf die<br />

Schnittstellenbeschreibung zurückgegriffen. Hieraus kann der Typ und daraus die Größe der<br />

Parameter und des Rückgabewerts ermittelt werden. Bei manchen Datentypen ist die Größe<br />

jedoch nicht konstant. Bei Feldern beispielsweise kann die Länge durch e<strong>in</strong>en zusätzlichen<br />

Parameter spezifiziert se<strong>in</strong>, der erst zur Laufzeit ausgewertet werden kann.<br />

Die impliziten Parameter werden durch den Abhängigkeitsgraphen bestimmt. Anschließend<br />

kann mithilfe der geplanten Konfiguration ermittelt werden, welche Datenmodule geme<strong>in</strong>sam<br />

mit anderen Funktionen auf dem Gerät benutzt werden.<br />

• Anhand des Abhängigkeitsgraphen lässt sich die Beziehung zwischen den Funktionen ermitteln.<br />

Man kann feststellen, welche Funktionen e<strong>in</strong> Datenmodul referenzieren. Beim Auslagern e<strong>in</strong>er<br />

Funktion kann man hieran prüfen, ob das Auslagern zusätzlicher Funktionen den Aufwand bei<br />

e<strong>in</strong>em Aufruf reduziert.<br />

• Die Häufigkeit e<strong>in</strong>es Aufrufs lässt sich nicht statisch bestimmen. E<strong>in</strong> Anhaltspunkt für die<br />

Wichtigkeit und damit der Aufrufwahrsche<strong>in</strong>lichkeit kann die E<strong>in</strong>b<strong>in</strong>dung der Funktion <strong>in</strong> die<br />

Software se<strong>in</strong>. Das heißt: Wird die Funktion von vielen Stellen <strong>in</strong>nerhalb der Anwendung referenziert,<br />

so kann das als H<strong>in</strong>weis betrachtet werden, dass sie auch oft aufgerufen wird. Allerd<strong>in</strong>gs<br />

ist dieser Zusammenhang nicht zw<strong>in</strong>gend gegeben.<br />

E<strong>in</strong> anderes Herangehen ist das Ermitteln e<strong>in</strong>es Nutzungsprofils zur Laufzeit. Durch Instrumentieren<br />

des Codes können die tatsächlichen Aufrufe gezählt werden. Die Instrumentierung<br />

kann entweder als Konfigurationsoperation durch die Kontrollschicht e<strong>in</strong>gefügt und ausgewertet<br />

werden oder man führt sie bei e<strong>in</strong>em separaten Testlauf durch und verwendet die Ergebnisse als<br />

100

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!