Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web...

19
Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera

Transcript of Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web...

Page 1: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb)

Giancarlo Vera Rivera

Page 2: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Problema

Limitaciones en el acceso al sistema por medio de dispositivos móviles, dados los siguientes factores: Ancho de banda. Interacciones con el dispositivo.

Ausencia de interfaz de comunicación para propósitos de integración o intercambio de información.

Page 3: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Solución propuesta

Interfaz Web de comunicaciones que exponga funcionalidades críticas del sistema mediante un protocolo estándar de comunicaciones, el nombre asignado a esta interfaz es SIDWeb API.

Page 4: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Componentes de la solución

DoctrineSIDWeb APIMódulo de

Enrutamiento

SIDWeb BD

Directorio Espol

CAS Espol

Módulos SIDWeb

Framework Symfony

SOAP HTTP

REST BD DRIVER

APPAPP

Cliente SIDWeb API

Page 5: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Flujo de requisiciones

Módulos SIDWeb

Módulo SIDWeb API

Entorno Symfony

4

Módulo de enrutamiento

5

6

1 2

3

Page 6: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

JSON vs. XML

Ejemplo XML:

<?xml version="1.0" encoding="ISO-8859-1"?><root> <vigentes> <anuncio> <anuncio_token>83b7e4297e31f767db921700b756d83bcbf2e469</anuncio_token> <anuncio_nombre>Anuncio #3 en curso de test</anuncio_nombre> <seccion_nombre>null</seccion_nombre> <anuncio_visible>true</anuncio_visible> <anuncio_disponible_desde>2012-02-02 00:00:00</anuncio_disponible_desde> <anuncio_disponible_hasta>2012-02-29 00:00:00</anuncio_disponible_hasta> <anuncio_descripcion><p>\r\n\t Descripcion anuncio #3:<\/p></anuncio_descripcion> </anuncio> </vigentes> <nodisponible></nodisponible> <recuperado></recuperado></root>

Caracteres usados: 667

Page 7: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

JSON vs. XML

Ejemplo JSON:

{"vigente":[{"anuncio_token":"83b7e4297e31f767db921700b756d83bcbf2e469","anuncio_nombre":"Anuncio #3 en curso de test","seccion_nombre":null,"anuncio_visible":true,

"anuncio_disponible_desde":"2012-02-02 00:00:00", "anuncio_disponible_hasta":"2012-02-29 00:00:00", "anuncio_descripcion":"<p>\r\n\t Descripcion anuncio #3:<\/p>"}, "no_disponible":[], "recuperado":[]}

Caracteres usados: 411

Page 8: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

JSON vs. XML

Para el ejemplo JSON utilizó 266 caracteres menos que XML para representar el mismo escenario.

Si para el mismo ejemplo existiesen dos anuncios la diferencia sería de 420 caracteres a favor de JSON.

Page 9: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Consideraciones seguridad

SIDWeb API utiliza canales seguros de comunicación, en los cuales la información intercambiada es encriptada y se realizan verificaciones de identidad por medio de certificados.

El framework Symfony, en el cual fue desarrollado el API, implementa mecanismos para evitar ataques al sistema.

Page 10: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Secuencia Genérica de Operaciones

SIDWeb API

Llamada al método

Informacion requerida (JSON)

comprobarParametros()

Doctrine

obtenerInformacion()

Información requerida

construirRespuestaJson()

App Cliente

comprobarTicketAcceso()

ticket válido

Page 11: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Pruebas – Consola

Page 12: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Pruebas – SIDWeb Móvil

Page 13: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Pruebas con usuarios

Perfiles: Se identificaron los usuarios con números del 1 al 5, los perfiles de los usuarios fueron: USR 1, 5: Estudiantes de ESPOL familiarizados

con el uso de SIDWeb. USR 2, 3: Administradores del sistema SIDWeb. USR 4: No era estudiante, sin familiaridad con el

uso del software SIDWeb, pero con experiencia en el uso de aplicaciones Web.

Page 14: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Pruebas con usuarios

Page 15: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Demostración de SIDWeb Móvil

Page 16: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Conclusiones y Recomendaciones Conclusiones:

Constatación de interacción con aplicaciones externas.

Se simplifico el desarrollo mediante el uso de frameworks.

El uso de canales seguro brinda un nivel adicional de protección de datos sensibles.

El uso de formatos de baja sobrecarga es ventajoso en el caso de aplicaciones con interacciones asíncronas o móviles.

Page 17: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Conclusiones y Recomendaciones Recomendaciones:

Dependiendo de la aplicación emplear tecnologías multiplataforma.

Reducir tiempo de corrección de errores mediante consulta de documentación y comunidades relacionadas con las tecnologías empleadas.

Utilización de mecanismos de encriptación para datos sensibles que son intercambiados en la red.

Page 18: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Demostración de SIDWeb Móvil

Usuario: test Password: test

Page 19: Diseño e implementación de un Web API para el Sistema Interactivo de Desarrollo para el Web (SIDWeb) Giancarlo Vera Rivera.

Preguntas?