Creación de aplicaciones Web inteligentes para un mundo más inteligente

Actualmente, se están desarrollando aplicaciones basadas en Internet para casi todas las industrias, brindando servicios online a los cuales las personas pueden acceder en cualquier momento y lugar. Estos servicios comprenden de enseñanza online a compras virtuales, y ayudan a las personas a realizar sus tareas de una manera fácil y cómoda. Los sistemas basados en Internet son atractivos porque no tienen restricciones de plataforma y requisitos de instalación. Con la aparición de Web 2.0, ha surgido un fuerte impulso por construir aplicaciones Web inteligentes que suministren servicios más inteligentes. Este artículo describir una arquitectura para aplicaciones inteligentes basadas en Web y detalla cada componente que integra la aplicación, incluyendo detalles de implementación.

Krish Ramachandran, IT Specialist, IBM

Krish Ramachandran es especialista en TI en el IBM Pacific Development Center (PDC) en Burnaby, BC, Canadá. La investigación de su postgrado se focalizó en diseñar interfaces de usuario adaptables para el dominio de asistencia médica, en particular para educar a pacientes. Publicó su trabajo sobre el desarrollo de sistemas adaptables para la educación de pacientes en conferencias internacionales. Anteriormente trabajó en proyectos relacionados con asistencia médica, específicamente en el proyecto de asistencia médica Panorama en el centro PDC.



03-08-2011

Uno de los objetivos principales de la iniciativa “Un mundo más inteligente” de IBM es construir aplicaciones Web inteligentes que ayuden a los clientes a mejorar sus negocios. Una aplicación inteligente basada en Web puede analizar y razonar usando sus datos para deducir más información acerca de un servicio o un usuario en particular. Estos datos se cargarán inicialmente con valores básicos, y se modificarán durante un período de tiempo a medida que los usuarios comiencen a usar la aplicación. Actualmente, han surgido varias tecnologías que ayudan a construir aplicaciones Web inteligentes, y se está avanzando en ese sentido, pero aún queda mucho por hacer.

Aplicaciones Web inteligentes: orientadas a los usuarios

Hoy en día, la mayoría de las aplicaciones Web se focalizan principalmente en los requisitos del negocio, concentrándose menos en los usuarios. Una aplicación Web inteligente debe estar centrada en los usuarios, con los requisitos del negocio reflejando la satisfacción de los usuarios. Un enfoque de estas características suministrará servicios eficaces a diferentes tipos de usuarios en una variedad de dominios de aplicaciones, cambiando la experiencia de los usuarios y la accesibilidad de los mismos. Estos cambios permitirán que las aplicaciones Web sean utilizadas por cualquier usuario, incluyendo aquellos con dificultades físicas, comprendiendo al usuario y brindando servicios basados en las preferencias del usuario y también en sus limitaciones. Se puede diseñar una aplicación Web inteligente usando interfaz de usuario adaptable, lógica de procesamiento inteligente y base de conocimiento definida semánticamente.

Las interfaces de usuario se pueden adaptar para los diferentes usuarios, ayudándolos a cumplir sus tareas con facilidad. Estas adaptaciones asisten a una amplia gama de usuarios que abarca de usuarios comunes, avanzados a discapacitados. La información presentada al usuario se puede adaptar según el perfil, las preferencias o las limitaciones del usuario.

Las preferencias del usuario probablemente no sean estáticas, y varíen según los servicios y el estado actual del sistema. Se puede suministrar una adaptación condicional provista por un motor de reglas que invoque reglas en las situaciones adecuadas, según el modelo de usuario. La relación entre el usuario y la información presentada es vital para el éxito de cualquier aplicación inteligente. Las reglas son unidades más pequeñas que representan esas relaciones o requisitos del negocio entre los datos y el usuario. Dichas reglas se pueden agrupar por categorías, y aplicarse también de manera colectiva.

Una base de conocimiento exhaustiva y bien definida es esencial para adaptar la interfaz de usuario al usuario específico. Esta base de conocimiento debe tener la semántica adecuada, con relaciones definidas entre la información, los usuarios y los servicios. La aplicación puede usar una representación semántica de los datos para hacer deducciones sobre el usuario cuando fuera apropiado.


Aplicaciones Web más inteligentes

Esta sección describe algunas de las metodologías que usted puede usar para hacer que las aplicaciones Web sean más inteligentes.

Usabilidad

La usabilidad se refiere a la facilidad con la cual los usuarios pueden ejecutar las tareas deseadas en una aplicación. Es muy importante efectuar una revisión de usabilidad apropiada antes de comenzar con el desarrollo real. Algunas de las referencias comunes para las revisiones de usabilidad son los estándares ISO, ISO 16982 e ISO 9241. Estos estándares se pueden usar como plantilla con un grupo de preguntas que pueden medir la facilidad y la comodidad del usuario al momento de ejecutar diferentes tareas.

