jueves, febrero 28, 2008

¿Qué es un Mashup?

En tecnología basada en web, un "mashup" o puré, es una aplicación web que combina datos provenientes de distintas fuentes en una única herramienta que las integra; por ejemplo, uno podría utilizar Google Maps (CTRL + clic para ir al enlace) para añadir información sobre la ubicación de datos de bienes raíces de Craigslist, y de esta forma, crear un servicio original que no existía en ninguna de las fuentes originales.

Nota curiosa: Originalmente este término se utilizaba en la música pop donde se crea una nueva canción a partir de dos o más piezas existentes.

El contenido utilizado en los mashups proviene típicamente de APIs públicos (web services), pero también se utilizan contenidos en formatos de Web Feeds (RSS, Atom) o rastreo de pantalla (donde un programa extrae una porción de los datos brindados por otro, por ejemplo, una página web de un sitio determinado).

Nota curiosa: El término MashUp es relativamente reciente, si se utiliza Google Trends es posible ver que no se utilizaba fuertemente sino desde el 2006.

Algunos ejemplos interesantes...

Tipos de MashUps

Actualmente se pueden identificar tres tipos: mashups de consumidor, mashups de datos y mashups de negocio.

Los más conocidos (y mercadeados) son los mashups de consumidor, por ejemplo las aplicaciones que utilizan Google Maps. Estos combinan datos de distintas fuentes (externas), detrás de una única interfaz gráfica (generalmente agradable ;-).

Los mashups de datos mezclan similares de distintas fuentes de datos (como Yahoo Pipes); por ejemplo, tomando datos de distintos feeds RSS dentro de un único feed.

Por último, los mashups de negocio mezclan datos de fuentes internas como externas, integrándolas en una misma interfaz (como Jack Be ); por ejemplo, puede crear un reporte de mercado que combine una lista externa de todas las casas vendidas en la última semana con datos (internos) de la agencia que las vendió. Además, a este tipo de mashup se añade funcionalidad colaborativa, permitiendo que el resultado sea útil dentro de un contexto de negocio.

MashUps vs Portales

Ambas son tecnologías de agregación. Los portales es tecnología madura, diseñada como una extención a las aplicaciones web dinámicas, donde el proceso de transformación de datos en páginas web se divide en dos fases: 1- la generación de fragmentos de código de enmarcado y 2-la agregación de estos fragmentos en páginas finales.

Cada fragmento de código es generado por un "portlet", y el portal (engine) combina estos en una página resultante. Los portlets puede estar hospedados tanto en el servidor como en ubicaciones remotas.

La tecnología de portlets definen un modelo de eventos de lectura y actualización. Una solucitud de una página generada con esta tecnología es transformada en operaciones individuales de lectura de todos los portlets que la conforman. Cuando un evento es disparado por uno de estos portlets, es transferido a una operación de actualización sólo sobre ese portlet. La actualización de ese contenido es seguida por un refrescamiento de toda la página (lectura de todos los portlets).

Algunas diferencias entre esta tecnología y la de Mashups son las siguientes:




Portal
Mashup
Clasificación
Madura (antigua), extensión del modelo tradicional de aplicaciones web.
Nueva, Web 2.0
Filosofía
El enfoque se resume en generación de código y agregación de fragmentos.
Adopta un enfoque más básico, agregando el contenido sin preocuparse del enmarcado.
Dependencias de Contenido
Agrega contenido orientado a la presentación (HTML, WML, etc.)
Puede operar con contenido en XML y también contenido orientado a la presentación.
Dependencias de Ubicación
La agregación del contenido toma lugar en el servidor.
La agregación del contenido puede tomar lugar tanto en el servidor como en el cliente.
Estilo de Agregación
"Barra de ensalada", donde se presenta el contenido uno después del otro sin traslape.
"Un tazón de mezcla", donde el contenido individual puede combinarse de muchas maneras arbitrarias e híbridas.
Modelo de Eventos
Modelo de Lectura y Actualización definido por un API de portlet específico (dependiente del vendor).
Las operaciones de creación, lectura, actualización y eliminación (CRUD) están basadas en un arquitectura REST (representational state transfer), pero no hay un API formal.
Estándares
Se observan estándares como JSR 168, JSR286 y WSRP, los cuales gobiernan su comportamiento; sin embargo, la implementación de la tecnología depende del vendedor.
Actualmente existen una gran cantidad de APIs disponibles desde cientos de sitios que se ubican en la moda Web 2.0.

Estos pueden utilizar XML-RPC, SOAP (que requiere de programación) o intercambio XML basado en REST (mediante HTTP y no SOAP).

Generalmente se utiliza RSS y Atom para el intercambio de información o fuentes de contenido. Se espera que emerjan estándares más formales en el futuro.

Editores MashUp

Algunos editores (con interfaces muy interesantes) son los siguientes:

Lectura adicional

0 comentarios: