Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Semantic Web Services: OWLS and WSMO
1. Servicios web semánticos: OWL-S y
WSMO
José Luis de la Rosa Triviño1
Alicia Triviño Cabrera2
José F. Aldana Montes3
1 Escuela Técnica Superior de Ingeniería Informática. Universidad de Málaga. España.
joseluisdelarosa@gmail.com
Dpto. de Lenguajes y Ciencias de la Computación. Universidad de Málaga. España
atc@uma.es 2 , jfam@lcc.uma.es 3
RESUMEN del enfoque de los servicios web semánticos y
sus distintas implementaciones. Concretamente,
Los servicios web forman un conjunto de realiza una introducción a las dos soluciones más
aplicaciones distribuidas capaces de dotar a la extendidas WSMO y OWL-S.
web de dinamismo, actuando como componentes
software que ofrecen funcionalidad e incluso son
capaces de cooperar entre sí. Para registrar estos Palabras clave: servicios web, web semántica,
servicios, han surgido diversos directorios donde OWL-S, WSMO, WSML, WSDL,
los desarrolladores pueden acudir para encontrar
aquellos que cumplan los requisitos para
integrarlos en sus aplicaciones. No obstante, la
implementación de las interconexiones entre los
servicios web debe realizarse de forma manual y
en muchos casos suponiendo el significado de
los parámetros y operaciones en base a la sintaxis
de estos o a una documentación difusa.
Este problema ha sido afrontado desde el punto
de vista de la web semántica, desde el que se han
definido ontologías de conceptos para modelar
los servicios web, permitiendo de este modo
realizar el descubrimiento, invocación,
composición y monitorización de forma semi-
automática.
Este artículo pretende ser una introducción al
lector sobre el estado del arte de los servicios
web semánticos. Para ello, se presentan los
problemas de los servicios web sintácticos, los
conceptos de la web semántica y la justificación
2. 1. INTRODUCCIÓN ontologías para describir los servicios web que
sirven para describir a su vez servicios existentes
Las aplicaciones orientadas a servicio o SOA y utilizar razonadores para descubrir, invocar,
(Service Oriented Architecture) permiten el componer y monitorizar los servicios de forma
desarrollo de aplicaciones compuestas de manual.
servicios que pueden estar dispersos por Internet, En las próximas secciones se realizará una breve
favoreciendo así la interoperabilidad entre descripción por el estado del arte en el campo de
aplicaciones. Debido al auge del uso de servicios los servicios web semánticos, presentándose dos
Web como principal metodología de desarrollo de los cuatro enfoques más relevantes como
de aplicaciones orientadas a servicios, se han solución a este panorama. En el apartado 2 se
desarrollado numerosos directorios con realiza una introducción a los servicios web, en
información de servicios web gracias a los cuales el apartado 3 se presenta una introducción a la
es posible desarrollar aplicaciones mediante la web semántica. La sección 4 aborda la fusión
conexión de servicios desarrollados por terceros. entre servicios web y web semántica para
Sin embargo, la interconexión entre estos finalizar analizando, en las secciones 5 y 6, las
servicios se debe hacer en la mayoría de los dos principales perspectivas: OWL-S (OWL-S
casos de forma manual y con documentación Coalition - 2004) y WSMO (J. de Buijn y otros -
incompleta. Se hace, por tanto, necesario 2005), respectivamente.
disponer de mecanismos que ayuden a los
desarrolladores de aplicaciones basadas en
Servicios Web en la tarea de composición semi- 2. SERVICIOS WEB
automática de servicios para resolver problemas
concretos. Los servicios web añaden una capa de
abstracción sobre la web tradicional que permite
El problema de la composición de Servicios Web
extenderla con un elemento de dinamismo,
ha sido abarcado desde el punto de vista
convirtiéndola en un conjunto de aplicaciones
sintáctico del problema. De esta forma ha sido
accesibles desde cualquier sitio de la red. Esta
posible desarrollar algoritmos que, basándose en
nueva arquitectura ha incidido en la forma de
los tipos de datos y los nombres de los
desarrollar aplicaciones permitiendo hacerlas
parámetros de los servicios, tratan de detectar
más escalables e interoperables.
cuando dos servicios pueden componerse. Sin
embargo, estas soluciones resultan ineficaces en
Un servicio web es una aplicación software que
la mayoría de los casos. Por un lado, por la
hace pública su funcionalidad en Internet y a la
ambigüedad del lenguaje, ya que un parámetro
que se accede utilizando una interfaz que,
cantidad de tipo entero, puede interpretarse de
muchas formas distintas. Por otro, porque no se
disponen de mecanismos que medien entre dos
Descripción
servicios independientemente de que sintáctica-
Registro
mente sean similares o no.
del servicio
Con la idea de mejorar los procesos de
Pu
composición semi-automática se ha abordado el
r
ca
b
lic
problema desde la perspectiva de la Web
s
a
Bu
r
Semántica. Siguiendo esta estrategia han surgido
varias propuestas de anotación semántica de
Mensajes
Servicios Web que hacen uso de una ontología de Solicitante Proveedor
conceptos. De esta forma, los parámetros de los del servicio del servicio
servicios se anotan con respecto a conceptos de Cliente Servicio
una ontología. Adicionalmente, se definen
Figura 1. Escenario típico de un servicio web.
3. generalmente, cumple serie de estándares
preestablecidos. Esta interfaz define las Procesos
BPEL
operaciones que se pueden realizar, los Orquestación
estándares que soporta el servicio, el formato de
los mensajes, etc. Descubrimiento
UDDI
Publicación
El escenario común de funcionamiento de los
servicios web consiste principalmente en la XMLS
WSDL Descripción XML
interacción de tres componentes software. La
Figura 1 describe esta interacción. A
continuación se presentan cada uno de los
SOAP Mensajes
elementos que intervienen:
● El proveedor de servicio es un servidor HTTP
que hospeda al propio servicio y que
provee su interfaz, comúnmente en el Figura 2: Arquitectura de tecnologías de los servicios web.
nivel de aplicación sobre un protocolo
de transporte. Este componente base muy importante para la identificación de
interviene en la publicación del servicio recursos en la web. Además del protocolo HTTP
y en el intercambio de mensajes con el (HyperText Transfer Protocol), otros protocolos
solicitante del servicio. son utilizados a este nivel como SMTP (Simple
● El registro del servicio es la aplicación Mail Transfer Protocol), JMS (Java Message
que mantiene la información necesaria Service), etc.
para identificar el servicio e interviene
en operaciones de búsqueda y La segunda capa consiste en el protocolo de
descubrimiento de servicios. intercambio de mensajes que bien pueden estar
● El solicitante del servicio es la en SOAP (Simple Object Access Protocol)
aplicación que requiere de la basado en XML (Extensible Markup Language)
funcionalidad que ofrece un servicio o en arquitectura REST (Representational State
concreto y se conecta con el proveedor Transfer) basado en mensajes y operaciones
para operar con el servicio. HTTP.
Para asegurar la interoperabiliad de los servicios, En el siguiente nivel se encuentra la descripción
es necesario que este escenario se contruya sobre del servicio web donde se pueden diferenciar dos
estándares. Dichos estándares son definidos por subniveles principales. Por un lado, en el nivel
las organizaciones OASIS (Organization for the más alto, se definen las operaciones que ofrece el
Advancement of Structured Information servicio, en función de sus mensajes de entrada y
Standards) y W3C (World Wide Web salida. Por otro, en el nivel menos abstracto, se
Consortium). A continuación, se describen desde define cómo interaccionan WSDL (Web Service
abajo hacia arriba la pila de protocolos y Description Language) y SOAP, o
lenguajes comúnmente aceptados (Figura 2) y las generalizando, la capa de descripción del
distintas capas de abstracción de las que se servicio con la capa de paso de mensajes.
compone un sistema típico de servicios web.
El siguiente nivel de abstracción entra en escena
La capa más baja de la pila se identifica con la cuando se parte de un servicio web previamente
capa de transferencia de mensajes. En ella se definido y es necesario publicarlo. El protocolo
definen las direcciones únicas (URI - Uniform utilizado para ello es UDDI (Universal
Resource Identifier) de los recursos, que son una Description, Discovery and Integration). La
4. información almacenada en el registro UDDI se para componer otros servicios.
organiza en tres categorías: páginas blancas, que
contienen datos sobre la organización que provee Para realizar automáticamente los procesos de
el servicio como nombre, descripción, etc. Las identificación, composición, ejecución de
páginas amarillas que facilitan la categorización servicios web es necesario añadir información
de los servicios en base a taxonomías estándares que permita hacer afirmaciones sobre los
como la taxonomía NAICS para categorizar parámetros y operaciones que nos permitan
industrias (U.S. Census Bureau - 2007), la conocer el tipo, relaciones de herencia,
taxonomía UNSPSC para categorización de restricciones de cardinalidad, relaciones con
productos (U.S. Census Bureau 2007) y otros elementos, etc. De esta manera, se podría
servicios o el estandar ISO 3166 de códigos de utilizar un razonador que, dada una descripción
localización geográfica y las páginas verdes, que semántica de un servicio buscado y una lista de
especifican cómo acceder al proveedor del descripciones de servicios existentes, pudiese
servicio. De este modo, UDDI organiza de un identificar automáticamente qué servicios
modo jerárquico las compañías, sus servicios y la cumplen con el servicio buscado.
información para acceder a dichos servicios.
Algunos servidores UDDI son jUDDI (Apache 3. LA WEB SEMÁNTICA
Software Foundation - 2008) o Novell UDDI
Server (Novell - 2008). La web semántica es una extensión de la web
tradicional que permite a las máquinas
Por último, la capa más alta en la arquitectura interpretar el significado de los datos, en base a
está orientada a la interacción entre servicios. En anotaciones semánticas basadas en descripciones
ella se definen procesos de negocio, ontológicas.
descubrimiento, agregación, etc. Así como la
orquestación de servicios que consiste en la Esta anotación semántica permite dotar a la gran
organización, coordinación, composición y cantidad de información de la web de una
monitorización de servicios web para conseguir estructura lógica, basada generalmente en
un resultado derivado de la canalización correcta soluciones de gestión del conocimiento, que
de las operaciones. La especificación más permite a los usuarios y las máquinas buscar y
conocida de procesos de negocio es WS-BPEL relacionar información de una forma más
de OASIS (Organization for the Advancement of automática y directa.
Structured Information Standards) y WSCI (Web
Service Choreography Interface) es un lenguaje Para anotar estos recursos de la web se emplean
de orquestación de servicios recomendado por ontologías. Una ontología es una descripción de
W3C. una pequeña parte del mundo real, de los tipos de
elementos que aparecen en ese mundo, de las
Esta solución de interoperabilidad y relaciones entre ellos, de los elementos existentes
componentes software distribuidos ha tenido una y de sus restricciones.
gran repercusión en la programación de
aplicaciones, sin embargo, los servicios web OWL
descritos en WSDL sólo disponen de una
descripción a nivel sintáctico de su funcionalidad RDF + RDF Schema
y parámetros. No disponen por tanto de ninguna
definición del significado de dichos parámetros o XML + XMLSchema
mensajes. A lo sumo, en algunos casos se puede URI
contar con comentarios o metadatos legibles Figura 3: Principales lenguajes de la web semántica.
solamente por humanos que facilitan la
identificación de los servicios y su utilización
5. Aunque existen otros lenguajes para anotar En el Ejemplo 1 se muestra un ejemplo de
semánticamente el contenido web, a ontología relativa a referencias bibliográficas
continuación se describe brevemente OWL, un basado en BibTeX (O. Patashnik - 1985). La
lenguaje de marcado para definir ontologías en la sintaxis abstracta que se utiliza muestra en
web. cursiva las palabras reservadas, entre comillas los
valores finales de atributos de las instancias y en
La Figura 3 muestra los diferentes lenguajes y texto normal las clases, relaciones o instancias
tecnologías de la web semántica así como la que define la ontología.
dependencia arquitectural entre ellos.
4. SERVICIOS WEB SEMÁNTICOS.
Una ontología en OWL se puede definir
básicamente mediante tres elementos principales: Los servicios web semánticos surgen de la
necesidad de realizar las operaciones de
● las clases representan entidades del descubrimiento, selección, composición,
entorno que se esté describiendo, negociación, invocación, monitorización y
● las relaciones representan vínculos recuperación semiautomática de los servicios
entre las entidades, web tradicionales.
● las instancias son afirmaciones
concretas sobre el mundo real. Un servicio web semántico está formado por un
servicio web y una anotación semántica sobre
OWL define además un conjunto de propiedades dicho servicio. La anotación semántica consiste
que pueden ser aplicadas a los elementos en asociar conceptos y relaciones de una
anteriores, como pueden ser: restricciones de ontología con parámetros y operaciones de un
cardinalidad para las relaciones, propiedades de servicio web.
herencia para las clases, de igualdad o
desigualdad, etc. A continuación, se presenta un ejemplo de
aplicación de los servicios web semánticos:
Ontología(Referencias bibliograficas)
Clase(Entrada bibliografica)
Supóngase la existencia de un servicio web que
Clase(Articulo)
SubclaseDe(Entrada bibliografica) ofrece un servicio de compra de libros, revistas y
material audiovisual. Ese servicio dispondrá de
Clase(Libro)
SubclaseDe(Entrada bibliografica) una operación buscar que tendrá al menos un
Clase(Revista) parámetro que será el título o autor de la obra que
SubclaseDe(Entrada bibliografica) se desea encontrar. Esta operación buscar ,
Clase(Autor) desde un punto de vista sintáctico, podría ser
Clase(Editor)
Clase(Titulo) confundida o simplemente no identificada como
tal. Por ejemplo, podría ser confundida con otros
Relacion(tieneAutor)
Relacion(tieneTitulo) servicios de búsqueda de productos tan diversos
Dominio(Entrada bibliografica)
Rango(Titulo) como automóviles o propiedades.
Relacion(tieneAño)
Instancia(Entrada bibliografica:”quijote”) Supóngase ahora la existencia de una ontología,
tieneAutor(“Miguel de Cervantes”)
tieneTitulo(“El ingenioso hidalgo ...”) como la mostrada en el Ejemplo 1, que describe
tieneAño(“1605”) el entorno en el que se encuentran los elementos
Instancia(Autor:”Miguel de Cervantes”) libro, revista, artículo, etc. Cada uno de ellos con
Instancia(Autor:”William Shakespeare”)
Instancia(Titulo:”“El ingenioso hidalgo ...”) sus propiedades como autor, fecha de
publicación, idioma, etc.
Ejemplo 1. Ontología de ejemplo en sintaxis abstracta.
Partiendo del servicio web y de la ontología
6. descrita, se puede crear una descripción de Initiative). Existen otros marcos de trabajo como
servicio web, como la mostrada en el Ejemplo 2, WSDL-S (R. Akkiraju - 2005) y SWSF (S. Battle
que anota los parámetros del servicio de - 2005) que no forman parte del análisis de este
búsqueda de libros para restringirlos a los artículo.
elementos y relaciones que deben satisfacer. Así,
cualquier localizador automático de servicios 5. OWL-S
podría identificar claramente si el servicio le
ofrece lo que él necesita o no, en base a sus OWL-S se basa en la definición de varias
entradas y salidas, por ejemplo. ontologías escritas en OWL que permiten la
descripción de servicios web semánticos en
Servicio(Buscador de Libros)
OntologiaImportada(Referencias Bibliograficas) diferentes niveles de abstracción. Según este
Operacion(buscarLibro)
enfoque, la anotación semántica trata de dar
tieneEntrada(Titulo) respuesta a tres cuestiones esenciales para
tieneSalida(Libro)
cualquier servicio web: qué ofrece el servicio,
Ejemplo 2. Servicio de ejemplo en sintaxis abstracta.
cómo funciona el servicio y cómo se interactúa
con él. Para ello, OWL-S emplea tres secciones:
En la Figura 4 puede observarse la evolución de profile, model y grounding.
la web estática, por un lado, hacia la web
semántica y, por otro, hacia la web dinámica o de Service Profile
los servicios web.
La primera pregunta expuesta se responde
Ambas convergen hacia una web dinámica capaz mediante la ontología llamada Service Profile.
de tratar de forma automática los servicios web. En ella se definen propiedades del servicio como
su nombre, su descripción e información de
Es de destacar que la clave de la contacto sobre los autores, publicadores, etc.
interoperabilidad y reusabilidad de los servicios
web radica en la posibilidad de componer de Además de la información puramente
forma automática aplicaciones software para la identificativa, en el Service Profile se describe
obtención de un resultado. funcionalmente el servicio en base a las entradas,
salidas, precondiciones y efectos, comúnmente
En las próximas secciones se realiza un repaso conocidos como IOPE's (Inputs, Outputs,
por los dos principales enfoques: OWL-S (OWL- Preconditions y Effects).
S Coalition 2004), desarrollado por la W3C y
WSML (J. de Bruijn y otros - 2005), desarrollado Las entradas y salidas se representan por las
por la ESSI (European Semantic Systems propiedades hasInput y hasOutput respecti-
vamente y hacen referencia a las entradas y
salidas que se definen posteriormente en el
Servicios Web Servicios Web Semánticos Service Model. Un servicio define además una
Dinámico UDDI, WSDL, SOAP OWLS, WSMO serie de condiciones que deben cumplirse
previamente a su ejecución, así como las
postcondiciones resultado de la ejecución del
servicio. Las primeras se definen con la
WWW Web Semántica
propiedad hasPrecondition, que hace referencia a
Estático HTTP, URI, HTML RDF, RDF(S), OWL una precondición definida en el Service Model y
las segundas se definen con la propiedad
Datos Información hasResult que especifica las condiciones de los
parametros de salida.
Figura 4: Evolución de la web hacia los servicios web
semánticos.
7. 3. Para coordinar clientes durante la
ejecución de los servicios.
Service
4. Para monitorizar la ejecución del
Profile
presenta
servicio.
provee Service
Como se describió al presentar el Service Profile,
Service es en el Service Model donde se definen las
Grounding
instancias para los parámetros de entrada, salida,
descrito por precondiciones y resultados. Los parámetros de
Service entrada y salida son representados como
Model variables de SWRL (Semantic Web Rule
Figura 5: Ontología principal de OWL-S para describir un Language) y en cada uno de ellos se define el
servicio. tipo de valores que puede instanciar. Las
precondiciones y resultados (o efectos) son
tratados como expresiones lógicas que funcionan
Por otra parte, el Service Profile permite definir a modo de literales que pueden estar descritos en
otras propiedades útiles como parámetros un lenguaje basado en XML (e.g. SWRL) o en
adicionales que referencian instancias en otros lenguajes (e.g. KIF).
ontologías ya existentes (serviceParameter) y
propiedades para categorizar el servicio de Los procesos se dividen principalmente en dos
acuerdo a estándares como NAICS o UNSPSC. tipos:
Service Model ● Atómicos: son procesos que, aunque
pueden ser complejos en la obtención de
La definición de la ontología Service Model su resultado, siempre actuan bajo un
responde a la pregunta: ¿cómo funciona el sólo mensaje de entrada y devuelven un
servicio?. Particularmente, la perspectiva de sólo mensaje de salida.
interacción con un servicio OWL-S se realiza en ● Compuestos: son procesos que poseen
base a procesos. Cualquier servicio es visto como estado que cambia en base a los
un proceso, bien sea atómico o compuesto, que mensajes recibidos por el proceso.
bajo ciertas condiciones y unos parámetros de
entrada, produce una serie de salidas que Un proceso atómico se puede ver como una caja
cumplen ciertas precondiciones. negra a la que llega un mensaje desde el cliente
y, tras realizar varias operaciones, devuelve un
Este enfoque basado en procesos se apoya sobre mensaje resultado.
trabajos ya existentes y de referencia en materia
de inteligencia artificial, lenguajes de Un proceso compuesto tiene la particularidad de
programación, sistemas distribuidos y estándares que puede ser descompuesto en otros procesos,
en el campo de la definición de flujos de trabajo. compuestos o atómicos. Esta descomposición del
proceso puede adoptar distintas estructuras según
El modelo de un servicio puede ser utilizado por cómo se realice la composición. Las principales
los agentes de búsqueda hasta de cuatro formas son:
distintas:
● Sequence: El proceso se compone de
1. Para analizar con más detalle si el una secuencia de procesos y su
servicio cumple los requisitos buscados. ejecución resulta de la ejecución
2. Para componer descripciones de secuencial de todos ellos.
múltiples servicios. ● Split: consiste en un conjunto de
8. procesos que se deben ejecutar de forma parámetro dependiendo de la procedencia del
concurrente. valor instanciado.
● Split-Join: añade sincronización al
finalizar los procesos de un Split. ● valueSource: el valor procede de otra
● Any-Order: permite que los procesos se fuente como puede ser otro proceso.
ejecuten en un orden aleatorio. ● valueType: el valor es una instanciación
● Choice: permite la ejecución de de la clase definida en esta propiedad.
cualquiera de los subprocesos a los que ● valueData: el valor procede de un literal
hace referencia. XML.
● If-Then-Else: permite la ejecución de ● valueFunction: el valor procede de un
forma exclusiva de dos sentencias de literal XML que puede ser evaluado y
tipo ControlConstruct dependiendo de que depende de variables definidas
la veracidad de una condición. anteriormente.
● Iterate: es una clase abstracta que tiene
como subclases Repeat-While y Repeat- Así mismo, la clase Produce permite la
Until. instanciación de parámetros a posteriori, es decir,
● Repeat-While: al igual que la sentencia cuando se conoce exactamente el parámetro que
ya conocida en lenguajes de tendrá salida. Este se suele utilizar cuando el
programación Repeat-While ejecuta los parámetro salida está dentro de una construcción
procesos que contiene mientras se If-Then-Else.
cumpla una condición.
Service Grounding
● Repeat-Until: de forma similar a
Repeat-While, esta clase define una La tercera pregunta que se plantea al comenzar el
iteración que se realiza al menos una análisis sobre OWL-S, se responde con la
vez. definición de la ontología Service Grounding,
una ontología donde se define cómo la
En cualquiera de las construcciones se requiere descripción semántica de un servicio se hace
siempre que todos los procesos terminen para corresponder con la definición del mismo en el
que pueda darse por concluida la sentencia que lenguaje original del servicio.
los agrupa. De otro modo, no se puede asegurar
que el resultado del proceso sea el deseado. El Service Grounding especifica cómo se
interactúa con el servicio llegando a describir
La transferencia de datos entre procesos, para ello el protocolo que lo implementa (RPC,
especialmente cuando se trata con procesos SOAP, CORBA, HTTP-FORM, etc.), el formato
compuestos, se formaliza en OWL-S como flujos de los mensajes, serialización, transporte y
de datos. De forma similar se plantea la direccionamiento (máquina y puerto) para
instanciación de parámetros. Por convención, un ejecutarlo. Es, por tanto, el eslabón clave para
parámetro que es requerido por un proceso se completar la descripción semántica de un
define en el proceso donde es necesario, servicio y establecer la correspondencia con éste.
siguiendo así una política de petición del Esta correspondencia a nivel de ejecución del
consumidor . servicio se realiza siempre por cada proceso
atómico.
OWL-S define una instanciación de parámetros
como una clase abstracta con restricciones sobre En el Service Grounding de un servicio los
la relación toParam. Esta relación indica sobre mensajes intercambiados con dicho servicio se
qué parámetro se realiza la instanciación. Existen describen en el propio lenguaje de la
distintos tipos de instanciación (propiedades) del implementación del servicio. OWL-S no añade
9. <service:Service rdf:ID=”BuscadordeLibros”>
El WSMF consiste en cuatro elementos básicos
<service:presents rdf:resource=”#ProfileBL” /> para la descripción de servicios web semánticos:
<service:presents rdf:resource=”#buscarLibro” />
<service:presents rdf:resource=”#GroundingBL” />
</service:Service> 1. Ontologías
2. Descripciones de servicios web
<profile:BuscadordeLibros rdf:ID=”#ProfileBL”>
<service:presentedBy 3. Objetivos
rdf:resource=”#BuscadordeLibros”/>
<profile:serviceName>Buscador de Libros 4. Mediadores
</profile:serviceName>
<profile:textDescription> Este servicio A continuación se detallan cada uno de estos
provee información sobre libros.
</profile:textDescription> elementos:
<profile:hasInput rdf:resource=”#Titulo” />
<profile:hasOutput rdf:resource=”#Libro” /> Ontologías
</profile:BuscadordeLibros>
<process:AtomicProcess rdf:ID=”buscarLibro”>
Una ontología está compuesta de:
<service:describes
rdf:resource=”#BuscadordeLibros” />
● Propiedades no funcionales como
<profile:hasInput rdf:resource=”#Titulo” />
<profile:hasOutput rdf:resource=”#Libro” />
pueden ser identificador, título,
descripción, fecha, creador, formato,
</process>
Ejemplo 3. Servicio de ejemplo en sintaxis OWL-S.
propietario, versión, etc.
● Ontologías importadas, son ontologías
ninguna restricción sobre el lenguaje en el que de las que se hace uso en la ontología
esté implementado el servicio. actual.
● Mediadores entre ontologías, son
OWL-S y WSDL mediadores que intervienen para
resolver los desajustes con las
Aunque OWL-S no pretende restringir el ontologías importadas.
lenguaje de definición del servicio, el primer ● Conceptos que representan entidades
enfoque de Service Grounding se basa en WSDL del mundo real.
(Web Service Description Language). Una de las ● Relaciones que representan relaciones
ventajas es que existe una correspondencia entre los conceptos.
directa entre los elementos de OWL-S y WSDL, ● Funciones que son relaciones especiales
permitiendo al desarrollador, en el primer caso que actúan con múltiples dominios y un
tratar con un lenguaje abstracto y muy expresivo solo rango.
para definir su servicio y por otro lado, en el ● Instancias que representan objetos del
segundo caso, seguir trabajando en un lenguaje mundo real.
ampliamente aceptado como es WSDL. ● Axiomas que representan expresiones
lógicas.
En el Ejemplo 3, puede verse el mismo Ejemplo Servicios
2 de servicio expuesto en la sección 4 pero esta
vez en sintaxis OWL-S. Una descripción semántica de servicio web
consiste en:
6. WSMO
● Propiedades no funcionales, en este
caso se añaden a las ya comentadas
Dentro del WSMF (Web Service Modeling
anteriormente propiedades inherentes al
Framework) se propone una ontología llamada
servicio como seguridad, robustez,
WSMO (Web Service Modeling Ontology) para
escalabilidad, si es transaccional o no,
definir servicios web semánticos.
10. etc. están basadas en las ya conocidas Máquinas de
● Ontologías importadas Estados Abstractas o ASM (Abstract State
● Mediadores usados Machines) y se componen de:
● Capacidad
● Interfaz ● un estado (stateSignature) que describe
la situación actual del servicio en base a
En adelante se presentan los elementos que un conjunto de instancias,
componen un servicio con más detalle: ● unas transiciones condicionadas
(transitionRules) que expresan los
Capacidad (Capability) cambios de estado en base a unas reglas
dadas.
La capacidad describe funcionalmente el servi-
cio y a diferencia de otros elementos, un servicio La orquestación de un servicio describe cómo el
no puede tener más de una capacidad. Las servicio interactúa con otros servicios para
propiedades de la capacidad son: conseguir la funcionalidad requerida por el
servicio en cuestión. La orquestación, al igual
● Propiedades no funcionales que la coreografía está basada en ASM y es por
● Ontologías importadas tanto una secuencia y condiciones bajo las cuales
● Mediadores usados se hace uso de otros servicios. Para llegar a otros
● Variables compartidas servicios se hace uso de mediadores wg, si el
● Precondiciones servicio requerido no se conoce, ó mediadores
● Suposiciones ww si es un servicio conocido.
● Postcondiciones
● Efectos Objetivos
Interfaz (Interface) Un objetivo es la representación del servicio que
el cliente está buscando.
La interfaz describe el servicio desde el punto de
vista operacional, para lo que se utilizan dos Los objetivos se componen de:
enfoques, coreografía u orquestación, depen-
diendo de si la operación es propia del servicio o ● Propiedades no funcionales
de otros servicios, respectivamente. Ambas se ● Ontologías importadas
presentan con detalle en los próximos párrafos. ● Mediadores utilizados
Además de estos dos elementos, una interfaz se ● Capacidad buscada
compone también de: ● Interfaz buscada
● Propiedades no funcionales Mediadores
● Ontologías importadas
● Mediadores usados Uno de los problemas que resolver en la web
semántica es la inherente heterogeneidad que
La coreografía y orquestación tienen enco- implica tener ontologías o servicios distribuidos
mendada una de las tareas más importantes de y cada uno descrito por distintos autores. Esto
los servicios web, ya que éstas son determinantes resulta en un gran inconveniente para la
en funcionalidades como la composición de interoperabilidad de los servicios, el
servicios, etc. descubrimiento o la orquestación. En este
escenario, aparecen los mediadores, cuya
La coreografía describe el servicio desde el principal labor es asegurar la interoperabilidad de
punto de vista de un cliente. Las coreografías los servicios web semánticos resolviendo los
11. distintos tipos de desajustes. Por ello, en WSMO, Ejemplo 4: Servicio en sintaxis WSML.
hay cuatro tipos de mediadores: webService _"BuscadordeLibros"
nonFunctionalProperties
dc#title hasValue "Buscador de Libros"
dc#description hasValue "Este servicio
● Los mediadores entre ontologías provee información sobre libros."
(oomediator). Son mediadores a nivel endNonFunctionalProperties
de datos que resuelven problemas de capability BuscadordeLibros#CapacidadBL
nonFunctionalProperties
desajuste de clases, relaciones, etc. dc#title hasValue "Buscador de Libros"
Como origen pueden referenciar una dc#description hasValue "Este servicio
provee información sobre libros."
ontología u otro oomediator y como endNonFunctionalProperties
destino pueden hacer referencia a una precondition BuscadordeLibros#existeTitulo
ontología, un oomediator, un servicio o definedBy
Titulo.
un objetivo.
interface BuscadordeLibros#buscarLibro
Así mismo, hacen referencia a un nonFunctionalProperties
servicio de mediación que puede ser un dc#title hasValue "Buscar Libro"
endNonFunctionalProperties
objetivo, un servicio o un mediador ww. choreography BuscadordeLibros#buscarLibro
stateSignature _
in
● Los mediadores entre objetivos concept buscadordeLibros#Titulo
(ggmediator). Son mediadores que out
concept BuscadordeLibros#Libro
intervienen como enlace entre otros
objetivos o mediadores gg. Las
7. CONCLUSIONES
principales soluciones que aportan los
mediadores gg son: refinamiento de
Las tecnologías de servicios web tradicionales,
servicios, restricción o ampliación de
aunque cumplían con su principal cometido de
objetivos con el fin de utilizar objetivos
aumentar la interoperabilidad de las aplicaciones
que resuelven un problema más
y cambiar el paradigma de programación
restringido o amplio, respectivamente,
conocido hasta su aparición, no han tenido todo
que el que se pretende resolver.
el auge que se esperaba de ellas. La tecnología
desarrollada era insuficiente, al dejar del lado de
● Los mediadores entre servicios y
los programadores tareas como la búsqueda,
objetivos (wgmediator) se utilizan
identificación y composición de los servicios,
principalmente para establecer dos
que restaba potencia a la arquitectura de servicios
relaciones: que un servicio ofrece la
web. Para resolver este inconveniente se recurrió
funcionalidad de un objetivo y que un
a la tecnología de la web semántica.
servicio necesita la funcionalidad
descrita en un objetivo (orquestación).
La web semántica, se mostraba entonces como
una solución factible para la anotación semántica
● Los mediadores entre servicios
de los servicios permitiendo de este modo
(wwmediators) actuan entre la
realizar de forma, al menos semiautomática, las
orquestación del servicio origen y la
operaciones de búsqueda, descubrimiento,
coreografía de los servicios destino.
composición, ejecución y monitorización de los
servicios web existentes.
Siguiendo con el ejemplo habitual en el Ejemplo
4, puede verse en sintaxis WSML.
Los servicios web semánticos, aunque aún no
están muy extendidos en el ámbito empresarial,
se encuentran en un nivel de madurez suficiente
para su utilización en este tipo de entornos.
12. En la actualidad son cuatro las soluciones de
servicios web semánticos que han sido remitidas L. Cabral, J. Dominique, E. Motta. 2004.
a la W3C para su análisis y posterior Aproaches to Semantic Web Services: An
recomendación. Entre ellas OWL-S y WSMO Overview and Comparisons.
son las que han demostrado tener más comunidad
trabajando sobre ellas, más herramientas de E. Christensen, F. Curbera, G. Meredith, S.
trabajo desarrolladas y en defintiva más Weerawarana. Marzo 2001. Web Services
aplicación práctica en la actualidad.
Description Language (WSDL).
Disponible en: http://www.w3.org/TR/wsdl
En este artículo se ha presentado una
introducción a los servicios web semánticos
A. Mocan, E. Cimpian, M. Stollberg, F.
justificando su necesidad para cubrir aspectos en
Scharffe, J. Scicluna. Diciembre 2005. WSMO
los que los servicios web eran insuficientes. Se
Mediators.
han presentado ejemplos para aclarar los
Disponible en: http://www.wsmo.org/TR/d29/
aspectos más relevantes de los servicios web
semánticos y se han presentado OWL-S y
WSMO. OWL-S Coalition. Noviembre 2004. OWL-S:
Semantic Markup for Web Services.
6. REFERENCIAS Disponible en:
http://www.w3.org/Submission/OWL-S/
Apache Software Foundation. 2008. jUDDI.
O. Patashnik. 1985. BibTeX
Disponible en: http://ws.apache.org/juddi/
Disponible en: http://www.bibtex.org
R. Akkiraju y otros. Noviembre 2005. Web
U.S. Census Bureau. 2007. North American
Service Semantics WSDL-S.
Industry Classification System.
Disponible en:
Disponible en: http://www.census.gov/naics
http://www.w3.org/Submission/WSDL-S/
U.S. Census Bureau. 2007. United Nations
S. Battle y otros. Septiembre 2005. Semantic
Standard Products an Services Code System
Web Services Framework (SWSF) Overview
(UNSPSC).
Disponible en:
Disponible en: http://www.unspsc.org
http://www.w3.org/Submission/SWSF/
D. Booth, H. Haas y otros. Febrero 2004. Web
Services Architecture.
Disponible en: http://www.w3.org/TR/ws-arch/
J. de Bruijn y otros. Junio 2005. Web Service
Modeling Ontology (WSMO).
Disponible en:
http://www.w3.org/Submission/WSMO/
J. de Bruijn y otros. Junio 2005. Web Service
Modeling Language (WSML).
Disponible en:
http://www.w3.org/Submission/WSML/