En busca de automatizar la contratación de servicios de software

Dentro del área de ingeniería de software del ICC, un grupo de investigadores trabaja arduamente para lograr automatizar la contratación de microservicios de software a partir del análisis automático de contratos.  Para ello se abocan a formalizar componentes de software distribuido, especialmente requerimientos no funcionales de los programas, y desarrollar un algoritmo eficiente que tenga en cuenta patrones tanto de consumo como de provisión para garantizar la calidad del servicio – QoS (por su escritura en inglés “Quality of Service”).

Supongamos que una empresa tiene una pieza de software que para funcionar necesita de un servicio externo y que, por ende, debe contratarlo y pagar por él. Esa empresa generalmente recurre a un Broker de servicios o asesor especializado al momento en que tiene que negociar las condiciones del servicio, entre diversos proveedores que están aptos para prestarlo. Ese asesor es un intermediario entre el cliente que tiene una aplicación y necesita de ese servicio para funcionar (por ej. una empresa de tecnología como Apple necesita a un proveedor de pronóstico meteorológico para su aplicación de clima) y quien tiene ese servicio disponible en su lógica de negocio en la web, funcionando en una computadora (por ej. The Weather Channel o Windguru). La función de ese asesor es recomendar al mejor proveedor para ese microservicio teniendo en cuenta tanto los requerimientos del cliente como la calidad del servicio del proveedor, basada en tiempo, costo, beneficio, eficiencia y relación óptima entre estas variables.

No obstante, ¿es posible automatizar la toma de decisiones de Service Broking y que una computadora le recomiende a ese cliente cuál es el mejor proveedor de servicios de software distribuido en base a sus necesidades?

El problema es complejo ya que no alcanza con emparejar los patrones de consumo y de provisión de microservicios, porque uno tiene un software dinámico ejecutándose y quisiera tomar decisiones en tiempo real”, precisa Carlos Lopez Pombo, investigador del ICC e director del grupo THIS (Teoría y Herramientas en Ingeniería de Software).

Al respecto, el investigador señala que en el desafío de automatizar esta contratación están presentes unos cuantos elementos de computación, que tienen más de medio siglo de existencia e involucran la formalización de aspectos de componentes de software (aparecieron desde el momento en que se empezó a estudiar la semántica de los lenguajes de programación). Para ello se trabaja en la descripción de 3 tipos de contratos que formalizan diferentes características de una componente de software: interoperabilidad, requerimientos funcionales y requerimientos no funcionales.

La interoperabilidad implica garantizar la comunicación correcta entre dos o más componentes que intercambian información persiguiendo un mismo objetivo de negocio. En tanto que los requerimientos funcionales se basan en una descripción formal del cómputo que el artefacto de software realizará (qué hace), mientras que los no funcionales atienden las característica de la realización (cómo lo hace), es decir la velocidad con que se hará una tarea, el costo que implicará, la cantidad de unidades de cómputo y de información involucrada en una determinada ejecución, etc.

En este momento el grupo coordinado por Lopez Pombo está investigando fuertemente este último aspecto pues la meta que buscan alcanzar es implementar un algoritmo general que actúe sobre los parámetros de relevancia en el servicio: tiempo de ejecución, tiempo de latencia, cantidad de información procesada, cantidad de información transmitida, costo por unidad de tiempo del servicio, entre otros. Ni más ni menos que unidades medibles sobre las cuales se construyen contratos de calidad de servicio (QoS), de forma de poder consultar un repositorio público de servicios, publicado junto con sus contratos de provisión y emparejarlos con los requerimientos de usuarios, que suelen registrar esa demanda de servicios de software. De este modo, el algoritmo debe poder analizar un requerimiento y una provisión e indicar si efectivamente el contrato de provisión satisface al de requerimiento. E incluso evaluar si las preferencias del consumidor están más orientadas a optimizar una variable u otra, por ejemplo, costos por sobre velocidad del servicio.

Un cliente puede establecer patrones sofisticados de consumo y tan específicos como quiera, puede tener poco presupuesto pero mucho tiempo, o al revés, mucho dinero para invertir y necesidad de resolver la tarea muy rápido o puede buscar un tipo de solución tecnológica que pocos proveedores estén dispuestos a dar”, problematiza Lopez Pombo.

