46
Albert Lozano Ciller Adrià Solé Orrit Andrés Ricardo Herrera Gil Carlos Pardo Durán Fran Carpio Bueno Daniel Guzmán Guzmán

Prototipo eSlayer presentación

Embed Size (px)

Citation preview

Page 1: Prototipo eSlayer presentación

Albert Lozano CillerAdrià Solé Orrit

Andrés Ricardo Herrera GilCarlos Pardo DuránFran Carpio Bueno

Daniel Guzmán Guzmán

Page 2: Prototipo eSlayer presentación

Índice

1. Descripción del proyecto

2. Análisis de la aplicación

3. Diseño del sistema

4. Tecnologías utilizadas

5. Dimensionado

6. Planificación

7. Conclusiones

2

Page 3: Prototipo eSlayer presentación

Índice

1. Descripción del proyecto

1.1. ¿Qué es eSlayer?

2. Análisis de la aplicación

3. Diseño del sistema

4. Tecnologías utilizadas

5. Dimensionado

6. Planificación

7. Conclusiones

3

Page 4: Prototipo eSlayer presentación

1. Descripción del proyecto

1.1 ¿Qué es eSlayer?

• Juego multijugador en línea en tiempo real para móviles con sistema operativoAndroid.

• Objetivo principal: sobrevivir eliminando al resto de jugadores.

• Información, tutorial, visualización de estadísticas y ranking a través de la páginaweb.

4

Page 5: Prototipo eSlayer presentación

Índice

1. Descripción del proyecto

2. Análisis de la aplicación

2.1. Descripción de la aplicación móvil

2.2. Descripción de la aplicación web

3. Diseño del sistema

4. Tecnologías utilizadas

5. Dimensionado

6. Planificación

7. Conclusiones5

Page 6: Prototipo eSlayer presentación

2. Análisis de la aplicación

2.1.Descripción de la aplicación móvil

• Cada jugador tiene un avatar.

• Cada jugador tiene asignado un objetivo que no conoce (el avatar de otro usuario) al quedebe eliminar.

• El jugador obtiene pistas sobre el avatar de su objetivo (para reconocerlo) cubriendonecesidades (comiendo, yendo a clase,…) .

• Para matar a otro jugador, el usuario debe situarse geográficamente cerca de esejugador. Para controlar este aspecto, utilizaremos la tecnología Bluetooth.

• Publicación de eventos en Twitter/Facebook.

• Objetivo Principal:

Sobrevivir eliminando al resto de jugadores.

6

Page 7: Prototipo eSlayer presentación

2. Análisis de la aplicación

7

1 2 3

Autenticación Seleccionar partida Menú Jugador

Necesidades

Ver Jugadores

Ver pistas

Mapa

4.1

4.4

4.3

4.2

2.1 Descripción de la aplicación móvil

• Autenticación1

Page 8: Prototipo eSlayer presentación

2. Análisis de la aplicación

8

2.1 Descripción de la aplicación móvil

• Autenticación:

- Mediante Facebook o Twitter.

- Autenticación: se redirige al usuario a la página de Facebook/Twitter para aceptar lostérminos de privacidad, o para loguearse si no lo está.

1

Page 9: Prototipo eSlayer presentación

2. Análisis de la aplicación

9

21 3

Autenticación Seleccionar partida Menú Jugador

Necesidades

Ver Jugadores

Ver pistas

Mapa

4.1

4.4

4.3

4.2

2.1 Descripción de la aplicación móvil

• Seleccionar partida2

Page 10: Prototipo eSlayer presentación

2. Análisis de la aplicación

10

2.1 Descripción de la aplicación móvil

• Seleccionar Partida:

- Unirse a partida ya creada o Crear Partida.

- La partida empieza cuando se ha unido undeterminado número de jugadores.

- Posibilidad de visualizar información sobre la partida.

- Una vez la partida ha empezado, NO se pueden unirmás jugadores.

- La partida acaba cuando sólo queda un supervivienteo cuando pasa un tiempo determinado.

2

Page 11: Prototipo eSlayer presentación

2. Análisis de la aplicación

11

31 2

Autenticación Seleccionar partida Menú Jugador

Necesidades

Ver Jugadores

Ver pistas

Mapa

4.1

4.4

4.3

4.2

2.1 Descripción de la aplicación móvil

• Menú Jugador3

Page 12: Prototipo eSlayer presentación

