Skip to content

Commit 3054726

Browse files
committed
Overwork till 64 and slides to week-3
1 parent afd17c7 commit 3054726

8 files changed

Lines changed: 199 additions & 114 deletions

File tree

kapitel-01/chapter-01.tex

Lines changed: 73 additions & 30 deletions
Large diffs are not rendered by default.

kapitel-02/chapter-02.tex

Lines changed: 46 additions & 29 deletions
Large diffs are not rendered by default.
73.3 KB
Loading

slides/Week-1/fig/Definition-VS.svg

Lines changed: 3 additions & 0 deletions
Loading

slides/Week-1/week-1.tex

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
\documentclass{beamer}
2+
\usepackage{graphicx}
3+
\usepackage[most]{tcolorbox}
4+
\usepackage{xcolor}
5+
\definecolor{lightblue}{RGB}{25, 25, 112} % RGB-Werte für Hellblau
26

37
\usetheme{CambridgeUS} % Beispielhaftes ansprechendes Design
8+
49
\usecolortheme{dolphin}
510

611
\title{Verteilte Systeme}
@@ -30,53 +35,62 @@
3035

3136
\begin{columns}[c] % Zentriert die Spalten
3237

33-
\begin{column}{0.5\textwidth} % Linke Spalte für den Text
34-
\begin{block}{Was sind verteilte Systeme?}
35-
Verteilte Systeme sind eine Gruppe von vernetzten, autonomen Computern, die für den Benutzer als ein kohärentes System erscheinen. Sie arbeiten zusammen, um eine gemeinsame Aufgabe zu erfüllen, ohne dass ein zentraler Koordinator vorhanden sein muss.  Denken Sie an ein Ameisenvolk: Jede Ameise handelt individuell, aber zusammen erreichen sie komplexe Aufgaben.
36-
\end{block}
37-
38-
\textbf{Kerneigenschaft:} Kein gemeinsamer Speicher.  Die Kommunikation erfolgt über das Netzwerk, was Herausforderungen bei der Koordination mit sich bringt.
39-
\end{column}
40-
41-
\begin{column}{0.5\textwidth} % Rechte Spalte für das Bild
38+
\begin{column}{0.9\textwidth}
4239
\begin{figure}
4340
\centering
44-
\includegraphics[width=0.9\textwidth]{fig/Definition-VS.png} % Pfad zum NEUEN Bild mit hellblauem Hintergrund
45-
\caption{Definition eines Vektorfeldes im $\mathbb{R}^3$}
41+
\begin{tcolorbox}[colback=lightblue,arc=0pt,outer arc=0pt,boxrule=0pt,toprule=0pt,bottomrule=0pt,rightrule=0pt,leftrule=0pt] % Hellblauer Hintergrund, keine Rahmen
42+
\includegraphics[width=1.0\textwidth]{fig/Definition-VS.png}
43+
\end{tcolorbox}
44+
\caption{Symbolbild Definition}
4645
\end{figure}
4746
\end{column}
47+
4848
\note{ \textbf{Kerneigenschaft:} Kein gemeinsamer Speicher.  Die Kommunikation erfolgt über das Netzwerk, was Herausforderungen bei der Koordination mit sich bringt. }
4949
\end{columns}
5050

5151
\end{frame}
5252

53+
\begin{frame}{Definition Verteilte Systeme}
54+
55+
\begin{columns}[c] % Zentriert die Spalten
56+
57+
\begin{column}{1.0\textwidth} % Linke Spalte für den Text
58+
\begin{block}{Was sind verteilte Systeme?}
59+
\textbf{Tanenbaum:} Verteilte Systeme sind eine Gruppe von vernetzten, autonomen Computern, die für den Benutzer als ein kohärentes System erscheinen. Sie arbeiten zusammen, um eine gemeinsame Aufgabe zu erfüllen, ohne dass ein zentraler Koordinator vorhanden sein muss.  Denken Sie an ein Ameisenvolk: Jede Ameise handelt individuell, aber zusammen erreichen sie komplexe Aufgaben.
60+
\end{block}
61+
\mbox{}\\
62+
\textbf{Kerneigenschaft:} Kein gemeinsamer Speicher.
63+
\end{column}
64+
\end{columns}
65+
66+
\end{frame}
67+
5368
\begin{frame}{Abgrenzung}
5469

