Mashups: Qué Son y Qué No Son

Mashup es una palabra que proviene de un término musical en inglés, que significa la creación de una nueva canción a partir de la mezcla o pedazos de otras canciones. Desde este concepto se basa el mashup de software. La Wikipedia lo define como “una aplicación o sitio web que combina contenido de una o más fuentes dentro de una nueva experiencia de usuario o manejo de información”.Los mashups son un producto de la Web 2.0 donde el usuario es el centro de todo. Va de la mano con conceptos como colaboración y distribución de la información.

Las características que podemos encontrar actualmente en el Web 2.0 son:
> Hecho por el usuario para él mismo.
> Capacidad dinámica de integración de información con otras fuentes.
> Integración concurrente limitada.
> Utilización de servicios Web públicos.
> Orientado al consumidor.

Sin embargo, conforme el Web 2.0 comienza a ser adoptado en las empresas, empezamos a ver su evolución, que llevará a las siguientes características en el futuro:
> Hecho por el usuario para él y compartirlo con más usuarios.
> Capacidad dinámica de compartir e integrar de la misma manera con otras fuentes.
> Utilización tanto de servicios Web públicos, así como servicios internos.
> Orientado hacia la empresa, sus clientes y aliados de negocio.

¿Qué no es un mashup?
Antes de continuar, debemos aclarar dos concepciones erróneas que tienden a existir relacionadas con los mashups. La primera es que un mashup no es un portal. Sin embargo, un portal puede complementarse por un mashup y viceversa.

La segunda aclaración es que un mashup tampoco es una aplicación compuesta (composite application). El término composite application se utiliza para referirse a aplicaciones que en lugar de ser desarrolladas desde cero, son “ensambladas” a partir de servicios disponibles en una arquitectura SOA. Este concepto puede parecer muy similar al de un mashup, sin embargo hay una diferencia crucial: las composite applications parten de un enfoque centrado en TI, mientras que los mashups parten de un enfoque centrado en el usuario. Bajo el modelo de las composite applications, el usuario final sigue dependiendo del departamento de TI para crear una aplicación (aunque ésta solamente se vaya a ensamblar, no a crear). En cambio, con los mashups el objetivo es que sean los usuarios quienes puedan crear (o ensamblar) sus aplicaciones.

¿Por qué mashups?
Las grandes tendencias de desarrollo de software son la reutilización e integración. La mayor parte de los presupuestos de TI para los próximos años estarán asignados al mantenimiento y explotación de los sistemas existentes.

La funcionalidad de los mashups se justifica en base a los siguientes puntos:
> La información disponible en Web y al interior de las empresas crece exponencialmente. Se necesita usar esa información para manipularla de manera rápida y sencilla.
> La información se encuentra distribuida en diferentes fuentes de información.
> Integración dinámica temporal a fuentes de información.
> Integración realizada por el usuario y no necesariamente por el área de sistemas.
> Acceso rápido a la información significa mayor competitividad y productividad.

Clasificación de mashups
Un mashup puede dividirse en dos tipos:
> Orientado hacia el navegador (browser). Está más enfocado en la mezcla o composición de información con imágenes del lado del navegador, principalmente usando Java-Script como lenguaje de programación para lograrlo. Un ejemplo clásico de este tipo de mashups es aquél en que se usa el servicio de Google Maps, con otro servicio, por ejemplo: de precios de casas que muestre en una sola pantalla el precio y la ubicación donde se encuentra una casa en venta.
> Orientado hacia el servidor (mashup empresarial). En éste, la integración y manipulación de la información suceden en ambos lados: servidor y navegador. Su uso principal es interactuar con información de diferentes sistemas para generar vistas necesarias para la toma de decisiones. Este tipo de mashup es capaz de interactuar con data centers para generar valor .

Funcionalidades del mashup empresarial
Estas son algunas de las acciones más comunes que se pueden realizar con un mashup empresarial:
> Filtrar información: en ocasiones un servicio regresa información necesaria para construir una vista y por lo mismo es requerido aplicar un filtro para trabajar con la
información necesaria.
> Conjuntar y unir diversos tipos de servicios de información: con esto nos referimos a la virtualización de los servicios para abstraer la complejidad de consultar o ejecutar operaciones en diversas fuentes de información, como pueden ser base de datos, WSDLs, RSS, etcétera.
> Analizar información resultante de servicios: tener la capacidad para aplicar funciones estadísticas como matemáticas, a los resultados de los servicios invocados. (Vgr. Tomar la información de un servicio que nos da precios de acciones y al resultado de la ejecución de ese servicio poder aplicar una función matemática que nos da el precio máximo de esa acción durante un tiempo determinado).
> Transformar información: soportar tanto estructuras diferentes de información así como formatos diversos.
> Soporte gráfico de información: presentar al usuario final la información a través de tablas, calendarios, gráficos, etcétera.
> Orquestación de servicios: un mashup puede crearse a partir de la ejecución secuencial o en paralelo de varios servicios para la generación de la vista final. Un ejemplo: generar un mashup de la situación financiera de una persona. Por lo mismo necesitamos conectarnos al banco con un servicio “Y” que nos da la información básica de ésta, como sus cuentas y de qué tipo son. Con dicha información, se hace una consulta para conocer cuál es su calificación en el buró de crédito y de ahí generar una vista final.

