Professional Documents
Culture Documents
Mashups empresariales
- ISV Magazine - ISV-5 Octubre 2007 - Programacin -
Descripcin:
Para aportar verdaderamente informacin hace falta la unin de unos pocos elementos clave. Bsicamente unos datos, que a su vez, son organizados y gestionados
por un programa. Los mashups permiten aprovechar datos pblicos, as como aadir eventualmente otros privados, y mezclarlos, usando incluso bloques de
programas ya disponibles y listos para usar.
Editorial MKM
Pgina 1/6
Mashups empresariales
La tecnologa de mashups, que se puede definir como la mezcla de datos provenientes de varias fuentes, unidos por un
programa, est despertando el inters no slo de los aficionados a la programacin, sino tambin de las empresas.
Debido a que se trata de una modalidad reciente, no todos los programadores se han adentrado a hacer prcticas con
ella. Y, peor an, no todas las empresas tienen claro qu se puede hacer y, sobre todo, cmo utilizarlo.
Los mashups son un nuevo paso en busca de la Web 2.0 donde los contenidos fluyan ms fcilmente y resulte fcil
acceder a la informacin de mltiples formas. Como referencia de la importancia del fenmeno, a pesar de su juventud,
slo hay que mirar en Google sobre este trmino para encontrar varios millones de referencias (casi 3 millones en el
momento de escribir estas lneas).
Algunas empresas ven con gran reticencia la colocacin a disposicin pblica de datos corporativos. No es una
Pgina 2/6
Mashups empresariales
eleccin sencilla y tiene ms consideraciones de poltica interna de la empresa que problemas tcnicos.
Una vez superadas las eventuales dificultades acerca de qu datos poner disponibles para el mashup, el siguiente
punto es colocar los mecanismos que aseguran tanto que stos estn disponibles como garantizar que su acceso no
entorpece otros procesos corporativos que usan los mismos datos.
Control de mashups
Uno de los aspectos ms importantes a la hora de crear un mashups, o ms bien de emplearlo, es controlar el acceso a
las fuentes de datos. Tanto de cara a los datos en s, como a quin accede, o realizar un control sobre el nivel de
acceso a los mismos. La facilidad de acceso a los datos destinados a un mashup no debe interferir con otros tipos de
acceso.
Un mashup crea un servicio nuevo a base de mezclar datos de otros servicios existentes
Para las empresas este es uno de los puntos ms complicados de llevar correctamente a buen trmino. Salvo cuando
se tiene una cierta cultura y experiencia sobre arquitectura orienta a servicios, SOA, los departamentos de TI no estn
muy acostumbrados a gestionar un acceso a datos internos, pero estableciendo filtros o limitaciones adicionales.
Bsicamente se trata de controlar el uso de los recursos, tanto internos como externos, y llegado el caso de limitarlo
para impedir un abuso que bloquee otros accesos. En este punto se necesitan herramientas profesionales capaces de
simplificar las tareas de puesta en marcha. En este terreno algunas empresas, como BEA Systems, se colocan en la
vanguardia de la Web 2.0 y la informtica social con la creacin de las nuevas soluciones tecnolgicas Web 2.0 para la
empresa, proporcionando una plataforma donde compartir componentes y aplicaciones, sin tener en cuenta cmo se
han construido, en qu cdigo se escribieron y dnde estn alojadas, y donde integrarlas con nuevas o existentes
aplicaciones Web.
BEA AquaLogic Ensemble, www.bea.com/enterprise, por ejemplo, es un sistema muy potente para la gestin de
recursos Web, tales como aplicaciones, componentes, widgets, funciones programables, y para la integracin de esos
recursos en aplicaciones Web nuevas o existentes.
APIs y fuentes de datos
Desde el punto de vista de programacin los mashups no resultan complejos para iniciar. Pero hay que considerar otros
aspectos que condicionan sin duda tanto su creacin como su despliegue y empleo.
El primero es el de las fuentes de datos. Lo ms simple e inmediato es emplear algunas de las mltiples fuentes
pblicas, entre las cuales la ms popular, sin duda, es GoogleMaps (http://www.google.com/apis/maps/), que segn
algunos datos representa casi el la mitad de los APIs que se emplean en los mashups. Esto se debe no solo a la
gratuidad de los datos, sino a lo extensamente documentado que est el API para emplearlo. Pero no es la nica que
cuenta con unos datos excelentes y documentacin de cmo emplearlos.
Otras APIs populares actualmente son:
Pgina 3/6
Mashups empresariales
Twitter (http://twitter.com/help/api)
YouTube (http://www.youtube.com/dev)
http://www.webmashup.com/Mashup_APIs/index.php
Recopilacin de varios APIs ( http://www.programmableweb.com/apis)
Lo de las fuentes de datos est relacionado con lo anterior, ya que precisamente los mejores proveedores de datos
son los que se han preocupado tambin de suministrar la informacin, mediante un API, para acceder a ellos.
Los principales fabricantes de software ofrecen herramientas para desarrollar con facilidad los mashups
Lo cual indica que, bsicamente, una vez determinados los datos a compartir hay que crear un mecanismo de acceso a
los mismos y documentarlo, para que terceras partes puedan acceder a ellos.
Herramientas para mashups
Gracias a mltiples herramientas, la creacin de mashups no resulta complicada. Los principales fabricantes de
software se han dado cuenta de la importancia de este nuevo campo de desarrollo y ofrecen diversas herramientas
para facilitar la tarea.
Denodo, (www.denodo.com)
Google Mashup Editor (http://editor.googlemashups.com)
IBM (http://services.alphaworks.ibm.com/qedwiki)
Microsoft Popfly (http://popfly.com)
Yahoo! Pipes (http://pipes.yahoo.com/pipes)
En un terreno ms profesional, BEA Systems cuenta con su Aqualogic Pages, un producto enfocado a la Web 2.0 que
facilita a las empresas la creacin y control de mashups. Con la reciente popularidad que han adquirido sitios como
MySpace y YouTube, esperamos impulsar una revolucin en aplicaciones y servicios de nuevos medios digitales,
afirma Enrique Martn, Director Tcnico, BEA Systems.
El mundo TI est experimentando una transformacin gracias al fenmeno Web 2.0 y en este sentido los mashups
jugarn un papel clave. BEA ha tomado el liderazgo de la creacin de soluciones de ltima generacin que permitirn a
las empresas crear mashups dinmicos orientados al usuario. Los seminarios que organizamos proporcionarn a los
desarrolladores el conocimiento y las aptitudes necesarias para trabajar en soluciones Web 2.0. Microsoft ha lanzado
su proyecto popfly (http://popfly.com) para dar respuesta a la programacin de mashups, mientras que por su parte
Adobe cuenta con su entorno RIA Adobe Flex que contempla la creacin de mashups con todas las funcionalidades de
la Web 2.0.
Junto a los nombres ms conocidos del panorama internacional tambin despuntan nombre nacionales, pero con
proyeccin internacional, como Denodo (www.denodo.com), que con su Enterprise Data Mashups resuelve muchos de
los problemas de adaptacin de la Web 2.0 dentro de las empresas. La plataforma de Denodo, actualmente en su
versin 4.0, facilita la integracin de informacin proveniente de mltiples fuentes internas, como blogs, foros, chats,
mensajera instantnea, etc y tiende un puente entre la informacin generada en la Web 2.0 y las empresas.
La plataforma de Denodo resuelve la conversin de todas esos contenidos, dispersos en mltiples formatos diferentes
de datos, en informacin accesible de forma centralizada. La plataforma tiene capacidad para integrar no slo datos
Pgina 4/6
Mashups empresariales
externos sino tambin los internos que provengan del sistema ERP o CRM empresarial, as como bases de datos.
Denodo es capaz de operar con datos estructurados, como bases de datos, ficheros delimitados, XML, as como no
estructurados, documentos de texto, correos electrnicos, blogs, e incluso semiestructurados, como pginas Web
dinmicas.
Ejemplos
Un ejemplo brillante de mashups es la informacin ofrecida actualmente por mltiples compaas areas, adjunta al
billete electrnico. En l consta un enlace directo que redirige al viajero a la informacin meteorolgica de la ciudad de
destino para los prximos das. Bsicamente se trata de extraer de los datos del viaje las ciudades de origen y destino,
as como la fecha del viaje, y enlazar con uno de los mltiples servicios que ofrecen la informacin sobre previsin de
tiempo.
Hay multitud de ejemplos con de cmo crear mashups de todo tipo. Muchos estn basados en los populares y bien
documentados mapas de Google, http://www.google.com/apis/maps/, gracias a su amplia documentacin. Un vistazo al
popular sitio http://www.programmableweb.com/apis muestra que casi un tercio de las aplicaciones referenciadas estn
relacionadas con el empleo de mapas. Le siguen en popularidad las relacionadas con las aplicaciones sociales y la
fotografa, seguidas por las de compras de casa y viajes. Pero estas no son las nicas aplicaciones posibles y la
combinacin de datos ofrece casi infinitas posibilidades, slo limitadas por la imaginacin.
Entre las mltiples ideas curiosas cabe mencionar el estado de los embalses espaoles,
http://franchu.net/2007/05/26/estado-de-los-embalses-espanoles/, cuya creacin est ampliamente detallada en
http://franchu.net/2007/06/02/como-hacer-un-mashup-y-no-morir-en-el-intento/, y que revela que con pocos
conocimientos, algo de habilidad y las fuentes de datos adecuadas se puede generar rpidamente (el autor indica que
apenas le llev un par de minutos) un mashup. Como se aprecia en el listado,
http://best.eis.uva.es/franchu/nivel_embalses/mapa_google.txt, se necesitan menos de un centenar de lneas para crear
esta interesante informacin.
La informacin en castellano comienza a ser abundante, y con descripcin paso a paso de cmo crear un mashups,
como, por ejemplo en http://www.techtear.com/2007/04/22/curso-crea-tu-propio-mashup-con-google-maps-parte-1/, con
detalle de todos los elementos y conocimientos necesarios para iniciar uno. En la pgina
http://www.webmashup.com/Mashup_Examples/index.php pueden encontrarse otros interesantes ejemplos.
Referencias
El nmero de sitios a consultar comienza a ser elevado. Adems de las referencias indicadas con informacin sobre los
APIs y las herramientas, resulta interesante echar un vistazo a las siguientes pginas:
http://mashupawards.com
http://www.webmashup.com
http://www.mashupevent.com
http://www.ibm.com/developerworks/xml/library/x-mashups.html
http://www.mashuptown.com
http://del.icio.us/popular/mashup
Post-scriptum:
CUADRO LISTADO
//
function createMarker(coordenadas, nivel, embalse, datos) var iconoVerde = new GIcon(G_DEFAULT_ICON); iconoVerde.image =
\"http://best.eis.uva.es/franchu/nivel_embalses/marker_verde.png\"; var iconoVerdeClaro = new GIcon(G_DEFAULT_ICON); iconoVerdeClaro.image
= \"http://best.eis.uva.es/franchu/nivel_embalses/marker_verde_claro.png\"; var iconoAmarillo = new GIcon(G_DEFAULT_ICON); iconoAmarillo.image
= \"http://best.eis.uva.es/franchu/nivel_embalses/marker_amarillo.png\"; var iconoRojo = new GIcon(G_DEFAULT_ICON); iconoRojo.image =
\"http://best.eis.uva.es/franchu/nivel_embalses/marker_rojo.png\"; if(nivel
var informacion = []; indice = datos.indexOf(\"Agua\"); informacion.push(datos.substring(0, indice)); datos = datos.substring(indice, datos.length);
indice = datos.indexOf(\"Variacion\"); informacion.push(datos.substring(0, indice)); datos = datos.substring(indice, datos.length); indice =
Pgina 5/6
Mashups empresariales
datos.indexOf(\"Agua\"); informacion.push(datos.substring(0, indice)); datos = datos.substring(indice, datos.length); indice = datos.indexOf(\"Agua\");
informacion.push(datos.substring(0, indice)); informacion.push(datos.substring(indice, datos.length));
GEvent.addListener(marker, \"click\", function() marker.openInfoWindowHtml(\"
Pantano de \" +embalse + \"
Nivel actual: \"+nivel+\"%
\"+informacion[0]+\"\"+informacion[1]+\"\"+informacion[2]+\"
\"); ); return marker;
function load() if (GBrowserIsCompatible()) var map = new GMap2(document.getElementById(\"map\")); map.addControl(new
GSmallMapControl()); map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(40.2019, -3.1419), 5);
var datos = ; var batch = [];
mgr = new GMarkerManager(map);
var items = datos.value.items;
for (var i = 0; i //alert(items[i].coordenadas); var coordenadas = items[i].coordenadas.split(\",\");
batch.push(createMarker(coordenadas, items[i].nivel, items[i].embalse, items[i].estado)); mgr.addMarkers(batch,2); mgr.refresh();
//]]>
</code>
Pgina 6/6