Page MenuHomec4science

appendix_specs.tex
No OneTemporary

File Metadata

Created
Tue, Jan 7, 01:30

appendix_specs.tex

\chapter{Technical Specifications}
\section{Messages Format} \label{sec:spec-messages-format}
We present here the Document Type Definition specifying the XML document format of the requests and replies exchanged between the client and the \lstinline{Request Manager} and \lstinline{Decrypt} service.
\subsection{GetMaterial Request Format}
GetMaterial Request message DTD for Request Manager web service:
\lstinputlisting{external_dependencies/DTDs/request_material.dtd}
\subsection{GetMaterial Reply Format}
GetMaterial Reply message DTD for Request Manager web service:
\lstinputlisting{external_dependencies/DTDs/answer_material.dtd}
\subsection{Decrypt Request Format}
Decrypt Request message DTD for Decrypt web service:
\lstinputlisting{external_dependencies/DTDs/request_decrypt.dtd}
\subsection{Decrypt Reply Format}
Decrypt Reply message DTD for Decrypt web service:
\lstinputlisting{external_dependencies/DTDs/answer_decrypt.dtd}
%\subsection{GetMaterial Request Format}
%DTD for GetMaterial Request can be found in \reffig{fig:spec-dtd-rqt-material}.
%\begin{figure}
%\lstinputlisting{external_dependencies/DTDs/request_material.dtd}
%\caption{GetMaterial Request message DTD for Request Manager web service.}
%\label{fig:spec-dtd-rqt-material}
%\end{figure}
%
%\subsection{GetMaterial Reply Format}
%DTD for GetMaterial Reply can be found in \reffig{fig:spec-dtd-awr-material}.
%\begin{figure}
%\lstinputlisting{external_dependencies/DTDs/answer_material.dtd}
%\caption{GetMaterial Reply message DTD for Request Manager web service.}
%\label{fig:spec-dtd-awr-material}
%\end{figure}
%
%\subsection{Decrypt Request Format}
%DTD for Decrypt Request can be found in \reffig{fig:spec-dtd-rqt-decrypt}.
%\begin{figure}
%\lstinputlisting{external_dependencies/DTDs/request_decrypt.dtd}
%\caption{Decrypt Request message DTD for Decrypt web service.}
%\label{fig:spec-dtd-rqt-decrypt}
%\end{figure}
%
%\subsection{Decrypt Reply Format}
%DTD for Decrypt Reply can be found in \reffig{fig:spec-dtd-awr-decrypt}.
%\begin{figure}
%\lstinputlisting{external_dependencies/DTDs/answer_decrypt.dtd}
%\caption{Decrypt Reply message DTD for Decrypt web service.}
%\label{fig:spec-dtd-awr-decrypt}
%\end{figure}
\section{Full Architecture Diagram of SHCS}
\reffig{fig:ws-full} describes the full system architecture of the client (desktop or mobile application) and infrastructure at SHCS.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{sections/diagrams/web_service_full.pdf}
\caption{Full system architecture for online phase for SHCS and client.}
\label{fig:ws-full}
\end{figure}
\section{Application Libraries Used}
\subsection*{BouncyCastle \citep{bc-ref}}
\begin{tabular}{|l|l|}\hline
Author & The Legin of the BouncyCastle Inc.\\\hline
Applications & All \\\hline
Functionalities & Cryptographic operations \\\hline
Libraries & \shortstack[l]{bcpkix-jdk15on-150.jar\\jce-ext-jdk13-150.jar\\jce-jdk13-150.jar}\\\hline
\end{tabular}
\subsection*{Apache Commons Codec \citep{commons-codec}}
\begin{tabular}{|l|l|}\hline
Author & Apache Software Foundation \\\hline
Applications & All \\\hline
Functionalities & base64 encoding utilities \\\hline
Library & commons-codec-1.9.jar \\\hline
\end{tabular}
\subsection*{Apache Commons Validator \citep{commons-validator}}
\begin{tabular}{|l|l|}\hline
Author & Apache Software Foundation \\\hline
Applications & All \\\hline
Functionalities & IP address validation \\\hline
Library & commons-codec-1.9.jar \\\hline
\end{tabular}
\subsection*{Json-IO \citep{ref-jsonio}}
\begin{tabular}{|l|l|}\hline
Author & Cedar Software \\\hline
Applications & Client, Server \\\hline
Functionalities & Object serialization to JSON format \\\hline
Library & json-io-2.6.0.jar \\\hline
\end{tabular}
\subsection*{MySQL Connector \citep{ref-mysql-connector}}
\begin{tabular}{|l|l|}\hline
Author & Oracle Corporation \\\hline
Applications & All \\\hline
Functionalities & MySQL connector \\\hline
Library & mysql-connector-java-5.1.28-bin.jar \\\hline
\end{tabular}
\subsection*{iTextPDF \citep{ref-itextpdf}}
\begin{tabular}{|l|l|}\hline
Author & iText Software Corp \\\hline
Applications & Client \\\hline
Functionalities & PDF creator \\\hline
Library & itextpdf-5.4.5.jar \\\hline
\end{tabular}
\subsection*{jPedal \citep{ref-jpedal}}
\begin{tabular}{|l|l|}\hline
Author & IDR Solutions LTD \\\hline
Applications & Client \\\hline
Functionalities & PDF viewer \\\hline
Library & jpedal\_lgpl.jar \\\hline
\end{tabular}
\subsection*{JMathPlot \citep{ref-jmathplot}}
\begin{tabular}{|l|l|}\hline
Author & Mu Labs \\\hline
Applications & Client \\\hline
Functionalities & Plot drawing \\\hline
Library & jmathplot.jar \\\hline
\end{tabular}
%\begin{table}
%\begin{tabular}{l|l|l|l|l}
%Library name & Author & Package name & Applications & Functionalities \\
%\hline
%%BouncyCastle & The Legion of the Bouncy Castle & bcpkix-jdk15on-150.jar & all & Cryptographic library \\
%%BouncyCastle & The Legion of the Bouncy Castle & jce-ext-jdk13-150.jar & all & Cryptographic library \\
%%BouncyCastle & The Legion of the Bouncy Castle & jce-jdk13-150.jar & all & Cryptographic library \\
%%Apache Commons Codec & Apache Software Foundation & commons-codec-1.9.jar & all & TODO \\
%%Apache Commons Validator & Apache Software Foundation & commons-validator-1.4.0.jar & all & IP address validation \\
%%JSON-IO & Cedar Software & json-io-2.6.0.jar & all & Object serialization to JSON format \\
%%MySQL Connector & & mysql-connector-java-5.1.28-bin.jar & all & MySQL requests \\
%% & & itextpdf-5.4.5.jar & Client & PDF generation \\
%% & & jpedal\_lgpl.jar & Client & PDF viewer \\
%% & & jmathplot.jar & Client & Plot drawing
%\end{tabular}
%\caption{External libraries used.}
%\label{table:libraries}
%\end{table}
\section{Database Tables}
\subsection{Client Local Tables}
\begin{tikzpicture}
\begin{umlpackage}[x=0,y=0]{client-database}
\umlclass[type=table]{cf\_t}{
\umlattribstereo{ID\_t}{int}{PK} \\
\umlattrib{ID\_cf}{int}
}{}
\umlclass[type=table, x=4]{m\_t}{
\umlattribstereo{ID\_t}{int}{PK} \\
ID\_m : int
}{}
\umlclass[type=table, x=8]{cryptokeys}{
\umlattribstereo{ID\_p}{int}{PK} \\
value : blob \\
isPublic : bit(1)
}{}
\umlclass[type=table, x=12]{markers}{
\umlattribstereo{ID\_m}{varchar}{PK} \\
chr : varchar \\
position : int \\
risk\_allele : varchar \\
ref\_allele : varchar \\
maf : double
}{}
\end{umlpackage}
\end{tikzpicture}
\subsection{Server Tables}
\begin{tikzpicture}
\begin{umlpackage}[x=0,y=0]{server-database}
\umlclass[type=table, x=0]{cryptokeys}{
\umlattribstereo{ID\_p}{int}{PK} \\
\umlattrib{value}{blob} \\
\umlattrib{isPublic}{bit(1)}
}{}
\umlclass[type=table, x=4]{m\_p}{
\umlattribstereo{ID\_p}{int}{PK} \\
\umlattrib{ID\_m}{varchar} \\
\umlattrib{enc\_genotype\_1}{blob} \\
\umlattrib{enc\_genotype\_2}{blob}
}{}
\umlclass[type=table, x=8]{cf\_p}{
\umlattribstereo{ID\_p}{int}{PK} \\
\umlattrib{ID\_cf}{varchar} \\
\umlattrib{enc\_cf\_1}{blob} \\
\umlattrib{enc\_cf\_2}{blob}
}{}
\umlclass[type=table, x=12]{hla\_p}{
\umlattribstereo{ID\_p}{int}{PK} \\
\umlattrib{enc\_hla\_A\_1}{blob} \\
\umlattrib{enc\_hla\_A\_2}{blob} \\
\umlattrib{enc\_hla\_B\_1}{blob} \\
\umlattrib{enc\_hla\_B\_2}{blob} \\
\umlattrib{enc\_hla\_C\_1}{blob} \\
\umlattrib{enc\_hla\_C\_2}{blob}
}{}
\end{umlpackage}
\end{tikzpicture}

Event Timeline