ebook img

Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y PDF

244 Pages·2017·12.68 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y

Facultad de Informática Departamento de Computación Trabajo de Fin de Grado Grado en Ingeniería Informática Mención: Ingeniería del Software Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en Spring Autor: Alfonso Nishikawa Muñumer Director: Miguel Rodríguez Penabad A Coruña, a 21 de junio de 2018. A Noe y al software libre Agradecimientos En el transcurso de la realización del presente proyecto no han faltado momen- tos de desánimo durante la duración del desarrollo de éste mismo. Es una verdadera dificultad desarrollar un trabajo de fin de grado al mismo tiempo que se han de llevar a cabo obligaciones laborales. Adicionalmente, dado que uno de los objetivos es liberar el proyecto a la comunidad de software libre (hablando así en genérico), este proyecto se ha convertido en una especie de proyecto “faraónico”, tratando de poner el máximo mimo y atención a la mayor cantidad de detalles, dentro de mis posibilidades, relativos a la ingeniería del software con el fin de garantizar una mínima calidad a la hora de compartirlo. El desarrollo de un tra- bajo de fin de grado es una excelente oportunidad para indagar, investigar y probar con considerable profundidad cuestiones que en un entorno laboral van a estar prohibidas o para las que, de ningún modo, se dispondrá de tiempo más que para solucionar el contratiempo o necesidad acuciante. Adjetivo el proyecto como “faraónico” porque probablemente no haya lugar en el que más haya escuchado la frase “haz cualquier cosa y entrega” y “termina ya y entrega” en contraste a los detalles que comúnmente nadie ve ni valora como por ejemplo exponer un catálogo REST y su documentación con Swagger, adaptar Spring Security para que se comporte de manera RESTful, explorar profunda- mente JPA para descubrir las interfaces JpaRepository y reducir el acceso a datos a la mínima expresión, gestión de migración de la base de datos con Flyway, com- pilación de código java en tiempo de ejecución, uso efectivo del patrón MVVM en la vista, ejecución automática de tests de vista, despliegue en Amazon EC2, vídeos como simulación de Sprint Reviews, o muchos otros detalles relativos a la calidad del código. Ha sido arduo y pesadumbroso continuar con el proyecto cada vez que he co- mentado con alguien el mismo porque por norma general no se valora lo detallado de la realización en este proyecto desde el punto de ingeniería del software, ni se comparte la necesidad de la herramienta desarrollada orientada a la solución de una carencia muy específica. Es por ello que he de agradecer de corazón el ánimo y apoyo incondicional de Noe, Omar y Roberto. Es especial el de Noe, que incluso ha llegado a ser mecenas durante un periodo de tiempo. Es duro decirlo por el número reducido, pero son las tres únicas personas para las que “quiero hacer mi proyecto bajo mi estándar de calidad software” les valía como razón para apoyarme en la realización de un proyecto en origen tan extenso y ambicioso, aunque a mí me parezca que como un filete a la sartén el resultado final resulta encogido. Agradecer la buena recepción en la comunidad de Apache Gora de la muestra de la versión alfa de la aplicación por parte del presidente del Comité de Gestión del mismo, Lewis John McGibbney, y por parte de los miembros del comité Chris Mattmann, Furkan Kamaci y Madhawa Kasun Gunasekara que sin duda cierran la lista de los pocos elogios recibidos. Resumen En este proyecto de desarrolla una aplicación web que permite acceder a alma- cenes de datos NoSQL a través de Apache Gora. Con ello se suple una carencia existente entre la comunidad de software libre de Apache Gora, ya que hasta ahora no existía ninguna aplicación que permitiese gestionar los datos persistidos a través de este motor. La aplicación desarrollada permite la manipulación de datos y la gestión de esquemas y mapeos de manera visual. Se ha extendido Apache Gora con un desarrollo que permite exponer informa- ción de la base de datos nativa que se esté utilizando, y se ha creado un módulo que permite realizar análisis en entornos Big Data mediante Apache Pig. El desarrollo del proyecto se ha llevado a cabo utilizando la metodología Scrum e Historias de Usuario con una duración de 9 sprints. Palabras clave: servicios REST, Almacenes NoSQL, Desarrollo Ágil, Scrum, Aplicación web de página única (SPA) Índice general Página 1. Introducción .................................................................................. 1 1.1. Motivación ........................................................................................... 2 1.2. Descripción del problema a resolver ..................................................... 3 1.3. Descripción de la solución propuesta .................................................... 4 1.4. Estructura de la memoria .................................................................... 5 2. Contextualización .......................................................................... 7 2.1. Apache Gora ........................................................................................ 8 2.2. NoSQL ............................................................................................... 11 2.3. Ext JS ............................................................................................... 14 2.4. Spring ................................................................................................ 17 2.5. Apache Hadoop.................................................................................. 19 2.6. Apache HBase .................................................................................... 21 2.7. Estado del arte .................................................................................. 22 3. Metodología ................................................................................. 27 3.1. Scrum ................................................................................................ 28 3.2. Historias de usuario ........................................................................... 36 3.3. Aplicación al presente proyecto .......................................................... 41 4. Requisitos .................................................................................... 43 4.1. Product Vision Box ........................................................................... 44 4.2. Identificación de roles ........................................................................ 49 4.3. Historias de usuario ........................................................................... 51 4.4. Descripción del sistema ...................................................................... 61 4.5. Riesgos ............................................................................................... 61 4.6. Plan de entregas y coste..................................................................... 63 5. Desarrollo .................................................................................... 67 5.1. Sprint 0 .............................................................................................. 68 5.2. Sprint 1: Sprint inicial........................................................................ 72 I II Índice general 5.3. Sprint 2: Visualización básica de datos .............................................. 80 5.4. Sprint 3: Visualización básica de datos (II) ....................................... 90 5.5. Sprint 4: Búsqueda y detalles de visualización ................................... 98 5.6. Sprint 5: Internacionalización y gestión de conexiones ..................... 109 5.7. Sprint 6: Esquemas y mappings de tablas ........................................ 115 5.8. Sprint 7: Edición de datos ............................................................... 135 5.9. Sprint 8: Edición de datos (II) ......................................................... 145 5.10. Sprint 9: Ejecución de scripts en Apache Pig ................................... 151 5.11. Entregable ....................................................................................... 157 6. Evaluación ................................................................................. 163 6.1. Requisitos no funcionales ................................................................. 165 6.2. Planificación y costes finales ............................................................ 170 6.3. Aportaciones al software libre .......................................................... 175 7. Conclusiones .............................................................................. 177 7.1. Objetivos alcanzados ....................................................................... 178 7.2. Lecciones aprendidas ....................................................................... 178 7.3. Futuras líneas de trabajo ................................................................. 180 A. Glosario de acrónimos ............................................................... 185 B. Glosario de términos ................................................................. 187 C. Manual de usuario ..................................................................... 189 D. Principios del Manifiesto Ágil ................................................... 201 E. Estructuras de datos de prueba ................................................ 203 F. Diagramas UML extendidos ...................................................... 217 G. Evaluación de usabilidad ........................................................... 219 Referencias ........................................................................................ 221

Description:
Aplicación en Ext JS simulando un escritorio completo . 14 por lo que automáticamente dispone de métodos de CRUD. En el ejemplo se defi- .. rrolladores, el cliente y el Scrum Master que hace de dinamizador. En.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.