Arquitectura de un mashup empresarial
Ya definidas las cualidades y funcionalidades de un mashup empresarial, veamos la arquitectura de sus componentes, para así, entender cómo se integran la funcionalidad y los servicios antes mencionados. La figura 1 muestra el ejemplo de una arquitectura para mashups. En este caso, utilizamos como referencia la plataforma Presto de JackBe. ( Ver Figura 1 )

Figura 1. Arquitectura para mashups Presto

En este diagrama se puede ver que el mashup empresarial debe ser capaz de conectarse a cualquier fuente de información (base de datos, servicios Web, objetos Java o .Net) a través del concepto “virtualización de servicios”. De esta forma, las diferentes fuentes de información hacen la base de una estructura fuerte para poder integrar, orquestar, mezclar, transformar y visualizar nuevos servicios.

Caso de uso de un mashup
Usemos ahora un ejemplo específico para entender cómo es que podríamos resolver un problema de negocio a través de un mashup.
Imaginemos que cierto banco requiere que a través de su website de eBanking personal se pueda realizar la venta cruzada de diferentes productos. Un caso particular es el de un producto financiero hipotecario, donde para poder otorgarlo se requiere como entrada el historial crediticio y hábitos de consumo del cliente prospecto. Estos servicios provienen de diferentes fuentes y son de varios tipos: el historial crediticio es de tipo WebService y los hábitos de consumo nos llegan como RSS.

Para resolverlo necesitamos virtualizar estos tipos de servicios, es decir, generar una manera estándar de invocarlos sin importar de qué tipo sean. Esta virtualización puede ser representada a través de un XML como el siguiente:

<Servicios>
<Servicio nombre=”BuroDeCredito” tipo=”WebService”>
<operación nombre=”obtenerHistorialCrediticio”>
<parámetro tipo=”string”
nombre=”numeroDeTarjetaCredito” />
</operación>
</Servicio>

<Servicio nombre=”HabitosConsumo” tipo=”RSS”>
<operación nombre=”consumo”>
<parámetro tipo=”string”
nombre=”numeroDeTarjetaCredito” />
</operación>
</Servicio>
</Servicios>


Así se esconde la complejidad que involucra tener varias fuentes de información; y se tiene una manera estándar de ejecutar y trabajar con sus respuestas.

 

Una vez virtualizados los servicios, se requiere generar un lenguaje que pueda definirse a través de un mark up language capaz de describir la manera en que lo servicios pueden interactuar, filtrarse, orquestarse, integrarse; es decir, las operaciones básicas de un mashup empresarial. Al tenerlo definido, a partir de este lenguaje se podrá reutilizar o compartir entre varias aplicaciones dando como resultado un servicio de tipo mashup. Este nuevo servicio nos arrojará la respuesta de si el usuario puede obtener el crédito hipotecario y así ofrecerlo al cliente en tiempo real.

Bajo este modelo, a través de herramientas visuales para crear los mashups, ésta tarea de definición puede ya estar en manos del área de marketing, logrando así:
• Menor dependencia del área de sistemas
para generar este tipo de promociones.
• Mejores tiempos de reacción al mercado.
• Reducción de costos de creación y
mantenimiento de campañas.
• Estandarización para crear nuevos servicios.

Conclusión
Los mashups son parte fundamental de la denominada Web 2.0, cuyo mayor beneficio será obtenido por las organizaciones a través del uso de lo que hemos explicado aquí como mashups empresariales. Este nuevo tipo de aplicaciones están provocando un cambio que traerá a su vez una nueva generación de aplicaciones empresariales centradas en los usuarios.

Referencias
blogs.jackbe.com

Acerca del autor
Aldo Hernández Murguía es parte del equipo de JackBe en México. Aldo es Ingeniero en Cibernética y Sistemas Computacionales por la Universidad La Salle, México. Cuenta con más de nueve años de experiencia en TI, y está certificado como Java Developer y Architect. JackBe ofrece soluciones para aplicaciones de negocios basadas en SOA y servicios Web que resultan en aplicaciones interactivas basadas en browser que buscan optimizar las actividades diarias de las organizaciones.