From dafabd0c5ac7a52913c07f1f2ffe39897902175b Mon Sep 17 00:00:00 2001 From: Claudio Maggioni Date: Thu, 24 May 2018 10:48:41 +0200 Subject: [PATCH] Added english version of IntegraMoblie arch --- main.tex | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/main.tex b/main.tex index 79ed5eb..cfd0ccd 100644 --- a/main.tex +++ b/main.tex @@ -233,7 +233,11 @@ hours for business trips. This feature is already implemented in \textit{InteGRa.Service}, an app developed in a previous school internship period. The two apps can not be merged immediately due to relevant - differencies in their respective architectures. + differencies in their respective architectures. + + Finally, the app will be able to work (with limited functionalities) without + a network link with \textit{InteGRa}, offering data syncronization when a + connection will be avaliable. \end{en} \begin{it} @@ -266,12 +270,12 @@ \item L'applicazione non comunica direttamente con il gestionale, ma tramite una serie di chiamate \textsc{REST}\cite{wiki:rest} ad un endpoint lato - server (chiamato \textit{InteGRaREST}) che svolge il ruolo di intermediario. + server (chiamato \textit{InteGRaREST}) che svolge il ruolo di intermediario; \item Tale componente รจ una Java WebApplication che utilizza una libreria sviluppata internamente (chiamata \textit{restaurant}) per offrire le rotte accessibili al client e per interagire con il database di - \textit{InteGRa}, una normale istanza di \textit{PostgreSQL}. + \textit{InteGRa}, una normale istanza di \textit{PostgreSQL}; \item Nella fase di comunicazione tramite HTTP, i dati in input vengono trasmessi come \texttt{application/x-www-form-urlencoded} mentre @@ -295,7 +299,41 @@ \end{itemize} \end{it} \begin{en} - \blindtext + In the picture \ref{fig:itgmobliearch} is shown how the software components + in the app interact with each other. This architecture was entirely realized + by me, on the basis offered by the project \textit{InteGRa.Service}. Further + information is given in the following list. + + \begin{itemize} + + \item The smartphone app does not directly communicate with the accounting + software, but instead it interacts using \textsc{REST} calls\cite{wiki:rest} + with a middleware server application, named \textit{InteGRaREST}; + + \item The last component mentioned is a Java WebApplication, + implemented by using an internally developed library named \textit{restaurant}, + that contains the boilerplate needed to generate the \textsc{REST} routes + and to access the \textit{InteGRa} database, a normal \textit{PostgreSQL} + instance; + + \item When information is exchanged by HTTP, input data is encoded + as \texttt{application/x-www-form-urlencoded}, while output data + is encoded as \textsc{JSON}\cite{wiki:json}. Sessions are identified by + a token that must be included in the query string of each call; + + \item \textit{InteGRaREST} queries the database autonomously through + \textsc{SQL} in order to fetch and store data structures with simple + or absent logical constraints; + + \item When interaction with data arranged in complex structures is needed, + \textit{InteGRaREST} communicates with \textit{InteGRa} through + \textsc{SOAP} calls\cite{wiki:soap}; + + \item \textit{InteGRa Mobile}, the smartphone app, interacts with + \textit{InteGRaREST} thanks to a client version of \textit{restaurant}, + which is able to handle offline operations. + + \end{itemize} \end{en} \begin{it}