Defensa de Tesis de Licenciatura: Máximo Rejas
Se invita a la Comunidad de la FAI a presenciar la defensa de Tesis de Licenciatura en Ciencias de la Computación titulada "Refactorización de Servicios Web dirigido por Métricas de Complejidad"
Día y hora: Lunes 8 de junio de 2020 a las 15:00 hs
Tesista: Máximo Rejas
Directores: Dr. Andrés Flores - Lic. Diego Anabalón
Resumen
El paradigma de Computación Orientada a Servicios promueve el desarrollo de aplicaciones masivamente distribuidas que se construyen componiendo funcionalidad existente, denominada servicio, que se publica a través de una red y se accede mediante protocolos específicos. La industria adoptó el paradigma mediante la tecnología de Servicios Web, que utiliza protocolos de la Web para la interconexión y pasaje de mensajes. Los proveedores de servicios generalmente realizan el desarrollo de funcionalidad mediante el enfoque code-first, usando herramientas automáticas para generar las interfaces de los servicios – por ejemplo, documentos WSDL para servicios SOAP, o documentos OpenAPI/Swagger para servicios RESTful. Esto implica que los proveedores no tienen un control completo de las especificaciones de las interfaces, las cuales pueden sufrir de ciertos problemas de calidad. Teniendo en cuenta que las interfaces son los únicos artefactos accesibles para brindar información a los clientes acerca de las capacidades funcionales de los servicios, cuando resulta difícil la comprensión de los documentos WSDL o especificaciones OpenAPI/Swagger, los clientes podrían optar por descartar tales servicios.
En esta tesis se presenta un enfoque para reducir la complejidad funcional de los Servicios Web, que podría tener un impacto sobre la comprensión de sus interfaces. Esto permitiría a un proveedor tener un control efectivo sobre la complejidad que afecta el descubrimiento y la interoperabilidad de los servicios. Se ha orientado la propuesta hacia la aplicación de métricas de complejidad, a nivel del back-end (generalmente clases del paradigma Orientado a Objetos) que implementa la funcionalidad de los servicios, y también a nivel de las interfaces – tal como en documentos WSDL. Dado que las interfaces reflejan la funcionalidad en el back-end, al realizar modificaciones o refactorizaciones en la implementación de los servicios, se tendría un impacto de cambio sobre las interfaces. Considerando un estudio de correlación estadístico realizado sobre un conjunto de métricas Orientadas a Objeto, con respecto a un conjunto de métricas para documentos WSDL, se seleccionaron ciertas métricas sobre las cuales se pueden establecer formas de aplicar refactorizaciones hasta alcanzar determinados valores esperados para las métricas.
En función de esto, se desarrolló una herramienta que realiza las refactorizaciones, aplicando patrones de refactorización del catálogo de Martin Fowler, que afectan las operaciones que ofrece un servicio en su interfaz, y también las estructuras de los datos que permiten el intercambio de mensajes de entrada/salida. La herramienta de refactorización también permite a un proveedor de servicios, efectuar un estudio sobre las posibles refactorizaciones a partir de un WSDL original, y analizar las complejidades de los WSDLs que resultan de este proceso. Con esto, se podría optar por ofrecer toda la funcionalidad en un único servicio, o quizá efectuar particiones para ofrecer varios servicios con menor complejidad, facilitando a los clientes consumidores la comprensión sobre los mismos.
La defensa se trasmitirá de forma pública por el canal https://www.twitch.tv/faitube a partir de las 15:00 hs.
Publicado el 04/06/20 a las 4:45 pm