Accesibilidad

La accesibilidad es el grado con el cual la mayor cantidad de usuarios posibles puede acceder a una aplicación. Esto también ayuda a ampliar los negocios y generar más ingresos al alojar la mayor cantidad posible de usuarios. La accesibilidad se puede lograr mediante la construcción de un modelo de usuario que refleje las características del usuario y personalice las interacciones según este modelo. Para los usuarios con discapacidades físicas, este modelo refleja el tipo de discapacidad, y personaliza la interfaz de usuario con las interacciones específicas que ayuden a estos usuarios a ejecutar sus tareas. Algunas de las referencias comunes para las revisiones de accesibilidad se basan en las Pautas de Accesibilidad para Herramientas de Autor (Authoring Tool Accessibility Guidelines o ATAG), Pautas de Accesibilidad al Contenido en la Web (Content Accessibility Guidelines o WTAG), y Pautas de Accesibilidad para Agentes de Usuario (User Agent Accessibility Guidelines o UAAG). Estas pautas permiten comprender profundamente la ejecución de revisiones de accesibilidad de manera tal que su aplicación sea lo más accesible posible.

Adaptabilidad

Adaptabilidad es la habilidad de una aplicación Web para personalizar sus contenidos y servicios con respecto a un usuario en particular. Distintos aspectos de una aplicación Web se pueden adaptar a los usuarios, como por ejemplo la interfaz de usuario, la presentación y la navegación. Es importante asegurarse que se realice la personalización correcta para los usuarios adecuados del sistema. Esto ayuda a los usuarios a ejecutar sus tareas fácilmente, y también mejora el interés del usuario en la aplicación.


Creación de las aplicaciones Web inteligentes

Ahora es momento de explorar cómo construir aplicaciones Web inteligentes. Considerar una aplicación de e-learning que presente sus contenidos adaptándolos a las necesidades del usuario.

SOA

Usando una Arquitectura orientada a servicios (SOA), usted puede extraer los servicios de la aplicación y definir las interfaces que se pueden usar para invocar a dichos servicios. Algunos de los servicios básicos de una aplicación de e-learning son los siguientes:

  • Administrador del perfil de usuario
  • Administrador de aprendizaje
  • Gestor de pruebas

Usted puede definir estos servicios en un archivo de Lenguaje de Descripción de servicios web (WSDL) de manera tal que la aplicación que llama sepa dónde y cuándo invocar los servicios. WSDL es un servicio web estándar que se puede usar para describir servicios web.

Diseño de módulos adaptables

La actividad de aprendizaje y las pruebas del usuario se pueden adaptar a sus preferencias. Por ejemplo, los usuarios que prefieren la lectura, pueden leer el texto, mientras que los usuarios que prefieran el sonido pueden escuchar la información. Los usuarios también pueden tener preferencias en términos de interfaz de usuario. Algunos usuarios tal vez prefieran interfaces simples, en tanto que otros quizás prefieran interfaces del tipo panel de control con información adicional. El administrador de aprendizaje es el encargado de crear una interfaz de usuario-alumno según las preferencias del usuario, y presentar conceptos basados en el estilo de aprendizaje del usuario. Las funciones clave de un gestor de pruebas consisten en brindar pruebas adaptables de un concepto específico, y adaptar la interfaz de prueba al usuario.

Representación de datos semánticos

La información a presentar se puede definir semánticamente para que se adapte a las preferencias del usuario. Esto asegura que se esté presentando al usuario el tipo adecuado de información y se puede lograr usando un Marco de Descripción de Recursos (Resource Description Framework o RDF), que es un estándar para definir recursos.

Un ejemplo de esta representación de datos semánticos se muestra en el siguiente código:

<item
                rdf:about="http://dbpedia.org/resource/Computer"> Computer
                </item>

En este ejemplo, el ítem 'computer' se describe en la ubicación 'http://dbpedia.org/resource/Computer.'

Motor de reglas

Se pueden definir reglas para personalizar la aplicación para un usuario específico. Algunas de las aplicaciones del motor de reglas pueden servir para determinar el orden de los temas a presentar, integrando la interfaz según las preferencias del alumno, etc. Los motores de reglas generalmente se construyen como subprocesos separados de manera tal que se ejecuten todo el tiempo.

Un ejemplo de regla sería:

If (learn-pref = 'text') Then learn-ui = 'readable-ui'

