Composición Dinámica ECSDI LSI-FIB-UPC c b e a Curso 2015/2016 ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 1 / 81 Índice 1 Introducción 2 Descubrimiento de Servicios Descubrimiento Sintáctico Descripción semántica de servicios Descubrimiento semántico de servicios 3 Composición Dinámica 4 Planificación Planificacion Planificación Planificación Planificación Lineal no Lineal Jerárquica en SOA ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 2 / 81 Introducción 1 Introducción 2 Descubrimiento de Servicios 3 Composición Dinámica 4 Planificación ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 3 / 81 Introducción Composición dinámica Orquestación y coreografía asumen un conjunto prefijado de servicios El desarrollar aplicaciones en entornos abiertos hace que esto no tenga que ser así En el momento de la ejecución podemos decidir qué instancias de servicio serán utilizadas Se necesitan elementos intermediarios que gestionen la elección de servicios Se necesita hacer una descripción de entradas, salidas y efectos de los servicios ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 4 / 81 Introducción Composición dinámica - Motivaciones Descubrimiento automático de servicios La decisión del servicio específico a usar se realiza en tiempo de ejecución (búsqueda) Invocación automática de servicios La invocación en tiempo de ejecución se obtiene a partir de la descripción declarativa del servicio ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 5 / 81 Introducción Composición dinámica - Motivaciones Composición automática e interoperación El flujo de ejecución de una tarea se obtiene por la selección de los servicios adecuados y la generación de su composición La conexión entre los servicios (interoperabilidad) se obtiene a partir de sus descripciones (entradas/salidas) Monitorización automática La detección de excepciones/fallos se determina a partir de sus descripciones (objetivos/precondiciones/estado) El tratamiento de las excepciones/fallos (recuperación) se realiza automáticamente ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 6 / 81 Descubrimiento de Servicios 1 Introducción 2 Descubrimiento de Servicios 3 Composición Dinámica 4 Planificación ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 7 / 81 Descubrimiento de Servicios Descubrimiento de servicios Previo o durante el proceso de ejecución de un flujo de negocio se han de elegir los servicios a usar Aparece la figura del matchmaker Recibe las peticiones sobre las características que los servicios deben cumplir Busca servicios que cumplan esas características Elige entre los servicios disponibles Esa elección puede atender a características de calidad de servicio (QoS) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 8 / 81 Descubrimiento de Servicios Servicios de directorio Otro elemento fundamental del descubrimiento es el servicio de directorio Este servicio permite el registro de la descripción de los proveedores de servicios Cada servicio indica sus características de manera que puedan ser encajadas con necesidades de otros servicios De la complejidad de esta descripción depende la flexibilidad de la composición ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 9 / 81 Descubrimiento de Servicios Composición/Descubrimiento A partir de las descripciones de los servicios de directorio tenemos diferentes posibilidades de composición: Flujo de ejecución fijo y descubrimiento sintáctico Sólo entradas y salidas como parámetros Flujo de ejecución fijo y descubrimiento semántico Entradas/salidas descritas a partir de una ontología Flujo de ejecución dinámico y descubrimiento semántico Entradas/salidas/precondiciones/efectos descritos a partir de una ontología ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 10 / 81 Descubrimiento de Servicios Descubrimiento Sintáctico Métodos sintácticos - UDDI UDDI (Universal Description Discovery and Integration) Estándar para la publicación y descubrimiento de servicios Clasificación, catálogo y manejo de servicios web Búsqueda de servicios a partir de criterios Parámetros de invocación, protocolos de transporte y seguridad Tratamiento de errores y cambios en los servicios Tres componentes: Páginas blancas: dirección, contacto e identificadores Páginas amarillas: categorización de los servicios a partir de una taxonomía estándar Páginas verdes: información técnica del servicio ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 11 / 81 Descubrimiento de Servicios Descubrimiento Sintáctico UDDI Registro UDDI Tipo: XXXX Parametros: In: I1, I2, .. Out: O1, O2, ... Proveedor Composición Consumidor Nombre: .... Clasificación: ... Parámetros: In: tipoI1, ... Out: tipoO1, ... Implementación: In: WSDL desc Out: WSDL desc ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 12 / 81 Descubrimiento de Servicios Descubrimiento Sintáctico Métodos sintácticos - Limitaciones La búsqueda sintáctica depende de: Una buena clasificación de los servicios (detallada, uso de estándares) Una descripción detallada y completa de los parámetros Limitaciones La coincidencia de los parámetros ha de ser exacta (literal) La coincidencia de los parámetros no asegura la semántica del servicio (efectos, precondiciones) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 13 / 81 Descubrimiento de Servicios Descripción semántica de servicios Métodos semánticos Tener una descripción más precisa de los servicios lleva a una mayor efectividad en la búsqueda Se ha de considerar que un proceso ejecutado por un conjunto de servicios tiene un estado Cada servicio modifica el estado para conseguir objetivos Cada objetivo del servicio tiene una serie de precondiciones La ejecución de las operaciones de los servicios modifican el estado y proveen objetivos que son precondiciones de otros servicios ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 14 / 81 Descubrimiento de Servicios Descripción semántica de servicios Métodos semánticos Tipos de semántica en los servícios Funcional: Qué hace el servicio (categoría, precondiciones, efectos) De comportamiento: Cómo hay que comunicarse con el servicio (operaciones, mensajes, entradas, salidas) Modelo de información: Cómo tratar los datos/Ontologías a usar/Conversión (lifting, lowering) No funcionales: Políticas, calidad de servicio, precio, ... ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 15 / 81 Descubrimiento de Servicios Descripción semántica de servicios Métodos semánticos - Ejemplo Queremos un servicio que compre acciones en bolsa. Queremos componer: Un servicio que permita consultar cotizaciones (individuales o en grupo) Otro que obtenga predicciones sobre cotizaciones futuras Otro que permita realizar compras y ventas Un servicio de gestión de pagos Un servicio de custodia de valores Los proveedores de servicios deberían describir sus características en función de entradas, salidas, precondiciones y efectos Adicionalmente los servicios podrían describir características sobre la calidad de su servicio (múltiples criterios) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 16 / 81 Descubrimiento de Servicios Descripción semántica de servicios Métodos semánticos - Ejemplo Servicio de consulta de cotizaciones Dado de alta en el servicio, login en el sisPrecondiciones tema, medio de pago activo (subscripción, por petición) Petición registrada (para el pago posterior) Efectos o Aceptación del pago (por petición) Identificador acción o Identificador Sector Entradas o Condiciones sobre la petición Salidas Información sobre acción o acciones Comunicación SOAP, RESTful Ontologías RDF Time, OWL Stock MarModelo de datos ket, ... 24/7, cotización en tiempo real, tiempo Calidad de servicio máximo de respuesta 1 minuto ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 17 / 81 Descubrimiento de Servicios Descripción semántica de servicios Descripción de servicios El poder hacer una búsqueda semántica de servicio depende de la expresividad del lenguaje de descripción Esta expresividad se obtiene mediante el uso de ontologías específicas Se han desarrollado diferentes alternativas para la descripción semántica de servicios: Semantic Annotations for WSDL (SAWSDL) OWL-S (OWL-Services) WSMO (WS Modelling Ontology) + WSML (WS Modelling Language) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 18 / 81 Descubrimiento de Servicios Descripción semántica de servicios SAWSDL Permite complementar la búsqueda por coincidencia literal entre las entradas y salidas de los servicios Las descripciones WSDL incluyen anotaciones que referencian ontologías La ontología indica el significado del parámetro Se puede razonar sobre los significados de los parámetros para: Calcular la coincidencia entre entradas y salidas Obtener una transformación que permita la interoperabilidad ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 19 / 81 Descubrimiento de Servicios Descripción semántica de servicios OWL-Services Ontología de servicios desarrollada sobre OWL Un servicio se describe a partir de tres elementos: Perfil del servicio (Service Profile): Qué requiere de sus usuarios y qué provee Modelo del servicio (Service Model): Cómo funciona el servicio Uso del servicio (Service Grounding): Cómo se usa el servicio Resource Provides Service presents supports described_by ServiceProfile ECSDI (LSI-FIB-UPC cbea) ServiceModel Composición Dinámica ServiceGrounding Curso 2015/2016 20 / 81 Descubrimiento de Servicios Descripción semántica de servicios OWL-S - Service Profile Permite representar la información que el matchmaker necesita para encontrar servicios Se compone de tres elementos: Qué organización provee el servicio (información de contacto) Qué función es computada por el servicio (entradas, salidas, precondiciones y efectos) Características del servicio (clasificación, calidad de servicio) La descripción del perfil debería ser consistente con la descripción del modelo de servicio Ontologías específicas en OWL pueden usarse para describir estos elementos (eg: FOAF para contacto) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 21 / 81 Descubrimiento de Servicios Descripción semántica de servicios OWL-S - Service Profile - Ejemplo Descripción: ZZZBook, venta electrónica de libros, http://... Funcionamiento Entradas: ISBN Libro, Cantidad, Información Pago Salidas: Recibo de compra, Información de entrega Precondiciones: Libro existente, Existencias, Información de pago valida Efectos: Cargo en el servicio de pago, Envío de libros Características: Rating 10/10 ranking librerías electrónicas ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 22 / 81 Descubrimiento de Servicios Descripción semántica de servicios OWL-S - Service Model En OWL-S el funcionamiento del servicio se describe como un proceso Se dispone de una ontología de procesos para describir su funcionamiento ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 23 / 81 Descubrimiento de Servicios Descripción semántica de servicios OWL-S - Service Model - Proceso Entradas y salidas: Provistas por/enviadas a servicios externos u otros procesos Precondiciones y efectos Las precondiciones son condiciones que se deben cumplir en el estado para que el proceso se pueda ejecutar Los efectos son las condiciones que cambian en el estado Condiciones sobre los efectos y salidas Efectos y salidas dependen de la invocación específica (pueden suceder según las circunstancias) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 24 / 81 Descubrimiento de Servicios Descripción semántica de servicios OWL-S - Service Grounding La descripción del servicio ha de conectarse con la implementación del servicio Se deben transformar los elementos descritos en el proceso a invocaciones En la práctica se debe hacer una correspondencia entre las entradas y salidas de los procesos atómicos (abstracción del proceso) y la implementación La correspondencia involucrará protocolos, formatos de mensajes, serialización, transporte y direcciones En este proceso los procesos atómicos se vinculan con la descripción en WSDL de los servicios ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 25 / 81 Descubrimiento de Servicios Descubrimiento semántico de servicios Descubrimiento Semántico El descubrimiento semántico de servicios pretende ir más allá de la coincidencia sintáctica La descripción de entradas, salidas, condiciones y efectos como conceptos de una ontología permite el uso de deducción automática Se puede utilizar las relaciones clase/subclase y de equivalencia (SeeAlso) para hacer coincidir los términos en la descripción La labor de deducción la debe realizar el matchmaker Para cada entrada, salida, condición y efecto en la consulta debe haber al menos una coincidencia en el servicio ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 26 / 81 Descubrimiento de Servicios Descubrimiento semántico de servicios Coincidencia Semántica El proceso de coincidencia semántica debe poder cuantificar la distancia de la descripción del servicio a la consulta Exacta, si los conceptos son iguales o equivalentes Especialización, si el concepto definido en la descripción es más específico que la consulta Generalización, si el concepto definido en la descripción es más general que la consulta Fallo, si no hay coincidencia Se pueden indicar: Restricciones preferibles pero no necesarias Preferencia de conceptos Uso de otras ontologías (relacionadas, pero no idénticas) Características relacionadas con la calidad de servicio ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 27 / 81 Composición Dinámica 1 Introducción 2 Descubrimiento de Servicios 3 Composición Dinámica 4 Planificación ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 28 / 81 Composición Dinámica Composición Dinámica Hasta ahora hemos supuesto que el flujo de ejecución de los servicios ya existía Esto limita la composición a solamente elegir los servicios específicos a usar en cada paso Desde el momento en que incluimos en la descripción del servicio sus precondiciones y efectos podemos generar ese flujo automáticamente Esto permite usar más flexiblemente los servicios descubiertos Se necesita de un sistema capaz de planificar la composición ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 29 / 81 Composición Dinámica Planificación automática La planificación automática es una técnica de resolución de problemas de Inteligencia Artificial Se puede ver como una forma de programación automática Un problema se describe a partir de: La representación del objetivo a alcanzar La representación de las acciones que se pueden realizar La representación de los elementos estado Un algoritmo de planificación determinará la secuencia de operadores que obtiene el objetivo a partir de las acciones En nuestro caso las acciones son los servicios/agentes ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 30 / 81 Composición Dinámica Planificación automática La planificación se puede ver como una búsqueda en un espacio de estados Para solucionar el plan debemos encontrar un camino entre en el estado inicial y los objetivos ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 31 / 81 Planificación 1 Introducción 2 Descubrimiento de Servicios 3 Composición Dinámica 4 Planificación ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 32 / 81 Planificación Planificación clásica Un problema de planificación se define a partir de un conjunto fijo de acciones aplicables a un problema Ac = {α1 , ..., αn } Un estado inicial ∆ que define las condiciones iniciales del problema Un objetivo Ω define las características (totales o parciales) que debe cumplir el estado solución del problema ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 33 / 81 Planificación Planificación clásica < Pα , Dα , Aα > es un descriptor para una acción α ∈ Ac Pα es un conjunto de formulas en lógica de primer orden que caracterizan la precondición de la acción α Dα es un conjunto de fórmulas en lógica de primer orden que caracterizan aquellos hechos que se vuelven falsos por la ejecución de α (delete list) Aα es un conjunto de fórmulas en lógica de primer orden que caracterizan aquellos hechos que se vuelven ciertos por la ejecución de α (add list) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 34 / 81 Planificación Planificación clásica Dada una tripleta < ∆, Ac, Ω >, un plan π = {α1 , . . . , αn } determina una secuencia de estados ∆0 , . . . , ∆n Donde ∆0 = ∆ y ∆i = (∆i−1 − Dαi ) ∪ Aαi para 1 ≤ i ≤ n Un plan π es aceptable ssi ∆i−1 ` Pαi para 1 ≤ i ≤ n Un plan π es correcto ssi es aceptable y ∆n ` Ω ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 35 / 81 Planificación El lenguaje de problemas de planificación Cada uno de los elementos de un problema de planificación se representa a partir de fórmulas lógicas Dependiendo de la expresividad de la lógica empleada se pueden representar diferentes complejidades de problemas Existe un lenguaje estandarizado para los sistemas de planificación automática (PDDL) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 36 / 81 Planificación El lenguaje de problemas de planificación Estados Representación de estados: los planificadores describen el dominio a partir de fórmulas lógicas, representando un estado como una conjunción de literales positivos: Proposiciones: Pobre ∧ Desconocido Literales de 1er orden: En(Avion1, Melbourne) ∧ En(Avion2, Sydney ) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 37 / 81 Planificación El lenguaje de problemas de planificación Objetivos Representación de objetivos: un objetivo es un estado parcialmente especificado Un estado s satisface un objetivo O si S contiene todos los átomos de O (y posiblemente algunos más) eg: el estado Rico ∧ Famoso ∧ Miserable satisface el objetivo Rico ∧ Famoso ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 38 / 81 Planificación El lenguaje de problemas de planificación Acciones Representación de acciones: Las acciones se especifican en términos de las precondiciones que se han de cumplir antes de que se puedan ejecutar y de los efectos que producen una vez se han ejecutado volar(av, orig, dest) PRECOND: En(av, orig) ∧ Avion(av) ∧ Aeropuerto(orig) ∧ Aeropuerto(dest) EFECTO: ¬ En(av, orig) ∧ En(av, dest) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 39 / 81 Planificación El lenguaje de problemas de planificación Acciones La precondición es una conjunción de literales positivos que especifica qué debe de ser verdadero en un estado antes de que la acción se ejecute El efecto es una conjunción de literales describiendo como cambia el estado cuando la acción se ejecuta ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 40 / 81 Planificación El lenguaje de problemas de planificación Una acción es aplicable en cualquier estado que satisfaga la precondición Si es necesario, se han de unificar sus variables en la precondición Ejemplo El estado En(A1, JFK ) ∧ Avion(A1) ∧ En(A2, SFO) ∧ Avion(A2) ∧ Aeropuerto(JFK ) ∧ Aeropuerto(SFO) satisface la precondición de la acción volar (av , orig, dest) av = A1 orig = JFK dest = SFO ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 41 / 81 Planificación El lenguaje de problemas de planificación El resultado de ejecutar la acción en un estado S es un estado S 0 al que se añaden los literales positivos del efecto y se eliminan los literales negativos Ejemplo El efecto de la acción volar sobre el estado anterior: En(A1, SFO) ∧ Avion(A1) ∧ En(A2, SFO) ∧ Avion(A2) ∧ Aeropuerto(JFK ) ∧ Aeropuerto(SFO) Se eliminó: En(A1, JFK ) Se añadió: En(A1, SFO) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 42 / 81 Planificación Ejemplo: Transporte aéreo de carga Dos cargas (C1 y C2) estan en 2 aeropuertos (SFO, JFK) Tenemos dos aviones (A1 y A2) para transportar las cargas, uno en cada aeropuerto Describimos el estado inicial así: Inicio(En(C 1, SFO) ∧ En(C 2, JFK ) ∧ En(A1, SFO) ∧ En(A2, JFK ) ∧ Carga(C 1) ∧ Carga(C 2) ∧ Avion(A1) ∧ Avion(A2) ∧ Aeropuerto(SFO) ∧ Aeropuerto(JFK )) El objetivo es que C1 acabe en JFK y C2 en SFO Describimos el objetivo así: Objetivo(En(C 1, JFK ) ∧ En(C 2, SFO)) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 43 / 81 Planificación Ejemplo: Transporte aéreo de carga carga(c, av, aerop) PRECOND: En(c, aerop) ∧ En(av, aerop) ∧ Carga(c) ∧ Avion(av) ∧ Aeropuerto(aerop) EFECTO: ¬En(c, aerop) ∧ Dentro(c, av) descarga(c, av, aerop) PRECOND: Dentro(c, av) ∧ En(av, aerop) ∧ Carga(c) ∧ Avion(av) ∧ Aeropuerto(aerop) EFECTO: En(c, aerop) ∧ ¬Dentro(c, av) volar(av, orig, dest) PRECOND: En(av, orig) ∧ Avion(av) ∧ Aeropuerto(orig) ∧ Aeropuerto(dest) EFECTO: ¬En(av, orig) ∧ En(av, dest) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 44 / 81 Planificación Ejemplo: Transporte aéreo de carga Solución: el plan lo compone una secuencia de acciones En este caso hay varias soluciones Solucion 1: usamos los dos aviones para hacer el traslado [carga(C 1, A1, SFO), vuela(A1, SFO, JFK ), descarga(C 1, A1, JFK ), carga(C 2, A2, JFK ), vuela(A2, JFK , SFO), descarga(C 2, A2, SFO)] Solucion 2: usamos solo un avión [carga(C 1, A1, SFO), vuela(A1, SFO, JFK ), descarga(C 1, A1, JFK ), carga(C 2, A1, JFK ), vuela(A1, JFK , SFO), descarga(C 2, A1, SFO)] ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 45 / 81 Planificación Aproximaciones a la planificación Existen tres estrategias para la resolución de un problema de planificación (Calcular la secuencia de acciones) Planificación en espacio de estados (State-Space Planning) Planificación en el espacio de planes (Plan-Space Planning) Planificación jerárquica (Hierarchical Task Network Planning) Cada una de ellas se puede plantear mediante diferentes algoritmos y heurísticos ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 46 / 81 Planificación Aproximaciones a la planificación Espacio de estados (State-Space Planning) El problema se define como una secuencia de acciones que va completando los objetivos del problema Se explora el espacio de caminos que conecta el estado inicial y final E0 E1 E2 E3 En Exploración ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 47 / 81 Planificación Aproximaciones a la planificación Espacio de planes (Plan-Space Planning) En En E0 E0 E0 E0 E0 En En En El problema se define como una secuencia incompleta de acciones Se explora el espacio de planes parciales añadiendo acciones que completan el plan Exploración ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 48 / 81 Planificación Aproximaciones a la planificación Espacio de descomposiciones (Hierarchical Task Network Planning) El problema se plantea como una descomposición jerárquica de problemas Se explora el espacio de descomposiciones hasta obtener una secuencia de problemas primitivos E0 En E0 E0 En En Exploración ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 49 / 81 Planificación Planificacion Lineal Planificación en espacio de estados Estrategias - Forward Linear Planning Búsqueda hacia adelante: Se parte del estado inicial A cada paso se intentan unificar las precondiciones de las acciones Cada acción que se cumpla permite acceder a un nuevo estado al que se han aplicado los efectos En(C1,SFO) En(C2,JFK) En(A1,SFO) En(A2,JFK) ... ECSDI (LSI-FIB-UPC cbea) carga(C1,A1,SFO) carga(C2,A2,SFO) Dentro(C1,A1) En(C2,JFK) En(A1,SFO) En(A2,JFK) ... En(C1,SFO) Dentro(C2,A2) En(A1,SFO) En(A2,JFK) ... Composición Dinámica Curso 2015/2016 50 / 81 Planificación Planificacion Lineal Planificación en espacio de estados Estrategias - Forward Linear Planning Algoritmos de búsqueda hacia adelante: Anchura prioritaria Profundidad prioritaria Best first (A∗ , IDA∗ ) Greedy Best first Utilizan heurísticas generales para reducir el espacio de búsqueda Problema: Búsqueda no dirigida por el objetivo lleva a una explosión combinatoria, se puede reducir mediante heurísticas dependientes del dominio ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 51 / 81 Planificación Planificacion Lineal Planificación en espacio de estados Estrategias - Backward Linear Planning La búsqueda se inicia desde el estado final del problema Se unifican los efectos de las acciones Se eliminan los efectos positivos del operador Se añade al estado las precondiciones del operador (subobjetivos) La búsqueda acaba cuando todas las precondiciones están en el estado inicial Dentro(C1,A1) En(A1,JFK) En(C2,SFO) ... descarga(C1,A1,JFK) En(C1,JFK) En(C2,SFO) descarga(C2,A2,SFO) Dentro(C2,A2) En(A2,SFO) En(C1,JFK) ... ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 52 / 81 Planificación Planificacion Lineal Planificación en espacio de estados Estrategias - Backward Linear Planning Permite focalizar mejor la búsqueda (solo precondiciones que llevan al objetivo del problema) El espacio de búsqueda es aún bastante grande Son necesarias heurísticas generales y específicas para reducir el espacio de búsqueda ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 53 / 81 Planificación Planificación no Lineal Planificación en espacio de planes Idea: Búsqueda hacia atrás desde el objetivo Cada nodo del espacio de búsqueda es un plan parcial que incluye un conjunto de operadores parcialmente instanciados un conjunto de restricciones sobre los operadores Proceso Descomponer conjuntos de objetivos en objetivos individuales Planificar cada uno por separado Detectar y corregir conflictos entre objetivos imponiendo restricciones Aplicar estrategia de mínimo compromiso (minima modificación que hace válido el plan) Se acaba cuando se obtiene un plan parcialmente ordenado ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 54 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) Problema: escribir una carta Condiciones iniciales: en(casa), vende(papel, papelería), vende(lápiz, papelería), vende(sellos,estanco) Condiciones finales: en(casa) tengo(papel), tengo(sellos), tengo(lápiz) Operadores: ir(x) → prec: [en(y)], efec: [en(x),¬en(y)] comprar(x) → prec: [en(y), vende(y,x)], efec: [tengo(x)] ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 55 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) INICIO en(casa) vende(papel,papeleria) en(casa) tengo(papel) vende(lapiz,papeleria) vende(sellos,estanco) tengo(sellos) tengo(lapiz) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 56 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) INICIO en(casa) vende(papel,papeleria) en(y1) vende(y1,sellos) compro(sellos) en(y2) vende(lapiz,papeleria) vende(sellos,estanco) vende(y2,lapiz) compro(lapiz) en(y3) vende(y3,papel) compro(papel) en(casa) tengo(sellos) tengo(lapiz) tengo(papel) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 57 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) INICIO Inconsistente vende(estanco,sellos) en(casa) en(casa) ir(estanco) ir(papeleria) en(estanco) compro(sellos) vende(papeleria,lapiz) en(papeleria) en(papeleria) vende(papeleria,papel) compro(lapiz) compro(papel) en(casa) tengo(sellos) tengo(lapiz) tengo(papel) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 58 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) INICIO en(casa) en(estanco) ir(estanco) ir(papeleria) en(estanco) vende(estanco,sellos) compro(sellos) en(papeleria) en(papeleria) vende(papeleria,lapiz) vende(papeleria,papel) compro(lapiz) compro(papel) en(casa) tengo(sellos) tengo(lapiz) tengo(papel) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 59 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) INICIO Amenaza en(casa) ir(estanco) en(estanco) en(estanco) compro(sellos) ir(papeleria) no en(estanco) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 60 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) INICIO en(casa) ir(estanco) en(estanco) compro(sellos) en(estanco) ir(papeleria) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 61 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) INICIO en(casa) ir(estanco) en(estanco) vende(estanco,sellos) en(estanco) ir(papeleria) compro(sellos) vende(papeleria,lapiz)en(papeleria) compro(lapiz) en(papeleria) vende(papeleria,papel) compro(papel) en(papeleria) ir(casa) tengo(sellos)en(casa) tengo(lapiz)tengo(papel) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 62 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) ir(papeleria) Amenaza en(papeleria) en(papeleria) ir(casa) compro(lapiz) en(papeleria) compro(papel) no en(papeleria) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 63 / 81 Planificación Planificación no Lineal Planificación en espacio de planes (Ejemplo) INICIO en(casa) ir(estanco) en(estanco) vende(estanco,sellos) en(estanco) ir(papeleria) compro(sellos) vende(papeleria,lapiz) en(papeleria) compro(lapiz) en(papeleria) vende(papeleria,papel) compro(papel) en(papeleria) ir(casa) tengo(sellos) en(casa) tengo(lapiz) tengo(papel) FIN ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 64 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Los métodos que hemos visto trabajan en un único nivel de abstracción Nosotros somos capaces de generar planes a diferentes niveles, desde planes de muy alto nivel a planes muy detallados Planificación Jerárquica: Describe tareas y subtareas, y les asocia acciones. Las tareas forman una red de tareas jerárquica (Hierarchical Task Network o HTN) El motor de planificación es capaz de explorar los diferentes niveles de (sub)tareas ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 65 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple Estados y operadores: como en planificación clásica No hay objetivos Planificación guiada por tareas Tareas primitivas Tareas no primitivas (descomponibles) Los métodos descomponen tareas en sub-tareas ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 66 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple Tarea no primitiva Instancia de método Precondición S0 Tarea primitiva Tarea primitiva Instancia de operador Instancia de operador Precond ECSDI (LSI-FIB-UPC cbea) Efecto S1 Composición Dinámica Precond Efecto Curso 2015/2016 S2 67 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple Tarea: una expresión de la forma t(u1 , . . . , un ) t es un símbolo de tarea, y cada ui es un término Dos tipos de símbolos de tarea: Primitivos: tareas que sabemos cómo ejecutar directamente, el símbolo de tarea es un nombre de operador No-primitivos: tareas que se han de descomponer en subtareas, debemos usar un método ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 68 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple Método: una tupla m = (nombre(m), tarea(m), precond(m), subtareas(m)) nombre(m): una expresión de la forma n(x1 , . . . , xn ) donde xi son parámetros (variables) tarea(m) : una tarea no-primitiva precond(m) : precondiciones (literales) subtareas(m) : una secuencia parcialmente ordenada de las tareas ht1 , . . . , tk i ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 69 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple Dominio de planificación: métodos, operadores Problema de planificación: métodos, operadores, estado inicial, lista de tareas Solución: cualquier plan ejecutable que se pueda generar por aplicar de forma recursiva métodos para tareas no-primitivas operadores para tareas primitivas Realizamos una búsqueda en el espacio de descomposiciones Esta búsqueda es computacionalmente más eficiente (escalable) Se puede utilizar heurísticas independientes del dominio ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 70 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple Algoritmo: P-Jerárquica(s,ht1 , . . . , tk i, O, M) si t=∅ entonces retorna si t1 .esPrimitiva() entonces acciones←{(a, σ)|a = σ(t1 ) y a aplicable en s} si acciones=∅ entonces retorna fallo (a, σ)←acciones.escogeUna() plan←P-Jerárquica(s,ht2 , . . . , tk i, O, M) si plan=fallo entonces retorna fallo sino retorna a + plan sino metodos←{(m, σ)|m es relevante para σ(t1 ) y aplicable en s} si metodos=∅ entonces retorna fallo (m, σ)←metodos.escogeUna() tareas← subtareas(m) + σ(ht2 , . . . , tk i) retorna plan←P-Jerárquica(s,tareas, O, M) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 71 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple - Ejemplo Métodos método: TAREA: PRECOND: SUBTAREAS: método: TAREA: PRECOND: SUBTAREAS: método: TAREA: PRECOND: SUBTAREAS: método: TAREA: PRECOND: SUBTAREAS: comprar-objeto comprar(User,Obj,Tienda,Pmax) ∅ login(User,Tienda), obtener-precio(User,Obj,Tienda), pagar(User,Tienda,Obj,Pmax) login login(User,Tienda) registrado(User,Tienda) enviar-usuario(User,Tienda) login login(User,Tienda) ¬registrado(User,Tienda) registrar-usuario(User,Tienda), login(User,Tienda) pagar pagar(User,Tienda,Objeto,Pmax) precio(Obj,Pr≤Pmax),logged-in(User,Tienda) enviar-pago(User,Tienda), procesar-pago(User,Tienda), enviar-recibo(User,Tienda) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 72 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple - Ejemplo Operadores operador: PRECOND: EFECTOS: operador: PRECOND: EFECTOS: operador: PRECOND: EFECTOS: operador: PRECOND: EFECTOS: operador: PRECOND: EFECTOS: operador: PRECOND: EFECTOS: enviar-usuario(User,Tienda) ¬logged-in(User,Tienda) logged-in(User,Tienda) registrar-usuario(User,Tienda) ¬resgistrado(User,Tienda) registrado(User,Tienda) obtener-precio(User,Tienda,Obj) logged-in(User,Tienda),¬ precio(Obj,P) precio(Obj,P) enviar-pago(User,Tienda,Obj) tarjeta-válida(User) pagado(User,Obj) procesar-pago(User,Tienda,Obj) pagado(User,Obj), tarjeta-válida(User) pago-aprobado(User,Obj) enviar-recibo(User,Tienda) pago-aprobado(User,Tienda) recibo(User,Obj) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 73 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple - Ejemplo El estado inicial sería: ¬registrado(pepe), ¬logged-in(pepe,amz), tarjeta-válida(pepe) La tarea sería: comprar(pepe,libroZZ,amz,10) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 74 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple - Ejemplo comprar(pepe,libroZZ,amz,10) comprar-objeto pagar(pepe,amz,libroZZ,10) login(pepe,amz) obtener-precio(pepe,libroZZ,amz) ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 75 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple - Ejemplo login(pepe,amz) Login Login registrado(pepe,amz) ¬registrado(pepe,amz) FAIL ¬registrado(pepe,amz) ¬logged-in(pepe,amz) ... login(pepe,amz) registrar-usuario(pepe,amz) Login ¬registrado(pepe,amz) registrado(pepe,amz) registrado(pepe,amz) enviar-usuario(pepe,amz) registrado(pepe,amz) ¬logged-in(pepe,amz) ... ECSDI (LSI-FIB-UPC cbea) ¬logged-in(pepe,amz) Composición Dinámica logged-in(pepe,amz) registrado(pepe,amz) logged-in(pepe,amz) ... Curso 2015/2016 76 / 81 Planificación Planificación Jerárquica Planificación Jerárquica Simple - Ejemplo comprar pagar login registrar env-usuario registrado E0 obt-precio logged-in E1 ECSDI (LSI-FIB-UPC cbea) env-pago precio E2 proc-pago pagado E3 Composición Dinámica env-recibo pago-aprobado E4 recibo E5 Curso 2015/2016 E6 77 / 81 Planificación Planificación en SOA Planificación en SOA La composición de un conjunto de servicios se puede hacer a partir de su descripción Cada servicio indica sus entradas, salidas, precondiciones y efectos Estas descripciones coinciden con las de los operadores de planificación Posibilidades: Servicios atómicos: Planificación lineal/no lineal Servicios complejos: Planificación jerárquica ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 78 / 81 Planificación Planificación en SOA Planificación Jerárquica en SOA El lenguaje de descripción de servicios permite describir un proceso como una descomposición de tareas (eg: OWL-S) Servicios atómicos (operadores) Servicios compuestos (métodos) Las entradas, salidas, precondiciones y efectos se expresan como términos de una ontología (razonamiento) La labor de composición la realiza un motor de planificación Una vez elaborado el plan lo podemos ejecutar como una orquestación ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 79 / 81 Planificación Planificación en SOA Planificación en SOA Ontologías Tareas Razonador Desarrollador Dominio/ Tareas/ Operadores Dominio Planner Usuario Requerimientos Seleccion plan Composición de servicios Objetivos Plan Servicios Ejecución y Monitorización Agentes ECSDI (LSI-FIB-UPC cbea) Servicios Composición Dinámica Curso 2015/2016 80 / 81 Planificación Planificación en SOA Planificación Jerárquica en SOA - Ventajas Podemos hacer la descripción de servicios más modular Podemos describir servicios a alto nivel (descripción de la composición) Podemos monitorizar automáticamente la ejecución del plan (precondiciones) Podemos corregir excepciones en la ejecución: Replanificando acciones Insertando planes de contingencia ECSDI (LSI-FIB-UPC cbea) Composición Dinámica Curso 2015/2016 81 / 81