Skip to content

Commit

Permalink
Últimos cambios
Browse files Browse the repository at this point in the history
  • Loading branch information
germaaan committed Jul 6, 2015
1 parent 61e89f9 commit 5a804f2
Show file tree
Hide file tree
Showing 12 changed files with 38 additions and 973 deletions.
Binary file modified images/diag_act_cu_10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/diag_cu_ca.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion manualSpellChecking.sh

This file was deleted.

1 change: 1 addition & 0 deletions text/back/words.dic
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Node.js
2 changes: 1 addition & 1 deletion text/chapters/02_Objetivos.tex
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ \chapter{Objetivos}
\end{itemize}

\bigskip
Destacar en los aspectos formativos previos más utilizados para el desarrollo del proyecto los conocimientos sobre infraestructuras virtuales para el tema de gestión de configuraciones, ingeniería de software para el análisis del proyecto e ingeniería de servidores para la realización de pruebas desde el aspecto hardware.
Destacar en los aspectos formativos previos más utilizados para el desarrollo del proyecto los conocimientos sobre infraestructuras virtuales para el tema de gestión de configuraciones, ingeniería de software para el análisis del proyecto e ingeniería de servidores para la realización de pruebas desde el punto de vista de carga de trabajo.

\section{Alcance de los objetivos}

Expand Down
24 changes: 21 additions & 3 deletions text/chapters/04_Analisis.tex
Original file line number Diff line number Diff line change
Expand Up @@ -793,6 +793,8 @@ \subsection{Descripción casos de uso}
\newpage
\section{Diagrama de paquetes}

Este diagrama representa la estructura lógica del sistema basado en las depencias existentes entre sí. El paquete de \textbf{Configuración automática} depende del paquete \textbf{Administración portal} porque necesita de tareas de administración como es iniciar el servidor.

\begin{figure}[!ht]
\begin{center}
\includegraphics[width=0.8\textwidth]{../images/diagrama_paquetes.png}
Expand All @@ -803,6 +805,8 @@ \section{Diagrama de paquetes}

\section{Diagramas de casos de uso}

Los diagramas de casos de uso representa como los diferentes actores se relacionan con el sistema para usar sus funciones. Por ejemplo, en el primer caso de uso vemos como el \textbf{desarrollador} se relaciona con el sistema para iniciar el servidor del portal, mientras, en el segundo vemos como el \textbf{usuario} se relaciona con el sistema para consultar la información de las diferentes secciones del portal.

\begin{figure}[!ht]
\begin{center}
\includegraphics[width=0.65\textwidth]{../images/diag_cu_ap.png}
Expand All @@ -819,6 +823,11 @@ \section{Diagramas de casos de uso}
\end{center}
\end{figure}

\newpage
\
\newpage
En el tercer diagrama vemos como el \textbf{desarrollador} se relaciona con los procesos relacionadas con las pruebas (que a su vez son dependientes entre sí); y en el cuarto vemos como también el \textbf{desarrollador} se relaciona con el sistema para realizar las tareas de configuración automática, como son el despliegue automático y el provisionamiento.

\begin{figure}[!ht]
\begin{center}
\includegraphics[width=0.65\textwidth]{../images/diag_cu_ps.png}
Expand All @@ -835,11 +844,11 @@ \section{Diagramas de casos de uso}
\end{center}
\end{figure}

\newpage
\
\newpage
\section{Diagramas de actividad}

Los diagramas de actividad sirven para representar la descomposición de un proceso en las diferentes acciones de las que está compuesto. Las actividades de consultar algún tipo de información son procedimiento secuenciales en los que la ejecución es bastante simple; pero la actividad de iniciar el servidor del portal, realizar los test unitarios, realizar los test de cobertura, usar la integración continua tienen situaciones condicionales que son los que dan lugar a cursos alternos de la ejecución. Las actividades de despliegue automático y provisionamiento además tienen también puntos de sincronización que harán que el proceso siga el mismo cauce en su ejecución.

\begin{figure}[!ht]
\begin{center}
\includegraphics[width=1\textwidth]{../images/diag_act_cu_01.png}
Expand Down Expand Up @@ -940,10 +949,19 @@ \section{Diagramas de actividad}

\section{Diagrama conceptual}

En el diagrama conceptual podemos ver una representación de la estructura de la implementación. A excepción de la clase \textbf{test}, todas las clases son parte de la aplicación principal (\textbf{app}) por lo que tienen una relación de composición con la misma y no tienen sentido sin esta. Las clases de \textbf{test} y \textbf{app} tiene una relación de agrupación, porque el módulo test puede realizar las pruebas sobre cualquier módulo de aplicación que sea recibido.

\begin{figure}[!ht]
\begin{center}
\includegraphics[width=1\textwidth]{../images/diagrama_conceptual.png}
\caption{Diagrama conceptual}
\label{fig:diagrama_conceptual}
\end{center}
\end{figure}
\end{figure}

\section{Otros diagramas o interfaces}

Gran parte de la implementación no va a ser de la aplicación principal en si mismo, sino herramientras que se le van a agregar para obtener diferentes funcionalidades que se usarán durante su desarrollo, de ahí que no se considere necesario el realizar diagramas de comunicación ni diagramas de secuencia.

\bigskip
En cuanto a la interfaz gráfica, no será necesaria porque todas las herramientas solo tienen modo de funcionamiento a través de terminal.
11 changes: 9 additions & 2 deletions text/chapters/06_Implementacion.tex
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ \chapter{Implementación}
\item {\tt UGR Transparente}: el portal de transparencia funcionando bajo el funcionamiento conjunto de la plataforma de desarrollo {\tt Node.js}, el framework web {\tt Express} y el motor de plantillas {\tt Jade}, que obtiene la información mediante consultas a una base de datos no relacional {\tt MongoDB}.
\item \textbf{Backend}: una base de datos que almacena la información referente a cada conjunto de datos que se muestra en el portal. Entre los datos almacenados, se encuentran las \textit{URLs} para realizar peticiones a la API de nuestro {\tt CKAN} ({\tt OpenData UGR}) que nos permiten descargar la información contenida en sus tablas, bien en formato \textit{CSV} o en formato \textit{PDF}.
\item \textbf{Frontend}: en primer lugar se convirtió una página con el formato de la página institucional de la \textbf{UGR} al lenguaje de plantillas {\tt Jade} y se publicó en un repositorio de {\tt GitHub}: \url{https://github.com/oslugr/PlantillaNeutraUGR}. Como el objetivo del portal de transparencia es el de visualizar y descargar los datos abiertos, las plantillas las \textit{URLs} de {\tt CKAN} para, mediante el uso de llamadas {\tt AJAX}, descargar los datos de esas direcciones proporcionadas. Una vez procesados todos los datos del archivo recibido, se muestran todas las tablas recibidas; teniendo además la opción de descargar o visualizar los datos de esas tablas. Esta visualización se hace abriendo una ventana modal en la que tras descargar el archivo \textit{CSV} desde {\tt CKAN} con {\tt AJAX}, utilizamos {\tt Google Charts} para generar las tablas con los datos recibidos.
\end{itemize}

\bigskip
Una vez comentado el trabajo previo existente, para explicar la implementación que he realizado se van a incluir pequeños fragmentos del código de los archivos escritos para la aplicación. Estos fragmentos solo contendrán las líneas más significativas, que además irán acompañados de una descripción sobre su significado y funcionamiento.

\section{Uso de JSON como origen de datos}
Expand Down Expand Up @@ -432,4 +432,11 @@ \section{Provisionamiento}
\item \textbf{ANSIBLE\_HOSTS=provisioning/ansible\_hosts}: le pasamos a {\tt Ansible} como parámetro la localización del {\tt ansible\_hosts}.
\item \textbf{ansible-playbook provisioning/transparente.yml}: ejecutamos el \textit{playbook} {\tt transparente.yml} con {\tt Ansible}.
\item \textbf{--extra-vars `user=USUARIO'}: le pasamos a {\tt Ansible} como variable el nombre del usuario con el que se va a conectar al ordenador.
\end{itemize}
\end{itemize}

\section{Repositorio con el desarrollo}

Todo la implementación descrita en este capítulo se puede encontrar en el contenido del repositorio del portal de transparencia: \url{https://github.com/oslugr/ugr-transparente-servidor}.

\bigskip
Además, esta aplicación está funcionando y es accesible desde la siguiente dirección: \url{http://transparente.ugr.es/}
4 changes: 2 additions & 2 deletions text/chapters/08_Conclusiones.tex
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ \chapter{Conclusiones y trabajos futuros}

\begin{itemize}
\item Realizar un instalación personalizada de {\tt CKAN} en un versión actual de {\tt Ubuntu} (actualmente solo existe una instalación oficial para la versión 12.04) para poder desarrollar
plugins propios con el fin de realizar tareas que se puedan considerar interesantes; principalmente interesa que los datos se pudieran obtener directamente desde el propio {\tt CKAN} y no se tuvieran que introducir manualmente mediante archivos \textit{JSON}.
\item Sería conveniente hacer que en general el portal sea más dinámico porque actualmente todas las páginas son estáticas, si eso se mantiene así en unos cuantos años cuando la cantidad de datos disponibles aumente considerablemente, la navegabilidad por el portal empeorará considerablemente. Sería necesario implementar un forma de que se puedan seleccionar para visualizar solo los datos que se deseen.
plugins propios con el fin de realizar tareas que se puedan considerar interesantes; principalmente interesa que los datos se pudieran obtener directamente desde el propio {\tt CKAN} y no se tuvieran que introducir manualmente mediante archivos \textit{JSON}. Este era uno de los objetivos del proyecto, pero por su dificultad para realizarlo en el periodo de tiempo establecido se determinó que fuera un objetivo secundario; finalmente no ha podido ser cumplido por dicho motivo, por lo que queda como una posible extensión del trabajo inicial.
\item Sería conveniente hacer que en general que el portal sea más dinámico porque actualmente todas las páginas son estáticas, si eso se mantiene así en unos cuantos años cuando la cantidad de datos disponibles aumente considerablemente, la navegabilidad por el portal empeorará considerablemente. Sería necesario implementar un forma de que se puedan seleccionar para visualizar solo los datos que se deseen.
\item Analizando los resultados de las pruebas de carga observamos que cuando el número de peticiones aumentaba en gran cantidad con respecto a la carga de trabajo actual, o aunque las peticiones no aumentaran tanto, pero si aumentase el nivel de concurrencia la aplicación se saturaba. Estoy debería ser solucionado mediante cambios en las estructura de la aplicación o uso de balanceo de carga.
\end{itemize}
242 changes: 1 addition & 241 deletions text/chapters/words.dic
Original file line number Diff line number Diff line change
@@ -1,241 +1 @@
aboveskip
addcontentsline
addto
afterpage
apendices
appendix
background
backgroundcolor
backmatter
basicstyle
begin
begingroup
bfseries
bibliography
bibliographystyle
bigrule
black
blue
book
boolean
border
break
breaklines
chapters
captionpos
catch
chapter
chaptermark
class
cleardoublepage
clearpage
code
colorlet
colortbl
cols
com
comandos
comment
commentstyle
darkgray
dbltopnum
dcolumn
decimalpoint
def
definecolor
delim
display
document
documentclass
EEEEEE
else
email
empty
end
endgroup
esperiod
export
fancy
fancyhdr
fancyhead
fancyhf
fi
fncychap
footmisc
footnotesize
for
frame
framerule
framesep
framexbottommargin
framexleftmargin
framextopmargin
frontmatter
function
geometry
germaaan
Glenn
glossary
glossaryname
gmail
graphicx
Guervós
hbox
headheight
how
HRule
HTML
http
hyperref
hypersetup
hyphenation
i
identifierstyle
if
ifdim
ifnum
ifvmode
implements
import
improve
index
indexname
input
inputenc
javascript
json
Julián
keywords
keywordstyle
language
LaTeX
left
leftmark
let
lightgray
lines
linewidth
list
listing
listings
listoffigures
listoftables
literate
long
longtable
lstdefinelanguage
lstlistingname
lstlistlistingname
lstlistoflistings
lstnewenvironment
lstset
Ltb
m
m
mainmatter
makeatletter
makeatother
makeglossary
makeindex
Maldonado
markboth
markright
Martínez
Merelo
miunsrturl
morecomment
morestring
ndkeywords
ndkeywordstyle
new
newcolumntype
newcommand
newpage
newtheorem
nocite
none
null
numb
number
numberfirstline
numbers
numbersep
numberstyle
of
option
pagebreak
pagestyle
pagetotal
pailatino
pdfauthor
pdfborder
pdfcreator
pdfkeywords
pdflatex
pdflscape
pdfpages
pdfproducer
pdfsubject
pdftitle
penalty
period
plain
printglossary
punct
purple
questions
Redefinición
renewcommand
RequirePackage
return
reutilizable
rgb
RGB
rightmark
rulesep
rulesepcolor
s
scriptsize
sectionmark
sensitive
setlength
shorthandsspanish
showstringspaces
spanish
stable
stackexchange
stepnumber
stringstyle
style
supported
switch
tableofcontents
tests
tex
texlive
textbf
thepage
thesection
this
thispagestyle
throw
tiny
titlerule
titlesec
titulacion
tituloEng
toc
topskip
transparency
ttfamily
typeof
url
usepackage
var
vbox
verbatim
version
while
write
xcolor

Node.js
Loading

0 comments on commit 5a804f2

Please sign in to comment.