Sie sind auf Seite 1von 25

VSY - Fragenkatalog

1. Was bezeichnet man als verteiltes System? Nennen Sie zwei Beispiele für verteilte
Systeme. (2 Punkte)
In einem verteilten System sind Computer über ein Netzwerk miteinander verbunden und
tauschen Nachrichten aus. Es gibt keinen gemeinsamen Speicher.
Beispiele: - Internet
- P2P-Netzwerke
- Client/Server-Architekturen
- Online Web Buchungsportal
- Cloud
- räumlich voneinander getrennte Ressourcen

2. Nennen Sie mindestens zwei Gründe, warum verteilte Systeme in der Praxis eingesetzt
werden. (1 Punkt)
- Erhöhter Nutzwert durch Ressourcenteilung
- Ausfallsicherheit durch Redundanz
- Performance / Beschleunigung / Lastverteilung
- Ortsunabhängigkeit

3. Welche der folgenden Systeme können als verteilte Systeme bezeichnet werden? Mit
Begründung.
a. eine dezentral organisierte Büroumgebung auf einem / als Rechnernetz
b. der Zentralrechner einer Fluggesellschaft mit weltweit 10.000 sternförmig
angeschlossenen einfachen Buchungsterminals (keine verbundenen Rechner)
c. ein Multiprozessorsystem mit gemeinsamem Speicher / Bus System
d. ein Grid-System

a) verteiltes System: über ein Netzwerk / verbundene Rechner


b) nein, nur ein Rechner
c) nein, weil gemeinsamer Speicher
d) ja, ausfallsicheres klassisches verteiltes System

4. In einem Beispielsystem werden Bestellvorgänge auf verschiedenen Servern vorverarbeitet


und mit der Lagerverwaltung abgeglichen. Welcher Basisdienst kann verwendet werden,
um die folgenden Anforderungen zu erfüllen? (4 Punkte)
a. Die einzelnen Arbeitsschritte sollen auch bei Ausfall eines der Systeme insgesamt
oder gar nicht ausgeführt werden.
b. Bestimmte Bestellvorgänge sollen nur von den Firmenkunden ausgeführt werden
können.
c. Bestellinformationen sollen vertraulich behandelt und insbesondere ohne
Zugriffsmöglichkeiten Dritter über das Netz kommuniziert werden.
d. Der Bestelldienst soll beliebig über das Internet auffindbar sein.
a) Transaktionsdienst
b) Authentifizierungsdienst (wer bist du?) und Authorisierungsdienst (was darfst du?)
c) Sicherheitsdienst / Verschlüsselungsdienst
d) Verzeichnisdienst / Namensdienst

5. Oft werden für komplexe verteilte Systeme mehrschichtige Architekturen verwendet. Wie
viele und welche Schichten schlagen Sie für eine Online-Handelsplattform vor? Skizzieren
und begründen Sie Ihre Lösung. (3 Punkte)
4 Schichten.

Xx User-Interface 1x Webserver 3x Business-Logik 2x Datenbanken


Anwendungslogik
Aufbau unterstützt Redundanz, Skalierbarkeit und Lastverteilung: klare Trennung von
Aufgaben!

6. Weisen Sie den folgenden Systemfunktionen der vorherigen Aufgabe eine


Architekturschicht zu. (3 Punkte)
a. Funktionen eines Warenkorbs
b. Eingabemaske zur Änderung von Kundendaten durch den Kunden
c. Rabattberechnung
d. Aufbereitung des Inhalts des Warenkorbs zur Präsentation beim Nutzer
e. Prüfen von Zugriffsberechtigungen
f. Speicherung von Kundendaten
a) Anwendungslogik
b) User-Interface
c) Anwendungslogik
d) Webserver
e) Anwendungslogik
f) Datenhaltung

7. Skizzieren und beschreiben Sie den Nachrichtenaustausch zur Dienstsuche und -nutzung für
eine zentralisierte, eine pure und eine hybride Peer-to-Peer-Architektur. Diskutieren Sie
die Vor- und Nachteile der Architekturen. (3 Punkte)
zentralisiert:
Die Dienstsuche erfolgt mittels zentralem Verzeichnis, der eigentliche Daten-Download
erfolgt direkt zwischen zwei Clients.
Nachteil: Zentraler Server stellt einen Engpass dar und die Architektur ist weder
fehlertolerant noch ausfallsicher.

pur:
Gleichartige, gleichrangige Knoten, keine spezialisierten Knoten. Die Suche erfolgt mittels
beschränktem Broadcast: Das TTL-Attribut (TimeToLive) wird bei jedem Knoten um eins
erniedrigt, bevor das Paket an alle Nachbarn weitergereicht wird.
Nachteil: Suche ist nicht zielgerichtet. Netzwerk ist um den Suchenden herum sehr stark
belastet. Wert des TTL-Attributes muss nach der erfolglosen Suche angepasst werden.

hybrid:
Diese Mischform soll die Nachteile der anderen Formen vermeiden. Schnelle Rechner bieten
spezielle Dienste und Daten an.

8. Wie werden Rechner und Ressourcen in einem Cloud-Netzwerk gefunden? (5 Punkte)


Mit einer Suche, Peer für Peer nacheinander.
Jeder Knoten kennt nur den nachfolgenden Knoten, denn die zugrundeliegende Topologie ist
ein Ring.
Beim Zugriff auf einen Wert muss im schlimmsten Fall eine Nachricht einmal komplett durch
das Netzwerk, also über n Peers, geschickt werden → ineffizient!
Bei Ausfall eines einzigen Peers zerfällt der Ring in zwei Teile → nicht ausfallsicher!
Um diese Probleme zu lösen, werden finger-Zeiger in der Routingtabelle jedes Peers
gespeichert!

Pro Knoten werden zusätzliche Zeiger gespeichert, wobei die Distanzen, die die Zeiger
überdecken exponentiell wachsen.

9. Wie kann ein neuer Knoten einem puren Peer-To-Peer Netzwerk beitreten? (3 Punkte)
Mittels Bootstrapping
Versuche einen der Peers zu erreichen, der in der Software mitgelieferten Liste aufgeführt
ist.
Von diesem aus wird die I-Nachbarschaft mittels Ping/Pong erkundet: Ein neu
hinzugekommener Peer flutet eine Ping-Nachricht. Alle Peers, die diese Nachricht erhalten,
antworten mit einem Pong.
Die Rückmeldungen werden in einer Liste gespeichert. Diese Liste wird anstelle oder
zusätzliche zu der in der Software gespeicherten Liste genutzt, um sich beim nächsten Start
ins Netzwerk einzubinden.