2. Análisis de la aplicación

12

2.1 Descripción de la aplicación móvil

• Menú Jugador:

- Información de nuestro jugador (foto, avatar eSlayer).

- Balas: Cada vez que se dispara a un jugador que no seatu objetivo, se pierde una bala. Si te quedas sin balas, nopuedes disparar durante un tiempo determinado.

- Ver pistas: Listar las pistas obtenidas sobre el objetivo alque debemos asesinar.

- Tiempo restante: Tiempo que queda para dar la partidapor finalizada.

- Acceso a otras pantallas:

- Ver pistas

- Necesidades

- Ver jugadores

- Ver Mapa

3

Page 13: Prototipo eSlayer presentación

2. Análisis de la aplicación

13

4.1

1 2

Autenticación Seleccionar partida Menú Jugador

Necesidades

Ver Jugadores

Ver pistas

Mapa

3

4.4

4.3

4.2

2.1 Descripción de la aplicación móvil

• Necesidades4.1

Page 14: Prototipo eSlayer presentación

2. Análisis de la aplicación

14

2.1 Descripción de la aplicación móvil

• Necesidades:

- Cada X minutos, se deben saciar unas necesidades (iral baño, comer, …).

- Recompensa por saciar una necesidad: obtener unapista.

- Para saciar una necesidad debes capturar unDETERMINADO código QR con el móvil. Ejemplo:

- Si tienes que comer, debes capturar el códigoQR localizado en el restaurante de la escuela.

4.1

Page 15: Prototipo eSlayer presentación

2. Análisis de la aplicación

15

4.2

1 3

Autenticación Seleccionar partida Menú Jugador

Necesidades

Ver Jugadores

Ver pistas

Mapa

4.1

4.4

4.3

2

2.1 Descripción de la aplicación móvil

• Ver Pistas4.2

Page 16: Prototipo eSlayer presentación

2. Análisis de la aplicación

16

2.1 Descripción de la aplicación móvil

• Ver Pistas:

- Se obtienen al cubrir necesidades.

- Las pistas dan información acerca del AVATAR de tuobjetivo o de las zonas donde ha estado tu objetivo.

- Los avatares son asignados automáticamente por elservidor para evitar que hayan dos avatarescompletamente iguales.

4.2

Page 17: Prototipo eSlayer presentación

2. Análisis de la aplicación

17

4.3

1 3

Autenticación Seleccionar partida Menú Jugador

Necesidades

Ver Jugadores

Ver pistas

Mapa

4.1

4.4

4.2

2

2.1 Descripción de la aplicación móvil

• Ver Jugadores4.3

Page 18: Prototipo eSlayer presentación

2. Análisis de la aplicación

18

2.1 Descripción de la aplicación móvil

• Ver Jugadores:

- Permite ver información acerca de los jugadoresque siguen vivos en la partida:

- Foto y avatar eSlayer.

- Dónde ha capturado su último código QR.

- Listar ubicaciones donde ha estado a lo largo de lapartida.

- Escanear zona: escanea mediante Bluetooth quéjugadores se encuentran próximos a él. Acciónesencial para acabar con tu objetivo.

4.3

Page 19: Prototipo eSlayer presentación

2. Análisis de la aplicación

19

4.4

1 3

Autenticación Seleccionar partida Menú Jugador

Necesidades

Ver Jugadores

Ver pistas

Mapa

4.1

4.3

4.2

2

2.1 Descripción de la aplicación móvil

• Mapa4.4

Page 20: Prototipo eSlayer presentación

2. Análisis de la aplicación

20

2.1 Descripción de la aplicación móvil

• Mapa:

- Permite saber cuáles han sido los últimos códigos QRvisitados por el resto de jugadores y la localizacióngeográfica de éstos en la escuela.

- Útil para saber dónde debes escanear la zona paraacabar con tu objetivo.

4.4

Page 21: Prototipo eSlayer presentación

2. Análisis de la aplicación

21

Page 22: Prototipo eSlayer presentación

2. Análisis de la aplicación

22

2.1 Descripción de la aplicación móvil

• Información importante:

- Cada jugador tiene asignada un objetivo y a la vez es el objetivo de otro jugador.

- Herencia de objetivos: al acabar con tu víctima, tu nuevo objetivo pasará a ser elantiguo objetivo de tu víctima.