5570
Verteilte Systeme lassen sich von anderen Architekturen abgrenzen:
5671

5772
\begin{itemize}
5873
\item \textbf{Monolithische Systeme:} Alle Komponenten befinden sich in einer einzigen Codebasis. Wie ein einzelner, großer Kuchen – schwer zu ändern oder zu erweitern, im Gegensatz zu einem Buffet mit verschiedenen, unabhängigen Gerichten (verteiltes System).
59-
\item \textbf{Microservices:} Eine spezielle Form verteilter Systeme, bei der eine Anwendung in kleine, unabhängige Services aufgeteilt ist. Wie ein Baukastensystem: jeder Baustein (Service) hat eine spezifische Funktion und kann unabhängig kombiniert werden.
6074
\item \textbf{Großrechner/Mainframes:} Leistungsstarke, zentralisierte Systeme, die typischerweise in Rechenzentren eingesetzt werden. Wie ein einzelner, mächtiger Dirigent, der ein Orchester leitet – im Gegensatz zu einem selbstorganisierenden Ensemble (verteiltes System).
6175
\end{itemize}
62-
76+
\textbf{Microservices:} Eine spezielle Form verteilter Systeme, bei der eine Anwendung in kleine, unabhängige Services aufgeteilt ist. Wie ein Baukastensystem: jeder Baustein (Service) hat eine spezifische Funktion und kann unabhängig kombiniert werden.
6377
\end{frame}
6478

6579

6680
\begin{frame}{Teamarbeit}
6781

68-
Gruppenarbeit
82+
\textbf{Gruppenarbeit}
6983

7084
\begin{itemize}
71-
\item Was muss ich aus Sicht der Informatik machen, um ein Labyrinth zu lösen. Was ist die wesentliche Herausforderung?
72-
\item \textbf{Defintion VS:} Eine Diskussion wert
85+
\item \textbf{Diskussion:} Was muss ich aus Sicht der Informatik machen, um ein Labyrinth zu lösen. Was ist die wesentliche Herausforderung?
86+
\item \textbf{Defintion VS:} Arbeitsblatt: 1A-Definition-Tanenbaum-Task-01-Aufgabenblatt.pdf
7387
\end{itemize}
7488

7589
\end{frame}
7690

7791
\begin{frame}{Abstraktionsebenen}
7892

79-
Verteilte Systeme lassen sich auf verschiedenen Abstraktionsebenen betrachten:
93+
Verteilte Systeme lassen sich auf verschiedenen Abstraktionsebenen teilen:
8094

8195
\begin{itemize}
8296
\item \textbf{Technologisch:} Fokus auf Hardware, Netzwerke und Protokolle. Wie die einzelnen Instrumente eines Orchesters und wie sie miteinander verbunden sind.
@@ -90,7 +104,7 @@
90104

91105
\begin{frame}{Aspekte und Sichten}
92106

93-
Verschiedene Aspekte sind bei der Entwicklung verteilter Systeme zu berücksichtigen:
107+
Verschiedene Aspekte sind bei der Entwicklung verteilter Systeme zu berücksichtigen (Auswahl):
94108

95109
\begin{itemize}
96110
\item \textbf{Skalierbarkeit/Ausfallsicherheit:} Wie reagiert das System auf wachsende Last? Wie wird mit Ausfällen umgegangen?
@@ -103,23 +117,9 @@
103117

104118
\end{frame}
105119

106-
107-
\begin{frame}{Teamarbeit}
108-
109-
Welchen Einfluss haben die Sichten auf die Teamarbeit
110-
111-
\begin{itemize}
112-
\item Welche Sichten verfolgen wir im Praktikum (Muss, Should, Could)? Wer übernimmt welche Position?
113-
\item Wie kann Teile-und-herrsche Verfahren helfen
114-
\item Welche Methodenbäume wollen wir nutzen? Dokumentationsmethode (ARC42?), Entwicklungsmethode(Agil-Scrum), Sichten verbinden Beispiel: DevOps?
115-
\end{itemize}
116-
117-
\end{frame}
118-
119-
120120
\begin{frame}{Diskussion Dokumetationsmethode}
121121

