Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de...

Post on 22-Sep-2020

9 views 0 download

Transcript of Aplicación web de gestión de bases de datos NoSQL a través ...€¦ · Aplicación web de...

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