Capa de APIs

Una capa de APIs REST o de servicios web ofrece una interfaz desacoplada para los datos o las funcionalidades de una o más aplicaciones. Proporciona una forma común de interactuar con las aplicaciones que es indiferente al lenguaje utilizado. Las API de servicios web ofrecen un contrato bien definido, conocido como WSDL, que describe los servicios en función de sus operaciones y de los tipos de datos que se utilizan para intercambiar información. Normalmente, las API REST no tienen este contrato, sino que se documentan mediante bibliotecas de cliente para los lenguajes más comunes (como Ruby, Java, PHP y JavaScript). Los servicios web SOAP se han empleado tradicionalmente en las empresas para publicar servicios internos y para intercambiar información con socios a través de transacciones B2B. REST es el método preferido para publicar APIs en la Web, y esta tendencia se está apreciando ahora en los entornos empresariales.

Casos de uso

Estas son algunas situaciones comunes en las que se usaría una capa de APIs:

  • Pongamos que necesitas conectarte una aplicación heredada que no cuenta con una API REST. Por ejemplo, tienes un sistema personalizado de CRM o RR. HH. y quieres que los empleados puedan acceder a él a través de un portal.
  • Quieres publicar una API que permita que tus socios se comuniquen con tus sistemas mediante una interfaz bien definida. Lo habitual en este caso es crear una API de servicios web.
  • Quieres conectarte a varias aplicaciones o fuentes de datos, combinar los datos y enviar los resultados a tu aplicación móvil. Por ejemplo, puede que quieras complementar la información de RR. HH. o de un cliente con datos disponibles en redes sociales como Facebook o LinkedIn. En otra situación común, tienes varios sistemas de CRM pero quieres ofrecer una vista unificada a cualquier usuario que acceda a datos de clientes durante un desplazamiento.

Centrémonos en un caso de uso móvil que interactúa con una aplicación empresarial.

Integración con una aplicación móvil

Cuando hayas decidido desarrollar una aplicación nativa (iOS/Android) o basada en HTML para tu dispositivo móvil, el mayor obstáculo que deberás superar será la integración de dicha aplicación con tus aplicaciones de back‑end, como tus sistemas de CRM o ERP.

Los particulares desafíos de presentación a los que se enfrentan los desarrolladores de aplicaciones móviles han cambiado radicalmente la forma de crear aplicaciones web. Antes, se realizaba una solicitud HTML a un servidor central y se mostraba el resultado en "navegadores" en el lado del cliente. Con el nuevo modelo de "aplicaciones móviles" se entrega contenido dinámico mediante HTTP y AJAX, con lo que la comunicación consta de datos JSON que se transmiten a través de HTTP mediante servicios REST.

Por tanto, el reto de integración consiste en cómo transmitir rápidamente la infraestructura existente a este nuevo "canal de entrega móvil", al tiempo que se minimizan los cambios en la infraestructura de back‑end. Las organizaciones que sean capaces de hacerlo podrán hacer llegar sus modelos de negocio tradicionales a dispositivos y colectivos totalmente nuevos. Mule proporciona un gran valor en lo que respecta a esta situación: un mecanismo sencillo que sirve como capa de mediación entre los servicios web basados en SOAP/XML existentes y las aplicaciones REST/JSON. Además, pueden coordinarse fácilmente aplicaciones compuestas sofisticadas pertenecientes a varios servicios de back‑end, con o sin interfaz REST, sin tener que exponer el modelo de objetos interno a los consumidores externos.

Implementación

En este caso de uso, te mostraremos lo fácil que es utilizar Mule para aplicar una interfaz REST a una aplicación existente. Con esto nos referimos a crear un front‑end de servicio web REST para una aplicación existente.

Digamos que quieres que tu equipo de ventas pueda crear una nueva oportunidad de ventas desde sus dispositivos móviles que cumpla los siguientes requisitos:

  • Está sincronizada con tu implementación de CRM de Salesforce y
  • Envía una notificación por correo electrónico a un gerente si la oportunidad supera un valor económico concreto.

REST

