SciELO - Scientific Electronic Library Online

 
vol.23 issue3Proposal of a methodology for management of science and innovation in Cuban municipal universityLearned lessons from the Cuban scientific production at the beggining of the XXI century author indexsubject indexarticles search
Home Pagealphabetic serial listing  

My SciELO

Services on Demand

Journal

Article

Indicators

  • Have no cited articlesCited by SciELO

Related links

  • Have no similar articlesSimilars in SciELO

Share


ACIMED

Print version ISSN 1024-9435

ACIMED vol.23 no.3 Ciudad de La Habana July-Sept. 2012

 

CONTRIBUCIONES CORTAS

SI-Holmes: aplicación compuesta para la gestión de sistemas basados en conocimiento



SI-Holmes: compound application for the management of systems based on knowledge



Ing. Orestes Febles Díaz, Ing. Juan Pedro Febles Rodríguez, Ing. Vivian Estrada Sentí, Ing. Iskael Díaz Márquez

Universidad de las Ciencias Informáticas. La Habana, Cuba.




RESUMEN

Uno de los principales desafíos que presenta el desarrollo de aplicaciones informáticas en la actualidad es lograr respuestas ágiles ante los cambios del negocio a través de la reutilización de recursos. La combinación de activos de software mediante el ensamblaje de componentes, donde los usuarios puedan modificar funcionalidades específicas, es conocida como aplicaciones compuestas, las cuales cumplen con una vieja aspiración, pues permiten componer y rehusar capacidades de negocios que se encuentran separadas en módulos. Existe un conjunto de tecnologías que se han ido desarrollando y que han modificado las formas tradicionales de construcción de aplicaciones e influyen en que la composición se convierta en un aspecto cada vez más importante para la creación de lógica de negocios. En este artículo los autores analizan fundamentos y ventajas del uso de aplicaciones compuestas basadas en los principios de la orientación a servicios y lo aplican al desarrollo de una aplicación que gestiona sistemas basados en conocimiento. Como una aplicación compuesta se presenta la herramienta Si-Holmes para la gestión de sistemas basados en conocimiento, la cual consume información disponible en otras aplicaciones, tanto para la gestión de bases de casos como para la visualización de los resultados. Es una herramienta de gran utilidad para el procesamiento de la información y el conocimiento como apoyo en la toma de decisiones.

Palabras clave: aplicaciones compuestas, razonamiento basado en casos, sistemas basados en conocimiento, arquitectura orientada a servicios.


ABSTRACT

One of the main challenges that presents the development of computer applications at the present time is to achieve agile answers in the face of the changes of the business through the reutilización of resources. The combination of active of software by means of the assembling of components, where the users can modify specific functionalities, it is known as compound applications, which fulfill an old aspiration, because they allow to compose and to refuse capacities of business that are separated in modules. A group of technologies that exists have developed and modified the traditional forms of construction of applications, and they influence in that the composition becomes in a more and more important aspect for the creation of logic of business. In this article the authors analyze basicses and advantages of the use of compound applications based on the principles from the orientation to services and they apply it to the development of an application that negotiates systems based on knowledge. As a compound application, the tool If-Holmes was showed up for the management of systems based on knowledge, which consumes available information in other applications, as much for the management of bases of cases for the visualization of the results. It is a tool of great utility for the prosecution of the information and the knowledge like support in the taking of decisions.

key words: compound applications, reasoning based on cases, systems based on knowledge, architecture guided to services.




INTRODUCCIÓN

Las implementaciones de sistemas de soluciones complejas arrastran, desde hace muchos años, los mismos inconvenientes para las organizaciones: costos desbordantes, plazos incumplibles y resultados difíciles de predecir. Las compañías buscan realizar inversiones en tecnología de la información que perduren en el tiempo, que respondan a las exigencias planteadas y que, además, cuenten con la flexibilidad suficiente para su evolución.

El cambio que se produjo en la economía mundial después del nacimiento de la era computacional repercutió grandemente en los mercados; la economía se basó mucho más en los servicios, y la computadora alcanzó protagonismo como medio para obtenerlos. Estos servicios en sus inicios eran programas o aplicaciones informáticas diseñadas para facilitar al usuario la realización de uno o varios tipos de trabajo y estos fueron evolucionando y aumentando las experiencias de los usuarios.

En este trabajo los autores se apoyan en conceptos actuales del diseño y desarrollo de software para exponer una intersección entre la orientación a servicios y el paradigma de composición de aplicaciones para la construcción de una aplicación informática compuesta que gestione sistemas basados en conocimiento. Esta aplicación puede emplearse en el campo científico, económico, docente, médico, entre otros. Su principal aporte es la combinación acertada de tecnologías bajo los principios de diseño que le permitan, no solo ejecutarse como aplicación aislada, sino como funcionalidades integrables en procesos de aplicaciones existentes desarrolladas en cualquier tecnología.



DESARROLLO

La globalización económica, la especialización y el desarrollo de software han potenciado el trabajo colaborativo, por lo que se hace indispensable un cambio en cuanto a las herramientas que los clientes usan para colaborar, tomar decisiones y emprender acciones y así poder sustituir a las aplicaciones independientes, monolíticas y pobremente integradas entre sí por aplicaciones que rehúsen funcionalidades existentes.

En su evolución, las aplicaciones informáticas han tenido varias clasificaciones sobre la base de modelos de desarrollo. Las primeras fueron aplicaciones monolíticas, también conocidas como aplicaciones cliente-cliente, en las que el software se estructuraba en grupos funcionales muy acoplados, involucrando los aspectos referidos a la presentación, el procesamiento y el almacenamiento de la información. Este modelo consumía gran cantidad de recursos y era muy complejo su mantenimiento; y según el criterio de los autores se irá desechando como solución viable por la creciente demanda de aplicaciones y la complejidad de escenarios para la ejecución de estas. Con el propósito de reducir las limitaciones del modelo anterior surge el de aplicaciones distribuidas o cliente-servidor. Ya en este modelo se observaron tres elementos separados en las diferentes capas de la aplicación: la capa de datos, la capa de negocios y la de presentación. Más tarde, a finales de la década de los años 90, con el auge de los servicios y la búsqueda de la interoperabilidad estandarizada entre sistemas, surge un nuevo paradigma: el de aplicaciones compuestas, tal como se resume en la figura 1.


Según Banerjee,1 las aplicaciones compuestas son colecciones de activos de software combinados mediante el ensamblaje de componentes. Incluye las posibilidades de personalización y configuración para que los usuarios puedan modificar funcionalidades específicas en la aplicación. Tienen como objetivo principal brindar eficiencia a los procesos de negocio a través de las 3A: Agilidad, Adaptabilidad y Alineación. Los autores de este trabajo coinciden en que dicha definición debería resaltar alguna característica que distinga este paradigma de aplicaciones de sus antecesores.

Para muchas empresas, fortalecer a los gestores de información para una reacción ágil ante los cambios constantes que sufren los entornos organizacionales es un tema prioritario. Los trabajadores relacionados con la información por mucho tiempo han dependido de la informática para crear procesos y lógica de negocios. Las aplicaciones compuestas pueden construirse basados en cualquier tipo de arquitectura, pero los autores de este trabajo consideran que la arquitectura orientada a servicios (SOA) constituye un entorno idóneo para este tipo de aplicaciones, pues coinciden sus principios y los beneficios que se esperan obtener a partir de ellos.



APLICACIONES COMPUESTAS Y ARQUITECTURA ORIENTADA A SERVICIOS

La arquitectura orientada a servicios (SOA, por sus siglas en inglés) ha revolucionado principalmente la manera de adoptar la tecnología; ha surgido como paradigma capaz de soportar la agilidad de los procesos de negocio, lo que ha aumentado la eficacia y la eficiencia de las operaciones de las empresas en el mundo de hoy.2

Según la definición de OASIS,3 consorcio internacional que orienta el desarrollo y la adopción de estándares, SOA es "un paradigma para organizar y utilizar capacidades distribuidas, funciones que pueden estar bajo el control de diferentes dominios, proporcionando un medio uniforme para ofrecer, descubrir y utilizar dichas capacidades de producir los efectos deseados para cubrir una necesidad".

Según la empresa líder de software Microsoft,4 la arquitectura orientada a servicios es una filosofía de diseño que permite un mejor alineamiento de las tecnologías de la información (TI) con las necesidades de negocio, y facilita a empleados, clientes y socios comerciales responder de forma más rápida y adaptarse adecuadamente a las presiones del mercado. SOA supone una estrategia general de organización de los elementos de TI, de forma que una colección de sistemas distribuidos y aplicaciones compuestas se pueda transformar en una red de recursos integrados, simplificada y flexible.

SOA enriquece la concepción y la puesta en práctica de los métodos que la antecedieron y se enfoca en la reusabilidad de sistemas legados, la composición de servicios, procesos de negocio y aplicaciones con el objetivo de una real interoperabilidad.5

Los autores de este trabajo consideran que con la ejecución de iniciativas orientadas a servicios es posible facilitar y mejorar la agilidad empresarial, lo que estimula la liberación del potencial que poseen las aplicaciones y recursos tecnológicos para toda la organización. Se puede afirmar que al adoptar el paradigma SOA se agregan beneficios referentes a la creación de servicios y aplicaciones que coexisten independientemente de la variedad tecnológica, para brindar mayor reusabilidad al conjunto de funcionalidades existentes en la organización. El poder de combinación, composición y reutilización de los servicios estimula la construcción de aplicaciones compuestas que ofrecen soluciones flexibles a las necesidades de la empresa.6

En el mundo de las telecomunicaciones existe una frase común para designar esa pequeña parte de la tecnología que lleva los datos desde el último contacto de un enchufe hasta la caja de electricidad de la vivienda del cliente. Es la llamada «última milla» y generalmente es vista como uno de los mayores desafíos porque este último paso en la cadena tecnológica puede ser un considerable compromiso con el cliente. En la industria del software también existe una «última milla»: se trata de poner la aplicación correcta en las manos del usuario final. Las aplicaciones compuestas son también encargadas de recorrer esta última milla, combinando una interfaz enriquecida con una tecnología de integración orientada a aplicaciones desarrolladas que pueden estar basadas en entornos SOA.



LAS APLICACIONES COMPUESTAS. INTERFACES ENRIQUECIDAS

Un requisito indispensable para el éxito de las aplicaciones compuestas es el uso de tecnologías actuales en su capa de interfaz de usuario que enriquezcan la experiencia de quienes usan estas aplicaciones. En los años 90 y con el desarrollo de Internet, las aplicaciones Web fueron tomando el espacio que antes ocupaban los mainframe y las aplicaciones cliente-servidor. Las razones para este cambio fueron:

  • La facilidad que ofrecían estas nuevas aplicaciones para su distribución y mantenimiento.

  • Las posibilidades de llegar a más público utilizando un único cliente (navegador Web).

  • Se hacía uso de los protocolos de comunicación de Internet, pero aún la experiencia de uso de estas aplicaciones no era tan satisfactoria. El navegador Web obligaba a las aplicaciones a tener un interfaz estático, lo que redundaba en una recarga de página para obtener datos del servidor.

Como resultado del avance vertiginoso de la Web y la necesitad de actualización en tiempo real de las acciones que se ejecutan, surgieron las aplicaciones enriquecidas de Internet: (Rich Internet Applications), que son el resultado del aprovechamiento de las ventajas que brindan las aplicaciones Web y las aplicaciones tradicionales. Son consideradas una nueva generación de aplicaciones, tienen un comportamiento diferente para el usuario que supera inconvenientes de HTML y proporcionan gran versatilidad para los problemas de conexión. Su tiempo de respuesta es mucho mayor que el de las aplicaciones Web convencionales y el tiempo de recarga mucho menor.

A diferencia de las aplicaciones Web habituales, las Rich Internet Applications (RIA) enriquecen la experiencia del usuario a través de interfaces propias de aplicaciones de escritorio, que suelen ser más interactivas y con mayores capacidades gráficas multimedia. Los autores consideran que las tres ventajas principales que introducen estas tecnologías son:

  • Agilidad en la respuesta a las acciones de los usuarios.

  • Existencia de controles prediseñados y funciones gráficas, interactivas y multimedia avanzadas.

  • Para su uso es suficiente la existencia de un navegador Web.