10. Wie kann ein neuer Knoten einem hybriden Peer-To-Peer Netzwerk beitreten? Wann wird
ein neuer Super-Peer gewählt? (3 Punkte)
Bei einem hybriden P2P-Netz tritt ein Peer dem Netzwerk bei, indem er sich mit einem
Super-Peer verbindet. Ein neuer Super-Peer muss dann gewählt werden, wenn
- Ein Super-Peer das Netzwerk verlässt, oder
- Ein Super-Peer zu viele Kindsknoten besitzt, oder
- Ein Super-Peer zu wenige Kindsknoten besitzt.

11. Wie kann ein neuer Knoten einem Peer-To-Peer Netzwerk wie dem Chord beitreten?
(3 Punkte)
Ein neuer Knoten wird gemäß seines Hash-Wertes auf dem Ring platziert.

Der neue Peer kontaktiert den alten Peer, um die Zuständigkeiten neu zu regeln.
Nur wenige Datensätze werden vom ursprünglichen Knoten auf den Neuen verschoben. Alle
anderen Datensätze sind nicht betroffen von dieser Erweiterung.
Kurz: Position: Hash der ID Daten: Vor- und Nachfolger

12. Was bezeichnet man als Ausfallsicherheit und wie wird es realisiert? Nennen Sie zwei
Beispiele für ein ausfallsicheres System. (3 Punkte)
Ausfallsicherheit bedeutet, dass das verteilte System trotz Ausfalls einer Komponente immer
noch korrekt funktioniert. Es wird durch Redundanz realisiert.
- Server-Cluster
- Backup-Systeme
- RAID
- zeitlich: mehrmalige Übertragung von Daten wie bei TCP
- datentechnisch: Prüfsummen bei fehlerkorrigierenden Codes
- P2P-Protokolle

13. Nennen Sie mindestens drei grundlegende Probleme, die bei verteilten Systemen gelöst
werden müssen.
- Koordination und Synchronisation der Aktionen
- Timing-Probleme (Uhren synchronisieren)
- Fehlertoleranz
- Sicherheitsprobleme
- Standardisierung von Schnittstellen

14. Erklären Sie die Begriffe Ausfallsicherheit und Fehlertoleranz. (2 Punkte)


Ausfallsicherheit bedeutet, dass ein System auch noch nach Ausfall eines Teilsystems korrekt
funktioniert, z.B. übernimmt ein Backup-Server bei Ausfall des eigentlichen Servers dessen
Aufgaben.
Fehlertoleranz heißt, dass ein System auch dann korrekt funktioniert, wenn Teilsysteme
falsche Werte liefern, z.B. bei triple modular redundancy.

15. Erklären und skizzieren Sie, was man unter Triple Modular Redundancy versteht.
(3 Punkte)
Jedes Element einer sequentiellen Aneinanderreihung von Komponenten wird dreimal
ausgeführt. Als Input bekommt jedes Element das (von einem Voter ermittelte)
Mehrheitsergebnis der vorherigen Komponente. Voter müssen, da diese selbst fehlerhaft
sein können, ebenfalls repliziert werden.
Oder anders: Drei identische Prozesse teilen das Ergebnis ihrer Berechnungen drei
Auswertern (Votern) mit. Die Mehrheitsentscheidung kann einfache Fehler ausgleichen.
16. Was versteht man unter dem Begriff Transparenz bei verteilten Systemen? Nennen Sie drei
Arten der Transparenz und erklären Sie, was man darunter versteht. (4 Punkte)
Verbergen der räumlichen Trennung der einzelnen Komponenten im verteilten System vor
Benutzern/Anwendungen. Transparenz bezeichnet eine Hard-, oder Software, deren Existenz
für den Benutzer weder direkt erkennbar noch relevant.
- Zugriffstransparenz: identische Zugriffsoperationen für lokale und entfernte Ressourcen.
- Ortstransparenz: es ist keine Kenntnis über den Ort einer Ressource bzw. eines Dienstes
notwendig.
- Replikationstransparenz: Ressourcenreplikation zur Verbesserung der Leistung/
Zuverlässigkeit sind für Benutzer/Anwendungen unsichtbar.
- Mobilitätstransparenz: Verschiebung von Ressourcen/Clients innerhalb des Systems ist
ohne Beeinträchtigung der Arbeit möglich (Aspekt der Ortstransparenz).
- Leistungstransparenz: Dynamische Rekonfiguration bei variierender Last ist möglich.
- Skalierungstransparenz: Vergrößerung des Systems ist ohne Veränderung der
Systemstruktur und Anwendungen möglich.

17. Erklären Sie kurz den Unterschied zwischen einem Programm, Prozess und einem Thread.
(3 Punkte)
- Ein Programm ist statisch.
- Ein Prozess ist dynamisch: Zustand mit aktuellen Eingabedaten; zwei Prozesse können
dasselbe Programm ausführen.
- Threads teilen sich Ressourcen eines Prozesses: eigener PC/Stack/Register, gemeinsamer
Heap.

18. Sie haben einen parallelen Server mit Threads realisiert. Alle Threads greifen oft auf
gemeinsame Daten zu, die der thread-erzeugende Prozess den Threads zur Verfügung
stellt. Was sollte beim Zugriff auf die gemeinsamen Daten berücksichtigt werden? Wie
realisieren Sie das?
Beim Zugriff auf gemeinsame Daten muss der wechselseitige Ausschluss zur
Konsistenzerhaltung der Daten garantiert sein. Dies erreicht man durch den Einsatz von
Semaphoren oder Mutex-Variablen.

19. Was ist der Unterschied zwischen einer Synchronisation und einem wechselseitigem
Ausschluss?
Synchronisation legt eine Reihenfolge der Abarbeitung für nebenläufige Prozesse fest.
Wechselseitiger Ausschluss bedeutet nur, dass lediglich ein Prozess gleichzeitig im kritischen
Abschnitt sein kann, die Reihenfolge der Abarbeitung ist egal.

20. Nennen Sie mindestens drei Methoden zur Prozesskommunikation.


Innerhalb eines Rechners können Prozesse mittels Signalen, Pipes, Named Pipes und Shared
Memory kommunizieren.
Über Rechnergrenzen hinweg kommunizierende Prozesse mittels Message Passing via
Sockets, RPC, Corba oder Java RMI.

