From 818364cac31ca4733547ae5c5d173b10fcb8b959 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 24 Jul 2008 19:29:19 +0000 Subject: foo --- LaTeX/chapters/simulator.tex | 74 +- LaTeX/diplomarbeit.pdf | 3271 +++++++++++--------- .../ss-simulationseinstellungen-experten.png | Bin 0 -> 481324 bytes 3 files changed, 1852 insertions(+), 1493 deletions(-) create mode 100644 LaTeX/images/ss-simulationseinstellungen-experten.png diff --git a/LaTeX/chapters/simulator.tex b/LaTeX/chapters/simulator.tex index f4b1a17..65cb659 100644 --- a/LaTeX/chapters/simulator.tex +++ b/LaTeX/chapters/simulator.tex @@ -29,7 +29,7 @@ Im Datei-Men\"{u} (Abbildung \ref{fig:DateiMenue}) lassen sich neue Simulationen \label{fig:NeuErstellteSimulation} \end{figure} -\"{U}ber das Editieren-Men\"{u} gelangt man zu den Simulationseinstellungen, worauf sp\"{a}ter genauer eingegangen wird. Es werden in diesem Men\"{u} auch alle beteiligten Prozesse zum Editieren aufgelistet. W\"{a}hlt man dort einen Prozess aus, dann \"{o}ffnet sich der dazugeh\"{o}rige Prozesseditor. Auf diesen wird ebenso sp\"{a}ter genauer eingegangen. Das Simulator-Men\"{u} bietet die selben Optionen wie die Toolbar, welche im n\"{a}chsten Teilkapitel beschrieben wird. +\"{U}ber das Editieren-Men\"{u} gelangt der Benutzer zu den Simulationseinstellungen, worauf sp\"{a}ter genauer eingegangen wird. Es werden in diesem Men\"{u} auch alle beteiligten Prozesse zum Editieren aufgelistet. W\"{a}hlt der Benutzer dort einen Prozess aus, dann \"{o}ffnet sich der dazugeh\"{o}rige Prozesseditor. Auf diesen wird ebenso sp\"{a}ter genauer eingegangen. Das Simulator-Men\"{u} bietet die selben Optionen wie die Toolbar, welche im n\"{a}chsten Teilkapitel beschrieben wird. Einige Men\"{u}unterpunkte sind erst erreichbar, wenn im aktuellen Fenster bereits eine Simulation erstellt oder geladen wurde. @@ -82,7 +82,7 @@ Generell kann die Anzahl der Prozesse nach belieben variieren. Die Dauer der Sim \subsubsection{Farbliche Differenzierung} -Farben helfen dabei die Vorg\"{a}nge einer Simulation zu deuten. Standardm\"{a}ig werden die Prozesse (Prozessbalken) und Nachrichten mit den Farben wie in Tabelle \ref{tb:Farben} aufgelistet dargestellt. Dies sind lediglich die Standarfarben, welche man \"{u}ber die Einstellungen umkonfigurieren kann. +Farben helfen dabei die Vorg\"{a}nge einer Simulation zu deuten. Standardm\"{a}ig werden die Prozesse (Prozessbalken) und Nachrichten mit den Farben wie in Tabelle \ref{tb:Farben} aufgelistet dargestellt. Dies sind lediglich die Standarfarben, welche der Benutzer \"{u}ber die Einstellungen umkonfigurieren kann. \begin{table} \fbox{ @@ -109,7 +109,7 @@ Farben helfen dabei die Vorg\"{a}nge einer Simulation zu deuten. Standardm\"{a} \subsubsection{Die Sidebar} -Mithilfe der Sidebar lassen sich Ereignisse von Prozessen verwalten. Ganz oben in Abbildung \ref{fig:Sidebar} ist der zu verwaltende Prozess selektiert (hier mit der PID 1). In dieser Prozessauswahl gibt es auch die M\"{o}glichkeit ``Alle Prozesse'' auszuw\"{a}hlen, womit die Ereignisse aller Prozesse gleichzeitig verwaltet werden k\"{o}nnen. Unter ``Lokale Ereignisse'' versteht man diejenigen Ereignisse, die auftreten, wenn eine bestimmte lokale Zeit des dazugeh\"{o}rigen Prozesses eingetreten ist. Die darunterliegende Ereignistabelle listet alle programmierten Ereignisse (hier noch keine vorhanden) mitsamt Eintrittszeiten sowie den PIDs auf. +Mithilfe der Sidebar lassen sich Ereignisse von Prozessen verwalten. Ganz oben in Abbildung \ref{fig:Sidebar} ist der zu verwaltende Prozess selektiert (hier mit der PID 1). In dieser Prozessauswahl gibt es auch die M\"{o}glichkeit ``Alle Prozesse'' auszuw\"{a}hlen, womit die Ereignisse aller Prozesse gleichzeitig verwaltet werden k\"{o}nnen. Unter ``Lokale Ereignisse'' versteht der Benutzer diejenigen Ereignisse, die auftreten, wenn eine bestimmte lokale Zeit des dazugeh\"{o}rigen Prozesses eingetreten ist. Die darunterliegende Ereignistabelle listet alle programmierten Ereignisse (hier noch keine vorhanden) mitsamt Eintrittszeiten sowie den PIDs auf. \begin{figure}[htbp] \centering @@ -140,7 +140,7 @@ In der Sidebar gibt es neben dem Ereignis-Tab einen weiteren Tab ``Variablen''. \subsubsection{Das Loggfenster} -Das Loggfenster (Abbildung \ref{fig:NeuErstellteSimulation}, unten) protokolliert in chronologischer Reihenfolge alle eingetroffenen Ereignisse. Auf Abbildung \ref{fig:Loggfenster} sieht man das Loggfenster nach Erstellung unserer Simulation, an welcher 3 Prozesse beteiligt sind. Am Anfang eines Loggeintrages wird stets die globale Zeit in Millisekunden protokolliert. Bei jedem Prozess wird ebenso seine lokale Zeit sowie die Lamport- und die Vektor-Zeitstempel aufgef\"{u}hrt. Letztere werden sp\"{a}ter genauer behandelt. +Das Loggfenster (Abbildung \ref{fig:NeuErstellteSimulation}, unten) protokolliert in chronologischer Reihenfolge alle eingetroffenen Ereignisse. Auf Abbildung \ref{fig:Loggfenster} sieht der Benutzer das Loggfenster nach Erstellung unserer Simulation, an welcher 3 Prozesse beteiligt sind. Am Anfang eines Loggeintrages wird stets die globale Zeit in Millisekunden protokolliert. Bei jedem Prozess wird ebenso seine lokale Zeit sowie die Lamport- und die Vektor-Zeitstempel aufgef\"{u}hrt. Letztere werden sp\"{a}ter genauer behandelt. \begin{figure}[htbp] \centering @@ -162,7 +162,7 @@ Mit dem Deaktivieren der Checkbox ``Logging'' l\"{a} \label{fig:SimulationExpertenmodus} \end{figure} -Der Simulator kann in zwei verschiedenen Modi betrieben werden. Es gibt einen einfachen- und einen Expertenmodus. Der Simulator started standardm\"{a}ig im einfachen Modus, so dass sich der Benutzer nicht mit der vollen Funktionalit\"{a}t des Simulators auf einmal auseinandersetzen mu. Der einfache Modus ist \"{u}bersichtlicher, bietet jedoch weniger Funktionen an. Der Expertenmodus eigent sich f\"{u}r mehr erfahrene Anwender und bietet dementsprechend auch mehr Flexibilit\"{a}t. Der Expertenmodus kann \"{u}ber die gleichnamige Checkbox unterhalb des Loggfensters oder \"{u}ber die Simulationseinstellungen aktiviert oder deaktiviert werden. Auf Abbildung \ref{fig:SimulationExpertenmodus} ist der Simulator im Expertenmodus zu sehen. Wenn man den Simulator im Expertenmodus mit Abbildung \ref{fig:NeuErstellteSimulation} vergleicht, dann fallen einige Unterschiede auf, die nun aufs Weitere behandelt werden. +Der Simulator kann in zwei verschiedenen Modi betrieben werden. Es gibt einen einfachen- und einen Expertenmodus. Der Simulator started standardm\"{a}ig im einfachen Modus, so dass sich der Benutzer nicht mit der vollen Funktionalit\"{a}t des Simulators auf einmal auseinandersetzen mu. Der einfache Modus ist \"{u}bersichtlicher, bietet jedoch weniger Funktionen an. Der Expertenmodus eigent sich f\"{u}r mehr erfahrene Anwender und bietet dementsprechend auch mehr Flexibilit\"{a}t. Der Expertenmodus kann \"{u}ber die gleichnamige Checkbox unterhalb des Loggfensters oder \"{u}ber die Simulationseinstellungen aktiviert oder deaktiviert werden. Auf Abbildung \ref{fig:SimulationExpertenmodus} ist der Simulator im Expertenmodus zu sehen. Wenn der Benutzer den Simulator im Expertenmodus mit Abbildung \ref{fig:NeuErstellteSimulation} vergleicht, dann fallen einige Unterschiede auf, die nun aufs Weitere behandelt werden. \begin{figure}[htbp] \centering @@ -173,9 +173,9 @@ Der Simulator kann in zwei verschiedenen Modi betrieben werden. Es gibt einen ei Der erste Unterschied ist in der Sidebar erkennbar (Abbildung \ref{fig:SidebarExpertenmodus}). Dort sind nun, zus\"{a}tzlich den lokalen Ereignissen, auch globale Ereignisse editierbar. Wie bereits erw\"{a}hnt, sind unter lokale Ereignisse diejenigen Ereignisse zu verstehen, die auftreten, wenn eine bestimmte lokale Zeit des dazugeh\"{o}rigen Prozesses eingetreten ist. Globale Ereignisse hingegen sind diejenigen Ereignisse, die auftreten, wenn eine bestimmte globale Zeit eingetreten ist. Ein globales Ereignis nimmt die globale Zeit- und ein lokales Ereignis die lokale Prozesszeit als Eintrittskriterium. Globale Ereignisse machen somit nur einen Unterschied, wenn sich die lokalen Prozesszeiten von der globalen Zeit unterscheiden. -Eine weitere neue Funktionalit\"{a}t ist die M\"{o}glichkeit einem neuzuerstellenen Ereignis direkt die PID zuzuweisen. Im einfachen Modus wurde, wenn man ein neues Ereignis erstellte, standardm\"{a}ig immer die PID des aktuell ausgew\"{a}hlten Prozesses (in der obersten Combo-Box) verwendet. In dieser Combo-Box sollte man gegebenenfalls ``Alle Prozesse'' selektieren, damit im Ereigniseditor stets die Ereignisse aller Prozesse aufgelistet werden. +Eine weitere neue Funktionalit\"{a}t ist die M\"{o}glichkeit einem neuzuerstellenen Ereignis direkt die PID zuzuweisen. Im einfachen Modus wurde, wenn der Benutzer ein neues Ereignis erstellte, standardm\"{a}ig immer die PID des aktuell ausgew\"{a}hlten Prozesses (in der obersten Combo-Box) verwendet. In dieser Combo-Box sollte der Benutzer gegebenenfalls ``Alle Prozesse'' selektieren, damit im Ereigniseditor stets die Ereignisse aller Prozesse aufgelistet werden. -Weitere Unterschiede machen sich unterhalb des Loggfensters bemerkbar. Dort gibt es unter Anderem zwei neue Checkboxen ``Lamportzeit'' und ``Vektorzeit''. Aktiviert man eine dieser beiden Checkboxen, dann wird die Lamport- beziehungsweise Vektorzeit in die Visualisierung dargestellt. \"{U}bersichtshalber kann der Benutzer nur jeweils eine dieser beiden Checkboxen aktivieren. Wenn die Lamportzeit-Checkbox bereits aktiviert ist und der Benutzer versucht die Vektorzeit-Checkbox zus\"{a}tzlich zu aktivieren, so wird die Lamportzeit-Checkbox automatisch deaktiviert und virce versa. +Weitere Unterschiede machen sich unterhalb des Loggfensters bemerkbar. Dort gibt es unter Anderem zwei neue Checkboxen ``Lamportzeit'' und ``Vektorzeit''. Aktiviert der Benutzer eine dieser beiden Checkboxen, dann wird die Lamport- beziehungsweise Vektorzeit in die Visualisierung dargestellt. \"{U}bersichtshalber kann der Benutzer nur jeweils eine dieser beiden Checkboxen aktivieren. Wenn die Lamportzeit-Checkbox bereits aktiviert ist und der Benutzer versucht die Vektorzeit-Checkbox zus\"{a}tzlich zu aktivieren, so wird die Lamportzeit-Checkbox automatisch deaktiviert und virce versa. %TODO: Lamport und Vektorzeit definieren! @@ -207,7 +207,7 @@ Der Benutzer hat die Auswahl zwischen f\"{u}nf weiteren Protokollereignissen: \item Starten einer Client/Server-Anfrage des gegebenen Protokolls \end{itemize} -Ob sich das Ereignis f\"{u}r das Starten einer Anfrage auf den Client oder Server bezieht, h\"{a}ngt vom verwendeten Protokoll ab. Man unterscheidet von Protokollen die Clientseitig- oder Serverseitig eine initiale Anfrage starten. Beispielsweise startet bei dem ``Ping-Pong Protokoll'' der Client- und bei dem ``Commit-Protokollen'' der Server immer die erste Anfrage. Es gibt kein Protokoll, wo Client und Server jeweils eine initiale Anfragen starten k\"{o}nnen. +Ob sich das Ereignis f\"{u}r das Starten einer Anfrage auf den Client oder Server bezieht, h\"{a}ngt vom verwendeten Protokoll ab. der Benutzer unterscheidet von Protokollen die Clientseitig- oder Serverseitig eine initiale Anfrage starten. Beispielsweise startet bei dem ``Ping-Pong Protokoll'' der Client- und bei dem ``Commit-Protokollen'' der Server immer die erste Anfrage. Es gibt kein Protokoll, wo Client und Server jeweils eine initiale Anfragen starten k\"{o}nnen. Bei allen dieser f\"{u}nf Ereignissen kann der betroffene Prozess noch beliebig andere Dinge, abh\"{a}ngig vom Protokoll, tun. Beispielsweise kann er den Inhalt der Nachricht generieren oder lokale Variablen initialisieren oder eine der lokalen Uhzeiten \"{a}ndern oder Wecker f\"{u}r ``Callback Ereignisse'' setzen (mehr dazu sp\"{a}ter). @@ -225,7 +225,7 @@ In diesem Abschnitt wird auf die m\"{o}glichen Simulationseinstellungen genauer \subsection{Simulationseinstellungen} -Beim Erstellen einer neuen Simulation erscheint zun\"{a}chst das dazugeh\"{o}rige Einstellungsfenster (Abbildung \ref{fig:Simulationseinstellungen}). In der Regel reicht es, wenn man hier die Standardwerte \"{u}bernimmt. Es besteht auch die M\"{o}glichkeiten nach Erstellen einer Simulation die Einstellungen zu \"{a}ndern, indem man das Einstellungsfenster erneuert unter ``Editieren $\rightarrow$ Einstellungen'' aufruft. +Beim Erstellen einer neuen Simulation erscheint zun\"{a}chst das dazugeh\"{o}rige Einstellungsfenster (Abbildung \ref{fig:Simulationseinstellungen}). In der Regel reicht es, wenn der Benutzer hier die Standardwerte \"{u}bernimmt. Es besteht auch die M\"{o}glichkeiten nach Erstellen einer Simulation die Einstellungen zu \"{a}ndern, indem der Benutzer das Einstellungsfenster erneuert unter ``Editieren $\rightarrow$ Einstellungen'' aufruft. \begin{figure}[htbp] \centering @@ -238,12 +238,13 @@ Beim Erstellen einer neuen Simulation erscheint zun\"{a}chst das dazugeh\"{o}rig Im Folgenden werden alle in den Simulationseinstellungen verf\"{u}gbaren Variablen beschrieben. Die Klammern geben den Typen und die Standardwerte an, in denen die Variablen vorliegen. \begin{itemize} - \item \textbf{Prozesse empfangen eigene Nachrichten} \textit{(Boolean, false)}: Standardm\"{a}ig k\"{o}nnen Prozesse aus \"{u}bersichtshalber keine Nachrichten empfangen, die sie selbst verschickt haben. Wenn diese Variable jedoch auf true gesetzt wird, dann kann ein Prozess auch auf selbst verschickte Nachrichten antworten. Die Zeit f\"{u}r das Versenden und Empfangen einer Nachricht an sich selbst betr\"{a}gt jedoch stets 0ms. Diese Variable sollte mit Vorsicht verwendet werden, da hierdurch, bedingt aus den 0ms, Endlosschleifen entstehen k\"{o}nnen. - \item \textbf{Mittelwerte der Nachrichtenverlustwahrscheinlichkeiten bilden} \textit{(Boolean, true)}: Jede Nachricht die verschickt wird hat, je nach Einstellungen, eine vom verschickendem Prozess abh\"{a}ngige zuf\"{a}llige \"{U}bertragungszeit. Wenn diese Option aktiviert ist, so wird der Mittelwert vom Sende- und Empfangsprozess gebildet. Ansonsten wird stets die \"{U}bertragungszeit des Senderprozesses verwendet. - \item \textbf{Expertenmodus aktivieren} \textit{(Boolean, false)}: Hier l\"{a}sst sich ebenso der Expertenmodus aktivieren oder deaktivieren. - \item \textbf{Simulation periodisch wiederholen} \textit{(Boolean, false)}: Wenn diese Variable auf true gesetzt wird, so wird die Simulation jedes Mal nach Ablauf automatisch erneuert gestartet. + \item \textbf{Prozesse empfangen eigene Nachrichten} \textit{(Boolean, false)}: Standardm\"{a}ig k\"{o}nnen Prozesse \"{u}bersichtshalber keine Nachrichten empfangen, die sie selbst verschickt haben. Wenn diese Variable jedoch auf true gesetzt wird, dann kann ein Prozess auch auf selbst verschickte Nachrichten antworten. Die Zeit f\"{u}r das Versenden und Empfangen einer Nachricht an sich selbst betr\"{a}gt jedoch stets 0ms. Diese Variable sollte mit Vorsicht verwendet werden, da hierdurch, bedingt aus den 0ms, Endlosschleifen entstehen k\"{o}nnen. + \item \textbf{Mittelwerte der Nachrichtenverlustwahrscheinlichkeiten bilden} \textit{(Boolean, true)}: Jede Nachricht die verschickt wird hat, je nach Einstellungen, eine vom verschickendem Prozess abh\"{a}ngige zuf\"{a}llige \"{U}bertragungszeit. Wenn diese Option aktiviert ist, so wird der Mittelwert vom Sende- und Empfangsprozess gebildet. Ansonsten wird stets die \"{U}bertragungszeit, die beim Senderprozesses angegeben wurde, verwendet. + \item \textbf{Nur relevante Nachrichten anzeigen} \textit{(Boolean, true)}: Wenn nur alle relevanten Nachrichten angezeigt werden, so werden Nachrichten an einen Prozess die er selbst nicht verarbeiten kann, weil er das dazugeh\"{o}rige Protokoll nicht unterst\"{u}tzt, nicht angezeigt. Hierdurch wird eine Simulation viel \"{u}bersichtlicher. + \item \textbf{Expertenmodus aktivieren} \textit{(Boolean, false)}: Hier l\"{a}sst sich der Expertenmodus ebenso aktivieren oder deaktivieren. + \item \textbf{Simulation periodisch wiederholen} \textit{(Boolean, false)}: Wenn diese Variable auf true gesetzt ist, so wird die Simulation jedes Mal nach Ablauf automatisch erneuert gestartet. \item \textbf{Abspielgeschwindigkeit der Simulation} \textit{(Float, 0.5)}: Gibt den Faktor der Simulationsabspielgeschindigkeit an. Wenn als Faktor 1 gew\"{a}hlt wird, dann dauert eine simulierte Sekunde auch in echt eine Sekunde. Der Faktor 0.5 gibt somit an, dass die Simulation mit halber Echtzeitgschwindigkeit simuliert wird. - \item \textbf{Anzahl der Prozesse} \textit{(Integer, 3)}: Gibt an wieviele Prozesse an der Simulation teilnehmen sollen. Wie schon erw\"{a}hnt kann man auch nachtr\"{a}glich via Rechtsklick auf den Prozessbalken den jeweiligen Prozess aus der Simulation entfernen oder weitere Prozesse hinzuf\"{u}gen. + \item \textbf{Anzahl der Prozesse} \textit{(Integer, 3)}: Gibt an, wieviele Prozesse an der Simulation teilnehmen sollen. Wie schon erw\"{a}hnt kann der Benutzer auch nachtr\"{a}glich via Rechtsklick auf den Prozessbalken den jeweiligen Prozess aus der Simulation entfernen oder weitere Prozesse hinzuf\"{u}gen. \item \textbf{Dauer der Simulation} \textit{(Integer, 15)}: Gibt die Dauer der Simulation in Sekunden an. \end{itemize} @@ -264,15 +265,50 @@ Jeder Prozess besitzt folgende Variablen, die entweder via dem Variablen-Tab in \item \textbf{Prozessausfallwahrscheinlichkeit} \textit{(Integer, 0)}: Gibt eine Wahrscheinlichkeit in Prozent an, ob der gegebene Prozess w\"{a}hrend der Simulation zuf\"{a}llig abst\"{u}rzt. \item \textbf{Lokale Zeit} \textit{(Long, 0)}: Gibt die aktuelle lokale Prozesszeit in ms an. Es empfiehlt sich daher die Simulation, bevor Prozesseinstellungen vorgenommen werden, zu pausieren. \item \textbf{Nachrichtenverlustwahrscheinlichkeit} \textit{(Integer, 0)}: Gibt eine Wahrscheinlichkeit in Prozent an, ob eine vom aktuell ausgew\"{a}hlten Prozess verschickte Nachricht unterwegs verloren geht. - \item \textbf{} \textit{(, )}: - \item \textbf{} \textit{(, )}: - \item \textbf{} \textit{(, )}: - \item \textbf{} \textit{(, )}: + \item \textbf{Maximale \"{U}bertragungszeit} \textit{(Long, 2000)}: Gibt die Dauer in ms an, die eine vom Prozess verschickte Nachricht maximal ben\"{o}tigt, bis sie einen Empf\"{a}ngerprozess erreicht. Der verwendete Wert wird zuf\"{a}llig zwischen (inklusive) der minimalen- und der maximalen Zeit gew\"{a}hlt. + \item \textbf{Minimale \"{U}bertragungszeit} \textit{(Long, 500)}: Gibt die Dauer in ms an, die eine vom Prozess verschickte Nachricht minimal ben\"{o}tigt, bis sie einen Empf\"{a}ngerprozess erreicht. Der verwendete Wert wird zuf\"{a}llig zwischen (inklusive) der minimalen- und der maximalen Zeit gew\"{a}hlt. \end{itemize} +\begin{figure}[htbp] + \centering + \fbox{\includegraphics{images/ss-simulationseinstellungen-experten}} + \caption{Weitere Simulationseinstellungen im Expertenmodus} + \label{fig:SimulationseinstellungenExperten} +\end{figure} + +Im selben Fenster lassen sich auch die Protokollvariablen editieren. Die Protokollvariablen werden jedoch sp\"{a}ter in der Protokollsektion beschrieben. \subsection{Einstellungen im Expertenmodus} +\begin{table} + \centering + \fbox{ + \begin{tabular}{l|l} + \textbf{Schl\"{u}ssel} & \textbf{Beschreibung}\\ + \hline + \texttt{col.background} & Die Hintergrundfarbe der Simulation\\ + \texttt{col.message.arrived} & Nachrichtenfarbe wenn sie ihr Ziel erreicht hat\\ + \texttt{col.message.lost} & Nachrichtenfarbe wenn sie verloren ging\\ + \texttt{col.message.sending} & Nachrichtenfarbe wenn sie noch unterwegs ist\\ + \textbf{\texttt{col.process.crashed}} & Prozessfarbe wenn er abgest\"{u}rzt ist\\ + \textbf{\texttt{col.process.default}} & Prozessfarbe wenn die Simulation aktuell nicht l\"{a}uft und \\ + & der Prozess aktuell nicht abgest\"{u}rzt ist \\ + \textbf{\texttt{col.process.highlight}} & Prozessfarbe wenn die Maus \"{u}ber seinem Balken liegt\\ + \texttt{col.process.line} & Farbe, in der die kleine ``Prozessfane'' an der auch die \\ + & lokale Prozesszeit angegeben wird, dargestellt wird\\ + \textbf{\texttt{col.process.running}} & Prozessfarbe wenn er nicht abgest\"{u}rzt ist und die\\ + & Simulation aktuell l\"{a}uft\\ + \texttt{col.process.secondline} & Farbe in der die Sekunden-Zeitgitter dargestellt werden \\ + \texttt{col.process.sepline} & Farbe der globalen Zeitachse\\ + \textbf{\texttt{col.process.stopped}} & Prozessfarbe wenn die Simulation pausiert wurde\\ + \end{tabular} + } + \caption{Farbeinstellungen} + \label{tb:Farbeinstellungen} +\end{table} + +Mit aktiven Expertenmodus lassen sich zus\"{a}tzliche Variablen, wie beispielsweise diverse Farbwerte und Anzahl der Pixel verschiedener der GUI-Elemente, editieren. In Abbildung \ref{fig:SimulationseinstellungenExperten} sieht der Benutzer alle einstellbaren Farben. Die fettgedruckten Schl\"{u}ssel in Tabelle \ref{tb:Farbeinstellungen} dienen nur als Standardwerte f\"{u}r neuzuerstellende Prozesse und sind auch jeweils in den Prozesseinstellungen separat editierbar. + \section{Protokolle} Im Folgenden werden alle bisher verf\"{u}gbaren Protokolle behandelt. Wie bereits beschrieben wird bei Protokollen zwischen Server- und Clientseite unterschieden. Server k\"{o}nnen auf Clientnachrichten, und Client auf Servernachrichten antworten. Jeder Prozess kann beliebig viele Protokolle sowohl Clientseitig als auch Serverseitig untest\"{u}tzen. Theoretisch ist es auch m\"{o}glich, dass ein Prozess f\"{u}r ein bestimmtes Protokoll gleichzeitig Server und Client ist. Der Benutzer kann auch weitere eigene Protokolle in der Programmiersprache Java mittels einer speziellen API (Application Programming Interface) erstellen. Wie eigene Protokolle erstellt werden k\"{o}nnen wird sp\"{a}ter behandelt. @@ -314,7 +350,7 @@ Bei dem Ping-Pong Protokoll (Abbildung \ref{fig:PingPongProto}) werden zwischen \label{fig:PingPongSturmProto} \end{figure} -\"{A}ndert man die Ereignisse wie in Tabelle \ref{tb:PingPongSturmTasks} ab, so l\"{a}sst sich ein Ping-Pong Sturm realisieren. Dort wurde ein neuer Prozess 3 eingef\"{u}hrt, der als Ping-Pong Server fungiert. Als Ursache verdoppelt sich die Anzahl der kursierenden Nachrichten bei jedem Client-Server Roundtrip, da auf jede Clientnachricht stets 2 Serverantworten verschickt werden. In Abbildung \ref{fig:PingPongSturmProto} ist der resultierende Simulationsverlauf dargestellt. +Werden die Ereignisse wie in Tabelle \ref{tb:PingPongSturmTasks} abge\"{a}ndert, so l\"{a}sst sich ein Ping-Pong Sturm realisieren. Dort wurde ein neuer Prozess 3 eingef\"{u}hrt, der als Ping-Pong Server fungiert. Als Ursache verdoppelt sich die Anzahl der kursierenden Nachrichten bei jedem Client-Server Roundtrip, da auf jede Clientnachricht stets 2 Serverantworten verschickt werden. In Abbildung \ref{fig:PingPongSturmProto} ist der resultierende Simulationsverlauf dargestellt. \begin{table} \centering diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index f31bc7b..eebf4db 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -438,7 +438,7 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 176 0 obj << -/Length 2209 +/Length 2214 /Filter /FlateDecode >> stream @@ -448,11 +448,12 @@ N c$e ?[[67ܱ7ܞN2AΙعIKgu^nwCPS8"R(%6h5T-C(c\s41g;gՂ:yXӅdl%DEG >2#<5w{z|gIcuL Ն%a"|!K*:Y2}}2E!K~F -dpvFl.>jSĄ k~y&5Pd1j8;ǍW&nzAUߵ J'su( |#F=9A1Bqas D|3)Q.{;G:-rqs /vmQ?S.2_^g6*y\cDIJrB0d'UJ{1\@DC6*ъRH>UQ=5 1ŕIvsrYǍׇM]UmCD -8WUJyϕ/r *r\3 H+gbށC˂ڼoXeǫM Yk5JE˜rbM ,k\ -'gIcuL Ն%a"|!K*:Y2}}2E!K~F +dpvFl.>jSĄ k|I Y46q#I{a54|jyuPwnsuɨ;h\3 +)C2_@Q*#@~xONPLP\{\(LF QN \-+GËv[)az唋2Y$g>E#G6*D+gҧ\9? */h Dg@ d?'ѐ=!ͥ=sa)O z;GqTsO#wLqxqeݜ\VqcaSvUrs5UgRs \B6*L0CF)Ew6`*b![)j?4sG@kR0f@gB6, ^Rެ v_mom^ְ1H.3Y(Y4Q1kDSg{6uM "ȕ7sgvuT')/!2wV)kRNjS=coO$0lOn:Mgd +JgBf_z9v(g~avV)Z e|ϳQ4ͥ=lVL|V|rWV iN=2:endstream endobj 175 0 obj << /Type /Page @@ -655,17 +656,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 207 0 obj << -/Length 1124 +/Length 1125 /Filter /FlateDecode >> stream -x_o6)h?#y1&oOs`;-OKKhS"[``I1OG ?N9E<ᜬ7?GiAoo~Isur'JRFٻq9>ͅU걩y{RQp)jUUd&C2o1Qcg"l+O?Ƞd㡍_CIhSxCm_T=- -= -p{KI2EeJ+ᖩy])AǏwAҦEڇ޿,[L.VM#&06$Ts0'$9#ÕP̕ET`,L9~]W?~/!\qX"eZ{Nҗs./\:\\ف>a>&vT:/l_j\pf:G2?YÃMhM#qVSe4neɸg!`t)k3TzT,n=Vj<.#F)NiAU7Sfzp6S 2?7Oʰoxy?#~R'q+&f MMt *c2f)عk}_'?ّAST$.N$J I60ʤT1T\_s_I=u;b٩ɨ/0>h:endstream +xKo6\ |\bZL`] U!\ _KKhS"g ^:"mNqbs's0y]"V' g9kD(\Fٻq9>ͅU걩y{RQ@8d!%BVT{6 (G1LH*|W'p. +$q^UMBlYy{Utgn!͕Tk 7ԉɹ7VM1d*=vmMc3 +`TrP1Jɷ%QY[/I͊p˙u9T C +ɯJA!=”R0ZԠKq4llFH\d$ ;U! fOs0sVGhN++{e2}r]@4Jeĥ RGBp?^t90cat))&%d,UwakzuwܬGiUkڋz;lY]S5 Qnq}ݗE5l UT_Sf,W0[#^ + QX |Q fCۿjЦ۾z +[zRڳ_\*Nq(.P2X LN *8~T 6=, +>ebuzqu/B60(AeaF^國;W/WvOXO](geP NYĦtOuzv;HC4@KM#qVSe4nF˒qBѥLjPQP29z*ݭvy\&FF)NiAU7`Sfzp6 NfÛۧie׿P㼟Q?[QθvYBSS N~C7ߘd~ +?vnZAlOEvwUpM'T@L:25jHt 2"Г[P$NMF}4eh@endstream endobj 206 0 obj << /Type /Page @@ -767,21 +769,20 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 226 0 obj << -/Length 1903 +/Length 1972 /Filter /FlateDecode >> stream -xݛ[o6+ti_p +P4n]8²5~DJ( vI IOȏ2P&(PL(/n/`Y Pƅ~3zI9$<HHO]<\_`EvkMQ.վWyq/wUQśUg+L 鐕a1>s - -m8b"NdJ -u27՛ZokVipu΋Ws~hor}}Wb5}yu<|mp37S#fb/3/@rTV1\b$8b$?+RV -[^E^2,e(ywe9N L0*)uT|#3Ag-cGc1SD9KcF #Zwt<?1\2$0&dRT81bCr \JU.4b8bm"@J"C R,: wkUq0-åܞj{{^܌k -T'GNNJ juX<5ybnMtTs87vn.>A#Ae N - $lsu+gԡO2g2>uS&`)>+%uYwNNO5( -/`hAΣsE;P`j1Z* ˟-H7Ei?-.zLx,oɖщyI3k??C,I4O[2(J­N'Ϋbys(T-hߜb_u+̺7 M64iVeQiBx kHX]F}DZ4Ǒ9 pĶw=(Cǘ s$TbTd@40Ǽ6MA+],eP0ӌNB{vk8ʑ7MEo xBT̋w%TZD0׃]hBQBs QjED}E-AL+W~ `yU z;sNeSѪT&KPuJ=4Rm\'T"Kelpۿ_p]pr*2?ժR1w '.ZDuBs:d~)u:N$!DtD 'x,U~Zo(\{tCvES<[Ad2;ђYU*,"`A\)p4 x@r QjED}E \W[{~͝ u&j˦ +#ѬT&.2jv4Rm\'T"KeD?p]ps*2ߙժR>wGFAOK\[] +LS9[&g%wcͪRvlw1[4;u5?&.fvuDozu̵t67|nNyaey F)N6pNeS Ea?YbAzLŃ k~3eL! +ɦ,SeB9,sD81XU*vˏ=F$\Ųe@hnw2wE߼[3:SJCJCe*fϧR4s̅˙̑HO3E,1ڗVd(6} ^/s3 jb3G<DHK\|w5?N$<՝u2˟tny- 1gL`U)o` g'\nIeQRSYōU x𥺽;M`.жřX`E8Q":;Z 4XkςZo$%t2(FC9p~r[ަendstream endobj 225 0 obj << /Type /Page @@ -789,7 +790,7 @@ endobj /Resources 224 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 166 0 R -/Annots [ 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R ] +/Annots [ 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R 239 0 R 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R ] >> endobj 229 0 obj << /Type /Annot @@ -906,31 +907,38 @@ endobj 245 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [89.9113 315.1745 236.2388 327.4507] +/Rect [89.9113 315.1745 374.5351 327.7037] /Subtype /Link /A << /S /GoTo /D (figure.2.14) >> >> endobj 246 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [89.9113 297.2472 276.2296 309.7765] +/Rect [89.9113 297.2472 236.2388 309.5235] /Subtype /Link /A << /S /GoTo /D (figure.2.15) >> >> endobj 247 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [89.9113 281.5418 268.2227 291.8492] +/Rect [89.9113 279.32 276.2296 291.8492] /Subtype /Link /A << /S /GoTo /D (figure.2.16) >> >> endobj 248 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [89.9113 261.3928 331.9705 273.922] +/Rect [89.9113 263.6145 268.2227 273.922] /Subtype /Link /A << /S /GoTo /D (figure.2.17) >> >> endobj +249 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [89.9113 243.4655 331.9705 255.9948] +/Subtype /Link +/A << /S /GoTo /D (figure.2.18) >> +>> endobj 227 0 obj << /D [225 0 R /XYZ 74.4095 793.4011 null] >> endobj @@ -941,61 +949,70 @@ endobj /Font << /F26 162 0 R /F28 165 0 R >> /ProcSet [ /PDF /Text ] >> endobj -271 0 obj << -/Length 648 +273 0 obj << +/Length 722 /Filter /FlateDecode >> stream -xŖM@Y‚|8ۛۤƴ.HޅD5mLdy9}aD2AphCM)|3,/yX:Y刊yc]U(rs`JS<,S{,^6~, ŋAz^:C[RH !Vy _'qRHsd=3dI4)[1PpβJAZ}ᙤEQYCqj:0R2ԔHc Dcۚ8amk]jX -:zj8k܉+P+#ڲwGz<*%eEUk3Qendstream +x͗Mo@=ocf?QJ=TQ˭큀C, _1`(!oe}H&!#^Ӆl/yh,-fvFsU6ʬtVL'aJq'M;?.M?iD2{WLA$yfR$y1O,kx*tLI2C<6zpdՒ{1^X2#41I:Gdu%O3Ur"%R%U1LY|.SM|)Bb/s0ٔڼo_r\|͟Rm_[/$ܱN +Bq^y7.phA*}X.mAyrz Q-eN.ʋrw +Q3Jh.S,)(^7~lK<;b?b%U,ZHc5,#4\?0hnc(} 증mU^,iouHa= mU1?$G[ rP۷M># +m ޅ@c'VSrM:lUH>< 9,w Lj6@s+,ke aTb>D)YVK%pMQBY{\\ڞ~"7Flws\Qc_> endobj -274 0 obj << +276 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.9113 611.9728 397.7864 624.5021] /Subtype /Link /A << /S /GoTo /D (table.2.1) >> >> endobj -275 0 obj << +277 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [89.9113 594.0456 298.4028 606.3218] +/Rect [89.9113 594.0456 204.0679 606.3218] /Subtype /Link /A << /S /GoTo /D (table.2.2) >> >> endobj -276 0 obj << +278 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [89.9113 576.1184 338.3936 588.6476] +/Rect [89.9113 576.1184 298.4028 588.3946] /Subtype /Link /A << /S /GoTo /D (table.2.3) >> >> endobj -277 0 obj << +279 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [89.9113 558.1911 330.3868 570.7204] +/Rect [89.9113 558.1911 338.3936 570.7204] /Subtype /Link /A << /S /GoTo /D (table.2.4) >> >> endobj -272 0 obj << -/D [270 0 R /XYZ 74.4095 793.4011 null] +280 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [89.9113 540.2639 330.3868 552.7932] +/Subtype /Link +/A << /S /GoTo /D (table.2.5) >> >> endobj -273 0 obj << -/D [270 0 R /XYZ 74.4095 643.0213 null] +274 0 obj << +/D [272 0 R /XYZ 74.4095 793.4011 null] >> endobj -269 0 obj << +275 0 obj << +/D [272 0 R /XYZ 74.4095 643.0213 null] +>> endobj +271 0 obj << /Font << /F26 162 0 R /F28 165 0 R >> /ProcSet [ /PDF /Text ] >> endobj -285 0 obj << +289 0 obj << /Length 1086 /Filter /FlateDecode >> @@ -1003,84 +1020,84 @@ stream xڭVKo8W(7ޚY9lc%A[,`;CJ"͡d8/~YD"#L*`,4ڂtD*m0#MqάzV(1%BsbVS*ξ+ 76fdNm{EU=V[.>{*5JΡg.5v%1cL+,W˹ĉ49%q,N0\űV@b#FIZ3F"-mB?Vqj KxuSʫܵ:+]0Tf+\*;oY``3rEռY&"[W77Kb8Mu_afHMp^`:D|gXA)6@y!*^"5 ϳ k:fq㽐,N^`SsAO>E8B@@& %nUl]8A3-$tU^;쨧p^-dw&E TA˒uֹI‡hSC&!q U5P|/]/A> endobj -282 0 obj << +286 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/verteiltes-system.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 289 0 R +/PTEX.InfoDict 293 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 366.00000000 180.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 290 0 R ->>/Font << /R8 291 0 R >> +/R7 294 0 R +>>/Font << /R8 295 0 R >> >> -/Length 292 0 R +/Length 296 0 R /Filter /FlateDecode >> stream xVMo1 W8N+qҲZ$誴vdHEj]ǟo^s~O=K:u۲) rٗX85&G:ۛdKɡ޲::>k%]p#0i$51%, JP[H{6 $K H4OF@|j./R~'Pʎõӓ t{󇛫{O]HfOv*ǴaJ!XlyK-e*E,K4ҵz/>D4 \^B~L"I/) .Q Ûex㿕PxmC$ [?g~/ Ue`v4A$2Tn^Y␩8FMlT!Yr )tA,((Py'C,U/8UD [Iߖ3Ocz\Da4M&Ri֡d*ԒeP^EXf 7MdIɏ F'C9w: Κ#n;?q7/u~W> endobj -290 0 obj +294 0 obj << /Type /ExtGState /OPM 1 >> endobj -291 0 obj +295 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -292 0 obj +296 0 obj 714 endobj -287 0 obj << +291 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [76.4707 384.3703 108.3246 394.4247] /Subtype /Link /A << /S /GoTo /D (cite.Tanenbaum) >> >> endobj -286 0 obj << -/D [284 0 R /XYZ 74.4095 793.4011 null] +290 0 obj << +/D [288 0 R /XYZ 74.4095 793.4011 null] >> endobj 6 0 obj << -/D [284 0 R /XYZ 74.4095 771.7323 null] +/D [288 0 R /XYZ 74.4095 771.7323 null] >> endobj 10 0 obj << -/D [284 0 R /XYZ 74.4095 564.7986 null] +/D [288 0 R /XYZ 74.4095 564.7986 null] >> endobj -249 0 obj << -/D [284 0 R /XYZ 213.3171 155.4996 null] +250 0 obj << +/D [288 0 R /XYZ 213.3171 155.4996 null] >> endobj -283 0 obj << +287 0 obj << /Font << /F26 162 0 R /F28 165 0 R /F61 211 0 R >> -/XObject << /Im2 282 0 R >> +/XObject << /Im2 286 0 R >> /ProcSet [ /PDF /Text ] >> endobj -297 0 obj << +301 0 obj << /Length 1579 /Filter /FlateDecode >> @@ -1094,30 +1111,30 @@ xڭXmo J7gd><;֬)2\o ]F _b"pMh%A?[˾?PY zQCLNLAwMmNe!e/o7C[Auz2&JdΔ*A'rK~}ģ@ϼ ;a& 8J=SZʃ~o'0q-`%/)4%+va#N .Ut+ȐN[ݠT<=U@R0.>6 V$ ,Kt7dH:c<2rJ&JqQ;r>߆)IZ'2c$‡^Ɠo \)Osj,\F $&vkfendstream endobj -296 0 obj << +300 0 obj << /Type /Page -/Contents 297 0 R -/Resources 295 0 R +/Contents 301 0 R +/Resources 299 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 288 0 R -/Annots [ 299 0 R ] +/Parent 292 0 R +/Annots [ 303 0 R ] >> endobj -294 0 obj << +298 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/client-server.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 301 0 R +/PTEX.InfoDict 305 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 382.00000000 112.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 302 0 R ->>/Font << /R8 303 0 R >> +/R7 306 0 R +>>/Font << /R8 307 0 R >> >> -/Length 304 0 R +/Length 308 0 R /Filter /FlateDecode >> stream @@ -1125,54 +1142,54 @@ x (C!R;}tI6?΃ߏbw'> endobj -302 0 obj +306 0 obj << /Type /ExtGState /OPM 1 >> endobj -303 0 obj +307 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -304 0 obj +308 0 obj 452 endobj -299 0 obj << +303 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 702.552 90.6937 715.0813] /Subtype /Link /A << /S /GoTo /D (figure.1.1) >> >> endobj -298 0 obj << -/D [296 0 R /XYZ 74.4095 793.4011 null] +302 0 obj << +/D [300 0 R /XYZ 74.4095 793.4011 null] >> endobj 14 0 obj << -/D [296 0 R /XYZ 74.4095 466.9572 null] +/D [300 0 R /XYZ 74.4095 466.9572 null] >> endobj -300 0 obj << -/D [296 0 R /XYZ 74.4095 298.4934 null] +304 0 obj << +/D [300 0 R /XYZ 74.4095 298.4934 null] >> endobj -250 0 obj << -/D [296 0 R /XYZ 286.2652 155.4996 null] +251 0 obj << +/D [300 0 R /XYZ 286.2652 155.4996 null] >> endobj -295 0 obj << +299 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> -/XObject << /Im3 294 0 R >> +/XObject << /Im3 298 0 R >> /ProcSet [ /PDF /Text ] >> endobj -307 0 obj << +311 0 obj << /Length 2017 /Filter /FlateDecode >> @@ -1186,38 +1203,38 @@ M v殟r\E/oXaD=^)H92zl6ÑV Qy>jW`ǧqܿpXHfTjG+]aׁ^0 pu*Ik7]vu"ڰ%'7<-\ح6_یUGIgJяB/?qVML|"3ҧ >lX!TWlEOWfZ&FQkv`H۲/2z}JyVoLgHiQ]C}Mx|aYԭjvvKkp(VHUصa;oKC JdP+;C Z8U3"pUI~HyUwQvendstream endobj -306 0 obj << +310 0 obj << /Type /Page -/Contents 307 0 R -/Resources 305 0 R +/Contents 311 0 R +/Resources 309 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 288 0 R -/Annots [ 309 0 R ] +/Parent 292 0 R +/Annots [ 313 0 R ] >> endobj -309 0 obj << +313 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.1687 720.4793 186.4492 733.0085] /Subtype /Link /A << /S /GoTo /D (figure.1.2) >> >> endobj -308 0 obj << -/D [306 0 R /XYZ 74.4095 793.4011 null] +312 0 obj << +/D [310 0 R /XYZ 74.4095 793.4011 null] >> endobj -310 0 obj << -/D [306 0 R /XYZ 74.4095 634.5446 null] +314 0 obj << +/D [310 0 R /XYZ 74.4095 634.5446 null] >> endobj -311 0 obj << -/D [306 0 R /XYZ 74.4095 447.9781 null] +315 0 obj << +/D [310 0 R /XYZ 74.4095 447.9781 null] >> endobj -312 0 obj << -/D [306 0 R /XYZ 74.4095 277.0292 null] +316 0 obj << +/D [310 0 R /XYZ 74.4095 277.0292 null] >> endobj -305 0 obj << +309 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> /ProcSet [ /PDF /Text ] >> endobj -316 0 obj << +320 0 obj << /Length 1152 /Filter /FlateDecode >> @@ -1225,29 +1242,29 @@ stream xڍnF>i4I4C(i#-LQH9>3;4eI @cE'B3+@dd7W,2gcW\$*d5`Ib_>6Le*<37mOff1X32对6p_&˱oCbEQHZkOgJ; :Pi}Zm u7%e#XRvIw@[FHq؁g-+*>ٻL@2WOg!`Z\ȿ+ƕAo\oOH{+6L]><+y =!eQmۣ:3½tis?"8㩻UZe(_Q" ?ːijz[U`t,D_BRa="afm Bud=<bHS,h ].{alܲ'v:⊎nG7vcۮx1zP_Bu{ҟn'}(85JT+뺃  kqn3BQM㠥;±nuTQ'HȝwɁ(h=qܰ5בG&e DMVIdJHϞ!t~q|hd"W$Z.ԂXM s8a/1?K׬Uoϓ&$/Kg"OP8O~pOa{_S$ UNw&^agfu!b2ʘHTWOSYa۴G %'Jqe rCkވq0{w&;† ҿ_ņG©S&pmsXDju 2}OyhTkA xB~JDTK >&j;AlEAU^: ٭nEIͦS6Dge\ ݭR."ō_A)d<> _hG ޴/UdY2skTW m0G^=endstream endobj -315 0 obj << +319 0 obj << /Type /Page -/Contents 316 0 R -/Resources 314 0 R +/Contents 320 0 R +/Resources 318 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 288 0 R +/Parent 292 0 R >> endobj -313 0 obj << +317 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/client-server-protokolle.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 319 0 R +/PTEX.InfoDict 323 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 376.00000000 320.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 320 0 R ->>/Font << /R8 321 0 R >> +/R7 324 0 R +>>/Font << /R8 325 0 R >> >> -/Length 322 0 R +/Length 326 0 R /Filter /FlateDecode >> stream @@ -1257,44 +1274,44 @@ x Y La- 7pD7[:pHp {-q*YA^6@K  B|jZ%Tp'endstream endobj -319 0 obj +323 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080724175411Z00'00') -/ModDate (D:20080724175411Z00'00') +/CreationDate (D:20080724212211Z00'00') +/ModDate (D:20080724212211Z00'00') >> endobj -320 0 obj +324 0 obj << /Type /ExtGState /OPM 1 >> endobj -321 0 obj +325 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -322 0 obj +326 0 obj 499 endobj -317 0 obj << -/D [315 0 R /XYZ 74.4095 793.4011 null] +321 0 obj << +/D [319 0 R /XYZ 74.4095 793.4011 null] >> endobj -251 0 obj << -/D [315 0 R /XYZ 278.1207 275.6895 null] +252 0 obj << +/D [319 0 R /XYZ 278.1207 275.6895 null] >> endobj -318 0 obj << -/D [315 0 R /XYZ 74.4095 197.2093 null] +322 0 obj << +/D [319 0 R /XYZ 74.4095 197.2093 null] >> endobj -314 0 obj << +318 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> -/XObject << /Im4 313 0 R >> +/XObject << /Im4 317 0 R >> /ProcSet [ /PDF /Text ] >> endobj -325 0 obj << +329 0 obj << /Length 1537 /Filter /FlateDecode >> @@ -1304,32 +1321,32 @@ q<6 -e\3-_խ-GQ[eR2y IY'37u޳˾;"5PLwa l]u}x> endobj -328 0 obj << +332 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [137.0253 474.2875 154.3058 486.5637] /Subtype /Link /A << /S /GoTo /D (figure.1.3) >> >> endobj -326 0 obj << -/D [324 0 R /XYZ 74.4095 793.4011 null] +330 0 obj << +/D [328 0 R /XYZ 74.4095 793.4011 null] >> endobj -327 0 obj << -/D [324 0 R /XYZ 74.4095 635.4572 null] +331 0 obj << +/D [328 0 R /XYZ 74.4095 635.4572 null] >> endobj -323 0 obj << +327 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> /ProcSet [ /PDF /Text ] >> endobj -332 0 obj << +336 0 obj << /Length 906 /Filter /FlateDecode >> @@ -1340,15 +1357,15 @@ xڭVK :VmWW 8}DE$HkD;"sCDO>CZrsb6o`M1wYJs-e(jw+*_X{H|2YKCm\)6 z8և̕xWtUM ~E.5 5jDmC, yrO?#xA0E"(Wlcxmٴ878-6o6iۦVjˠP@mZS ܟA0Y, f lfG˽҈u%^k5Qv1@B6f]ΐ;UP endstream endobj -331 0 obj << +335 0 obj << /Type /Page -/Contents 332 0 R -/Resources 330 0 R +/Contents 336 0 R +/Resources 334 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 288 0 R -/Annots [ 334 0 R 335 0 R ] +/Parent 292 0 R +/Annots [ 338 0 R 339 0 R ] >> endobj -329 0 obj << +333 0 obj << /Type /XObject /Subtype /Image /Width 380 @@ -1375,58 +1392,59 @@ CK |깗D"=))s}SIꌎ$'ƆYkp$ kK"*%9uv>r.vL,ֵ*pRcuK\K;D"=IHm˅[6m<1%HG≱d7kv;7ܾy Dz/ܺ~ډ3[4mq5okS.ck|V>:>u .8<$89spe9sp98p8s9sp8p89s98p8pss9sp8p89s98p8ps9sp98p8Õ89s98p8ps9sp98p8s9sp98p8+8ps9sp98p8s9sp98p89s9sp8pWp8s9sp98p89s9sp8ps9s98p 98p89s9sp8ps1猌ќscsδM\}놴C"H<ݺucrr眺'[''H$ңOƏrBǁ͇NH$ҏ*5՟5'{׮]۷dgH$ҏ*dYkːendstream endobj -334 0 obj << +338 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [429.2362 171.0176 446.5167 183.5468] /Subtype /Link /A << /S /GoTo /D (figure.2.1) >> >> endobj -335 0 obj << +339 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.259 153.0904 389.5395 165.6196] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj -333 0 obj << -/D [331 0 R /XYZ 74.4095 793.4011 null] +337 0 obj << +/D [335 0 R /XYZ 74.4095 793.4011 null] >> endobj 18 0 obj << -/D [331 0 R /XYZ 74.4095 771.7323 null] +/D [335 0 R /XYZ 74.4095 771.7323 null] >> endobj 22 0 obj << -/D [331 0 R /XYZ 74.4095 580.9861 null] +/D [335 0 R /XYZ 74.4095 580.9861 null] >> endobj -252 0 obj << -/D [331 0 R /XYZ 240.2747 218.7511 null] +253 0 obj << +/D [335 0 R /XYZ 240.2747 218.7511 null] >> endobj -330 0 obj << +334 0 obj << /Font << /F26 162 0 R /F28 165 0 R >> -/XObject << /Im5 329 0 R >> +/XObject << /Im5 333 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -340 0 obj << -/Length 1574 +344 0 obj << +/Length 1582 /Filter /FlateDecode >> stream -xڭ]o6=pY叽ۡ.`j?ع#Eq=`C(")~1 KX* - ]-}F8SzCȳ>2Sc`Fݬ#`Hqx1)~|qvD4ߦD}jNwW˲LX5߭%qd.h\tG_FӻU>}Ma#dċrf%sL;>|;kGMQ79+f,́ %5 -muh -? h͈@Ӊ,/ w;q5w#u9䣗`S%B6ijP\LYdBᏩ` <,3B \2G}Z$)ε8UIR.0`sSƊB%ق"b&ܒ9j rGE!vĒByDY> P̋ˁӑSf|-X9 >3w0Hv!o4k0c\, 8:oFh!RYKń)Y,XJ_$$c$%`ig"Mdʥ\;,gLfi̅\2Q%;T~& ҄ e\%wǹuwdbI] ܔLE,UǻK0)+*65m %B6~qE]T/T*LGU[qqf]*~18e\bbzFD3KxΚP"?Uݞ5P(X=rlAx0w;:}1Oe_*t2[5 c1;1DzY:1u,%vk3wF!f .g;$t#'$w`m>?NB rG4"+=3 _ʾ %Nc"MeUεoTIj\=zm7Uˆ%qiuv9y/_#*LԺ:J}s'KfKK3#'ZgyA^Nendstream +xڭnF]_G +07{[ӻvч(P#R1HZ0sp ßb4OC/NBxvpax +G͏gi֓*лSPvZ2N|Aȹm-kSuqݠ8%Q$ʁznLfwSDZf]+0cT4~Z7UmjBЕ{cy,>l^ _wN ٙ]SLKG9zQq wDR@@YDd: ZԆŒ*yĄ(:S *gVؒ&V\ƼzUL_Jmڜ Aͬ4GFצh6T;L`tqywި(nkah@* ڊY9q ОBn8DQ*.w$t{ZHgZshLRÊR\8{?Y' -N[':kMs@JM ;ms +sӖ]4VPB8E)2Fwv pp}͆sYpk q^[`:^F.@ Uv˺H a-j~!ܹ"S3< _ƎzHH4բ!;"^- 2;ŢB;¡>0Rw+~}a 8`PtF"QO97C˞Wp[J٠!h5B 8_8֏W'C&B.\PnHWӧ"}Qv%X|g*X&:Gs3(tGtj.>ųxl3DFMrhǥG҃+1:Y ڃ${BXZʐf9PmPer(e ,pBXZLHsShí%8co:z|sfLG^ݜpZ"WL.BOa-̞N;G6g'n؊lztzM0tx4ҍv¯!l 0:B7֩klM[r|#Lh"7MgCcsJ +R"+:?dłsl&%3`0#}?L6Mh܃L4Ig:yArtlendstream endobj -339 0 obj << +343 0 obj << /Type /Page -/Contents 340 0 R -/Resources 338 0 R +/Contents 344 0 R +/Resources 342 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 345 0 R -/Annots [ 342 0 R 344 0 R ] +/Parent 349 0 R +/Annots [ 346 0 R 348 0 R ] >> endobj -336 0 obj << +340 0 obj << /Type /XObject /Subtype /Image /Width 500 @@ -1449,35 +1467,35 @@ K *o{ců Su:~dhRmmvmmm mX/~`vC dmGmGA۵mmmmGہ sv@۽Fh;mO[pe]/k;04,uڮ@vX>?vk;W&rdfUFہEAAv@v@v@vvvvvvvv=,o V _rBvgñ {1z=|cyh;'ʣl r Aہm·vm1vmo{ZM4bϜh;h;h;h;h;h;h;ckG@vm@m@v@vm@]m@v@vm@m@vmvm@vm@vmvh;h;h;h;hh;h;h;h;2kendstream endobj -342 0 obj << +346 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.2715 720.4793 142.552 732.7555] /Subtype /Link /A << /S /GoTo /D (figure.2.3) >> >> endobj -344 0 obj << +348 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [205.1356 343.0915 222.4161 355.6208] +/Rect [205.1356 357.5128 222.4161 370.0421] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj -341 0 obj << -/D [339 0 R /XYZ 74.4095 793.4011 null] +345 0 obj << +/D [343 0 R /XYZ 74.4095 793.4011 null] >> endobj -253 0 obj << -/D [339 0 R /XYZ 307.3769 454.1201 null] +254 0 obj << +/D [343 0 R /XYZ 307.3769 457.6694 null] >> endobj -343 0 obj << -/D [339 0 R /XYZ 74.4095 375.0536 null] +347 0 obj << +/D [343 0 R /XYZ 74.4095 385.969 null] >> endobj -338 0 obj << +342 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> -/XObject << /Im6 336 0 R >> +/XObject << /Im6 340 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -349 0 obj << +353 0 obj << /Length 1167 /Filter /FlateDecode >> @@ -1491,15 +1509,15 @@ M CO9ngU6*CCeۣve]5:X6oOsDbK8RŤSN,P*Wf {MBcŗm8v{:}o3|NM , + 6mP~֫ {?nΚb` s;Tl=Z*J_=Nk ?@xP$Pendstream endobj -348 0 obj << +352 0 obj << /Type /Page -/Contents 349 0 R -/Resources 347 0 R +/Contents 353 0 R +/Resources 351 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 345 0 R -/Annots [ 352 0 R ] +/Parent 349 0 R +/Annots [ 356 0 R ] >> endobj -337 0 obj << +341 0 obj << /Type /XObject /Subtype /Image /Width 380 @@ -1638,7 +1656,7 @@ HI M] 0H88' u W#xLDhz2QE"I=oh,G5qHLIJL7EJ'1+8DήT$=-  x|{kc~)ڢ8g1:fMA%4`*M*A/l\i6G,,,GZG}:WSqNNkj,jJ~=ӸjtBʡUjgS)rSkv&ldR]r`LT6̚myc'fofHh4KKf'fMK] 4`Z2.o1.mr޴<#bǸeP1C?IWtrkpF`D /CiiiZ4il/iactvkUh4>ik *Pn/|zzt~w={)W5(60.O [O>˸3h ^k_S + !۝+KJum0䫷Ns~sFZ^9se^JU_J%VMJ}z~3ǝ1GOլ޲:`0B7[#Zs7D?O'Y>s/537<95 Y%ȇ_>$iJzNi]Gҕ)9(+; +(7/,؋~'.Ȝ`oy`KPqzu>>T׍zaݖʾۥ=E,mMɭy0SBNfq;lg6/-fP10p m=p`0գȁ@sjB=-j^דGe7Ď|Z|%Ttj0F`L,ȩx*:len)i6Z#Rq`C(N[#x^ܮ]'Ixv]If׏K6[Nnq,q8EEE7oLK =ދȞ Քqendstream endobj -346 0 obj << +350 0 obj << /Type /XObject /Subtype /Image /Width 180 @@ -1666,31 +1684,31 @@ SȈoD\ ٘Zl7Z%lL-6Z!7,7>L")dcjb,>߰ߞ{و|t9T,t)T(«8 {endstream endobj -352 0 obj << +356 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [380.5758 322.4414 397.8563 334.9707] /Subtype /Link /A << /S /GoTo /D (figure.2.4) >> >> endobj -350 0 obj << -/D [348 0 R /XYZ 74.4095 793.4011 null] +354 0 obj << +/D [352 0 R /XYZ 74.4095 793.4011 null] >> endobj -254 0 obj << -/D [348 0 R /XYZ 283.8895 473.3831 null] +255 0 obj << +/D [352 0 R /XYZ 283.8895 473.3831 null] >> endobj -351 0 obj << -/D [348 0 R /XYZ 74.4095 351.8797 null] +355 0 obj << +/D [352 0 R /XYZ 74.4095 351.8797 null] >> endobj -255 0 obj << -/D [348 0 R /XYZ 259.0544 232.7884 null] +256 0 obj << +/D [352 0 R /XYZ 259.0544 232.7884 null] >> endobj -347 0 obj << +351 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R /F33 173 0 R >> -/XObject << /Im7 337 0 R /Im8 346 0 R >> +/XObject << /Im7 341 0 R /Im8 350 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj -356 0 obj << +360 0 obj << /Length 1459 /Filter /FlateDecode >> @@ -1705,15 +1723,15 @@ u [wov5/H# TDCZceq`Z89X|swAKz83v Ei5*m[w0vpں; ̌lV&cpF'xRM61J\!>.endstream endobj -355 0 obj << +359 0 obj << /Type /Page -/Contents 356 0 R -/Resources 354 0 R +/Contents 360 0 R +/Resources 358 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 345 0 R -/Annots [ 359 0 R 360 0 R ] +/Parent 349 0 R +/Annots [ 363 0 R 364 0 R ] >> endobj -353 0 obj << +357 0 obj << /Type /XObject /Subtype /Image /Width 586 @@ -1728,56 +1746,57 @@ x 7-XW [r7g7U~Zz?ކ[1g bǗsI9ۮ㥧 '&7Wjo_E3/jcOL˺=.cuQ݌1]uUKc-usg1uzJݦY,Ց;[aaX,uV7bX,usX,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,RFu[c5Y,5Mݾ8;b-n"n`{M[bX6Jݎ_гsX,KݞvVyn,Śn{QRv"aX,u˯kbXm= vb[BQDnbX]Vyn,Śnů\X,kvcX,(uܼqncLsncM݌1ƨ1ӷnߞ{&1Ƙ.uLX,kXNX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,ݯbXiյ9,nu[vqkwRQv҅bXkcucX,|u[݋bX,U3qvb[~>^S7b=ngnsX,KJZ)~fݬ&b2V|\X,k](X,˵dX,VӺU~vncLs,mf1u1Ƙm#3u3m{&1Ƙ.uLX,kXNX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,nbX,u,R7;bMX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXfX,KX,nbX,uS7bdX,YMbbXn,R7ucX,bjX,KR7ucX,bMX,nVbXf5Y,n,R7ucX,bMX,nVbXfX,bMX,