1. CENTRO POLITÉCNICO SUPERIOR
UNIVERSIDAD DE ZARAGOZA
Proyecto Fin de Carrera
Ingeniería Informática
Intérprete de los modelos de proceso en
descripciones semánticas de Servicios Web
OWL-S
Autor: Rafael Ramos Guallar
Director: José Ángel Bañares Bañares
Departamento de Informática e Ingeniería de Sistemas
2. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
3. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
4. 1. Introducción
● Servicios Web
– Conjunto de tecnologías que permiten la interoperabilidad
entre sistemas heterogéneos en redes con independencia
de lenguaje y plataforma.
● El proveedor expone un servicio para su acceso público.
● El cliente invoca remotamente sus métodos.
● La compatibilidad se garantiza mediante estándares de
representación y comunicación (XML, SOAP, WSDL...).
5. Servicios Web
● La compañía expone un servicio, cuya interfaz se presenta en el
documento WSDL.
● El usuario, conociendo la interfaz, crea un programa cliente que invoca el
servicio.
WSDL
WSDL
● Debería existir un agente que pudiera ejecutar el servicio automáticamente,
sin conocerlo de antemano.
6. Semántica
● Web Semántica
– La tecnología de la Web Semántica está destinada a aportar
información acerca del significado de los contenidos, en un
lenguaje formal.
● Servicios Web Semánticos
– Servicios que incluyen una descripción semántica de su
funcionamiento y estructura, en unos términos
potencialmente comprensibles por cualquier máquina.
9. Servicios Web Semánticos
● Se expone un servicio definido en el documento WSDL.
● Se añade una descripción semántica con ayuda de una ontología.
Ontol.
Repositorio de
ontologías
WSDL
Ontol. OWL-S OWL-S
● El agente aprende esa ontología.
● Con ella, interpreta la descripción semántica que obtiene del servicio.
● El agente ejecuta el servicio según su protocolo.
10. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
11. 2. OWL-S
● Lenguaje diseñado para describir
semánticamente Servicios Web.
– Es una extensión de OWL, y se codifica en XML.
– Como ontología, incluye conceptos relativos a servicios
(procesos, inputs...). Los elementos de un servicio concreto
son instancias de estos conceptos.
– Aporta información de tres tipos:
● ServiceProfile: Qué hace
● ServiceModel: Cómo se usa
● ServiceGrounding: Cómo se accede
12. ServiceModel
Inputs
● Procesos Preconditions
Locals
– Process: Unidad básica de trabajo Process
Effects
(método). Results
Outputs
– Atributos:
● Inputs: datos de entrada
Atomic
● Outputs: datos de salida Process
● Locals: variables locales
Composite
● Preconditions: condiciones necesarias Process
● Effects: hechos resultantes
● Results: resultados condicionales
– Ej.: Si <condición>, devuelve <output> y ocurre <efecto>
– Pueden ser atómicos (una única invocación-respuesta) o
compuestos (formados por un conjunto de subprocesos).
13. ServiceModel
● Protocolo
– Organización de los componentes de un proceso compuesto.
– Estructuras de control:
● Perform
● Sequence
● Choice
● Split
● Split+Join
● Any-Order
● If-Then-Else
● Repeat-While
● Repeat-Until
● Produce
14. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
15. 3. Aplicación
● Se pretende conseguir un agente que pueda ejecutar Servicios Web
automáticamente, mediante su descripción semántica.
● Sólo ejecución, no descubrimiento.
OWL-S OWL-S
Decisiones
- Camino de la conversación
- Valores de entrada
?
● Problema: Toma de decisiones
– Durante el uso del servicio deben tomarse decisiones para alcanzar el
objetivo deseado.
– Estas decisiones corresponden al usuario, lo cual es un obstáculo para
la automatización.
16. Solución 1
● Modo manual
OWL-S
0..N proceso
inputs
proceso(inputs)
outputs
outputs
– Separación de la toma de decisiones del resto del trabajo. El usuario,
presente durante el consumo, expresa sus elecciones en una interfaz
gráfica; el sistema asegura el seguimiento del protocolo y envía las
invocaciones al Servicio Web.
17. Solución 2
● Modo automático
reglas de
decisión
OWL-S
0..N proceso
inputs proceso(inputs)
outputs
– El usuario establece reglas de decisión que permiten al sistema tomar
las decisiones por sí sólo durante la ejecución del servicio. Estas reglas
indican el camino y los inputs que deben usarse en cada paso.
22. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
23. 3.1. Manejo de ontologías
● Ontologías
Clases Instancias
Persona juan
nombre (single string) nombre: “Juan Pérez”
telefono (multiple int) telefono: 12345
67890
padre (single Persona) padre: luis
● La aplicación soporta el manejo de datos ontológicos para los parámetros
de entrada y salida.
● La información semántica del servicio en OWL-S es accesible a través de la
interfaz gráfica:
- Protocolo de interacción → grafo de protocolo
- Características de procesos → paneles de información
- Parametros de E/S → editores de instancias, panel de ontologías
24. Introducción de parámetros
● Ejemplo: CartCreate
CartRequestWithItems
cartAddition (multiple CartAddition)
CartAddition
ASIN (single string)
quantity (single int)
● Los parámetros de tipo simple se introducen en cajas de texto
● Los parámetros ontológicos se crean mediante editores de instancias en
función de su clase.
25. Conversión de datos
OWL WSDL
[XSLT]
Valores Inputs WSDLMessage
[XSLT]
Valores Outputs WSDLMessage
● Los valores de entrada, asociados a los inputs, se convierten en partes del
mensaje WSDL que se envía al Servicio Web. Los outputs se extraen del
mensaje de retorno.
● La correspondencia entre parámetros OWL y WSDL puede ser directa, o
bien estar definida en una cadena de transformación XSLT. Esto se
especifica en el Grounding de la descripción OWL-S.
26. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
27. 3.2. Intérprete de
protocolos
● El transcurso de la conversación depende del protocolo
definido por el proveedor y de las decisiones del usuario:
– Sistema: seguimiento del protocolo
– Usuario: control del avance
● La tarea del intérprete consiste en garantizar que la secuencia
de invocaciones se ajusta al protocolo. Esto se traduce en
calcular los nodos que deben habilitarse en cada paso.
● Cada estructura de control avanza según su especificación,
como se ve en los siguientes ejemplos.
28. Avance
● Perform, Produce
➢ Nodos unitarios. Al ejecutarse
se habilita su sucesor.
Perform Produce
29. Avance
● Secuencia
➢ Cada nodo se ejecuta después
del anterior.
30. Avance
● Choice
➢ El usuario elige una rama Choice
de las posibles.
31. Avance
● Split+Join
➢ Se abren varias ramas Split+Join
concurrentes. Todas ellas
deben terminar para
continuar.
32. Avance
● Split
➢ Se abren varias ramas Split
concurrentes de las que no
se espera su terminación.
El Split termina
inmediatamente,
habilitándose el siguiente
nodo.
33. Avance
● Any-Order
➢ Las ramas deben Any-Order
ejecutarse en cualquier
orden, pero no
concurrentemente. Todas
deben terminar para
continuar.
34. Avance
● If-Then-Else
➢ Se habilita una de las If-Then-Else <condition>
ramas según el valor de la
T F = True
condición (True o False).
35. Avance
● Repeat-While
➢ Si la condición es cierta se Repeat-While <condition>
entra al bucle; si no, se
T = True
False
continúa. F
36. Avance
● Repeat-Until
➢ Si la condición es falsa se
reinicia el bucle. Si es cierta
se continúa.
Repeat-Until <condition>
F
= True
False
T
37. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
38. 3.3. Motor de reglas
● Lenguaje de reglas: Jess (CLIPS + Java)
Hechos Reglas
(lunes) (defrule regla1
(alumno juan) (presion baja)
(humedad alta)
(presion baja) =>
(assert (lluvia))
)
● Se ejecutan las reglas que estén sensibilizadas por los hechos
existentes.
– En la aplicación, las reglas deben efectuar las acciones que
haría el usuario en la interfaz gráfica:
● Dirigir el avance de la conversación
● Introducir valores de entrada
39. Manipulación de parámetros
● Funciones que obtienen valores:
– (getinput <perform> <input>)
– (getoutput <perform> <output>)
– (getlocal <perform> <local>)
● Funciones que establecen valores:
– (setinput <perform> <input> <valor>)
● Funciones auxiliares:
● (makeinstance [<nombre>] of <clase> <propiedadvalor>*)
● (slotget <instancia> <propiedad>)
● (slotset <instancia> <propiedad> <valor>)
● ...
Ejemplo:
(make-instance juan of Persona (nombre “Juan Pérez”)))
(set-input Perform1 Input1 juan)
40. Control de la conversación
● Hechos que reflejan el estado del protocolo:
– (enabled <nodo>)
● Indica que el nodo en cuestión está habilitado. Se inserta cuando se habilita,
y se retira cuando se deshabilita.
● Función que actúa sobre el protocolo:
– (execute <nodo>)
● Ordena la ejecución del nodo indicado en modo automático.
Ejemplo de regla de avance:
(defrule ejecutarN1
(enabled N1)
=>
(execute N1)
)
43. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
44. Sumario
1. Introducción
2. OWL-S
3. Aplicación
3.1. Manejo de ontologías
3.2. Intérprete de protocolos
3.3. Motor de reglas
4. Demo
5. Conclusiones
45. 5. Conclusiones
● Se ha obtenido una herramienta que facilita la tarea de
consumir automáticamente Servicios Web, mediante un
proceso de “aprendizaje”.
– El usuario accede a un servicio, aprende sus detalles mientras lo usa, y
posteriormente define reglas para automatizar su ejecución.
● Se abre la posibilidad de definir reglas genéricas aplicables a
cualquier servicio dentro de un dominio.
– El programa podría tomar decisiones en servicios desconocidos.
● Las tecnologías que se usan aún están en desarrollo. Esta
herramienta está dirigida a investigadores del área de Servicios
Web Semánticos, y puede ser útil para avanzar en el diseño de
este tipo de sistemas.