21. Welche Probleme sind zu lösen, wenn Prozesse auf gemeinsam genutzte Variablen
zugreifen?
Synchronisation, wechselseitiger Ausschluss, Deadlocks und Verhungern.

22. Was bezeichnet man in verteilten Systemen mit Synchronisation? Geben Sie zwei
unterschiedliche Bedeutungen an.
- Reihenfolge von Prozessen bei Nebenläufigkeit festlegen.
- Sicherstellen, dass Replikate die gleichen Daten enthalten.

23. Erläutern Sie kurz, wofür ein Netzwerkdatenformat verwendet wird.


Verteilte Systeme sind meist heterogen, was zu Problemen führt, da z.B. Zahlen verschieden
dargestellt werden, bspw. unterschiedliche Mantissengrößen oder andere Byteordnungen
(litte, big Endian). Bei n verschiedenen Datenformaten im Netz wären n*(n-1)
Konvertierungsfunktionen notwendig, wenn jeder Rechner die Nachricht in seinem Format
verschickt und der Zielrechner ins Zielformat wandeln würde. Das Verwenden eines
maschinenunabhängigen Netzwerkdatenformats führt zu eine Reduktion auf 2n
Konvertierungsfunktionen.

24. Was versteht man unter einem shared und unter einem unshared Server? Geben Sie
jeweils ein Beispiel an.
- shared Server: mehrere Dienste, für jeden Dienst/Service eigener Prozess, z.B. inetd-Dämon
unter Linux.
- unshared Server: nur ein Dienst, andere liegen auf unterschiedlichen Servern, z.B. Web-
Server.

25. Erklären Sie den Unterschied zwischen einem per-request Server und einem persistent
Server. Geben Sie jeweils ein Beispiel an.
- Ein per-request Server wird als neuer Prozess bei Anforderung gestartet.
Beispiel: telnet, ssh
- Ein persistent Server ist ständig aktiv und wird oft beim Starten des Systems gestartet.
Beispiel: Web-Server

26. Erklären Sie den Unterschied zwischen einem iterativen und einem parallelen Server.
- Ein paralleler Server kann mehrere Aufgaben gleichzeitig bearbeiten, indem für jede
Anfrage ein eigener Prozess oder Thread gestartet wird.
- Bei einem iterativen Server wird immer zunächst eine Anfrage bearbeitet und
abgeschlossen, bevor eine weitere Anfrage bearbeitet wird.

27. Erklären Sie die Begriffe Proxy, Broker, Trader, Balancer und Agent.
- Ein Proxy kann mehrere Server vertreten und ist somit ein Stellvertreter für mehrere Server,
z.B. läuft der Zugriff auf das Internet oft über einen Proxy.
- Ein Broker kann zwischen Clients und Servern vermitteln. Server registrieren ihre Dienste
beim Broker.
- Der Trader kann den am besten geeigneten Server in Bezug auf bestimmte Charakteristiken
und Eigenschaften für diese Aufgabe aus der Menge von Servern heraussuchen.
- Der Balancer teilt die Arbeitslast der Bearbeitung von Client-Anfragen unter mehreren
Servern auf, je nachdem welcher Server wie belastet ist.
- Der Agent koordiniert mehrere Serveranfragen für den Client.

28. Bei einem Broker wird zwischen einem intermediate/forwarding und seperater/handle-
driven Broker unterschieden. Erklären Sie die Unterschiede.
- intermediate/forwarding Broker: Clientanfrage wird an den betreffenden Server
übergeben, die Rückantwort entgegengenommen und an den Client zurückgeleitet.
- seperater/handle-driven Broker: Der Broker gibt dem Client einen Service-Handle zurück,
sodass der Client direkt mit dem gewünschten Server kommunizieren kann.

29. Beschreiben oder skizzieren Sie kurz den Unterschied zwischen "at least once", "at most
once" und "exactly once" Interaktionssemantik bei der (zuverlässigen) Kommunikation in
verteilten Systemen.
Bei allen drei Varianten schickt der Sender (Client) die Nachricht noch einmal, wenn in einer
bestimmten Zeit keine Antwort vom Empfänger (Server) kommt.
- Bei "at least once" wird eine Anfrage bearbeitet und eine Antwort gesendet, auch wenn es
eine wiederholte Anfrage war, weil die Antwort verloren ging.
- Bei "at most once" legt der Empfänger eine Tabelle an, um zu überprüfen, ob eine Anfrage
bereits in Bearbeitung bzw. bereits bearbeitet worden ist.
- "exactly once" schickt genau eine Anfrage und es kommt genau eine Antwort und ist (fast)
nicht zu realisieren. Hier muss die Tabelle in einem stabilen Speicher gehalten
werden, um auch einen Plattenausfall abzufangen.

30. Welche Interaktionssemantik benötigen Sie für die folgenden Interaktionen mit einem
Flugbuchungsserver?
Ist bei dem Flug LH 123 der Fensterplatz in Reihe 15 noch frei?
Reserviere bei dem Flug LH 123 den Fensterplatz in Reihe 15.
- at least once
- exactly once

31. Bei was nimmt man "at least once" und "at most once" für die Operationen "Hänge Datei B
an Datei A an" für folgende Server:
Server 1: Hängt die Datei B an Datei A an, was eine veränderte Datei A ergibt.
Server 2: Hängt Datei B an Datei A an und diese so aneinandergehängten Dateien ergänzen
eine neue Datei C; d.h. Datei A und B bleiben original erhalten.
- Die "at least once" Semantik hängt möglicherweise die Datei B mehrmals an die Datei A an.
Die "at most once" Semantik hängt höchstens einmal die Datei B an die Datei A an.
- Die "at least once" Semantik und die "at most once" Semantik entsprechen sich und liefern
das gleiche Ergebnis, nämlich die Datei C, die den aneinandergehängten Dateien A
und B entspricht.

32. Erklären Sie, was man unter Client-Caching versteht und welche Probleme damit
verbunden sind. Welche Lösungsansätze gibt es bei zustandsinvarianten und bei
zustandsändernden Servern?
Eine Kopie der Server-Daten wird lokal beim Client gespeichert. Das Problem dabei ist zu
entscheiden, ob der Cache gültige Daten enthält. Lösungsansätze für:
- zustandsinvariante Server: Der Client kann die Daten auf dem Server zwar nicht ändern,
aber der Server selber kann die Daten ändern. Ausweg: Verfallsdatum für Cache-
Einträge einführen oder Gültigkeit der Daten beim Server erfragen.
- zustandsändernder Server: Ein oder mehrere Clients können die Daten ändern. Ausweg:
Zentrale Kontrollinstanz erlaubt nur einen schreibenden Zugriff und entscheidet, ob
einem Client neue Daten geschickt werden müssen bzw. ein Client seinen Cache-
Eintrag löschen soll.

