Todos los días oímos que hay que evolucionar al mundo de las APIs, que debemos dejar atrás el SOA clásico, oímos ventajas de este modelo y de cómo los desarrolladores se pueden auto-proveer y reutilizar API existentes. También escuchamos hablar de cómo podemos exponer nuestro negocio a partners a través de API, etc. Pero ¿qué es realmente una API? ¿Cómo hay que diseñarlas y qué ofrecen los fabricantes para manejarlas y gestionarlas? Hacemos una introducción al mundo de las interfaces de programación de aplicaciones y cómo uno de los fabricantes de API Management más importantes da solución a este reto.
Una API (application programming interface) es una interfaz que facilita el acceso a servicios o bases de datos, de modo que hacen posible la interconexión de módulos y aplicaciones, facilitando el acceso a sus backend y permitiendo así la reutilización de servicios.
A través de la programación, nos permite abrir datos y funcionalidades a otros desarrolladores, empresas o incluso departamentos de la misma empresa. De este modo se convierte en la nueva forma en que las organizaciones van a intercambiar datos, servicios y recursos tanto con socios como con el público en general.
Podemos definir API Management como el proceso de publicar, promocionar y supervisar APIs en un entorno seguro y escalable. Además, el término incluye todos aquellos recursos enfocados a la creación, documentación y socialización. Este concepto es la clave del éxito de una plataforma de API ya que nos dará solución a las problemáticas que nos vamos a encontrar.
Mulesoft tiene uno de los productos líderes del mercado, Anypoint Platform, que no sólo pretende ser una plataforma tecnológica de integración, sino que fomenta una metodología de gestión de API a través de ella que facilite la utilización de sus API y la reutilización de las mismas.
El enfoque que la herramienta ofrece, “API-led connectivity”, es una forma de conectar datos y aplicaciones a través de API reutilizables y funcionalmente completas. Estas API se desarrollan para jugar un rol específico convirtiendo datos en procesos y ofreciendo distintos métodos de integración.
La solución propuesta por Mulesoft incluye en un solo producto los tres pilares necesarios para el API Management:
Además, al incorporar su propio Runtime así como numerosos conectores a los sistemas más importantes del mercado (Salesforce, SAP, Siebel, etc.) incluye también las capacidades de un ESB. Además, cubre todo el ciclo de vida del software e incluye un enfoque de producto orientado a DevOps.
El enfoque “API Led Connectivity” se basa en generar assets reutilizables y sobre una arquitectura de tres capas, no sólo con componentes propios sino utilizando arquitecturas híbridas.
Esta capa es la que los sistemas consumidores utilizan. Está orientada al consumidor de forma que le facilite y optimice la integración según sus necesidades. Además, se desarrollan pensando en la reutilización por parte de consumidores similares. Adicionalmente, el diseño escalable de esta capa permite incorporar nuevos consumidores sin impactar en los consumidores existentes y reutilizando la lógica implementada en las capas inferiores.
En esta capa intermedia se desarrollan APIs dedicadas a implementar la lógica de los procesos de negocio. Son reutilizables por todas las Experience APIs de la capa superior, y orquestan las invocaciones a las diferentes System APIs de la capa inferior. La incorporación de nuevos procesos de negocio a través de nuevas Process APIs no impacta a los componentes existentes y los nuevos componentes pueden reutilizar las System APIs existentes si fuese necesario. La comunicación entre este Process API y los System API se realiza a través de REST.
Es la capa de servicios que proporcionará conectividad con los sistemas finales, orientada totalmente a las características del Backend, también llamada capa de microservicios. Son APIs dedicadas a ejecutar operaciones en los sistemas proveedores. Además, son reutilizables por todas las Process APIs y la necesidad de ejecutar nuevas operaciones en los sistemas existentes (o nuevos sistemas) no impacta en las operaciones existentes. Cada System API conecta con un sistema proveedor.
En el entorno actual en el que los canales de entrada no dejan de crecer y los sistemas core de las compañías se multiplican es necesario este tipo de organización de API para que nuestro ecosistema de API sea reutilizable, ágilmente modificable y duradero. Este enfoque permite que tengamos APIs que contienen toda la lógica de negocio, abstrayéndose tanto del consumidor, como del sistema del que obtiene la información. Además, los cambios en los sistemas legados o en los sistemas consumidores no afectan al proceso implementado en gran medida.
Luis Santos
Luis es senior manager del área de tecnología de Deloitte con más de 18 años de experiencia profesional en IT. Se incorporó a Deloitte en 2007 dentro del área de DxD. Su carrera siempre ha estado enfocada al desarrollo de aplicaciones de gestión, portales web e integración de sistemas realizados con tecnologías Java y .NET en entornos SOA. Los últimos años de su carrera se han enfocado al área de integración de sistemas y middleware, basadas en SOA, BPM y API Management, trabajando en distintos clientes utilizando soluciones de distintos fabricantes como TIBCO, IBM, Mulesoft y Redhat.