CENTRO POLITÉCNICO SUPERIOR                      UNIVERSIDAD DE ZARAGOZA                            Proyecto Fin de Carrer...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
1. Introducción●   Servicios Web    –   Conjunto de tecnologías que permiten la interoperabilidad        entre sistemas he...
Servicios Web●   La compañía expone un servicio, cuya interfaz se presenta en el    documento WSDL.●   El usuario, conocie...
Semántica●   Web Semántica    –   La tecnología de la Web Semántica está destinada a aportar        información acerca del...
Ejemplo (1)   ●   Descripción de procesos               WSDL                                       OWL-S<wsdl:operation na...
Ejemplo (2)   ●   Protocolo de interacción               WSDL                                  OWL-S                      ...
Servicios Web Semánticos●   Se expone un servicio definido en el documento WSDL.●   Se añade una descripción semántica con...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
2. OWL-S●   Lenguaje diseñado para describir    semánticamente Servicios Web.    –   Es una extensión de OWL, y se codific...
ServiceModel                                                                      Inputs●   Procesos                      ...
ServiceModel●   Protocolo    –   Organización de los componentes de un proceso compuesto.    –   Estructuras de control:  ...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
3. Aplicación●   Se pretende conseguir un agente que pueda ejecutar Servicios Web    automáticamente, mediante su descripc...
Solución 1 ●     Modo manual                                               OWL-S0..N         proceso              inputs  ...
Solución 2●   Modo automático          reglas de           decisión                                             OWL-S     ...
Interfaz gráfica
Uso2. Introducir   inputs                                    1. Seleccionar                                       nodo    ...
Arquitectura del sistema
Invocaciones asíncronas           Síncrono                    Asíncronoejecutar                    ejecutar               ...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
3.1. Manejo de ontologías●   Ontologías                Clases                               Instancias           Persona  ...
Introducción de parámetros●   Ejemplo: CartCreate                                                   CartRequestWithItems  ...
Conversión de datos              OWL                           WSDL                              [XSLT]    Valores        ...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
3.2. Intérprete de                    protocolos●   El transcurso de la conversación depende del protocolo    definido por...
Avance●   Perform, Produce    ➢ Nodos unitarios. Al ejecutarse     se habilita su sucesor.                                ...
Avance●   Secuencia    ➢ Cada nodo se ejecuta después     del anterior.
Avance●   Choice    ➢ El usuario elige una rama        Choice     de las posibles.
Avance●   Split+Join    ➢ Se abren varias ramas           Split+Join     concurrentes. Todas ellas     deben terminar para...
Avance●   Split    ➢ Se abren varias ramas           Split     concurrentes de las que no     se espera su terminación.   ...
Avance●   Any-Order    ➢ Las ramas deben                   Any-Order     ejecutarse en cualquier     orden, pero no     co...
Avance●   If-Then-Else    ➢ Se habilita una de las               If-Then-Else <condition>     ramas según el valor de la  ...
Avance●   Repeat-While    ➢ Si la condición es cierta se               Repeat-While <condition>     entra al bucle; si no,...
Avance●   Repeat-Until    ➢ Si la condición es falsa se     reinicia el bucle. Si es cierta     se continúa.              ...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
3.3. Motor de reglas●   Lenguaje de reglas: Jess (CLIPS + Java)               Hechos                               Reglas ...
Manipulación de parámetros●   Funciones que obtienen valores:     –   (get­input <perform> <input>)     –   (get­output <p...
Control de la conversación●   Hechos que reflejan el estado del protocolo:     –    (enabled <nodo>)           ●   Indica ...
Auto-ejecución                                         Run                          Jessejecutar    N1            Reglas  ...
Ejemplos                                                                    Split+Join●   Dependencias entre nodos:       ...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
Sumario1. Introducción2. OWL-S3. Aplicación  3.1. Manejo de ontologías  3.2. Intérprete de protocolos  3.3. Motor de regla...
5. Conclusiones●   Se ha obtenido una herramienta que facilita la tarea de    consumir automáticamente Servicios Web, medi...
Preguntas
Upcoming SlideShare
Loading in …5
×

OwlsRunner

268 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
268
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OwlsRunner

  1. 1. CENTRO POLITÉCNICO SUPERIOR UNIVERSIDAD DE ZARAGOZA Proyecto Fin de Carrera Ingeniería Informática Intérprete de los modelos de proceso endescripciones semánticas de Servicios Web OWL-S Autor: Rafael Ramos Guallar Director: José Ángel Bañares BañaresDepartamento de Informática e Ingeniería de Sistemas
  2. 2. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  3. 3. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  4. 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. 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. 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.
  7. 7. Ejemplo (1) ● Descripción de procesos WSDL OWL-S<wsdl:operation name="Pagar"> <wsdl:input message="tns:PagarIn"/> <wsdl:output message="tns:PagarOut"/></wsdl:operation> Input: cardNumber<wsdl:message name="PagarIn"> <wsdl:part name="numTarjeta" Precondition: type="s:string"/> validCard(cardNumber) Process: Pagar</wsdl:message> Effect:<wsdl:message name="PagarOut"> charged(cardNumber) <wsdl:part name="recibo" Output: receipt element="tns:tipoRecibo"/></wsdl:message> Ontología “Comercio” cardNumber ? receipt validCard() charged()
  8. 8. Ejemplo (2) ● Protocolo de interacción WSDL OWL-S SeleccionarTrayecto<wsdl:operation name="SeleccionarTrayecto"/><wsdl:operation name="SeleccionarFecha"/> SeleccionarFecha<wsdl:operation name="Pagar"/> Choice<wsdl:operation name="Cancelar"/> Cancelar Pagar ?
  9. 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. 10. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  11. 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. 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. 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. 14. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  15. 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. 16. Solución 1 ● Modo manual OWL-S0..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. 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.
  18. 18. Interfaz gráfica
  19. 19. Uso2. Introducir inputs 1. Seleccionar nodo 3. Ejecutar nodo
  20. 20. Arquitectura del sistema
  21. 21. Invocaciones asíncronas Síncrono Asíncronoejecutar ejecutar invocación invocación ejecutar invocación respuestaejecutar invocación respuesta respuesta respuesta
  22. 22. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  23. 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. 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. 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. 26. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  27. 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. 28. Avance● Perform, Produce ➢ Nodos unitarios. Al ejecutarse se habilita su sucesor. Perform Produce
  29. 29. Avance● Secuencia ➢ Cada nodo se ejecuta después del anterior.
  30. 30. Avance● Choice ➢ El usuario elige una rama Choice de las posibles.
  31. 31. Avance● Split+Join ➢ Se abren varias ramas Split+Join concurrentes. Todas ellas deben terminar para continuar.
  32. 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. 33. Avance● Any-Order ➢ Las ramas deben Any-Order ejecutarse en cualquier orden, pero no concurrentemente. Todas deben terminar para continuar.
  34. 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. 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. 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. 37. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  38. 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. 39. Manipulación de parámetros● Funciones que obtienen valores: – (get­input <perform> <input>) – (get­output <perform> <output>) – (get­local <perform> <local>)● Funciones que establecen valores: – (set­input <perform> <input> <valor>)● Funciones auxiliares: ● (make­instance [<nombre>] of <clase> <propiedad­valor>*) ● (slot­get <instancia> <propiedad>) ● (slot­set <instancia> <propiedad> <valor>) ● ...Ejemplo: (make-instance juan of Persona (nombre “Juan Pérez”))) (set-input Perform1 Input1 juan)
  40. 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) )
  41. 41. Auto-ejecución Run Jessejecutar N1 Reglas (defrule ejecutarN2 In1 = “abc” (enabled N2)ejecutar => N2 (set-input N2 In1 “abc”) (execute N2) ) ... N3 Hechos (enabled N1) (enabled N2)
  42. 42. Ejemplos Split+Join● Dependencias entre nodos: In1 (defrule exeP4 P1 P4 (enabled P4) (enabled P3) => (set-input P4 In1 (get-output P2 Out1)) P2 Out1 P5 (execute P4) ) (defrule exeDefault P3 P6 (enabled ?node&~P4) => (execute ?node) )● Elección con criterio: Choice (defrule exeP1 (defrule exeP2 (enabled P1) (enabled P1) (enabled P2) (enabled P2) (izquierda) (derecha) P1 P2 => => (execute P1) (execute P2) ) )
  43. 43. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  44. 44. Sumario1. Introducción2. OWL-S3. Aplicación 3.1. Manejo de ontologías 3.2. Intérprete de protocolos 3.3. Motor de reglas4. Demo5. Conclusiones
  45. 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.
  46. 46. Preguntas

×