33. Ist bei einem zustandsinvarianten Server ein Client-Caching sinnvoll?


Bei zustandsinvarianten Servern ist ein Client-Caching besonders sinnvoll, da bei ihnen das
Consistency Problem entfällt.

34. Warum ist ein Zeitserver zustandsinvariant? Geben Sie ein weiteres Beispiel für einen
zustandsinvarianten Server an.
Die Änderungen des Zeit-Servers sind unabhängig von den Requests der Clients und die
Requests führen den Server nicht in den neuen Zustand über.
Weitere Beispiele für zustandsinvariante Server sind Namens-Server.

35. Was sind zustandsspeichernde und was sind zustandslose Server? Geben Sie je ein Beispiel
an.
- Zustandsspeichernde Server speichern die Zustände aller Anforderungen/Clients.
Beispiel: DFS
- Bei zustandslosen Servern hingegen wird nichts gespeichert. Die Information geht von den
Clients zu den Clients selbst und muss bei Interaktionen immer mitgeschickt werden.
Beispiel: NFSv3

36. Erläutern Sie die Vor- und Nachteile von einem zustandslosen gegenüber einem
zustandsspeichernden Server.
- Zustandslose Server haben Vorteile beim Absturz des Servers, da dabei keine gespeicherten
Zustände verloren gehen, sondern diese beim Client gespeichert sind.
- Zustandsspeichernde Server haben Vorteile beim Umfang der Daten, die vom Client an den
Server übermittelt werden müssen. Zustandslosen Servern muss der Zustand mit
übermittelt werden, da sie den alten Zustand nicht abgespeichert haben.

37. Wie erreicht man Skalierbarkeit?


Skalierbarkeit wird durch verteilte Systeme oder Cluster-Bildung erreicht.

38. Ein Unternehmen verfügt über vier Update-Server, jeweils zwei für Windows- und zwei für
Linux-Betriebssysteme. Skizzieren Sie eine Anordnung von Client/Server-Elementen, sodass
die Anfragen der Nutzer eines Windows- bzw. Linux-Betriebssystems zu dem
entsprechenden Server weitergeleitet werden und die Last gleichmäßig verteilt wird.
39. Welche Programmiermodelle kennen Sie? Nennen Sie mindestens vier mit jeweils einem
Beispiel.
- Nachrichtenbasiertes Modell (Sockets, Java Messaging Service)
- Auftragsorientiertes Modell (RPC)
- Objektbasiertes Modell (RMI, DCOM, CORBA)
- Komponentenbasiertes Modell (Java, EEJB)
- Web-basiertes Modell (CGI, Web-Services, SSI)

40. Was ist ein Port und wie wird er eingesetzt?


Ein Port ist ein Zugangspunkt für Netzwerkverbindungen:
- Nachricht wird über einen Socket an einen Port geschickt und dann von dem Prozess
empfangen, der an diesem Port registriert ist.
- Eine Internet-Adresse besteht aus der Definition eines Rechners und des Ports.
- Ein Server-Prozess definiert seinen eigenen Port und hört ihn dann ab.
- Ein Client-Prozess muss die Port-Nummer des Servers kennen, den er ansprechen will.

41. Wie lautet die zeitliche Anordnung der Funktion accept, bind, connect, close, listen, read,
socket und write bei einer verbindungsorientierten und bei einer verbindungslosen
Kommunikation?
Verbindungs
orientiert

Verbindungslos

(entblockiert)

- Verbindungsorientiert:
Server: socket → bind → listen → accept → read/recv → write/send → close
Client: socket → connect → write/send → read/recv → close
- Verbindungslos:
Server: socket → bind → recvfrom → sendto → close
Client: socket → sendto → recvfrom → close
42. Skizzieren Sie den Ablauf beim Client-Server-Zugriff über einen Forwarding-Broker.

Zeit Client forwarding Broker Server