La adopción de nuevos enfoques relacionados con SOA y el desarrollo de aplicaciones que componen sus activos principales por parte de las organizaciones son temas de vital importancia para la introducción de las tecnologías RIA. Un ejemplo son los mashups (también conocidas como aplicaciones híbridas), que obtienen contenido de varias aplicaciones Web para crear algo nuevo, una mezcla interesante de contenidos cuyas características más notables son la combinación, la visualización y la agregación.

Según Michael Ogrinz7 estas son: «aplicaciones compuestas que combinan datos o funcionalidades de dos o más fuentes externas para crear un nuevo servicio, un componente Web que combina contenido y beneficia la experiencia de los usuarios, lo que implica fácil y rápida integración frecuentemente con el uso de APIs (application programming interface) y fuentes de datos como Web feeds y Web scraping para producir resultados superiores a los originales.



APLICACIÓN COMPUESTA PARA LA UTILIZACIÓN DEL RAZONAMIENTO BASADO EN CASOS

La inteligencia artificial es el estudio de técnicas de resolución de problemas de complejidad exponencial, mediante el uso de conocimiento sobre el campo de aplicación del problema.

Para tomar decisiones de manera acertada, el ser humano se remite a su experiencia para comprobar si ha tenido una situación semejante a la actual y le satisface la solución anterior. Mientras mayor cantidad de veces se enfrente a problemas, mayor será la eficacia y la rapidez de la solución.

El razonamiento basado en casos (RBC) es un paradigma de la inteligencia artificial en el cual la solución de un nuevo problema se realiza a partir de las soluciones conocidas para un conjunto de problemas previamente resueltos (o no resueltos) del dominio de aplicación. En este paradigma la base del comportamiento inteligente de un sistema radica en recordar situaciones similares existentes en el pasado, en el cual el razonamiento se realiza a partir de una memoria asociativa que usa un algoritmo para determinar una medida de semejanza entre dos o más objetos.

El RBC tiene aplicación en diferentes ramas del saber, como la medicina, el derecho y la educación, entre otros. Igualmente se ha utilizado el RBC para la enseñanza de temas médicos. Un artículo publicado en la Revista Ingeniería Industrial es un ejemplo en estos propósitos.8

Existen varios softwares para realizar aplicaciones del razonamiento basado en casos en áreas específicas del saber humano. Ellos tienen virtudes y defectos. Los autores de este artículo se decidieron a elaborar uno propio basado en el paradigma de las aplicaciones compuestas, principalmente como herramienta de apoyo a investigaciones que se realizan en Cuba, que requieren análisis de situaciones y sugerencias de un posible comportamiento futuro de manera precisa y clara. El sistema se denominó SI-Holmes, tomando las iniciales del sistema inteligente y agregando el apellido del célebre detective de las historias de Sir Arthur Conan Doyle.


SI-HOLMES

SI-Holmes es una aplicación desarrollada por investigadores de la Universidad de las Ciencias Informáticas entre los que se encuentran los autores de este trabajo. Está implementada bajo el paradigma de aplicaciones compuestas y usando el lenguaje Java cuya fuerza radica en su independencia de la plataforma, su seguridad, su portabilidad, su escalabilidad y en que promueve la reutilización de código. Su logotipo se muestra en la figura 2

El sistema tiene la ventaja de interactuar al mismo tiempo con múltiples bases de casos y con la información incluida (muestra sus nombres, cantidades de rasgos y casos de cada una de ellas) que pueden aparecer almacenadas en Sistemas Gestores de Bases de Datos, ficheros, documentos Excel y que son consumidas mediante el uso de servicios de datos, que le brindan a la aplicación una mayor flexibilidad a su capa de acceso a datos, pues estos servicios pueden ser compuestos en el desarrollo de otras aplicaciones que necesiten reutilizar esta estructura de base de casos. Esta capa, al usar la poderosa noción de servicios de datos, puede ser fácilmente asegurada y gobernada aplicando principios que plantea SOA (fig. 3).