- Herencia de pistas: Al heredar el objetivo de tu víctima, también heredarás las pistasque ésta tenía sobre su objetivo.

Juan

Mari

Ana

Jose

Juan

Mari

Ana

Jose

Page 23: Prototipo eSlayer presentación

2. Análisis de la aplicación

2.2. Descripción de la aplicación web

• Ofrece información sobre la aplicación eSlayer (descripción, cómo se juega, vídeo-tutorial, …).

23

• Link QR para descargar la aplicacióndesde el móvil.

• Ranking semanal de jugadores.

• Buscador de jugadores: ver perfil.

• Información sobre los desarrolladoresdel proyecto.

Page 24: Prototipo eSlayer presentación

2. Análisis de la aplicación

24

Page 25: Prototipo eSlayer presentación

Índice

1. Descripción del proyecto

2. Análisis de la aplicación

3. Diseño del sistema

4. Tecnologías utilizadas

5. Dimensionado

6. Planificación

7. Conclusiones

25

Page 26: Prototipo eSlayer presentación

• Servidor Web:

- Utiliza servicios web para la comunicación con la aplicación móvil.

Recibe petición-> solicita servicio a capa lógica -> devuelve respuesta decapa lógica al usuario.

- Aloja el portal web de la aplicación (para la conexión mediante PCs).

Recibe petición-> solicita servicio a capa lógica -> devuelve respuesta decapa lógica al usuario.

- Capa lógica: se encarga de la mecánica de las operaciones y el accesoa la base de datos.

Recibe solicitudes de servicios web y portal web -> procesa solicitudesaccediendo a BD -> devuelve respuesta a servicios web y portal web.

26

3. Diseño del Sistema

Servicios

WebPortal Web

Lógica de la aplicación

Servidor Web

HT

TP

(R

ES

T) H

TT

P +

JS

ON

HT

TP

HT

TP

Servidor BD

Page 27: Prototipo eSlayer presentación

• Ejemplo: Juan quiere matar a Jose

27

3. Diseño del Sistema

Servicios

Web

Lógica de la

aplicación

Si

Mato a Jose

¿Juan puede

matar

a jose?

¿Jose es la

victima de Juan?

¿Quién era la

victima de Jose?

BDMaria

Jose está muerto

Si

María es el

objetivo de JuanHas matado a Jose,

tienes un

nuevo objetivoJuan

Page 28: Prototipo eSlayer presentación

• Seguridad en Servicios Web:

• Utilización del Estándar OAuth:

• Usuario utiliza access token para autenticarse.

• El access token lo genera la aplicación al recibir el request token.

• Sólo el usuario que ha enviado el request token puede utilizar el access token (elaccess token está ligado al request token).

28

3. Diseño del Sistema

Usuario Servidor

Get Request token

Grant Request token

Get Access token

Grant Access token

Mata a Dani + access token

Dani ha muerto

. . .

Page 29: Prototipo eSlayer presentación

Índice

1. Descripción del proyecto

2. Análisis de la aplicación

3. Diseño del sistema

4. Tecnologías utilizadas

4.1. Aplicación móvil

4.2. Portal web

4.3. Servicio web

4.4. Base de datos

4.5. Herramientas de desarrollo

5. Dimensionado

6. Planificación

7. Conclusiones

29

Page 30: Prototipo eSlayer presentación

4. Tecnologías utilizadas

30

4.1 Aplicación móvil

• Desarrollada para el SO Android de Google: plataforma abierta con mayor número deusuarios.

• Autenticación y autorización a través de Twitter/Facebook.

4.2 Portal web

• Java: lenguaje de programación de alto nivel orientado a objetos.

• HTML: lenguaje de marcado para la elaboración de las páginas web.

• CSS: lenguaje usado para definir la presentación de un documento estructurado escrito enHTML o XML.

• Ajax:

- Conjunto de técnicas para el desarrollo de aplicaciones web asíncronas.

- Se ejecuta en el cliente y mantiene una comunicación con el servidor asíncrona ensegundo plano.

Page 31: Prototipo eSlayer presentación

4. Tecnologías utilizadas

31

4.3 Servicio web

• REST:

- Técnica de arquitectura software para sistemas distribuidos como WWW.

- Permite hacer llamadas a un webservice mediante peticiones HTTP sin la necesidad deimplementar un cliente específico.

- Más ligero que SOAP.

• JSON:

