5 - Verteilte Systeme [ID:11007]
50 von 1127 angezeigt

Ja, wir hatten uns letzte Woche mit dem Thema Remote Procedure Codes beschäftigt und das

denke ich wird uns auch heute noch weitgehend beschäftigen.

Ich will so am Abschnitt über Semantikaspekte nochmal aufsetzen.

Damit hatten wir letzte Woche schon so kurz angefangen.

Es gibt eine ganze Reihe von Aspekten eben, wo sich dann doch Fernaufrufe von lokalen

Aufrufen unterscheiden.

Ein wesentlicher Punkt sind die Parameter, ist die Parameterübergabe.

Man muss, ja letztendlich sagen wir mal, einerseits unterscheidet sich es natürlich

bei der Parameterübergabe.

Andererseits ist auch wichtig an der Stelle zu betrachten, was mit den Parametern tatsächlich

passiert.

Ob die also, in welche Richtung sie übergeben werden.

Also eine Situation, die man eigentlich im lokalen Fall überhaupt nicht weiter unterscheiden

muss.

Man übergibt eben Parameter und ob der jetzt ein Eingangsparameter oder ein Ausgangsparameter

ist, ist letztendlich, was die Effizienz des Aufrufs angeht, erst einmal irrelevant.

Beim Fernaufruf ist es natürlich ein Unterschied, weil man ja die Parameter in Datenpakete verpacken

muss und übertragen muss.

Und es macht natürlich einen Unterschied, ob ich den Parameter erst zum Aufgerufenen

übertragen muss und wieder zurück übertragen muss, weil er den möglicherweise im Fall

von Koiber Referenz verändert hat oder nicht.

Also das heißt, man muss einfach unterscheiden, ob man Eingabe- oder Ausgabeparameter hat

oder Parameter, die in beide Richtungen zu transferieren sind.

Das ist in den Programmiersprachen für den lokalen Fall üblicherweise nicht vorgesehen.

Wenn man die Parameterübergabe aber explizit spezifizieren kann, kann man eben solche Informationen

eben dem System mitliefern, sodass es also an der Stelle eben optimieren kann.

Und die Semantiken, die man an der Stelle hat, ist also ja im lokalen Fall üblicherweise

der Koiber Referenz.

Wenn ich über den Parameter sowohl Werte in eine Funktion hineingeben will, als auch

zurückbekommen möchte.

Und im verteilten Fall ist der Koiber Referenz in der Regel eigentlich nicht vernünftig

nutzbar.

Und die Annäherungen daran, die zumindest annähernd eben das gleiche Ergebnis liefert,

wäre der Koiber Value Result.

Das heißt ein Koiber Value, bei dem die Parameter kopiert werden und der Koiber Result, bei

dem das Ergebnis auch zurückkopiert wird.

Oder die Veränderung zurückkopiert wird, muss man ja eigentlich sagen.

Ein anderes Problem ist, dass die Gültigkeitsbereiche unterschiedlich sind und im verteilten Fall

eben massiv eingeschränkt sind.

Man hat letztendlich die Variablen eines entfernten Scopes typischerweise eben nicht verfügbar.

Und insofern ist man natürlich, was die Nutzbarkeit von zum Beispiel globalen Variablen angeht,

natürlich ganz stark eingeschränkt.

Und auch Speicheradressen sind eben der Regel natürlich systemweit nicht eindeutig, sodass

eben man nicht Zeiger versenden kann, wie man das eben beim lokalen Aufruf typischerweise

macht.

So, also beim Parameterarten hatten wir ja dann eben unterschiedeneingabe-Parameter,

Ausgabe-Parameter oder eben Ein- und Ausgabe-Parameter, die eben in beiden Nachrichten übertragen

werden.

So, darüber hatten wir dann letztes Mal schon gesprochen.

Darüber auch noch.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:28:07 Min

Aufnahmedatum

2012-05-22

Hochgeladen am

2019-05-08 11:19:02

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

Einbetten
Wordpress FAU Plugin
iFrame
Teilen