Commit 03d792cf authored by Qiwei Ni's avatar Qiwei Ni

Petits canvis

parent 0933370c
......@@ -14,6 +14,7 @@
% Per dibuixar gràfics: base general i gràfics senzills
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{trees}
% Per dibuixar gràfics: circuits electrònics
\usepackage[europeanresistors,americaninductors]{circuitikz}
% Per dibuixar gràfics: diagrames diversos
......@@ -139,6 +140,9 @@ Tot seguit es plateja quin hauria de ser el funcionament de tot el sistema:
\item Quan l'aplicació mòbil tingui la informació dels emisors, la mostrarà a l'usuari amb forma de notificació.
\end{itemize}
\section{Estudi del mercat}
Actualment, ja existeix projectes com aquest, com ara \texttt{beacon}. Segons la definició de Viquipèdia \cite{beacon}, un beacon és un dispositiu de baix consum que emet un senyal broadcast, i són prou petits per ficar a una paret o mostradors. Utilitza connexió BLE per transmetre missatges o avisos directament a un dispositiu mòbil, el senyal és capturada per aquests dispositius i es transmet com a mínim a un servidor a través de internet. El servidor procesa l'informació i porta a terme anàlisi més detallada per guiar els components basats en la localització específica del dispositiu mòbil. Existeixen varis protocols de beacon, iBeacon, Eddystone, AltBeacon, etc.
\chapter{Estructura i implementació del sistema}
Per poder fer ho realitat, es necessita els següent:
......@@ -260,14 +264,7 @@ Cada paquet consisteix en 2 bytes de header, el primer byte és la mida de paque
\end{figure}
\section{Serveis web}
\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{imatges/containers.pdf}
\caption{L'esquema relacional}
\label{fig:containers}
\end{figure}
Tal com es mostra l'anterior figura, els serveis web estan formats per:
Tal com es mostra la figura~\ref{fig:containers}, els serveis web estan formats per:
\begin{itemize}
\item \emph{Panell d'administració}: per administrar la informació del punt d'interès i.
\item \emph{API per Android}: endpoint per l'aplicació Android perquè pugui consultar la informació dels punt d'interès.
......@@ -275,6 +272,13 @@ Tal com es mostra l'anterior figura, els serveis web estan formats per:
\item \emph{Redis}: base de dades NoSQL volàtil que permet mantenir les sessions d'usuari del panell d'administració obertes.
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.3\textwidth]{imatges/containers.pdf}
\caption{L'estrucatura dels containers}
\label{fig:containers}
\end{figure}
Els serveis web que són accessibles a través d'internet són el panell d'administració i l'API per l'aplicació d'Android. Aquests dos serveis comparteixen la mateixa base de dades MariaDB.
Els quatre serveis que apareixen a la figura~\ref{fig:containers} estan aïllats entre sí. Aïllar els serveis en màquines diferentes és una bona idea perquè si un dels serveis web es veu compromès, serà més difícil comprometre els altres serveis. Separar els serveis web afavoreix més independència, flexibilitat i seguretat.
......@@ -361,6 +365,33 @@ if __name__ == "__main__":
app.run()
\end{verbatim}
Jinja2 és un dels motors de plantilles per Python més utilitzat. Està inspirat pel sistema de plantilla de Django, però està extès amb un llenguatge més expresiu que dóna facilitats als desenvolupadors. A més d'això ajuda a fer pagines webs més segures.
\begin{figure}
\centering
\tikzstyle{every node}=[draw=green,anchor=west]
\tikzstyle{sub}=[draw=gray]
\begin{tikzpicture}[%
grow via three points={one child at (0.5,-0.7) and
two children at (0.5,-0.7) and (0.5,-1.4)},
edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}]
\node {app}
child { node {static}
child { node [sub] {style.css}}
}
child [missing] {}
child { node {templates}
child { node [sub] {index.html}}
}
child [missing] {}
child { node {app.py}};
\end{tikzpicture}
\caption{L'estructura del app}
\label{fig:flask_app}
\end{figure}
La figura~\ref{fig:flask_app} representa l'estructura d'una aplicació flask, sota del directori \texttt{static} hi ha els fitxers CSS i Javascript i sota del directori \texttt{templates} hi ha les platilles en format Jinja2.
Pel web de administració és un web amb interació visual
\texttt{JSON} JavaScript Object Notation, és un estàndard obert basat en text dissenyada per a intercanvi de dades llegible per humans. Deriva del llenguatge script JavaScript, per a representar estructures de dades simples i llistes associatives, anomenades objectes. El tipus MIME del JSON és \emph{application/json}. El format JSON s'utilitza habitualment per serialitzar i transmetre dades estructurades en una connexió de xarxa. S'utilitza principalment per intercanviar dades entre un servidor i una aplicació web, sent una alternativa a l'XML.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment