SlideShare una empresa de Scribd logo
1 de 46
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
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
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
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...).
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.
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.
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()
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




                    ?
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.
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
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
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).
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
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. 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.
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.
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.
Interfaz gráfica
Uso



2. Introducir
   inputs
                                    1. Seleccionar
                                       nodo




                      3. Ejecutar
                         nodo
Arquitectura del sistema
Invocaciones asíncronas
           Síncrono                    Asíncrono




ejecutar                    ejecutar
               invocación                  invocación

                            ejecutar
                                           invocación


               respuesta

ejecutar
               invocación                  respuesta

                                           respuesta



               respuesta
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.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
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.
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.
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.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.
Avance

●   Perform, Produce
    ➢ Nodos unitarios. Al ejecutarse
     se habilita su sucesor.

                                        Perform   Produce
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
     continuar.
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.
Avance

●   Any-Order
    ➢ Las ramas deben                   Any-Order
     ejecutarse en cualquier
     orden, pero no
     concurrentemente. Todas
     deben terminar para
     continuar.
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).
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
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
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.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
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)
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)
     )
Auto-ejecución
                                         Run
                          Jess
ejecutar    N1            Reglas

                          (defrule ejecutarN2
            In1 = “abc”
                              (enabled N2)
ejecutar                  =>
            N2                (set-input N2 In1 “abc”)
                              (execute N2)
                          )
                          ...
            N3

                          Hechos

                          (enabled N1)
                          (enabled N2)
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)
    )                         )
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
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
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.
Preguntas

Más contenido relacionado

Similar a OwlsRunner

Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasCarlos Camacho
 
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO EMERSON EDUARDO RODR...
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO EMERSON EDUARDO RODR...SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO EMERSON EDUARDO RODR...
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO EMERSON EDUARDO RODR...EMERSON EDUARDO RODRIGUES
 
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO.pdf
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO.pdfSISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO.pdf
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO.pdfEMERSON EDUARDO RODRIGUES
 
Interoperabilidad Con Servicios
Interoperabilidad Con ServiciosInteroperabilidad Con Servicios
Interoperabilidad Con ServiciosBarCamp Quito
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSSelqit Mgw
 
INGENIERIA DE SOFTWARE 2012
INGENIERIA DE SOFTWARE 2012INGENIERIA DE SOFTWARE 2012
INGENIERIA DE SOFTWARE 2012Diego Prado
 
12. métodos informáticos
12.  métodos informáticos12.  métodos informáticos
12. métodos informáticosYvan Mayta
 
Tia portal MANUAL
Tia portal MANUALTia portal MANUAL
Tia portal MANUALguelo
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Rodrigo Zottola Pareja
 
Robotica Manufactura
Robotica ManufacturaRobotica Manufactura
Robotica ManufacturaDarwin
 

Similar a OwlsRunner (20)

Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - Sistemas
 
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO EMERSON EDUARDO RODR...
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO EMERSON EDUARDO RODR...SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO EMERSON EDUARDO RODR...
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO EMERSON EDUARDO RODR...
 
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO.pdf
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO.pdfSISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO.pdf
SISTEMA OPC PARA AUTOMATIZACION MEDIANTE REDES DE ESTADO.pdf
 
Interoperabilidad Con Servicios
Interoperabilidad Con ServiciosInteroperabilidad Con Servicios
Interoperabilidad Con Servicios
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOS
 
Jdbc
JdbcJdbc
Jdbc
 
INGENIERIA DE SOFTWARE 2012
INGENIERIA DE SOFTWARE 2012INGENIERIA DE SOFTWARE 2012
INGENIERIA DE SOFTWARE 2012
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Web service
Web serviceWeb service
Web service
 
Web service
Web serviceWeb service
Web service
 
12. métodos informáticos
12.  métodos informáticos12.  métodos informáticos
12. métodos informáticos
 
Aladdin cargo - Steven Alejandro Suárez Castro
Aladdin cargo - Steven Alejandro Suárez CastroAladdin cargo - Steven Alejandro Suárez Castro
Aladdin cargo - Steven Alejandro Suárez Castro
 
Sesion1 adsi
Sesion1 adsiSesion1 adsi
Sesion1 adsi
 
Ers scrum ieee 830 app delivery
Ers   scrum ieee 830 app deliveryErs   scrum ieee 830 app delivery
Ers scrum ieee 830 app delivery
 
Ers scrum ieee 830 app delivery
Ers   scrum ieee 830 app deliveryErs   scrum ieee 830 app delivery
Ers scrum ieee 830 app delivery
 
SOA Open Source
SOA Open SourceSOA Open Source
SOA Open Source
 
Tia portal MANUAL
Tia portal MANUALTia portal MANUAL
Tia portal MANUAL
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 
Robotica Manufactura
Robotica ManufacturaRobotica Manufactura
Robotica Manufactura
 

OwlsRunner

  • 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.
  • 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. 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. 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.
  • 19. Uso 2. Introducir inputs 1. Seleccionar nodo 3. Ejecutar nodo
  • 21. Invocaciones asíncronas Síncrono Asíncrono ejecutar ejecutar invocación invocación ejecutar invocación respuesta ejecutar invocación respuesta respuesta respuesta
  • 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: – (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. 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. Auto-ejecución Run Jess ejecutar N1 Reglas (defrule ejecutarN2 In1 = “abc” (enabled N2) ejecutar => N2 (set-input N2 In1 “abc”) (execute N2) ) ... N3 Hechos (enabled N1) (enabled N2)
  • 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. 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.