Diseo e implementacin de un Web API para

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

Problema n Limitaciones en el acceso al sistema por medio de dispositivos móviles, dados los siguientes factores: q q n Ancho de banda. Interacciones con el dispositivo. Ausencia de interfaz de comunicación para propósitos de integración o intercambio de información.

Solución propuesta n 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.

Componentes de la solución

Flujo de requisiciones

JSON vs. XML n Ejemplo XML: <? xml version="1. 0" encoding="ISO-8859 -1"? > <root> <vigentes> <anuncio_token>83 b 7 e 4297 e 31 f 767 db 921700 b 756 d 83 bcbf 2 e 469</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</anuncio_disponible_desde> <anuncio_disponible_hasta>2012 -02 -29 00: 00</anuncio_disponible_hasta> <anuncio_descripcion><p>rnt Descripcion anuncio #3: </p></anuncio_descripcion> </anuncio> </vigentes> <nodisponible></nodisponible> <recuperado></recuperado> </root> Caracteres usados: 667

JSON vs. XML n Ejemplo JSON: {"vigente": [{"anuncio_token": "83 b 7 e 4297 e 31 f 767 db 921700 b 756 d 83 bcbf 2 e 469", "anuncio_nombre": "Anuncio #3 en curso de test", "seccion_nombre": null, "anuncio_visible": true, "anuncio_disponible_desde": "2012 -02 -02 00: 00", "anuncio_disponible_hasta": "2012 -02 -29 00: 00", "anuncio_descripcion": "<p>rnt Descripcion anuncio #3: </p>"}, "no_disponible": [], "recuperado": []} Caracteres usados: 411

JSON vs. XML n n 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.

Consideraciones seguridad n n 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.

Secuencia Genérica de Operaciones

Pruebas – Consola

Pruebas – SIDWeb Móvil

Pruebas con usuarios n Perfiles: Se identificaron los usuarios con números del 1 al 5, los perfiles de los usuarios fueron: q q q 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.

Pruebas con usuarios

Demostración de SIDWeb Móvil

Conclusiones y Recomendaciones n Conclusiones: q q 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.

Conclusiones y Recomendaciones n Recomendaciones: q q q 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.

Demostración de SIDWeb Móvil n n Usuario: test Password: test

Preguntas?
- Slides: 19