cerrar-sesion editar-perfil marker video calendario monitor periodico fax rss twitter facebook google-plus linkedin alarma circulo-derecha abajo derecha izquierda mover-vertical candado usuario email lupa exito mapa email2 telefono etiqueta

400410403. SOA con capacidades semánticas

Escrito por Redacción en Tema de portada
no hay comentarios Haz tu comentario
Imagen de logotipo de facebook Imagen de logotipo de Twitter Imagen de Logotipo de Google+ Imagen de logotipo de Linkedin

Las arquitecturas orientadas a servicios no son nuevas. Las ideas subyacentes de encapsulado, independencia de localización y programación por contacto se han venido utilizando desde que se hizo evidente que había que minimizar las dependencias entre componentes (procesos, objetos y cosas por el estilo). SOA es la encarnación más reciente de estos conceptos en las tecnologías actuales.

Al igual que otros intentos de dar soporte a la intercomunicación del software a gran escala, SOA tiene sus puntos fuertes y sus puntos débiles. Tiene que superar obstáculos de distintas tecnologías, protocolos de comunicación y Calidad de Servicio (QoS). Si estamos familiarizados con conceptos actuales de computación para empresas distribuida (como CORBA o DCOM), los elementos que componen la arquitectura SOA tienen analogías claras con las tecnologías más antiguas.

Para resumir, SOA es un instrumento mediante el cual una agrupación distribuida y heterogénea de hardware y software puede intercambiar información para satisfacer un objetivo empresarial.


La principal razón de ser de SOA es mejorar la agilidad de las empresas – permitiendo que las organizaciones se adapten a los cambios con la mayor rapidez posible. Para lograrlo, la empresa ha de adoptar políticas que favorezcan la agilidad, como por ejemplo:- Consolidando la lógica y los datos de la empresa. Los componentes que son utilizados por distintos grupos para, esencialmente, el mismo fin deberían consolidarse. Los datos deberían ser consistentes para todos los grupos y empleados de forma consistente.
– Potenciando los sistemas existentes. Los sistemas que ya usa la organización para apoyar los objetivos de la empresa deberían potenciarse para satisfacer la necesidad comercial actual.

Para cumplir con las motivaciones de la empresa, SOA adopta ciertos principios de diseño:- Basado en servicios. El elemento fundamental en la arquitectura SOA es el “servicio”. Un servicio tiene ciertas responsabilidades que pueden ser usadas por el resto de la compañía.
– Débilmente acoplado. El cliente (otros servicios, usuarios finales, o programas externos) que potencia los servicios no tiene por qué ser consciente de cómo éstos cubren sus responsabilidades. Las estructuras internas de datos, las invocaciones a otros servicios, la gestión de transacciones y los requisitos de almacenamiento deberían estar ocultos al cliente.
– Independiente de la localización. El cliente no tiene por qué ser consciente de dónde reside o se ejecuta el servicio.
– Interoperativo. Los servicios deberían poder intercambiar datos entre ellos.
– Combinable. Los servicios deberían ser designados y ejecutados de tal forma que puedan ser combinados para crear nuevos servicios.
– Alineados con la empresa. Los servicios expuestos a los usuarios finales y a programas externos deberían representar la funcionalidad de procesos comerciales. Los inputs/outputs que exponen deberían poder expresarse en términos de necesidades alineadas con la empresa.

Las estrategias que se usan para implementar las SOA siguen siendo temas de discusión e investigación. No obstante, se ha demostrado que ciertas ideas son útiles para más de un proyecto. En particular, los servicios deberían existir a distintos niveles de granularidad, yendo desde los servicios de procesos comerciales a los servicios de funciones técnicas:- Los servicios de procesos empresariales que dan soporte a los procesos empresariales de usuarios finales o a requisitos de programas externos.
– Los servicios de transacciones empresariales que dan soporte a los servicios de procesos empresariales, abordando la necesidad de mantener la integridad transaccional.
– Los servicios de funciones empresariales utilizados por múltiples servicios de procesos o transacciones empresariales para cumplir con una necesidad empresarial. Estos servicios encapsulan la más pequeña funcionalidad relacionada con la empresa que pueda ser usada por otros servicios.
– Los servicios de funciones técnicas que son independientes de las necesidades empresariales, pero son necesarios para satisfacer los requisitos funcionales y no funcionales.

Al alinear las SOA y la Gestión de Procesos Empresariales (BPM, por sus siglas en inglés), la captura y correlación de eventos empresariales se convierte en habilitador de agilidad. Al acercar las tendencias a la consciencia de quienes toman decisiones o al poseer la inteligencia para actuar en base a una tendencia empresarial mejora la agilidad de la arquitectura y la agilidad de la empresa. En el centro del debate hay dos enfoques empresariales sobre la gestión de eventos:- La Gestión de Eventos Empresariales (BEM, por sus siglas en inglés) captura eventos en tiempo real. Cuando encuentra coincidencias en patrones, BEM lo notifica a un responsable de tomar decisiones para que actúe en consecuencia.
– El Procesamiento de Eventos Complejo (CEP, por sus siglas en inglés) correlaciona los eventos y orquesta una respuesta de forma automática. En general, para orquestar una respuesta que tenga significado comercial sin intervención humana, se necesita un conocimiento semántico del dominio.

Procesamiento semántico

Puesto que dar satisfacción a las necesidades de las empresas define el valor de la Tecnología de la información (TI), es evidente que para que las empresas sean ágiles tienen que disponer de una tecnología fundamental, capaz de tomar decisiones. Esta es la motivación esencial para introducir el “procesamiento semántico” a las TI.

El procesamiento semántico, que expresa las relaciones entre conceptos representadas en sentencias, es tema favorito de investigación entre académicos y en el sector tecnológico. El constante deseo de que el software pueda inferir información a partir de un contexto es uno de los objetivos de la inteligencia artificial. El análisis semántico se ha estudiado en el contexto de:- Procesamiento de lenguajes naturales. Reconocimiento de texto y voz (traducción de lenguajes, por ejemplo)- Correlación y extracción de datos. Análisis de tendencias (para el almacenamiento de datos, la detección de amenazas, etc.)- Búsquedas temáticas. Búsquedas refinadas y consultas que incentivan la consciencia del contexto empresarial.

De igual modo, se han propuesto Arquitecturas Semánticas Orientadas a Servicios (SSOA, por su acrónimo en inglés). SSOA introduce mejoras semánticas a servicios, de forma que un agente consciente del modelo semántico puede combinar servicios de forma dinámica para satisfacer los objetivos empresariales.

Por ejemplo, IBM usa procesamiento semántico en su software Websphere Business Fabric (www-306.ibm.com/software/solutions/soa/servicesfabric.html), y Software AG hace lo mismo con su Information Integrator (www.softwareag.com/Corporate/products/cv/inf_int). Progress Software se ha asociado con Microsoft para ofrecer su Plataforma de Procesamiento de Eventos Progress Apama como un componente de la suite de Microsoft “Markets in Financial Instruments Directive” (Mercados en la Directiva de Instrumentos Financieros).. Semagix (comprada hace poco por Fortent) usaba su Tecnología para el Incentivo de la Semántica (“Semantic Enhancement Technology”) para crear una plataforma SSOA con el fin de compilar una aplicación para la detección de blanqueo de dinero, denominada “CIRAS” (acrónimo en inglés para “Identificación del Cliente y Evaluación de Riesgos”). Y Ontology Works (www.ontologyworks.com) está implicada en un proyecto con la NASA para crear una SSOA para su uso interno (www.semantic-conference.com).

Pero antes de discutir el análisis semántico en un entorno SOA, podría resultar útil entender primero los términos relativos. Las definiciones asumen que existe un vocabulario (formalmente, un vocabulario controlado) para un dominio de interés.
– Taxonomía. Un programa de clasificación que usa relaciones padre-hijo o asociativas, entre los términos.
– Ontología. Tanto el vocabulario como un conjunto de reglas formales para combinar elementos, con el fin de expresar algo con significado dentro del dominio. Las taxonomías pueden considerarse como un subconjunto de las ontologías.

Para potenciar los servicios de forma semántica, las ontologías necesitan ser definidas en el dominio de interés. Hay diferentes métodos para crear ontología:- Métodos deterministas, que normalmente implican la creación manual de la ontología. Eso generalmente requiere de herramientas para ayudar a crear ontología en un formato específico. La ontología es creada por expertos en dominios y puede resultar tediosa y llevar mucho tiempo.
– Los métodos estadísticos, que intentan abordar el hecho de que el conocimiento del dominio pueda ser incompleto, incierto o pueda cambiar con el tiempo (cambios en modelos empresariales, por ejemplo). Los métodos estadísticos intentan crear ontologías basadas en muestras de input. Empezando con una ontología inicial, se hace un muestreo con los documentos pertinentes asociados a un concepto en particular. Mediante una técnica como las redes Bayesianas (www.ddj.com/dept/architect/184406064) para ampliar la Lógica de Primer Orden de un lenguaje como Web Ontology Language (OWL), se asocian los inputs a tipos o subtipos mediante el uso de probabilidades condicionales. La inferencia se usa para sugerir la adición o eliminación de nodos y hojas.

Web semántica

Una implementación en el mundo real de análisis semántico es la Semantic Web (www.w3.org/2001/sw) o Web Semántica, a la que a veces se la denomina “Web 3.0”, que introduce un análisis interpretativo para las vastas cantidades de información disponible en la World Wide Web. Cuando se logra este objetivo, los autores deben aumentar los datos existentes de una manera formal, que permita a las máquinas interpretar la información sin ambigüedad.

Por ejemplo, el significado de “hand” es sensible al contexto. Por lo tanto, la ontología debe, de alguna forma, representar las distintas maneras en que puede ser usada esa palabra. La Web Semántica, como lo propone W3C, ofrece dos mecanismos para manejar la información semántica y la creación de la ontología: Resource Definition Framework (RDF) y Web Ontology Language (OWL).

Resource Definition Framework (www.w3.org/RDF) es un medio para crear asociaciones simples entre elementos. RDF introduce un 3-tuple (triple) para definir asociaciones entre recursos, de forma similar a la estructura de sentencias:- Sujeto: Un recurso como lo define una URI.
– Predicado: Indica el tipo de relación entre sujeto y objeto.
– Objeto: El recurso que es el final que termina la relación.

Dicho de otra manera, un recurso (sujeto) tiene una propiedad (predicado) dada por otro recurso (objeto). No hay restricción sobre el número de objetos asociados con un sujeto. Es decir, un recurso puede tener múltiples recursos como propiedades. Por ejemplo, el Listado número 1 usa RDF para definir un sitio web con dos co-autores. Los triples RDF pueden estar representados por grafos orientados como el de la Figura 1.

Web Ontology Language (www.w3.org/TR/owl-features ) es un lenguaje formal para especificar recursos y sus relaciones. OWL se compila sobre RDF, y soporta una serie de relaciones matemáticas entre recursos.

OWL tiene varias versiones. OWL Full es una extensión de RDF para proporcionar un lenguaje formal de ontologías. OWL Descriptive Logic (OWL DL) soporta semánticas que se pueden expresar como Lógica de Primer Orden. OWL Lite es una versión de OWL DL construida para facilitar la implementación.

Implementación SSOA

Lo que he estado comentando hasta ahora puede llevar a la conclusión de que para implementar SSOA hay que crear una ontología específica para dominios, servicios potenciados con semántica y ofrecer un mecanismo que sea consciente del proceso, como un motor de Business Process Execution Language (BPEL), eso incentiva a las extensiones de ontología y semántica para construir procesos empresariales. RDF y OWL surgen, pues, como un instrumento para dar más capacidades a SSOA.

La potenciación semántica de los servicios implica la inclusión de meta-datos en la definición del servicio. Esto se puede hacer dentro de la definición del servicio o dentro de la infraestructura de descubrimiento del servicio. En un entorno de servicios web, se pueden usar las extensiones a WSDL, o se puede ampliar la UDDI para ofrecer detalles adicionales a nivel semántico.

Como sugiere el deseo de incluir BEM y CEP, el objetivo último de SSOA es la creación y gestión dinámicas de los procesos. Se pueden usar métodos deterministas, estadísticos e híbridos para crear procesos con el despliegue, o en el momento de ejecución. Se están estudiando una serie de métodos.

La creación determinista de procesos se puede representar en un diagrama de actividades, y se puede conseguir creando plantillas de procesos con un lenguaje específico de procesos empresariales, como BPEL o el Lenguaje de Modelado de Procesos Empresariales (BPML). La plantilla de procesos especifica los estados de inicio y finalización, además de una secuencia de actividades que ocurren durante el proceso. Las implementaciones de los servicios no están definidas en la plantilla, sino que van ligadas a los servicios en el momento del despliegue o en el de ejecución.

