aplicación web de gestión de bases de datos nosql a través ...€¦ · aplicación web de...

43
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

Upload: others

Post on 22-Sep-2020

7 views

Category:

Documents


0 download

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

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

• 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

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

• 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

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

• 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

• 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

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

• 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

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

• 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

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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

• 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

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

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

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

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