[01/10/2013] Cuando Neil Fantom, gerente del Banco Mundial, 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 para todos en general, se encontró con cierta 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 Mundial, que fue anunciada en abril del 2010, Fantom fue el encargado de llevar la vasta información de la organización, que antes estuvo disponible solo por suscripción, y ponerla a disposición de todo aquel que la quiera. El método para hacerlo, el cual aprendería, sería una interfase de programación de aplicaciones o API.
La API pondría miles de indicadores económicos, incluyendo las cantidades de lluvia, niveles de educación y las tasas de natalidad -con algunas métricas que se remontan a 50 años- a disposición de los desarrolladores para que las mezclen, combinen y presenten de una manera que tenga sentido para ellos. La esperanza era que esto haría avanzar la misión del banco en la lucha contra la pobreza a escala mundial tocando la creatividad de otros. "Hay mucha gente fuera del banco que puede hacer cosas que nunca hemos pensando con el conjunto de datos", señala Fantom.
Un desarrollador, por ejemplo, creó una aplicación que unió los datos de precipitaciones fluviales del banco con Google Maps para calcular la cantidad de agua de lluvia que puede ser recogida 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 Banco Mundial no son los únicos en este tipo de actividades. Hace una década, las API abiertas eran una novedad, pero en los últimos años han sido objeto de un uso a un ritmo acelerado.
ProgrammableWeb, un sitio web que rastrea las API públicas, listó más de 8800 a principios de abril. De acuerdo con el sitio, tomó ocho años, del 2000 al 2008, para que el número de API llegara a mil, y luego solo otros 18 meses para que llegue a dos mil. El salto de siete mil a ocho mil tomó solo tres meses.
Las API cubren una amplia gama de categorías, incluyendo negocios, compras, mensajería, mapas, teléfono, social, financiera y de gobierno, de acuerdo con ProgrammableWeb. Se están convirtiendo tan necesarias para una organización como un sitio web. "En los negocios de hoy en día, una API abierta es más o menos una parte de la mesa. 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, manipulación y programación de un producto".
Un modelo en evolución
Cuando Best Buy lanzó su API, BBYOpen, en el 2009, para los desarrolladores, les dio acceso únicamente a los productos del catálogo de la cadena, con descripciones y precios de todos los elementos que estaban a la venta, con la esperanza de que ello 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 a seguir".
Pero los desarrolladores externos querían más, por lo que la compañía añadió la posibilidad de acceder a opiniones y valoraciones de los productos, encontrar tiendas cercanas, comprobar si ciertos productos estaban disponibles en las tiendas particulares, y comprar artículos a través del sitio web mediante aplicaciones móviles, tal vez con un solo clic si el usuario relacionaba una tarjeta de crédito con la aplicación.
Ha sido un éxito. Las aplicaciones móviles ShopSavvy, RedLaser y Milo utilizan BBYOpen. Los creadores de la aplicación obtienen una comisión sobre las ventas a través de 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 cerrar la compra con un competidor de Best Buy, pero Bendt señala que, dado que los sitios web y las aplicaciones móviles han cambiado la forma en que la gente compra, es importante que Best Buy esté 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 las personas sepan si los productos que han comprado están disponibles para ser recogidos en las tiendas cercanas, ayuda a que Best Buy de una ventaja competitiva sobre los minoristas en línea, agrega. "Ahora se puede buscar, comprar y recoger dentro de 20 a 40 minutos", señala Bendt.
La idea de una opción para recoger en la tienda en realidad vino de los desarrolladores externos, añade Bendt, y a la cadena le tomó un poco de esfuerzo adaptar su sistema de legado para que los datos del inventario estén disponibles a través de la API, los datos necesarios para volver a formatear con el fin de que sean compatibles. "Los sistemas fueron construidos en una época anterior a que los servicios web y las API estuvieran en uso", explica. "No se construyó para exponerlo de forma externa al desarrollador".
Los detalles de cómo el equipo lo hizo varian dependiendo de la fuente de datos, pero en general trataron de exponer algunas instantáneas de los datos, actualizarlas con la mayor frecuencia posible. Si los datos probaban ser útiles, encontraban la manera de hacer que esté disponible en tiempo real o lo más cerca posible.
Obtener los sistemas existentes para trabajar con la nueva API también fue un reto en el Banco Mundial, señala Malarvizhi Veerappan, el líder de los sistemas de datos abiertos del banco. Su grupo originalmente luchó con problemas de latencia debido a que sus ocho mil indicadores económicos no estaban directamente relacionados unos con otros. Es importante, dice, crear una estructura que pueda incorporar todos los datos históricos, y hacerlos crecer a medida que haya nueva información acumulada.
"No queríamos que la API sea una solicitud por separado. Queríamos que fuera parte de todo lo otro que hicimos con los datos", señala. "Teníamos que conectarla a nuestro sistema de datos. Se requirió mejorar nuestro sistema interno de datos".
A medida que la API creció, el equipo añadió 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 ha añadido redundancia de servidores para asegurar la disponibilidad de la misma.
Cuando el proveedor de información financiera Bloomberg LP lanzó su Iniciativa de Datos de Mercado Abierto en febrero del 2012, la nueva API abierta -BLPAPI- en realidad era la versión 3 del kit de desarrollo de software que la empresa ya había estado usando internamente, señala el CTO de Bloomberg, Shawn Edwards. En los viejos tiempos, los clientes de Bloomberg recibieron un terminal específico que los conectaba a la computadora central de la compañía, que suministraba los datos de mercado, noticias y análisis.
El proyecto de Bloomberg ha evolucionado desde entonces en un paquete de software que los clientes instalan en sus propios sistemas. Incluso antes de que sea abierto, la compañía utiliza la API para desarrollar aplicaciones específicas que permiten a los clientes manipular datos de Bloomberg en sus propios escritorios.
Con el lanzamiento de su API abierta, la compañía ahora permite a los clientes 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 desarrolladores externos creen aplicaciones que se basan en otras fuentes de datos, además de Bloomberg. "No vamos a regalar los datos del mercado. Lo que esto permite a la gente es integrarse con otros servicios", señala Edwards. "La API es una pieza de software que se conecta a la nube Bloomberg".
Tiene sentido que los demás hagan el desarrollo de aplicaciones, explica. "No estamos en el negocio de vender software", agrega. "Vamos a ganar sus negocios proporcionando los mejores servicios y los mejores datos".
Cuando Bloomberg apagó la API abierta, decidió eliminar algunas de las características que soportaban las versiones anteriores. Hubo un debate sobre si la API debía ser compatible con versiones anteriores. "Dijimos que no", señala Edwards. Eso significaba que algunos clientes se quedarían con características que ya no funcionaban, pero Edwards dice que eso hace que la API esté más despejada sin funciones obsoletas.
Al igual que la mayoría de las API abiertas, el BLPAPI soporta una variedad de idiomas, por lo que un desarrollador puede escoger la mejor opción para su aplicación. Alguien que ejecuta un proceso por lotes durante la noche puede elegir Perl, o la versión recientemente publicada de Python. Un sistema de comercio electrónico probablemente la ejecute en C o C + +. Los analistas cuantitativos, o cuánticos, generalmente utilizan los datos en Matlab. La API también soporta Java,.NET y C#, y Edwards señala que algunos desarrolladores también están utilizando una envoltura R.
Una clave para hacer una API de éxito está en lo fácil que es de usar. En el año 2000, O'Grady de RedMonk dijo, las API frecuentemente utilizaban protocolos de servicios web, pero resultó ser demasiado complejo. 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 prefieren abrumadoramente esto, ahora es el protocolo dominante para sistemas API", señala O'Grady.
La importancia de la claridad
Otro requisito importante es tener una amplia y clara documentación, además de herramientas para ayudar a que los desarrolladores hagan su trabajo. La documentación inicial de Bloomberg se dirigía más a los expertos financieros que son sus clientes, pero tuvo que ser revisada a fin de decirle a los desarrolladores lo que necesitaban saber.
Bloomberg pronto intentará hacer que BLPAPI sea más fácil de usar para los desarrolladores, proporcionando una herramienta de reproducción que les permitirá realizar ejecuciones de prueba de sus aplicaciones. 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. El Banco Mundial ofrece un generador de consultas que permite a los desarrolladores seleccionar opciones.
No todas las herramientas e ideas para las API fluyen hacia fuera de las organizaciones, los desarrolladores externos a menudo proporcionan información y marcos para ayudarse mutuamente. BBYOpen, por ejemplo, ofrece bibliotecas creadas por los desarrolladores en Java,.Net, PHP y otros lenguajes. En el Banco Mundial, hay un foro de discusión donde los desarrolladores pueden hacer preguntas y recibir respuestas de sus compañeros.
"Ellos no esperan por nosotros para responder a las preguntas en el foro", señala Veerappan, que está trabajando para añadir características al foro y convertirlo en una base de conocimientos. "Es interesante ver el conocimiento que otros desarrolladores han ganado en la API".
Una API de éxito tiende a tener licencias de software al estilo MIT de código abierto. El Banco Mundial, por ejemplo, utiliza una licencia de atribución de código abierto. 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.
Por ejemplo, agrega, Stack Overflow, un sitio de preguntas y respuestas editado colaborativamente para los programadores, tiene una API muy buena, pero los términos de uso son difíciles de navegar. Y señala que Twitter irritó a algunos desarrolladores por ser demasiado exigente en cuestiones tales como la forma en que se formatea la marca de tiempo, o al insistir en que la palabra tuit se debe capitalizar. Mientras es poco probable que los desarrolladores rechacen un servicio ampliamente utilizado como Twitter por ser difícil de trabajar, O'Grady señala: "si su producto no es tan popular, es posible que la gente lo abandone".
Resistencia cultural
Otro desafío no tecnológico para la creación de una API abierta es hacer que cada vez más personas en su organización cedan algo de control, ya que es muy probable acostumbrarlos a tratar con información confidencial y mantener la autoridad sobre su marca. "Tuve que hacer muchos convencimientos", señala Edwards de Bloomberg. "Es una manera diferente de pensar, cuando se ha estado controlando su producto". Pero él dice que era importante distinguir entre el mercado de los 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", agrega. "Ya no agregan valor".
Bendt de Best Buy enfrenta problemas similares. "Fue difícil cuando empezamos a hablar de una plataforma API", comenta, señalando que sus colegas se preguntaron, "¿Qué van a construir? ¿Y si crean una mala experiencia?" La compañía enfrentó ello con normas sobre cómo los desarrolladores pueden utilizar los datos: deben atribuirlos a Best Buy, por ejemplo, y no pueden apropiarse de ellos para otros propósitos. Best Buy no pre aprueba aplicaciones, pero sí realiza auditorías periódicas para asegurarse de que las aplicaciones cumplen con los términos del servicio.
En el Banco Mundial, existía la preocupación de que regalar datos significaría renunciar a la renta que se paga por la curaduría de los datos. Fantom señala que el banco decidió que un modelo libre sería mejor para su principal objetivo de la lucha contra la pobreza. "Al hacer que esta 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", agrega. "Una vez que comienza a recibir esto, es bastante claro que esto es lo que hay que hacer".
Todas estas organizaciones dicen que están continuamente desarrollando sus API, 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 qué problemas de los clientes se van a resolver por hacer lo que hace", señala Bendt. "No es el tipo de capacidad que se pone en marcha y se deja. Es el aprendizaje constante y la mejora continua".
Neil Savage, Computerworld (EE.UU.)