122-
Möchte keine Vorgaben machen: Möchte Arc42 (\url{https://arc42.org/}) vorschlagen
122+
Möchte keine Vorgaben machen: Dennoch, möchte Arc42 (\url{https://arc42.org/}) vorschlagen!
123123

124124
\begin{itemize}
125125
\item Welche Sichten verfolgen wir im Praktikum (Muss, Should, Could)? Wer übernimmt welche Position?

slides/Week-2/fig/Skalierung.png

92 KB
Loading

slides/Week-2/fig/Skalierung.svg

Lines changed: 3 additions & 0 deletions
Loading

slides/Week-2/week-2.tex

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
\documentclass{beamer}
2+
\usepackage{graphicx}
3+
\usepackage[most]{tcolorbox}
4+
\usepackage{xcolor}
5+
\definecolor{lightblue}{RGB}{25, 25, 112} % RGB-Werte für Hellblau
26

37
\usetheme{CambridgeUS}
48
\usecolortheme{dolphin}
@@ -33,11 +37,10 @@
3337
\item \textbf{Buisness kritisch}
3438
\item \textbf{Nicht-kritisch}
3539
\end{itemize}
36-
\begin{itemize}
37-
\item WICHTIG (auch für das Praktikum): Erst wenn quantifizierbare, überprüfbare Kriterien formuliert werden, die Hülsenworte wie
38-
\textbf{hoch}, \textbf{schnell} und \textbf{wichtig} ersetzen, bekommen die Vereinbarungen einen Wert.
39-
\item Funktionale Ziele sind weiter wichtig, wir ergänzen sie im Praktikum
40-
\end{itemize}
40+
\mbox{}\\
41+
\textbf{Wichtig:} (auch für das Praktikum): Erst wenn quantifizierbare, überprüfbare Kriterien formuliert werden, die Hülsenworte wie \textbf{hoch}, \textbf{schnell} und \textbf{wichtig} ersetzen, bekommen die Vereinbarungen einen Wert.
42+
43+
4144
\end{frame}
4245

4346
\begin{frame}{Ziele verteilter Systeme (1/2)}
@@ -52,20 +55,26 @@
5255

5356
\begin{frame}{Ziele verteilter Systeme (2/2)}
5457
\begin{itemize}
58+
\item \textbf{Verteilungstransparenz:} Der Benutzer sollte nicht merken, dass er mit einem verteilten System interagiert. Wie ein einzelner, kohärenter Computer.
5559
\item \textbf{Skalierbarkeit (Scalability):} Fähigkeit des Systems, mit wachsenden Anforderungen und steigender Last umzugehen. Wie ein elastisches Band: Es kann gedehnt werden, ohne zu reißen.
56-
\item \textbf{Verteilungstransparenz:} Der Benutzer sollte nicht merken, dass er mit einem verteilten System interagiert. Wie ein einzelner, kohärenter Computer.
5760
\end{itemize}
5861
\end{frame}
5962

6063

6164
\begin{frame}{Skalierbarkeit im Detail}
62-
Skalierbarkeit ist nicht eindimensional. Verschiedene Arten der Skalierbarkeit müssen im Anforderungsprozess berücksichtigt werden:
65+
\begin{columns}[c] % Zentriert die Spalten
6366

64-
\begin{itemize}
65-
\item \textbf{Räumlich:} Ausdehnung auf verschiedene geografische Standorte. Wie ein multinationales Unternehmen mit Niederlassungen in verschiedenen Ländern.
66-
\item \textbf{Funktional:} Erhöhung der Anzahl unterstützter Funktionen und Dienste. Wie ein Schweizer Taschenmesser: Es bietet viele verschiedene Werkzeuge.
67-
\item \textbf{Administrativ:} Effiziente Verwaltung des Systems, unabhängig von seiner Größe und Komplexität. Wie ein gut organisiertes Orchester: Der Dirigent kann das Orchester effektiv leiten, unabhängig von der Anzahl der Musiker.
68-
\end{itemize}
67+
\begin{column}[c]{0.9\textwidth}
68+
\begin{figure}
69+
\centering
70+
71+
\includegraphics[width=0.8\textwidth]{fig/Skalierung.png}
72+
73+
\caption{Symbolbild Skalierung}
74+
\end{figure}
75+
\end{column}
76+
77+
\end{columns}
6978
\end{frame}
7079

7180
\begin{frame}{Weiter funktionale Skalierbarkeit}
@@ -77,28 +86,36 @@
7786
\end{frame}
7887

7988
\begin{frame}{Grenzen der Skalierbarkeit -- Little's Law}
80-
Little's Law besagt: Die durchschnittliche Anzahl an Kunden in einem System ist gleich der Ankunftsrate multipliziert mit der durchschnittlichen Verweilzeit der Kunden im System. Dies impliziert, dass die Skalierbarkeit eines Systems begrenzt ist durch die Fähigkeit, Anfragen zu verarbeiten, und dass eine zunehmende Anfragerate zu längeren Wartezeiten führen kann. Stellen Sie sich eine Warteschlange in einem Supermarkt vor: Je mehr Kunden ankommen, desto länger wird die Warteschlange.
89+
\textbf{Little's Law} besagt: Die durchschnittliche Anzahl an Kunden in einem System ist gleich der Ankunftsrate multipliziert mit der durchschnittlichen Verweilzeit der Kunden im System.
90+
\mbox{}\\ \mbox{}\\
91+
Dies impliziert, dass die Skalierbarkeit eines Systems begrenzt ist durch die Fähigkeit, Anfragen zu verarbeiten, und dass eine zunehmende Anfragerate zu längeren Wartezeiten führen kann. Stellen Sie sich eine Warteschlange in einem Supermarkt vor: Je mehr Kunden ankommen, desto länger wird die Warteschlange.
8192
\end{frame}
8293

8394

8495

8596
\begin{frame}{Grenzen der Skalierbarkeit -- Gustafson's Law}
86-
Gustafson's Law besagt: Die Problemgröße kann mit einer Erhöhung der Anzahl von Prozessoren erhöht werden, während die Zeit zur Lösung des Problems relativ konstant bleibt. Dies impliziert, dass die Parallelisierung ein Schlüssel zur Skalierbarkeit ist. Denken Sie an ein Team von Bauarbeitern: Je mehr Arbeiter, desto größer das Haus, das sie in der gleichen Zeit bauen können.
97+
\textbf{Gustafson's Law} besagt: Die Problemgröße kann mit einer Erhöhung der Anzahl von Prozessoren erhöht werden, während die Zeit zur Lösung des Problems relativ konstant bleibt.
98+
\mbox{}\\ \mbox{}\\
99+
Dies impliziert, dass die Parallelisierung ein Schlüssel zur Skalierbarkeit ist. Denken Sie an ein Team von Bauarbeitern: Je mehr Arbeiter, desto größer das Haus, das sie in der gleichen Zeit bauen können.
87100
\end{frame}
88101

89102
\begin{frame}{Grenzen der Skalierbarkeit -- Amdahl's Law}
90-
Amdahl's Law besagt: Die maximale Beschleunigung durch Parallelisierung ist begrenzt durch den Anteil der Berechnung, der nicht parallelisiert werden kann. Dies impliziert, dass die nicht parallelisierbaren Anteile minimiert werden sollten, um eine optimale Leistungssteigerung zu erzielen. Stellen Sie sich eine Straße mit einem einspurigen Abschnitt vor: Egal wie viele Spuren die Straße sonst hat, der einspurige Abschnitt begrenzt den Verkehrsfluss.
103+
\textbf{Amdahl's Law} besagt: Die maximale Beschleunigung durch Parallelisierung ist begrenzt durch den Anteil der Berechnung, der nicht parallelisiert werden kann.
104+
\mbox{}\\ \mbox{}\\
105+
Dies impliziert, dass die nicht parallelisierbaren Anteile minimiert werden sollten, um eine optimale Leistungssteigerung zu erzielen. Stellen Sie sich eine Straße mit einem einspurigen Abschnitt vor: Egal wie viele Spuren die Straße sonst hat, der einspurige Abschnitt begrenzt den Verkehrsfluss.
91106

92107
\end{frame}
93108

94109
\begin{frame}{Grenzen der Skalierbarkeit -- Brooks' Law}
95-
Brooks' Law besagt: Durch Hinzufügen von Ressourcen kann die Komplexität eines Systems nicht reduziert werden. Im Gegenteil, es kann sogar zu mehr Komplexität und Overhead führen. Stellen Sie sich ein Softwareprojekt vor: Je mehr Entwickler beteiligt sind, desto komplexer wird die Kommunikation und Koordination.
110+
\textbf{Brooks' Law} besagt: Durch Hinzufügen von Ressourcen kann die Komplexität eines Systems nicht reduziert werden. Im Gegenteil, es kann sogar zu mehr Komplexität und Overhead führen.
111+
\mbox{}\\ \mbox{}\\
112+
Stellen Sie sich ein Softwareprojekt vor: Je mehr Entwickler beteiligt sind, desto komplexer wird die Kommunikation und Koordination.
96113
\end{frame}
97114

98115
\begin{frame}{Gruppenarbeit: Gesetze}
99116
\begin{itemize}
100-
\item Handout
101-
\item Aufgaben
117+
\item Handout: 2A-Skalierbarkeitsgesetze-Handout.pdf
118+
\item Aufgaben: 2A-Skalierbarkeitsgesetze-Aufgaben.pdf
102119
\end{itemize}
103120
\end{frame}
104121

@@ -116,13 +133,15 @@
116133
\item \textbf{Nebenläufigkeitstransparenz:} Parallele Zugriffe auf Ressourcen sind verborgen.
117134
\item \textbf{Persistenztransparenz: } Zustand eines Prozesses oder einer Anwendung bleibt unabhängig von Unterbrechungen erhalte (
118135
\end{itemize}
119-
Hinweis 1: Persistenztransparenz und Relocation(Umplatzierung) findet man auch immer häufiger\\
120-
Hinweis 2: Vielleicht Störungsgefühl da aus Sicht des Nutzers.
136+
Hinweis 1: Persistenztransparenz und Relocation immer häufiger\mbox{}\\
137+
Hinweis 2: Vielleicht Störungsgefühl da aus Sicht des Nutzers. \mbox{}\\
121138
\end{frame}
122139

123140

124141
\begin{frame}{Kohärenz}
125-
Ein verteiltes System verhält sich kohärent, wenn es sich für den Benutzer so verhält, als würden alle Daten und Funktionen an einem zentralen Ort bereitgestellt, obwohl sie tatsächlich auf verschiedene Knoten im System verteilt sind. Das Ziel ist, die Komplexität des verteilten Systems zu verbergen und eine einheitliche und konsistente Benutzererfahrung zu bieten.
142+
Ein verteiltes System verhält sich kohärent, wenn es sich für den Benutzer so verhält, als würden alle Daten und Funktionen an einem zentralen Ort bereitgestellt, obwohl sie tatsächlich auf verschiedene Knoten im System verteilt sind.
143+
\mbox{}\\
144+
Das Ziel ist, die Komplexität des verteilten Systems zu verbergen und eine einheitliche und konsistente Benutzererfahrung zu bieten.
126145
\end{frame}
127146

128147

@@ -159,7 +178,7 @@
159178
\begin{frame}{Diskussion: Neue Sicht auf Fehler}
160179

161180
\begin{itemize}
162-
\item Fehler ist keine Ausnahme, sondern die Regel
181+
\item Fehler ist keine Ausnahme, sondern die Regel!
163182
\item Aufbau Incident Management
164183
\item Teststrategien hilfreich
165184
\end{itemize}

0 commit comments

Comments
 (0)