Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2...

Post on 06-Apr-2016

212 views 0 download

Transcript of Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2...

vs7.2 1

7.3 Replizierte Objekte

Vollständige Replikationsabstraktion ist attraktiv und machbar.

2 Beispiele:

Orca (H. Bal, VU Amsterdam, 1987-90)= klassenbasierte, nichtsequentielle Sprache mit replizierten Objekten

Javanaise (INRIA 1997/98)= Java mit Object Caching

vs7.2 2

7.3.1 Orca

Datenabstraktion, Klassen, keine Vererbung, keine Halde

object spec Queue; Schnittstelle der Klasse Queueoperation append(item: in integer);operation remove(item: out integer);end;

object impl Queue; Implementierung der Klasse Queue . . . . . Repräsentationoperation append ...operation remove ...begin . . . . . Initialisierungend;

. . . q: Queue . . . Vereinbarung eines Queue-Objekts

vs7.2 3

Parametermechanismen:

Wertparameter inErgebnisparameter outVariablenparameter shared (für Objekte)

Prozesstyp:

process Producer(q: shared Queue); . . . . . Vereinbarungenbegin . . . . . Anweisungenend;

Prozesserzeugung:

fork Producer(q);fork Consumer(q);

vs7.2 4

Semantik gemeinsamer Objekte:Serialisierbarkeit

Implementierung gemeinsamer Objekte:Leser/Schreiber-Ausschluss gemäß statischer Code-Analyse (!)

Replizierte Implementierung, falls Prozesse verteilt:

Kopie eines gemeinsamen Objekts bei jedem beteiligten Prozess

aktive Replikation (d.h. write-update, nicht write-invalidate)

sequentielle Konsistenz duch vollständig geordnete Rundrufe (mittels Sequencer (4.2.3))

vs7.2 5

7.3.2 Javanaise

Einsatzbereich: CSCW-Systeme

. . . . . Javanaise clients

Javanaise serverCSCW system

hier wird GUI Applet vorgehalten,erreichbar über Web Server

vs7.2 6

Javanaise-Szenario:

Benutzer lädt Applet (übers Netz) und startet es:

appletviewer <url>

Applet macht keine Fernaufrufe, sondern Caching,

aber nicht für Einzelobjekte, sondern für Object Clusters:

jedes Cluster hat ausgezeichnetes Anker-Objekt, über das es von außen angesprochen wird;

Bezugnahme auf andere Clusters über Vertreter.

vs7.2 7

Zugriff auf Anker grundsätzlich mit Lese/Schreibsperren,die vom Server (!) verwaltet werden.

Erteilung des Schreibrechts an einen Klienten geht einher mitUngültigmachen aller Kopien bei den anderen Klienten.

Somit schwache Konsistenz, gebunden an die Sperrsynchronisation,ausreichend für sequentielle Konsistenz aus Anwendersicht.

Replikationsabstraktion?

1. Zentralisiertes Programm entwickeln und austesten (!)

2. Entscheidungen treffen bzgl. Clustering und Anker-Klassen

3. Schnittstellen der Anker mit read/write annotieren

4. Vertreter-Klassen generieren