- Estándar basado en texto diseñado para el intercambio de datos de fácil lectura.

- Deriva de Javascript y se trata de un formato más ligero que XML.

• Java Servlet:

- Tecnología Java utilizada que amplia las capacidades del servidor.

- Corren dentro de un contenedor de servlets (pe. Tomcat).

- Puede comunicarse sobre cualquier protocolo cliente-servidor.

- Fácil integración con otras partes del proyecto ya hechas en Java.

Page 32: Prototipo eSlayer presentación

4. Tecnologías utilizadas

32

4.4 Base de datos

• RDBMS:

- Sistema de gestión de una base de datos relacional.

- SQL es el lenguaje diseñado para la gestión de datos dentro de RDBMS.

- Usaremos MySQL como servidor SQL (Open-Source).

4.5 Herramientas de desarrollo

• Apache Wicket:

- Framework para el diseño de aplicaciones web: HTML (diseño) y JAVA(comportamiento). Uso transparente de AJAX. Fácil desarrollo.

• Apache Maven:

- Herramienta de software para la gestión y construcción de proyectos Java.

- Se basa en el concepto de Project Object Model (POM) para describir el proyecto desoftware a construir, sus dependencias a otros módulos y componentes externos .

- Incluye automáticamente las dependencias necesarias para arrancar un proyecto.

Page 33: Prototipo eSlayer presentación

4. Tecnologías utilizadas

33

4.5 Herramientas de desarrollo

• Android SDK: API para el desarrollo de aplicaciones para Android.

• SVN: Sistema de control de versiones.

- Ofrece la posibilidad de que varias personas puedan modificar y administrar el mismoconjunto de datos desde sus respectivas ubicaciones.

- Privacidad en los proyectos (a diferencia de GitHub).

• Jersey: API en Java para la implementación de servicios web RESTful.

• JPA: Entorno de desarrollo que gestiona datos relacionales en aplicaciones Java. Evita tener que diseñar bases de datos y clases Java por separado. Pensado para RDBMS.

• Hibernate:

- Implementa la API de JPA.

- La relación se realiza mediante archivos XML o anotaciones.

Page 34: Prototipo eSlayer presentación

Índice

1. Descripción del proyecto

2. Análisis de la aplicación

3. Diseño del sistema

4. Tecnologías utilizadas

5. Dimensionado

5.1. Estudio de demanda

5.2. Estrategia de dimensionado y estudio de uso

6. Planificación

7. Conclusiones34

Page 35: Prototipo eSlayer presentación

5. Dimensionado

5.1.Estudio de demanda

• Titulaciones en la EETAC:

• Grados: Sistemas de Telecomunicación, Telemática, Aeronavegación, Aeropuertos.

• 25 alumnos/grado · 4 grados/cuatrimestre · 2 cuatrimestres/año · 4 años = 800alumnos

• Másteres oficiales: MASTEAM, MAST, GEONA

• 20 alumnos/Máster · 3 Másteres/cuatrimestre · 2 cuatrimestres/año · 4 años =480 alumnos

• Personal docente de la EETAC: alrededor de 150 profesores.

• Posibles usuarios de la aplicación: 1430 usuarios.

35

Page 36: Prototipo eSlayer presentación

5. Dimensionado

5.2. Estrategia de dimensionado y estudio de uso

• Apache JMeter: herramienta para realizar test de rendimiento del servidor.

• Se modela un usuario base y se realizan peticiones concurrentes.

• Se obtiene la carga máxima y se comprueba el consumo de recursos por usuario enel servidor .

• A partir de estos datos podremos dimensionar el servidor para que soporte unmínimo de usuarios (pe. 1000 usuarios).

• Software de monitorización del servidor (pe. Zabbix):

• Controlaremos el estado del servidor en todo momento.

• Reúne y almacena información acerca del consumo de recursos o peticionesrecibidas.

• Estadísticas del juego: a partir de los datos almacenados en la BBDD SQL.

• Relacionaremos esta información con la que ofrece el software de gestión sacandoconclusiones sobre el uso de la aplicación (Pe: uso de RAM vs partidas en curso).

36

Page 37: Prototipo eSlayer presentación

5. Dimensionado

5.2. Estrategia de dimensionado y estudio de uso

• Estudio de la aplicación móvil: se analizarán requisitos y consumo.

• Diferentes tipos de móviles Android.

