{"id":1658,"date":"2019-05-21T13:48:03","date_gmt":"2019-05-21T16:48:03","guid":{"rendered":"https:\/\/icc.fcen.uba.ar\/?p=1658"},"modified":"2022-03-29T10:38:41","modified_gmt":"2022-03-29T13:38:41","slug":"en-busca-de-automatizar-la-contratacion-de-servicios-de-software","status":"publish","type":"post","link":"https:\/\/icc.fcen.uba.ar\/en\/en-busca-de-automatizar-la-contratacion-de-servicios-de-software\/","title":{"rendered":"En busca de automatizar la contrataci\u00f3n de servicios de software"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;--awb-margin-bottom:0px;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-text fusion-text-1\"><p><em><strong>Dentro del \u00e1rea de ingenier\u00eda de software del ICC, un grupo de investigadores trabaja arduamente para lograr automatizar la contrataci\u00f3n de microservicios de software a partir del an\u00e1lisis autom\u00e1tico de contratos. \u00a0Para 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\u00f3n para garantizar la calidad del servicio &#8211; QoS (por su escritura en ingl\u00e9s \u201cQuality of Service\u201d).<\/strong><\/em><\/p>\n<p>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 \u00e9l. Esa empresa generalmente recurre a un <em>Broker<\/em> de servicios o asesor especializado al momento en que tiene que negociar las condiciones del servicio, entre diversos proveedores que est\u00e1n aptos para prestarlo. Ese asesor es un intermediario entre el cliente que tiene una aplicaci\u00f3n y necesita de ese servicio para funcionar (por ej. una empresa de tecnolog\u00eda como Apple necesita a un proveedor de pron\u00f3stico meteorol\u00f3gico para su aplicaci\u00f3n de clima) y quien tiene ese servicio disponible en su l\u00f3gica de negocio en la web, funcionando en una computadora (por ej. The Weather Channel o Windguru). La funci\u00f3n 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\u00f3n \u00f3ptima entre estas variables.<\/p>\n<p>No obstante, \u00bfes posible automatizar la toma de decisiones de <em>Service Broking<\/em> y que una computadora le recomiende a ese cliente cu\u00e1l es el mejor proveedor de servicios de software distribuido en base a sus necesidades?<\/p>\n<p>\u201c<em>El problema es complejo ya que no alcanza con emparejar los patrones de consumo y de provisi\u00f3n de microservicios, porque uno tiene un software din\u00e1mico ejecut\u00e1ndose y quisiera tomar decisiones en tiempo real<\/em>\u201d, precisa <strong>Carlos Lopez Pombo<\/strong>, investigador del ICC e director del grupo THIS (Teor\u00eda y Herramientas en Ingenier\u00eda de Software).<\/p>\n<p>Al respecto, el investigador se\u00f1ala que en el desaf\u00edo de automatizar esta contrataci\u00f3n est\u00e1n presentes unos cuantos elementos de computaci\u00f3n, que tienen m\u00e1s de medio siglo de existencia e involucran la formalizaci\u00f3n de aspectos de componentes de software (aparecieron desde el momento en que se empez\u00f3 a estudiar la sem\u00e1ntica de los lenguajes de programaci\u00f3n). Para ello se trabaja en la descripci\u00f3n de 3 tipos de contratos que formalizan diferentes caracter\u00edsticas de una componente de software: interoperabilidad, requerimientos funcionales y requerimientos no funcionales.<\/p>\n<p>La interoperabilidad implica garantizar la comunicaci\u00f3n correcta entre dos o m\u00e1s componentes que intercambian informaci\u00f3n persiguiendo un mismo objetivo de negocio. En tanto que los requerimientos funcionales se basan en una descripci\u00f3n formal del c\u00f3mputo que el artefacto de software realizar\u00e1 (qu\u00e9 hace), mientras que los no funcionales atienden las caracter\u00edstica de la realizaci\u00f3n (c\u00f3mo lo hace), es decir la velocidad con que se har\u00e1 una tarea, el costo que implicar\u00e1, la cantidad de unidades de c\u00f3mputo y de informaci\u00f3n involucrada en una determinada ejecuci\u00f3n, etc.<\/p>\n<p>En este momento el grupo coordinado por Lopez Pombo est\u00e1 investigando fuertemente este \u00faltimo aspecto pues la meta que buscan alcanzar es implementar un algoritmo general que act\u00fae sobre los par\u00e1metros de relevancia en el servicio: tiempo de ejecuci\u00f3n, tiempo de latencia, cantidad de informaci\u00f3n procesada, cantidad de informaci\u00f3n transmitida, costo por unidad de tiempo del servicio, entre otros. Ni m\u00e1s ni menos que unidades medibles sobre las cuales se construyen contratos de calidad de servicio (QoS), de forma de poder consultar un repositorio p\u00fablico de servicios, publicado junto con sus contratos de provisi\u00f3n 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\u00f3n e indicar si efectivamente el contrato de provisi\u00f3n satisface al de requerimiento. E incluso evaluar si las preferencias del consumidor est\u00e1n m\u00e1s orientadas a optimizar una variable u otra, por ejemplo, costos por sobre velocidad del servicio.<\/p>\n<p>\u201c<em>Un cliente puede establecer patrones sofisticados de consumo y tan espec\u00edficos como quiera, puede tener poco presupuesto pero mucho tiempo, o al rev\u00e9s, mucho dinero para invertir y necesidad de resolver la tarea muy r\u00e1pido o puede buscar un tipo de soluci\u00f3n tecnol\u00f3gica que pocos proveedores est\u00e9n dispuestos a dar<\/em>\u201d, problematiza Lopez Pombo.<\/p>\n<p>Cabe recalcar que los avances de la investigaci\u00f3n ya fueron publicados en art\u00edculos cient\u00edficos (\u201c<a href=\"https:\/\/link.springer.com\/chapter\/10.1007\/978-3-319-28114-8_8\">A full operational semantics for Asynchronous Relational Nets<\/a>\u201d, &#8211; \u201c<a href=\"https:\/\/doaj.org\/article\/decade551d024da8bb797b6111bbbc1d\">Communicating machines as a dynamic binding mechanism of services<\/a>\u201d, &#8211; \u201c<a href=\"http:\/\/www.discotec.org\/2019\/programme.html\">Automating Quality-of-Service evaluation in Service-Oriented Computing<\/a>\u201d), algunos de los cuales han formado parte de la tesis doctoral de <strong>Ignacio Vissani<\/strong> y otros est\u00e1n siendo plasmados en la tesis de doctorado de <strong>Agust\u00edn Mart\u00ednez Su\u00f1\u00e9<\/strong>. Al mismo tiempo, el grupo realiza colaboraciones permanentes con otros investigadores del ICC como <strong>Hern\u00e1n Melgratti<\/strong> (<a href=\"https:\/\/icc.fcen.uba.ar\/como-se-comporta-un-software-2\/\">ver nota anterior del ICC<\/a>) y con referentes de la ingenier\u00eda de software, quienes trabajan en Inglaterra, como por ejemplo <strong>Jos\u00e9 Luiz Fiadeiro<\/strong> (Royal Holloway, University of London) y <strong>Emilio Tuosto<\/strong> (Leicester University).<\/p>\n<p>\u201c<em>Se necesita mucho know how para poder unir todas estas piezas de conocimiento que est\u00e1n bastante desagregadas en el mundo de la computaci\u00f3n. Para ello, recurrimos a investigadores de distintos \u00e1mbitos: Tuosto nos ha ayudado con el tema de sistemas distribuidos y los lenguajes para describir la composici\u00f3n de servicios, mientras que Fiadeiro con los lenguajes formales para describir el comportamiento funcional del software<\/em>\u201d, complementa el investigador del ICC.<\/p>\n<p><strong>La bolsa de valores como gran met\u00e1fora para entender la automatizaci\u00f3n<\/strong><\/p>\n<figure class=\"wp-block-image\"><img class=\"lazyload\" decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" data-orig-src=\"https:\/\/lh6.googleusercontent.com\/yDmhCczGzlMeWSichljd_0gcNRbSrCKKSArvFR0Pk1jjNGO8GkfqK6bHuSfEO93-QNw-OerFrJkdsiXKC2pr0ukRY-Uwtr_ZyPiEdVG8LhtKXybsmDUguiUxu7Ij0-cd2gn8Staj\" alt=\"\" \/><\/figure>\n<p>Con el fin de comprender la problem\u00e1tica de la automatizaci\u00f3n de servicios, el investigador sugiere observar el comportamiento de la bolsa de valores de Nueva York. Desde 2007, los algoritmos de <em>Trading<\/em> estuvieron en ascenso y se invirti\u00f3 mucho esfuerzo en programar algoritmos de inteligencia artificial que observaran el mercado, analizaran patrones y tomaran decisiones eficientes: qu\u00e9 acciones comprar y cu\u00e1les vender.<\/p>\n<p>\u201c<em>El 2014 fue el primer a\u00f1o en donde colectivamente, las computadoras hicieron m\u00e1s plata que las personas y a un costo comparativamente mucho m\u00e1s bajo. Eso no quiere decir que tomaron las mejores decisiones, porque las mejores decisiones fueron tomadas por personas. El problema es que en t\u00e9rminos de volumen, esas decisiones importantes que requirieron la participaci\u00f3n de humanos altamente capacitados fue realmente muy peque\u00f1o respecto del enorme volumen de decisiones muy razonablemente tomadas por las computadoras<\/em>\u201d, observa Lopez Pombo.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"alignleft is-resized\"><img class=\"lazyload\" decoding=\"async\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27247%27%20height%3D%27226%27%20viewBox%3D%270%200%20247%20226%27%3E%3Crect%20width%3D%27247%27%20height%3D%27226%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"https:\/\/lh4.googleusercontent.com\/V9EJiLpucmKFeaOqVuDFVt79GmsrdXYFXPx9s4y8mFA5cQKSbTKPY4Vs5p3eo9U1p-06H3leUD2lKBNGio0OeQgu_FHCZDbS9711VfXFEftop1IZ4t5EJerUNW8HHfSj3b-LRcP6\" alt=\"\" width=\"247\" height=\"226\" \/><figcaption>Carlos L\u00f3pez Pombo<\/figcaption><\/figure>\n<\/div>\n<p>De este fen\u00f3meno 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\u00edsima capacidad de la gente que toma la decisi\u00f3n (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\u00e1ticos 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\u00f3 esta burbuja especulativa). Por otro lado, y esto no es una novedad ya que hace a\u00f1os lo advert\u00edan medios como<a href=\"https:\/\/www.bloomberg.com\/news\/articles\/2017-06-15\/it-s-a-quant-s-stock-market-as-computer-programs-keep-on-buying\"> Bloomberg<\/a>, los \u00faltimos informes de<a href=\"https:\/\/www.cnbc.com\/2017\/06\/13\/death-of-the-human-investor-just-10-percent-of-trading-is-regular-stock-picking-jpmorgan-estimates.html\"> JP Morgan<\/a> explican que la toma de decisiones cl\u00e1sicas (llamadas regularmente <em>stock picking<\/em>), por parte de humanos en el intercambio de acciones (<em>stock options<\/em>), es de alrededor del 10%, cuando los mercados est\u00e1n en un modo altamente vol\u00e1til por la intervenci\u00f3n de algoritmos tomando las llamadas decisiones de \u201calta frecuencia\u201d, como indica uno de los \u00faltimos informes del peri\u00f3dico brit\u00e1nico<a href=\"https:\/\/www.ft.com\/content\/fdc1c064-1142-11e9-a581-4ff78404524e\"> Finantial Times<\/a>. Esto significa que los seres humanos pueden tomar decisiones muy especializadas pero muy lentas. En un contexto de mercados vol\u00e1tiles, no resultan eficientes. Pero las computadoras s\u00ed lo son y los \u00faltimos informes se\u00f1alan que, aun siendo sub\u00f3ptima, una computadora cuesta 100 veces menos que un asesor burs\u00e1til, siendo capaz de manejar el 90% de las operaciones de la bolsa.<\/p>\n<p>Sin embargo, \u00bfc\u00f3mo repercute este fen\u00f3meno en la contrataci\u00f3n de microservicios o Service Broking? \u00a0\u201c<em>Aunque se reemplace esta tarea con una computadora, este asesor no va a perder su raz\u00f3n de ser porque cuando se necesite tomar una decisi\u00f3n altamente especializada y calificada, que en definitiva no puede tener errores, se buscar\u00e1 a esa persona que tome la decisi\u00f3n. Es como ese 10% de toma de decisiones en la bolsa de valores<\/em>\u201d, concluye el investigador.<\/p>\n<\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":9,"featured_media":1659,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71,12],"tags":[40,25,34],"class_list":["post-1658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-actualidad","category-noticias","tag-automatas","tag-computo","tag-ingenieria-software"],"_links":{"self":[{"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/posts\/1658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/comments?post=1658"}],"version-history":[{"count":3,"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/posts\/1658\/revisions"}],"predecessor-version":[{"id":2153,"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/posts\/1658\/revisions\/2153"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/media\/1659"}],"wp:attachment":[{"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/media?parent=1658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/categories?post=1658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/icc.fcen.uba.ar\/en\/wp-json\/wp\/v2\/tags?post=1658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}