El mecanismo de ligado al servicio puede usar un sistema de clasificación para determinar el mejor servicio para la actividad en un contexto dado. Como ejemplo, se puede ponderar la importancia relativa del recurso (véase RDF). Una suma ponderada sobre las propiedades nos conduce al mejor servicio de entre los candidatos para esa actividad. De esta forma, se pueden definir propiedades tales como QoS para seleccionar el servicio adecuado.

La creación de procesos estadísticos pretende descubrir procesos mediante la inferencia de eventos empresariales. En este método, los procesos candidatos se determinan usando información de entrada/salida y probabilidades basadas en la correlación de eventos empresariales. Dada la información de entrada, se calculan las probabilidades para actividades que puedan satisfacer los requisitos de salida. Ello requiere de servicios de razonamiento ontológico, como las redes Bayesianas o el razonamiento basado en casos. El tema continúa siendo un área de debate e investigación.

Conclusión

Mientras que está claro que SOA puede tomarse como una reinvención de conceptos más antiguos de programación a nivel de empresa, la introducción del procesamiento semántico es una labor que engarza las matemáticas con la inteligencia artificial para permitir el análisis y la interpretación basados en máquinas. Los fundamentos de esto último han sido proporcionados mediante los trabajos realizados en Semantic Web y, más generalmente, el análisis semántico en otros campos. En el área empresarial, el uso de motores de razonamiento como parte del procesado en tiempo real sigue estando en pañales. Las instituciones académicas y del sector están tomando la iniciativa en la tecnología empresarial con mayores capacidades semánticas.

Para más información, véase:
Rong Pan, Zhongli Ding, Yang Yu, Yun Peng. “A Bayesian Network Approach to Ontology Mappings” (ebi.seu.edu.cn/ISWC2005/papers/3729/37290563.pdf).

Rama Akkiraju, Richard Goodwin, Prashant Doshi, Sascha Roeder. “A Method for Semantically Enhancing the Service Discovery Capabilities of UDDI” (www.isi.edu/infoagents/workshops/ijcai03/papers/Akkiraju-SemanticUDDI-IJCA%202003.pdf ).

Alexandra Galatescu, Taisia Greceanu. “Ontology-Driven Improvement of Business Process Quality” (www.i3s.unice.fr/odbis2005/Ontology-driven%20Improvement.pdf ).

Martin Hepp, Frank Leymann, Chris Bussler, John Domingue, Alexander Wahler, Dieter Fensel. “Semantic Business Process Management: Using Semantic Web Services for Business Process Management” (dip.semanticweb.org/documents/Hepp-et-al-Semantic-Business-Process-Management-Using-Semantic-Web-Services-for-Business-Pro.pdf ).

Mathieu d’Aquin, Jean Lieber, Amedeo Napoli. “Decentralized Case-Based Reasoning for the Semantic Web” (www.loria.fr/equipes/orpailleur/Documents/daquin05b.pdf ).

Juhnyoung Lee, Richard Goodwin, Rama Akkiraju, Anand Ranganathan, Kunal Verma, SweeFen Goh. “Towards Enterprise-Scale Ontology Management” (uk.builder.com/whitepapers/0,39026692,60132313p-39000926q,00.htm ).

Pavel Hruby. “Ontology-Based Domain-Driven Design” (www.softmetaware.com/oopsla2005/hruby.pdf ).

Brand Neimann. “Data Reference Model: Update on Status.” (web.gov/scope03072005.ppt).

Paulo Cesar G. da Costa, Kathryn B. Laskey, Kenneth J. Laskey. “PR-OWL: A Bayesian Ontology Language for the Semantic Web” (ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-173/paper3.pdf ).

Shashi Kant, Evangelos Mamas. “Statistical Reasoning: A Foundation for Semantic Web Reasoning” (ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-173/pos_paper6.pdf ). DDJ

(Arunava Chatterjee es un directivo de BearingPoint que trabaja con SOA y Arquitecturas para Empresas de Java. Es doctor en física por la Universidad Estatal de Florida y se puede contactar con él en la siguiente dirección: [chatterjeeb@yahoo.com .)]

Etiquetas

Noticias relacionadas

Comentarios

No hay comentarios.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Debes haber iniciado sesión para comentar una noticia.