sd = socket() sd1 = socket() sd = socket()
bind(sd1) bind(sd)
listen(sd1) listen(sd)
while(1) { while(1) {
connect(sd) nsd = accept(sd1)
if (fork()==0)
write(sd) read(nsd)
sd2 = socket()
connect(sd2) nsd = accept(sd)
write(sd2) read(nsd)
read(sd2) write(nsd)
close(sd2) close(nsd)
read(sd) write(nsd)
close(sd) close(nsd)
exit(0)
} //end while } //end while
close(sd) close(sd)

43. Kommunikationsmodell Client/Forwarding Broker-Server mit Threaderzeugung

Zeit Client handle-driven Broker Server


sd1 = socket() sd = socket() sd = socket()
bind(sd) bind(sd)
listen(sd) listen(sd)
while(1) { while(1) {
connect(sd1) nsd = accept(sd)
write(sd1) read(nsd)
read(sd1) write(nsd)
close(sd1) close(nsd)
sd2 = socket()
connect(sd2) nsd = accept(sd)
if (fork()==0)
write(sd2) read(nsd)
read(sd2) write(nsd)
close(sd2) close(nsd)
exit(0)
} // end while } // end while
close(sd) close(sd)

44. Was macht ein Server-Stub bei RPC/RMI/CORBA?


- Server-Stub führt typischerweise eine Endlosschleife aus und wartet auf eingehende
Nachrichten.
- Bei Empfang der Nachricht wird diese entpackt, sowie die Prozedur mit den Parametern
bestimmt.
- Dann folgt ein konventioneller Prozeduraufruf, der das Ergebnis an den Server-Stub
zurückgibt.
- Dann wird das Ergebnis verpackt und zurückgeschickt und der Server-Stub geht an den
Anfang der Schleife zurück.

Ergänzung: Der Client-Stub:


- Bestimmt die Server-Adresse
- Stellt die Nachricht zusammen
- Gleicht die unterschiedlichen Codierungen und Datenformate an
- Verschickt die Nachricht
- Überwacht die korrekte Übertragung

45. Geben Sie wesentliche Unterschiede zwischen einem lokalen Prozeduraufruf und einem
entfernten Prozeduraufruf an.
- lokaler Aufruf: Prozedur wird im Adressraum des lokalen Rechners ausgeführt.
- entfernter Aufruf: Prozedur wird zwar auf dem lokalen Rechner aufgerufen, aber im
Adressraum des entfernten Rechners ausgeführt.
- Durch den Ausfall des Netzwerks ist kein Verhalten, wie bei der lokalen Prozedur
erreichbar.

46. Skizzieren Sie aus welchen Komponenten die Ablaufstruktur eines RPC-Systems besteht.
Client Server

______________________________Alternative Darstellung___________________________
Client Client Transport- Transport- Server Server
stub system system stub

Prozedur- Marchalling Senden des Empfangen Auspacken Prozedur-


aufruf Request des aufruf
Request

Ergebnis- Auspacken Empfangen Senden des Marchalling Ergebnis-


rückgabe des Reply Reply rückgabe
- Client-Stub:
- Schnittstelle bereitstellen
- Parameter kodieren (marshalling)
- Senden der Infos
- Rückgabe empfangen + decodieren (unmarshalling)
- Ergebnis der Anwendung zur Verfügung stellen
- Server-Stub:
- Läuft in Endlosschleife
- Request empfangen und dekodieren
- Prozedur aufrufen
- Reply kodieren und verschicken

47. Ist der Broker SUNs RPC, also rpcbind bzw. portmap als handle-driven Broker oder als
forwarding Broker implementiert? Begründen Sie.
Der Client erhält ein handle zurück und verbindet sich dann direkt mit dem Server, also ist es
ein seperate/handle-driven Broker.

48. Geben Sie die Implementationsschritte für eine Client/Server-Anwendung bei RPC an.
- Schnittstelle definieren
- RPC-Compiler aufrufen (erzeugt Header-Dateien, Stubs und Umwandlungsroutinen für
Netzwerkdatenformat)
- Client und Server schreiben und kompilieren
- Portmapper starten und Server registrieren

49. Ist ORB von CORBA als handle-driven Broker oder als forwarding Broker implementiert?
Begründen Sie.
CORBA besitzt einen ORB, der den Objektaufruf an das Serviceobjekt weiterleitet und die
Rückantwort dann wieder an den Client zurückgibt. Es ist also ein forwarding/intermediate
Broker.

50. Geben Sie die Implementationsschritte für eine Client/Server-Anwendung bei XML-RPC an.
- keine Unterstützung durch spezielle Compiler
- es stehen nur APIs zur Verfügung, die einen Web-Server, einen XmlRpcServer und einen
XmlRpcClient bereitstellen.
- viel Handarbeit nötig, da alle Parameter und Ergebnisse von Funktionen von Hand in
Container wie vector oder map verpackt werden müssen

51. Geben Sie die Implementationsschritte für eine Client/Server-Anwendung bei Java-RMI an.
- alle Methoden, die serverseitig ausgeführt werden sollen, werden in einem Java-Interface
definiert, das von java.rmi.Remote abgeleitet ist.
- RMI-Compiler aufrufen, der den Server-Stub erzeugt
- Client schreiben
- Server schreiben, der von UnicastRemoteObject abgeleitet ist und Schnittstellen
implementiert
- Registry starten und Server registrieren
52. Wofür stehen die Abkürzungen SOAP, WSDL und UDDI?
- SOAP: Simple Object Access Protocoll
- WSDL: Web-Service Description Language
- UDDI: Universal Description, Discovery and Integration

53. Nennen Sie die beiden wesentlichen Bestandteile eines Protokolls für einen Web-Service.
SOAP und HTTP

54. Erläutern Sie, was man unter einem byzantinischen Fehler versteht.
Ein Prozess fällt nicht total aus, aber arbeitet mit falschen und unvorhersehbarem Verhalten.
Beispiel:
1000
Uhr 1 Uhr 2
1000

1000 1000

1500 500
Uhr 3

Uhr 3 ist fehlerhaft und verursacht einen byzantinischen Fehler.

55. Mit Hilfe von Zeitstempeln bzw. Ereigniszählern für jeden Prozess kann eine Ordnung in
einem verteilten System erreicht werden. Tragen Sie die neuen Werte für die Zeitstempel T
in der Grafik bei Nachrichtenaustausch ein.
P1
120

P2
110

P3
100

121 122 123


P1
120
122 123 124 125
P2
110

P3
120 101 102 125
56. Wie wird in verteilten Systemen wechselseitiger Ausschluss bei verteilten, nicht lokalen
Prozessen sichergestellt? Erläutern Sie zwei Verfahren.
- Tokenbasiert: Alle Prozesse werden in einem logischen Ring verwaltet. Erhält ein Prozess
das Token, darf er in den kritischen Abschnitt treten, ansonsten oder anschließend
gibt Token an nächsten Prozess weiter.
- Abfragebasiert: Prozess, der in kritischen Abschnitt eintreten will, sendet eine Anforderung
als Multicast und wartet auf Erlaubnis aller anderen Prozesse.
- Wenn der angefragte Prozess nicht selber am Eintritt in den kritischen Abschnitt
interessiert ist, kann er die Erlaubnis direkt verschicken
- Ist der angefragte Prozess aber selbst interessiert, dann erhält der Prozess, dessen
Anfrage früher war, die Erlaubnis und speichert die Anfrage in einer
Warteschlange, um die Prozesse später zu benachrichtigen. Dies erfordert
den Einsatz von Zeitstempeln.

57. Veranschaulichen Sie den abfragebasierten Algorithmus zur Lösung des


Konkurrenzproblems grafisch für 4 Prozesse P1, P2, P3 und P4 mit den Zeitstempeln C1, C2,
C3 und C4 bei denen die Prozesse P1 und P3 gleichzeitig eine Anforderung schicken.

P1 P2 P1 P2
C1 = 10 C2 = 7 C1 = 10 C2 = 7

P3 P4 P3 P4
C3 = 4 C4 = 2 C3 = 4 C4 = 2

P1 P2
C1 = 10 C2 = 7

P3 P4
C3 = 4 C4 = 2
58. Nennen Sie zwei Wahlalgorithmen und erklären Sie diese.
1.) Prozesse bilden einen logischen Ring:
Jeder Prozess kennt seinen Nachbarn, Nachrichten werden nur in eine Richtung
gesendet. Ist der Nachfolgeprozess ausgefallen, kann der Sender zu dessen
Nachfolger übergehen. Falls auch dieser ausgefallen ist, auf dessen Nachfolger usw.
Dies ist möglich, da aufgrund unserer Annahmen jede Prozessnummer allen anderen
Prozessen bekannt ist.
- Initialisierung: Prozess Pi veranlasst die Wahl, markiert sich als Teilnehmer und
sendet die Wahl-Nachricht inklusive seiner PID. Jeder empfangende Prozess
vergleicht die in der Nachricht enthaltene PID mit seiner eigenen PID.
- Vergleichsergebnisse:
- Empfangene PID größer und Empfänger ist noch kein Teilnehmer:
Nachrichten unverändert weiterreichen, Prozess markiert sich als
Teilnehmer.
- Empfangene PID kleiner und Empfänger ist noch kein Teilnehmer:
Eintragen der eigenen PID anstelle der ursprünglichen PID,
weitergeben der Nachricht an Nachbarn, markieren als Teilnehmer.
- Empfangene PID ist gleich der eigenen PID: Der aktuelle Prozess hat die
größte PID, die Wahl ist entschieden. Markierungen löschen, Ende-
Nachricht mit PID an Nachbarn weitergeben.
- Empfangende Prozesse löschen die Markierung und reichen PID weiter.

2.) Der Bully-Algorithmus wählt den aktiven Prozess mit dem höchsten Index als Master aus.
Bemerkt ein Prozess Pi, dass der Master ausgefallen ist, geht er folgendermaßen vor:
- Pi schickt eine Nachricht an alle Pk mit k>i (inkl. des alten Masters) und wartet eine
Zeit T auf eine Antwort.
- Erhält ein Prozess Pk die Nachricht, stoppt er die Auswahl von Pi und startet seinen
eigenen Auswahlalgorithmus.
- Erhält Pi innerhalb der Zeit T keine Rückantwort, so bestimmt er sich selbst zum
neuen Master und schickt diese Information an alle Prozesse Pj mit j<i.
- Erhält Pi mindestens eine Rückantwort, so wartet er eine Zeit T' auf die Bestätigung,
dass ein Prozess Pk mit k>i als neuer Master bestimmt wurde. Falls innerhalb
von T' keine Bestätigung eintrifft, startet Pi den Wahlalgorithmus erneut.
59. 73 fehlt!! 61 = 73 Welche Dienste kennen Sie? Nennen Sie mindestens 4 und geben Sie zu
jedem Dienst ein Beispiel an.
- Authentifizierungsdienst: Kerberos
- Namensdienst: DNS
- Zeitdienst: NTP
- Verzeichnisdienst: NIS, LDAP
- Dateidienst: NFS, DFS
- Transaktionsdienst: 2-Phasen-Commit
- Sicherheitsdienst: SSL

