aplicación web de gestión de bases de datos nosql a través ...€¦ · aplicación web de...
TRANSCRIPT
![Page 1: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/1.jpg)
Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y
servicios REST en Spring
Alfonso Nishikawa Muñumer
Director: Miguel Rodríguez Penabad
Grado en Ingeniería Informática
Mención en Ingeniería del Software
Proyecto clásico de Ingeniería
Facultad de Informática
A Coruña, 3 de julio de 2018
![Page 2: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/2.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
2 / 42
Índice
![Page 3: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/3.jpg)
Motivación
BD NoSQL
BD NoSQL
Aplicación desarrollada
Object-Datastore MapperEntidades en código
• Inexistencia de aplicaciones de acceso genérico a datos NoSQL
3 / 42
![Page 4: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/4.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
4 / 42
Índice
![Page 5: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/5.jpg)
Product Vision Box
5 / 42
![Page 6: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/6.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
6 / 42
Índice
![Page 7: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/7.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
7 / 42
Índice
![Page 8: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/8.jpg)
Metodología (Scrum)
• Historias de Usuario• Requisitos
• Product Backlog
• Scrum
8 / 42
![Page 9: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/9.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
9 / 42
Índice
![Page 10: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/10.jpg)
Historias de usuario
10 / 42
![Page 11: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/11.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
11 / 42
Índice
![Page 12: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/12.jpg)
Plan de entregas
12 / 42
![Page 13: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/13.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
13 / 42
Índice
![Page 14: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/14.jpg)
Ejemplo de sprint (I)
• Sprint Planning, sprint 3
14 / 42
![Page 15: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/15.jpg)
Ejemplo de sprint (II)• Sprint Planning
15 / 42
![Page 16: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/16.jpg)
Ejemplo de sprint (III)
• Daily Scrum• Actualización de avance
• Gráfica de burn-down
16 / 42
![Page 17: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/17.jpg)
Ejemplo de sprint (IV)
• Desarrollo
17 / 42
![Page 18: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/18.jpg)
Ejemplo de sprint (V)
• Desarrollo
18 / 42
![Page 19: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/19.jpg)
Ejemplo de sprint (VI)
• Desarrollo
19 / 42
![Page 20: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/20.jpg)
Ejemplo de sprint (VII)
• Sprint Review
• Lista de vídeos: https://youtu.be/TTtoRh5aaDI
20 / 42
![Page 21: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/21.jpg)
Ejemplo de sprint (VIII)
• Sprint Retrospective• Personas, procesos, relaciones y herramientas
• ¿Qué se hizo bien?
• ¿Qué se hizo mal?
• ¿Qué se puede hacer para mejorar?
• Comenzar un nuevo sprint
21 / 42
![Page 22: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/22.jpg)
Ejemplo de sprint (IX)
• Daily Scrum sprint 2• Gráfica de burn-down no siempre perfecta
22 / 42
![Page 23: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/23.jpg)
Ejemplo de sprint (X)
• Sprint Review: estimación del plan de entregas
23 / 42
![Page 24: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/24.jpg)
Ejemplo de sprint (XI)
• Sprint Review: estimación del plan de entregas
24 / 42
![Page 25: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/25.jpg)
Ejemplo de sprint (XII)
• Sprint Review: estimación del plan de entregas
25 / 42
![Page 26: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/26.jpg)
Ejemplo de sprint (XIII)
• Sprint Review: estimación del plan de entregas
26 / 42
![Page 27: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/27.jpg)
Ejemplo de sprint (XIV)
• Sprint Review: estimación del plan de entregas
27 / 42
![Page 28: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/28.jpg)
Ejemplo de sprint (XV)
• Sprint Review: estimación del plan de entregas
28 / 42
![Page 29: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/29.jpg)
Ejemplo de sprint (y XVI)
• Sprint Retrospective• Deuda técnica
• Documentación
• Ejecución del sprint: finalización a tiempo
29 / 42
![Page 30: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/30.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
30 / 42
Índice
![Page 31: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/31.jpg)
Arquitectura (I)
31 / 42
![Page 32: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/32.jpg)
Arquitectura (II)
32 / 42
![Page 33: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/33.jpg)
Arquitectura (III)
33 / 42
![Page 34: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/34.jpg)
Arquitectura (IV)
34 / 42
![Page 35: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/35.jpg)
Arquitectura (y V)
35 / 42
![Page 36: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/36.jpg)
Componentes técnicos (I)
• Jerarquía de clases que define un esquema y mapeo
36 / 42
![Page 37: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/37.jpg)
Componentes técnicos (II)
• Patrón Visitante sobre dicha jerarquía
37 / 42
![Page 38: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/38.jpg)
Componentes técnicos (y III)
• Patrón Estado para el asistente
38 / 42
![Page 39: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/39.jpg)
• Motivación
• Product Vision Box
• Demo
• Desarrollo• Metodología (Scrum)
• Historias de Usuario
• Plan de entregas
• Ejemplo de sprint
• Arquitectura y componentes técnicos
• Conclusiones
39 / 42
Índice
![Page 40: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/40.jpg)
Conclusiones
• Desarrollado una aplicación web y servidor durante 9 sprints: En ExtJS y servicios REST en Spring. Licencia efectiva GPLv3
• Funcionalidades:• Gestión de datos.
• Gestión de esquemas y mapeos.
• Instalación fácil mediante un único .war
• Integración parcial para acceso a datos en Hadoop.
• Solución de bugs e issues de proyectos de software libre: GORA-109/421/510/511/530, NUTCH-1741, Ext JS
40 / 42
![Page 41: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/41.jpg)
Conclusiones: Lecciones aprendidas
• Spring (MVC, REST, Security, Data JPA) , JPA, Ext JS, Swagger, Flyway, Siesta, Gettext, patrón MVVM, historias de usuario, SCSS, CORS, Amazon EC2, JsDuck, SQLite,…
• Puesta en práctica de Scrum.
• Estimar las historias de usuario como puntos de dificultad.
• Verificar los Requisitos No Funcionales sprint a sprint.
• Errores cometidos en el proyecto:• Expectativas irrealistas.• Estimaciones poco realistas.
41 / 42
![Page 42: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/42.jpg)
Conclusiones: Trabajo Futuro
• Historias de usuario pendientes para desarrolladores, administradores y managers.
• Soporte para más almacenes de datos
• Adaptación a dispositivos móviles
• Sobre Apache Gora:• Implementación del API JPA: definir entidades mediante
anotaciones
• Optimizaciones de serialización y compresión
• Mayor flexibilidad de mapeo del módulo de HBase
• Nuevos conectores
42 / 42
![Page 43: Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y servicios REST en](https://reader033.vdocuments.site/reader033/viewer/2022051604/6001d76dbdad0f6e9f08fa90/html5/thumbnails/43.jpg)
Aplicación web de gestión de bases de datos NoSQL a través de Apache Gora, en ExtJS y
servicios REST en Spring
Gracias por su atención