From 74832f317a4dd7a481808c1a67d33bd6273e5771 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 14 Aug 2008 05:28:08 +0000 Subject: foo --- LaTeX/argouml.zargo | Bin 52006 -> 51981 bytes LaTeX/bib/referenzen.bib | 27 +- LaTeX/chapters/einleitung.tex | 4 + LaTeX/chapters/implementierung.tex | 6 +- LaTeX/chapters/protokolle.tex | 72 +- LaTeX/diplomarbeit.pdf | 6799 ++++++++++++++++++------------------ LaTeX/images/utils.eps | 4 +- 7 files changed, 3437 insertions(+), 3475 deletions(-) diff --git a/LaTeX/argouml.zargo b/LaTeX/argouml.zargo index 911ceb3..b858ea4 100644 Binary files a/LaTeX/argouml.zargo and b/LaTeX/argouml.zargo differ diff --git a/LaTeX/bib/referenzen.bib b/LaTeX/bib/referenzen.bib index 89a18c4..5880f93 100644 --- a/LaTeX/bib/referenzen.bib +++ b/LaTeX/bib/referenzen.bib @@ -1,15 +1,18 @@ -@book{Games, author="David Brackeen", title="Developing Games in Java", year= 2003, note="ISBN-13: 978-1592730056" } -@book{Tanenbaum, author={Andrew Tanenbaum}, year={2003}, title={Verteilte Systeme - Grundlagen und Paradigmen}, note={ISBN: 3-8273-7057-4} } -@book{Regexp, author={Jeffrey Friedl}, year={2006}, title={Mastering Regular Expressions}, note={ISBN-13: 978-0596528126}} -@book{OOS, author={Prof. Heinrich Fassbender}, year={2006}, title={Vorlesung Objektorientierte Softwareentwicklung an der Fachhochschule Aachen}, note={http://www.fassbender.fh-aachen.de} } -@book{Richtlinien, author={Prof. Heinrich Fassbender}, year={2008}, title={Programmierrichtlinien an der Fachhochschule Aachen}, note={http://www.fassbender.fh-aachen.de/Downloads/OOS/Programmierrichtlinien.pdf} } -@book{Vorlesung, author={Prof. Martin Omann}, year={2007}, title={Vorlesung Verteilte Systeme an der Fachhochschule Aachen}, note={Mitschrift: ftp://ftp.buetow.org/pub/studium/FHAC\_VS-SS07/Mitschrift/verteilte-systeme.pdf} } -@book{M32, author={Prof. Martin Omann}, title={M32 CPU Simulator}, note={http://www.ossmann.fh-aachen.de} } -@book{Javadoc, title={Java Platform Standard Edition 6 Javadoc}, note={http://java.sun.com/javase/6/docs/api/}} -@book{Java2D, title={Sun's Java 2D}, note={http://java.sun.com/products/java-media/2D/}} -@book{Java2DAPI, title={Java 2D API}, note={http://java.sun.com/j2se/1.4.2/docs/guide/2d/spec.html}} -@book{AntManual, title={Apache Ant Manual}, note={http://ant.apache.org/manual/index.html}} -@book{AntIntro, title={Apache Ant Introduction}, note={http://www.developer.com/tech/article.php/989631}} @book{Algorithms, author={Thomas H. Cormen}, year={2001}, title={Introduction to Algorithms}, note={ISBN-13: 978-0262032933}} @book{AlgorithmsC, author={Robert Sedgewick}, year={1999}, title={Algorithms in C}, note={SBN-13: 978-0201314526}} +@book{AntIntro, title={Apache Ant Introduction}, note={http://www.developer.com/tech/article.php/989631}} +@book{AntManual, title={Apache Ant Manual}, note={http://ant.apache.org/manual/index.html}} +@book{Coul, author="George Coulouris", title="Verteilte Systeme", year=2005, note="ISBN-13: 978-3827371867" } +@book{Games, author="David Brackeen", title="Developing Games in Java", year=2003, note="ISBN-13: 978-1592730056" } +@book{Java2D, title={Sun's Java 2D}, note={http://java.sun.com/products/java-media/2D/}} +@book{Java2DAPI, title={Java 2D API}, note={http://java.sun.com/j2se/1.4.2/docs/guide/2d/spec.html}} +@book{Javadoc, title={Java Platform Standard Edition 6 Javadoc}, note={http://java.sun.com/javase/6/docs/api/}} +@book{M32, author={Prof. Martin Omann}, title={M32 CPU Simulator}, note={http://www.ossmann.fh-aachen.de} } +@book{OOS, author={Prof. Heinrich Fassbender}, year={2006}, title={Vorlesung Objektorientierte Softwareentwicklung an der Fachhochschule Aachen}, note={http://www.fassbender.fh-aachen.de} } +@book{Regexp, author={Jeffrey Friedl}, year={2006}, title={Mastering Regular Expressions}, note={ISBN-13: 978-0596528126}} +@book{Richtlinien, author={Prof. Heinrich Fassbender}, year={2008}, title={Programmierrichtlinien an der Fachhochschule Aachen}, note={http://www.fassbender.fh-aachen.de/Downloads/OOS/Programmierrichtlinien.pdf} } @book{Swing, author={Marc Loy}, year={2002}, title={Java Swing}, note={ISBN-13: 978-0596004088}} +@book{Tanenbaum, author={Andrew Tanenbaum}, year={2003}, title={Verteilte Systeme - Grundlagen und Paradigmen}, note={ISBN: 3-8273-7057-4} } +@book{Threads, author={Scott Oaks}, year={2004}, title={Java Threads}, note={ISBN 13: 978-0596007829}} +@book{UML, title={ArgoUML Quick Guide}, note={http://argouml-stats.tigris.org/documentation/quick-guide-0.24/}} +@book{Vorlesung, author={Prof. Martin Omann}, year={2007}, title={Vorlesung Verteilte Systeme an der Fachhochschule Aachen}, note={Mitschrift: ftp://ftp.buetow.org/pub/studium/FHAC\_VS-SS07/Mitschrift/verteilte-systeme.pdf} } diff --git a/LaTeX/chapters/einleitung.tex b/LaTeX/chapters/einleitung.tex index fd75fbb..f7954a4 100644 --- a/LaTeX/chapters/einleitung.tex +++ b/LaTeX/chapters/einleitung.tex @@ -1,3 +1,7 @@ +\newpage +~ +\thispagestyle{empty} +\newpage \chapter{Einleitung} \section{Motivation} diff --git a/LaTeX/chapters/implementierung.tex b/LaTeX/chapters/implementierung.tex index 4c7c683..7e29634 100644 --- a/LaTeX/chapters/implementierung.tex +++ b/LaTeX/chapters/implementierung.tex @@ -559,7 +559,7 @@ Der Simulator soll auf die Millisekunde genau simulieren k\"{o}nnen und dabei so \begin{itemize} \item Das Zeichnen der Visualisierung bentigt pro Aktualisierung einige Millisekunden. Hier werden stndig mathematische Berechnungen wie z.B. die Berechnung einer Nachrichtenlinie oder die automatische Skalierung des Diagramms durchgef\"{u}hrt. \item Das Neuberechnen der Simulation bentigt pro Aktualisierung einige Millisekunden. Hier arbeitet insbesondere der Task-Manager, welcher berprft, ob Ereignisse auszufhren sind. - \item Jeder simulierte Prozess sollte mit der selben Geschwindigkeit fortschreiten, und dies auf jedem Betriebssystem und auf jeder Architektur. Da Threads auf Betriebssystemebene implementiert sind sind Java-Threads nicht komplett plattformunabhngig. Dadurch kann das Verhalten je nach Betriebssystem und Architekturen variieren. Insbesondere bernimmt das Betriebssystem die Entscheidung, wann welcher Thread arbeiten darf. + \item Jeder simulierte Prozess sollte mit der selben Geschwindigkeit fortschreiten, und dies auf jedem Betriebssystem und auf jeder Architektur. Da Threads auf Betriebssystemebene implementiert sind sind Java-Threads nicht komplett plattformunabhngig. Dadurch kann das Verhalten je nach Betriebssystem und Architekturen variieren. Insbesondere bernimmt das Betriebssystem die Entscheidung, wann welcher Thread arbeiten darf (vgl. \cite{Threads}). \item Die Simulationszeit wird stets in Millisekunden angegeben und sie wird intern in einer \textit{long}-Variable abgespeichert. Somit kann eine Simulationszeit immer nur den Wert einer ganze Zahl betragen. Berechnungsrundungsfehler durch \textit{sim.clock.speed} (s. Kap. 2.4.2.) mssen bercksichtigt werden. \item Der Simulator soll die komplette CPU des Anwender-Computers nicht konstant auslasten. \end{itemize} @@ -651,7 +651,7 @@ Es wurden noch nicht die Klassen der Pakete \textit{utils} (s. Abb. \ref{fig:Pac \item \textit{VSHelper}: In dieser Klasse befinden sich statische Helfermethoden, die in keine andere Klasse gehren. \item \textit{VSPriorityQueue}: Diese Klasse wird fr das Verwalten von \textit{core.VSTask}-Objekte im Task-Manager bentigt. \item \textit{VSRandom}: Wird fr Zufallsereignisse bentigt. Jedes Prozessobjekt besitzt einen solchen eigenen Pseudozufallsgenerator. Diese Klasse setzt gleichzeitig einen eigenen Seed basierend auf der lokalen Systemzeit und anderer Zahlen fest. - \item \textit{VSTupel}: Diese Klasse ist eine Implementierung eines einfach aufgebauten 3-Tupel Datentyps. Alle 3 Elemente knnen von einem anderen Typ sein, was mit Hilfe der Java-Generics verwirklicht wurde. \textit{VSTupel} wird von den Editorklassen fr die Generierung von GUI-Elementen bentigt. + \item \textit{VS3Tupel}: Diese Klasse ist eine Implementierung eines einfach aufgebauten 3-Tupel Datentyps. Alle 3 Elemente knnen von einem anderen Typ sein, was mit Hilfe der Java-Generics verwirklicht wurde. \textit{VS3Tupel} wird von den Editorklassen fr die Generierung von GUI-Elementen bentigt. \end{itemize} \begin{figure}[h] @@ -706,7 +706,7 @@ F Fr die Erstellung dieses PDF-Dokumentes wurde LaTeX in Verbindung mit dem Built-Tool GNU Make und Rubber verwendet. Eine Rechtschreibberprfung wurde mit aspell sowie OpenOffice.org durchgefhrt. xPDF diente dabei als PDF-Anzeigeprogramm. -Smtliche UML-Diagramme wurden mit ArgoUML angefertigt und die Screenshots mit The GIMP (GNU Image Manipulation Program) sowie ImageMagick nachbearbeitet. Mit dem zip-Programm wurden alle VS-Simulator Distributionen verpackt. +Smtliche UML-Diagramme wurden mit ArgoUML und \cite{UML} angefertigt und die Screenshots mit The GIMP (GNU Image Manipulation Program) sowie ImageMagick nachbearbeitet. Mit dem zip-Programm wurden alle VS-Simulator Distributionen verpackt. \subsubsection{Linkliste der verwendeten Software} diff --git a/LaTeX/chapters/protokolle.tex b/LaTeX/chapters/protokolle.tex index accabff..22ad002 100644 --- a/LaTeX/chapters/protokolle.tex +++ b/LaTeX/chapters/protokolle.tex @@ -1,7 +1,7 @@ \chapter{Protokolle und Beispiele} Im Folgenden werden alle verfgbaren Protokolle behandelt. Wie bereits beschrieben wird bei Protokollen zwischen Server- und Clientseite unterschieden. Server knnen auf Clientnachrichten, und Clients auf Servernachrichten antworten. Jeder Prozess kann beliebig viele Protokolle sowohl clientseitig als auch serverseitig untersttzen. Theoretisch ist es auch mglich, dass ein Prozess fr ein bestimmtes Protokoll gleichzeitig der Server und der Client ist. Der Anwender kann auch weitere eigene Protokolle in der Programmiersprache Java mittels der simulatoreigenen API (Application Programming Interface) erstellen (s. Kap. 4.4.4.). -Im Programmverzeichnis des Simulators befindet sich das Verzeichnis \textit{saved-simulations} mit Beispielsimulationen. Diese liegen jeweils als serialisierter plattformunabh\"{a}ngiger Java-Bytecode in \textit{.dat}-Dateien vor. Alle Protokolle, bis auf das Beispiel-, Ping Pong- sowie das Broadcast-Protokoll, orientieren sich an den in \cite{Tanenbaum} und \cite{Vorlesung} behandelten Protokollen. +Im Programmverzeichnis des Simulators befindet sich das Verzeichnis \textit{saved-simulations} mit Beispielsimulationen. Diese liegen jeweils als serialisierter plattformunabh\"{a}ngiger Java-Bytecode in \textit{.dat}-Dateien vor. Alle Protokolle, bis auf das Beispiel-, Ping Pong- sowie das Broadcast-Protokoll, orientieren sich an den in \cite{Tanenbaum}, \cite{Coul} und \cite{Vorlesung} behandelten Protokollen. \section{Beispiel (Dummy) Protokoll} @@ -101,7 +101,7 @@ Das Broadcast Protokoll verh In diesem Fall wird nicht zwischen Client und Server unterschieden, so dass bei der Ankunft einer Nachricht jeweils die gleiche Aktion durchgef\"{u}hrt wird. Somit lsst sich, unter Verwendung mehrerer Prozesse (s. Abb. \ref{fig:BroadcastSturmProto}.) ein Broadcast erzeugen. P1 ist der Client und startet je eine Anfrage nach \textit{0ms} und \textit{2500ms}. Die Simulationsdauer betrgt hier genau \textit{5000ms}. Da ein Client nur Servernachrichten und ein Server nur Clientnachrichten empfangen kann, ist in dieser Simulation jeder Prozess (s. Tabelle \ref{tb:BroadcastSturmTasks}) gleichzeitig Server und Client. -\newpage + \section{Das Protokoll zur internen Synchronisierung in einem synchronen System \small{\textit{(int-sync.dat)}}} Bisher wurden nur Protokolle dargestellt, in denen die beteiligten Prozesse keine Uhrabweichungen hatten. Das Protokoll zur internen Synchronisierung ist ein Protokoll zur Synchronisierung der lokalen Prozesszeit, welches beispielsweise angewendet werden kann, wenn eine Prozesszeit aufgrund einer Uhrabweichung falsch geht. Wenn der Client seine (falsche) lokale Prozesszeit $t_c$ mit einem Server synchronisieren mchte, so schickt er ihm eine Clientanfrage. Der Server schickt als Antwort seine eigene lokale Prozesszeit $t_s$ zurck, womit der Client eine neue und genauere Prozesszeit f\"{u}r sich berechnen kann. @@ -197,7 +197,7 @@ Aus Abbildung \ref{fig:TimeSync2Proto}. ist ersichtlich, dass nach Ablauf der Si \label{tb:InterneSync2Tasks} \end{table} -\newpage + \section{Der Berkeley Algorithmus zur internen Synchronisierung \small{\textit{(berkeley.dat)}}} \begin{figure}[h] @@ -253,7 +253,7 @@ Dieses Protokoll verwendet folgende serverseitige Variable, die in den Prozessei \item \textbf{PIDs beteiligter Prozesse} \textit{(Integer[]: [1,3])}: Dieser Vektor aus Integerwerten beinhaltet alle PIDs der Berkeley Clientprozesse, mit denen der Berkeley Server die Zeit synchronisieren soll. Das Protokoll funktioniert nicht, wenn hier eine PID angegeben wird die nicht existiert oder die das Berkeley Protokoll clientseitig nicht untersttzt. In diesem Fall wrde ewig auf eine (fehlende) Clientantwort gewartet werden. \end{itemize} -\newpage + \section{Das Ein-Phasen Commit Protokoll \small{\textit{(one-phase-commit.dat)}}} \begin{figure}[h] @@ -295,7 +295,7 @@ Dieses Protokoll verwendet folgende serverseitige Variablen, die in den Prozesse \end{itemize} -\newpage + \section{Das Zwei-Phasen Commit Protokoll \small{\textit{(two-phase-commit.dat)}}} \begin{figure}[h] @@ -396,7 +396,18 @@ Die folgende Clientvariable kann unter den Prozesseinstellungen unter dem Punkt & & Boolean: isVoteResult=true; voteResult=true\\ \hline 004124 & 1 & Nachricht erhalten; ID: 99; Protokoll: 2-Phasen Commit\\ -\hline + \end{tabular} + } + \caption{Auszug aus dem Logfenster des Zwei-Phasen Commit Beispiels} + \label{tb:TwoPhaseCommitLogs} +\end{table} + +\begin{table} + \centering + \fbox{ + \begin{tabular}{c|c|l} + \textbf{Zeit (ms)} & \textbf{PID} & \textbf{Lognachricht} \\ + \hline 004124 & 1 & Globales Abstimmungsergebnis erhalten. Ergebnis: true\\ \hline 004124 & 1 & Nachricht versendet; ID: 100; Protokoll: 2-Phasen Commit\\ @@ -413,18 +424,7 @@ Die folgende Clientvariable kann unter den Prozesseinstellungen unter dem Punkt \hline 004434 & 1 & Nachricht versendet; ID: 102; Protokoll: 2-Phasen Commit\\ & & Integer: pid=1; Boolean: isVote=true; vote=true\\ - \end{tabular} - } - \caption{Auszug aus dem Logfenster des Zwei-Phasen Commit Beispiels} - \label{tb:TwoPhaseCommitLogs} -\end{table} - -\begin{table} - \centering - \fbox{ - \begin{tabular}{c|c|l} - \textbf{Zeit (ms)} & \textbf{PID} & \textbf{Lognachricht} \\ - \hline +\hline 004434 & 1 & Abstimmung true versendet\\ \hline 004527 & 2 & Nachricht erhalten; ID: 98; Protokoll: 2-Phasen Commit\\ @@ -465,7 +465,7 @@ Die folgende Clientvariable kann unter den Prozesseinstellungen unter dem Punkt \label{tb:TwoPhaseCommitLogs2} \end{table} - +\newpage \newpage \section{Der ungengende (Basic) Multicast \small{\textit{(basic-multicast.dat)}}} @@ -505,7 +505,7 @@ P1 kann jedoch erst nach \textit{2500ms} Multicast-Nachrichten empfangen, da er In diesem Beispiel ging die 3. Multicast-Nachricht auf den Weg zu P3- und die 5. sowie 6. Nachricht auf den Weg zu P1 verloren. Lediglich die 4. Multicast-Nachricht hat beide Ziele erreicht. -\newpage + \section{Das zuverlssige (Reliable) Multicast Protokoll \small{\textit{(reliable-multicast.dat)}}} \begin{figure}[h] @@ -613,17 +613,7 @@ Dieses Protokoll verwendet folgende serverseitige Variablen, die in den Prozesse & & Boolean: isMulticast=true\\ \hline 005952 & 1 & Nachricht erhalten; ID: 283; Protokoll: Reliable Multicast\\ - \end{tabular} - } - \caption{Auszug aus dem Logfenster des Reliable-Multicast Beispiels} - \label{tb:ReliableMulticastLogs} -\end{table} - -\begin{table} - \centering - \fbox{ - \begin{tabular}{c|c|l} - \textbf{Zeit (ms)} & \textbf{PID} & \textbf{Lognachricht} \\ +\hline 005952 & 1 & Nachricht versendet; ID: 284; Protokoll: Reliable Multicast\\ & & Integer: pid=1; Boolean: isAck=true\\ \hline @@ -640,6 +630,17 @@ Dieses Protokoll verwendet folgende serverseitige Variablen, die in den Prozesse \hline 008469 & 1 & Nachricht versendet; ID: 286; Protokoll: Reliable Multicast\\ & & Integer: pid=1; Boolean: isAck=true\\ + \end{tabular} + } + \caption{Auszug aus dem Logfenster des Reliable-Multicast Beispiels} + \label{tb:ReliableMulticastLogs} +\end{table} + +\begin{table} + \centering + \fbox{ + \begin{tabular}{c|c|l} + \textbf{Zeit (ms)} & \textbf{PID} & \textbf{Lognachricht} \\ \hline 008469 & 1 & ACK erneut versendet\\ \hline @@ -685,6 +686,10 @@ Bisher wurden alle verf \subsection{Simulation von Lamport- und Vektor-Zeitstempel} +\cite{Tanenbaum} ``\textit{F\"{u}r viele Zwecke ist es ausreichend, dass sich alle Maschinen \"{u}ber dieselbe Zeit einig sind. Es ist nicht erforderlich, dass diese Zeit auch mit der realen Zeit \"{u}bereinstimmt, wie sie jede Stunde im Radio angek\"{u}ndigt wird.... F\"{u}r eine bestimmte Klasse von Algorithmen ist nur die interne Konsistenz der Uhren wichtig}''. + +Uhren die eine solche Zeit angeben, sind auch als logische Uhren bekannt. Zwei davon werden anhand der Lamport- und Vektor-Zeitstempel wie folgt realisiert: + \begin{figure}[h] \centering \fbox{\includegraphics[width=10cm]{images/ss-protokoll-berkeley-lamport}} @@ -729,13 +734,10 @@ Wenn w Wie bereits beschrieben (s. Kap. 2.4.2.) gibt es in den Simulationseinstellungen die boolschen Variablen ``Lamportzeiten betreffen alle Ereignisse'' und ``Vektorzeiten betreffen alle Ereignisse'', die standardmig auf \textit{false} gesetzt sind. Mit \textit{true} werden alle Ereignisse, und nicht nur der Empfang oder das Versenden einer Nachricht, bercksichtigt. Fr eine weitere Betrachtung der Lamport- sowie Vektor-Zeitstempel siehe \cite{Vorlesung} oder \cite{Tanenbaum}. -\newpage \subsection{Simulation langsamer Verbindungen \small{\textit{(slow-connection.dat)}}} Mit dem Simulator lassen sich auch langsame Verbindungen zu einem bestimmten Prozess simulieren. Fr die Demonstration wird das Beispiel aus Kapitel 3.5. wieder aufgegriffen, wo das Protokoll zur internen Synchronisation (durch P1) mit der Christians-Methode (durch P3) parallel simuliert wurden. P2 stellt den Server beider Protokolle zur Verfgung. In diesem Szenario soll P3 eine schlechte Netzwerkverbindung besitzen, so dass Nachrichten von- und an P3 stets eine lngere bertragungszeit bentigen. -Die Ereignisse sind so wie bereits in Tabelle \ref{tb:InterneSync2Tasks}. dargestellt wurde programmiert. In den Simulationseinstellungen ist hier die Einstellung ``Mittelwerte der bertragungszeiten bilden'' aktiviert. In den Prozesseinstellungen von P3 wurde die ``Minimale bertragungszeit'' auf \textit{2000ms} und die ``Maximale bertragungszeit'' auf \textit{8000ms} gestellt. P1 und P2 behalten als Standardeinstellungen fr die minimale und maximale bertragungszeiten die Werte \textit{500ms} und \textit{2000ms}, die Simulationsdauer betr\"{a}gt nun \textit{20000ms}. - \begin{figure}[h] \centering \fbox{\includegraphics[width=10cm]{images/ss-protokoll-time-sync-2-long-transfer}} @@ -743,6 +745,8 @@ Die Ereignisse sind so wie bereits in Tabelle \ref{tb:InterneSync2Tasks}. darges \label{fig:TimeSync2LongTransferProto} \end{figure} +Die Ereignisse sind so wie bereits in Tabelle \ref{tb:InterneSync2Tasks}. dargestellt wurde programmiert. In den Simulationseinstellungen ist hier die Einstellung ``Mittelwerte der bertragungszeiten bilden'' aktiviert. In den Prozesseinstellungen von P3 wurde die ``Minimale bertragungszeit'' auf \textit{2000ms} und die ``Maximale bertragungszeit'' auf \textit{8000ms} gestellt. P1 und P2 behalten als Standardeinstellungen fr die minimale und maximale bertragungszeiten die Werte \textit{500ms} und \textit{2000ms}, die Simulationsdauer betr\"{a}gt nun \textit{20000ms}. + Als Folge (s. Abb. \ref{fig:TimeSync2LongTransferProto}.) bentigen Nachrichten, die von- und an P3 verschickt werden, fr eine bertragung immer mehr Zeit. Bevor P3 eine Antwort auf seine vorherige Anfrage bekommt, verschickt er eine erneute Anfrage. Da P3 die Serverantworten immer stets seiner letzten verschickten Anfrage zuordnet, berechnet er alle RTTs inkorrekt und seine lokale Zeit wird dadurch bei jedem Durchgang erneut falsch bestimmt. Die Berechnungsformeln der bertragungszeiten wurde bereits in Kapitel 2.4.3. bei den Prozesseinstellungen behandelt. Konkret bedeutet dies hier fr die bertragungszeiten alle Nachrichten von- und an P3 jeweils: \begin{equation*} diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index b6ae62f..773aee3 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -535,21 +535,20 @@ endobj /ProcSet [ /PDF ] >> endobj 200 0 obj << -/Length 2499 +/Length 2497 /Filter /FlateDecode >> stream -x[oF+(/6 Ab2Q2D)m{PCy(G[7kAttn̜YFeFIʌ c6ޫR'#﮺W*Ga()yoKϝCp•2ۻ-+c!?|Z]ˢZ^|?Oc0Uz_%qP46Y4|Jpk,qZ^lAr^,m^OfpʳXЌ QbL#cD42 Cqx5ҜT'ԤNcab},e,cf4[Ajܚ/E;p_=% fcAI'53&q99nU -A(5Ł"ĕdhb98A:@%SSy]ocf 5 -P 8v'#T[Mz"ULA3|2|j| `OOv?,9]=wTW03\8,0 <q$LOMJfsSpQS"L $;Lvy)b}{YzwJG@Tq -;깪\PGGuMms^52NG75yoYIǼ܍Cˈeh[oZhmߟgh/K-T[2aVV:I4sx -Z=*Om%-Ο_RX i?z~<:&g1IlL]UúPhpPC<cݞʱA둅 53s˱F!T[ ** +ce²yO%19KrŏKkݦ.}˻5 R98i$eYl8Ԍ;}|'Ē&5V:ē?O9w[oPV9Vj{LdёVKMsۗ$X#4|zeP` bF:Wժ8w/qK Bd4&4H8ͭ#Q: A4GMn -"usl5kB֏?l,"E/H8"u쟼@Ne,XQNY/V cT՝TE7N/P)}1Tʛ|fYw4 5d뾗jj'Z/TIyNcJ J 섚D萩7ΧcN)?~ 5ʤ|ج_tj7u þ,"Wa6Ay4o>:7@0E, 2^O/%@V, R3RJQOua~E~ڼ_rzKU[I9wT ou,e x>obr989j\}VsLAM2M' 5(1~Vsf'V8Zq ͑UNaQnܴ յy;%xl -W[G(nT<ۏ(]L -1ŹAI8i X<h<UJ솣 3_ -}Kז0IՃWM2q3'ٿQƂ*a NAOF#hD#O4N6իhg[DPCӯo9>I-"FX_%G3e+5tj~6r#rqA^#cDsoBQ -qÉ>x'ͺ*nϻOcQcDB dU{"|pHXt2)#OG RXlN="gq?n|O,hRm> -YgbV5"4_v?B>Oo_ba}.ÌzQID !{!FƵɢSa9^~Ot&)Us9L^&g B- h^32c3TdۭԌW RzM=B{vzZBSlP3s!27~}{طf~\Z ~#!ߦs%`\J婶{+tg xM箛ʺJ-~픉"6:vRqqN }ˆ1McaĬ^Y+95T)XQt0>͡NuhWۻ |t,¬84Y)I) RNs$tfr!( _F^Y BZ7` \A*d8s.b/RԄ*R' dD,chRm *"fZ-"QVRM] +ߴ+ѾBRޔUPw0" '\ԹhOBh_ +!S5oOf%?x:u 12Y&PulM+ hnOmm׾4VY ~rZb7˺ڮo +ܮ2~-xo6cDƔx4GҪ[ԇߟQxloKHF㬈cJKMʬ; vhhȩ~PT>fGO@a 2-ɛnyw`fM-x|4l[ƒWqX_ +KW*DWCA~I3yUs/Ԣ*9`yӱی{q{{m*QUn%->OWCGqA y(qg!MoH_Ra +" +5<WTEn%bb߭jaSl_wZn;^]y\Cv!v)G +HŇz1ڄ .8tR9(f)zh<'xRm <"j54GVzE +_8isӁ>#W}(\niaTjQh? tGj9cs1j'5qTx"TxRm e8UL膣 + s>F7:n.[&5V^Qe fNE,6םvg><<И_C^E5_"Z9?:o~HjI1FB,-޿8,;V{Smѐ#ѐSm  U<2F4P'mw>7pBYiq}|Hapѐ^t;Y aɤ<2H-b:׈,X"<|T~z 0:trdX~:6ywk\U? 3FE%SC(1HEצN1BxvDp_@CD&S2`&&' B.+h^ʩ=2c3T۝ԄW RԞ|#{,T[m~Z@SlP3q 2Nh65r&qn_'ȇr@cy'5S bz=yym;ugj=]wvU/7aҵ_mXL;{]z{Bdzݖ^{vp֬LM +fZh tN!F!KPXH&XhBtPjEtrendstream endobj 199 0 obj << /Type /Page @@ -569,7 +568,7 @@ endobj 204 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 593.9754 150.1131 602.4594] +/Rect [86.8628 593.8947 150.1131 602.4594] /Subtype /Link /A << /S /GoTo /D (section.1.1) >> >> endobj @@ -590,7 +589,7 @@ endobj 207 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 529.9479 176.483 538.7189] +/Rect [86.8628 530.0286 176.483 538.7189] /Subtype /Link /A << /S /GoTo /D (section.2.1) >> >> endobj @@ -752,15 +751,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 235 0 obj << -/Length 1307 +/Length 1306 /Filter /FlateDecode >> stream -x[oF)xR= s{̪6iu_ -pV3ː]GUTl=?? ?EX@j lowjVvo6~/X" -6ECx*WIϊ[zrNjMSiIE!% ְ!(ӮSX)q_C<(mL- -:2UFhBdU|;,4pCL84:g,TMF GY/%F`OQ9)V8EWWi^VIOIZSc~l\ݥաPHO0ɂ>ȾN͌Rͭމ2l_~#iNuu4>?D/"2 ~&Z*$Bw*1b Z൪,7mK<^ _v\>qj5b__!KІ5_VZH~px(pW9~Ӵwš9 ow/\ن\S47+Bq_<&5)d0rS-ɘmN+}=WCjrIIE=DB1/BQK"VV!֗ﮧ!A1jڕMT E4[]^V͢zVӀ[p~=ާ1iya?)x$3Xȟ2 Ixqh- y)aʏ5<-`鐶ӫ+/K-FTnU %%T -_$,|p`0^q~F=G=c##ly! !a^~{ɨh/OeM@0&vYLhUkW&Ojzär9oj@":}hR4j̉oU.RqxPwCr~|".7D֭j!N7-g(XN0i'e [ӪL oZ;Nph/`gD2Ddh!^77g`g) MX8=Qg[0Ts4zޛMZ / endstream +xYn6}WQj=ftntܗAI[,As)ʌ"h +6-" d"y 5![mIZڂ. BD>"n>.ΪqEy|<-Wn~t~8H ATX` AvBͯB<(6&HJ0mӤI΢LZ,'y&1S$#1 \-j!N0i(\K$eSN-Qk‘fKI6!*'B**2)Wk*Ux]Z +YY럅53 J,HDm1py+ܷ_Oֿ~Epx*=cZ,-ٯ+DO9EJ18;V LC$ga-Ú,5$S”_Qz| +,t]Rz&OiybDlKE-[JHjǃ#F/ck[L׳`.zl@ŔHlL?W?2Xn$8k +1mbŤ-j蕃4"F-djAR^}Jo&7TĒqhQ qQB&Fڔ:'Q/ŽD?z%JeepIgqԳU׶L􍩷YQФjXܢYutEtzhR4lBԢL +@)8|(Ӑܼ13XEE-ƢY:# +T)#s eYr(›Ο*)h>NjfXc# L-Ʀ,lzP5쉏b͙I$f`氅48&gk/endstream endobj 234 0 obj << /Type /Page @@ -869,26 +870,21 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 252 0 obj << -/Length 2301 -/Filter /FlateDecode ->> -stream -x[۸+h?+^%>n.[h`gc+Y^Xv__R$egݙ sӗsD,W_8+bY!8^N}W0&P/&>]  1) -\"R_~K448$ -DAYvǏf{iwݗu7Km{~5J--?X˴;#Zgxveg/Pl%b@H -Vjcr%(Yi=pW+/, _kRm4R"2aɑ,nӾ|W[o&稔=H%jyU UF)p-Lx C;hp:$_ q,75H%$ % -+P[ -ZJxLU* 0NH{I*yW"qi}]oj[EuUkV,_wni Y!\qO(P<8z8ENbJ$L ]zjE -sAä́g!\T,eY]y٫7UVfx7#[ᅬ΁]OV'dwu[2Z]Ǡfb5W`fCT;3ݶ{@Gi -&:ZiΡU|DJ22Wjk_X5uc߭ͥM;k޺_b ]U"סz.JxNh(d3F9+MW02eBWnq.jݽ*R/׶rWu׮ɂu.dA&D`bĤF= L@8@:+Gr2 - ϕB=6/oji}\7?1-q"] -륓JxNEU=Q/dBjK YC&/PS 2ەVzm_j[:aݩwmUZB$i(T+J(q`Bmq(!sq*N@Y>eAn&5~;wz9>ևCL#%]XI).fZAQEd1I8`<R3mThc&P!%G(P=>4[O|BV-TtBI|TugqIYݹ -B\8T -%…Kߟz>Bj뉈xVg`KK3([l 5KpeQf+aYuR :%U0W>4[SY& d$ydRy;1[ó̑/Y&MP089 nam8ug:9ℊ̷>qJ%t~+P[OB|Ψ NJk֯9AS%&3,{Cg9r%u`=T4RBV~S:!*EnAU!V0'J8x߫ J*P[OAhuD"NSU TYPU2f4f:J(DQJ%!TPQ&yL9 -xg -Z$[Q _= .\ٛO\Ν"#'&' -˅@D+6bG.K Z\\$ d'9^[̑0ތPӓ{9DJu-qBc"yg1Zbo2,K]}د;қa8T"ݘvR o 4Z(P<(z(# hu\ -})Q3eL+pJ ʟG&P[Of|!!w#d:!C uWoV/͹~M24:V~" -%CLjM'ǻKpș/%z ۡj,$sR=endstream +/Length 2300 +/Filter /FlateDecode +>> +stream +x[۸+h?+^%>n.[h`gc+Y^Xv__R$egݙ IJtᐇ rgC,<+$Ugë<۩gy c1. +ejxRJ.Ĥ3*p8c\KODdivipH~ŏ?/rEUoc{~5J--?X˴;#Zg^eJ:!2+i JPxU{:-W4_|Yפ(۪inDe ;H%Ò#Yܸ}o?posTJ^<*QrB*yAF䏀K^< ~8K/MS݆Er8e^L|ixS|NqGGy^y%WV<ʪqaX'$C}輫z4jכVsQsڟ8 -͂!B8|BT"8K6ʘ'P[g: *l:!æ+o^_i LxI%\ؕ=Se^/2Bm=e^xi n+[FKL +"lHJxGrc^(QZD{899R ̕"j%V׺wssj35XdG5 U"סz.JxNh(d3F9+MW025Dq K]MzH;;?UU^n֛\:kdL.dA&D`bĤF= L@8QAs,r$Q/!\)MgJa;4vuwHJ.2ߥ^:DPTP5A.3ta%@bކcJE8'yjK1Y TatBAy[>Kw=4z|i 3[RJ|TugqIYݹ +B\8THdBƥ﫞(P=lz";RL% d[`vv%8@X(3ߕ:CY*+pCmpV),eu|d?2I<Ta-s \ +f3ֿ{:P +қ-Qݺ=SbfZ"wfT+ZB}_T  +1ֿ>M,KqvMUoAǤO~ŽI%Br8?ш !j둋Vg !28Iז/sяh;M +>=YJ7 JJTײ')1ȯ,‘z;9,z(Q!bq;$Շs(9CETQTBdێV*-\cT2 +%?J0~#hu\ -})Q3eL+pJ ʟG&P[Of!!w#d:!C uWoV/͹~hMeitR 7TZIƎ>;(TQ06T_j^P W(R?X :RN2'/xn M=endstream endobj 251 0 obj << /Type /Page @@ -922,7 +918,7 @@ endobj 258 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [86.8628 547.5398 155.8157 556.0238] +/Rect [86.8628 547.4591 155.8157 556.0238] /Subtype /Link /A << /S /GoTo /D (figure.2.2) >> >> endobj @@ -1091,20 +1087,20 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 309 0 obj << -/Length 1565 +/Length 1564 /Filter /FlateDecode >> stream -xMo6:Xm $F-zmUuWrQח%-%#JI>xmfH /)86"Sd78s^I]?Hid -dl7[7EyxR[7jՏ/ >-6Xl>HʌW/$]|ܣ¸rˡ:XNDb"mwJn˫*yc"R)cY7yUkOx\;tq$(X)ӈQCѺHT_gSfܟEdl֚l -&z&(dhz0^I:I$H0c&c m}J]7)$H jyKF{mif \'x8QMAFŕW-MAIJ\p[kfIAk -9w/xӏ,-\N1AT4 oZXn.E|'@ &:B-PC^6@fEjjexMYvnfze/ZX*q)PZUrM(NZ^! 9lv]mLF -ݩ[zn,P֚+ -l,3޵Dl, , if['l(`ck-4M6uM_"\ dˎ>lYjgEn8{VU~grk$Xr#(sK 9T ˢ\"e /s?E13pck-> p - "OZ;2ͱL5ypfH: -q8FJt4ZH# y]Hx׹xu츝v(Nb?6cQu^o/CB *[I@|Bɋlt3 ~xy<ͺz[Rb@vY̜E c(˘74i0ᱵ&:uU%/x`eZ3}m. _gd&\u<nު܍핟CTYN &ދ f%ֲދa4c dyu,U,?EJ1: ٵT q/x? ?mx^t \cd0|k:*ӔnC&G57 - i^e d9`rdII\U%mM ܋:׋& @Ctezs؜,9{݈"( C`:s)ZKjʹD\H)71*; 33իI)06/>endstream +xMo6:Xm $F-zmUuWrQח%-%#JI>z53<͐"v?$SqlD s_n/pv箽>I]?Hid +dl7[7EyxR[>?E_ HKIg ahs_$eƫ.뿾 +iarAJ{P,S f1 ;%7vG޼e_o)ޔv걬קc}orN8eazBiĨh]R*!G=ÔϢPp2B6ckM6M +y=J2W=PNO/$Οqwڢj~{  15 +3 LNt@'驥L&3o%{[EԳnHn< ]p I`=FtByX[[򺪒bWX#yby,8{_56vW<ߧt> >> endobj @@ -1245,9 +1241,9 @@ endobj /Filter /FlateDecode >> stream -x[o6)h3;vm솠 e8Bͧ)2eGN%M1/<_x9bHIGg"Q3OIg8Yk?VùD\He^ \w1-Th$8VWT& H'a\\5H5-u^>]:'x<ܔ6◳]2-"4A ј$j=ZY2D N$;ЉFܺhUȚt.JSK)MΩҳuʌ*/2l_S*fyq^mRs5n}ykޙGaL!J1M| թF2gّWkTA^~>Y# [T#Rr$ќ12& -eTB)uF@;Q!m!|k)z U}jWpyMmGM, ЩF\1,֙zlNx3$pVo;2 z$*CB 3D h`̋r3B%~ON51 S?'# {ؚ;q`^R6=IE2X'fr3m(v6b+"x j$XP<*ą߷S :JnmkHxo7DE˛t7KQhG=oU#7Bo ??yؚuI?)w0B_ixכ:/7!QI(eOX %I Q wj5NoNAefȠZ"4s%HʇLIęV8s/ OSsՐs%9VZ\| : 9eeJȑb[,׻K!+V48I~Oeʔ"M;I, -fщZi,a{ bm^Hq@u=䠌ȣQZMc| :F&46"#L%7bxj&^!QF(qS8iZM:8$jdD-qYI84} 9ZՈ]&͠v(yE2[.n͚5 f#?lU#:vӯc(Vs_J#hO_#FK(ĩl$^;_Wqendstream +x]o6+ti3oR6Ŗ]uB6~$ʔ)9U4 y! 6?$QqDe\,op2~>#s<;nMcZH9rHp.ُLKfu4a\\5H5-u^>]:'x<ܔ6◳]2-"4A ј$jמ,K"'lDLJn]NdMPDP:^ةޥ&OTً:eTwE^b/Wݏ)M<96woyҾj.X,owQbSRLByukYvygGHgB;Ո尵%AI4g aLBUPd +qN@H[ڿd-* aU߯.ⷩ 7-C %~A:Ո+%:}_ /Ƙr`Jؚ +Q&^daReHHa&a yQnwf7_15)ЩF"&"axpzD`{y[eq`^R6=IE2X'fr3m(vj.fP}`<ȢGh1l&OɃzr\奢p iQwXE3گۣY/4"z8Պغ^~tȅ~LzЖMo^.F4#:Qí;JuSZ\Cy+6q~1T'̖ہsf ȅ([ՈǮs`r?2q*!oƎ{,qendstream endobj 346 0 obj << /Type /Page @@ -1401,17 +1397,11 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 390 0 obj << -/Length 1710 +/Length 69 /Filter /FlateDecode >> stream -xڍnFБ,7'q61Dns5T;] gf= EP$*X@{Z!R_$i3@^Fid~. /9țF4< TÁvCIrN֮-I3\7|Htxz`4LUۛ i}~ h>bɣ"$Jh8?Oendstream +x3T0BCs=KSsKc P!9@!(eUcbbgbjf`ՅKXoendstream endobj 389 0 obj << /Type /Page @@ -1419,29 +1409,52 @@ endobj /Resources 388 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 232 0 R -/Annots [ 392 0 R ] >> endobj -392 0 obj << +391 0 obj << +/D [389 0 R /XYZ 74.4095 793.4011 null] +>> endobj +388 0 obj << +/ProcSet [ /PDF ] +>> endobj +394 0 obj << +/Length 1710 +/Filter /FlateDecode +>> +stream +xڍnFБ,7'q61Dns5d;] gf= EP$*X@{Z!R_$i3H^ C/Wqzn=CǴ t%{ڗ9+HƁ';UZ2[I':&4'+xTM/{ gTe4>`K "ʸݿz2DD~xזߪ4!iAC,DKљayS[U ƪifo9C3ؿCqz5DCdލ:ueڔÞ]1tLQM F"pA|7~Ы)(Tf`ypL?-kZB@y4#*ZFٖ\;,2B0~sOE±zщ_B<ɢ3(ϭUrf@~RjJ_K g< ( +sy22=!IM +$5"]nXe70c" TNٍ}uTrTOɦ^q?@}ơ#,O~Z2Dsa1蜆I-&scO,b; T{ M++Zf3T5 ΍!%r0. F '{"PYMɮۧK8̠3YldSl,ykӴ>,=G_Dp*ͪj#2Uݟ%=V̘~[ &p3-Z(Av_vIV`ڦa2pg^˞N|\u)g˷1z ;* t.v9JSw.~$Ѝ]ŐFV/ֈcߕ8w_xVٙ ..X$zc:j~7hppfmf4f_6 7||ھQaǹYɌl!.2gӌЍhM1G-%>F5e.R3J}R~ j\v_wJPedUva]f;//C[ Z0]'tlTl$d[Z(݊AlnN{SUXϸ[ jbƌT] ȲV\#|Z|k|iq"8bO;zip/pBkZGE +!ޖ1i7$Lܲ jr-h=YKkCIk_ r\3 P葃?TB rdBu0۷}fm[9K|YB aɣ"$JG炋@~'endstream +endobj +393 0 obj << +/Type /Page +/Contents 394 0 R +/Resources 392 0 R +/MediaBox [0 0 595.2757 841.8898] +/Parent 397 0 R +/Annots [ 396 0 R ] +>> endobj +396 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [75.9058 405.6345 102.2418 414.1993] /Subtype /Link /A << /S /GoTo /D (cite.Tanenbaum) >> >> endobj -391 0 obj << -/D [389 0 R /XYZ 74.4095 793.4011 null] +395 0 obj << +/D [393 0 R /XYZ 74.4095 793.4011 null] >> endobj 6 0 obj << -/D [389 0 R /XYZ 74.4095 771.7323 null] +/D [393 0 R /XYZ 74.4095 771.7323 null] >> endobj 10 0 obj << -/D [389 0 R /XYZ 74.4095 566.0376 null] +/D [393 0 R /XYZ 74.4095 566.0376 null] >> endobj -388 0 obj << +392 0 obj << /Font << /F26 170 0 R /F28 173 0 R /F63 220 0 R >> /ProcSet [ /PDF /Text ] >> endobj -397 0 obj << +402 0 obj << /Length 1767 /Filter /FlateDecode >> @@ -1451,32 +1464,32 @@ xڭXKs yrC ]~[ڇ`\W>Yր73ᜄ|x#*cQ@kɄV>x0S` ὠ[3.X7|1Ic8tR̎Y^XwciT>U8Rd]|4n[Q2  u(N@.'⛥sw0M}kwcn%@x VI Yz YӘ=5݅ú,_PyP8E<+%wRw&׫m[iv OܰtoW2@ڌ\m[qq8Cv;_,EI1qT"}p0@ g6~z00ae.>7?lool?!:2S\o1%p"mibޜ:n?80!8)]iۻ1t8n~9O#u!Z"=mC>6Q j@ؙ؛vgΨM 1f~NmsXܭ@ (Ӷ}ji :`*8HOln< ` $Lõ<*Z|gzp.˫Վ#&#xՉq( #ҳ=ί.J0:ίp߃ +pȠELKWf1 -La@K㡥q))z\p}z־j2 3o#H$&4*rĚ࠵0b Gee/hvWl\qlieGb[:&(/ ]Ӆ,I6wJ;}fi@Cx_'12 Zk6)0XMz MZ<=A; xPWL[:̢w' ^C}OsK:_5{endstream +La@K㡥q))z\p}z־j2 3o#H$&4*rĚ࠵0b Gee/hvWl\qlieGb[:&(/ ]Ӆ,I6wJ;}fi@Cx_'12 Zk6)0XMz MZ<=A; xPWL[:̢w' ^C}OsK>5|endstream endobj -396 0 obj << +401 0 obj << /Type /Page -/Contents 397 0 R -/Resources 395 0 R +/Contents 402 0 R +/Resources 400 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 403 0 R -/Annots [ 400 0 R ] +/Parent 397 0 R +/Annots [ 405 0 R ] >> endobj -394 0 obj << +399 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 404 0 R +/PTEX.InfoDict 408 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 405 0 R ->>/Font << /R8 406 0 R >> +/R7 409 0 R +>>/Font << /R8 410 0 R >> >> -/Length 407 0 R +/Length 411 0 R /Filter /FlateDecode >> stream @@ -1484,60 +1497,60 @@ x ªcGTl/.]/=荧Age]i1OexʠpqQ<=:KeCljeXlu aVH;8O-KiD-w2ǃkC8p ]Z뱵@Աb7i {QB{7bw"C|ܥ|<[@_ۼO.~f-g/8撁4<냳( |`ԗtj>RvO%oXBǼ۟u^s |Q?۝ITL0 /?DZendstream endobj -404 0 obj +408 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080814014212Z00'00') -/ModDate (D:20080814014212Z00'00') +/CreationDate (D:20080814071447Z00'00') +/ModDate (D:20080814071447Z00'00') >> endobj -405 0 obj +409 0 obj << /Type /ExtGState /OPM 1 >> endobj -406 0 obj +410 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -407 0 obj +411 0 obj 460 endobj -400 0 obj << +405 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [438.6031 439.2596 453.0587 449.7342] /Subtype /Link /A << /S /GoTo /D (figure.1.1) >> >> endobj -398 0 obj << -/D [396 0 R /XYZ 74.4095 793.4011 null] +403 0 obj << +/D [401 0 R /XYZ 74.4095 793.4011 null] >> endobj 14 0 obj << -/D [396 0 R /XYZ 74.4095 771.7323 null] +/D [401 0 R /XYZ 74.4095 771.7323 null] >> endobj -399 0 obj << -/D [396 0 R /XYZ 74.4095 650.5433 null] +404 0 obj << +/D [401 0 R /XYZ 74.4095 650.5433 null] >> endobj 281 0 obj << -/D [396 0 R /XYZ 288.3666 509.76 null] +/D [401 0 R /XYZ 288.3666 509.76 null] >> endobj -401 0 obj << -/D [396 0 R /XYZ 74.4095 371.8879 null] +406 0 obj << +/D [401 0 R /XYZ 74.4095 371.8879 null] >> endobj -402 0 obj << -/D [396 0 R /XYZ 74.4095 220.1196 null] +407 0 obj << +/D [401 0 R /XYZ 74.4095 220.1196 null] >> endobj -395 0 obj << +400 0 obj << /Font << /F63 220 0 R /F26 170 0 R /F28 173 0 R >> -/XObject << /Im2 394 0 R >> +/XObject << /Im2 399 0 R >> /ProcSet [ /PDF /Text ] >> endobj -411 0 obj << +415 0 obj << /Length 1282 /Filter /FlateDecode >> @@ -1545,117 +1558,114 @@ stream xڍWo6_G ~ۺ&]bXlAXL'wGdQ"@t<~IZDD,奎R!Dt[h {Ư JY_f**Xeit%:g\7X4RE,XԜ5v['iYeǐiRR eE> +e6?D,son`ܩG]9 k"ps`ieוK,bc9㾩:]uHiBpVUe {ᵅYX {xzp 1|W=խCo},ۑ3cۻt4[3YXƙy6KgPo +\miW_2&/%F,S QZendstream +DFoʗ0puښKcgPUKO&PiWR@`w,q*Acq6=-5SGl))Ue {ᵅYX {xzp 1|W=խCo},ۑ3cۻt4[3YXƙy6KgPo +\miW_2&/%F,_Zendstream endobj -410 0 obj << +414 0 obj << /Type /Page -/Contents 411 0 R -/Resources 409 0 R +/Contents 415 0 R +/Resources 413 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 403 0 R +/Parent 397 0 R >> endobj -408 0 obj << +412 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 414 0 R +/PTEX.InfoDict 418 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 415 0 R ->>/Font << /R8 416 0 R >> +/R7 419 0 R +>>/Font << /R8 420 0 R >> >> -/Length 417 0 R +/Length 421 0 R /Filter /FlateDecode >> stream xN0 y=4# u*Bˈ}4ZgF=4r~/T =ԋ_VHzQ)YocDJx)@/R]9$rAHQH/5a'i\$hU?4DZsYV;º*[>|PS/@,4d@ӋvpѼFWեu;E"-xcv3!_üŬ5,}Fj.bVW9<[mEUqomuPemb\> endobj -415 0 obj +419 0 obj << /Type /ExtGState /OPM 1 >> endobj -416 0 obj +420 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -417 0 obj +421 0 obj 548 endobj -412 0 obj << -/D [410 0 R /XYZ 74.4095 793.4011 null] +416 0 obj << +/D [414 0 R /XYZ 74.4095 793.4011 null] >> endobj -413 0 obj << -/D [410 0 R /XYZ 74.4095 748.896 null] +417 0 obj << +/D [414 0 R /XYZ 74.4095 748.896 null] >> endobj 282 0 obj << -/D [410 0 R /XYZ 281.7271 228.6517 null] +/D [414 0 R /XYZ 281.7271 228.6517 null] >> endobj -409 0 obj << +413 0 obj << /Font << /F63 220 0 R /F26 170 0 R /F28 173 0 R >> -/XObject << /Im3 408 0 R >> +/XObject << /Im3 412 0 R >> /ProcSet [ /PDF /Text ] >> endobj -420 0 obj << -/Length 1701 +424 0 obj << +/Length 1702 /Filter /FlateDecode >> stream -xڍˎ6Q Eyv7m(=Ab6H}g8D[r6X`5y_H#<^ ;(aZڕ#^ԏ/L"cyDׅSF/ŹT\4 B\ŜϕU\ ,eI"~M(JX'b%B$YS蟆,"8gi -sRWmn5SfB!ڣ"ٜh8$j2 -Veȃ. Qm.[TC 88 4kF{]o(/E8Jj;& 4GUgh?P ‡Bkt`,)@͈@ pliUz({o0(8]`jm*F#1R5v_mkEm1\&҇MX5p]h4洺)Wlڮohl}'CdxUg :Z_zG137 ν>t%l.ʒޘxA"AfK݌et1,s#j*:*R H>hOWZ"!Y97;"x ]AM!P -_)<hu6>dJ"3DYS/hI(1bԝx'P -pLfͧ_L2Яla2laU6XP@51.j,faV`I yl~'.x՘k Wn*̤Љ$b<߯DEX^ޟFXVWJ`UU폎!YF b F{FjnLEk]]lGY{K_Z&!%VL__ڳTkť7Iwˣ;KFl,ڝ"dbEH]I ˉ ^~!a!QE6;F 7A)*;b:OucRoo Emxಅ4"g l -f.cfgxKps f0.X&|S1"ljVMϟ3{ -Ys"4%]qFFaN`״18`՚8wÆ{+UiŤRg 0D"¥/2 AP`ڝ3N <)g#@`GS<[4Š8NQ43qAx݉ afWng=k]aipJh !-6Y,M#%8l=>vqjTnq:ɣ8 5NT -آ\u DU4JYM<˚TE+1g&{?4s|-k?y)rnʴoc??SP1.endstream +xڍˎ6Q EJtv7m(=A2c6H}g8Ö X yq^t.E<I&/ +vԏ/TrLhq¸eo9?F˕H dUyllMb˧w/Xp*%~M(R,UX)&c%RDB}g,I)k}@$ #*Ή 3I˕Q!2onF\Aք銀?m4ns88 4kD{](/Et\ݕf;Fڒ 6(!>X DB&iP31PZ:*Fcݏho0(8]`Go`IC8glױ+2aTM^y5p]h0괺¦S.M[Ѫ`a͓yW7ih}iV 0cn@>[{hzJv]ƓԺܸxA"^fM݌et14sGꩢ4*:*BH>Xٝ5DB!T ,\rVcڥf_9UJA9D+ˮMm#Cv(2ϫʘ~ASa̢LF8HSs:%@ٻ*1o1Iie ըRq qA PC1 M+]:ɳgwו yym"pL@P'A5~u6.ATāklo֩ zbeB-&[Cmozcޕ K[#\1ko~i _K| )b +UŬ93d)n&,<,Ijwrn zM!;JR ]NzhkCX q΋ac: pR+hH+[iScLBA^f.k(@(Dߑ]E)Bw9օmy@_l_%24z [Lի9ݽcbYs"5,ASfP(F*[D*eJ,xQ2*дNyZ!%d%V:S%v 2rFBi 1 +M]^X˒z2@ҧk\`cm.q5):ur.B~Q+K\W*bms#$a߱~D֬'A48{%Q%3"5hV${1ޠx“2^6g][!}h"M@& FtF[Lyh vdbye4>q)na -b k(0 ܏`܅0r+U50T8A 4ѐ曎Y{,\#%0l=>vqq2ɣ8 uNT +ؼ\u DUtJyM<ߋy+1g&{?ts|-MF)2To7OZO$S1/endstream endobj -419 0 obj << +423 0 obj << /Type /Page -/Contents 420 0 R -/Resources 418 0 R +/Contents 424 0 R +/Resources 422 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 403 0 R -/Annots [ 424 0 R ] +/Parent 397 0 R +/Annots [ 428 0 R ] >> endobj -424 0 obj << +428 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [125.8506 465.5316 140.3062 476.1138] /Subtype /Link /A << /S /GoTo /D (figure.1.2) >> >> endobj -421 0 obj << -/D [419 0 R /XYZ 74.4095 793.4011 null] +425 0 obj << +/D [423 0 R /XYZ 74.4095 793.4011 null] >> endobj -422 0 obj << -/D [419 0 R /XYZ 74.4095 750.7482 null] +426 0 obj << +/D [423 0 R /XYZ 74.4095 750.7482 null] >> endobj -423 0 obj << -/D [419 0 R /XYZ 74.4095 608.3473 null] +427 0 obj << +/D [423 0 R /XYZ 74.4095 608.3473 null] >> endobj -418 0 obj << +422 0 obj << /Font << /F63 220 0 R /F26 170 0 R /F28 173 0 R >> /ProcSet [ /PDF /Text ] >> endobj -428 0 obj << +432 0 obj << /Length 1134 /Filter /FlateDecode >> @@ -1664,17 +1674,17 @@ xڭVIo 0`{IG(`AH_d %B*؜f82-<eh$8u~:2qGq0H*0-lfT5E闻`ͤri=4_ۤ(0' C``sC$ o/F\j="C/B(˲~̣M0á8h-T"!!n%FhOm N ެ3l0"dbP QҟTSuad"WȌ!K n:2Z(1^{eSwJg<8m2b .E0&XJH:(hӶf R P:H] Sݻ/XoN$yQV}}T6-mY9[.ڿ-;ģ:؅UaaaInt99^K$hNY Q i2RUF l4 '^zäm0Eie87`0%ǺʍmgŹ}L ]bvv1ʑ2PJTp;GgDv(xbDiwAƄqC:2TQOxmݕ6098m</[?_=AqJѵHm/?M: ^FwN59 `$Pf̻@D!/l#vQxa7PtWU~j8-kQm6w˦*!D]Luu8"l |)TPhGᇶdK';$.Pn55b>{ԏ.|>@`~P6aXŘA4;}d548YۭuZmWu?ѳp}U0>NCA -4}a̸}k9L3`Qsa(&8Gak/RlUx'GbMª}rw6u~7@k~zIyRAZ,_1WsI|e>Hߙ=ʅȹbA᭕ ~C?.âendstream +4}a̸}k9L3`Qsa(&8Gak/RlUx'GbMª}rw6u~7@k~zIyRAZ,_1WsI|e>Hߙ=ʅbA᭕ ~C?cãendstream endobj -427 0 obj << +431 0 obj << /Type /Page -/Contents 428 0 R -/Resources 426 0 R +/Contents 432 0 R +/Resources 430 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 403 0 R -/Annots [ 430 0 R 431 0 R ] +/Parent 397 0 R +/Annots [ 434 0 R 435 0 R ] >> endobj -425 0 obj << +429 0 obj << /Type /XObject /Subtype /Image /Width 1024 @@ -1696,38 +1706,38 @@ pz t ?y#rϲP{@Z N>:?}?o2k#9uuѣGkLlĝefqSSMp\8G<'G#s_dS!tN杫5_?|BNwW=z4Fٯ x;O[4^qo>lO3Ʃc&*q[(WY/5886qcߓͺ򝏙'O;ί6lnL++*ZZ]zȑ#]>@hKvI+H8]ˈ#sNBNn|Ny: jꚛ<(\E(>(=X8$5WQz8 X:ԾpSki>Xcձȫ+Ty`)sq7i[#~=3ϘӪSϬӊC(X޽{k`A; 0eWte|A9N\ڣg;k_`Aj5.khKG ZQN#M~~ Rs7?_hi>&? ҔpύT5ue4?R8yeSNo9?w:7+d2L&4[AC{s_?@@{~@?@@?_?@??@@?_?@??@?@??@??@?@?@@?@?@?@?@@?_?@@{~@?@@?_?@??@@?_?@??@?@??@??@?@?@@?@?@?@?@@?_?@@{~@?@@?_?@??@@?_?@??@?@??@??@?@?@@?@?@?@?@@?_?@@{~@?@@?_?@??@@?_?@??@?@??@??@?@?