Rejas, Máximo. Refactorización de Servicios Web dirigido por Métricas de Complejidad. Junio 2020

Título: «Refactorización de Servicios Web dirigido por Métricas de Complejidad

Tesista: Osvaldo Máximo Rejas

Directores: Dr. Andrés Flores – Lic. Diego Anabalón

Carrera: Licenciatura en Ciencias de la Computación

Día: 8 de junio de 2020

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.

Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *