summaryrefslogtreecommitdiffstats
path: root/notFinishedCode
diff options
context:
space:
mode:
authorTriatmoko2011-10-11 22:53:26 +0200
committerTriatmoko2011-10-11 22:53:26 +0200
commit4493c786de92d6b16aeac3f29202c8084d45f0d7 (patch)
treeb4604ffb5a75b0020d1849d15075466e264c2c35 /notFinishedCode
parentsmall edit (diff)
parentnew controller for talk with website. now website can sign task directly to c... (diff)
downloadgsm-selftest-4493c786de92d6b16aeac3f29202c8084d45f0d7.tar.gz
gsm-selftest-4493c786de92d6b16aeac3f29202c8084d45f0d7.tar.xz
gsm-selftest-4493c786de92d6b16aeac3f29202c8084d45f0d7.zip
Merge branch 'master' of lab.ks.uni-freiburg.de:lsfks/projekte/gsm-selftest
Diffstat (limited to 'notFinishedCode')
-rw-r--r--notFinishedCode/Report/ClientClass.pngbin0 -> 10718 bytes
-rw-r--r--notFinishedCode/Report/ServerHandlerClass.pngbin0 -> 7930 bytes
-rw-r--r--notFinishedCode/Report/dbClass.pngbin0 -> 31578 bytes
-rw-r--r--notFinishedCode/Report/serialPort.pngbin0 -> 16604 bytes
-rw-r--r--notFinishedCode/Report/test.aux68
-rw-r--r--notFinishedCode/Report/test.log89
-rw-r--r--notFinishedCode/Report/test.pdfbin608509 -> 698250 bytes
-rw-r--r--notFinishedCode/Report/test.tex78
-rw-r--r--notFinishedCode/Report/test.tex.backup93
-rw-r--r--notFinishedCode/Report/test.tex~78
-rw-r--r--notFinishedCode/Report/test.toc30
11 files changed, 322 insertions, 114 deletions
diff --git a/notFinishedCode/Report/ClientClass.png b/notFinishedCode/Report/ClientClass.png
new file mode 100644
index 0000000..9df72cc
--- /dev/null
+++ b/notFinishedCode/Report/ClientClass.png
Binary files differ
diff --git a/notFinishedCode/Report/ServerHandlerClass.png b/notFinishedCode/Report/ServerHandlerClass.png
new file mode 100644
index 0000000..cfd4985
--- /dev/null
+++ b/notFinishedCode/Report/ServerHandlerClass.png
Binary files differ
diff --git a/notFinishedCode/Report/dbClass.png b/notFinishedCode/Report/dbClass.png
new file mode 100644
index 0000000..8f56a59
--- /dev/null
+++ b/notFinishedCode/Report/dbClass.png
Binary files differ
diff --git a/notFinishedCode/Report/serialPort.png b/notFinishedCode/Report/serialPort.png
new file mode 100644
index 0000000..4ed398b
--- /dev/null
+++ b/notFinishedCode/Report/serialPort.png
Binary files differ
diff --git a/notFinishedCode/Report/test.aux b/notFinishedCode/Report/test.aux
index 4bb90ba..a73f014 100644
--- a/notFinishedCode/Report/test.aux
+++ b/notFinishedCode/Report/test.aux
@@ -6,39 +6,53 @@
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction and Motivation}{3}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Requirements}{4}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Database design}{5}}
+\citation{mysqlManual}
+\citation{wiki}
+\citation{wiki}
\@writefile{toc}{\contentsline {section}{\numberline {4}Software design}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Database access}{6}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Controlling the cell phones}{6}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}subsection}{6}}
+\citation{socket}
+\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces }}{7}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Client and Server model}{7}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces }}{7}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{8}}
\citation{beagleDataSheet}
-\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware design}{7}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}BeagleBoard}{7}}
-\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{7}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Cell phones}{8}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{8}}
-\@writefile{toc}{\contentsline {section}{\numberline {6}Communication protocol}{9}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Hanlder side}{9}}
-\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces }}{9}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces }}{9}}
-\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{9}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{10}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware design}{9}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}BeagleBoard}{9}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{9}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Cell phones}{10}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{10}}
+\citation{spin}
+\citation{spin}
+\citation{wiki}
+\@writefile{toc}{\contentsline {section}{\numberline {6}Communication protocol}{11}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Hanlder side}{11}}
+\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{11}}
+\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces }}{11}}
+\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces }}{11}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{12}}
\citation{sshTunnel}
-\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{11}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{11}}
-\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{11}}
+\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{13}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{13}}
+\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces }}{13}}
\citation{https}
-\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{12}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{14}}
\citation{https}
\citation{https}
-\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{16}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{16}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{16}}
+\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{18}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{18}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{18}}
\citation{pChart}
-\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{17}}
-\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{18}}
-\bibcite{site1}{1}
-\bibcite{sshTunnel}{2}
-\bibcite{https}{3}
-\bibcite{pChart}{4}
-\bibcite{beagleDataSheet}{5}
-\newlabel{LastPage}{{}{19}}
+\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces }}{19}}
+\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{20}}
+\bibcite{mysqlManual}{1}
+\bibcite{wiki}{2}
+\bibcite{socket}{3}
+\bibcite{spin}{4}
+\bibcite{sshTunnel}{5}
+\bibcite{https}{6}
+\bibcite{pChart}{7}
+\bibcite{beagleDataSheet}{8}
+\newlabel{LastPage}{{}{21}}
diff --git a/notFinishedCode/Report/test.log b/notFinishedCode/Report/test.log
index 814f81b..f9cb449 100644
--- a/notFinishedCode/Report/test.log
+++ b/notFinishedCode/Report/test.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 9 OCT 2011 21:08
+This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 11 OCT 2011 14:52
entering extended mode
%&-line parsing enabled.
**test.tex
@@ -298,82 +298,105 @@ Class scrartcl Info: You've told me to use the font selection of the element
\tf@toc=\write4
\openout4 = `test.toc'.
- [2] [3]
-[4] [5] [6] <bb.jpg, id=28, 521.95pt x 516.93124pt>
+ [2] [3
+
+]
+[4
+
+] [5] <dbClass.png, id=24, 660.34941pt x 620.67177pt>
+File: dbClass.png Graphic file (type png)
+ <use dbClass.png>
+<serialPort.png, id=25, 518.64352pt x 371.26941pt>
+File: serialPort.png Graphic file (type png)
+ <use serialPort.png>
+[6 <./dbClass.png (PNG copy)>]
+<ServerHandlerClass.png, id=31, 359.3425pt x 181.67876pt>
+File: ServerHandlerClass.png Graphic file (type png)
+
+<use ServerHandlerClass.png>
+<ClientClass.png, id=32, 507.30705pt x 256.48764pt>
+File: ClientClass.png Graphic file (type png)
+ <use ClientClass.png>
+[7 <./serialPort.png (PNG copy)> <./ServerHandlerClass.png (PNG copy)>]
+[8 <./ClientClass.png (PNG copy)>] <bb.jpg, id=40, 521.95pt x 516.93124pt>
File: bb.jpg Graphic file (type jpg)
- <use bb.jpg> [7 <./bb.jpg>] [8] <protocolCommunicationHandler.png, id=36, 2486
-.93823pt x 792.13588pt>
+
+<use bb.jpg> [9
+
+ <./bb.jpg>] [10]
+<protocolCommunicationHandler.png, id=48, 2486.93823pt x 792.13588pt>
File: protocolCommunicationHandler.png Graphic file (type png)
<use protocolCommunicationHandler.png>
-<protocolCommunicationcControllerReceiver.png, id=37, 1808.16705pt x 766.62883p
+<protocolCommunicationcControllerReceiver.png, id=49, 1808.16705pt x 766.62883p
t>
File: protocolCommunicationcControllerReceiver.png Graphic file (type png)
<use protocolCommunicationcControllerReceiver.png>
-<protocolCommunicationcControllerCaller.png, id=38, 1808.16705pt x 766.62883pt>
+<protocolCommunicationcControllerCaller.png, id=50, 1808.16705pt x 766.62883pt>
File: protocolCommunicationcControllerCaller.png Graphic file (type png)
-<use protocolCommunicationcControllerCaller.png> [9
+<use protocolCommunicationcControllerCaller.png> [11
<./protocolCommunicationHandler.png (PNG copy)> <./protocolCommunicationcContr
ollerReceiver.png (PNG copy)> <./protocolCommunicationcControllerCaller.png (PN
G copy)>]
LaTeX Font Info: External font `cmex10' loaded for size
-(Font) <9> on input line 175.
+(Font) <9> on input line 225.
LaTeX Font Info: External font `cmex10' loaded for size
-(Font) <5> on input line 175.
- [10]
-<sshTunnel.png, id=47, 696.6025pt x 152.57pt>
+(Font) <5> on input line 225.
+ [12]
+<sshTunnel.png, id=59, 696.6025pt x 152.57pt>
File: sshTunnel.png Graphic file (type png)
- <use sshTunnel.png> [11
+ <use sshTunnel.png> [13
- <./sshTunnel.png (PNG copy)>] [12] [13]
-LaTeX Font Info: Try loading font information for OMS+cmr on input line 338.
+ <./sshTunnel.png (PNG copy)>] [14] [15]
+LaTeX Font Info: Try loading font information for OMS+cmr on input line 388.
(/usr/share/texmf-texlive/tex/latex/base/omscmr.fd
File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
)
LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <9> not available
-(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 338.
- [14] [15] [16]
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 388.
+ [16] [17] [18]
LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <12> not available
-(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 410.
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 460.
-<resultsImage.png, id=70, 702.625pt x 431.6125pt>
+<resultsImage.png, id=81, 702.625pt x 431.6125pt>
File: resultsImage.png Graphic file (type png)
<use resultsImage.png>
-[17 <./resultsImage.png (PNG copy)>] [18]
-LaTeX Font Info: Try loading font information for T1+cmtt on input line 435.
+[19 <./resultsImage.png (PNG copy)>] [20]
+LaTeX Font Info: Try loading font information for T1+cmtt on input line 484.
(/usr/share/texmf-texlive/tex/latex/base/t1cmtt.fd
File: t1cmtt.fd 1999/05/25 v2.5h Standard LaTeX font definitions
)
-AED: lastpage setting LastPage [19] (./test.aux) )
+AED: lastpage setting LastPage [21] (./test.aux) )
Here is how much of TeX's memory you used:
- 4885 strings out of 495061
- 67574 string characters out of 1182621
- 255259 words of memory out of 3000000
- 8002 multiletter control sequences out of 15000+50000
+ 4908 strings out of 495061
+ 67986 string characters out of 1182621
+ 255271 words of memory out of 3000000
+ 8021 multiletter control sequences out of 15000+50000
18484 words of font info for 43 fonts, out of 3000000 for 9000
28 hyphenation exceptions out of 8191
36i,10n,45p,751b,1285s stack positions out of 5000i,500n,10000p,200000b,50000s
</home/refik/.texmf-var/font
s/pk/ljfour/jknappen/ec/ectt1200.600pk> </home/refik/.texmf-var/fonts/pk/ljfour
/jknappen/ec/ecrm0600.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/e
-c/ecrm0800.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecti1200.
-600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm0900.600pk> </ho
+c/ecrm0800.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm0900.
+600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecti1200.600pk> </ho
me/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecsx1200.600pk> </home/refik/.t
exmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1095.600pk> </home/refik/.texmf-var/fo
nts/pk/ljfour/jknappen/ec/ecsx1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfo
ur/jknappen/ec/ecsx1440.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen
/ec/ecsl1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm120
0.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1728.600pk></u
-sr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/te
-xmf-texlive/fonts/type1/public/amsfonts/cm/cmsy9.pfb>
-Output written on test.pdf (19 pages, 608509 bytes).
+sr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/share/te
+xmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-texlive
+/fonts/type1/public/amsfonts/cm/cmsy9.pfb>
+Output written on test.pdf (21 pages, 698250 bytes).
PDF statistics:
- 587 PDF objects out of 1000 (max. 8388607)
+ 626 PDF objects out of 1000 (max. 8388607)
0 named destinations out of 1000 (max. 500000)
- 36 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 56 words of extra memory for PDF output out of 10000 (max. 10000000)
diff --git a/notFinishedCode/Report/test.pdf b/notFinishedCode/Report/test.pdf
index e3b9cf9..816602b 100644
--- a/notFinishedCode/Report/test.pdf
+++ b/notFinishedCode/Report/test.pdf
Binary files differ
diff --git a/notFinishedCode/Report/test.tex b/notFinishedCode/Report/test.tex
index 25f0271..6475dee 100644
--- a/notFinishedCode/Report/test.tex
+++ b/notFinishedCode/Report/test.tex
@@ -91,7 +91,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
\tableofcontents
%new page to start with
-\newpage
+\clearpage
@@ -101,21 +101,52 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
\large In the following report, the authors will try to give you a brief insight into our team project. The goal of our project was to develop a mechanism for automatic testing of our University Telecommunication network. The Telecommunication network of University of Freiburg consists of: our own internal GSM and telephone network systems; GSM redirecting device (if one initiates a call to one of the four external GSM networks, it redirects the calls to: T-mobile, 02, Vodaphone or E-Plus); a SIP gateway for landline calls inside of Germany (sipgate.de) and international calls. Since we did not have access to internal servers, our strategy was to exploit the existing systems and infer the results out of our findings.
Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software.
Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works.
-\newpage
+\clearpage
\section{Requirements} % chapter 2
\newpage
\section{Database design}
-How we designed our database and why, explain in this section!
+How we designed our database and why, explain in this section! Our database of choice was MySQL b
\newpage
\section{Software design} % section 2.1
\subsection{Database access} % subsection 2.1.1
+Accessing the database is of critical value to our project, therefore we had developed our own class that limits the access to the database. In the process of developing our own class we used the MySQLdb library in Python \cite{mysqlManual}.
+The database class has two working modes, a normal working mode and a debugging mode. The difference between these two modes is in the output information. In case the error handling function raises an error and it is unknown, if the debug mode is set a complete backtrace of the error will be printed out. A developer can change the mode by setting the variable \emph{debugMode=1}. The class diagram can be seen in the following figure.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=100mm]{dbClass.png}
+ \caption[]{Class diagram for the dbClass}
+\end{figure}
+The method names are self-explanatory and do not require extra explanations. All the outputs produced by the class can be found on the project wiki page \cite{wiki}.
\subsection{Controlling the cell phones}
Our first version of the developed program code for controlling the cell phones used predefined timed values
to send commands instead of using a state controlled approach to confirm that every command was successfuly received and executed by the cell phone.
It meant we had to make an enormous number of assumptions. In comparison to our second approach, to build a state controlled cell phone control class,
-our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than timed approach.
-\subsection{subsection}
-\newpage
+our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than the timed approach.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=80mm]{serialPort.png}
+ \caption[]{GSM class diagram for controlling the cell phones}
+\end{figure}
+One can easyly apply the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception.
+A timeout exception gets raised when the cell phone does not respond (i.e. when the cell phone enters a deadlock or delayed state.) We had used the serial port library inside of Python although we use USB cables to connect to our cell phones. One should
+be aware that our USB cables create a virtual serial port. More details on class design and an example can be found on our project wiki \cite{wiki}.
+\subsection{Client and Server model}
+\cite{socket}
+
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=97mm]{ServerHandlerClass.png}
+ \caption[]{Result image showing working, defected and not tested subsystems}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=90mm]{ClientClass.png}
+ \caption[]{Result image showing working, defected and not tested subsystems}
+\end{figure}
+
+
+\clearpage
\section{Hardware design}
In our team project we had the option to choose all the required hardware ourself beside the two BeagleBoards, which we were supplied by Konrad and Dennis.
Since one of the project goals was to reduce the costs as much as it was possible, we had tried to use some of the leftovers found in our lab.
@@ -146,6 +177,12 @@ The first one, Siemens M45, had a cable supplied with it and it was not difficul
At the start we did not have a cable supplied for the Siemens S55 phone. We controlled it over the Bluetooth port.
\subsection{Cables for the cell phones}
+Due to the fact that we had used 5 cell phones on a single computer, the best solution was to order 5 USB cables.
+Konrad bought 5 cables for 5 Siemens S55 cell phones. All of the cables have an USB2Serial chip converter inside of them.
+Once they were plugged into the USB port, Ubuntu automatically recognized the cables and installed the drivers.
+The virtual serial ports were created and could be found on \emph{/dev/ttyUSBx}, where $x$ is the automatically assigned number for the port.
+Some of the cables had the cability to charge the Siemens S55 phones.
+Konrad had opened several cables to solder the power supplies to some contacts and the problem was solved for all of the cables.
\clearpage
@@ -170,7 +207,20 @@ At the start we did not have a cable supplied for the Siemens S55 phone. We cont
\end{figure}
\subsection{Verification of the protocol}
-The verification results are listed here:
+``SPIN is a model checker - a software tool for verifying models of physical
+systems, in particular, computerized systems. First, a model is written that
+describes the behavior of the system; then, correctness properties that express
+requirements on the system's behavior are specified; finally, the model
+checker is run to check if the correctness properties hold for the model, and,
+if not, to provide a counterexample: a computation that does not satisfy a
+correctness property.'' \cite{spin}. We modeled our simple protocol in SPIN using
+the programming language PROMELA \cite{spin}. Since PROMELA is similar to C it was
+not possible to ensure 100\% matching with Python but we had made the assumptions of it.
+We modeled both sides, server and client side. As well as the server side being a caller
+and a callee. It was important to find out if our protocol can be in a deadlock or delayed state.
+For more details our model can be found on our wiki project page \cite{wiki}.
+We had modeled also the chance that the call test was not successful, to make the model more
+realistic. Our protocol idea was deadlock free and the verification results prove it:
\begin{lstlisting}
(Spin Version 6.1.0 -- 2 May 2011)
+ Partial Order Reduction
@@ -430,10 +480,18 @@ If one of the fields is red it means the subsystem is not online or cannot be se
%bibliography start
\begin{thebibliography}{9}
-\bibitem{site1} H. Simpson, \emph{Proof of the Riemann
-Hypothesis}, preprint (2003), available at
-\url{http://www.math.drofnats.edu/riemann.ps}.
+\bibitem{mysqlManual} \emph{MySQLdb User's Guide}, accessed on 05.06.2011, available at \\
+\url{http://mysql-python.sourceforge.net/MySQLdb.html}.
+
+\bibitem{wiki} \emph{[2011] GSM Selftest - Wiki - Lehrstuhl f\"{u}r Kommunikationssysteme}, accessed on 20.09.2011, available at \\
+\url{http://lab.ks.uni-freiburg.de/projects/gsm-selftest/wiki}.
+
+\bibitem{socket} \emph{17.2. socket - Low-level networking interface}, accessed on 20.06.2011, available at
+\url{http://docs.python.org/library/socket.html}.
+\bibitem{spin} M. Ben-Ari \emph{Principles of the Spin Model Checker},
+Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5, 2008.
+
\bibitem{sshTunnel} R. Natarajan, \emph{3 Steps to perform SSH login without password using ssh-keygen \& ssh-copy-id}, accessed on 18.08.2011, available at
\url{http://goo.gl/fX68N}.
diff --git a/notFinishedCode/Report/test.tex.backup b/notFinishedCode/Report/test.tex.backup
index 28acb38..c163e2f 100644
--- a/notFinishedCode/Report/test.tex.backup
+++ b/notFinishedCode/Report/test.tex.backup
@@ -91,7 +91,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
\tableofcontents
%new page to start with
-\newpage
+\clearpage
@@ -101,21 +101,52 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
\large In the following report, the authors will try to give you a brief insight into our team project. The goal of our project was to develop a mechanism for automatic testing of our University Telecommunication network. The Telecommunication network of University of Freiburg consists of: our own internal GSM and telephone network systems; GSM redirecting device (if one initiates a call to one of the four external GSM networks, it redirects the calls to: T-mobile, 02, Vodaphone or E-Plus); a SIP gateway for landline calls inside of Germany (sipgate.de) and international calls. Since we did not have access to internal servers, our strategy was to exploit the existing systems and infer the results out of our findings.
Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software.
Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works.
-\newpage
+\clearpage
\section{Requirements} % chapter 2
\newpage
\section{Database design}
-How we designed our database and why, explain in this section!
+How we designed our database and why, explain in this section! Our database of choice was MySQL b
\newpage
\section{Software design} % section 2.1
\subsection{Database access} % subsection 2.1.1
+Accessing the database is of critical value to our project, therefore we had developed our own class that limits the access to the database. In the process of developing our own class we used the MySQLdb library in Python \cite{mysqlManual}.
+The database class has two working modes, a normal working mode and a debugging mode. The difference between these two modes is in the output information. In case the error handling function raises an error and it is unknown, if the debug mode is set a complete backtrace of the error will be printed out. A developer can change the mode by setting the variable \emph{debugMode=1}. The class diagram can be seen in the following figure.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=100mm]{dbClass.png}
+ \caption[]{Class diagram for the dbClass}
+\end{figure}
+The method names are self-explanatory and do not require extra explanations. All the outputs produced by the class can be found on the project wiki page \cite{wiki}.
\subsection{Controlling the cell phones}
Our first version of the developed program code for controlling the cell phones used predefined timed values
to send commands instead of using a state controlled approach to confirm that every command was successfuly received and executed by the cell phone.
It meant we had to make an enormous number of assumptions. In comparison to our second approach, to build a state controlled cell phone control class,
-our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than timed approach.
-\subsection{}
-\newpage
+our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than the timed approach.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=80mm]{serialPort.png}
+ \caption[]{GSM class diagram for controlling the cell phones}
+\end{figure}
+One can easyly apply the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception.
+A timeout exception gets raised when the cell phone does not respond (i.e. when the cell phone enters a deadlock or delayed state.) We had used the serial port library inside of Python although we use USB cables to connect to our cell phones. One should
+be aware that our USB cables create a virtual serial port. More details on class design and an example can be found on our project wiki \cite{wiki}.
+\subsection{Client and Server model}
+\cite{socket}
+
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=97mm]{ServerHandlerClass.png}
+ \caption[]{Result image showing working, defected and not tested subsystems}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=90mm]{ClientClass.png}
+ \caption[]{Result image showing working, defected and not tested subsystems}
+\end{figure}
+
+
+\clearpage
\section{Hardware design}
In our team project we had the option to choose all the required hardware ourself beside the two BeagleBoards, which we were supplied by Konrad and Dennis.
Since one of the project goals was to reduce the costs as much as it was possible, we had tried to use some of the leftovers found in our lab.
@@ -132,10 +163,10 @@ It has been equipped with a minimum set of features to allow the
user to experience the power of the OMAP3530 and is not intended as a full development
platform as many of the features and interfaces supplied by the OMAP3530 are not
accessible from the BeagleBoard'' \cite{beagleDataSheet}.
-We run on it a special precompiled version of Ubuntu for the ARM processor type.
+We run on it a special precompiled version of Ubuntu for the ARM processor type. The Linux system boots up from an SD Card.
The board has an USB hub and network port attached to it. In our project it is connected to our
internal university LAN network and to a cell phone. We positioned the two BeagleBoards in rooms where
-we had LAN access and GSM signal coverage of our two local base stations.
+we had LAN access and GSM signal coverage of our two local base stations.
\subsection{Cell phones}
Our first attempt was to control a Nokia cell phone 3310 with the supplied USB connection cable.
@@ -146,31 +177,48 @@ The first one, Siemens M45, had a cable supplied with it and it was not difficul
At the start we did not have a cable supplied for the Siemens S55 phone. We controlled it over the Bluetooth port.
\subsection{Cables for the cell phones}
+Due to the fact that we had used 5 cell phones on a single computer, the best solution was to order 5 USB cables.
+Konrad bought 5 cables for 5 Siemens S55 cell phones. All of the cables have an USB2Serial chip converter inside of them.
+Once they were plugged into the USB port, Ubuntu automatically recognized the cables and installed the drivers.
+The virtual serial ports were created and could be found on \emph{/dev/ttyUSBx}, where $x$ is the automatically assigned number for the port.
+Some of the cables had the cability to charge the Siemens S55 phones.
+Konrad had opened several cables to solder the power supplies to some contacts and the problem was solved for all of the cables.
\clearpage
\section{Communication protocol}
-
+\subsection{Hanlder side}
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{protocolCommunicationHandler.png}
+ \includegraphics[width=130mm]{protocolCommunicationHandler.png}
\caption[]{Flowchart of the protocol, on the handler side}
\end{figure}
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{protocolCommunicationcControllerReceiver.png}
+ \includegraphics[width=130mm]{protocolCommunicationcControllerReceiver.png}
\caption[]{Flowchart of the protocol, on the controller side for the caller}
\end{figure}
\begin{figure}[ht!]
\centering
- \includegraphics[width=140mm]{protocolCommunicationcControllerCaller.png}
+ \includegraphics[width=130mm]{protocolCommunicationcControllerCaller.png}
\caption[]{Flowchart of the protocol, on the controller side for the receiver}
\end{figure}
+\subsection{Verification of the protocol}
+``SPIN is a model checker - a software tool for verifying models of physical
+systems, in particular, computerized systems. First, a model is written that
+describes the behavior of the system; then, correctness properties that express
+requirements on the system's behavior are specified; finally, the model
+checker is run to check if the correctness properties hold for the model, and,
+if not, to provide a counterexample: a computation that does not satisfy a
+correctness property.'' \cite{spin}. We modeled our simple protocol in SPIN using
+a programming language called PROMELA \cite{spin}. Since PROMELA is similar to C it was
+not possible to ensure 100\% matching with Python but we had made the assumptions of it.
+We modeled both sides, server and client side. As well as the server side
+The verification results are listed here:
\begin{lstlisting}
-
(Spin Version 6.1.0 -- 2 May 2011)
+ Partial Order Reduction
Full statespace search for:
@@ -178,7 +226,7 @@ Full statespace search for:
assertion violations +
cycle checks - (disabled by -DSAFETY)
invalid end states +
-State-vector 44 byte, depth reached 65, ••• errors: 0 •••
+State-vector 44 byte, depth reached 65, errors: 0
40 states, stored
3 states, matched
43 transitions (= stored+matched)
@@ -192,7 +240,6 @@ unreached in proctype Server2
unreached in proctype Client
(0 of 67 states)
pan: elapsed time 0 seconds
-
\end{lstlisting}
@@ -430,10 +477,18 @@ If one of the fields is red it means the subsystem is not online or cannot be se
%bibliography start
\begin{thebibliography}{9}
-\bibitem{site1} H. Simpson, \emph{Proof of the Riemann
-Hypothesis}, preprint (2003), available at
-\url{http://www.math.drofnats.edu/riemann.ps}.
+\bibitem{mysqlManual} \emph{MySQLdb User's Guide}, accessed on 05.06.2011, available at \\
+\url{http://mysql-python.sourceforge.net/MySQLdb.html}.
+
+\bibitem{wiki} \emph{[2011] GSM Selftest - Wiki - Lehrstuhl f\"{u}r Kommunikationssysteme}, accessed on 20.09.2011, available at \\
+\url{http://lab.ks.uni-freiburg.de/projects/gsm-selftest/wiki}.
+
+\bibitem{socket} \emph{17.2. socket - Low-level networking interface}, accessed on 20.06.2011, available at
+\url{http://docs.python.org/library/socket.html}.
+\bibitem{spin} M. Ben-Ari \emph{Principles of the Spin Model Checker},
+Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5, 2008.
+
\bibitem{sshTunnel} R. Natarajan, \emph{3 Steps to perform SSH login without password using ssh-keygen \& ssh-copy-id}, accessed on 18.08.2011, available at
\url{http://goo.gl/fX68N}.
@@ -441,7 +496,7 @@ Hypothesis}, preprint (2003), available at
\url{http://www.tc.umn.edu/~brams006/selfsign.html}.
\bibitem{pChart} \emph{pChart}, accessed on 15.08.2011, available at
-\url{http://http://www.pchart.net/}.
+\url{http://www.pchart.net/}.
\bibitem{beagleDataSheet} \emph{BeagleBoard System Reference Manual}, accessed on 20.06.2011, available at
\url{http://beagleboard.org/static/BBSRM_latest.pdf}.
diff --git a/notFinishedCode/Report/test.tex~ b/notFinishedCode/Report/test.tex~
index 25f0271..65dc84e 100644
--- a/notFinishedCode/Report/test.tex~
+++ b/notFinishedCode/Report/test.tex~
@@ -91,7 +91,7 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
\tableofcontents
%new page to start with
-\newpage
+\clearpage
@@ -101,21 +101,52 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
\large In the following report, the authors will try to give you a brief insight into our team project. The goal of our project was to develop a mechanism for automatic testing of our University Telecommunication network. The Telecommunication network of University of Freiburg consists of: our own internal GSM and telephone network systems; GSM redirecting device (if one initiates a call to one of the four external GSM networks, it redirects the calls to: T-mobile, 02, Vodaphone or E-Plus); a SIP gateway for landline calls inside of Germany (sipgate.de) and international calls. Since we did not have access to internal servers, our strategy was to exploit the existing systems and infer the results out of our findings.
Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software.
Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works.
-\newpage
+\clearpage
\section{Requirements} % chapter 2
\newpage
\section{Database design}
-How we designed our database and why, explain in this section!
+How we designed our database and why, explain in this section! Our database of choice was MySQL b
\newpage
\section{Software design} % section 2.1
\subsection{Database access} % subsection 2.1.1
+Accessing the database is of critical value to our project, therefore we had developed our own class that limits the access to the database. In the process of developing our own class we used the MySQLdb library in Python \cite{mysqlManual}.
+The database class has two working modes, a normal working mode and a debugging mode. The difference between these two modes is in the output information. In case the error handling function raises an error and it is unknown, if the debug mode is set a complete backtrace of the error will be printed out. A developer can change the mode by setting the variable \emph{debugMode=1}. The class diagram can be seen in the following figure.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=100mm]{dbClass.png}
+ \caption[]{Class diagram for the dbClass}
+\end{figure}
+The method names are self-explanatory and do not require extra explanations. All the outputs produced by the class can be found on the project wiki page \cite{wiki}.
\subsection{Controlling the cell phones}
Our first version of the developed program code for controlling the cell phones used predefined timed values
to send commands instead of using a state controlled approach to confirm that every command was successfuly received and executed by the cell phone.
It meant we had to make an enormous number of assumptions. In comparison to our second approach, to build a state controlled cell phone control class,
-our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than timed approach.
-\subsection{subsection}
-\newpage
+our first approach was inferior and slower. The state controlled method connected two cell phones, on the same base station, up to 15 times faster than the timed approach.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=80mm]{serialPort.png}
+ \caption[]{GSM class diagram for controlling the cell phones}
+\end{figure}
+One can easyly apply the class just by correctly defining the parameters: port address, baud rate and timeout. The former two are self-explanatory and the timeout parameter is used to define when the alarm function should raise a timeout exception.
+A timeout exception gets raised when the cell phone does not respond (i.e. when the cell phone enters a deadlock or delayed state.) We had used the serial port library inside of Python although we use USB cables to connect to our cell phones. One should
+be aware that our USB cables create a virtual serial port. More details on class design and an example can be found on our project wiki \cite{wiki}.
+\subsection{Client and Server model}
+\cite{socket}
+
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=97mm]{ServerHandlerClass.png}
+ \caption[]{Result image showing working, defected and not tested subsystems}
+\end{figure}
+
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=90mm]{ClientClass.png}
+ \caption[]{Result image showing working, defected and not tested subsystems}
+\end{figure}
+
+
+\clearpage
\section{Hardware design}
In our team project we had the option to choose all the required hardware ourself beside the two BeagleBoards, which we were supplied by Konrad and Dennis.
Since one of the project goals was to reduce the costs as much as it was possible, we had tried to use some of the leftovers found in our lab.
@@ -146,6 +177,12 @@ The first one, Siemens M45, had a cable supplied with it and it was not difficul
At the start we did not have a cable supplied for the Siemens S55 phone. We controlled it over the Bluetooth port.
\subsection{Cables for the cell phones}
+Due to the fact that we had used 5 cell phones on a single computer, the best solution was to order 5 USB cables.
+Konrad bought 5 cables for 5 Siemens S55 cell phones. All of the cables have an USB2Serial chip converter inside of them.
+Once they were plugged into the USB port, Ubuntu automatically recognized the cables and installed the drivers.
+The virtual serial ports were created and could be found on \emph{/dev/ttyUSBx}, where $x$ is the automatically assigned number for the port.
+Some of the cables had the cability to charge the Siemens S55 phones.
+Konrad had opened several cables to solder the power supplies to some contacts and the problem was solved for all of the cables.
\clearpage
@@ -170,7 +207,20 @@ At the start we did not have a cable supplied for the Siemens S55 phone. We cont
\end{figure}
\subsection{Verification of the protocol}
-The verification results are listed here:
+``SPIN is a model checker - a software tool for verifying models of physical
+systems, in particular, computerized systems. First, a model is written that
+describes the behavior of the system; then, correctness properties that express
+requirements on the system's behavior are specified; finally, the model
+checker is run to check if the correctness properties hold for the model, and,
+if not, to provide a counterexample: a computation that does not satisfy a
+correctness property.'' \cite{spin}. We modeled our simple protocol in SPIN using
+the programming language PROMELA \cite{spin}. Since PROMELA is similar to C it was
+not possible to ensure 100\% matching with Python but we had made the assumptions of it.
+We modeled both sides, server and client side. As well as the server side being a caller
+and a callee. It was important to find out if our protocol can be in a deadlock or delayed state.
+For more details our model can be found on our wiki project page \cite{wiki}.
+We had modeled also the chance that the call test was not successful,
+Our protocol idea was deadlock free and the verification results are listed here:
\begin{lstlisting}
(Spin Version 6.1.0 -- 2 May 2011)
+ Partial Order Reduction
@@ -430,10 +480,18 @@ If one of the fields is red it means the subsystem is not online or cannot be se
%bibliography start
\begin{thebibliography}{9}
-\bibitem{site1} H. Simpson, \emph{Proof of the Riemann
-Hypothesis}, preprint (2003), available at
-\url{http://www.math.drofnats.edu/riemann.ps}.
+\bibitem{mysqlManual} \emph{MySQLdb User's Guide}, accessed on 05.06.2011, available at \\
+\url{http://mysql-python.sourceforge.net/MySQLdb.html}.
+
+\bibitem{wiki} \emph{[2011] GSM Selftest - Wiki - Lehrstuhl f\"{u}r Kommunikationssysteme}, accessed on 20.09.2011, available at \\
+\url{http://lab.ks.uni-freiburg.de/projects/gsm-selftest/wiki}.
+
+\bibitem{socket} \emph{17.2. socket - Low-level networking interface}, accessed on 20.06.2011, available at
+\url{http://docs.python.org/library/socket.html}.
+\bibitem{spin} M. Ben-Ari \emph{Principles of the Spin Model Checker},
+Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5, 2008.
+
\bibitem{sshTunnel} R. Natarajan, \emph{3 Steps to perform SSH login without password using ssh-keygen \& ssh-copy-id}, accessed on 18.08.2011, available at
\url{http://goo.gl/fX68N}.
diff --git a/notFinishedCode/Report/test.toc b/notFinishedCode/Report/test.toc
index 9616a50..17b11fa 100644
--- a/notFinishedCode/Report/test.toc
+++ b/notFinishedCode/Report/test.toc
@@ -5,18 +5,18 @@
\contentsline {section}{\numberline {4}Software design}{6}
\contentsline {subsection}{\numberline {4.1}Database access}{6}
\contentsline {subsection}{\numberline {4.2}Controlling the cell phones}{6}
-\contentsline {subsection}{\numberline {4.3}subsection}{6}
-\contentsline {section}{\numberline {5}Hardware design}{7}
-\contentsline {subsection}{\numberline {5.1}BeagleBoard}{7}
-\contentsline {subsection}{\numberline {5.2}Cell phones}{8}
-\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{8}
-\contentsline {section}{\numberline {6}Communication protocol}{9}
-\contentsline {subsection}{\numberline {6.1}Hanlder side}{9}
-\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{10}
-\contentsline {section}{\numberline {7}Security and safety of the system}{11}
-\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{11}
-\contentsline {subsection}{\numberline {7.2}Security on the web site}{12}
-\contentsline {section}{\numberline {8}Web page}{16}
-\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{16}
-\contentsline {subsection}{\numberline {8.2}Results on the web page}{16}
-\contentsline {section}{\numberline {9}Conclusion}{18}
+\contentsline {subsection}{\numberline {4.3}Client and Server model}{7}
+\contentsline {section}{\numberline {5}Hardware design}{9}
+\contentsline {subsection}{\numberline {5.1}BeagleBoard}{9}
+\contentsline {subsection}{\numberline {5.2}Cell phones}{10}
+\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{10}
+\contentsline {section}{\numberline {6}Communication protocol}{11}
+\contentsline {subsection}{\numberline {6.1}Hanlder side}{11}
+\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{12}
+\contentsline {section}{\numberline {7}Security and safety of the system}{13}
+\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{13}
+\contentsline {subsection}{\numberline {7.2}Security on the web site}{14}
+\contentsline {section}{\numberline {8}Web page}{18}
+\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{18}
+\contentsline {subsection}{\numberline {8.2}Results on the web page}{18}
+\contentsline {section}{\numberline {9}Conclusion}{20}