Cabe recalcar que los avances de la investigación ya fueron publicados en artículos científicos (“A full operational semantics for Asynchronous Relational Nets”, – “Communicating machines as a dynamic binding mechanism of services”, – “Automating Quality-of-Service evaluation in Service-Oriented Computing”), algunos de los cuales han formado parte de la tesis doctoral de Ignacio Vissani y otros están siendo plasmados en la tesis de doctorado de Agustín Martínez Suñé. Al mismo tiempo, el grupo realiza colaboraciones permanentes con otros investigadores del ICC como Hernán Melgratti (ver nota anterior del ICC) y con referentes de la ingeniería de software, quienes trabajan en Inglaterra, como por ejemplo José Luiz Fiadeiro (Royal Holloway, University of London) y Emilio Tuosto (Leicester University).

Se necesita mucho know how para poder unir todas estas piezas de conocimiento que están bastante desagregadas en el mundo de la computación. Para ello, recurrimos a investigadores de distintos ámbitos: Tuosto nos ha ayudado con el tema de sistemas distribuidos y los lenguajes para describir la composición de servicios, mientras que Fiadeiro con los lenguajes formales para describir el comportamiento funcional del software”, complementa el investigador del ICC.

La bolsa de valores como gran metáfora para entender la automatización

Con el fin de comprender la problemática de la automatización de servicios, el investigador sugiere observar el comportamiento de la bolsa de valores de Nueva York. Desde 2007, los algoritmos de Trading estuvieron en ascenso y se invirtió mucho esfuerzo en programar algoritmos de inteligencia artificial que observaran el mercado, analizaran patrones y tomaran decisiones eficientes: qué acciones comprar y cuáles vender.

El 2014 fue el primer año en donde colectivamente, las computadoras hicieron más plata que las personas y a un costo comparativamente mucho más bajo. Eso no quiere decir que tomaron las mejores decisiones, porque las mejores decisiones fueron tomadas por personas. El problema es que en términos de volumen, esas decisiones importantes que requirieron la participación de humanos altamente capacitados fue realmente muy pequeño respecto del enorme volumen de decisiones muy razonablemente tomadas por las computadoras”, observa Lopez Pombo.

Carlos López Pombo

De este fenómeno se extraen dos conclusiones relevantes. Por un lado, las computadoras no pueden reemplazar a los seres humanos en la toma de decisiones puntuales donde lo que se requiere es una altísima capacidad de la gente que toma la decisión (un ejemplo de eso fue el colapso de la bolsa en el 2008 asociado a las hipotecas en Estados Unidos donde diversos especialistas llegaron a afirmar que los sistemas informáticos no estaban preparados para una baja en el precio de las propiedades y a partir de entender que las computadoras tomaban malas decisiones se aprovechó esta burbuja especulativa). Por otro lado, y esto no es una novedad ya que hace años lo advertían medios como Bloomberg, los últimos informes de JP Morgan explican que la toma de decisiones clásicas (llamadas regularmente stock picking), por parte de humanos en el intercambio de acciones (stock options), es de alrededor del 10%, cuando los mercados están en un modo altamente volátil por la intervención de algoritmos tomando las llamadas decisiones de “alta frecuencia”, como indica uno de los últimos informes del periódico británico Finantial Times. Esto significa que los seres humanos pueden tomar decisiones muy especializadas pero muy lentas. En un contexto de mercados volátiles, no resultan eficientes. Pero las computadoras sí lo son y los últimos informes señalan que, aun siendo subóptima, una computadora cuesta 100 veces menos que un asesor bursátil, siendo capaz de manejar el 90% de las operaciones de la bolsa.

Sin embargo, ¿cómo repercute este fenómeno en la contratación de microservicios o Service Broking?  “Aunque se reemplace esta tarea con una computadora, este asesor no va a perder su razón de ser porque cuando se necesite tomar una decisión altamente especializada y calificada, que en definitiva no puede tener errores, se buscará a esa persona que tome la decisión. Es como ese 10% de toma de decisiones en la bolsa de valores”, concluye el investigador.

2019-05-21T14:26:26-03:00 21/mayo/2019|Noticias|