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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

KAPITEL 6 DIE REALISIERUNG DES MODELLS IM JSCATTER-SYSTEM<br />

Die Klasse ExampleMigrationMemento enthält für alle nicht-transienten<br />

Felder der Klasse Example ein äquivalentes private Feld und eine Zugriffsmethode.<br />

Genauso verhält es sich bei der Klasse ExampleReplikation-<br />

Memento, jedoch besitzt sie zusätzlich noch Felder für die eindeutige ID des<br />

Objektes. Da alle ReplikationMemento-Klassen Felder für die eindeutige<br />

ID besitzen, erweitern sie eine gleichnamige abstrakte Klasse, die auch die<br />

notwendigen Zugriffsmethoden besitzt. Durch die Vererbung brauchen bei der<br />

Transformation sowohl die Felder als auch die Zugriffsmethoden der<br />

eindeutigen ID nicht explizit generiert zu werden. Für den Klassenanteil<br />

werden analoge Klassen generiert. Wie Memento-Objekte bei der Migration<br />

und Replikation eingesetzt werden, wird in den Abschnitten 6.2 und 6.3<br />

beschrieben.<br />

1 ..*<br />

Abbildung 6.1: Klassenhierachie einer im JScatter-System migrierbaren und<br />

replizierbaren Klasse Example<br />

Für die Durchführung der Transformation wird BCEL [Dah1998, Dah2001]<br />

54<br />

besitzt<br />

Object<br />

1 ..*<br />

1 ..*<br />

besitzt<br />

besitzt<br />

besitzt<br />

_ExampleMigrationMemento<br />

_ExampleReplicationMemento<br />

1<br />

MigrateableCuckoo<br />

Example<br />

_ExampleHandel<br />

InstanceManager<br />

_ExampleInstanceManager<br />

Serializable<br />

Handle<br />

UnicastRemoteObject<br />

_ExampleInstanceManagerInterface<br />

Memento<br />

{abstract}<br />

ReplicationMemento<br />

MigrateableHandle<br />

_ExampleClassObjectReplicationMemento<br />

Remote<br />

Legende<br />

X Y<br />

X Y<br />

X<br />

n<br />

Y<br />

X<br />

n<br />

Y<br />

_ExampleClassObject<br />

Klasse<br />

Interface<br />

X erweitert Y<br />

X implementiert Y<br />

X referenziert n Y<br />

ClassObject<br />

{abstract}<br />

AbstractMigrateableClassObject<br />

MigrateableClassObject<br />

_ExampleClassObjectInterface<br />

1 ..*<br />

besitzt<br />

_ExampleClassObjectMigrationMemento<br />

1 ..*<br />

ursprüngliche Hierarchie<br />

erweiterte Hierarchie<br />

X erzeugt n Y<br />

besitzt

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!