Download Composición Dinámica de servicios

Document related concepts
no text concepts found
Transcript
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