60. Was ist der Unterschied zwischen einem Namensdienst und einem Verzeichnisdienst.
Geben Sie ein Beispiel an.
Ein Namensdienst wandelt einen symbolischen Namen in etwas anderes um, z.B. in eine IP-
Adresse. Beispiel: DNS, oder Telefonbuch.
Beim Verzeichnisdienst ist er Name NICHT bekannt, aber der gesuchte Benutzer, Computer,
Dienst usw... kann durch Metainformationen beschrieben werden. Beispiel: LDAP, Active
Directory, NIS, oder Gelbe Seiten.

61. Beschreiben Sie, wie die Namensauflösung beim Adress Resolution Protocol (ARP)
funktioniert.
- Host 1 schickt einen Broadcast mit eigener IP- und MAC-Adresse, sowie der IP des
gesuchten Rechners.
- Alles Rechner des Netzwerks speichern die IP- und MAC-Adresse des Absenders für
mögliche, spätere Verbindungen.
- Host 2 sendet die MAC-Adresse seiner Netzwerkkarte.
- Host 1 kennt nun die MAC-Adresse von Host 2 und baut die Verbindung auf.

62. Aus welchen beiden Komponenten besteht der DCE Directory Service und welche Aufgaben
haben diese?
- Cell Directory Server - CDS: verwaltet die Namensumgebung einer Zelle
- Global Directory Server - GDS: verwaltet die Namensumgebung zwischen den Zellen

63. Welche Aufgabe hat die Datei /etc/services in einem Linux-Betriebssystem und welche
Informationen enthält diese Datei?
Die Datei enthält eine Zuordnung von Diensten zu Portnummern und den
Kommunikationsprotokollen TCP und UDP. Die Datei wird von Funktionen der
Standardbibliothek wie getservent oder getservbyname gelesen.

64. Welche Aufgabe hat die Datei /etc/inetd.conf in einem Linux-Betriebssystem und welche
Informationen enthält diese Datei?
- inedt verwaltet Verbindungen für mehrere Dienste. Wenn eine Verbindung eintrifft,
bestimmt inedt, welches Programm für die eingetroffene Verbindung zuständig ist,
aktiviert den entsprechenden Prozess und reicht den Socket an ihn weiter.
- inedt reduziert die Zahl der Dämonen. Der Einsatz des inedt-Dämons anstelle vieler
einzelner Dämonen führt zu einer Verringerung der Systemlast.
- inedt wird vor allem dazu verwendet, andere Dämonen zu aktivieren, einige Protokolle
werden aber auch direkt verwaltet. Dazu gehören chargen, auth und daytime.

65. Was ist Replikation und welche Gründe gibt es dafür?


Unter Replikation versteht man die mehrfache Ausführung von Entitäten wie Prozessen,
Datenbanken etc.
Gründe dafür sind beispielsweise:
- Verfügbarkeitserhöhung (Fehlertoleranz: Umschaltemöglichkeit auf ein Backup,
Voting-Mechanismen)
- Performancesteigerung (Lastverteilung, Zugriff auf Replikate in der näheren
Umgebung)

66. Welche Probleme treten bei Replikationen auf?


Es entsteht ein Zusatzaufwand durch Konsistenzerhaltung (neben den eigentlichen Kosten
für die Einrichtung von Replikaten). Replikation ist daher nicht immer sinnvoll: es kommt auf
die Anwendung, sowie das verfügbare Kapital und die Zugriffsmuster an: Es ist nicht immer
sinnvoll bei sehr vielen Schreib- und sehr wenigen Lesezugriffen.

67. Zum Abschluss einer verteilten Transaktion wird das 2-Phasen-Commit Protokoll
eingesetzt. Wie wird auf den Ausfall eines Teilnehmers reagiert, wenn dieser bereits
erfolgreich eine Ready-Nachricht versendet hat und alle weiteren Teilnehmer, sowie der
Koordinator ebenfalls mit Ready geantwortet haben?
Der Koordinator schließt die Transaktion erfolgreich mit Commit ab. Die Teilnehmer können
die Sperren freigeben und Zwischenstände von Daten verwerfen, wodurch Rollback nicht
mehr möglich ist.
Der ausgefallene Teilnehmer muss nach dem Wiederanlaufen den Koordinator fragen, ob ein
Commit oder Rollback ausgeführt werden sollte und schließt dann ebenfalls die Transaktion
ab.

