summaryrefslogtreecommitdiffstats
path: root/ausarbeitung
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-20 12:42:23 +0100
committerPatrick Hornecker2010-02-20 12:42:23 +0100
commit5bbe2ca10a09db4c444ce98f4ddea501e7c9be22 (patch)
tree90419438bf2e47a6edc63062e08af0a1f98a7629 /ausarbeitung
parentfew bugs fixed, redrawing of bubbels changed (diff)
downloadfriendfinder-5bbe2ca10a09db4c444ce98f4ddea501e7c9be22.tar.gz
friendfinder-5bbe2ca10a09db4c444ce98f4ddea501e7c9be22.tar.xz
friendfinder-5bbe2ca10a09db4c444ce98f4ddea501e7c9be22.zip
few code work and tex source
Diffstat (limited to 'ausarbeitung')
-rw-r--r--ausarbeitung/Anhang.tex35
-rw-r--r--ausarbeitung/Anhang.tex~50
-rw-r--r--ausarbeitung/Fazit.tex13
-rw-r--r--ausarbeitung/Fazit.tex~13
-rw-r--r--ausarbeitung/Friend_Finder.aux9
-rw-r--r--ausarbeitung/Friend_Finder.tex73
-rw-r--r--ausarbeitung/Friend_Finder.tex~73
-rw-r--r--ausarbeitung/Tutorial.aux2
-rw-r--r--ausarbeitung/Tutorial.tex41
-rw-r--r--ausarbeitung/Tutorial.tex~41
-rw-r--r--ausarbeitung/horneck@fawp10.informatik.uni-freiburg.debin0 -> 1467519 bytes
-rw-r--r--ausarbeitung/literature.bib8
-rw-r--r--ausarbeitung/literature.bib~10
-rw-r--r--ausarbeitung/maindoc.aux5
-rw-r--r--ausarbeitung/maindoc.bbl10
-rw-r--r--ausarbeitung/maindoc.blg62
-rw-r--r--ausarbeitung/maindoc.log228
-rw-r--r--ausarbeitung/maindoc.pdfbin1467630 -> 1489036 bytes
-rw-r--r--ausarbeitung/maindoc.toc4
19 files changed, 335 insertions, 342 deletions
diff --git a/ausarbeitung/Anhang.tex b/ausarbeitung/Anhang.tex
index 5ad1988..07efc57 100644
--- a/ausarbeitung/Anhang.tex
+++ b/ausarbeitung/Anhang.tex
@@ -41,11 +41,14 @@ export MINGW32CE_PATH=/opt/mingw32ce
export WINCE_PATH=$HOME/workspace/wince
export PATH=$CEGCC_PATH/bin:$MINGW32CE_PATH/bin:$PATH
-export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/include
- -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/include
+export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/ \
+ include
+ -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/ \
+ include
-I$WINCE_PATH/freetype-2.3.7-dev/include
-I$WINCE_PATH/libpng-1.2.33-dev/include/libpng12
- -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/include/"
+ -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/ \
+ include/"
export LDFLAGS="-L$WINCE_PATH/lib -L$WINCE_PATH/zlib-1.2.3-dev/lib
-L$WINCE_PATH/libjpeg-6b-dev/lib
-L$WINCE_PATH/win_iconv-dev/include -L$WINCE_PATH/freetype-2.3.7-dev/lib
@@ -208,7 +211,8 @@ Nachdem dies durchgeführt wurde kann nun \textit{Evas} heruntergeladen werden.
Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen werden.
\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+ --disable-async-events
\end{verbatim}
Als nächster Schritt muss nun das Programm kompiliert werden.
@@ -263,7 +267,8 @@ Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header
#define PROCESS_SET_INFORMATION 0x0200
#define PROCESS_QUERY_INFORMATION 0x0400
+#define PROCESS_SUSPEND_RESUME 0x0800
- #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xfff)
+ #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED| \
+ SYNCHRONIZE|0xfff)
#define THREAD_TERMINATE 0x0001
\end{verbatim}
@@ -310,7 +315,8 @@ svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+ --with-edje-cc=$WINCE_PATH/bin/edje_cc
\end{verbatim}
Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, muss man im in der Datei
@@ -353,7 +359,7 @@ Mobile Gerät kopiert und entpackt werden.
Archive für \textit{Eet}:
\begin{itemize}
\item zlib-1.2.3-bin.tar.bz2:
-\newline \url{http://sourceforge.net/projects/cegcc/files/ported %20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
\item zlib-1.2.3-dev.tar.bz2:
\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
\item libjpeg-6b-bin.tar.bz2:
@@ -481,11 +487,16 @@ software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
arm-mingw32ce-strip efl/evas/modules/engines/\
software_generic/mingw32ce-arm/engine_software_generic.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/eet/\
+mingw32ce-arm/loader_eet.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/\
+mingw32ce-arm/loader_jpeg.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/\
+mingw32ce-arm/loader_pmaps.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/png/\
+mingw32ce-arm/loader_png.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/xpm/\
+mingw32ce-arm/loader_xpm.dll
arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
diff --git a/ausarbeitung/Anhang.tex~ b/ausarbeitung/Anhang.tex~
index 20c0236..f1e709d 100644
--- a/ausarbeitung/Anhang.tex~
+++ b/ausarbeitung/Anhang.tex~
@@ -41,11 +41,14 @@ export MINGW32CE_PATH=/opt/mingw32ce
export WINCE_PATH=$HOME/workspace/wince
export PATH=$CEGCC_PATH/bin:$MINGW32CE_PATH/bin:$PATH
-export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/include
- -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/include
+export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.2.3-dev/ \
+ include
+ -I$WINCE_PATH/libjpeg-6b-dev/include -I$WINCE_PATH/win_iconv-dev/ \
+ include
-I$WINCE_PATH/freetype-2.3.7-dev/include
-I$WINCE_PATH/libpng-1.2.33-dev/include/libpng12
- -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/include/"
+ -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mingw32ce/ \
+ include/"
export LDFLAGS="-L$WINCE_PATH/lib -L$WINCE_PATH/zlib-1.2.3-dev/lib
-L$WINCE_PATH/libjpeg-6b-dev/lib
-L$WINCE_PATH/win_iconv-dev/include -L$WINCE_PATH/freetype-2.3.7-dev/lib
@@ -208,7 +211,8 @@ Nachdem dies durchgeführt wurde kann nun \textit{Evas} heruntergeladen werden.
Nun muss auch hier, wie bei allen anderen Programmen das ''autogen.sh``-Skript aufgerufen werden.
\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --disable-async-events
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+ --disable-async-events
\end{verbatim}
Als nächster Schritt muss nun das Programm kompiliert werden.
@@ -263,7 +267,8 @@ Um \textit{Ecore} zu erstellen muss zu erst eine Änderung im ``winnt.h''-Header
#define PROCESS_SET_INFORMATION 0x0200
#define PROCESS_QUERY_INFORMATION 0x0400
+#define PROCESS_SUSPEND_RESUME 0x0800
- #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xfff)
+ #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED| \
+ SYNCHRONIZE|0xfff)
#define THREAD_TERMINATE 0x0001
\end{verbatim}
@@ -310,7 +315,8 @@ svn co http://svn.enlightenment.org/svn/e/trunk/TMP/st/elementary
Nun muss auch wieder das ``autogen.sh'' Skript heruntergeladen werden.
\begin{verbatim}
- ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --with-edje-cc=$WINCE_PATH/bin/edje_cc
+ ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce
+ --with-edje-cc=$WINCE_PATH/bin/edje_cc
\end{verbatim}
Um zwei Fehlern vorzubeugen, welche beim Erstellen der Test-Files von \textit{elementary} auftreten, muss man im in der Datei
@@ -353,13 +359,13 @@ Mobile Gerät kopiert und entpackt werden.
Archive für \textit{Eet}:
\begin{itemize}
\item zlib-1.2.3-bin.tar.bz2:
-\newline \url{http://sourceforge.net/projects/cegcc/files/ported %20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported\\%20packages/zlib-1.2.3/zlib-1.2.3-bin.tar.bz2/download}
\item zlib-1.2.3-dev.tar.bz2:
-\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported\\%20packages/zlib-1.2.3/zlib-1.2.3-dev.tar.bz2/download}
\item libjpeg-6b-bin.tar.bz2:
-\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-bin.tar.bz2/download}
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported\\%20packages/libjpeg-6b/libjpeg-6b-bin.tar.bz2/download}
\item libjepg-6b-dev.tar.bz2:
-\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libjpeg-6b/libjpeg-6b-dev.tar.bz2/download}
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported\\%20packages/libjpeg-6b/libjpeg-6b-dev.tar.bz2/download}
\end{itemize}
\subsection*{Anhang 3}
@@ -367,12 +373,13 @@ Archive für \textit{Eet}:
Archive für \textit{Evas}:
\begin{itemize}
\item freetype-2.3.7-bin.tar.bz2:
-\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-bin.tar.bz2/download}
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported\\%20packages/freetype-2.3.7/freetype-2.3.7-bin.tar.bz2/download}
\item freetype-2.3.7-dev.tar.bz2:
-\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/freetype-2.3.7/freetype-2.3.7-dev.tar.bz2/download}
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported\\%20packages/freetype-2.3.7/freetype-2.3.7-dev.tar.bz2/download}
\item libpng-1.2.33-bin.tar.bz2:
-\newline \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-bin.tar.bz2/download}
- \item libpng-1.2.33-dev.tar.bz2: \url{http://sourceforge.net/projects/cegcc/files/ported%20packages/libpng-1.2.33/libpng-1.2.33-dev.tar.bz2/download}
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported\\%20packages/libpng-1.2.33/libpng-1.2.33-bin.tar.bz2/download}
+ \item libpng-1.2.33-dev.tar.bz2:
+\newline \url{http://sourceforge.net/projects/cegcc/files/ported\\%20packages/libpng-1.2.33/libpng-1.2.33-dev.tar.bz2/download}
\end{itemize}
\subsection*{Anhang 4}
@@ -480,11 +487,16 @@ software_16_wince/mingw32ce-arm/engine_software_16_wince.dll
arm-mingw32ce-strip efl/evas/modules/engines/\
software_generic/mingw32ce-arm/engine_software_generic.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-arm/loader_eet.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-arm/loader_jpeg.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/mingw32ce-arm/loader_pmaps.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/png/mingw32ce-arm/loader_png.dll
-arm-mingw32ce-strip efl/evas/modules/loaders/xpm/mingw32ce-arm/loader_xpm.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/eet/\
+mingw32ce-arm/loader_eet.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/\
+mingw32ce-arm/loader_jpeg.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/\
+mingw32ce-arm/loader_pmaps.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/png/\
+mingw32ce-arm/loader_png.dll
+arm-mingw32ce-strip efl/evas/modules/loaders/xpm/\
+mingw32ce-arm/loader_xpm.dll
arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-arm/saver_eet.dll
arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-arm/saver_png.dll
diff --git a/ausarbeitung/Fazit.tex b/ausarbeitung/Fazit.tex
index c44a91a..629ccfb 100644
--- a/ausarbeitung/Fazit.tex
+++ b/ausarbeitung/Fazit.tex
@@ -1,16 +1,17 @@
\section{Fazit}
Anhaden der Anforderungen und der implementierten Features von \textit{Friend Finder} ist ersichtbar das es möglich ist einen
-sicheren \textit{location awareness} Dienst zu entwerfen und programmieren. Dieser verschlüsselt die versendeten Nachrichten und
+sicheren Dienst, welcher die \textit{location privacy} achtet, zu entwerfen und programmieren. Dieser verschlüsselt die
+versendeten Nachrichten und
verzichtet auf einen zentralisierten Dienst ohne dabei an Verlässlichkeit einzubüßen. Auch das Datenaufkommen, sowie die
Berechnungszeit der Verschlüsselung kann bei richtiger Implementierung gering gehalten werden. Somit wird auch der Akku von
mobilen Geräten geschont. \newline
Es ist also möglich solche Dienste, die die Privatsphäre eines Nutzers betreffen, auch unter dem Aspekt der Sicherheit zu
implementieren und somit diese zu Garantieren. Die gegebenen Möglichkeiten eines Missbrauchs der versandten Daten sind
-somit stark eingeschränkt und können nicht mehr ohne weiteres eingesehen werden. Des weiteren können mit Hilfe von 2D-Barcodes
-die, zur Verschlüsselung benötigten, Schlüssel einfach und ohne Risiko ausgetauscht werden. \newline
+somit stark eingeschränkt und diese können nicht mehr ohne weiteres eingesehen werden. Des weiteren können mit Hilfe von
+2D-Barcodes die, zur Verschlüsselung benötigten, Schlüssel einfach und ohne Risiko ausgetauscht werden. \newline
Bei richtiger Wahl der Programmiersprache sowie der Schnittstellen und genutzten Bibliotheken kann man des weiteren eine größere
-Menge von Betriebssystemen für Smart Phones abdecken und somit mehr Nutzer erreichen, ohne dies in unterschiedlichen Sprachen und
-mit unterschiedlichen Bibliotheken implementieren zu müssen. Gerade diese und die Tatsache das die Betriebsysteme für mobile
-Geräte immer mehr die gleichen Schnittstellen benutzen, zum Beispiel den \textit{POSIX-Layer} könnte es in der Zukunft
+Menge von Betriebssystemen für Smart Phones abdecken und somit mehr Nutzer erreichen, ohne die Software in unterschiedlichen
+Sprachen und mit unterschiedlichen Bibliotheken implementieren zu müssen. Gerade diese und die Tatsache das die Betriebsysteme für
+mobile Geräte immer mehr die gleichen Schnittstellen nutzen, zum Beispiel den \textit{POSIX-Layer} könnte es in der Zukunft
ermöglichen Programme noch einfacher zu portieren und den Aufwand bei Entwurf und Design geringer zu halten. \ No newline at end of file
diff --git a/ausarbeitung/Fazit.tex~ b/ausarbeitung/Fazit.tex~
index a6576d0..22d6e42 100644
--- a/ausarbeitung/Fazit.tex~
+++ b/ausarbeitung/Fazit.tex~
@@ -1,16 +1,17 @@
\section{Fazit}
Anhaden der Anforderungen und der implementierten Features von \textit{Friend Finder} ist ersichtbar das es möglich ist einen
-sicheren \textit{location awareness} Dienst zu entwerfen und programmieren. Dieser verschlüsselt die versendeten Nachrichten und
+sicheren Dienst, welcher die \textit{location privacy} achtet, zu entwerfen und programmieren. Dieser verschlüsselt die
+versendeten Nachrichten und
verzichtet auf einen zentralisierten Dienst ohne dabei an Verlässlichkeit einzubüßen. Auch das Datenaufkommen, sowie die
Berechnungszeit der Verschlüsselung kann bei richtiger Implementierung gering gehalten werden. Somit wird auch der Akku von
mobilen Geräten geschont. \newline
Es ist also möglich solche Dienste, die die Privatsphäre eines Nutzers betreffen, auch unter dem Aspekt der Sicherheit zu
implementieren und somit diese zu Garantieren. Die gegebenen Möglichkeiten eines Missbrauchs der versandten Daten sind
-somit stark eingeschränkt und können nicht mehr ohne weiteres eingesehen werden. Des weiteren können mit Hilfe von 2D-Barcodes
-die, zur Verschlüsselung benötigten, Schlüssel einfach und ohne Risiko ausgetauscht werden.
+somit stark eingeschränkt und diese können nicht mehr ohne weiteres eingesehen werden. Des weiteren können mit Hilfe von
+2D-Barcodes die, zur Verschlüsselung benötigten, Schlüssel einfach und ohne Risiko ausgetauscht werden. \newline
Bei richtiger Wahl der Programmiersprache sowie der Schnittstellen und genutzten Bibliotheken kann man des weiteren eine größere
-Menge von Betriebssystemen für Smart Phones abdecken und somit mehr Nutzer erreichen, ohne dies in unterschiedlichen Sprachen und
-mit unterschiedlichen Bibliotheken implementieren zu müssen. Gerade diese und die Tatsache das die Betriebsysteme für mobile
-Geräte immer mehr die gleichen Schnittstellen benutzen, zum Beispiel den \textit{POSIX-Layer} könnte es in der Zukunft
+Menge von Betriebssystemen für Smart Phones abdecken und somit mehr Nutzer erreichen, ohne die Software in unterschiedlichen
+Sprachen und mit unterschiedlichen Bibliotheken implementieren zu müssen. Gerade diese und die Tatsache das die Betriebsysteme für
+mobile Geräte immer mehr die gleichen Schnittstellen benutzen, zum Beispiel den \textit{POSIX-Layer} könnte es in der Zukunft
ermöglichen Programme noch einfacher zu portieren und den Aufwand bei Entwurf und Design geringer zu halten. \ No newline at end of file
diff --git a/ausarbeitung/Friend_Finder.aux b/ausarbeitung/Friend_Finder.aux
index b41a077..c9c6047 100644
--- a/ausarbeitung/Friend_Finder.aux
+++ b/ausarbeitung/Friend_Finder.aux
@@ -3,9 +3,10 @@
\@writefile{toc}{\contentsline {section}{\numberline {4}Friend Finder}{13}{section.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Verwendete Verfahren und Bibliotheken}{13}{subsection.4.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{13}{subsubsection.4.1.2}}
+\citation{blowfish}
\citation{OpenSSL}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \textit {Friend Finder} Nachrichtenaustausch}}{14}{figure.3}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{14}{subsubsection.4.1.2}}
\citation{libircclient}
\citation{OpenSSL}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Versenden von Chatnachrichten}}{15}{figure.4}}
@@ -13,11 +14,11 @@
\citation{PNG}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{16}{subsubsection.4.1.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.4}Empfangen der eigenen Position}{16}{subsubsection.4.1.4}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{17}{subsubsection.4.1.5}}
-\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces 2D-Barcode mit \textit {Friend Finder}}}{17}{figure.5}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Analyse}{17}{subsection.4.2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{16}{subsubsection.4.1.5}}
\citation{Wireshark}
\citation{IRCD}
+\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces 2D-Barcode mit \textit {Friend Finder}}}{17}{figure.5}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Analyse}{17}{subsection.4.2}}
\citation{xchat}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{18}{subsubsection.4.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{19}{subsubsection.4.2.2}}
diff --git a/ausarbeitung/Friend_Finder.tex b/ausarbeitung/Friend_Finder.tex
index 88fc5c9..6f800ac 100644
--- a/ausarbeitung/Friend_Finder.tex
+++ b/ausarbeitung/Friend_Finder.tex
@@ -1,8 +1,7 @@
\section{Friend Finder}
-Die eingangs beschriebene Software hat den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit mit fast allen
-aufgezählten Funktionen realisiert. Das fotographieren des Barcodes, der Gruppenchat sowie das Setzen von Marken auf der Kartesind
-in der Implementation nicht enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, die zur Realisierung
+Die Eingangs beschriebene Software trägt den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit mit fast allen
+aufgezählten Funktionen realisiert. Im folgenden wird auf die verwendeten Verfahren sowie Bibliotheken, die zur Realisierung
notwendig waren, eingegangen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -30,8 +29,8 @@ empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{E
Zum Erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
bietet eine Fülle an vordefinierten Bedienelement. Der gesammte Programmcode der Benutzeroberfläche wurde in einer Datei
-zusammengefast (\textit{gui.c}). Diese Tatsache vereinfacht das Erhalten der Modularität, da einfach nur diese Datei
-durch eine andere ersetzt werden muss um einen anderen Typ von Oberfläche zu benutzen. \newline
+zusammengefast (\textit{gui.c}). Diese Tatsache vereinfacht das Erhalten der Modularität, da nur diese Datei
+durch eine andere ersetzt werden muss um einen anderen Typ von Oberfläche zu nutzen. \newline
In der der Datei \textit{gui.c} sind alle Funktionen enthalten um die Oberflächenelement zu erzeugen und zu platzieren. Um die
gewünschte Funktionalität der einzelnen Elemente zu realisieren wurden auch die Aufrufe der benötigten Funktionen aus anderen
Modulen in dieser Datei implementiert. \newline
@@ -42,7 +41,7 @@ realisiert. Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \t
Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll verwendet. Die
Vorteile dieses Protokolles liegen in seiner weiten Verbreitung, einer ausgedehnten Serverstruktur, sowie in dessen
-Stabilität. Ein weiterer Vorteil ist, dass man Daten die an mehrere Benutzer gesendet werden nur einmal an einen
+Stabilität. Ein weiterer Vorteil ist, dass man Daten die an mehrere Benutzer gesendet werden sollen, nur einmal an einen
\textit{Channel} senden muss und jeder Benutzer in diesem \textit{Channel} diese Daten empfangen kann.\newline
In der Datei \textit{msg\_sender.c} sind alle Funktionen und Aufrufe implementiert, welche nötig sind um die Verbindung zum
@@ -52,10 +51,11 @@ den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Na
kann man nun durch das Aufrufen der Funktion ``\textit{set\_txt\_msg(char* msg)}'' die Nachricht versenden. Wird eine Nachricht
empfangen so wird diese an die Funktion ``\textit{show\_message(char* msg)}`` , welche zur Benutzeroberfläche gehört, übergeben.
Bei der Implementerierung des Nachrichtenversandes ist eine Besonderheit zu erwähnen. Das genutzte Verschlüsselungsverfahren
-\textit{Blowfish} wurde seitens der \textit{OpenSSL}\citep{OpenSSL} Bibliothek als \textit{Blockcipher} implementiert. Das
-bedeutet, das immer nur maximal 64 Bit Nachrichten verschlüsselt werden können. Da in der Programmiersprache \textit{C} dies genau
-acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versandt und beim
-Empfänger wieder zusammengesetzt. \newline
+\textit{Blowfish} \citep{blowfish} wurde seitens der \textit{OpenSSL}\citep{OpenSSL} Bibliothek als \textit{Blockcipher}
+implementiert. \textit{Blowfish} wurde Aufgrund der schnellen verschlüsselungsrate sowie einfachen Implementierung gewählt und
+ist ein symmetrisches Verschlüsselungsverfahren. Das bedeutet, das immer nur maximal 64 Bit Nachrichten verschlüsselt werden
+können. Da in der Programmiersprache \textit{C} dies genau acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in
+Blöcke der Größe acht aufgeteilt, versandt und beim Empfänger wieder zusammengesetzt. \newline
Ein weiterer wichtiger Unterschied zu den Modulen Senden und Empfangen von \textit{GPS}-Positionen ist die Tatsache, dass bei
diesem Programmteil Sender und Empfänger in der gleichen Datei implementiert wurden. Der Grund hierfür ist, dass man hier nicht
zwischen mehreren Sendern oder Empfängern unterscheiden muss, und diese zwei Teile hier somit nicht komplett getrennt voneinander
@@ -68,9 +68,9 @@ arbeiten müssen. In der folgenden Abbildung ist eine Konversation über \textit
\end{figure}
Um Nachrichten zu versenden wurde für dieses Projekt die \textit{IRC-Client Bibliothek}\citep{libircclient} verwendet. Diese
-\textit{library} bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
+Bibliothek bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
diesen zu senden, sowie eingehende Nachrichten zu empfangen.\newline
-Zur Ver- und Entschlüsselung der gesendeten Nachrichten, sowie der Positionsdaten wird die Bibliothek
+Zur Ver- und Entschlüsselung der gesendeten Nachrichten, sowie der Positionsdaten, wird die Bibliothek
des \textit{OpenSSL-Projekts}\citep{OpenSSL}, namens \textit{libcrypto}, verwendet. Hierzu werden die Daten mit dem
\textit{Blowfish-Algorithmus} verschlüsselt. Bei diesem Algorithmus handelt es sich um ein symmetrisches
Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver- sowie entschlüsseln nutzen.
@@ -82,9 +82,9 @@ eine \textit{IRC-Session} initialisiert werden um danach die Position zu versend
in einer vorgegebenen Reihenfolge. Zuerst wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden dass maximal eine Zeichenkette der
Länge 8 Byte verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt zu
-versenden. Somit werden für das Versenden einer Position insgesamt acht Nachrichten an den \textit{IRC}-Server übermittelt.
+versenden. Es werden für das Versenden einer Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der Empfänger eine
-Bestätigung an den \textit{IRC-Kanal} sendet. Diese Bestätigung ist wird unverschlüsselt versandt. Kommt dieses
+Bestätigung an den \textit{IRC-Kanal} sendet. Diese Bestätigung wird ebenfalls verschlüsselt versandt. Kommt dieses
\textit{Acknowledgement} beim Sender an, so versendet dieser wieder ein \textit{Latitude/Longtitude} Paar.\newline
Auch hier wird, wie beim Versenden der Nachrichten zum Verschlüsseln der \textit{Blowfish-Algorithmus} aus
@@ -96,23 +96,24 @@ Das Verhalten des Empfängers beim Erhalten einer Nachricht ist etwas komplizier
\textit{IRC-Session} initialisiert werden. Da mehrere Benutzer Positionsdaten senden können legt der Empfänger für jeden Sender
einen Datensatz an. Dieser wird nach und nach mit den Positionsdaten gefüllt und die benötigten Daten weitergegeben, sobald alle
vorhanden sind. Da der Sender seine Daten, aufgrund der Restrektion der Länge der zu verschlüsselnden Zeichenkette, gestückelt
-sendet ist es von Nöten das der Empfänger die Daten dem jeweiligen Absender zuordnen kann und diese auch wieder korrekt
-zusammensetzt. Dies geschieht mit Hilfe von Terminierungszeichen am Ende eines jeden Positionsbruchstückes. Dieses Zeichen wurde
-vom Sender angehängt und der Empfänger kann mit dieser Hilfe erkennen wie die gesendeten Daten zugeordnet werden müssen. Wenn dies
-geschehen ist und sowohl \textit{Latitude} als auch \textit{Longtitude} Informationen vorhanden sind, werden diese Position an das
-Frontend weitergegeben. \newline
+sendet ist es von Nöten, dass der Empfänger die Daten dem jeweiligen Absender zuordnen kann und diese auch wieder korrekt
+zusammensetzt. Um die einzelnen Fragmente wieder zuzordnen, werden an diese vor dem versenden Terminierungszeichen angefügt,
+welche zum Beispiel eindeutig als ersten Teil einer \textit{Longtitude}-Koordinate identifizieren. Wenn diese wieder zugeordnet
+wurden und sowohl \textit{Latitude} als auch \textit{Longtitude} Informationen vorhanden sind, werden diese Position
+an das Frontend weitergegeben. \newline
Zur Realisierung des Empfängers werden die gleichen Bibliotheken wie beim Sender genutzt. Auch hier wird zur Entschlüsselung der
-\textit{Blowfish-Algorithmus} von \textit{libcrypto} genutzt.
+\textit{Blowfish-Algorithmus} von \textit{libcrypto} angewandt.
\subsubsection{Erzeugen eines 2D-Barcodes}
Die Datei \textit{barcode.c} beinhaltet die Funktionen zum Erstellen eines 2D-Barcodes. Hierzu wird die Funktion
``\textit{generate\_barcode(char* key)}'', mit einer Zeichenkette als Übergabeparameter, aufgerufen. Aus dieser Zeichenkette wird
-dann ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png} Datei auf das Speichermedium geschrieben wird.
+im Anschluss ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png} Datei auf das Speichermedium geschrieben
+wird.
Zum erstellen des Barcodes wurde die offene Bibliothek \textit{qrencode} \citep{qrencode} genutzt. Diese erstellt aus einer
Zeichenkette einen 2D-Barcode. Aus den Bilddaten dieses Barcodes wurde mit \textit{libpng} \citep{PNG} eine \textit{.png} Datei
-erstellt. Die untere Abbildung zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+generiert. Die untere Abbildung zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
\begin{figure}[!ht]
\centering
@@ -145,28 +146,30 @@ Positionen, unter die Lupe genommen.
\subsubsection{Allgemeiner Datenverkehr}
-Bei Messung des allgemeinen Datenaufkommens mit eine normalen \textit{IRC-Clients}, hier \textit{X-Chat} \citep{xchat}, ergeben
+Bei Messung des allgemeinen Datenaufkommens mit eine normalen \textit{IRC-Clients}, hier \textit{X-Chat} \citep{xchat}, ergibt
sich folgender Datenverkehr. \newline
Beim Verbindungsaufbau sendet der \textit{IRC}-Server zuerst ein Paket mit Informationen wie Limit der \textit{Channels}
oder Anzahl der aktiven Benutzer. Dieses Paket hatte in der Versuchsumgebung eine Größe von 1090 Bytes. Hiervon müssen noch 20
Bytes \textit{IP-} und 32 Byte \textit{TCP-Header} abgezogen werden. Somit sind die hat das Datenfeld eine Größe von 1038 Bytes.
Bei im folgenden genannten Paketgrößen sind diese 52 Byte schon abgezogen. \newline
-Wenn im nächsten Schritt der Benutzer nun eine \textit{Channel} beitritt so sendet dieser drei Pakete an den Server. Diese
-beinhalten den Namen des \textit{Channels} dem beigetreten werden soll, eine Anfrage der aktiven Nutzer in diesem \textit{Channel}
-sowie welche Rechter der beitretende Nutzer in diesem \textit{Channel} inne hat. Diese drei Pakete haben alle die Größe von 26
-Byte. Ist die Verbindung zwischen Client und Server aufgebaut so sendet der Client alle 30 Sekunden ein \textit{Ping} Paket an den
-Server, welches dieser mit einem \textit{Pong} beantwortet. Diese Pakete haben eine Größe von 40 Byte für die \textit{Ping}
-Nachricht und 58 Byte für die beantwortende \textit{Pong} Nachricht. Alle 60 Sekunden versendet der Client eine Anfrage, welche
-Teilnehmer sich im \textit{Channel} befinden. Diese Nachricht von Client zu Server ist 25 Byte groß. Die Antwort hierzu ist
-abhängig von der Anzahl der Benutzer. Ist nur ein Benutzer im \textit{Channel} so ist sie 151 Bytes groß, bei zwei ist sie schon
-233 Byte groß. Wird eine Verbindung beendet, so schickt der Client noch eine \textit{Quit} Nachricht an den Server. \newline
+Wenn im nächsten Schritt der Benutzer nun eine \textit{Channel} beitritt, so sendet dieser drei Pakete an den Server. Diese
+beinhalten den Namen des \textit{Channels} dem beigetreten werden soll, eine Anfrage nach einer Liste der aktiven Nutzer in diesem
+\textit{Channel}sowie welche Rechte der beitretende Nutzer in diesem \textit{Channel} inne hat. Diese drei Pakete haben alle die
+Größe von 26 Byte. Ist die Verbindung zwischen Client und Server aufgebaut so sendet der Client alle 30 Sekunden ein \textit{Ping}
+Paket an den Server, welches dieser mit einem \textit{Pong} beantwortet. Diese Pakete haben eine Größe von 40 Byte für die
+\textit{Ping} Nachricht und 58 Byte für die beantwortende \textit{Pong} Nachricht. Alle 60 Sekunden versendet der Client eine
+Anfrage, welche Teilnehmer sich im \textit{Channel} befinden. Diese Nachricht von Client zu Server ist 25 Byte groß. Die Antwort
+hierzu ist abhängig von der Anzahl der Benutzer. Ist nur ein Benutzer im \textit{Channel} so ist sie 151 Bytes groß, bei zwei ist
+sie schon 233 Byte groß. Wird eine Verbindung beendet, so schickt der Client eine \textit{Quit} Nachricht an den Server.
+\newline
Im Gegensatz zu diesem hohen Hintergrundverkehr benötigt \textit{Friend Finder} nur einen \textit{TCP-Handshake} um die
Verbindung aufzubauen. Ist die Verbindung etabliert fallen keine weiteren Hintergrunddaten an. Der Nachteil hiervon ist, dass der
-Client nur bei einem auftretenden Fehler beim versenden der Daten bemerkt das er nicht mehr verbunden ist. Allerdings wird
+Client nur bei einem auftretenden Fehler beim Versenden der Daten bemerkt, dass er nicht mehr verbunden ist. Allerdings wird
hiermit auch Berechnungszeit und somit Akku gespart, da diese \textit{Keep-Alive} Nachrichten, sowie die zusätzliche
-Informationen über den Server im Rahmen von \textit{Friend Finder} nicht benötigt werden, da die Positionsdaten mehrmals pro
-Minute übermittelt werden und somit immer Datenverkehr zwischen Sender und \textit{IRC}-Server vorhanden ist. \newline
+Informationen über den Server im Rahmen von \textit{Friend Finder} nicht benötigt werden. Da die Positionsdaten mehrmals pro
+Minute übermittelt werden besteht somit immer Datenverkehr zwischen Sender und \textit{IRC}-Server und es kann schnell
+festgestellt werden ob eine Verbindung noch aktiv ist. \newline
\subsubsection{Versenden und Empfangen von Nachrichten}
diff --git a/ausarbeitung/Friend_Finder.tex~ b/ausarbeitung/Friend_Finder.tex~
index 88fc5c9..6f800ac 100644
--- a/ausarbeitung/Friend_Finder.tex~
+++ b/ausarbeitung/Friend_Finder.tex~
@@ -1,8 +1,7 @@
\section{Friend Finder}
-Die eingangs beschriebene Software hat den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit mit fast allen
-aufgezählten Funktionen realisiert. Das fotographieren des Barcodes, der Gruppenchat sowie das Setzen von Marken auf der Kartesind
-in der Implementation nicht enthalten. Im folgenden wird auf die Verwendeten Verfahren sowie Bibliotheken, die zur Realisierung
+Die Eingangs beschriebene Software trägt den Namen \textit{Friend Finder} und wurde im Rahmen dieser Arbeit mit fast allen
+aufgezählten Funktionen realisiert. Im folgenden wird auf die verwendeten Verfahren sowie Bibliotheken, die zur Realisierung
notwendig waren, eingegangen.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -30,8 +29,8 @@ empfangenen Daten an die \textit{GUI} weiter, welche sie mit Hilfe von \textit{E
Zum Erstellen der Oberfläche wurde \textit{Enlightenment} verwendet. Diese Bibliothek stellt alle benötigten Funktionen bereit und
bietet eine Fülle an vordefinierten Bedienelement. Der gesammte Programmcode der Benutzeroberfläche wurde in einer Datei
-zusammengefast (\textit{gui.c}). Diese Tatsache vereinfacht das Erhalten der Modularität, da einfach nur diese Datei
-durch eine andere ersetzt werden muss um einen anderen Typ von Oberfläche zu benutzen. \newline
+zusammengefast (\textit{gui.c}). Diese Tatsache vereinfacht das Erhalten der Modularität, da nur diese Datei
+durch eine andere ersetzt werden muss um einen anderen Typ von Oberfläche zu nutzen. \newline
In der der Datei \textit{gui.c} sind alle Funktionen enthalten um die Oberflächenelement zu erzeugen und zu platzieren. Um die
gewünschte Funktionalität der einzelnen Elemente zu realisieren wurden auch die Aufrufe der benötigten Funktionen aus anderen
Modulen in dieser Datei implementiert. \newline
@@ -42,7 +41,7 @@ realisiert. Zur Darstellung der Karte wurden Daten des offenen Kartenprojekts \t
Um Daten im Allgemeinen zu versenden wurde das \textit{IRC}-Protokoll verwendet. Die
Vorteile dieses Protokolles liegen in seiner weiten Verbreitung, einer ausgedehnten Serverstruktur, sowie in dessen
-Stabilität. Ein weiterer Vorteil ist, dass man Daten die an mehrere Benutzer gesendet werden nur einmal an einen
+Stabilität. Ein weiterer Vorteil ist, dass man Daten die an mehrere Benutzer gesendet werden sollen, nur einmal an einen
\textit{Channel} senden muss und jeder Benutzer in diesem \textit{Channel} diese Daten empfangen kann.\newline
In der Datei \textit{msg\_sender.c} sind alle Funktionen und Aufrufe implementiert, welche nötig sind um die Verbindung zum
@@ -52,10 +51,11 @@ den \textit{Nickname} des Benutzers oder die \textit{IP-Adresse} des Servers. Na
kann man nun durch das Aufrufen der Funktion ``\textit{set\_txt\_msg(char* msg)}'' die Nachricht versenden. Wird eine Nachricht
empfangen so wird diese an die Funktion ``\textit{show\_message(char* msg)}`` , welche zur Benutzeroberfläche gehört, übergeben.
Bei der Implementerierung des Nachrichtenversandes ist eine Besonderheit zu erwähnen. Das genutzte Verschlüsselungsverfahren
-\textit{Blowfish} wurde seitens der \textit{OpenSSL}\citep{OpenSSL} Bibliothek als \textit{Blockcipher} implementiert. Das
-bedeutet, das immer nur maximal 64 Bit Nachrichten verschlüsselt werden können. Da in der Programmiersprache \textit{C} dies genau
-acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in Blöcke der Größe acht aufgeteilt, versandt und beim
-Empfänger wieder zusammengesetzt. \newline
+\textit{Blowfish} \citep{blowfish} wurde seitens der \textit{OpenSSL}\citep{OpenSSL} Bibliothek als \textit{Blockcipher}
+implementiert. \textit{Blowfish} wurde Aufgrund der schnellen verschlüsselungsrate sowie einfachen Implementierung gewählt und
+ist ein symmetrisches Verschlüsselungsverfahren. Das bedeutet, das immer nur maximal 64 Bit Nachrichten verschlüsselt werden
+können. Da in der Programmiersprache \textit{C} dies genau acht ASCII-Zeichen entspricht, werden alle zu sendenden Nachrichten in
+Blöcke der Größe acht aufgeteilt, versandt und beim Empfänger wieder zusammengesetzt. \newline
Ein weiterer wichtiger Unterschied zu den Modulen Senden und Empfangen von \textit{GPS}-Positionen ist die Tatsache, dass bei
diesem Programmteil Sender und Empfänger in der gleichen Datei implementiert wurden. Der Grund hierfür ist, dass man hier nicht
zwischen mehreren Sendern oder Empfängern unterscheiden muss, und diese zwei Teile hier somit nicht komplett getrennt voneinander
@@ -68,9 +68,9 @@ arbeiten müssen. In der folgenden Abbildung ist eine Konversation über \textit
\end{figure}
Um Nachrichten zu versenden wurde für dieses Projekt die \textit{IRC-Client Bibliothek}\citep{libircclient} verwendet. Diese
-\textit{library} bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
+Bibliothek bietet verschiedene Funktionen um eine Verbindung mit einem \textit{IRC-Server} zu erstellen und Nachrichten an
diesen zu senden, sowie eingehende Nachrichten zu empfangen.\newline
-Zur Ver- und Entschlüsselung der gesendeten Nachrichten, sowie der Positionsdaten wird die Bibliothek
+Zur Ver- und Entschlüsselung der gesendeten Nachrichten, sowie der Positionsdaten, wird die Bibliothek
des \textit{OpenSSL-Projekts}\citep{OpenSSL}, namens \textit{libcrypto}, verwendet. Hierzu werden die Daten mit dem
\textit{Blowfish-Algorithmus} verschlüsselt. Bei diesem Algorithmus handelt es sich um ein symmetrisches
Verfahren, bei welchem alle Teilnehmer den gleichen privaten Schlüssel zum ver- sowie entschlüsseln nutzen.
@@ -82,9 +82,9 @@ eine \textit{IRC-Session} initialisiert werden um danach die Position zu versend
in einer vorgegebenen Reihenfolge. Zuerst wird der verschlüsselte Längengrad, danach der verschlüsselte Breitengrade gesendet.
Allerdings muss auch hier, wie beim Versenden der Textnachrichten, darauf geachtet werden dass maximal eine Zeichenkette der
Länge 8 Byte verschlüsselt wird. Somit ist es auch hier nötig Längen- und Breitengrad in zwei Teile aufzuteilen und getrennt zu
-versenden. Somit werden für das Versenden einer Position insgesamt acht Nachrichten an den \textit{IRC}-Server übermittelt.
+versenden. Es werden für das Versenden einer Position insgesamt vier Nachrichten an den \textit{IRC}-Server übermittelt.
Wurden diese vier Nachrichten übermittelt, so werden solange keine Daten mehr gesendet, bis der Empfänger eine
-Bestätigung an den \textit{IRC-Kanal} sendet. Diese Bestätigung ist wird unverschlüsselt versandt. Kommt dieses
+Bestätigung an den \textit{IRC-Kanal} sendet. Diese Bestätigung wird ebenfalls verschlüsselt versandt. Kommt dieses
\textit{Acknowledgement} beim Sender an, so versendet dieser wieder ein \textit{Latitude/Longtitude} Paar.\newline
Auch hier wird, wie beim Versenden der Nachrichten zum Verschlüsseln der \textit{Blowfish-Algorithmus} aus
@@ -96,23 +96,24 @@ Das Verhalten des Empfängers beim Erhalten einer Nachricht ist etwas komplizier
\textit{IRC-Session} initialisiert werden. Da mehrere Benutzer Positionsdaten senden können legt der Empfänger für jeden Sender
einen Datensatz an. Dieser wird nach und nach mit den Positionsdaten gefüllt und die benötigten Daten weitergegeben, sobald alle
vorhanden sind. Da der Sender seine Daten, aufgrund der Restrektion der Länge der zu verschlüsselnden Zeichenkette, gestückelt
-sendet ist es von Nöten das der Empfänger die Daten dem jeweiligen Absender zuordnen kann und diese auch wieder korrekt
-zusammensetzt. Dies geschieht mit Hilfe von Terminierungszeichen am Ende eines jeden Positionsbruchstückes. Dieses Zeichen wurde
-vom Sender angehängt und der Empfänger kann mit dieser Hilfe erkennen wie die gesendeten Daten zugeordnet werden müssen. Wenn dies
-geschehen ist und sowohl \textit{Latitude} als auch \textit{Longtitude} Informationen vorhanden sind, werden diese Position an das
-Frontend weitergegeben. \newline
+sendet ist es von Nöten, dass der Empfänger die Daten dem jeweiligen Absender zuordnen kann und diese auch wieder korrekt
+zusammensetzt. Um die einzelnen Fragmente wieder zuzordnen, werden an diese vor dem versenden Terminierungszeichen angefügt,
+welche zum Beispiel eindeutig als ersten Teil einer \textit{Longtitude}-Koordinate identifizieren. Wenn diese wieder zugeordnet
+wurden und sowohl \textit{Latitude} als auch \textit{Longtitude} Informationen vorhanden sind, werden diese Position
+an das Frontend weitergegeben. \newline
Zur Realisierung des Empfängers werden die gleichen Bibliotheken wie beim Sender genutzt. Auch hier wird zur Entschlüsselung der
-\textit{Blowfish-Algorithmus} von \textit{libcrypto} genutzt.
+\textit{Blowfish-Algorithmus} von \textit{libcrypto} angewandt.
\subsubsection{Erzeugen eines 2D-Barcodes}
Die Datei \textit{barcode.c} beinhaltet die Funktionen zum Erstellen eines 2D-Barcodes. Hierzu wird die Funktion
``\textit{generate\_barcode(char* key)}'', mit einer Zeichenkette als Übergabeparameter, aufgerufen. Aus dieser Zeichenkette wird
-dann ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png} Datei auf das Speichermedium geschrieben wird.
+im Anschluss ein Barcode erstellt, welcher im darauf folgenden Schritt als \textit{.png} Datei auf das Speichermedium geschrieben
+wird.
Zum erstellen des Barcodes wurde die offene Bibliothek \textit{qrencode} \citep{qrencode} genutzt. Diese erstellt aus einer
Zeichenkette einen 2D-Barcode. Aus den Bilddaten dieses Barcodes wurde mit \textit{libpng} \citep{PNG} eine \textit{.png} Datei
-erstellt. Die untere Abbildung zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
+generiert. Die untere Abbildung zeigt einen solchen erstellten Barcode, wie er von \textit{Friend Finder} ausgegeben wird.
\begin{figure}[!ht]
\centering
@@ -145,28 +146,30 @@ Positionen, unter die Lupe genommen.
\subsubsection{Allgemeiner Datenverkehr}
-Bei Messung des allgemeinen Datenaufkommens mit eine normalen \textit{IRC-Clients}, hier \textit{X-Chat} \citep{xchat}, ergeben
+Bei Messung des allgemeinen Datenaufkommens mit eine normalen \textit{IRC-Clients}, hier \textit{X-Chat} \citep{xchat}, ergibt
sich folgender Datenverkehr. \newline
Beim Verbindungsaufbau sendet der \textit{IRC}-Server zuerst ein Paket mit Informationen wie Limit der \textit{Channels}
oder Anzahl der aktiven Benutzer. Dieses Paket hatte in der Versuchsumgebung eine Größe von 1090 Bytes. Hiervon müssen noch 20
Bytes \textit{IP-} und 32 Byte \textit{TCP-Header} abgezogen werden. Somit sind die hat das Datenfeld eine Größe von 1038 Bytes.
Bei im folgenden genannten Paketgrößen sind diese 52 Byte schon abgezogen. \newline
-Wenn im nächsten Schritt der Benutzer nun eine \textit{Channel} beitritt so sendet dieser drei Pakete an den Server. Diese
-beinhalten den Namen des \textit{Channels} dem beigetreten werden soll, eine Anfrage der aktiven Nutzer in diesem \textit{Channel}
-sowie welche Rechter der beitretende Nutzer in diesem \textit{Channel} inne hat. Diese drei Pakete haben alle die Größe von 26
-Byte. Ist die Verbindung zwischen Client und Server aufgebaut so sendet der Client alle 30 Sekunden ein \textit{Ping} Paket an den
-Server, welches dieser mit einem \textit{Pong} beantwortet. Diese Pakete haben eine Größe von 40 Byte für die \textit{Ping}
-Nachricht und 58 Byte für die beantwortende \textit{Pong} Nachricht. Alle 60 Sekunden versendet der Client eine Anfrage, welche
-Teilnehmer sich im \textit{Channel} befinden. Diese Nachricht von Client zu Server ist 25 Byte groß. Die Antwort hierzu ist
-abhängig von der Anzahl der Benutzer. Ist nur ein Benutzer im \textit{Channel} so ist sie 151 Bytes groß, bei zwei ist sie schon
-233 Byte groß. Wird eine Verbindung beendet, so schickt der Client noch eine \textit{Quit} Nachricht an den Server. \newline
+Wenn im nächsten Schritt der Benutzer nun eine \textit{Channel} beitritt, so sendet dieser drei Pakete an den Server. Diese
+beinhalten den Namen des \textit{Channels} dem beigetreten werden soll, eine Anfrage nach einer Liste der aktiven Nutzer in diesem
+\textit{Channel}sowie welche Rechte der beitretende Nutzer in diesem \textit{Channel} inne hat. Diese drei Pakete haben alle die
+Größe von 26 Byte. Ist die Verbindung zwischen Client und Server aufgebaut so sendet der Client alle 30 Sekunden ein \textit{Ping}
+Paket an den Server, welches dieser mit einem \textit{Pong} beantwortet. Diese Pakete haben eine Größe von 40 Byte für die
+\textit{Ping} Nachricht und 58 Byte für die beantwortende \textit{Pong} Nachricht. Alle 60 Sekunden versendet der Client eine
+Anfrage, welche Teilnehmer sich im \textit{Channel} befinden. Diese Nachricht von Client zu Server ist 25 Byte groß. Die Antwort
+hierzu ist abhängig von der Anzahl der Benutzer. Ist nur ein Benutzer im \textit{Channel} so ist sie 151 Bytes groß, bei zwei ist
+sie schon 233 Byte groß. Wird eine Verbindung beendet, so schickt der Client eine \textit{Quit} Nachricht an den Server.
+\newline
Im Gegensatz zu diesem hohen Hintergrundverkehr benötigt \textit{Friend Finder} nur einen \textit{TCP-Handshake} um die
Verbindung aufzubauen. Ist die Verbindung etabliert fallen keine weiteren Hintergrunddaten an. Der Nachteil hiervon ist, dass der
-Client nur bei einem auftretenden Fehler beim versenden der Daten bemerkt das er nicht mehr verbunden ist. Allerdings wird
+Client nur bei einem auftretenden Fehler beim Versenden der Daten bemerkt, dass er nicht mehr verbunden ist. Allerdings wird
hiermit auch Berechnungszeit und somit Akku gespart, da diese \textit{Keep-Alive} Nachrichten, sowie die zusätzliche
-Informationen über den Server im Rahmen von \textit{Friend Finder} nicht benötigt werden, da die Positionsdaten mehrmals pro
-Minute übermittelt werden und somit immer Datenverkehr zwischen Sender und \textit{IRC}-Server vorhanden ist. \newline
+Informationen über den Server im Rahmen von \textit{Friend Finder} nicht benötigt werden. Da die Positionsdaten mehrmals pro
+Minute übermittelt werden besteht somit immer Datenverkehr zwischen Sender und \textit{IRC}-Server und es kann schnell
+festgestellt werden ob eine Verbindung noch aktiv ist. \newline
\subsubsection{Versenden und Empfangen von Nachrichten}
diff --git a/ausarbeitung/Tutorial.aux b/ausarbeitung/Tutorial.aux
index 7e5ac42..597a60d 100644
--- a/ausarbeitung/Tutorial.aux
+++ b/ausarbeitung/Tutorial.aux
@@ -17,7 +17,7 @@
\citation{efl}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}CeGCC}{11}{subsubsection.3.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Enlightenment}{11}{subsubsection.3.2.2}}
-\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Beispiele verschiedener \textit {Elementary} Icons}}{11}{figure.1}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Beispiele verschiedener \textit {Elementary} Icons}}{12}{figure.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Aufbau von \textit {Enlightenment}}}{12}{figure.2}}
\@setckpt{Tutorial}{
\setcounter{page}{13}
diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index 990cb38..b824145 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -6,7 +6,7 @@ Programm für das System zu entwickeln. \newline
Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist nicht allzu groß. Die meisten
aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung
-angeht.Auch erweiterte Features wie GPS oder Lagesensoren sind in den meisten aktuellen Geräten vorhanden oder werden in der
+angeht.Auch erweiterte Features wie GPS oder Lagesensoren sind in den meisten, aktuellen Geräten vorhanden oder werden in der
nächsten Generation, des jeweiligen Herstellers, vorhanden sein.\newline
Die Wahl der Plattform aufgrund des Betriebssystemes gestalltet sich schon schwerer. Bei geeigneter Auswahl ist es möglich die
@@ -16,23 +16,24 @@ Besitzer eines \textit{Palm Pre's} sicherzustellen.\newline
Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen ausführbar sind.
Es wäre also ein \textit{Layer} interessant, welchen man mit den immer gleichen Programmbibliotheken nutzen kann, unabhängig was
diesem \textit{Layer} für ein System zu Grunde liegt. Dieser \textit{Layer} soll also eine Schnittstelle zwischen Anwendungen und
-Betriebssytem sein. Ein \textit{Layer} welcher genau diese Anforderungen erfüllt ist der \textit{Portable Operating
+Betriebssytem repräsentieren. Ein \textit{Layer} welcher genau diese Anforderungen erfüllt ist der \textit{Portable Operating
System Interface for Unix Layer (POSIX Layer)} \citep{POSIX}. Mit diesem \textit{Layer} stehen eine große Menge an aktuellen
Bibliotheken, aus der \textit{Open-Source} Gemeinde, zur Verfügung. Diese haben den Vorteil, dass sie aktiv
-weiterentwickelt werden und auch ständig neue Bibliotheken erscheinen. Anwendungen die auf einem \textit{Linux}-System entwickelt
-wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
-Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll,
+weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
+entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
+Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll
wenn es auf ein neues Gerät portiert wird.\newline
\subsection{Betriebsysteme für mobile Geräte}
-Wie schon erwähnt ist die Wahl einer geeigneten Plattform nicht unerheblich. Im Folgenden werden fünf Betriebssysteme für mobile
+Wie schon erwähnt ist die Wahl einer geeigneten Plattform von nicht unerheblicher Wichtigkeit, da hier schon indirekt eine
+Vorauswahl an Nutzbaren Bibliotheken und Programmiersprachen getroffen wird. Im Folgenden werden fünf Betriebssysteme für mobile
Plattformen vorgestellt und auf deren Portierungsmöglichkeiten eingegangen.
\subsubsection{Windows Mobile}
Der wohl bekannteste Vertreter ist \textit{Windows Mobile}. Die aktuelle Version 6.5 wurde von Microsoft
-auch \textit{Windows Phone} betitelt. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
+mit \textit{Windows Phone} betitelt. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. \textit{Windows Phone} besitzt keinen
\textit{POSIX Layer}, allerdings existiert ein \textit{Cross-Compiler} names \textit{CeGCC} \citep{CeGCC}, mit welchem
Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.\newline
@@ -52,13 +53,13 @@ Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform
Das von \textit{Google} entwickelte \textit{Android} \citep{Android} setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser
Kernel kümmert sich um die Prozess- und Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage
-setzt ein virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
+setzt eine virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im Moment eben auf diese beschränken. Des weiteren bietet
\textit{Google} mittlerweile ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder \textit{C++}
zu schreiben. In diesem Paket werden auch eine Hand voll Bibliotheken mitgeliefert, welchen stabil laufen. \textit{Google} rät
-allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} gelieferten stabil auf den Geräten sind.
+allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} laut Hersteller stabil auf den Geräten laufen.
Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken unterstützt werden, sicher
interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
@@ -75,10 +76,10 @@ Layer} zu nutzen.\newline
Bei \textit{iPhoneOS} \citep{iPhoneOS} handelt es sich um eine abgeänderte und angepasste Version von MacOS. Es wurde eigens für
das iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
-unterstützt. Des weiteren fehlt auch eine Unterstützung des \textit{POSIX Layers}. Der größte Kritikpunkt an diesem System dürfte
-allerdings das fehlen von \textit{Multitasking}-Unterstützung sein. Somit ist es nicht möglich zwei Anwendungen parallel
-auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier häufig weitere Dienste im
-Hintergrund aktiv sein sollten.\newline
+unterstützt. Des weiteren fehlt auch eine Unterstützung des \textit{POSIX Layers} oder einer anderen Abstraktion dieser Art. Der
+größte Kritikpunkt an diesem System dürfte allerdings das fehlen von \textit{Multitasking}-Unterstützung sein. Somit ist es nicht
+möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
+häufig weitere Dienste im Hintergrund aktiv sein sollten.\newline
\subsubsection{Symbian OS}
@@ -90,7 +91,7 @@ ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS
\subsubsection{Zielplattform}
Die Wahl der Zielplattform ist auf \textit{Windows Mobile} gefallen, da es hier möglich ist das Programm in \textit{C} zu
-schreiben und dann im Anschluss nach \textit{Windows Mobile} zu portieren. \newline
+schreiben und dann im Anschluss zu portieren. \newline
\textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
geplanten Dienst wichtig, da hier Prozesse im Hintergund stattfinden werden und dies auf einem solchen System nicht realisierbar
wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nicht alle Bibliotheken
@@ -100,13 +101,13 @@ kompilieren.
\subsection{Softwaregrundlagen}
-Aufgrund der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
+Anhand der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
Da \textit{Windows Mobile} und die Programmiersprache \textit{C} genutzt wird, wird der \textit{CeGCC} als
-\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde nach
+\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde, nach
\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
\textit{GCC}. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
ausführbaren Dateien erstellt werden.\newline
@@ -114,8 +115,8 @@ ausführbaren Dateien erstellt werden.\newline
Es wird zwischen zwei verschiedenen Arten des \textit{CeGCC's} unterschieden. Zum Einen \textit{CeGCC}, zum Anderen
\textit{mingw32ce}.
Der Unterschied zwischen diesen beiden Kompilern besteht darin, dass ersterer nur dann benutzt wird, wenn man nur Linux
-Bibliotheken einbinden möchte. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
-Bibliotheken nutzt.\newline
+Bibliotheken einbinden möchte. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn auch \textit{Windows Mobile}
+Bibliotheken zum Einstatz kommen.\newline
Soll das Programm nun für \textit{WebOS} oder \textit{SymbianOS} portiert werden, kann dies auf unter \textit{Linux} normal
kompiliert werden.
@@ -124,7 +125,7 @@ kompiliert werden.
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
ansprechend darzustellen sowie eine einfache Bedienbarkeit zu garantieren. Dieses Frontend sollte auch in \textit{C} oder
-\textit{C++} geschrieben sein um auch hier die Portierbarkeit für die gewünschten Plattformen zu garantieren. Hier fiel die Wahl
+\textit{C++} geschrieben sein, um auch hier die Portierbarkeit für die gewünschten Plattformen zu garantieren. Hier fiel die Wahl
auf das freie, seit 1997 existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen
Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}.
\textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
@@ -145,7 +146,7 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
\caption{Aufbau von \textit{Enlightenment}}
\end{figure}
-Bei \textit{Ecore} handelt es sich um eine \textit{library} welche das serialisieren von mehreren Programmteilen ermöglicht und
+Bei \textit{Ecore} handelt es sich um eine Bibliothek, welche das serialisieren von mehreren Programmteilen ermöglicht und
für den Betrieb auf mobilen Geräten optimiert wurde. \textit{Edje} ist eine komplexe grafische Design und Layout Bibliothek,
welche mit einer internen \textit{state machine} und einem Zustandsgraphen speichert was wo, in welcher Farbe und wie sichtbar
ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
diff --git a/ausarbeitung/Tutorial.tex~ b/ausarbeitung/Tutorial.tex~
index 990cb38..9c24222 100644
--- a/ausarbeitung/Tutorial.tex~
+++ b/ausarbeitung/Tutorial.tex~
@@ -6,7 +6,7 @@ Programm für das System zu entwickeln. \newline
Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist nicht allzu groß. Die meisten
aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung
-angeht.Auch erweiterte Features wie GPS oder Lagesensoren sind in den meisten aktuellen Geräten vorhanden oder werden in der
+angeht.Auch erweiterte Features wie GPS oder Lagesensoren sind in den meisten, aktuellen Geräten vorhanden oder werden in der
nächsten Generation, des jeweiligen Herstellers, vorhanden sein.\newline
Die Wahl der Plattform aufgrund des Betriebssystemes gestalltet sich schon schwerer. Bei geeigneter Auswahl ist es möglich die
@@ -16,23 +16,24 @@ Besitzer eines \textit{Palm Pre's} sicherzustellen.\newline
Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen ausführbar sind.
Es wäre also ein \textit{Layer} interessant, welchen man mit den immer gleichen Programmbibliotheken nutzen kann, unabhängig was
diesem \textit{Layer} für ein System zu Grunde liegt. Dieser \textit{Layer} soll also eine Schnittstelle zwischen Anwendungen und
-Betriebssytem sein. Ein \textit{Layer} welcher genau diese Anforderungen erfüllt ist der \textit{Portable Operating
+Betriebssytem repräsentieren. Ein \textit{Layer} welcher genau diese Anforderungen erfüllt ist der \textit{Portable Operating
System Interface for Unix Layer (POSIX Layer)} \citep{POSIX}. Mit diesem \textit{Layer} stehen eine große Menge an aktuellen
Bibliotheken, aus der \textit{Open-Source} Gemeinde, zur Verfügung. Diese haben den Vorteil, dass sie aktiv
-weiterentwickelt werden und auch ständig neue Bibliotheken erscheinen. Anwendungen die auf einem \textit{Linux}-System entwickelt
-wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
-Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll,
+weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
+entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
+Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll
wenn es auf ein neues Gerät portiert wird.\newline
\subsection{Betriebsysteme für mobile Geräte}
-Wie schon erwähnt ist die Wahl einer geeigneten Plattform nicht unerheblich. Im Folgenden werden fünf Betriebssysteme für mobile
+Wie schon erwähnt ist die Wahl einer geeigneten Plattform von nicht unerheblicher Wichtigkeit, da hier schon indirekt eine
+Vorauswahl an Nutzbaren Bibliotheken und Programmiersprachen getroffen wird. Im Folgenden werden fünf Betriebssysteme für mobile
Plattformen vorgestellt und auf deren Portierungsmöglichkeiten eingegangen.
\subsubsection{Windows Mobile}
Der wohl bekannteste Vertreter ist \textit{Windows Mobile}. Die aktuelle Version 6.5 wurde von Microsoft
-auch \textit{Windows Phone} betitelt. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
+mit \textit{Windows Phone} betitelt. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. \textit{Windows Phone} besitzt keinen
\textit{POSIX Layer}, allerdings existiert ein \textit{Cross-Compiler} names \textit{CeGCC} \citep{CeGCC}, mit welchem
Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.\newline
@@ -52,13 +53,13 @@ Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform
Das von \textit{Google} entwickelte \textit{Android} \citep{Android} setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser
Kernel kümmert sich um die Prozess- und Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage
-setzt ein virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
+setzt eine virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
\textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im Moment eben auf diese beschränken. Des weiteren bietet
\textit{Google} mittlerweile ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder \textit{C++}
zu schreiben. In diesem Paket werden auch eine Hand voll Bibliotheken mitgeliefert, welchen stabil laufen. \textit{Google} rät
-allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} gelieferten stabil auf den Geräten sind.
+allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} laut Hersteller stabil auf den Geräten laufen.
Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken unterstützt werden, sicher
interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
@@ -75,10 +76,10 @@ Layer} zu nutzen.\newline
Bei \textit{iPhoneOS} \citep{iPhoneOS} handelt es sich um eine abgeänderte und angepasste Version von MacOS. Es wurde eigens für
das iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
-unterstützt. Des weiteren fehlt auch eine Unterstützung des \textit{POSIX Layers}. Der größte Kritikpunkt an diesem System dürfte
-allerdings das fehlen von \textit{Multitasking}-Unterstützung sein. Somit ist es nicht möglich zwei Anwendungen parallel
-auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier häufig weitere Dienste im
-Hintergrund aktiv sein sollten.\newline
+unterstützt. Des weiteren fehlt auch eine Unterstützung des \textit{POSIX Layers} oder einer anderen Abstraktion dieser Art. Der
+größte Kritikpunkt an diesem System dürfte allerdings das fehlen von \textit{Multitasking}-Unterstützung sein. Somit ist es nicht
+möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
+häufig weitere Dienste im Hintergrund aktiv sein sollten.\newline
\subsubsection{Symbian OS}
@@ -90,7 +91,7 @@ ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS
\subsubsection{Zielplattform}
Die Wahl der Zielplattform ist auf \textit{Windows Mobile} gefallen, da es hier möglich ist das Programm in \textit{C} zu
-schreiben und dann im Anschluss nach \textit{Windows Mobile} zu portieren. \newline
+schreiben und dann im Anschluss zu portieren. \newline
\textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
geplanten Dienst wichtig, da hier Prozesse im Hintergund stattfinden werden und dies auf einem solchen System nicht realisierbar
wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nicht alle Bibliotheken
@@ -100,13 +101,13 @@ kompilieren.
\subsection{Softwaregrundlagen}
-Aufgrund der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
+Anhand der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
\subsubsection{CeGCC}
Da \textit{Windows Mobile} und die Programmiersprache \textit{C} genutzt wird, wird der \textit{CeGCC} als
-\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde nach
+\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde, nach
\textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
\textit{GCC}. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
ausführbaren Dateien erstellt werden.\newline
@@ -114,8 +115,8 @@ ausführbaren Dateien erstellt werden.\newline
Es wird zwischen zwei verschiedenen Arten des \textit{CeGCC's} unterschieden. Zum Einen \textit{CeGCC}, zum Anderen
\textit{mingw32ce}.
Der Unterschied zwischen diesen beiden Kompilern besteht darin, dass ersterer nur dann benutzt wird, wenn man nur Linux
-Bibliotheken einbinden möchte. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
-Bibliotheken nutzt.\newline
+Bibliotheken einbinden möchte. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn auch \textit{Windows Mobile}
+Bibliotheken zum Einstatz kommen.\newline
Soll das Programm nun für \textit{WebOS} oder \textit{SymbianOS} portiert werden, kann dies auf unter \textit{Linux} normal
kompiliert werden.
@@ -124,7 +125,7 @@ kompiliert werden.
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
ansprechend darzustellen sowie eine einfache Bedienbarkeit zu garantieren. Dieses Frontend sollte auch in \textit{C} oder
-\textit{C++} geschrieben sein um auch hier die Portierbarkeit für die gewünschten Plattformen zu garantieren. Hier fiel die Wahl
+\textit{C++} geschrieben sein, um auch hier die Portierbarkeit für die gewünschten Plattformen zu garantieren. Hier fiel die Wahl
auf das freie, seit 1997 existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen
Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}.
\textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
@@ -145,7 +146,7 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
\caption{Aufbau von \textit{Enlightenment}}
\end{figure}
-Bei \textit{Ecore} handelt es sich um eine \textit{library} welche das serialisieren von mehreren Programmteilen ermöglicht und
+Bei \textit{Ecore} handelt es sich um eine Bibliothek welche das serialisieren von mehreren Programmteilen ermöglicht und
für den Betrieb auf mobilen Geräten optimiert wurde. \textit{Edje} ist eine komplexe grafische Design und Layout Bibliothek,
welche mit einer internen \textit{state machine} und einem Zustandsgraphen speichert was wo, in welcher Farbe und wie sichtbar
ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
diff --git a/ausarbeitung/horneck@fawp10.informatik.uni-freiburg.de b/ausarbeitung/horneck@fawp10.informatik.uni-freiburg.de
new file mode 100644
index 0000000..c4460a5
--- /dev/null
+++ b/ausarbeitung/horneck@fawp10.informatik.uni-freiburg.de
Binary files differ
diff --git a/ausarbeitung/literature.bib b/ausarbeitung/literature.bib
index 6c2ee0d..d56b53c 100644
--- a/ausarbeitung/literature.bib
+++ b/ausarbeitung/literature.bib
@@ -159,4 +159,12 @@ journal = {Personal and Ubiquitous Computing},
pages = {70-79},
volume = {Volume 7},
number = {1},
+}
+
+@article{blowfish,
+title = {Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)},
+author = {Bruce Schneier},
+year = {1994},
+journal = {Fast Software Encryption, Cambridge Security Workshop Proceedings},
+pages = {191-204},
} \ No newline at end of file
diff --git a/ausarbeitung/literature.bib~ b/ausarbeitung/literature.bib~
index caf72d1..ab279e0 100644
--- a/ausarbeitung/literature.bib~
+++ b/ausarbeitung/literature.bib~
@@ -158,5 +158,13 @@ year = {2003},
journal = {Personal and Ubiquitous Computing},
pages = {70-79},
volume = {Volume 7},
-number = {No. 1},
+number = {1},
+}
+
+@artice{blowfish,
+title = {Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)},
+author = {Bruce Schneier},
+year = {1994},
+journal = {Fast Software Encryption, Cambridge Security Workshop Proceedings},
+pages = {191-204},
} \ No newline at end of file
diff --git a/ausarbeitung/maindoc.aux b/ausarbeitung/maindoc.aux
index 8af28ed..7e0c680 100644
--- a/ausarbeitung/maindoc.aux
+++ b/ausarbeitung/maindoc.aux
@@ -48,7 +48,8 @@
\bibcite{privacy}{{21}{2003}{{Beresford und Stajano}}{{}}}
\bibcite{location}{{22}{2003}{{Kaasinen}}{{}}}
\bibcite{FriendSensing}{{23}{2009}{{Quercia und Capra}}{{}}}
-\bibcite{bluetooth}{{24}{2005}{{Shaked und Wool}}{{}}}
-\bibcite{SPALS}{{25}{2009}{{Welke und Rechert}}{{}}}
+\bibcite{blowfish}{{24}{1994}{{Schneier}}{{}}}
+\bibcite{bluetooth}{{25}{2005}{{Shaked und Wool}}{{}}}
+\bibcite{SPALS}{{26}{2009}{{Welke und Rechert}}{{}}}
\bibstyle{dinat}
\citation{*}
diff --git a/ausarbeitung/maindoc.bbl b/ausarbeitung/maindoc.bbl
index 477a5f4..af1343a 100644
--- a/ausarbeitung/maindoc.bbl
+++ b/ausarbeitung/maindoc.bbl
@@ -1,4 +1,4 @@
-\begin{thebibliography}{25}
+\begin{thebibliography}{26}
% this bibliography was produced with the style dinat.bst v2.5
\makeatletter
\newcommand{\dinatlabel}[1]%
@@ -130,6 +130,14 @@
\url{web.mit.edu/quercia/www/publications/friendSensing_short.pdf}. --
\newblock [Online; letzter Aufruf 27.01.2010]
+\bibitem[Schneier(1994)]{blowfish}
+\dinatlabel{Schneier 1994} \textsc{Schneier}, Bruce:
+\newblock Description of a New Variable-Length Key, 64-Bit Block Cipher
+ (Blowfish).
+\newblock In: \emph{Fast Software Encryption, Cambridge Security Workshop
+ Proceedings}
+\newblock (1994), S.~191--204
+
\bibitem[Shaked und Wool(2005)]{bluetooth}
\dinatlabel{Shaked und Wool 2005} \textsc{Shaked}, Yaniv~; \textsc{Wool},
Avishai:
diff --git a/ausarbeitung/maindoc.blg b/ausarbeitung/maindoc.blg
index 709ca1b..7be59b9 100644
--- a/ausarbeitung/maindoc.blg
+++ b/ausarbeitung/maindoc.blg
@@ -31,45 +31,45 @@ Warning--to sort, need author or key in IRCD
Warning--to sort, need author or key in xchat
Warning--to sort, need author or key in Windows
Warning--to sort, need author or key in PalmOS
-You've used 25 entries,
+You've used 26 entries,
3552 wiz_defined-function locations,
- 908 strings with 8194 characters,
-and the built_in function-call counts, 9371 in all, are:
-= -- 1147
-> -- 47
-< -- 82
-+ -- 120
-- -- 28
-* -- 867
-:= -- 1447
-add.period$ -- 5
-call.type$ -- 25
-change.case$ -- 105
-chr.to.int$ -- 25
-cite$ -- 85
-duplicate$ -- 352
-empty$ -- 927
-format.name$ -- 58
-if$ -- 2096
+ 914 strings with 8364 characters,
+and the built_in function-call counts, 9999 in all, are:
+= -- 1224
+> -- 54
+< -- 90
++ -- 130
+- -- 31
+* -- 920
+:= -- 1543
+add.period$ -- 6
+call.type$ -- 26
+change.case$ -- 109
+chr.to.int$ -- 26
+cite$ -- 86
+duplicate$ -- 369
+empty$ -- 980
+format.name$ -- 64
+if$ -- 2232
int.to.chr$ -- 0
int.to.str$ -- 1
-missing$ -- 12
-newline$ -- 139
-num.names$ -- 20
-pop$ -- 197
+missing$ -- 16
+newline$ -- 145
+num.names$ -- 24
+pop$ -- 205
preamble$ -- 1
-purify$ -- 84
+purify$ -- 88
quote$ -- 0
-skip$ -- 278
+skip$ -- 299
stack$ -- 0
-substring$ -- 583
-swap$ -- 42
-text.length$ -- 9
+substring$ -- 659
+swap$ -- 44
+text.length$ -- 10
text.prefix$ -- 0
top$ -- 0
-type$ -- 275
+type$ -- 286
warning$ -- 20
-while$ -- 77
+while$ -- 84
width$ -- 0
-write$ -- 217
+write$ -- 227
(There were 20 warnings)
diff --git a/ausarbeitung/maindoc.log b/ausarbeitung/maindoc.log
index 1a50faf..8c2bc6d 100644
--- a/ausarbeitung/maindoc.log
+++ b/ausarbeitung/maindoc.log
@@ -1,7 +1,7 @@
-This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 18 FEB 2010 19:46
+This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=pdflatex 2009.12.22) 20 FEB 2010 12:39
entering extended mode
%&-line parsing enabled.
-**maindoc.tex
+**maindoc
(./maindoc.tex
LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, noh
@@ -649,6 +649,12 @@ Underfull \hbox (badness 10000) in paragraph at lines 30--36
]
+Overfull \hbox (13.28693pt too wide) in paragraph at lines 39--82
+\OT1/ptm/m/n/12 k[]onnen die Mit-glieder dieser Gruppe nun ihre Po-si-tions-dat
+-en aus-tauschen, ohne diese M[]oglichweise
+ []
+
+
Underfull \hbox (badness 10000) in paragraph at lines 39--82
[]
@@ -773,13 +779,7 @@ Underfull \hbox (badness 10000) in paragraph at lines 12--26
[]
-Overfull \hbox (16.10585pt too wide) in paragraph at lines 29--31
-\OT1/ptm/m/n/12 den f[]unf Be-trieb-ssys-teme f[]ur mo-bile Plat-tfor-men vorge
-stellt und auf deren Portierungsm[]oglichkeiten
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 34--39
+Underfull \hbox (badness 10000) in paragraph at lines 35--40
[]
@@ -787,44 +787,44 @@ Underfull \hbox (badness 10000) in paragraph at lines 34--39
]
-Underfull \hbox (badness 10000) in paragraph at lines 53--56
+Underfull \hbox (badness 10000) in paragraph at lines 54--57
[]
-Underfull \hbox (badness 10000) in paragraph at lines 57--64
+Underfull \hbox (badness 10000) in paragraph at lines 58--65
[]
-Underfull \hbox (badness 10000) in paragraph at lines 67--73
+Underfull \hbox (badness 10000) in paragraph at lines 68--74
[]
-Underfull \hbox (badness 10000) in paragraph at lines 76--82
+Underfull \hbox (badness 10000) in paragraph at lines 77--83
[]
[9]
-Overfull \hbox (0.91805pt too wide) in paragraph at lines 92--100
+Overfull \hbox (0.91805pt too wide) in paragraph at lines 93--101
\OT1/ptm/m/it/12 iPhoneOS \OT1/ptm/m/n/12 wurde auf-grund sein-er man-gel-nden
\OT1/ptm/m/it/12 Mul-ti-task-ing\OT1/ptm/m/n/12 -Unterst[]utzung aus-geschlosse
n. Diese
[]
-Underfull \hbox (badness 10000) in paragraph at lines 108--113
+Underfull \hbox (badness 10000) in paragraph at lines 109--114
[]
[10]
-Underfull \hbox (badness 10000) in paragraph at lines 114--119
+Underfull \hbox (badness 10000) in paragraph at lines 115--120
[]
-Overfull \hbox (3.26653pt too wide) in paragraph at lines 125--131
+Overfull \hbox (3.26653pt too wide) in paragraph at lines 126--132
\OT1/ptm/m/n/12 auch f[]ur den Be-nutzer ansprechend darzustellen sowie eine ei
n-fache Be-di-en-barkeit zu garantieren.
[]
@@ -836,36 +836,37 @@ File: Bilder/elm-app-01_2.png Graphic file (type png)
<Bilder/elm-app-02_2.png, id=251, 206.48572pt x 405.22821pt>
File: Bilder/elm-app-02_2.png Graphic file (type png)
-<use Bilder/elm-app-02_2.png> [11 <./Bilder/elm-app-01_2.png> <./Bilder/elm-app
--02_2.png>] <Bilder/efl.png, id=261, 48.18pt x 72.27pt>
+<use Bilder/elm-app-02_2.png>
+
+LaTeX Warning: `h' float specifier changed to `ht'.
+
+<Bilder/efl.png, id=252, 48.18pt x 72.27pt>
File: Bilder/efl.png Graphic file (type png)
<use Bilder/efl.png>
-Overfull \hbox (7.29773pt too wide) in paragraph at lines 148--154
-[]\OT1/ptm/m/n/12 Bei \OT1/ptm/m/it/12 Ecore \OT1/ptm/m/n/12 han-delt es sich u
-m eine \OT1/ptm/m/it/12 li-brary \OT1/ptm/m/n/12 welche das se-ri-al-isieren vo
-n mehreren Pro-grammteilen
- []
+LaTeX Warning: `h' float specifier changed to `ht'.
-Underfull \hbox (badness 10000) in paragraph at lines 148--154
+
+Underfull \hbox (badness 10000) in paragraph at lines 149--155
[]
-) [12 <./Bilder/efl.png>]
+) [11] [12 <./Bilder/elm-app-01_2.png> <./Bilder/elm-app-02_2.png> <./Bilder/ef
+l.png>]
\openout2 = `Friend_Finder.aux'.
(./Friend_Finder.tex
<Bilder/ablauf.png, id=268, 546.54187pt x 597.73312pt>
File: Bilder/ablauf.png Graphic file (type png)
<use Bilder/ablauf.png>
-Overfull \hbox (19.98601pt too wide) in paragraph at lines 31--40
+Overfull \hbox (19.98601pt too wide) in paragraph at lines 30--39
\OT1/ptm/m/n/12 Zum Er-stellen der Ober-fl[]ache wurde \OT1/ptm/m/it/12 En-ligh
t-en-ment \OT1/ptm/m/n/12 ver-wen-det. Diese Bib-lio-thek stellt alle ben[]otig
ten
[]
-Underfull \hbox (badness 10000) in paragraph at lines 43--47
+Underfull \hbox (badness 10000) in paragraph at lines 42--46
[]
@@ -873,20 +874,19 @@ Underfull \hbox (badness 10000) in paragraph at lines 43--47
]
-Underfull \hbox (badness 10000) in paragraph at lines 48--63
+Underfull \hbox (badness 10000) in paragraph at lines 47--63
[]
[14 <./Bilder/ablauf.png>]
-<Bilder/chat.png, id=282, 338.76563pt x 450.18187pt>
+<Bilder/chat.png, id=286, 338.76563pt x 450.18187pt>
File: Bilder/chat.png Graphic file (type png)
<use Bilder/chat.png>
-[15 <./Bilder/chat.png>]
Underfull \hbox (badness 10000) in paragraph at lines 80--89
[]
-
+[15 <./Bilder/chat.png>]
Overfull \hbox (17.9312pt too wide) in paragraph at lines 90--92
[]\OT1/ptm/m/n/12 Auch hi-er wird, wie beim Versenden der Nachricht-en zum Ver-
schl[]usseln der \OT1/ptm/m/it/12 Blowfish-Algorithmus
@@ -897,56 +897,50 @@ Underfull \hbox (badness 10000) in paragraph at lines 95--104
[]
-[16] <Bilder/barcode.png, id=299, 337.26pt x 450.9347pt>
+[16] <Bilder/barcode.png, id=302, 337.26pt x 450.9347pt>
File: Bilder/barcode.png Graphic file (type png)
<use Bilder/barcode.png>
-Underfull \hbox (badness 10000) in paragraph at lines 128--134
+Underfull \hbox (badness 10000) in paragraph at lines 129--135
[]
-[17 <./Bilder/barcode.png>]
-Underfull \hbox (badness 10000) in paragraph at lines 135--140
- []
+Underfull \hbox (badness 10000) in paragraph at lines 136--141
+ []
-Underfull \hbox (badness 10000) in paragraph at lines 148--163
+[17 <./Bilder/barcode.png>]
+Underfull \hbox (badness 10000) in paragraph at lines 149--165
[]
-Underfull \hbox (badness 10000) in paragraph at lines 164--170
+Underfull \hbox (badness 10000) in paragraph at lines 166--173
[]
[18]
-Overfull \hbox (4.52718pt too wide) in paragraph at lines 173--184
+Overfull \hbox (4.52718pt too wide) in paragraph at lines 176--187
\OT1/ptm/m/n/12 Wenn $\OML/ztmcm/m/it/12 h$ \OT1/ptm/m/n/12 die Gr[]o^^Ye des \
OT1/ptm/m/it/12 TCP-Headers \OT1/ptm/m/n/12 und $\OML/ztmcm/m/it/12 t$ \OT1/ptm
/m/n/12 die An-zahl der Ze-ichen der un-ver-schl[]usselten Nachricht
[]
-Overfull \hbox (15.74675pt too wide) in paragraph at lines 187--199
+Overfull \hbox (15.74675pt too wide) in paragraph at lines 190--202
\OT1/ptm/m/n/12 Wie schon erw[]ahnt, wer-den die Po-si-tions-dat-en beim Sender
aufgeteilt und mit vi-er un-ter-schiedlichen
[]
-[19] <Bilder/verbindungen.png, id=326, 408.77719pt x 360.59718pt>
+[19] <Bilder/verbindungen.png, id=329, 408.77719pt x 360.59718pt>
File: Bilder/verbindungen.png Graphic file (type png)
<use Bilder/verbindungen.png>) [20] [21 <./Bilder/verbindungen.png>]
\openout2 = `Fazit.aux'.
-(./Fazit.tex)
-Overfull \hbox (1.00261pt too wide) in paragraph at lines 3--121
-\OT1/ptm/m/n/12 nungszeit der Ver-schl[]usselung kann bei richtiger Im-ple-men-
-tierung ger-ing gehal-ten wer-den. Somit
- []
-
-[22
+(./Fazit.tex) [22
]
@@ -957,184 +951,124 @@ Underfull \hbox (badness 10000) in paragraph at lines 9--13
[]
-
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 56--56
-[]\OT1/cmtt/m/n/12 export CPPFLAGS="-I$WINCE_PATH/include -I$WINCE_PATH/zlib-1.
-2.3-dev/include[]
- []
-
[23
-]
-Overfull \hbox (14.754pt too wide) in paragraph at lines 56--56
-[] \OT1/cmtt/m/n/12 -I$WINCE_PATH/win_iconv-dev/include -I/opt/mingw32ce/arm-mi
-ngw32ce/include/"[]
- []
-
-[24] [25] [26]
-Overfull \hbox (13.83946pt too wide) in paragraph at lines 198--201
+] [24] [25] [26]
+Overfull \hbox (13.83946pt too wide) in paragraph at lines 201--204
\OT1/ptm/m/n/12 be-liebi-gen Ed-i-tor ge[]offnet wer-den und in bei-den Dateien
der Wert von ''pre-fix`` auf ''WINCE[]PATH``
[]
-Overfull \hbox (20.929pt too wide) in paragraph at lines 212--212
-[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --di
-sable-async-events[]
- []
-
-
-Overfull \hbox (15.93102pt too wide) in paragraph at lines 228--231
+Overfull \hbox (15.93102pt too wide) in paragraph at lines 232--235
[]\OT1/ptm/m/n/12 Allerdings wird sie im Ord-ner ''freetype2`` nicht ge-fun-den
. Um dies zu umge-hen muss ''ft2build.h``
[]
-Overfull \hbox (169.12907pt too wide) in paragraph at lines 234--234
+Overfull \hbox (169.12907pt too wide) in paragraph at lines 238--238
[] \OT1/cmtt/m/n/12 cp $WINCE_PATH/freetype-2.3.7-dev/include/freetype2/ft2buil
d.h $WINCE_PATH/freetype-2.3.7-dev/include[]
[]
-[27]
-Overfull \hbox (33.279pt too wide) in paragraph at lines 269--269
-[] \OT1/cmtt/m/n/12 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRE
-D|SYNCHRONIZE|0xfff)[]
- []
-
-[28]
-Overfull \hbox (119.72905pt too wide) in paragraph at lines 314--314
-[] \OT1/cmtt/m/n/12 ./autogen.sh --prefix=$WINCE_PATH --host=arm-mingw32ce --wi
-th-edje-cc=$WINCE_PATH/bin/edje_cc[]
- []
-
-
-Overfull \hbox (40.46509pt too wide) in paragraph at lines 316--319
+[27] [28]
+Overfull \hbox (40.46509pt too wide) in paragraph at lines 322--325
\OT1/ptm/m/n/12 muss man im in der Datei ``Make-file.am'' im Ord-ner ``sr-c/bin
/'' alle Vorkomm-nisse von ``test[]fileselector.c''
[]
[29]
-LaTeX Font Info: Try loading font information for OMS+ptm on input line 355.
+LaTeX Font Info: Try loading font information for OMS+ptm on input line 361.
(/usr/share/texmf-texlive/tex/latex/psnfss/omsptm.fd
File: omsptm.fd
)
LaTeX Font Info: Font shape `OMS/ptm/m/n' in size <12> not available
-(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 355.
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 361.
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 355--357
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 361--363
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / zlib-[]1 . 2 .
[]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 357--359
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 363--365
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / zlib-[]1 . 2 .
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 359--361
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 365--367
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libjpeg-[]6b /
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 361--363
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 367--369
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libjpeg-[]6b /
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 369--371
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 375--377
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / freetype-[]2 .
[]
-Overfull \hbox (19.92868pt too wide) in paragraph at lines 371--373
+Overfull \hbox (19.92868pt too wide) in paragraph at lines 377--379
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / freetype-[]2 .
[]
[30]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 373--375
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 379--381
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libpng-[]1 .
[]
-Overfull \hbox (7.57867pt too wide) in paragraph at lines 375--377
+Overfull \hbox (7.57867pt too wide) in paragraph at lines 381--383
[][]$\OT1/cmtt/m/n/12 http : / / sourceforge . net / projects / cegcc / files /
ported % 20packages / libpng-[]1 .
[]
-[31] [32]
-Overfull \hbox (14.754pt too wide) in paragraph at lines 501--501
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/eet/mingw32ce-a
-rm/loader_eet.dll[]
- []
-
-
-Overfull \hbox (27.104pt too wide) in paragraph at lines 501--501
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/jpeg/mingw32ce-
-arm/loader_jpeg.dll[]
- []
-
-
-Overfull \hbox (39.45401pt too wide) in paragraph at lines 501--501
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/pmaps/mingw32ce
--arm/loader_pmaps.dll[]
- []
-
-
-Overfull \hbox (14.754pt too wide) in paragraph at lines 501--501
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/png/mingw32ce-a
-rm/loader_png.dll[]
- []
-
-
-Overfull \hbox (14.754pt too wide) in paragraph at lines 501--501
-[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/loaders/xpm/mingw32ce-a
-rm/loader_xpm.dll[]
- []
-
-
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 501--501
+[31] [32] [33]
+Overfull \hbox (2.40399pt too wide) in paragraph at lines 512--512
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/savers/eet/mingw32ce-ar
m/saver_eet.dll[]
[]
-Overfull \hbox (2.40399pt too wide) in paragraph at lines 501--501
+Overfull \hbox (2.40399pt too wide) in paragraph at lines 512--512
[]\OT1/cmtt/m/n/12 arm-mingw32ce-strip efl/evas/modules/savers/png/mingw32ce-ar
m/saver_png.dll[]
[]
-[33]) [34] (./maindoc.bbl [35
+) [34] (./maindoc.bbl [35
-]) [36] (./maindoc.aux (./Title.aux)
-(./Erklaerung.aux) (./Einleitung.aux) (./Grundlagen.aux) (./Tutorial.aux)
-(./Friend_Finder.aux) (./Fazit.aux) (./Anhang.aux)) )
+]) [36] (./maindoc.aux (./Title.aux) (./Erklaerung.aux) (./Einleitung.aux) (./G
+rundlagen.aux) (./Tutorial.aux) (./Friend_Finder.aux)
+(./Fazit.aux) (./Anhang.aux)) )
Here is how much of TeX's memory you used:
- 8740 strings out of 95086
- 119896 string characters out of 1183254
- 200715 words of memory out of 1500000
- 11546 multiletter control sequences out of 10000+50000
+ 8742 strings out of 95086
+ 119919 string characters out of 1183254
+ 200743 words of memory out of 1500000
+ 11547 multiletter control sequences out of 10000+50000
24736 words of font info for 62 fonts, out of 1200000 for 2000
28 hyphenation exceptions out of 8191
- 35i,11n,46p,307b,538s stack positions out of 5000i,500n,6000p,200000b,5000s
-{/usr/share/texmf-texlive/
-fonts/enc/dvips/base/8r.enc}</usr/share/texmf-texlive/fonts/type1/bluesky/cm/cm
-mi10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr10.pfb></usr/share
-/texmf-texlive/fonts/type1/bluesky/cm/cmssbx10.pfb></usr/share/texmf-texlive/fo
-nts/type1/bluesky/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/c
-m/cmtt12.pfb></usr/share/texmf-texlive/fonts/type1/urw/times/utmr8a.pfb></usr/s
-hare/texmf-texlive/fonts/type1/urw/times/utmri8a.pfb>
-Output written on maindoc.pdf (38 pages, 1467630 bytes).
+ 35i,11n,46p,303b,538s stack positions out of 5000i,500n,6000p,200000b,5000s
+{/usr/share/texmf-texlive/fonts/enc/dvips/base/8
+r.enc}</usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmmi10.pfb></usr/share/t
+exmf-texlive/fonts/type1/bluesky/cm/cmr10.pfb></usr/share/texmf-texlive/fonts/t
+ype1/bluesky/cm/cmssbx10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/c
+msy10.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmtt12.pfb></usr/sha
+re/texmf-texlive/fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/fon
+ts/type1/urw/times/utmri8a.pfb>
+Output written on maindoc.pdf (38 pages, 1489036 bytes).
PDF statistics:
- 513 PDF objects out of 1000 (max. 8388607)
- 117 named destinations out of 1000 (max. 131072)
+ 516 PDF objects out of 1000 (max. 8388607)
+ 118 named destinations out of 1000 (max. 131072)
305 words of extra memory for PDF output out of 10000 (max. 10000000)
diff --git a/ausarbeitung/maindoc.pdf b/ausarbeitung/maindoc.pdf
index 466717f..fc2d6a4 100644
--- a/ausarbeitung/maindoc.pdf
+++ b/ausarbeitung/maindoc.pdf
Binary files differ
diff --git a/ausarbeitung/maindoc.toc b/ausarbeitung/maindoc.toc
index e3addd2..a27b9f8 100644
--- a/ausarbeitung/maindoc.toc
+++ b/ausarbeitung/maindoc.toc
@@ -20,10 +20,10 @@
\contentsline {section}{\numberline {4}Friend Finder}{13}{section.4}
\contentsline {subsection}{\numberline {4.1}Verwendete Verfahren und Bibliotheken}{13}{subsection.4.1}
\contentsline {subsubsection}{\numberline {4.1.1}Grafisches Benutzeroberfl\IeC {\"a}che}{13}{subsubsection.4.1.1}
-\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{14}{subsubsection.4.1.2}
+\contentsline {subsubsection}{\numberline {4.1.2}Versenden der Nachrichten}{13}{subsubsection.4.1.2}
\contentsline {subsubsection}{\numberline {4.1.3}Versenden der eigenen Position}{16}{subsubsection.4.1.3}
\contentsline {subsubsection}{\numberline {4.1.4}Empfangen der eigenen Position}{16}{subsubsection.4.1.4}
-\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{17}{subsubsection.4.1.5}
+\contentsline {subsubsection}{\numberline {4.1.5}Erzeugen eines 2D-Barcodes}{16}{subsubsection.4.1.5}
\contentsline {subsection}{\numberline {4.2}Analyse}{17}{subsection.4.2}
\contentsline {subsubsection}{\numberline {4.2.1}Allgemeiner Datenverkehr}{18}{subsubsection.4.2.1}
\contentsline {subsubsection}{\numberline {4.2.2}Versenden und Empfangen von Nachrichten}{19}{subsubsection.4.2.2}