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
• 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
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
• 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
Product Vision Box
5 / 42
• 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
• 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
Metodología (Scrum)
• Historias de Usuario• Requisitos
• Product Backlog
• Scrum
8 / 42
• 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
Historias de usuario
10 / 42
• 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
Plan de entregas
12 / 42
• 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
Ejemplo de sprint (I)
• Sprint Planning, sprint 3
14 / 42
Ejemplo de sprint (II)• Sprint Planning
15 / 42
Ejemplo de sprint (III)
• Daily Scrum• Actualización de avance
• Gráfica de burn-down
16 / 42
Ejemplo de sprint (IV)
• Desarrollo
17 / 42
Ejemplo de sprint (V)
• Desarrollo
18 / 42
Ejemplo de sprint (VI)
• Desarrollo
19 / 42
Ejemplo de sprint (VII)
• Sprint Review
• Lista de vídeos: https://youtu.be/TTtoRh5aaDI
20 / 42
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
Ejemplo de sprint (IX)
• Daily Scrum sprint 2• Gráfica de burn-down no siempre perfecta
22 / 42
Ejemplo de sprint (X)
• Sprint Review: estimación del plan de entregas
23 / 42
Ejemplo de sprint (XI)
• Sprint Review: estimación del plan de entregas
24 / 42
Ejemplo de sprint (XII)
• Sprint Review: estimación del plan de entregas
25 / 42
Ejemplo de sprint (XIII)
• Sprint Review: estimación del plan de entregas
26 / 42
Ejemplo de sprint (XIV)
• Sprint Review: estimación del plan de entregas
27 / 42
Ejemplo de sprint (XV)
• Sprint Review: estimación del plan de entregas
28 / 42
Ejemplo de sprint (y XVI)
• Sprint Retrospective• Deuda técnica
• Documentación
• Ejecución del sprint: finalización a tiempo
29 / 42
• 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
Arquitectura (I)
31 / 42
Arquitectura (II)
32 / 42
Arquitectura (III)
33 / 42
Arquitectura (IV)
34 / 42
Arquitectura (y V)
35 / 42
Componentes técnicos (I)
• Jerarquía de clases que define un esquema y mapeo
36 / 42
Componentes técnicos (II)
• Patrón Visitante sobre dicha jerarquía
37 / 42
Componentes técnicos (y III)
• Patrón Estado para el asistente
38 / 42
• 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
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
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
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
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
Top Related