68. Was ist der Unterschied zwischen einem Broker und einem Namensdienst?
Ein Broker ist ein Vermittler zwischen einem Client und einem Server, somit ist ein Broker ein
Namensdienst, ein Verzeichnisdienst, oder ein Load-Balancer.
69. Ordnen Sie die Sicherheitsmechanismen Verschlüsselung, Authentifikation und
Autorisierung den folgenden Aufgabenstellungen zu:
1. die Identität eine Benutzers prüfen
2. die, über einen unsicheren Kanal gesendeten Nachrichten sollen nur von autorisierten
Personen gelesen werden können
3. ein Dienst soll nur von den dazu berechtigten Benutzern verwendet werden können
1. Authentifikation
2. Verschlüsselung
3. Autorisierung

70. Wozu dient die External Data Representaton (XDR) bei Sun-RPCs?
XDR ist ein einheitliches Datenformat. Im Netz existieren Rechner mit unterschiedlichem
Datenformat. Bei Übertragung von Daten von einem Rechner zum anderen wird vom
internen Format des Rechners in XDR gewandelt und anschließend von XDR ins Datenformat
des anderen Rechners.

71. Wofür steht IDL? Geben Sie ein einfaches Beispiel eines IDL-Interfaces für die
Multiplikation von 2 Zahlen an.
IDL heißt Interface Definition Language.
Interface Mult() {
int mult2(in int, in int);
};

72. Wozu dient die Datei /etc/resolv.conf und welche Informationen enthält sie?
Bei DNS ist die Verteilung und Lokation der Name-Server für die Clients transparent. Zu
diesem Zweck stehen in der Standardbibliothek verschiedene Funktionen zur Verfügung, die
Zugriffe auf DNS ermöglichen. Diese Funktionen nennt man Resolver. Werden diese
Funktionen das erste Mail aufgerufen, lesen sie die Konfigurationsdatei /etc/resolv.conf.
Die Datei enthält bspw. die Name-Server.

73. Wozu dient die Datei /etc/nsswitch.conf und welche Informationen enthält diese?
- Gibt für jeden Resolver die Quellen und deren Lookup-Reihenfolge an.
- hosts: files dns beschreibt, dass Informationen über die Rechnernamen und deren IP-
Adressen zuerst in den lokalen Tabellen des Rechners gesucht werden. Falls diese
Namensauflösung fehlschlägt, wird der DNS gefragt.
- services: nis files beschreibt, dass die Informationen über verfügbare Dienste zuerst bei NIS
erfragt werden, bei Misserfolg dann in den eigenen Tabellen.

74. Im Cell Directory Server CDS tauchen die Begriffe Clearhouse, Clerks und Lookup auf.
Was bedeuten diese?
- Clearhouse wird eine Ansammlung von Verzeichnissen genannt und ist eine Datenbank.
Jeder CDS-Server verwaltet eine oder mehrere Datenbanken.
- Clerks heißen bei CDS die Agenten. Ein Clerk erhält die Anfragen von einem Client. Er fragt
einen oder mehrere CDS-Server ab, stellt die Antwort zusammen und gibt sie an den
Client zurück.
- Lookup ist die Namensresolution bei CDS.

75. 75!=85,85 = 76 Nennen Sie mindestens 4 Anforderungen an einen File-Dienst mit Erklärung.
- Zugriffstransparenz: Keine Unterscheidung zwischen lokalen und entfernten Daten.
- Ortstransparenz: Clients sehen einheitlichen Namensraum.
- Dateien und Dateigruppen können an andere Positionen verschoben werden, ohne
dass sich ihr Pfadnamen ändern.
- Mobilitätstransparenz: Weder Clients noch Administrationstabellen in Clients werde bei
einer Datenverschiebung modifiziert.
- Leistungstransparenz: Eine Mindestverfügbarkeit auch bei sehr hoher Auslastung
sicherstellen.

76. Bei einem Zeitdienst muss sichergestellt werden, dass die "liegt-vor"-Relation erhalten
bleibt. Wie wird das beim Zeitdienst NTP realisiert?
- Geht eine Uhr nach, so wird sie vorgestellt.
- Geht eine Uhr vor, so wird sie verlangsamt, indem in einer von einem Timer ausgelösten
Unterbrechungsroutine weniger Millisekunden aufaddiert werden als üblich, bis eine
Angleichung vollzogen ist.

77. Was versteht man unter "ortsunabhängig"?


Es ist keine Anwesenheit am Serverstandort nötig.

78. Welche Implementationsschritte müssen in CORBA zur Erstellung einer Client/Server-


Anwendung durchgeführt werden?
- Interface definieren über IDL
- IDL kompilieren → Stubs, Skeletons
- Servents programmieren (Objekt Implementierung)
- Server implementieren, auf dem die Servents laufen
- Client programmieren

79. =80, weil 78=79 Nennen Sie wesentliche Schritte bzw. Bestandteile eines Server-
Programms mit Portable Object Adapter.
- ORB initialisieren
- POR und POR-Manager bereitstellen/initialisieren
- einen Servent angelegt/bereitgestellt, bekannt gemacht
- zu dem Servent eine Objektreferenz erstellt
- Objektreferenz dem Client zur Verfügung stellen (siehe Skript)
- z.B. über Mikrobinder, in eine Datei schreiben, Nameservice

80. Was bedeutet ACID?


Es steht für Atomicity, Consistency, Isolation und Durability. Man spricht im Deutschen auch
von AKID-Eigenschaften (Atomarität, Konsistenz, Isolation und Dauerhaftigkeit)
- Atomicity: alles oder gar nichts
- Consistency: vorher und nachher konsistenter Zustand
- Isolation: keine gegenseitige Beeinflussung der Transaktionen
- Durability: Daten in stabilen Speicher bleiben auch nach Systemausfall erhalten

81. Was ist der Unterschied zwischen Authentisierung und Autorisierung?


- Authentisierung: wer es zu sein scheint
- Autorisierung: was ich machen darf

82. Was ist der Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung?
Nennen Sie Vor- und Nachteile.
- symmetrisch: - schneller
- unsicherer, weil Schlüsselaustausch geheim gehalten werden muss.
- asymmetrisch: - jeder hat private/public key;
- Schlüsselaustausch über unsichere Kanäle möglich
- langsamer

83. Wie funktioniert NTP?


- hierarchisches System UTC = koordninierte Weltzeit

