jueves, 7 de enero de 2010

Mashup - Aplicacione Web Hibrida -


Web 2.0.

¿Qué es la web 2.0.?

  • Los contenidos los generan los usuarios
  • Los usuarios forman redes (sociales)
  • Los contenidos se publican (sindican) automáticamente en formatos standard que pueden ser reutilizados

¿Para que nos puede servir publicar los contenidos en un formato standard (como RSS)?

  • Para poder visualizarlos desde cualquier dispositivo (como un iPhone, TV, etc), y con cualquier aspecto (estilo), el contenido está totalmente separado de la presentación.
  • Para poder suscribirte a ellos
  • Para poder indexar mejor el contenido, y de esta manera buscar, ordenar o filtrar mucho más eficientemente.
  • Para poder reutilizarlos con otra finalidad diferente a la prevista inicialmente = "Mashup".

Qué es un mashup

Definición en la wikipedia:
http://es.wikipedia.org/wiki/Mashup_%28aplicaci%C3%B3n_web_h%C3%ADbrida%29
http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29

"In technology, a mashup is a web application that combines data from more than one source into a single integrated tool"

Enlaces de referencia sobre mashups:

Ejemplos representativos de mashups

Flickr Map
Seguramente el caso más típico de todos: mostrar un elemento situado en el mapa. En este caso mezcla 2 servicios: Yahoo Maps + Flickr.
http://www.flickr.com/map/

Memry
Juego de memoria que utiliza Flickr para buscar las imágenes de cualquier tema.
http://www.pimpampum.net/memry

Sleevenotez
Más compleja. Se sirve de información de múltiples servicios: en base a qué música escuchamos con last.fm nos muestra toda la información del artista obtenida de la wikipedia, flickr, youtube ...
http://www.sleevenotez.com/

RSS y sindicación de contenidos

El formato más utilizado para publicar (sindicar) contenidos es el llamado RSS.

RSS no es más que un archivo XML muy simple que contiene una lista de items (artículos) y una serie de campos como el título, texto, la fecha de publicación o las categorias a las cuales pertenece.

RSS se usa ampliamente en blogs, y en general en muchas publicaciones informativas que se actualizan periodicamente.

Estrictamente tendriamos que hablar de varias versiones de RSS (1.0, 2.0) y otros formatos como Atom.

Ejemplos de aplicaciones basadas en RSS:

En cierta manera podemos considerar las siguientes aplicaciones como mashups, ya que sirven para agregar facilmente contenidos que provienen de fuentes que pueden ser muy diversas:

Agregadores de información:

Netvibes
http://www.netvibes.com/

Google
http://www.google.com/ig

http://www.google.com/reader

Popurls (Thomas Marban)
http://popurls.com/

We feel fine (Jonathan Harris)
http://www.wefeelfine.org
Cada pocos minutos busca entre los blogs(rss) las frases que comienzan con "I feel ..." y "I'm feeling ...",etc y extrae el sentimiento que manifiestan.
Además, como la información de los blogs está estructurada de una manera estándar es muy fácil saber el autor, la procedencia ... De esta manera también puede relacionar los tipos de sentimientos con las personas que los manifiestan. Además, lo combina con la situación meteorológica de ese momento.
Una vez tiene todos los datos pueden responder a preguntas del tipo: están más contentos los europeos que los americanos?

Feel Map (Alvin Woon)
http://alvinwoon.com/source/feel_map/map.php
Basado en la API de We Feel Fine, muestra los sentimientos en el mapa.

10x10 (Jonathan Harris)
http://www.tenbyten.org/
Cada hora busca en los RSS de varias fuentes de noticias y analiza los contenidos de portada. Se eligen las 100 palabras y 100 imágenes más importantes.

Newsmap (Marcos Wescamp)
Visualización de la actividad del agregador de noticias Google News
http://www.marumushi.com/apps/newsmap/

RSS y sindicación de contenidos desde un punto de vista práctico

RSS y ATOM. Formatos de sindicación de contenidos (feeds)
Sindicar= publicar. Un contenido sindicado se puede agregar a cualquier otra página de internet.

"RSS (formally "RDF Site Summary", known colloquially as "Really Simple Syndication") is a family of Web feed formats used to publish frequently updated content such as blog entries, news headlines or podcasts."

Atom: http://en.wikipedia.org/wiki/Atom_%28standard%29

Buscadores específicos de feeds, Technorati. Buscador de blogs de google

Ejercicios de agregación y sindicación de contenidos

  1. Crear una página en netvibes a partir de diferentes fuentes de información (rss). (no hay que registrarse)
  2. Yahoo Pipes. Pensar un concepto y crear un feed a partir de la recombinación de diferentes fuentes de información. (hay que tener una cuenta yahoo)
  3. Agregar el Yahoo pipe a una página html con el google ajax feed. (es necesaria una cuenta google)
    http://code.google.com/apis/ajaxfeeds/
  4. Propuesta. Utilizar un lenguaje de servidor (como php), para rastrear en tiempo real los blogs publicados a través del buscador de blogs de Google. La visualización se puede hacer en html (ajax) o flash (actionscript).

Ver: http://www.zoomap.net/resources/client/
Descargar: http://www.zoomap.net/resources/blogs_now.zip

Ejemplo: Technoratr (prototipo pimpampum que permite navegar por los posts de los blogs saltando de palabra en palabra):
http://www.pimpampum.net/technoratr/

APIs

Definición de una API. Listado de APIS disponibles:
http://es.wikipedia.org/wiki/Web_api

"Una API es una interfaz de programación de aplicaciones (del inglés API: Application Programming Interface). Es un conjunto de rutinas que provee acceso a funciones de un determinado software."

En nuestro caso las APIS nos permiten acceder a los contenidos de un servicio de información, en cierta manera se puede considerar una API como una ampliación del RSS.

Normalmente se hace a través de peticiones http que devuelven archivos XML. Un XML que tiene una estructura diferente al RSS de manera que se pueden definir campos diferentes y mejor adaptados al contenido.

Para un programador, pues, no hay ninguna complejidad especial, se trata sólo de "parsear" el XML para obtener los resultados que queremos y visualizar los del modo que queramos (aquí es donde realmente está la complejidad del tema).

Claves para crear una buena mashup:

  • Hibridación de servicios para crear otra "realidad" , con una utilidad diferente a la que se habia previsto para el servicio original.
  • Visualización de la información (interface).
  • Fomentar la participación de los usuarios

Algunos servicios de Internet que disponen de una API pública.

más de 600 en total aquí (en realidad son muchas más):
http://www.programmableweb.com/apis

por orden de "popularidad" (el número de Mashups que las utilizan):
http://www.programmableweb.com/apis/directory/1?sort=mashups