Este sistema posee una interfaz amigable y configurable correspondiente a las aplicaciones RIA que poseen componentes que brindan un enriquecimiento a las actividades y experiencias del usuario final. Las opciones del sistema se encuentran en un menú desplegable que provee las librerías de componentes del Framework Java Server Faces, en combinación con las librerías de componentes Rich Faces y que hacen sentir al usuario como si estuviera frente a una aplicación común de escritorio. Esta herramienta permite crear, modificar, eliminar cualquier base de casos y crear un experto dada una base de casos específica. También tiene la opción de trabajo con ficheros en situaciones en que el usuario necesita hacer una salva de alguna base de casos donde puede exportar o importarla desde un fichero.

Para incorporar un caso dentro de una base de casos, el sistema ofrece una interfaz que es la réplica de la estructura de la base lista para que el usuario enlace el valor final con la lista de posibles valores antes definidos, que no deben ser necesariamente todos, pues los algoritmos implementados por el sistema para definir la distancia entre casos pueden manejar datos ambiguos, vacíos, numéricos y simbólicos.

Para obtener una solución de experto se selecciona el o los rasgos a inferir, se llenan los otros que considere necesarios, se selecciona uno de los algoritmos implementados para la distancia entre casos (HEOM, GOWER, ARGELIO) y el sistema le indicará el resultado de la inferencia brindada por el experto y los casos más cercanos de manera gráfica y a manera de detalles. Esta información es de gran utilidad para la toma de decisiones, pues la posible solución que brinda la obtiene a partir de casos resueltos ocurridos en el pasado. También brinda información sobre los casos que más se parecen a la solución que se oferta y otros datos que pueden ser de utilidad. Un resumen de esto aparece reflejado en la figura 4, donde las barras indican los casos más parecidos al de la solución que se brinda.

Para presentar los gráficos, que permiten mostrar detalladamente la distancia entre los casos en relación con la inferencia realizada por el experto, SI-Holmes extrae la información de otra aplicación que construye diferentes tipos de gráficas a partir de los datos generales y específicos provenientes de los casos analizados.

Esta herramienta ha sido aplicada en la docencia, en el Derecho, en una investigación para el apoyo a la toma de decisiones en el juicio penal en República Dominicana9 y en la evaluación de la introducción de la gestión de la información y el conocimiento económico en la gerencia universitaria en las instituciones de educación superior adscriptas al Ministerio de Educación Superior.10

En otra investigación donde se introduce la aplicación de esta herramienta es en la Unidad de Cuidados Intensivos del Centro de Investigaciones Médico Quirúrgicas CIMEQ, con el objetivo de apoyar la toma de decisiones médicas a la hora de tratar los pacientes que ingresan en estado crítico. Para esto se diseñó una base de casos llamada "Terapia Guiada por Objetivos" para almacenar los datos reales relacionados con los casos ingresados. Esta base de casos contiene una estructura relacionada con las medidas terapéuticas adoptadas (específicamente el apoyo con volumen y con aminas simpáticomiméticas) y rasgos fundamentales que inciden en el logro de una mejoría hemodinámica (una tensión arterial media, una saturación venosa central de oxígeno de 70 % y una presión venosa central entre 8 y 12 cm de agua, y un hematocrito del 30 %) en un lapso de seis horas a partir del ingreso. La información para la definición de la estructura de la base de casos y los datos a almacenar se basa en la experiencia de especialistas del CIMEQ y en los trabajos realizados por Rivers y otros.11

El uso de la herramienta SI- Holmes en este escenario ofrece un análisis de la información y brinda sugerencias sobre la conducta médica a seguir para una terapia guiada por objetivos. Ante un nuevo caso se le suministra a la herramienta los datos básicos del paciente y se van obteniendo sugerencias sobre la posible conducta a seguir, lo cual tiene un importante valor para la toma de decisiones.

Cuando se aplica el razonamiento basado en casos como soporte para la toma de decisiones, la idea básica es construir sistemas cuya principal función sea actuar como un consejero o una memoria externa del tomador de decisiones. Ante un problema nuevo el tomador de decisiones consulta el sistema y este le proporciona un consejo tomando como base casos o situaciones similares a las cuales se hayan enfrentado anteriormente.

