<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Verteilte Systeme Archive - Maximilian Krieg</title>
	<atom:link href="https://maximiliankrieg.de/category/studium/bachelor-of-science/6-semester-b-sc/verteilte-systeme/feed/" rel="self" type="application/rss+xml" />
	<link>https://maximiliankrieg.de/category/studium/bachelor-of-science/6-semester-b-sc/verteilte-systeme/</link>
	<description>Wissen, Technik &#38; Erfahrungen</description>
	<lastBuildDate>Sat, 20 Jun 2026 09:28:01 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://maximiliankrieg.de/wp-content/uploads/2026/05/cropped-20260524_logo_2_512-2-32x32.png</url>
	<title>Verteilte Systeme Archive - Maximilian Krieg</title>
	<link>https://maximiliankrieg.de/category/studium/bachelor-of-science/6-semester-b-sc/verteilte-systeme/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Verteilte Systeme (Klausurvorbereitung)</title>
		<link>https://maximiliankrieg.de/2014/07/verteilte-systeme-klausurvorbereitung/</link>
					<comments>https://maximiliankrieg.de/2014/07/verteilte-systeme-klausurvorbereitung/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Thu, 03 Jul 2014 19:45:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2962</guid>

					<description><![CDATA[<p>Heute haben wir die wichtigsten Inhalte der gesamten Vorlesung nochmal besprochen. Skript-Anfang VS_0_So2014 &#8211; Seite 1 Skript-Ende VS_6_So2014 &#8211; Seite 70 Hinweise</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/07/verteilte-systeme-klausurvorbereitung/">Verteilte Systeme (Klausurvorbereitung)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute haben wir die wichtigsten Inhalte der gesamten Vorlesung nochmal besprochen.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>VS_0_So2014 &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>VS_6_So2014 &#8211; Seite 70</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Hinweise</h3>



<ul class="wp-block-list">
<li>Programmieren ist nur als Pseudocode gefordert</li>



<li>Man sollte die Unterschiede des Receive bei UDP und TCP kennen</li>



<li>Die Folien 3-90 sind nicht klausurrelevant</li>



<li>Hilfsmittel sind keine erlaubt</li>



<li>Die Fragen aus dem Skript sind wichtig, aber nur die konkret beantwortbaren Fragen</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/07/verteilte-systeme-klausurvorbereitung/">Verteilte Systeme (Klausurvorbereitung)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/07/verteilte-systeme-klausurvorbereitung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Teil 3)</title>
		<link>https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-3/</link>
					<comments>https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-3/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Thu, 03 Jul 2014 09:27:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=3183</guid>

					<description><![CDATA[<p>Ein verteiltes System ist im Prinzip der Zusammenschluss mehrerer Rechner zur Lösung einer gemeinsamen Aufgabe. Eines der größten verteilten Systeme ist das Internet mit seinen&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-3/">Verteilte Systeme (Teil 3)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ein verteiltes System ist im Prinzip der Zusammenschluss mehrerer Rechner zur Lösung einer gemeinsamen Aufgabe. Eines der größten verteilten Systeme ist das Internet mit seinen Applikationen. Teil 3 behandelt das Thema Middleware.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>VS_1_So2014 &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>VS_6_So2014 &#8211; Seite 70</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Middleware</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Middleware bezeichnet in der Informatik anwendungsneutrale Programme, die so zwischen Anwendungen vermitteln, dass die Komplexität dieser Applikationen und ihre Infrastruktur verborgen werden</p>
</blockquote>



<h4 class="wp-block-heading">Allgemeines</h4>



<p class="wp-block-paragraph">Was ist Middleware?</p>



<ul class="wp-block-list">
<li>Eine Infrastruktur mit Standard-Lösungen für Standardaufgaben</li>



<li>Liegt in einer Schicht über dem Betriebssystem und unter den Anwendungen</li>



<li>Vermittelt zwischen Anwendungen, dass die Komplexität dieser Applikationen und ihre Infrastruktur verborgen werden</li>
</ul>



<p class="wp-block-paragraph">Welche Arten von Middleware gibt es?</p>



<ul class="wp-block-list">
<li>Web Services (<em>SOAP/WSDL, REST</em>)</li>



<li>Message-oriented Middleware (<em>MPI/PVM</em>)</li>



<li>Object-oriented Middleware (<em>Java RMI, CORBA</em>)</li>
</ul>



<p class="wp-block-paragraph">Welche Transparenzeigenschaften erfüllen sie?</p>



<ul class="wp-block-list">
<li>Verteilungstransparenz</li>



<li>Ortstransparenz</li>
</ul>



<p class="wp-block-paragraph">Was unterscheidet Middleware von den bisher betrachteten Netzwerkdiensten (<em>Sockets und RPCs</em>)?</p>



<ul class="wp-block-list">
<li>Nichts</li>
</ul>



<h4 class="wp-block-heading">Web Services</h4>



<p class="wp-block-paragraph">Welche Vorteile bieten Web Services im Vergleich zu XML-RPC?</p>



<ul class="wp-block-list">
<li>Größere Freiheit bei Definition von Datenstrukturen und Austausch</li>



<li>Unterstützung bei der Codeerzeugung</li>



<li>Veröffentlichung der Definitionen</li>



<li>Web (mit HTTP als Protokoll) als erprobte, standardisierte Basis</li>



<li>Dienste können über ein Verzeichnis automatisiert lokalisiert werden</li>
</ul>



<p class="wp-block-paragraph">Kann man damit Server-Server Kommunikation realisieren?</p>



<ul class="wp-block-list">
<li>Ja</li>
</ul>



<p class="wp-block-paragraph">Aus welchen Komponenten bestehen Web Services?</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Komponente</th><th>Beschreibung</th></tr><tr><td>XML (eXtended Markup Language)</td><td>Textformat für den Austausch strukturierter Daten</td></tr><tr><td>XML Schema</td><td>Beschreibung von XML Strukturen</td></tr><tr><td>SOAP (Simple Object Access Protocol)</td><td>Zuständig für Austausch von XML Nachrichten, meist über HTTP</td></tr><tr><td>WSDL (Web Service Description Language)</td><td>XML Beschreibung der Funktionen von Web Services</td></tr><tr><td>UDDI (Universal Description, Discovery and Integration)</td><td>Verzeichnisdienst (ähnlich RMI Registry)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Wie werden Informationen mit XML ausgetauscht?</p>



<ul class="wp-block-list">
<li>XML Header mit Version und Encoding</li>



<li>XML Tags für Objekte und Attribute (<em>Schachtelung</em>)</li>



<li>Tags mit IDs für Objekte zur Identifikation</li>
</ul>



<p class="wp-block-paragraph">Wo ist die Definition der Tags?</p>



<ul class="wp-block-list">
<li>In der Schema-Datei</li>
</ul>



<p class="wp-block-paragraph">Was ist das XML-Schema?</p>



<ul class="wp-block-list">
<li>Bietet vordefinierte Datentypen und Möglichkeiten zur Definition komplexer Datentypen</li>



<li>Dateiendung .xsd</li>



<li>.xml Dateien enthalten Link auf ein (<em>oder mehrere</em>) Schema</li>



<li>.xml Dateien können dann gemäß des Schemas interpretiert werden</li>
</ul>



<p class="wp-block-paragraph">Was ist Simple Object Access Protocol (SOAP)?</p>



<ul class="wp-block-list">
<li>Transportprotokoll für Client-Server-Anwendungen</li>



<li>Zustandslos (<em>wie HTTP</em>)</li>



<li>Besteht aus Envelope, Header und Body</li>



<li>Im Header können Zusatzinformationen definiert werden (<em>Alarm mit Priorität und Ablaufdatum</em>)</li>



<li>Im Body wird die Spezifikation des Headers aufgegriffen (<em>Nachricht des Alarms</em>)</li>
</ul>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a4cc9b2e740d&quot;}" data-wp-interactive="core/image" data-wp-key="6a4cc9b2e740d" class="wp-block-image size-full wp-lightbox-container"><img fetchpriority="high" decoding="async" width="193" height="266" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_soap.png" alt="" class="wp-image-3184"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph">Was ist die Web Services Description Language (WSDL)?</p>



<ul class="wp-block-list">
<li>Sprache zur Beschreibung von Schnittstellen</li>



<li>Verwendet zur Veröffentlichung von Web Services</li>



<li>Vollständig in XML formuliert, eigenes Schema</li>



<li>Benutzt SOAP für den Nachrichtenaustausch</li>
</ul>



<p class="wp-block-paragraph">Welche Ziele verfolgt die WSDL?</p>



<ul class="wp-block-list">
<li>Maschinenlesbarer Zugang zu Diensten</li>



<li>Weitgehend automatisierte Integration von Diensten in neue Anwendungen</li>



<li>Integration zur Laufzeit</li>



<li>Automatische Erstellung von Beschreibungen und Client/Server Software durch Werkzeuge</li>
</ul>



<p class="wp-block-paragraph">Wie ist die WSDL aufgebaut?</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Komponente</th><th>Beschreibung</th></tr><tr><td>description</td><td>Definiert den Namensraum für alle darunterliegenden Teile</td></tr><tr><td>types</td><td>Definiert Datentypen für den Nachrichtenaustausch (<em>element oder complexType</em>)</td></tr><tr><td>interface</td><td><code>operation</code>&nbsp;sind die zur Verfügung gestellten Funktionen</td></tr><tr><td>binding</td><td>Definiert wie Funktionsaufruf und Antwort transportiert werden (<em>SOAP mit HTTP GET</em>)</td></tr><tr><td>service</td><td>Bindet den Dienst aus binding an eine IP-Adresse und legt einen Namen fest</td></tr><tr><td>documentation</td><td>Hier steht die Dokumentation</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Was ist Universal Description, Discovery and Integration (UDDI)?</p>



<ul class="wp-block-list">
<li>Verzeichnisdienst für Web Services</li>



<li>Veröffentlicht WSDL Definitionen von Web Services</li>



<li>Veröffentlicht Zusatzinformationen zu Inhalten und verantwortliche Organisation</li>



<li>Publishing API = Veröffentlichen von Web Services</li>



<li>Inquiry API = Suchen nach Web Services</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-3/">Verteilte Systeme (Teil 3)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Teil 1)</title>
		<link>https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-1/</link>
					<comments>https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-1/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Thu, 03 Jul 2014 09:22:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=3170</guid>

					<description><![CDATA[<p>Ein verteiltes System ist im Prinzip der Zusammenschluss mehrerer Rechner zur Lösung einer gemeinsamen Aufgabe. Eines der größten verteilten Systeme ist das Internet mit seinen&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-1/">Verteilte Systeme (Teil 1)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ein verteiltes System ist im Prinzip der Zusammenschluss mehrerer Rechner zur Lösung einer gemeinsamen Aufgabe. Eines der größten verteilten Systeme ist das Internet mit seinen Applikationen. Teil 1 gibt uns eine allgemeine Einleitung in verteilte Systeme.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>VS_1_So2014 &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>VS_6_So2014 &#8211; Seite 70</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Einleitung</h3>



<h4 class="wp-block-heading">Definition</h4>



<p class="wp-block-paragraph">Was sind verteilte Systeme?</p>



<ul class="wp-block-list">
<li>Ansammlung unabhängiger Computer</li>



<li>System erscheint den Benutzern kohärent</li>



<li>Kohärenz ist der Zusammenhang des Gesamtsystems</li>



<li>Verteilung ist unsichtbar für Benutzer (<em>Verteilungstransparenz</em>)</li>



<li>Multicore Rechner sind keine verteilte Systeme (<em>wegen fehlender Unabhängigkeit</em>)</li>
</ul>



<h4 class="wp-block-heading">Qualitätsmerkmale</h4>



<p class="wp-block-paragraph">Wie sollte ein gutes verteiltes System aussehen?</p>



<ul class="wp-block-list">
<li>Verteilungstransparenz</li>



<li>Offenheit</li>



<li>Skalierbarkeit</li>



<li>Zuverlässigkeit</li>



<li>Zugriff auf Ressourcen</li>
</ul>



<p class="wp-block-paragraph">Was ist Verteilungstransparenz?</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Art</th><th>Transparenz</th></tr><tr><td>Zugriff</td><td>Zugriff auf lokale und entfernte Ressourcen mit gleichen Mechanismen</td></tr><tr><td>Ort</td><td>Anzahl und Position der Teile</td></tr><tr><td>Migration</td><td>Verschiebung einer Ressource</td></tr><tr><td>Relokation</td><td>Verschiebung einer Ressource während der Nutzung</td></tr><tr><td>Nebenläufigkeit</td><td>Gleichzeitiger Zugriff mehrerer Nutzer</td></tr><tr><td>Fehler</td><td>Ausfall und Wiederherstellung einer Ressource</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Welche der Transparenzen kann man realistischerweise implementieren?</p>



<ul class="wp-block-list">
<li>Zugriff</li>



<li>Ort</li>



<li>Nebenläufigkeit</li>



<li>Migration</li>



<li>Fehlertoleranz</li>
</ul>



<p class="wp-block-paragraph">Was ist Offenheit?</p>



<ul class="wp-block-list">
<li>Schnittstellen sind offen und unabhängig vom Betriebssystem</li>



<li>Kommunikation zwischen unterschiedlichen Systemen (<em>HW und SW</em>)</li>



<li>Austausch von Komponenten ist möglich (<em>Portabilität</em>)</li>



<li>Zusätzliche Komponenten können einfach integriert werden (<em>Erweiterbarkeit</em>)</li>



<li>Umsetzung mittels Schnittstellenbeschreibungssprachen (<em>IDL</em>)</li>
</ul>



<p class="wp-block-paragraph">Was ist Skalierbarkeit?</p>



<ul class="wp-block-list">
<li>Verteiltes System soll einfach erweiterbar sein</li>



<li>Erweiterung bei zusätzlicher Rechenlast, Nutzern oder Aufgaben</li>



<li>Zugriffe müssen dabei noch sinnvoll verteilt werden</li>



<li>Unterteilung in Zonen (<em>DNS</em>)</li>
</ul>



<p class="wp-block-paragraph">Wie kann man die Skalierbarkeit verbessern?</p>



<ul class="wp-block-list">
<li>Kluge Auslagerung von Teilaufgaben an andere Systeme (<em>Client</em>)</li>



<li>Daten am Stück übertragen statt in kleinen Teilen</li>
</ul>



<p class="wp-block-paragraph">Was ist Zuverlässigkeit?</p>



<ul class="wp-block-list">
<li>Das System sollte immer zur Verfügung stehen</li>



<li>Verteilung und Redundanz kompensiert Ausfälle (<em>Fehlertoleranz</em>)</li>



<li>Es gibt keine <strong>single points of failure</strong></li>
</ul>



<p class="wp-block-paragraph">Was ist Zugriff auf Ressourcen?</p>



<ul class="wp-block-list">
<li>Das System sollte den Zugriff auf benötigte Ressource einfach machen</li>
</ul>



<p class="wp-block-paragraph">Welche Probleme gibt es bei verteilten Systemen?</p>



<ul class="wp-block-list">
<li>Ad-hoc Netzwerke</li>



<li>Sich ständig ändernde Topologien</li>



<li>Datenschutz</li>
</ul>



<p class="wp-block-paragraph">Welche Herausforderungen gibt es in verteilten Systemen?</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Eigenschaft</th><th>Beschreibung</th></tr><tr><td>Skalierbarkeit</td><td>Leistung steigt linear proportional durch das Hinzufügen von weiteren Knoten, Rechnern und Ressourcen an</td></tr><tr><td>Replikation</td><td>Mehrfache Speicherung derselben Daten an verschiedenen Standorten (<em>Ohne Replikation ist Konsistenz einfach</em>)</td></tr><tr><td>Konsistenz</td><td>Verteilte Daten sind auf allen Systemen aktuell (<em>Datenbanken</em>)</td></tr><tr><td>Synchronisation</td><td>Vorgänge laufen gleichzeitig (<em>synchron</em>) oder in der korrekten Reihenfolge ab (<em>Einstellung via NTP</em>)</td></tr><tr><td>Fehlertoleranz</td><td>System fällt nicht aus, auch wenn ein Fehler oder unvorhergesehenes Ereignis eintritt</td></tr><tr><td>Namensdienst</td><td>Adressierung von Komponenten im Netz (<em>Kann von Replikation und Fehlern beeinflusst werden</em>)</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">Beispiele</h4>



<p class="wp-block-paragraph">Was sind Beispiele für verteilte Systeme?</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Typ</th><th>Beispiel</th></tr><tr><td>Cloud-Dienste</td><td>Facebook, Twitter und Google</td></tr><tr><td>Client- und Server-Architekturen</td><td>E-Mail und WWW</td></tr><tr><td>Multicore CPUs</td><td>Gehört nicht zur Definition</td></tr><tr><td>Grid-Computing</td><td>Wissenschaftliches Rechnen auf weltweit verteilten (Groß-)Rechnern</td></tr><tr><td>Internet der Dinge</td><td>Mehrere eingebettete verteilte Systeme interagieren miteinander</td></tr><tr><td>Automobile</td><td>Austausch von aktuellen Sensor- und Verkehrsdaten</td></tr><tr><td>Banken</td><td>Kassen, Geldautomaten, Homebanking, Kontoauszug und Konto</td></tr><tr><td>Voice-over-IP</td><td>Clients und Gateways</td></tr><tr><td>Cloud-Computing</td><td>Kommerzielle Vermietung der Rechenleistung von einzelnen Rechnern via Middleware</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Warum werden Cloud-Dienste in aller Regel von verteilten Systemen bereitgestellt?</p>



<ul class="wp-block-list">
<li>Latenz (<em>Globaler Zugriff</em>)</li>



<li>Skalierbarkeit (<em>Starkes Wachstum</em>)</li>



<li>Zuverlässigkeit (<em>Jederzeit Zugriff</em>)</li>
</ul>



<p class="wp-block-paragraph">Welche Komponenten interagieren in einem Cloud-Dienst wie Google?</p>



<ul class="wp-block-list">
<li>Rechenzentren mit tausenden einzelnen Servern</li>



<li>Stellt Dienste wie Webserver, Loadbalancer, Indexserver, Dokumentenserver und Spellchecker bereit</li>



<li>Alle Dienste sind über einen zentralen Zugang (www.google.de) erreichbar</li>



<li>Den Anwendern gegenüber bleibt die komplexe verteilte Architektur gegenüber verborgen</li>
</ul>



<h4 class="wp-block-heading">Architekturen</h4>



<p class="wp-block-paragraph">Welche Architekturen gibt es?</p>



<ul class="wp-block-list">
<li>Hardware</li>



<li>Software</li>



<li>System</li>
</ul>



<p class="wp-block-paragraph">Was ist eine Hardware-Architektur?</p>



<ul class="wp-block-list">
<li>Einzelne Rechner mit mehreren CPUs werden zu einem Cluster-Rechner hinzugefügt</li>



<li>Die Komponenten im Cluster sind über das Netzwerk verbunden</li>



<li>Die Dienste und Aufgaben werden auf die einzelnen Rechner (<em>Rechen-Knoten</em>) verteilt</li>



<li>Systeme werden über die Laufzeit durch Erweiterungen heterogener</li>



<li>Der Master-Knoten kontrolliert die Rechenknoten</li>
</ul>



<p class="wp-block-paragraph">Was ist eine Software-Architektur?</p>



<ul class="wp-block-list">
<li>Zusammenschluss von Rechnern zu einem gemeinsamen System</li>



<li>Heterogenität wird durch Middleware verborgen</li>



<li>Middleware ist eigentlich kein Betriebssystem (<em>Arbeitet in der Schicht darüber</em>)</li>



<li>Eine einheitliche Schnittstelle verbirgt die Verteilung (<em>Transparenz</em>)</li>
</ul>



<p class="wp-block-paragraph">Welche Systemarchitekturen gibt es?</p>



<ul class="wp-block-list">
<li>Geschichtet</li>



<li>Objektbasiert (<em>service oriented</em>)</li>



<li>Ereignisbasiert (<em>event driven</em>)</li>



<li>Datenzentiert (<em>data centric</em>)</li>
</ul>



<p class="wp-block-paragraph">Was sind geschichtete Systemarchitekturen?</p>



<ul class="wp-block-list">
<li>Unterteilung der Aufgaben in Schichten</li>



<li>Jede Schicht kann auf einem anderen System liegen</li>



<li>Client-Server-Architekturen (<em>1 Client und 1 Server</em>)</li>



<li>Multitier-Architekturen (<em>1 Client und n Server</em>)</li>



<li>Bei Multitier-Architekturen wird in Darstellung, Verarbeitung und Daten-Schicht unterteilt</li>
</ul>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a4cc9b2ea473&quot;}" data-wp-interactive="core/image" data-wp-key="6a4cc9b2ea473" class="wp-block-image size-full wp-lightbox-container"><img decoding="async" width="642" height="537" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_multitier.png" alt="" class="wp-image-3171" srcset="https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_multitier.png 642w, https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_multitier-300x251.png 300w" sizes="(max-width: 642px) 100vw, 642px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph">Was sind objektbasierte Systemarchitekturen?</p>



<ul class="wp-block-list">
<li>Objekte besitzen klar definierte Schnittstellen und Aufgaben</li>



<li>Objekte greifen auf ihre Methoden zu um diese Aufgaben zu erledigen</li>



<li>Position der Objekte wird durch Namensdienste bekannt gegeben</li>
</ul>



<p class="wp-block-paragraph">Was sind ereignisbasierte Systemarchitekturen?</p>



<ul class="wp-block-list">
<li>Komponenten greifen auf einen Bus zu, der Ereignisse an die anderen Komponenten ausliefert</li>



<li>Vorheriges Abonnieren der Ereignisse notwendig</li>
</ul>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a4cc9b2ea8e2&quot;}" data-wp-interactive="core/image" data-wp-key="6a4cc9b2ea8e2" class="wp-block-image size-full wp-lightbox-container"><img decoding="async" width="539" height="199" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_bus.png" alt="" class="wp-image-3172" srcset="https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_bus.png 539w, https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_bus-300x111.png 300w" sizes="(max-width: 539px) 100vw, 539px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph">Was sind datenzentrierte Systemarchitekturen?</p>



<ul class="wp-block-list">
<li>Daten liegen ausschließlich im zentralem Speicherraum</li>



<li>Daten werden hier hin veröffentlicht</li>



<li>Daten werden von hier angefordert</li>
</ul>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a4cc9b2eac98&quot;}" data-wp-interactive="core/image" data-wp-key="6a4cc9b2eac98" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="406" height="263" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_daten.png" alt="" class="wp-image-3173" srcset="https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_daten.png 406w, https://maximiliankrieg.de/wp-content/uploads/2026/06/20140703_vs_daten-300x194.png 300w" sizes="auto, (max-width: 406px) 100vw, 406px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h4 class="wp-block-heading">Realität</h4>



<p class="wp-block-paragraph">Welche Fehleinschätzungen werden häufig gemacht?</p>



<ul class="wp-block-list">
<li>Netzwerke sind unsicher, nicht zuverlässig und nicht immer verfügbar (<em>Firewalls, Paketverlust, Defekte, etc.</em>)</li>



<li>Nachrichten brauchen Zeit um den Empfänger zu erreichen (<em>Latenz</em>)</li>



<li>Reihenfolge von Nachrichten wird im Netzwerk vertauscht</li>



<li>Es gibt keine gemeinsame Zeit (<em>Zeit ist nicht synchronisiert</em>)</li>



<li>Komponenten können ausfallen</li>



<li>Bandbreite und Rechenleistung ist begrenzt</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-1/">Verteilte Systeme (Teil 1)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/07/verteilte-systeme-teil-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Vorlesung 18)</title>
		<link>https://maximiliankrieg.de/2014/07/verteilte-systeme-vorlesung-18/</link>
					<comments>https://maximiliankrieg.de/2014/07/verteilte-systeme-vorlesung-18/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Wed, 02 Jul 2014 19:28:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2931</guid>

					<description><![CDATA[<p>Inhalt Das Skript enthält alle Informationen dieser Vorlesung. Skript-Anfang VS_6_So2014 &#8211; Seite 1 Skript-Ende VS_6_So2014 &#8211; Seite 70</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/07/verteilte-systeme-vorlesung-18/">Verteilte Systeme (Vorlesung 18)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Inhalt</h3>



<p class="wp-block-paragraph">Das Skript enthält alle Informationen dieser Vorlesung.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>VS_6_So2014 &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>VS_6_So2014 &#8211; Seite 70</td></tr></tbody></table></figure>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/07/verteilte-systeme-vorlesung-18/">Verteilte Systeme (Vorlesung 18)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/07/verteilte-systeme-vorlesung-18/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Vorlesung 17)</title>
		<link>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-17/</link>
					<comments>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-17/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Wed, 25 Jun 2014 18:29:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2933</guid>

					<description><![CDATA[<p>Inhalt Ausgefallen wegen dem Bildungsstreik.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-17/">Verteilte Systeme (Vorlesung 17)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Inhalt</h3>



<p class="wp-block-paragraph">Ausgefallen wegen dem Bildungsstreik.</p>



<p class="wp-block-paragraph"></p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-17/">Verteilte Systeme (Vorlesung 17)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-17/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Vorlesung 16)</title>
		<link>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-16/</link>
					<comments>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-16/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Wed, 18 Jun 2014 19:42:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2960</guid>

					<description><![CDATA[<p>Heute schließen wir das Thema&#160;Namensdienste&#160;ab und beginnen mit einem Einstieg in das Thema&#160;Sicherheit. Skript-Anfang VS_5_So2014 &#8211; Seite 82 Skript-Ende VS_6_So2014 &#8211; Seite 24 Lamport-Algorithmus Aufgabe&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-16/">Verteilte Systeme (Vorlesung 16)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute schließen wir das Thema&nbsp;<strong>Namensdienste</strong>&nbsp;ab und beginnen mit einem Einstieg in das Thema&nbsp;<strong>Sicherheit</strong>.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>VS_5_So2014 &#8211; Seite 82</td></tr><tr><th>Skript-Ende</th><td>VS_6_So2014 &#8211; Seite 24</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Lamport-Algorithmus</h3>



<h4 class="wp-block-heading">Aufgabe 1</h4>



<p class="wp-block-paragraph">Wofür wird der Zeitstempel im ACK gesendet?</p>



<p class="wp-block-paragraph">Er dient zur Sicherstellung der Fairness zwischen verschiedenen Prozessen</p>



<h4 class="wp-block-heading">Aufgabe 2</h4>



<p class="wp-block-paragraph">Was kann man machen, wenn ein ACK nicht zugestellt wird? (Server ist ausgefallen)</p>



<ol class="wp-block-list">
<li>Einen Timeout setzen und den Server aus der Liste werfen</li>



<li>Senden nochmal mit exponential backoff probieren</li>
</ol>



<h4 class="wp-block-heading">Aufgabe 3</h4>



<p class="wp-block-paragraph">Wie schließt ein Client den Tunnel eines HTTP Proxy?</p>



<p class="wp-block-paragraph">Indem er die TCP Verbindung zum Server beendet. Der Proxy erkennt dies in den Paketen und schließt den Tunnel.</p>



<h3 class="wp-block-heading">Lightweight Directory Access Protocol (LDAP)</h3>



<ul class="wp-block-list">
<li>Passwörter werden nur als gehashte Werte gespeichert</li>



<li>Diese Hashes werden dann mit dem Hash eines übermittelten Passworts verglichen</li>
</ul>



<h3 class="wp-block-heading">Firewall</h3>



<ul class="wp-block-list">
<li>Schützt vor unerlaubtem Lesen und Schreiben</li>



<li>Unterbindet unerlaubten Zugriff auf definierte Dienste im Netzwerk</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-16/">Verteilte Systeme (Vorlesung 16)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-16/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Praktikum 5)</title>
		<link>https://maximiliankrieg.de/2014/06/verteilte-systeme-praktikum-5/</link>
					<comments>https://maximiliankrieg.de/2014/06/verteilte-systeme-praktikum-5/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Tue, 17 Jun 2014 09:23:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=3051</guid>

					<description><![CDATA[<p>Inhalt Für diesen Termin habe ich keine Lösung implementiert.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-praktikum-5/">Verteilte Systeme (Praktikum 5)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Inhalt</h3>



<p class="wp-block-paragraph">Für diesen Termin habe ich keine Lösung implementiert.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-praktikum-5/">Verteilte Systeme (Praktikum 5)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/06/verteilte-systeme-praktikum-5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Vorlesung 15)</title>
		<link>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-15/</link>
					<comments>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-15/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Thu, 12 Jun 2014 19:41:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2958</guid>

					<description><![CDATA[<p>Heute beschäftigen wir uns mit verschiedenen Dateisystemen und Namensdiensten. Skript-Anfang VS_5_So2014 &#8211; Seite 35 Skript-Ende VS_5_So2014 &#8211; Seite 88 Network File System (NFS) Andrew File&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-15/">Verteilte Systeme (Vorlesung 15)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute beschäftigen wir uns mit verschiedenen Dateisystemen und Namensdiensten.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>VS_5_So2014 &#8211; Seite 35</td></tr><tr><th>Skript-Ende</th><td>VS_5_So2014 &#8211; Seite 88</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Network File System (NFS)</h3>



<ul class="wp-block-list">
<li>Datei wird in kleinen Teilen geschickt</li>



<li>Server kann die Größe dieser Teile limitieren</li>



<li>RPC-basiert</li>



<li>Zustandsbehaftet</li>
</ul>



<h3 class="wp-block-heading">Andrew File System (AFS)</h3>



<ul class="wp-block-list">
<li>Implementiert den Zugriff auf eine entfernt liegende Datei</li>



<li>Soll gut skalierbar sein</li>



<li>Verwendet 64 KB Blöcke</li>



<li>Das <strong>whole file sharing</strong> entspricht dem upload/download-Prinzip</li>



<li>Das <strong>whole file caching</strong> entspricht dem Zurückschicken, am Ende eines Zugriffs, von NFS</li>



<li>Keine Garantie für Schutz von Dateien durch überschreiben bei gleichzeitiger Öffnung (callback promise)</li>



<li>Der Server verspricht alle Clients, die die Datei gecacht haben, darüber zu informieren, wenn diese auf dem Server aktualisiert wird</li>



<li>AFS verschlüsselt nur mit DES (schwach)</li>
</ul>



<h3 class="wp-block-heading">Google File System (GFS)</h3>



<ul class="wp-block-list">
<li>Hier laufen Map Reduce Prozesse gut</li>



<li>Schwerpunkte auf Fehlertoleranz, Skalierbarkeit, verteilter Speicher und großen Datenmengen</li>



<li>Der Master verteilt und verwaltet die Chunks der Slaves</li>



<li>Der Master speichert die einzelnen Handels der Chunks für jede Datei</li>
</ul>



<h4 class="wp-block-heading">Annahmen</h4>



<ul class="wp-block-list">
<li>Server laufen mit günstiger Standard-Hardware (Quantität statt Qualität)</li>



<li>Es gibt hauptsächlich große Dateien</li>



<li>Schreiboperationen finden meist am Ende einer Datei statt (Anhängen)</li>



<li>Seltener werden Dateien ganz ersetzt oder mittendrin bearbeitet</li>



<li>Inkonsistenzen in kleinerem Umgang werden hingenommen (Alte Suchergebnisse)</li>
</ul>



<h3 class="wp-block-heading">Namensdienste</h3>



<ul class="wp-block-list">
<li>DNS</li>



<li>LDAP</li>



<li>WINS</li>
</ul>



<h3 class="wp-block-heading">Aufgabe</h3>



<p class="wp-block-paragraph">Worauf kann ein verteiltes System in keinem Fall verzichten?</p>



<ol class="wp-block-list">
<li>Zuverlässigkeit</li>
</ol>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-15/">Verteilte Systeme (Vorlesung 15)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-15/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Vorlesung 14)</title>
		<link>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-14/</link>
					<comments>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-14/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Wed, 11 Jun 2014 19:41:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2956</guid>

					<description><![CDATA[<p>Heute beschäftigen wir uns mit&#160;Verteilten Dateisystemen&#160;und dem&#160;Network File System. Skript-Anfang VS_5_So2014 &#8211; Seite 1 Skript-Ende VS_5_So2014 &#8211; Seite 34 Network File System (NFS) Aufgabe 1&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-14/">Verteilte Systeme (Vorlesung 14)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute beschäftigen wir uns mit&nbsp;<strong>Verteilten Dateisystemen</strong>&nbsp;und dem&nbsp;<strong>Network File System</strong>.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>VS_5_So2014 &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>VS_5_So2014 &#8211; Seite 34</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Network File System (NFS)</h3>



<ul class="wp-block-list">
<li>Protokoll zum Zugriff auf Dateien über ein Netzwerk</li>



<li>Dateien werden nicht wie bei FTP übertragen</li>



<li>Benutzer greifen auf entfernte Ressourcen so zu, als ob sie lokal gespeichert wären</li>



<li>Mit NFS V4 können mehrere Operationen gleichzeitig aufgerufen werden</li>



<li>Dadurch können in einem RPC mehrere Funktionen hintereinander ausgeführt werden.</li>
</ul>



<h4 class="wp-block-heading">Aufgabe 1</h4>



<p class="wp-block-paragraph">Welchen Vorteil bringt das Aufrufen mehrerer Funktionen durch einen einzigen RPC?</p>



<p class="wp-block-paragraph">Dadurch können RPCs eingespart werden.</p>



<h4 class="wp-block-heading">Aufgabe 2</h4>



<p class="wp-block-paragraph">Wo wird dieses Verfahren auch genutzt?</p>



<p class="wp-block-paragraph">Es wird beim Pipelining von idempotenten und unabhängigen HTTP-Anfragen genutzt.</p>



<h4 class="wp-block-heading">Aufgabe 3</h4>



<p class="wp-block-paragraph">Welche Nachteile gibt es bei der Operation READ?</p>



<p class="wp-block-paragraph">Da die Position des Zugriffs und die Anzahl der zu lesenden Bytes angegeben werden können, kann es zu Speicherzugriffsverletzungen kommen. Zusätzlich muss vom Server die Menge der Bytes pro Transaktionen limitiert werden, da bei einem Timeout sonst alles neu übermittelt werden müsste und die Bandbreite von einer Übermittlung blockiert würde.</p>



<h4 class="wp-block-heading">Aufgabe 4</h4>



<p class="wp-block-paragraph">Ist NFS V4 zustandslos?</p>



<p class="wp-block-paragraph">Nein, da die&nbsp;<strong>locking</strong>&nbsp;und&nbsp;<strong>delegation</strong>&nbsp;Funktionen mit Zuständen arbeiten.</p>



<h4 class="wp-block-heading">Aufgabe 5</h4>



<p class="wp-block-paragraph">Implementiert NFS V4 das Modell&nbsp;<strong>remote access</strong>&nbsp;oder&nbsp;<strong>upload/download</strong>?</p>



<p class="wp-block-paragraph">Es implementiert remote access.</p>



<h4 class="wp-block-heading">Aufgabe 6</h4>



<p class="wp-block-paragraph">Was muss beim Client beachtet werden, wenn ein Server Dateien von einem anderen Server importiert?</p>



<p class="wp-block-paragraph">Es wird beim Client nur das importiert, was physikalisch auf dem Server liegt. Ein Client muss solche Daten ausdrücklich importieren.</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-14/">Verteilte Systeme (Vorlesung 14)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-14/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Verteilte Systeme (Vorlesung 13)</title>
		<link>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-13/</link>
					<comments>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-13/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Wed, 04 Jun 2014 19:40:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2954</guid>

					<description><![CDATA[<p>Heute haben wir uns mit&#160;Konsistenzmodellen&#160;und&#160;Verteilten Transaktionen&#160;beschäftigt. Skript-Anfang VS_4_So2014_3 &#8211; Seite 1 Skript-Ende VS_4_So2014_3 &#8211; Seite 51 Konsistenz 2 Phasen Commit Commit-request Phase Commit Phase Alle&#8230;</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-13/">Verteilte Systeme (Vorlesung 13)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute haben wir uns mit&nbsp;<strong>Konsistenzmodellen</strong>&nbsp;und&nbsp;<strong>Verteilten Transaktionen</strong>&nbsp;beschäftigt.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Skript-Anfang</th><td>VS_4_So2014_3 &#8211; Seite 1</td></tr><tr><th>Skript-Ende</th><td>VS_4_So2014_3 &#8211; Seite 51</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Konsistenz</h3>



<ul class="wp-block-list">
<li>Paralelle Zugriffe können mit Hilfe von Lamport blockiert werden</li>
</ul>



<h3 class="wp-block-heading">2 Phasen Commit</h3>



<ol class="wp-block-list">
<li>Koordinator (Aufrufender Prozess) fragt die Teilnehmer, ob die Transaktion gelingt</li>



<li>Ein Teilnehmer blockiert seine Ressourcen nach seinem <strong>ready</strong>, bis eine Antwort vom Koordinator kommt</li>



<li>Nur wenn alle Teilnehmer zustimmen, leitet der Koordinator das finale Schreiben ein</li>



<li>Wenn ein Teilnehmer fehlschlägt, werden die Transaktionen zurückgesetzt</li>



<li>Die Ressourcen werden danach wieder freigegeben</li>
</ol>



<h4 class="wp-block-heading">Commit-request Phase</h4>



<ul class="wp-block-list">
<li>Koordinator sendet ein <strong>prepare</strong> an alle Teilnehmer</li>



<li>Koordinator wartet auf Antworten aller Teilnehmer</li>



<li>Teilnehmer verarbeiten die Transaktion bis zu dem Punkt, wo die Transaktion entweder mit <strong>commit</strong> oder <strong>rollback</strong> abgeschlossen würde</li>



<li>Teilnehmer schreiben Einträge in ihr <strong>undo log</strong> und in ihr <strong>redo log</strong></li>



<li>Teilnehmer antworten mit <strong>ready</strong>, wenn die Transaktion erfolgreich war &#8211; oder sie antworten mit <strong>failed</strong>, wenn die Transaktion fehlgeschlagen ist</li>
</ul>



<h4 class="wp-block-heading">Commit Phase</h4>



<p class="wp-block-paragraph"><strong>Alle Teilnehmer sind ready</strong></p>



<ol class="wp-block-list">
<li>Der Koordinator sendet <strong>commit</strong> an alle Teilnehmer</li>



<li>Die Teilnehmer schließen die Transaktion mit commit ab und geben alle Locks und Ressourcen frei</li>



<li>Die Teilnehmer senden ein <strong>acknowledgment</strong> zurück</li>



<li>Der Koordinator beendet die Transaktion, wenn er von allen Teilnehmern die Bestätigung erhalten hat</li>
</ol>



<p class="wp-block-paragraph"><strong>Wenn mindestens ein Teilnehmer failed ist</strong></p>



<ol class="wp-block-list">
<li>Koordinator sendet <strong>abort</strong> an alle Teilnehmer</li>



<li>Die Teilnehmer schließen die Transaktion mit rollback ab (mittels des undo logs) und geben alle Locks und Ressourcen frei</li>



<li>Die Teilnehmer senden ein <strong>acknowledgment</strong> zurück</li>



<li>Der Koordinator beendet die Transaktion ebenso mit <strong>rollback</strong>, wenn er von allen Teilnehmern die Bestätigung erhalten hat</li>
</ol>



<h3 class="wp-block-heading">Quorum Algorithmen</h3>



<ul class="wp-block-list">
<li>Bildung von Untermengen auf denen Lese- und Schreiboperationen realisiert werden</li>



<li>Im Hintergrund kann dann später noch aktualisiert werden</li>



<li>Bei Timeouts kann es zu Deadlocks kommen</li>
</ul>



<h3 class="wp-block-heading">Fehlersemantik</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Typ</th><th>Request wird im Fehlerfall</th><th>Filterung empfangener Duplikate</th><th>Notiz&nbsp;</th></tr><tr><td>maybe</td><td>Nicht noch einmal verschickt</td><td>Keine Behandlung</td><td>&nbsp;</td></tr><tr><td>at-least-once</td><td>Noch einmal verschickt</td><td>Nein</td><td>Die entfernte Prozedur wird bei einem empfangenen Duplikat wiederholt ausgeführt (nur empfehlenswert für&nbsp;idempotente&nbsp;Operationen)</td></tr><tr><td>at-most-once</td><td>Noch einmal verschickt</td><td>Ja</td><td>Duplikate werden gefiltert, entweder komplette Ausführung des Auftrags, oder Fehlermeldung</td></tr><tr><td>exactly-once</td><td>Noch einmal verschickt</td><td>Ja</td><td>Duplikate werden ebenfalls gefiltert. Weiterhin wird auch bei Ausfall des Systems die Ausführung des Auftrags über den Wiederanlauf hinaus gewährleistet. In einigen Büchern wird jedoch angegeben, dass exactly-once bei verteilten Systemen nicht möglich ist.</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">Idempotente Operation</h4>



<p class="wp-block-paragraph"><code>einzahlen(Wert, Eindeutige ID);</code></p>



<h3 class="wp-block-heading">Wie kann man Fehler behandeln?</h3>



<ul class="wp-block-list">
<li>Auftrag bzw. Nachricht einfach wiederholen</li>



<li>Zwischenspeicherung der Nachrichten beim Server und nochmal schicken (auf Anfrage)</li>



<li>Neustart des Servers und Clients wiederholen Anfragen mittels exponential backoff</li>



<li>Server schickt vorläufige Antwort mit Status</li>
</ul>



<h4 class="wp-block-heading">exponential backoff</h4>



<ul class="wp-block-list">
<li>Exponentiell steigendes Intervall</li>



<li>Nachricht wird nach 1, 2, 4, 8, 16, .. neu gesendet</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-13/">Verteilte Systeme (Vorlesung 13)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/06/verteilte-systeme-vorlesung-13/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
