Formale Analyse kryptografischer Protokolle Einführung Seminar WS 2002/03 André Rosin.
MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★
Transcript of MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★
![Page 1: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/1.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors A-1
(von 5)
MKV
S-Ü
bung
WS
2002
/200
3A
Ein
führ
ung
erteilter Systeme“(WS 2002/2003)
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-A.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
Übung zur Vorlesung „Moderne Konzepte V
A Einführung
![Page 2: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/2.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors A-2
(von 5)
MKV
S-Ü
bung
WS
2002
/200
3A
Ein
führ
ung
1 Übungsbetrieb
teme)
r im Raum O28-2203
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-A.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Betreuung
Andreas I. Schmied (Abteilung Verteilte Sys
Zimmer O27-3401
Telefon 50-24148
Email [email protected]
Michael Kirstein (Studentische Hilfskraft)
Email [email protected]
● Zeitpunkt
nach Bedarf am Donnerstag ab 10 bzw. 16 Uh
![Page 3: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/3.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors A-3
(von 5)
MKV
S-Ü
bung
WS
2002
/200
3A
Ein
führ
ung
2 Zielsetzung und Ablaufestellten Technologien
in Spezifikationen ?)
Interesse)
ng
treibenden Aufwands
kalierbarkeit
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-A.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Verstehen, Erproben der in der Vorlesung vorg● Detailansicht “hinter dem Vorhang” (was steht
✦ Reverse-Engineering muss jeder selber machen (bei ✦ Hinweise und Zusammenfassungen dazu in der Übu
● Vergleich des Benutzer-Quellcodes und des zu
von ähnlichen Systemen, evtl. QoS-fähigkeit, S
● Tutorial, Diskussion, und Aufgabenstellung
● Freies Programmieren in den (Linux-)Pools✦ Termin mit Betreuung ?
![Page 4: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/4.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors A-4
(von 5)
MKV
S-Ü
bung
WS
2002
/200
3A
Ein
führ
ung
3 Rechnernutzung
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-A.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Linux-Pool (O27-133)✦ Software
★ Java 1.4, momentan /soft/jdk1.4.0● Windows-Pool ?● Webserver „Studihome“, Ports, Firewall
![Page 5: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/5.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors A-5
(von 5)
MKV
S-Ü
bung
WS
2002
/200
3A
Ein
führ
ung
4 Übungsaufgaben: die Vision
derator)
nodes, AKA News-Thread)
ungen (kein DAG)
unktionalität zu erweitern
Java-RMI, CORBA
nzen
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-A.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Abteilungsweite Knowledge-Base✦ Hierarchie von Themenknoten (topic nodes, mit Mo✦ angeknüpft eine Hierarchie von Notizknoten (memo✦ beliebige gerichtete Links zwischen Knoten/Anmerk✦ pro Übungsabschnitt schrittweise um Technologie/F
● MKVS/OO: Zugriffs-API implementiert mittels ✦ Interoperabilität ?
● MKVS/Services: um ein Web-Frontend zu ergä✦ Servlets, JSP, Taglibs, ...✦ EJB, ...
![Page 6: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/6.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-1
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
erteilter Systeme“(WS 2002/2003)
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
Übung zur Vorlesung „Moderne Konzepte V
B Java Remote Invocation
![Page 7: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/7.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-2
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
1 Literatur.], dpunkt.verlag
ialization
, .../serial-spec.pdf
evpro.sourceforge.net
rieren: „javadoc -private“
gekürzt
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Marko Boger: „Java in verteilten Systemen“ [..● java.sun.com - RMI und Serialization
✦ http://java.sun.com/j2se/1.4.1/docs/guide/rmi, .../ser✦ ftp://ftp.java.sun.com/docs/j2se1.4/rmi-spec-1.4.pdf
● lokale Java-Quellen: /soft/jdk1.4.0/src.zip✦ Decompiler z.B. http://jode.sourceforge.net, http://jr✦ API-Dokumentation für private-Texte ggf. neu gene
● Materialien auf der Website zur Vorlesung● Entwicklungstools
✦ Ant: http://jakarta.apache.org/ant✦ JUnit: http://junit.org
● Code-Snippets auf den folgenden Folien sind
![Page 8: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/8.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-3
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
2 Roadmap
e
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Sehr kurze Wiederholung der RMI-Basics,
danach detailierter Einblick in die RMI-Runtim● Etablieren eines Servers
✦ Problemfeld Remote-Interfaces, RemoteExceptions✦ Serverseitige Implementierung✦ Export✦ Stubs, Skeletons, ...✦ Veröffentlichen von Serveradressen
● RMI-Transport✦ Serialisierung✦ Custom-Marshalling✦ RMI-Marshalling
![Page 9: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/9.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-4
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
2 Roadmap (2)
sfer
ig oder als separates— er dient ausschließlich n Java-SDK-Sourcen.
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Aufgaben des Clients✦ Initiales Finden eines Servers✦ Methodenaufruf ohne/mit Exception, Parametertran
● kurzer Überblick zu✦ Dynamisches Laden von Code✦ Distributed Garbage Collection✦ RMI Wire Protocol
● Übungsaufgabe
Dieser Foliensatz ist in keiner Weise vollständ didaktisch wertvolles Lehrmaterial ausgearbeitet
als Anregung zum eigenen Recherchieren in de
![Page 10: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/10.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-5
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
3 RMI-Überblick Fernaufruf in Java
en
ig Anpassung
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Verteiltes Objektmodell für objektorientierten✦ Das bekannte Programmiermodell soll erhalten bleib
★ Erhalt der java.lang.Object-Semantik wo möglich, wenn nöt✦ über beliebige VM-Grenzen möglich✦ Robustheit der entstehenden Software✦ Typsicherheit wie im nicht-verteilten Fall✦ Sicherheitssystem der Java Plattform
★ Class Loader, Security Manager✦ Verschiedene Referenzsemantiken
★ transient, persistent, lazy activatable✦ Wichtigstes Ausdrucksmittel: Remote Interfaces
![Page 11: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/11.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-6
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
4 Remote Interfaces
deklarieren
Substitution Principle)
t diese Bedingung erfüllen
ntegration alter Interfaces
n nicht unbedingt erben
zen zu verwenden
Server vorhanden
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● erben java.rmi.Remote (als marker interface)✦ kann über Super-Interfaces geerbt sein
● jede Methode muss java.rmi.RemoteException✦ oder java.io.IOException, java.lang.Exception (Liskov
★ beim Erben eines Non-Remote-Interfaces muss es zumindes✦ sichert Robustheit von RMI-Anwendungen✦ behindert vollständige Verteilungstransparenz und I✦ eigene Exceptions müssen java.rmi.RemoteExceptio
★ java.lang.Throwable implements java.io.Serializable
● als Typen für Methodenparameter und Referen✦ nicht die implementierenden Klassen, da i.A. nur am
![Page 12: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/12.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-7
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
5 Remote Server Implementierungvon „Server Application“
bjektimplementierungen
en Thread verwenden
ectindungsannahme aktivieren)
er RMI-Runtime sicherstellen
thode exportObject auf
i.RemoteObject
n
ode nachladen zu können
erver Achtung: Slash am Pfadende!
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● CORBA-Jargon: „Servant“ zur Unterscheidung ✦ Servant verkörpert („incarnate“) ein oder mehrere O
● RMI-Runtime kann pro Methodenaufruf eigen✦ Servant muss thread-safe sein !
● erbt i.A. von java.rmi.server.UnicastRemoteObj✦ automatischer Export (Runtime-OID vergeben, Verb✦ ansonsten muss der Entwickler die Anforderungen d
★ Export des Objekts → Konstruktor ruft interne statische Me★ Erhalt der Objektsemantik → Realisierung beginnt in java.rm
● gibt beim Start eine „Codebase“ als Property a✦ beim Marshalling zum Client übermittelt, um dort C✦ Webserver mit jar-File (global), File-URL (lokal), ...
★ java -Djava.rmi.server.codebase="file:‘pwd‘/" mkvs.simple.S
![Page 13: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/13.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-8
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
5.1 RMI-Objektsemantik
r realisiert���������
oteObject redefiniert
en den gleichen Hashcode
n sie an das gleiche RemoteObject
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Marshalling✦ by-reference, wenn der Servant exportiert ist✦ by-copy, falls der Servant nicht exportiert ist✦ beide Varianten werden durch entsprechende Marke
������������ ������������������������������
● semantikerhaltende Methoden werden in Rem✦ vor allem equals(Object other) und hashCode()
★ zwei Stubs, die an das gleiche RemoteObject verweisen, bild★ zwei RemoteObjects (und damit zwei Stubs) sind gleich, wen
verweisen★ warum gerade diese beiden ?
![Page 14: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/14.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-9
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
5.1 RMI-Objektsemantik (2)z-Objekt
isiert in der Klasse
an sun.rmi.transport.LiveRef)
ia UnicastRef → LiveRef → ObjID)
ct liefern identischen Hashcode
�������"���� ���#��
�����#��
sformungen
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● die Implementierung erfolgt in einem Referen✦ Referenz-Objekte sind vom Typ RemoteRef, z.B. real
sun.rmi.server.UnicastRef (diese wiederum delegiert ✦ Übergang von Vererbungshierarchie zu Delegation
★ siehe angedeuteter Link im Diagramm auf Seite B-11✦ int hashCode()
★ wird aus der Objekt-Nr. des Remote-Objekts gebildet (Impl.v★ unterschiedliche Stubs (RemoteRefs) des selben RemoteObje
����������������������������������� ����!��
✦ boolean equals(Object obj)����������������$%������������� ���� �
✦ je nach Einsatzgebiet unterschiedliche Referenz-Au★ Client-, ServerRef, aktivierbar, persistenzfähig, ...
![Page 15: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/15.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-10
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
5.1 RMI-Objektsemantik (3) java.lang.Object
yp des Stubs
es Servants
t
ntime
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Abweichende Semantik der final-Methoden in✦ getClass() liefert an Remote-Referenz den exakten T
★ Typ ist das am weitesten als Remote ausgeprägte Interface d✦ wait, notify operieren auf dem jeweils lokalen Objek
★ d.h. evtl. auf dem Stub, nicht dem originalen Server-Objekt
● RemoteObject liefert Stub-Objekt aus RMI-Ru✦ interne Verwaltung in sun.rmi.transport.ObjectTable
![Page 16: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/16.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-11
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
6 Beispiel: mkvs.simple
����
��
� ��
���
���
������������������������� �����
��������������������������������
�������������� ��������������
���������0�0�1����0(�� ��02� ��0� �'0)��� *0(�� ��31��#�� �45
���������0 0�1����0�02� ��0� '0)��� *0�/31��#�� �45
0��������
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
����������
����������
����������
���������
��������
��������� ������ ��������� ��� ��������������������������� ��� �!������������������
" ��#��$�%&'�������������������("� �')�� ��"� ')�� ��
��� ��
*���(�����+�& �������#�� ��#�
"����'����$�����,-)��
����������
����������
������
&��
"����'����$�����,-)�
�����
" ��#�')"� .')�� ��"� �')�� ��"� ')�� ��
������������������ ��
���������������� ������
�� ��������� ������������������
���������������� �����
�������������� �����������
����������/&�������������������� ��������
�����
"���#�')
(�� ��/&����.����&%��06���60*���70(�� ��(
![Page 17: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/17.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-12
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
6 Beispiel: mkvs.simple (2)“ von B
tion
liche Anpassung zur RMI-
rver, Client}.java
s.simple.CImpl_Stub
ant eine DImpl-Instanz werden wird !
ionen siehe später
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● interface C erbt das Marker Interface „Remote● C.doC() „throws“ Superklasse der RemoteExcep
✦ siehe Kommentarbox rechts im Diagramm● interface A wird nicht im Stub wiedergegeben
✦ alter Schnittstellenkontrakt verhindert die nachträg
Fähigkeit
● Übersetzen + Generieren✦ „javac mkvs/simple/...“ mit {A, B, C, CImpl, DImpl, Se✦ rmic -v1.2 -keep mkvs.simple.CImpl → erzeugt mkv
★ Stub wird für CImpl, nicht für DImpl generiert, obwohl Serv★ JRMP-1.2-Stub ohne Skeleton, Unterschiede zu älteren Vers
![Page 18: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/18.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-13
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
6.1 mkvs.simple.CImpl
�����,��
�$)���������3�'��
�$)���������3�'��
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
���&�'���&(��������#
����� �(����������$)�����#����� �(���������(���*����������� ��#
��������������+�����)�� ��*����������� �����������
������������+��������-������$)��������
�����������(� � ,�������������.�������������/ ,0�#�����
�����������(� � 1���������22�-�����-�� ������&�����������������.�������������/ 10�#�����
�����������(� � ����������22�-�����-�� ������&�����������������.�������������/ �0�#������
![Page 19: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/19.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-14
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
6.1 mkvs.simple.CImpl (2)
Stub A nicht berücksichtigt
ervant bedient alle Clients
r
-Quellcodezeile:
t or declared to be thrown
die Servant-Instanz
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● implementiert alle Interfaces✦ wird jedoch nur B und C exportieren können, da der
● erbt UnicastRemoteObject✦ „Unicast“ = klassische Client/Server-Topologie = 1 S
★ point-to-point, nicht repliziert✦ transient gültig solange Serverprozess aktiv
● enthält einen erweiterten Default-Constructo✦ sonst verwirrender Übersetzungsfehler für „class ...“
unreported exception java.rmi.RemoteException; must be caugh✦ Default-Constructor ruft implizit super() auf
★ UnicastRemoteObject.<init> wird ausgeführt und exportiert
![Page 20: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/20.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-15
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
6.2 mkvs.simple.Server
���
����(����������
.��$:+�;�<=>��;�#
���'������ �����#
�
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
���&�'���&(��������#
����� �(����������$)�����#����� �(������4����'#����� �(��������'���.�5�����'���.#����� �(��������'���.���'���.#
����������������(����
������+��������#
������������(� ����������'67���'�����-��$)����
���������-�8+�����#��������22��������� ���9�)��
��'���.���'���5�����'���.��������'���.���'���
��'������ �/�&(��������0�������#��22��������(�!�4�
22�-�����-�� � ������(��9>�������������������� ���
�
![Page 21: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/21.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-16
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
7 RemoteObjectethoden an RemoteRef
st beim Marshalling
t nichts (→ Sequenz-Diag.)
�$%������
# �#
�������22�-�����������94��������#���������22�������$)��������#��22$)����
ef.-Modi (→ Activation)
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● RemoteObject delegiert semantikerhaltende M● Transferiert die RemoteRef anstelle seiner selb
✦ UnicastRef delegiert an LiveRef, UnicastServerRef tu������������������� �����������������������#����� ������%�������→���������"���� �������������������������������� �������� ��������������������������������������������������������������� ��;�����'������
����(���(� �-����� ��� �(������ ������������������������������-���-�?�������$)�������#�����������@����&���/������-���*;A�//�#���-����� ������@��&���/��������-���*;A����4����#�����-���
��������
● Trennung von Objekt u. Referenz wegen div. R
![Page 22: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/22.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-17
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
8 RemoteServerigenen Code-Digging)�������"���#
ang.ThreadLocal
en eigenen Bearbeitungs-Thread
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Quellcode-Fundstück (zum Verständnis beim e��������������������(����)�� �������� ����������'�'������"������-�����(��4,��(�$)���������������������������;�>;�������'�����
��
✦ getClientHost nutzt ThreadLocalStorage (TLS): java.l★ RMI-Runtime vergibt pro Bearbeitung eines Client-Calls ein
![Page 23: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/23.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-18
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
9 UnicastRemoteObject Servant-Export ?
t(this, ...) auf
odus verwendet
erRef als Referenz-Name
f, RMIServerSocketFactory ssf)
er Referenz mitgeteilt werden
ver CustomSocket-Klassen nachladen
, ...opt.Params wie Port)
rce)
bject(obj, force)
abgebrochen
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● zu betrachten: wie funktioniert automatischer● drei Constructor-Varianten rufen exportObjec
✦ je nach Variante wird intern ein anderer Referenz-M✦ ...() und ...(int port) verwenden refType=UnicastServ✦ UnicastRemoteObject (int port, RMIClientSocketFactory cs
verwendet refType=UnicastServerRef2★ Information über CustomSockets kann somit dem Client in d★ darauf kann der Client vor der Kommunikation mit dem Ser
● static exportObject(Remote obj, String refType● static unexportObject(Remote obj, boolean fo
✦ delegiert an sun.rmi.transport.ObjectTable.unexportO✦ force=true → laufende und wartende Calls werden
![Page 24: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/24.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-19
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
9.1 UnicastRemoteObject.exportObject
������
":�����')�� ��
���������������
�� ������������� �������� ��������
�����������
"�1# ��/&����')�� ��
���������� �����
"�1# ��/&����')�� ��"��$7���� �')�� ��"��#����')�� ��
������������
"�1# ��/&����')�� ��"�����')�� ��
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
Skizze der beteiligten Klassen
88��#�������99�������������������
�������������������
����������� ��
������������������
����������������������
����������� �����
����������
���������
��������� ��
������������������
"�1# ��/&����')�� ��
��������� !
"���$7���� �')�� ��"���$�%&')�� ��"� �� ��;� � ��')�� ��
![Page 25: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/25.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-20
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
9.1 UnicastRemoteObject.exportObject (2)
��: <3��# ���
�� ����=���(��
���: <:���# ��
0�1# ��/&����'������)�� ��
���>���')"?�$�%&?)�� ���' &�)@0������(��)�� ��
0�����')�� ��
0�1# ��/&����'������)�� ��
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
Spurskizze der Methodenaufrufe
������:�����
������(�� ��<� 1+
��� �����������$�����(��
���"����#
��������(�� ��/&����
0� �� ��;� � ��'�� �0���$�%&'��� ���� �� ��/
���
��')
0����������� �:�&��
0*��� %�$7���� ��#%�' &����� ��'))
� �������� ������� ������
0:�����'����(������/&���'))�� ��
0��$7���� �' &�)�� ��
0�%&�����$�%&' &�@0������(��)�� ��
, #�� ���-0���$7���� �' &�)�� ��
0�%&���1# ��/&����' &�)�� ��
0�%&���1# ��/&����'���)�� ��
![Page 26: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/26.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-21
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
9.1 UnicastRemoteObject.exportObject (3)
emoteObject.ref)
ver.”+”UnicastServerRef”
tFactories
anz delegiert
��������������)���� ���� ������#
._Stub wird instantiiert)
ransport-Schicht)
Socket-Schnittstelle
reflect.Method-Objekte)
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Referenzklasse aus refType erzeugen,● instantiieren und in ref-Attribut vermerken (R
✦ RemoteRef.packagePrefix+refType, z.B. ”sun.rmi.ser✦ Übergabe optionaler Parameter, z.B. Port, RMISocke
● Exportieren wird letztendlich an Referenz-Inst������*����������� �������������������)���� ��������� ������'����;.��������-������������(���*��������(������������
��
● RemoteProxy wird erzeugt (..._Skel und evtl. ..● Target und LiveRef wird erzeugt (Bindung an T
✦ bewirkt Generieren einer ObjectID und aktiviert die● Methodentabelle aufbauen (enthält java.lang.
![Page 27: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/27.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-22
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
10 Stubs, Skeletons, ...Encapsulation in
1986, 6th ICDCS/IEEE)
Anfrage, Parametern und
Transparenz
nd internem Aufbau
h nach IIOP-Adaptierbarkeit
classname> → diff
ellen für beide Versionen
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● „Ur-Paper“ von Marc Shapiro: „Structure and
Distributed Systems: The Proxy Principle“ (Mai● Stubs (am Client) und Skeletons (am Server)
✦ abstrahieren das Marshalling und den Transport von
„Rückgabewert“ (oder Exception) → Realisieren von● Seit Java 1.2 einige Änderungen an Protokoll u
✦ bedingt durch erweiterte Reflection-API und Wunsc✦ wir beschränken uns auf die neuere Version
★ Vergleichen Sie selbst: rmic -keep [-v1.1|-v1.2|-vcompat] <★ -vcompat (Default-Einstellung) generiert Stub mit Schnittst
![Page 28: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/28.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-23
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
10 Stubs, Skeletons, ... (2)ns zu Gunsten eines
ill ?
xy
������� ���� ��67���'����
������
����"�� �������������#�����#
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● neues Stub Protocol in Java 1.2 macht Skeleto
neuen generischen Dispatchers überflüssig.✦ was passiert wenn 1.1-Client mit 1.2-Server reden w✦ allgemein beachtenswerte API: java.lang.reflect.Pro
+�(����"�� ������� ��������-�+�(����"�� �������������� �����(&���� �����).���?�� ��������
��������).��������>�).�'�>�).��������A�������'������5� ��������-������67���A���#
�������������).������'�����������-������67���+�(
A������A������-+���������-��� ��67������ ��
![Page 29: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/29.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-24
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
10.1 ..._Stub
����� �(������������
E#F#
����-� �(�����'������67����#����-� �(�����'������67����#
���������#��
EHJFJGJKIJLGE5�#
�� �����&� ��)�����0����#�
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
���&�'���&(��������#��������������������+���=�����)�� �� �(���������(����������������������������������������������&(�������������������(����������������'�������B�����*+8���C#�������(�������� �(�����'��������?�� �D��� = 1=�������(�������� �(�����'��������?�� �D��� = �=������������������D��� = 1=E����&(���������1�������'�?�� �/ 10����D��� = �=F����&(�����������������'�?�� �/ �0
�������������������+���=���� �(���������(���������������������������������(� � 1�����-�� �(����������$)�������������.���������(&�������D��� = 1=E��������9CGHHIH������������� �(�����'�������$)�������������-��#������������� �(����������$)���������������-��#������������� �(�����'�$)���������������������-���-� �(������*��)���� $)������/�� �����������������22��������������� ��������������(� � ������-�� �(����+�$)������������
![Page 30: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/30.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-25
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
10.2 ..._Stub: ref.invokeect[] params, long opnum)
(wg. RemoteCall)
der Methoden-Tabelle
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● UnicastRef.invoke (Remote obj, Method method, Obj● die anderen invoke-Methoden sind deprecated
● [externes Codelisting: UnicastRef.invoke]✦ Suchen des java.lang.reflect.Method-Metaobjekts in
![Page 31: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/31.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-26
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
10.3 Skeleton einem anderen Beispiel)
�(����&������
KLJLKLK5#�22�",9F
������#
���#��
(���������������������'�$)�������
��/���������������������0�#
#
��
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
(aus
�������������������;����+���=�&������������� �(��������
�����(����������������'���������"������FEJJGJKELHGL
�����(�������������� �(���������(����������67�����������-� �(���������(�����������/���������������0��������������� �(���������(����������67�'����������������������� �(���������(����������67��������������������������(� � ������� �(������������ �� �(�������������������������������������������'���������-�� �(��������������M����������"������������-���-� �(���������(����&����?������$)����
�����&(������;����+�������(�������&(������;����+������
�����-������������22�B���-��'��'���� �������������?��
���������
![Page 32: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/32.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-27
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
10.3 Skeleton (2)
#
�����������'���'�����0����#
������#
�������'������0����#
(��� ���� �������0�#
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
�����������E!���22������������������������������D�����=��=F#���������.������������ �(������ ��+��������������'�+��������������������D�����=��=F��������� +���#���������������� �(����+�$)�������������������������-���-� �(������*��������$)������/����������������������.������������������������+����������#��������������������D�����������(������������D�����=��=F�#���������.������������ �(������ ����������������'����������������������-���+��D������#���������������� �(����+�$)����������������������-���-� �(������?������$)������/�����������������������������&#���������22�����E������������ �����!���-���-� �(������*��������$)������/��
������22�-�������22� ��������22������
![Page 33: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/33.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-28
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
10.4 ServerRef.dispatcht.Proxy
ch]
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● siehe auch: Dynamic Proxy mit java.lang.reflec
● [externes Codelisting: UnicastServerRef.dispat
![Page 34: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/34.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-29
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
11 Registrierung am Namensdienst
f eine Remote-Referenz
e name schon benutzt wird
zt werden,
hende Bindung
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Simpler Namensdienst „RMI-Registry“✦ bekommt über einen herkömmlichen Remote-Aufru✦ verknüpft die Referenz mit String als Suchschlüssel✦ flacher Namensraum
● bind(String name, Remote obj)✦ erzeugt AlreadyBoundException, falls der Objektnam✦ der Objektname kann durch eine Registry-URI ergän
z.B. rmi://host.running.registry:port/name✦ rebind(String name, Remote obj) überschreibt beste✦ unbind(String name)
● Remote lookup(String name)● String[ ] list(String registryLocation)
![Page 35: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/35.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-30
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
11.1 Registryistry: „java.rmi.Naming“
ost:port/name“
ORT (:1099) verwendet
yImpl mit HashMap
emote
zen (Stubs)
ie dieses Stubs und nimmt darüber
rmiregistry Client
k k
k
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Convenience Wrapper für java.rmi.registry.Reg✦ statische Methoden (re-/un-)bind, list, lookup✦ Zugriff auf Registries fremder Hosts mit URI „rmi://h
★ fehlt Host-/Port-Angabe wird localhost:Registry.REGISTRY_P✦ intern Delegation auf LocateRegistry, Registry
● SDK-Implementierung: sun.rmi.registry.Registr● Instanzen von java.rmi.registry.Registry sind R
✦ Lookup = Weitergabe serialisierter Remote-Referen★ Der Server bindet unter dem Schlüssel k
einen Servant an die Registry, d.h. ein seri-
alisierter Stub wird zur Registry übertragen
und dort in einer HashMap gehalten.★ Der Client bekommt beim Lookup von der Registry eine Kop
seinerseits die Kommunikation mit dem Server auf
Server
![Page 36: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/36.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-31
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
11.1 Registry (2) VMs transportabel
ID:[0:0:0, 0]
ufenden Registry-Prozess
����������������'���.�M
���6���!�6�� 9
:+�;�<=>��;�#
�%��������/N��'N0�M��/N���#
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Registry-Stubs sind nicht unbedingt zwischen✦ spezieller well-known Object Identifier benutzt: obj✦ LocateRegistry.getRegistry funktioniert hier! ohne la
22������ ���!��������'���.��������������'
��'���.�������5�����'���.�'���'���.��#�22�-�&�� ��.�������������/'���'���.!�/N����#
'���'���.!�����������'���.���'���.+���=���6��������!6FIJ�GE�)))�)))!FELL7�������� +8!6E!E!E��E7777
22�������9���������'���.��-
��'���.���'���5�����'���.��������'���.���'���.��$
��������'��%����������!�/��'���.���������������� ����
![Page 37: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/37.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-32
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
11.1 Registry (3)
rtet, in dem sie per se keinen
it der Stubs) hat
n CLASSPATH erreichen
mi.server.codebase des Serv-
n die Clients weiter
den Laufzeitfehler der RMI-Runtime
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Wichtiger Hinweis✦ Die Registry muss in einem Working Directory gesta
Zugriff auf die class-Dateien des Servants (und dam✦ Der Registry-Prozess darf die Stubs nicht über seine✦ Ansonsten ignoriert die Registry das Property java.r
ers und gibt evtl. keine entsprechende Annotation a★ Damit können die Clients keine Stubs nachladen und es wer
erzeugt !
![Page 38: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/38.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-33
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
12 RMI Transport-Mechanismen z.B.
ax.rmi)
wie .NET
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● prinzipiell sind diverse Protokolle verwendbar,✦ JRMP (Sun: Java Remote Method Protocol)✦ RMI over HTTP-POST (variable port, port 80)✦ IIOP (OMG: CORBA Internet Inter ORB Protocol, jav✦ soweit abbildbar: Bridges zu anderen Architekturen
● zunächst betrachten wir pure-RMI✦ RMI-IIOP evtl. in späterer Übung
![Page 39: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/39.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-34
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
12.1 Java Serializationhen
on (Deserialisierung)
Marker Interface
eException erzeugt
rch back-references
t großem Objektgraph
e back-references (Dubletten)
tream in derselben VM)
ischen VMs
Default Constructor
Datenstrom rekonstruierbaren
Dynamic Class Loading)
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Transformation von Primitiven und Objektgrap
in einen Datenstrom und spätere Rekonstrukti✦ serialisierbare Klassen tragen java.io.Serializable als ✦ sonst wird bei der Serialisierung eine NotSerializabl✦ Referential Integrity innerhalb einer Verbindung du
★ OutOfMemoryError bei langanhaltender Kommunikation mi★ read/writeUnshared() erlauben mehrfaches Serialisieren ohn
✦ by-copy Semantik (selbst wenn Input- und OutputS✦ interne Versionierung zur Kompatibilitätsprüfung zw✦ erste nicht-serialisierbare Superklasse braucht einen
★ Deserialisierer erzeugt Default-Objekte für die nicht aus dem
Superklassen-Objektteile (sonst Runtime-Fehler !)✦ Annotation der CODEBASE am Class-Descriptor (für
![Page 40: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/40.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-35
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
12.1 Java Serialization (2)
out) throws IOException;
n)
ion, ClassNotFoundException;
erden sollen
bjekts
jectStreamException;
jectStreamException;
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Custom Marshalling für Serializable Objekte✦ private void writeObject(java.io.ObjectOutputStream✦ private void readObject(java.io.ObjectInputStream i
throws IOExcept● Rückgriff auf die Default-Serialisierung
✦ out.defaultWriteObject();✦ in.defaultReadObject();✦ z.B. nutzbar, wenn zusätzliche Daten geschreiben w
● Vollständiges Ersetzen des Ausgabe/Eingabe-O✦ ANY-ACCESS-MODIFIER Object writeReplace() throws Ob✦ ANY-ACCESS-MODIFIER Object readResolve() throws Ob
![Page 41: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/41.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-36
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
12.1 Java Serialization (3)
verwaltet
s
n gegeben wird
kstelligen
erializable-Interface
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Das Interface Externalizable✦ nur Identitt der Klasse des Objekts wird automatisch✦ komplett eigene Implementierung des Datenformat
★ public void writeExternal(ObjectOutput stream)★ public void readExternal(ObjectInput stream)★ Sicherheitskritisch, da wegen public Zugriff auf interne Date
✦ Serialisierung des Supertyps muss man selber bewer✦ es wird ein public non-arg Constructor gebraucht✦ dominiert über bestehende write/readObject() des S✦ writeReplace(), readResolve() wie bei Serializable
![Page 42: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/42.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-37
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
12.1 Java Serialization (4)
rzeugt werden
ene Prüfungen zur Abwärt-
ctStreamField[])
ierung einbezogen werden
bergeben
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● serialVersionUID✦ Signatur-Hash, kann mit dem Programm serialver e✦ Custom-Marshalling muss so angelegt sein, dass eig
skompatibilität möglich bleiben● transient / serialPersistentFields-Attribut (Obje
✦ bewahrt vor / wählt Attribute zur Serialisierung● non-static inner classes
✦ nicht Externalizable und sollten nicht in die Serialis✦ outer class wird automatisch mitserialisiert✦ kein non-arg Constructor möglich
★ ein Parameter (das outer class Objekt) wird implizit immer ü
![Page 43: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/43.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-38
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
12.2 RMI Serializations zum Transport
putStream
.1)
aus
bs (falls exportiert !)
������-��+�$)�������������������������� ���#�#
-��+�$)���������������F��#
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● RMI verwendet die Java Serialisierung als Basi● RMI verwendet Subclass von java.io.ObjectOut
✦ annotateClass, resolveClass (RMI-Specification 10.3★ fügt CODEBASE in den RMI-Datensstrom ein, bzw. liest diese★ sun.rmi.server.MarshalOutput/InputStream
✦ replaceObject ersetzt exportierte Objekte durch Stu������?�������������������������
����� ��������� ������������ ����� ���� ����M� �����������������OO�M� ������;��'����'������ ��;�����'�;��'������������'��M�����������������'��'������
��������� ���#
������ �(� �����������������������F����-���5������?+�����5� ���'������,���������#
� �
![Page 44: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/44.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-39
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
13 RMI ClassLoader
übertragen (v.a. bei by-Copy)
st
usch zu schützen
tion
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Anwendungen✦ Polymorphie: Ableitung eines erwarteten Typs wird ✦ Dynamic Interfaces✦ Custom Sockets✦ ...
● zunächst wird über SystemClassLoader aufgelö✦ Sicherheitsmaßnahme um z.B. java.lang... vor Austa
● java.rmi.server.RMIClassLoader.loadClass● java.rmi.server.RMIClassLoader.getClassAnnota
✦ CODEBASE wurde im RMI-Datenstrom übertragen
![Page 45: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/45.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-40
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
14 Distributed Garbage CollectionM
Server geschickt
der RMI-Runtime eine
henden Remote-Referenzen
rch Center TR 115“
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● live references verwalten Referenzzähler pro V✦ class sun.rmi.transport.LiveRef enthält Zähler✦ Referenced/Unreferenced-Nachrichten werden zum
● interface java.rmi.server.Unreferenced✦ kann von Servant implementiert werden, wenn von
Benachrichtigung erfolgen soll, sobald keine ausste
mehr erkennbar sind● was passiert bei Netzwerk-Partitionierung ?● Literatur
✦ RMI-Specification: Seite 16f, ...✦ Literatur: Birrel, Nelson, Owicki: „DEC Systems Resea
![Page 46: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/46.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-41
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
15 RMI Custom-Sockets
f2)
tFactory-Daten
SE
-Sockets auf
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● java.rmi.server.RMISocketFactory✦ .getDefaultSocketFactory(), .create(Server)Socket()✦ Socket-Information wird in Stream mitverpackt
★ spezielle RemoteRef-Implementierung (z.B. UnicastServerRe
● kann bei export zusätzlich angegeben werden● RMI-Runtime-Unterstützung am Client
✦ extrahiert vor der Server-Kommunikation die Socke✦ lädt ggf. Socket-Implementierungscode via CODEBA✦ baut Kommunikationsstrecke zum Server via Custom
![Page 47: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/47.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-42
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
16 RMI und Firewalls
server:80“
n
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● RMI over HTTP-POST● Port Redirection via CGI-Script an „http://web● Hostname nicht als Host-IP address verwende
![Page 48: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/48.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-43
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
17 RMI Wire ProtocolT
cks
n bestehenden TCP-Kanal
em Applet exportiert werden,
st
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● nutzt Java Object Serialization und HTTP-POS● Sniffed Beispiel, Firewalls, Multiplexing, DGCA● RMI Multiplexing Protocol
✦ virtuelle bidirektionale Verbindungen, z.B. über eine✦ nutzbar für Callbacks zu RemoteObjects, die von ein
der SecurityManager aber keine ServerSockets zuläs
![Page 49: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/49.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-44
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
18 Aufgabease
beendet wird)
TopicNode
MemoNode
Link
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Entwickeln Sie eine Client/Server-KnowledgeB✦ RMI-Server (hält transiente Daten solange er nicht ✦ RMI-Client (Text-UI ähnlich einer Unix-Shell)
● Bäume von Node-Objekten✦ TopicNodes
★ Hauptbaum mit initialem Wurzelknoten✦ MemoNodes
★ Nebenbaum mit Memos jeweils pro TopicNode✦ Links
★ Hyperlinks beliebig zwischen Memo- und TopicNodes
![Page 50: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/50.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-45
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
18.1 Aufgabe: UML-Modell
���A
%&���
&������
��� *
���A
�������
! !
���������� �$���
88�1��#�� �99%���%��&���
��
���������# !�$����� �
�'��� ��������! ���� �������� �� ��� �������� %������� ������� �� %��������� �(��������� �� � ���������$�% �������! ���������(����
88#�%� 99���������# !�$%
"��������
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
!
!
�����.##������ �
� �: #��
� ��
���A
���
� ��
���A
%&: #��
&������
���A
���7
���
���A ���A
&����
�����������
�� �� ��������� �� ������� ����� �������� ��������� ����� �������� ������ ��� ������ ��
���������� ��
�� ������������ �� ������� �� ��������� �� ��������� ����������������� ��� ������ ��
88������+���������� �99���������
�� ��!"�����
�� � ���������������� ���� ����! ������� �� ������ ����! "#
���������# !�
"�����$�������%��
�� ���� �������� ���� �$�% ���� ������� �� ������� �&��'������ �� ������!�%�����(����)���� ���� ���� ����� �&�� �������� �� ��� �������*�!�%�����(���������
�������������������
��*����� ������ �� �������*��*����� ������ �� �������*��*����� �!!����������+,��� �� ��������
�����������������
���� �'��� ������� ��������� ��� ������� )��� ������ ��������� ��� �������� ��)��� ������ �����
![Page 51: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/51.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-46
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
18.2 Aufgabe: Beispiel-Session
/
/2/1
/1-1
/1-1/1 /1-1/2 =
foo
bla
L
/1-1/todo
x
2D�� �R52F9F2 D����������2F9F2 D�� �2
����������������������� ������������������������������
����'� !2F9F2
2D�=
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
2D��&���2D��&���2D���
22F2C
2D�� �F2FD��&���2FD���
229F
2FD�� �9F2F9FD����P�Q2F9FD��&���2F9FD��&���2F9FD���
9F�P�Q9F2F9F2C
2F9FD�� �C2F9F2CD������ 2F9F2 D����P���Q2F9F2 D�'�
P���Q
2F9F2 D�� �22F9FD����F2F9FD���
9F�P�Q9F2 �P���Q
2F9FD�� �22D����
22F2F9F�P�Q2F9F2 �P���Q2C
2D����&�5R2F9F2 2D����
22�5R2F9F2 2F2F9F�P�Q2F9F2 �P���Q2C
![Page 52: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/52.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-47
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
18.2 Aufgabe: Beispiel-Session (2)
t auf Memo
Memo-Knoten
NodeID-Lücke)
ngetastet
den Typs an, tree rekursiv
hne relative Pfade)
c)
. zum RootTopic
-Bereich in Topic-Bereich)
e NodeID bleibt erhalten)
en Zielknoten (LinkTag@Ziel)
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Kommandos✦ mktopic erzeugt einen Topic-Knoten, falls nich✦ mkmemo erzeugt auf Topic/Memo einen neuen✦ rm löscht einen Knoten (es entsteht eine
★ rm @tag löscht einen Link und lässt den Zielknoten una✦ ls, tree zeigt den aktuellen und Subknoten je✦ set/get setzt Content, falls auf Memo✦ cd <Name/ID> wechselt in Subknoten (einschrittig, o
★ Präfixe @LinkTag, -Memo (Memo erster Stufe am Topi
cd / springt zur RootMemo des aktuellen Topics bzw
cd .. geht zum Elternknoten zurück (evtl. aus Memo✦ name benennt einen Knoten (die numerisch✦ link erzeugt einen benannten Link auf ein
![Page 53: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/53.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-48
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
18.3 Aufgabe: Ausblick
es
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Chat-Server (4-dimensional)✦ Topic ist Chat-Room (2-dim Hierarchie)✦ Memos sind Message-Threads (2-dim Hierarchie)✦ Update der Anzeige via Observer-Pattern
● Swing-Oberfläche● Future
✦ On-Demand-(De)Aktivierung, J2EE-Highlevel Servic✦ Redesign und Vergleich mit CORBA✦ MKVS/Services: Webservice + Frontend✦ MKVS/QoS
★ fragmentierte Datenbasis, intelligente Verteilung, ...
![Page 54: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/54.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-49
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
18.4 Aufgabe: Lösungsskizze
i.kbase.st42
ase.Node
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● Konventionen✦ Package: mkvs.rmi.kbase.<studilogin>, z.B. mkvs.rm✦ Java Coding Conventions, inline-Javadoc✦ Implementierungsklassen haben Suffix „Impl“
★ class mkvs.rmi.kbase.st42.NodeImpl implements mkvs.rmi.kb
● Vorgaben✦ UML-Modell✦ zu instrumentierende Non-Remote Interfaces✦ Teil-Implementierung: Client, NodeIterator
![Page 55: MKVS-.bung WS 2002/2003 - … · MKVS-.bung WS 2002/2003 - ... k ★](https://reader031.fdocument.pub/reader031/viewer/2022021707/5ba0a19109d3f267388d44aa/html5/thumbnails/55.jpg)
as I. Schmied, Verteilte Systeme, Universität Ulmbedarf in jedem Fall der Zustimmung des Autors B-50
(von 50)
MKV
S-Ü
bung
WS
2002
/200
3B
Jav
a Re
mot
e In
voca
tion
18.5 Aufgabe: offene Fragent verwendet werden ?
rvants) ?!
nn ein anderer
löscht ?
cher ?
Modifikation
Übung zur Vorlesung Moderne Konzepte Verteilter Systeme Copyright © 2002/2003 AndreMKVS-Uebung-B.fm (13 Nov 2002 15:18) Reproduktion oder Verwendung dieser Unterlagen
● warum kann java.util.Iterator/Observable nich● wo muss koordiniert werden (multithreaded se
✦ was passiert mit dem NodeIterator eines Clients, we
zeitgleich am selben Knoten modifiziert oder sogar ● Skalierbarkeit
✦ alle Knoten Remote ?✦ alle Knoten immer exportiert ?✦ alle Knoten immer aktiv und immer im präsent Spei
● NodeIterator by-Reference oder by-Copy✦ abhängig von Arbeitsgang: nur Iteration oder auch ✦ Wie kann man Kohärenz erhalten