Also, hallo. Wir hatten uns ja vor zwei Wochen inzwischen über etliche Grundlagen, grundlegende
Konzepte von verteidigtem System unterhalten und ich möchte jetzt heute auf den ersten
Basismechanismus eigentlich von verteidigtem System näher eingehen.
Das Kommunikationssystem selber, das darunter liegt und ich will das mal ein bisschen genauer
analysieren, was es damit so auf sich hat und welche Eigenschaften es hat und so weiter.
Es geht also einerseits um die Interprozesskommunikation, dabei vor allem um den Austausch von Botschaften
zwischen irgendwelchen kommunizierenden Einheiten und dabei müssen wir auf alle Fälle mal
unterscheiden, ob dieser Botschaftenaustausch synchron oder asynchron passiert, ob er gepuffert
wird oder ob er ungepuffert ist, ob er blockierend oder nicht blockierend ist und auch natürlich
ob er zuverlässig oder nicht zuverlässig ist.
Abhängig davon, und wir meinen das sind jetzt immerhin schon mal acht verschiedene Varianten,
die wir da unterscheiden müssen, abhängig davon, ja, verhält sich das Kommunikationssystem
natürlich sehr unterschiedlich und das muss man natürlich dann beim Aufbau von komplexeren
Mechanismen oben drüber entsprechend beachten.
Dann werden wir uns über die verschiedenen Semantiken von Interprozesskommunikation
oder damit beschäftigen und welche Varianten es da gibt und eine ganz wichtige Sache ist
natürlich, wenn man bei der Kommunikation über das Kommunikationssystem Fehler hat,
also Zustellungsfehler von Nachrichten, dann wie geht man damit eigentlich um und was
bedeutet das dann auch wieder, ja, letztendlich auch für die Semantiken, die dann hinter dieser
Kommunikation stecken.
Einfach, damit das nicht ganz so abstrakt bleibt, eine ganz simple Angelegenheit, ich
schicke eine Nachricht an anderen Knoten, die Nachricht geht verloren und ich weiß
ja anschließend, also als Absender von der Nachricht weiß ich das ja eventuell gar nicht,
dass sie verloren ging und die Frage ist jetzt natürlich, wenn durch diese Nachricht irgendetwas
bewirkt wird auf der anderen Seite, dann ist es ja eventuell nicht egal, ob ich das einmal
mache oder mehrfach, die Nachricht mehrfach schicke, also wieder das klassische Beispiel
mit dem Bankkonto, also addiere 100 Euro auf das Konto, wenn so eine Nachricht verloren
geht und ich schicke sie nochmal, ok gut, dann habe ich endlich die 100 Euro drauf,
aber wenn sie vielleicht doch nicht verloren gegangen ist und ich schicke sie zweimal,
dann ist natürlich ein Fehler passiert im Gesamtsystem.
Und ja, abhängig letztendlich von der Semantik, die hinter meinem ganzen Interprozesskommunikationsmechanismus
steht, ja, es ist eventuell sehr unterschiedlich, wie ich eben mit Zustellungsfehlern im System
umgehe.
Gut, das werden wir uns also genauer anschauen.
Wichtig bei der Interprozesskommunikation sind natürlich dann die Kommunikationsendpunkte
und gut, das sind jetzt natürlich auch wieder ein paar Begriffe von Wosch dabei, also Briefkästen,
Pforte, Tore, also letztendlich auch solche Dinge wie Ports und Sockets, Prozessinkarnation
oder Prozessinstanzen.
Ich hatte das nach dem, ich habe das Skript an der Stelle nochmal überarbeitet, was dann
also jetzt dann die nächsten Tage, wenn ich es im Netz auch ändern, ich habe also den
Begriff Prozessinkarnation jetzt zum Beispiel komplett durch Prozessinstanz ersetzt.
Ich wollte es bloß momentan auf dem Folien nicht machen, weil der momentan ausgedruckte
Skript heilte enthält noch den Begriff und damit wir jetzt hier nicht so auseinander
laufen.
Also Prozessinstanz an der Stelle einfach zur Unterscheidung von dem Prozesskonzept
als solchen, wo man ja den Prozess eher als klasse sieht und an der Stelle geht es uns
ja wirklich um die ganz konkrete Instanz eines Prozesses, der eben ein Kommunikationspartner
sein kann in so einer Interprozesskommunikation.
Gut, eventuell könnten es natürlich auch Prozeduren sein, also auch innerhalb eines
Prozesses, wenn man das nochmal fein Granulager aufdröseln möchte.
Presenters
Zugänglich über
Offener Zugang
Dauer
01:25:12 Min
Aufnahmedatum
2012-05-08
Hochgeladen am
2019-05-08 07:09:03
Sprache
de-DE
- Übersicht und Grundlagen verteilter Systeme
-
Verteilte Programmierung, Client/Server-Konzept
-
Kommunikation, Prozesse, Namensgebung
-
Koordinierung, Konsistenzwahrung
-
Grundlagen verteilter Algorithmen
-
Zeit in verteilten Systemen (logische Uhren, NTP)
-
Java, weiterführende Konzepte (z.B. Threads, Reflections)
-
Sun RPC, Java RMI
-
Dynamische Erzeugung von Proxies, Callback
Lernziele und Kompetenzen:
Die Studierenden
-
erwerben fundierte Kenntnisse über Grundlagen von verteilten Systemen
-
verstehen Zusammenhänge, die die verteilte Ausführung von Programmen in vernetzten Rechensystemen ermöglichen
-
erlernen die verteilte Programmierung in Java
-
entwickeln eine Middleware-Plattform zur Ausführung verteilter Programme