84. Was ist ein Zeitstempel? Wofür benötigt man Zeitstempel?


- es gibt keine globale, einheitliche Zeit in einem verteilten System, deshalb werden sog.
Zeitstempel gesetzt.
- Sie werden benötigt um Ereignisse zeitlich zuordnen zu können.
Bsp.: a vor b ↔ t(a) < t(b)

85. Wie heißt der Broker bei RPC/RMI?


- RPC: rpcbind / portmap
- RMI: registry
- CORBA: Broker

86. Wie heißt der Namensdienst bei RPC/RMI?


RPC/RMI haben keinen Namensdienst!

87. 92 = 88Was versteht man unter Fehler maskieren?


- Konsensalgorithmen: Mehrheitsentscheidungen, dies ist Fehlertoleranz
88. Was ist ein Konsistenzmodell? Geben Sie Beispiel und Erklärung an.
1) strikte-Konsistenz (nicht herstellbar wegen Latenz)
2) sequentielle-Konsistenz
3) kausale-Konsistenz
4) schwache-Konsistenz

zu 2) alle Prozesse lesen in der gleichen Reihenfolge (Zeit spielt in diesem Modell keine Rolle,
nur müssen alle immer das Gleiche lesen):

zu 3) Ursache-Wirkungsprinzip. R ist abhängig von W

zu 4) Schreibsperre setzen (kritischer Abschnitt)

89. 90 = 93Nennen Sie Arten von Replikationen. "Wer und wann"?


- wer: Server oder Client
- wann: sofort (permanent) oder dynamisch (je nach Anfrage)(Cluster)

90. Erläutern Sie den Unterschied zwischen Replikation und Caching.


- Replikation: alle Daten duplizieren
- Caching: Clientseitig, aber nicht alle Daten werden dupliziert

91. Eventuelle Konsistenz ist ein Client-zentriertes Konsistenzmodell (Caching). Erklärung und
Beispiel.
Bsp.: DNS, Webcache
Clientcaching → Eventuelle Konsistenz (irgendwann wird alles abgeglichen sein) beruht
darauf, dass es nicht viele Schreibvorgänge gibt.

92. 93=95/96 Wie werden physikalische Redundanzen (auch Prozesse) unterschieden?


- passiv: HA-System/Backup (Clients sehen nur einen Server)
- aktiv: Server werden abwechselnd abgefragt

93. Nennen Sie Varianten des Abgleichs der Replikate? (Verteilungsprotokolle)


- push: das Subjekt schickt detaillierte Informationen über die Änderung mit, egal, ob sie
interessant sind oder nicht (kurz: sagen, dass es was neues gibt)
- pull: es werden nur minimale Informationen verschickt, so dass der Beobachter nachfragen
muss, um Details zu erfahren (immer wieder anfragen, ob es was neues gibt)
- Operationen + neue Datenwerte + leere Menge weitergeben
(heißt: sagen, es gibt was neues, schau aber, wie du es bekommst)
94. Nennen Sie Anforderungen an fehlertolerante Systeme.
- Sicherheit (wenn ein Fehler auftritt, das nichts Schlimmes passiert)
- Zuverlässigkeit (Zeitspanne Bsp. wie sicher läuft es 5 Wochen; 2 Wochen im August ist das
System aus / hochzuverlässig)
- Verfügbarkeit: 96% verfügbar
- Wartbarkeit (wenn ein Fehler aufgetreten ist, wie schnell lässt sich das System wieder
starten)

95. Wie ist die Strukturierung ausfallsicherer Prozessgruppen?


- hierarchisch (einer ist Chef)
- flach

96. Wie wird Zeit angepasst?


- Lokale Uhr geht vor → Verlangsamen (Ereignisse nicht mehr eindeutig zuvor)
- Lokale Uhr geht nach → Neue Zeit setzen

97. Wie wird in einem verteilten System ein wechselseitiger Ausschluss realisiert?
- Zentralisierte Lösung
- Jeder schickt jedem seinen Zeitstempel und der mit dem Kleinsten bekommt den Zuschlag
- Mittels Token-Ring-Verfahren

98. Was ist ein byzantinischer Fehler (böser Fehler)?


- Ein Prozess arbeitet fehlerhaft und erzeugt falsche Ergebnisse
- Falsche Ergebnisse führen zu inkorrekten Nachrichten und stellen eine Gefahr für die
Integrität des verteilten Systems dar

- Fail-Stop-Fehler: Prozess stoppt nach Fehler → einfach erkennbar


99. Was ist DCE und aus welchen Komponenten besteht es?
Was: - ein verteiltes System
- kein Betriebssystem oder Anwendung, sondern eine
- Sammlung von Services und Werkzeugen, eine Middleware.
Wichtige Komponenten: - Thread-Package, ist evtl. im Betriebssystem integriert.
- RPC-Facility: Werkzeuge zur Gestaltung von
Prozeduraufrufen auf entfernten Rechnern.
- Distributed Time Services (DTS): Die Uhren aller beteiligter
Einheiten werden, soweit es geht, synchronisiert.
- Namensdienst / Cell Directory Service (CDS):
Ortstransparenter Zugriff auf Server, Dateien,
Geräte...
- Sicherheitsdienste: Authentifizierung und Autorisierung.
- Distributed File Services (DFS): Verteiltes Dateisystem stellt
einheitlichen, transparenten, systemweiten Zugriff
auf Dateien bereit.

100. Fassen Sie den Begriff Heterogenität zusammen.


Verteilte Systeme basieren auf unterschiedlichen Netzwerken, Betriebssystemen,
Programmiersprachen, Implementierungen, unterschiedlicher Hardware...
Wir benötigen daher: - gemeinsame bzw. standardisierte Netzwerkprotokolle,
- austauschbare, hardware-unabhängige Formate für Daten und
Datenstrukturen
- und Standards für die Interprozesskommunikation
Ansätze zur Lösung des Problems: - Erzeuge Code für virtuelle Maschine, nicht für
Hardware.
- Middleware: Eine Software-Schicht verbirgt die
Heterogenität.
ABER: Solche Programme sind zwar
unabhängig von der Hardware und vom
Betriebssystem, aber abhängig von der
Middleware!

101. Prinzipieller Ablauf bei RPC/RMI/CORBA.


1. Schnittstelle definieren
2. (Prä) Compiler aufrufen
3. Schnittstelle implementieren

102. Welche Konsensalgorithmen kennen Sie?


- Das Problem der "byzantinischen Generäle"

Das könnte Ihnen auch gefallen