Esta regla especifica que si la preferencia de aprendizaje (learn-pref) del usuario es información de texto (text), entonces la aplicación deberá integrar la interfaz de usuario principalmente con elementos de texto (readable-ui).

Una interfaz de usuario adaptable y enriquecida

Uno de los requisitos para la aplicación Web inteligente es contar con una interfaz de usuario adaptable. La interfaz deberá adaptarse a los diferentes tipos de información que puede integrar un tema determinado según el perfil y las preferencias del usuario. La interfaz de usuario enriquecida es un requisito básico para la mayoría de las aplicaciones Web que se usan actualmente. Se brindan funciones avanzadas como actualizar regiones específicas en una página, completar automáticamente, etc. como parte de los marcos basados en JavaScript asincrónico + XML (Ajax). Hay varios marcos de interfaz de usuario disponibles para el desarrollo de una interfaz de usuario adaptable y enriquecida, incluyendo Websphere® Portal, JSF, Richfaces, Struts y Tapestry.

Arquitectura del sistema

Esta sección ofrece una visión de más alto nivel Model-View-Controller (MVC) de una aplicación Web inteligente, y describe los módulos centrales en la presentación, el procesamiento y las capas de acceso de datos.

Figura 1. Arquitectura MVC de una aplicación Web inteligente
Arquitectura MVC de una aplicación Web inteligente

Capa de acceso de datos

La capa de acceso de datos suministra un almacenamiento de datos semánticos, un perfil de usuario y la base de datos de reglas.

El almacenamiento de datos semánticos corresponde a la representación semántica de los datos de aplicaciones. Una diferencia importante entre la mayoría de las aplicaciones Web actuales y las aplicaciones Web inteligentes es que la representación de datos en una aplicación Web inteligente se define semánticamente y no sólo lógicamente.

El perfil de usuario almacena las preferencias del usuario en términos de preferencia de contenidos y preferencia de interfaz de usuario, como así también detalles del usuario como edad, género, etc.

La base de datos de reglas almacena el conjunto de reglas que vincula las preferencias del usuario o el perfil de usuario a los contenidos, las interfaces de usuario y los temas en la aplicación.

Los datos de la aplicación, sus relaciones, perfiles de usuario, preferencias y reglas se pueden almacenar usando cualquier base de datos relacional como DB2®, Oracle, etc.

Capa de procesamiento

La capa de procesamiento suministra el intérprete de reglas y también el motor adaptable.

El intérprete de reglas lee las reglas almacenadas en la base de datos y las activa adecuadamente según el estado del usuario en el sistema. El estado de un usuario se puede definir según el tema/subtema actual, el desempeño en temas, etc.

El motor adaptable cumple la función de adaptar la presentación y la navegación a las preferencias del usuario y las reglas, como así también al estado del usuario en la aplicación.

El intérprete de reglas y el motor adaptable se pueden implementar usando leguaje estándar orientado a objetos como código Java,™ C++, .NET, etc., con subprocesos o temporizadores que se pueden usar para aplicar una regla específica en el escenario adecuado.

Capa de presentación

La capa de presentación suministra la interfaz de usuario y la presentación y navegación adaptables.

La interfaz de usuario en una aplicación Web inteligente deberá ser lo suficientemente flexible como para crear la página según los elementos de presentación y navegación disponibles en lugar de un diseño de página fijo como ocurren con la mayoría de las aplicaciones Web actuales.

La presentación adaptable se encarga de adaptar los contenidos de la página según el perfil y las preferencias del usuario.

La función de la navegación adaptable es adaptar los elementos y los escenarios de navegación según el perfil y las preferencias del usuario.

Una interfaz de usuario adaptable con presentación adaptable y navegación adaptables se puede implementar usando un marco de interfaz de usuario avanzado como Websphere Portal, JSF, Struts o Tapestry, brindando capacidades dinámicas para adaptar los contenidos de la interfaz de usuario a los diferentes usuarios en variados escenarios.


Conclusión

Las aplicaciones Web inteligentes proveen servicios personalizados al usuario en lugar de brindar un servicio similar a todos los usuarios, como ocurre con las aplicaciones Web convencionales. Algunos de los aspectos más significativos de estas aplicaciones inteligentes son la incorporación de la adaptabilidad, la mejora en la experiencia del usuario y la posibilidad de que distintas clases de usuarios puedan acceder a ellas. Están surgiendo nuevas tecnologías para impulsar las aplicaciones Web hacia funciones más inteligentes, dando comienzo así a la revolución que hará que las aplicaciones Web sean cada vez más inteligentes.

Recursos

Aprender

Obtener los productos y tecnologías

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere
ArticleID=463809
ArticleTitle=Creación de aplicaciones Web inteligentes para un mundo más inteligente
publish-date=08032011