Software Orientado a Servicios: Hacia el mundo real Ignacio Vissani* FACAS 2016 * this->dc.uba.ar Menú 1) SOA today 2) Qué hicimos (pasado) 3) Qué hacemos (presente) 4) SOA tomorrow (futuro) Service Oriented Architecture runtime Service Broker Discover SOA Service Client/Requestor Bind Repository Publish Service Provider SOA en la actualidad ver SOA • Enterprise Service Bus by Oracle, IBM, Microsoft (sort of) y otros ‣ Integración de arquitecturas, sistemas, protocolos de comunicación heterogéneos ‣ Resolución en runtime de la ubicación de un servicio • Pasaje de mensajes (sync/async) • Utilización de estándares (WSDL, SOAP) • Protocolos de comunicación conocidos: TCP/IP, HTTP Bind P SOA en la actualidad • Inexistencia de soluciones industriales ‣ Limita la adopción del paradigma • Soluciones académicas basadas en contratos ‣ Visión limitada a un aspecto del servicio ‣ No realizables en runtime ‣ Consideración muy pobre de los aspectos NO funcionales ‣ Herramientas no disponibles, obsoletas, etc. Discover Nuestra visión Discovery automático en runtime 1. Interoperabilidad (protocolo de comunicación) 2. Contratos funcionales 3. Atributos NO funcionales 1. Disponibilidad 2. Costo computacional 3. Costo monetario 4. etc. Pasado 1) Interoperabilidad • • • Autómata Aceptación por inifinite state passing i.e. Büchi, Muller, etc. • Global graph (coreografía) • Describe la comunicación esperada Pasado 1) Interoperabilidad ~ G’ Síntesis Presente 2) Contratos funcionales <x,y,z,…> {∂} Futuro (cercano) X Falla: • Rollback (hasta dónde?) • Síntesis de contratos de interoperabilidad parcial Terminación: • Interoperaciones con estado final • Binding parcial Futuro 3) Atr. NO funcionales (mediano plazo) Adición de contratos no funcionales en función de indicadores como ser el costo temporal, el precio, la disponibilidad, la latencia, la probabilidad de fallo, etc. •Análisis de los poliedros determinados por un conjunto de restricciones sobre los indicadores •Estimación de indicadores de un servicio basados en su semántica y los de aquellos servicios registrados en un repositorio •Aplicación de técnicas de machine learning para el refinado de los indicadores de los servicios registrados en un repositorio ¿Futuro? (posibles colaboraciones) LAFHIS Depend. Systems No puedo encontrar un conjunto de servicios que satisfaga mi protocolo, pero… Satisfacción probabilística de atributos NO funcionales. ¿Será posible sintetizar un orquestador que con lo que hay en el repo me provea lo que yo necesito? Por ejemplo: Tengo dos servicios S1 y S2 que hacen lo mismo S1 | $1 | avail. del 50% S2 | $10 | avail. del 90%