Llegamos a ustedes gracias a:



Reportajes y análisis

Abra sus datos al mundo

Las API públicas permiten que los clientes se conecten con usted en nuevas formas.

[10/05/2013] Cuando Neil Fantom, gerente del World Bank, se sentó con el equipo de tecnología de la organización en el 2010 para hablar de la apertura de los datos del banco a todo el mundo, se encontró con terminología poco familiar. "En ese momento yo ni siquiera sabía lo que significaba 'API'", señala Fantom.
Como jefe de la iniciativa de datos abiertos del banco (Open Data Initiative), que se anunció en abril del 2010, Fantom fue el encargado de tomar el vasto grupo de información, que antes solo estaba disponible por suscripción, y ponerlo a disposición de todo aquel que lo quiera. El método para hacerlo, aprendió, sería una interfase de programación de aplicaciones.
La API pondría miles de indicadores económicos, incluyendo la cantidad de precipitaciones, niveles de educación y las tasas de natalidad -algunas métricas que se remontan a 50 años atrás- a disposición de los desarrolladores, con el fin de que los mezclen, combinen y presenten de una manera que tenga sentido para ellos. La esperanza era que esto avance en la misión del banco en la lucha contra la pobreza a escala mundial, haciendo un llamamiento a la creatividad de otros. "Hay mucha gente fuera del banco que puede hacer cosas que nunca hemos pensado con el conjunto de datos", señala Fantom.
Un desarrollador, por ejemplo, creó una aplicación que unió los datos de las precipitaciones del banco con Google Maps para calcular la cantidad de agua de lluvia que se puede recoger en los tejados y posteriormente utilizada para regar los cultivos en diferentes partes del mundo. Otra aplicación ofrece datos sobre el consumo de energía y muestra a las personas lo que pueden hacer para luchar contra el cambio climático.
Fantom y el World Bank no están solos en esta trayectoria. Hace una década, las API abiertas eran una novedad, pero en los últimos años se han adoptado a un ritmo acelerado. ProgrammableWeb, un sitio web que rastrea las API públicas, enlistaba a más de 8.800 a principios de abril. Según los datos del sitio, tomó del 2000 al 2008 para que el número de API llegara a mil, y luego otros 18 meses para que se duplique. El salto de 7000 a 8000 se llevó a cabo en solo tres meses.
Las API cubren una amplia gama de categorías, incluyendo negocios, compras, mensajería, mapas, teléfono, redes sociales, finanzas y gobierno, de acuerdo con el sitio Web de ProgrammableWeb. Se están convirtiendo tan necesarias para una organización como un sitio web. "En los negocios hoy en día, una API abierta es algo que tiene que tener", señala Stephen O'Grady, analista de RedMonk, una firma de análisis centrada en los desarrolladores. "Cada vez más, la tracción va a ser impulsada por el grado de apertura y programación manipulable de su producto".
Cuando Best Buy lanzó por primera vez su API, BBYOpen en el 2009, le dio a los desarrolladores acceso solamente para los productos del catálogo de la cadena, con descripciones y precios de todos los elementos que tenía en venta, con la esperanza de que al hacerlo atraería a más clientes. Eso fue parte de una estrategia deliberada para empezar poco a poco, señala Steve Bendt, director de plataformas emergentes en Best Buy. "Tuvimos que probar estas cosas con el tiempo", agrega. "Empezamos a demostrar que se trata de una zona muy vibrante y viable".
Pero los desarrolladores externos querían más, así que la compañía agregó la posibilidad de acceder a opiniones y valoraciones de los productos, encontrar una tienda cerca y comprobar si el producto está disponible allí, y comprar el artículo a través del sitio web o aplicación móvil en cuestión, tal vez con un solo clic si el usuario ha conectado una tarjeta de crédito a la aplicación.
Ha sido un éxito. Las aplicaciones móviles Shop Savvy, RedLaser y Milo utilizan BBYOpen como parte de sus aplicaciones. Los creadores de la aplicación obtienen una comisión sobre las ventas a través del programa de afiliados de Best Buy. Los compradores pueden buscar un elemento, o escanear un código de barras, y obtener información sobre los precios de diversos vendedores.
Por supuesto, eso podría significar que un cliente que utiliza la aplicación podría terminar comprando de un competidor, pero Bendt señala que, dado que los sitios web y las aplicaciones móviles han cambiado la forma en que la gente compra, lo que es importante para Best Buy es estar en la mezcla. "Si no estamos en el conjunto de consideración, es una oportunidad perdida". Y el hecho de que la API permita que los clientes sepan si un producto está disponible para que lo recojan de una tienda cercana una vez que lo hayan comprado, ayuda a proporcionar una ventaja competitiva frente a solo en línea minoristas, agrega. "Ahora se puede buscar, comprar y recoger en cuestión o de 20 a 40 minutos".
Problemas de datos heredados
La idea de una opción para recoger en la tienda en realidad provenía de desarrolladores externos, señala Bendt, y a la cadena le tomó un poco de esfuerzo adaptar su sistema de legado para que los datos del inventario esté disponible a través de la API; los datos necesitaron ser reformateados para que sean compatibles. "Los sistemas fueron construidos en una época anterior a que se utilizaran los servicios Web y las API", explica. "No se construyeron para exponerse de forma externa al desarrollador".
Los detalles de cómo lo hicieron varía mucho dependiendo de la fuente de datos, pero en general el equipo tratará de exponer algunas "instantáneas" de los datos, actualizadas con la frecuencia que sea posible. Si los datos eran útiles, se encontraban maneras de que estén disponibles en tiempo real.
Hacer que los sistemas existentes trabajen con la nueva API también fue un reto en el World Bank, agrega Malarvizhi Veerappan, jefa de sistemas de datos abiertos. Originalmente su grupo luchó con problemas de latencia debido a que sus ocho mil diferentes indicadores económicos no estaban directamente relacionados entre sí. Era importante, según la ejecutiva, crear una estructura que pudiera incorporar todos los datos históricos y que crecieran como nueva información acumulada.
"No queríamos que la API sea una aplicación separada. Queríamos que fuera parte de todo lo que hicimos con los datos", señala. "Teníamos que conectarla a nuestro sistema de datos. Lo que requirió la mejora de nuestro sistema interno de datos".
A medida que la API creció, el equipo añadió la supervisión del rendimiento e instituyó políticas para asegurar un buen flujo de tráfico. La organización también ha aumentado la capacidad del servidor y añadió redundancia de servidores para asegurar la disponibilidad de la API.
Cuando el proveedor de información financiera Bloomberg LP lanzó su iniciativa Open Data en febrero del 2012, la nueva API abierta -BLPAPI- era en realidad la versión 3 del kit de desarrollo de software que la compañía ya estuvo utilizando internamente, señala Shawn Edwards, director de tecnología de Bloomberg. En otros tiempos, los clientes de Bloomberg recibían un terminal específico que los conectaba a la computadora central de la compañía, que suministraba los datos del mercado, noticias y análisis.
(El nombre de "Iniciativa Open Data", tanto para los proyectos del World Bank como para Bloomberg es solo una coincidencia, ni tiene ninguna relación formal con la iniciativa Open Data, trata de darle unos a los datos de diversas fuentes del gobierno que están disponibles al público).
Desde entonces, el proyecto de Bloomberg ha evolucionado en un paquete de software que los clientes instalan en sus propios sistemas. Incluso antes de hacer que sea abierta, la compañía utilizaba la API para desarrollar aplicaciones específicas que permitían que los clientes manipulen datos de Bloomberg en sus propios escritorios.
Con el lanzamiento de su API abierta, la compañía ahora permite que los clientes puedan crear sus propias aplicaciones, tales como las listas de vigilancia de los valores seleccionados o de sus propios sistemas de comercio. También permite que los desarrolladores externos diseñen aplicaciones que se basen en otras fuentes de datos, así como de Bloomberg. "No vamos a regalar los datos del mercado. Esto permite que la gente se integre con otros servicios", señala Edwards. "La API es una pieza de software que se conecta a la nube de Bloomberg".
Solo tiene sentido para dejar que otros hagan el desarrollo de aplicaciones, explica. "No estamos en el negocio de vender software", señala. "Vamos a ganar su negocio proporcionando los mejores servicios y los mejores datos".
Cuando Bloomberg sacó la API abierta, decidió eliminar algunas de las viejas características que tenían las versiones anteriores. Hubo un debate sobre si la API debe ser compatible con versiones anteriores. "Dijimos que no", señala Edwards. Eso significó que algunos clientes terminaran con funciones en desuso, pero Edwards arega que eso hace que la API sea menos desordenada con funciones fuera de fecha.
Al igual que la mayoría de las API abiertas, BLPAPI soporta una variedad de idiomas, por lo que los desarrolladores pueden escoger la mejor opción para su aplicación. Alguien que ejecuta un proceso por lotes durante la noche puede elegir Perl, o la recientemente publicada versión Python. Un sistema de comercio electrónico probablemente se ejecutaría en C o C ++. Los analistas cuantitativos, o quants, generalmente utilizan los datos en Matlab. La API también soporta Java, Net y C#, y Edwards señala que algunos desarrolladores están utilizando también una envoltura R.
Una clave para hacer una API exitosa está en que sea fácil de usar. En el año 2000, O'Grady de RedMonk señaló que las API frecuentemente utilizaban protocolos de servicios web, pero resultaron ser demasiado complejas. Ahora, casi tres cuartas partes de todas las API están basadas en REST, según ProgrammableWeb, con SOAP en un distante segundo lugar. "Debido a que los desarrolladores lo prefieren abrumadoramente, ahora es el protocolo dominante para los sistemas API", señala O'Grady.
La importancia de la claridad
Otro requisito importante es tener una amplia y clara documentación, con herramientas para que los desarrolladores hagan su trabajo. La documentación inicial de Bloomberg se ha dirigido más a los expertos financieros que son sus clientes, y tuvo que ser revisado a fin de decirle a los desarrolladores lo que necesitaban saber.
BLPAPI también trató de hacer el trabajo más fácil para los desarrolladores, proporcionando una herramienta de reproducción que les permitiera realizar pruebas de ejecución para sus aplicaciones, pero esa característica no estaba disponible cuando se lanzó por primera vez. BBYOpen de Best Buy también ofrece a los desarrolladores un conjunto de herramientas, incluyendo una consola de prueba para ejecutar aplicaciones y un generador automático de widgets. World Bank ofrece un generador de consultas que permite a los desarrolladores seleccionar opciones.
No todas las herramientas e ideas fluyen hacia fuera de las organizaciones, los desarrolladores externos a menudo proporcionan información y marcos para ayudarse unos a otros. BBYOpen, por ejemplo, ofrece bibliotecas creadas por los desarrolladores en Java, NET, PHP y otros lenguajes. En el World Bank, hay un foro de discusión donde los desarrolladores pueden hacer preguntas, y otros pueden encontrar soluciones.
"Ellos no esperan que respondamos las preguntas en el foro", señala Veerappan, que está trabajando en darle al foro más características y convertirlo en una base de conocimientos. "Es interesante ver el conocimiento que otros desarrolladores han ganado en la API", agrega la ejecutiva.
Las API exitosas tienden a tener licencias de software al estilo MIT de código abierto. World Bank por ejemplo, utiliza una licencia Open Source Atribution. O'Grady señala que una de las claves del éxito es ser muy claro acerca de los términos de servicio, y no tener una licencia demasiado restrictiva que desaliente su uso.
El ejecutivo agrega que Stack Overflow, un sitio de preguntas y respuestas editado de forma colaborativa para los programadores, tiene una muy buena API, por ejemplo, pero las condiciones de su uso son difíciles de navegar. Twitter irritó a algunos desarrolladores, añade, por ser demasiado insistentes en temas sobre cómo se formatea la marca de tiempo, o insistir en que la palabra "tuit" debe ser capitalizada. Mientras es probable que los desarrolladores no huyan de Twitter por ser difícil de trabajar, señala O'Grady: "Ciertamente, en algunos casos, si su producto no es tan popular, la gente lo abandonará".
Resistencia cultural
Otro desafío no-tecnológico para la creación de una API abierta -que se utilizan para la negociación de información de propiedad y mantener la autoridad sobre su marca- es hacer que cada vez más personas en la organización cedan algo de control. "Tuve que convencer a muchos", señala Edwards de Bloomberg. "Es una forma diferente de pensar, cuando ha estado controlando su producto". Pero él dice que era importante distinguir entre el mercado de datos que Bloomberg vende y cosas como la simbología y el software que la compañía no tiene que controlar. "El tiempo para todas estas interfases propietarias se ha ido", señala. "ya no agregan valor".
Bendt de Best Buy también enfrentó problemas. "Fue difícil cuando empezamos a hablar de una plataforma API", comenta. Los colegas se preguntaron, "¿Qué van a construir? ¿Y si crean una mala experiencia?" La compañía abordó ello con normas sobre cómo los desarrolladores pueden utilizar los datos; debían atribuirlos a Best Buy, por ejemplo, y no podían apropiarse de ellos para otros propósitos. No hay pre-aprobación de aplicaciones, pero la empresa hace auditorías periódicas para asegurarse de que las aplicaciones cumplen con los términos del servicio.
En el World Bank, existió la preocupación de que regalar datos significaría renunciar a los ingresos que se pagan por la curaduría de los datos. Fantom señala que el banco decidió que un modelo libre en realidad sería mejor para el objetivo principal del banco referido a la lucha contra la pobreza. "Al hacer que información esté disponible de forma gratuita y con el uso de estas herramientas, hemos visto un incremento masivo en el uso de nuestros datos", señala. "Una vez que comienza con esto, es bastante claro que esto es lo que hay que hacer".
Todas estas organizaciones señalan que sus API siguen evolucionando, añadiendo nuevas funciones, en respuesta a los comentarios de los desarrolladores y clientes, y averiguando qué datos se ponen a disposición. "Hay que liberar el tipo de datos con la documentación correcta. Realmente, todo se reduce a lo qué problemas de los clientes se van a resolver por hacer lo que hace", señala Bendt. "No es una capacidad estática, está en constante aprendizaje y mejora".
Neil Savage, Computerworld (EE.UU.)