SOA y Web Semántica: agregando significado a los servicios

julio 22, 2013

share

Archived

Cuando Internet empezó a crecer exponencialmente, con cada vez más presencia de recursos, conexiones, páginas y sitios, la demanda de un análisis automático enfocado en la web se hizo evidente y necesaria. Para llevar esta tarea a cabo hubo que sortear una dificultad no trivial: todo el andamiaje de páginas y buscadores nació y se implementó desde una perspectiva humana, sin considerar la intervención automática de programas, servicios, o demás agentes de software. En otras palabras, los humanos podían leer páginas y navegar por la red sin problemas, pero para un programa poder procesar la información contenida en una página era una tarea que muchas veces sobrepasaba su capacidad. El principal problema era que la información no tenía estructura ni uniformidad en su presentación.

Como solución a este conflicto nace el concepto de web semántica. Este concepto, introducido por Tim Berners-Lee, propuso agregarle “significado” a la información en la web. Esto implicó dotarla de estructura y estándares, de manera que su procesamiento automático fuera viable. En la actualidad estos estándares se definen y ejecutan desde el World Wide Web Consortium (www.w3c.es).

Podemos decir que actualmente se vive una situación parecida en el mundo de las arquitecturas orientadas a servicios (SOA). De esta forma nace el concepto de servicios semánticos (semantic services) o directamente SOA Semántica, con el objetivo de introducir significado a la descripción de servicios para lograr un mejor procesamiento automático.

SOA semántica

En la referencia [1] se detallan los aspectos más relevantes a la hora de incorporar una estructura que facilite la detección y sincronización de servicios, obteniendo así una SOA semántica.

Por un lado, debe estar disponible el descubrimiento de servicios. Dentro de la web semántica, un agente de software debe poder encontrar un servicio y a partir de la descripción del mismo poder determinar su propósito y objetivo.

Luego, debe reconocer cómo invocar dicho servicio y conocer y entender su interfaz pública. Esto incluye deducir qué parámetros de entrada son requeridos por el servicio, y a su vez, cómo se devolverán los resultados. Estos conceptos, como es natural en SOA, deben escalar no sólo a la invocación de un único servicio, sino a la combinación de varios para lograr un resultado en común.

Finalmente, se debe contar con la capacidad de monitorear la ejecución de un servicio. En especial este aspecto es útil en aquellos procesos que requieren mucho tiempo de procesamiento y es necesario conocer su status actual en un momento dado.

Como vemos, los beneficios de la SOA semántica son importantes: se fomenta la capacidad automática de descubrir, invocar, combinar y monitorear servicios. Como ejemplo trivial, podría construirse fácilmente un servicio que se encargue de organizar las vacaciones familiares de manera automática, desde reservas de vuelo, hospedaje, y auto de alquiler.

Herramientas y propuestas

Falta todavía maduración y tiempo para que la SOA semántica sea una realidad. Sin embargo, existen algunas propuestas destacables. Algunas aproximaciones trasladaron el concepto de especificaciones RDF (Resource Description Framework) de la web semántica a servicios. Por ejemplo, el sitio http://musicbrainz.org provee una API con servicios semánticos basada en estas especificaciones.

Por otro lado, el lenguaje basado en markup de DARPA, conocido como DAML, es un intento más ambicioso y poderoso. Esta especificación está conectada con una ontología de servicios web denominada DAML-S, la cual provee una estructura de significado en común. La ventaja de DMAL es que provee al desarrollador de un mayor poder expresivo para describir la funcionalidad y objetivos de cada servicio.

Finalmente, el framework Services Modeling (WSMF) propone diversas facilidades para enriquecer la descripción de los servicios dentro de una arquitectura SOA.

No hay que perder de vista los avances dentro de la SOA semántica. Para tal fin se recomienda visitar periódicamente dos sitios. El primero, www.w3.org/2001/sw, aglutina todas las especificaciones formales respecto a servicios semánticos. El segundo, en www.daml.org, contiene una descripción de ontologías, herramientas y demás recursos de utilidad para introducir significado en la utilización de servicios.

Referencias

[1] http://soa.sys-con.com/node/39631