Las API REST y el formato de datos JSON permiten que más lenguajes y dispositivos accedan fácilmente a los sistemas de back‑end.

Salesforce

Salesforce se utiliza para consultar datos de nuestra aplicación. Mule proporciona conectividad prediseñada con Salesforce, lo que incluye las API Bulk y Streaming.

SMTP

Esta aplicación envía alertas por correo electrónico. La arquitectura modular de Mule facilita el envío de mensajes a una amplia gama de tecnologías, entre las que se incluyen Apple Push, Android Notifications y Twilio (SMS).

Principios esenciales de la integración

Un caso de uso de integración de una aplicación móvil suele implicar los cinco siguientes principios de integración principales:

Transformación

Dado que esta interfaz se va a consumir desde una aplicación móvil, el formato de datos ideal es JSON. Se trata de un protocolo con el que es muy fácil trabajar, tanto en una aplicación móvil como en Mule. En este caso, el reto será transformar los datos JSON que recibimos de nuestro dispositivo móvil a un formato que se pueda cargar en SFDC. Más abajo puedes ver un sencillo objeto de datos JSON, que representa el tipo de datos que recibimos de nuestra aplicación móvil.

Transporte

La negociación de los protocolos de transporte entre un servicio basado en REST que interactúa con nuestra aplicación móvil y, en nuestro caso, con el sistema de SFDC a través de HTTP y una conexión de correo electrónico adicional que utiliza el protocolo SMTP.

Coordinación

Combinar varios componentes subyacentes en un único servicio compuesto de orden superior. En este caso de uso, vamos a combinar una actualización mediante SFDC con un sencillo servicio de correo electrónico, con el objetivo de presentar el resultado como una aplicación móvil basada en REST gracias a un simple flujo de integración de Mule que conecta todos los elementos.

Mediación

La mediación será útil a medida que vaya pasando el tiempo, ya que será necesario ofrecer compatibilidad con varias versiones de este servicio a una amplia variedad de consumidores. Además, en caso de que sea necesario, es posible proporcionar una interfaz SOAP adicional para este servicio basado en REST con solo añadir los componentes de mediación para que gobiernen la relación entre SOAP/XML y JSON.

Coherencia no funcional

Estos requisitos son genéricos por naturaleza e incluyen proporcionar una implementación común de la seguridad, la elaboración de registros, el despliegue, la gestión de componentes de tiempo de ejecución y mucho más. Mule proporciona funcionalidades orientadas a cada uno de estos requisitos

Componentes de integración de Mule

Mule ofrece una sencilla interfaz gráfica para crear estos tipos de aplicaciones. El primer paso a la hora de establecer una comunicación con una aplicación móvil consistiría en utilizar un punto de conexión HTTP y un componente REST. Este paso minimiza la complejidad que conlleva la comunicación con tus aplicaciones móviles y el consumo de objetos JSON. Mule también simplifica el proceso de comunicación con el sistema de CRM de Salesforce al proporcionar un conector en la nube "prediseñado". Solo tienes que arrastrar el conector en tu proyecto, especificar tu nombre de usuario y token, y seleccionar la función con la que te quieres comunicar. De manera similar, el proceso de añadir lógica de filtrado y comunicarse con un servidor SMTP para enviar correos electrónicos también es mucho más sencillo.

El siguiente proyecto se ha creado con Mule Studio.

Resumen

Así que, ¿cuáles son las conclusiones? Gracias a Mule, hemos ilustrado lo sencillo que puede ser sacar provecho de tus aplicaciones existentes e incorporarlas en servicios REST de mayor nivel para simplificar la integración con aplicaciones móviles.

También hemos mostrado lo fácil que es utilizar el conector prediseñado de Mule para integrar aplicaciones móviles en Salesforce. Y este es un logro importante, ya que la integración es uno de los mayores retos a los que se enfrentan las empresas que adoptan tecnologías de nube como SFDC.

Los dispositivos móviles han puesto los canales de entrega al alcance de audiencias y colectivos mucho más amplios. Mute te permite adoptar los nuevos modelos de interacción que exigen estos dispositivos y se integra con tus sistemas existentes de una forma sencilla, escalable y fiable.