• Diferentes tipos de conexión: GPRS, 3G o WiFi.

• Diferentes perfiles de uso del dispositivo: número de aplicaciones en ejecución.

• Los estudios se realizarán de forma regular para disponer de una muestra más grande:

• Se sacarán mejores conclusiones para optimizar la aplicación.

37

Page 38: Prototipo eSlayer presentación

Índice

1. Descripción del proyecto

2. Análisis de la aplicación

3. Diseño del sistema

4. Tecnologías utilizadas

5. Dimensionado

6. Planificación

6.1. Metodología Scrum

7. Conclusiones

38

Page 39: Prototipo eSlayer presentación

6. Planificación

6.1. Metodología Scrum

• El proyecto se desarrolla de forma incremental (sprints) realizando, de forma regular,entregas parciales (incrementos) del producto final.

• Dentro del marco de trabajo definido por Scrum existen diferentes roles:

• Propietario del producto: Toni Oller y Eduard Garcia (representa al cliente).

• Scrum manager: Ricardo (gestiona y facilita la ejecución del proceso).

• Equipos de desarrollo:

• Portal web: Ricardo y Adrià (Wicket).

• Web Services: Albert (Rest).

• Cliente móvil: Fran y Daniel (Android).

• Base de datos: Carlos (Hibernate).

• Interesados: profesores DXAT (asesoran y observan).

39

Page 40: Prototipo eSlayer presentación

6. Planificación

6.1. Metodología Scrum

• El product backlog (esta presentación) es el punto de partida. Explica, a alto nivel, eltrabajo a realizar.

• A fecha de hoy el primer sprint ya ha terminado. Las tareas completadas (definidas en elsprint backlog y mostradas en la demo) son:

• Implementación parcial del portal Web: no hay acceso a BBDD.

• Web Service: devolver lista de usuarios.

• Cliente móvil:

• Implementación del diseño previo de la interfaz gráfica.

• Autenticación a través de Twitter.

• Solicitar lista de usuarios y mostrarla por pantalla.

40

Page 41: Prototipo eSlayer presentación

6. Planificación

6.1. Metodología Scrum

• Tiempo disponible para completar el desarrollo: 2 meses.

• Sprint pendientes: 4 sprints de dos semanas de duración.

41

Page 42: Prototipo eSlayer presentación

6. Planificación

6.1. Metodología Scrum

• Día 1: sprint planning meeting

• Seleccionar qué trabajo se ha de hacer y preparar el sprint backlog.

• A partir del día 1: reunión diaria de 15 minutos para inspeccionar cómo va el trabajode los equipos (daily scrum).

• Último día del sprint: revisar el trabajo completado y realizar una demo (sprintreview meeting).

42

Page 43: Prototipo eSlayer presentación

6. Planificación

6.1. Metodología Scrum

• Objetivos del próximo sprint:

• Esqueleto de modelos/clases (base): diseño e implementación.

• BBDD:

• Familiarizarse con JPA e Hibernate.

• Implementación de operaciones básicas de lectura y escritura.

• Web Services:

• Identificar qué servicios web (base) se van a necesitar.

• Añadirlos al servidor (la lógica se implementará en próximos sprints).

• Android:

• Códigos QR: investigar cómo se crean, cómo se leen y planificar su uso enla aplicación.

• Notificaciones: identificar los requisitos y realizar un diseño del sistema.

43

Page 44: Prototipo eSlayer presentación

6. Planificación

44

Page 45: Prototipo eSlayer presentación

7. Conclusiones

45

• Subversion nos ayuda a trabajar de forma coordinada.

• Maven facilita el uso de diferentes librerías añadiéndolas automáticamente en el proyecto.

• Existen muchas APIs que nos permiten trabajar con diferentes tecnologías sin tener queimplementar métodos propios.

- Por ejemplo Jersey ya ofrece soporte para OAUTH.

• Los servicios web RESTful son útiles para la interacción con clientes escritos en lenguajesdistintos.

- Inconveniente: seguridad.

• Scrum nos ofrece un método de organización que se adapta muy bien a las característicasde este proyecto.

- Nos permite desarrollar de manera incremental a la vez que nos familiarizamos conlas distintas tecnologías.

- Al no dominar las tecnologías que usaremos es difícil estimar la duración de cadatarea con precisión.

Page 46: Prototipo eSlayer presentación

46

Turno de preguntas