Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2...
-
Upload
karlheinz-baumgartner -
Category
Documents
-
view
212 -
download
0
Transcript of Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2...
![Page 1: Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, 1987-90) = klassenbasierte,](https://reader036.fdokument.com/reader036/viewer/2022083016/570491c31a28ab14218d9b6e/html5/thumbnails/1.jpg)
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
![Page 2: Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, 1987-90) = klassenbasierte,](https://reader036.fdokument.com/reader036/viewer/2022083016/570491c31a28ab14218d9b6e/html5/thumbnails/2.jpg)
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
![Page 3: Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, 1987-90) = klassenbasierte,](https://reader036.fdokument.com/reader036/viewer/2022083016/570491c31a28ab14218d9b6e/html5/thumbnails/3.jpg)
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);
![Page 4: Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, 1987-90) = klassenbasierte,](https://reader036.fdokument.com/reader036/viewer/2022083016/570491c31a28ab14218d9b6e/html5/thumbnails/4.jpg)
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))
![Page 5: Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, 1987-90) = klassenbasierte,](https://reader036.fdokument.com/reader036/viewer/2022083016/570491c31a28ab14218d9b6e/html5/thumbnails/5.jpg)
vs7.2 5
7.3.2 Javanaise
Einsatzbereich: CSCW-Systeme
. . . . . Javanaise clients
Javanaise serverCSCW system
hier wird GUI Applet vorgehalten,erreichbar über Web Server
![Page 6: Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, 1987-90) = klassenbasierte,](https://reader036.fdokument.com/reader036/viewer/2022083016/570491c31a28ab14218d9b6e/html5/thumbnails/6.jpg)
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.
![Page 7: Vs7.21 7.3 Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, 1987-90) = klassenbasierte,](https://reader036.fdokument.com/reader036/viewer/2022083016/570491c31a28ab14218d9b6e/html5/thumbnails/7.jpg)
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