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 VERWANDTE ARBEITEN<br />

2 VERWANDTE ARBEITEN<br />

In diesem Kapitel werden einige Arbeiten vorgestellt, die sich mit Teilgebieten<br />

der Diplomarbeit beschäftigen. Zuerst werden einige ausgewählte Systeme<br />

vorgestellt bevor Migrations- und Replikationsstrategien beschrieben werden.<br />

Abschließend wird noch die Thread-Migration diskutiert.<br />

2.1 Verteilte Systeme<br />

2.1.1 JAVAPARTY<br />

JavaParty [PZJ1998] ist eine Bibliothek zum Schreiben von verteilten<br />

Anwendungen in Java. Hierfür erweitert es die Programmmiersprache um den<br />

Modifier remote. Durch Verwendung des neuen Modifiers legt der Programmierer<br />

fest, dass die Instanzen einer Klasse entfernt platziert werden<br />

können. Diese Instanzen werden auch als remote objects bezeichnet.<br />

JavaParty besteht aus einem Übersetzer und einem L<strong>auf</strong>zeitsystem. Der<br />

JavaParty-Übersetzer generiert für jede Klasse einer in JavaParty geschriebenen<br />

Anwendung, sieben Klassen und sechs Interfaces, ruft anschließend den<br />

javac-Übersetzer <strong>auf</strong> und erzeugt unter Einsatz des RMI-Generators die für die<br />

RMI-Kommunikation notwendigen Stub- und Skeletonklassen. Nach dem<br />

Übersetzen kann das Programm im JavaParty-L<strong>auf</strong>zeitsystem ausgeführt<br />

werden.<br />

JavaParty unterstützt die Migration von Objekten und die Replikation<br />

statischer Konstanten [PZ1997, Bor2002]. Wenn ein remote object <strong>auf</strong> einen<br />

entfernten Rechner migriert wird, bleibt <strong>auf</strong> dem Ursprungsrechner ein<br />

Stellvertreter <strong>zur</strong>ück. Wird <strong>auf</strong> den Sellvertreter ein Zugriff ausgeführt, löst<br />

dieser eine MovedException aus und gibt sie an das <strong>auf</strong>rufende Objekt<br />

<strong>zur</strong>ück. Mit der MovedException erfährt das <strong>auf</strong>gerufene Objekt die neue<br />

Platzierung des migrierten Objektes und führt den misslungenen Zugriff ein<br />

zweites mal <strong>auf</strong> das migrierte Objekt aus.<br />

Als Stellvertreter eines remote objects dient in JavaParty ein sogenanntes<br />

Handle. Über sie werden alle Zugriffe <strong>auf</strong> remote objects durchgeführt. Durch<br />

das Weiterleiten der Zugriffe über Handles können alle Zugriffe <strong>auf</strong> remote<br />

objects während dessen Migration solange <strong>auf</strong>gehalten werden, bis der Umzug<br />

abgeschlossen ist.<br />

Die Migration eines remote objects ist in JavaParty nur dann möglich, wenn<br />

keine Methode <strong>auf</strong> dem zu migrierenden Objekt gerade ausgeführt und kein<br />

anderes Objekt zum Zeitpunkt des Migrationswunsches migriert wird.<br />

In JavaParty gibt es zwei unterschiedliche Möglichkeiten, das zu migrierende<br />

Objekt neu zu platzieren. Bei der ersten wird das Objekt <strong>auf</strong> den Rechner<br />

migriert, <strong>auf</strong> dem das zugreifende Objekt platziert ist. Als zweite Möglichkeit<br />

kann ein beliebiger Rechner als neuer Platzierungsort gewählt werden, der<br />

bereits ein remote object enthält. In beiden Möglichkeiten setzt JavaParty<br />

3

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!