04.10.2013 Aufrufe

Strategien zur automatischen Objektmigration auf Grundlage ...

Strategien zur automatischen Objektmigration auf Grundlage ...

Strategien zur automatischen Objektmigration auf Grundlage ...

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.

2.1 VERTEILTE SYSTEME<br />

Lesezugriffs-Zähler den konfigurierbaren Wert für Migration überschreitet. Ist<br />

dies der Fall, wird das Objekt repliziert. Bei der Replikation eines Objektes<br />

merkt sich das System über ein Bitfeld, welche Rechnerknoten Replikate<br />

besitzen. Bei einem Schreibzugriff <strong>auf</strong> ein Replikat werden diese Knoten<br />

benachrichtigt und die Replikate gelöscht [SH1998]. Auf diese Weise<br />

verhindert Juggle inkonsistente Objektzustände zwischen einem Original-<br />

Objekt und seinen Replikaten.<br />

2.1.4 JOCHESTRA<br />

JOchestra [TS2002a, TS2002b] ist ein automatisches Partitionierungssystem<br />

für Java-Anwendungen. Es transformiert die Klassen einer Java-Anwendung in<br />

eine durch die Standard-JVM ausführbare verteilte Anwendung. JOchestra<br />

besteht aus einem Klassifikator, einem Profiler und einem Transformator.<br />

Unter Einsatz des Profilers und des Klassifikators legt der Benutzer die<br />

Partitionierung fest, die anschließend durch den Transformator erstellt wird.<br />

Bei der Klassifikation unterscheidet JOchestra zwischen anchored und mobile<br />

Klassen. Eine Klasse ist anchored, wenn die Platzierung ihrer Instanzen nicht<br />

verändert werden kann. Andernfalls ist eine Klasse mobile. Klassen deren<br />

Methoden native Code enthalten, können bei der Transformation nicht<br />

verändert werden. Sie werden in JOchestra als unmodifiable bezeichnet. Unter<br />

Verwendung dieser Begrifflichkeiten stehen dem Benutzer bei der<br />

Klassifikation der Klassen einer zu transformierenden Anwendung drei<br />

Optionen <strong>zur</strong> Auswahl.<br />

Anchored unmodifiable Klassen: Eine Systemklasse C ist anchored unmodifiable,<br />

wenn sie nativen Maschinen-Code enthält, oder <strong>auf</strong> Referenzen von C-<br />

Objekte zwischen modifizierbarem Maschinen-Code und Instanzen einer<br />

anchored unmodifiable Klasse zugegriffen werden.<br />

Anchored modifiable Klassen: Eine Klasse ist anchored modifiable, wenn es<br />

eine modifizierbare Klasse der Anwendung ist, die eine anchored unmodifiable<br />

Klasse erweitert.<br />

Mobile Klassen: Mobile Klassen sind alle Klassen, die nicht in eine der<br />

anderen beiden Kategorien fallen. Alle Klassen, die in purem Java geschrieben<br />

sind und keine Systemklasse erweitern (außer java.lang.Object) sind<br />

mobile Klassen. Auch Systemklassen können zu dieser Kategorie gehören,<br />

wenn sie keinen nativen Maschinen-Code enthalten und von keiner anchored<br />

unmodifiable Klasseninstanz zugegriffen werden oder <strong>auf</strong> eine solche<br />

zugreifen.<br />

Mit Hilfe des Profilers und des Klassifikators legt der Benutzer die Klassifikation<br />

für jede Klasse der zu transformierenden Anwendung fest. Hierbei<br />

überprüft der Klassifikator die Auswahl und schlägt dem Benutzer Veränderungen<br />

vor, um eine gültige Partitionierung zu erstellen. Für mobile Klassen<br />

muss der Benutzer außerdem eine Migrationsstrategie beschreiben, in der er<br />

7

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!