SI-Holmes está diseñado bajo los principios de interoperabilidad que defiende SOA, para permitir que la información viaje desde el punto donde se proporciona hasta el punto donde se consume, sin importar las diferencias de la tecnología en que están desarrolladas las aplicaciones consumidoras. En próximas versiones se le agregará una interfaz para dispositivos móviles basada en el sistema operativo Android, donde simplemente cambian los componentes de presentación mientras se reutilizan todas las funcionalidades expuestas como servicios que brindan información para la gestión de conocimiento.



CONCLUSIONES

La combinación entre la orientación flexible que promueve SOA junto al desarrollo de aplicaciones compuestas y la presencia de interfaces enriquecidas aportan muchos beneficios al panorama del desarrollo de aplicaciones. La ubicuidad y reutilización impulsan una transición en la que las aplicaciones se crean con simplicidad, eficiencia y la suficiente funcionalidad para resolver un problema determinado.

El SI-Holmes es una aplicación compuesta para la gestión de sistemas basados en conocimiento que tiene entre sus ventajas la flexibilidad, la interoperabilidad y el ambiente amigable que ofrece a sus usuarios. Se ha comprobado su funcionalidad en aplicaciones a la gestión universitaria, el diagnóstico médico y a sistemas de jurisprudencia, y los resultados obtenidos han sido satisfactorios. El sistema puede ser generalizado para aplicar en cualquier dominio en el que exista una experiencia acumulada y puedan definirse de forma precisa los rasgos y sus valores asociados.

Se recomienda continuar su desarrollo para adaptarlo según exigencias de usuarios de diferentes disciplinas. Además se debería adicionar en el futuro la posibilidad de ponderar los rasgos para lograr mayor incidencia en la variable a inferir, e incorporar el SI-Holmes como software de práctica en las clases de inteligencia artificial.



REFERENCIAS BIBLIOGRÁFICAS

1. Banerjee A. What Are Composite Applications? Archit J. 2006:10.

2. Schneider RD. SaaS, Composite Applications and SOA: Understanding their Differences and Making Them Work Together. SOA Magaz. 2007.

3. OASIS. Reference Architecture for Service Oriented Architecture. 2008 [citado: 9 mayo 2012]. Disponible en: http://docs.oasis-open.org/soa-rm/soa-ra/v1.0/soa-ra-pr-01.html

4. Microsoft. La arquitectura orientada a servicios [Internet]. 2007 [citado: 9 mayo 2012]. Disponible en: http://download.microsoft.com/download/c/2/c/c2ce8a3a-b4df-4a12-ba18-7e050aef3364/070717-Real_World_SOA.pdf

5. Jeremy Bolie MC, Sean C, Praveen Ch, Yves C, Kevin G, Matjaž BJ et al. BPEL Cookbook Best Practices for SOA-based integration and composite applications development. Birmingham: Packt Publishing; 2006.

6. Febles O, Cruz MR, Rodríguez YG. Interoperabilidad entre sistemas usando aplicaciones compuestas. Uciencia 2012. La Habana: 20 al 23 de febrero de 2012 [citado 20 de mayo de 2012]. Disponible en: http://uciencia.uci.cu/es/node/466

7. Ogrinz M. Mashup Patterns Designs and Examples for the Modern Enterprise: Massachusetts Addison Wesley: 2009.

8. Febles JP, Sentí VE. Uso del razonamiento basado en casos para la enseñanza de temas médicos. Rev Ingen Ind ISP "José Antonio Echeverría". 2001;XXIII.

9. Jaquez J. Diseño e implementación de una base de conocimiento de apoyo a la toma de decisiones en el juicio penal de República Dominicana [Tesis de Maestría]. Universidad de La Habana; 2011.

10. León G, Febles O, Estrada V, Febles JP. El razonamiento basado en casos y la determinación del grado de introducción de la gestión de la información y el conocimiento económico en la gerencia de la universidad cubana. Pedagogía Universitaria, 2010:15.

11. Rivers E, Nguyen B, Havstad S, Ressler J, Muzzin A, Knoblich B, et al. Early Goal-Directed Therapy in the Treatment of Severe Sepsis and Septic Shock. N Eng J Med. 2001;345:1368-77.



Recibido: 21 de febrero de 2012.
Aprobado: 4 de julio de 2012.



Ing. Orestes Febles Díaz. Universidad de las Ciencias Informáticas. La Habana, Cuba. Correo electrónico: ofebles@uci.cu