Primeros pasos con la integración de Salesforce y Heroku
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Explicar las diferentes razones para integrar Salesforce y Heroku.
- Describir los métodos para integrar Salesforce y Heroku.
Como desarrollador de Salesforce sabe que Heroku proporciona un excelente lugar para ejecutar aplicaciones que se integran con Salesforce para una variedad de casos de uso. ¿Pero cuáles son exactamente esas razones y cuáles son los mejores métodos para la integración? Siga leyendo y sus preguntas pronto tendrán respuesta.
Razones para integrar Salesforce y Heroku
Los sistemas de negocio modernos constan de muchas partes diferentes con interfaces diferentes para diversos tipos de usuarios. Estas interfaces a menudo reúnen datos procedentes de diversas fuentes de datos. La arquitectura de microservicios se ha convertido en una manera de disociar las partes de un sistema en unos servicios más fáciles de mantener que son implementables de forma independiente para proporcionar extremos que aúnan sistemas dispares. Heroku es un excelente lugar para ejecutar aplicaciones y microservicios que puede utilizar con Salesforce a través de varios métodos de integración.
Cuatro razones habituales para integrar aplicaciones de Heroku con Salesforce son:
- Replicación de datos
- Proxies de datos
- Interfaces de usuario personalizadas
- Procesos externos
Analizaremos cada una con mayor profundidad más adelante en el módulo.
Integración a través de la replicación de datos
La replicación de datos es la copia o sincronización de datos entre Salesforce y otro sistema. Puede utilizar la replicación de datos para almacenar datos con el fin de activar la creación de reportes y el análisis entre fuentes de datos. También puede utilizarla para que funcione con sistemas heredados que necesitan datos procedentes de Salesforce o ingresar datos en Salesforce. El caso de uso más habitual con Heroku y Salesforce es proporcionar una interfaz de alto desempeño y baja latencia para aplicaciones de cara a los clientes construidas con tecnologías de código abierto.
Por ejemplo, digamos que está vendiendo sombreros de fiesta hinchables con forma de unicornio. Salesforce es su sistema de registro para la información del producto, como los precios y el inventario, con un sitio web público construido con Node.js, Rails, Java, etcétera. El sitio web utiliza esos datos para mostrar la disponibilidad y proporcionar funciones para realizar pedidos. Con la aplicación web pública ejecutándose en Heroku, tiene sentido replicar la información del producto en un almacén de datos en Heroku para que pueda controlar un número masivo de solicitudes con una latencia baja. Por ejemplo, si los usuarios de un sitio público pueden dar a "Me gusta" en un producto, puede utilizar la replicación de los datos para propagar el número de Me gusta en Salesforce para el equipo de marketing.
Integración a través de los proxies de datos
Los proxies de datos agregan varios almacenes de datos, pero a diferencia de la replicación de datos, los datos no se copian. Los datos pueden ser de solo lectura bajo demanda. Este enfoque activa la ciencia de datos, la inteligencia de negocio, la creación de reportes y las herramientas para la creación de tableros para recopilar datos entre múltiples almacenes de datos sin tener que preocuparse de los desafíos de la sincronización de datos como el almacenamiento y la obsolescencia. Puede integrar sistemas heredados y sistemas externos a través de proxies de datos para proporcionar datos a Salesforce, o bien Salesforce puede proporcionar sus datos a otros sistemas externos.
Si un usuario de Salesforce necesita ejecutar reportes de inventario que correlacionen datos de productos en Salesforce con datos de almacén procedentes de un sistema externo, los proxies de datos pueden proporcionar esa información sin emplear métodos más lentos como la transformación y carga de extracción (ETL). Cuando se ejecuta el reporte, Salesforce obtiene los datos necesarios del sistema externo sin almacenar los datos en ningún momento. Lo mismo funciona también en la dirección opuesta: una aplicación que se ejecuta en Heroku es un proxy de datos para Salesforce a otro sistema, lo que proporciona una capa de seguridad y transformación. Trataremos eso en breve.
Integración a través de interfaces de usuario personalizadas
Puede crear interfaces de usuario personalizadas fácilmente para Salesforce empleando varias tecnologías, como componentes Lightning y de Visualforce, por nombrar dos de ellos. Cuando las interfaces se construyen con tecnologías de código abierto como Java, Node.js, PHP, etcétera, pueden ejecutarse en Heroku e integrarse en la interfaz de usuario de Salesforce o solo con datos de Salesforce. Otras veces, un sistema heredado o externo proporciona una interfaz de usuario que necesita aflorar en la interfaz de usuario de Salesforce.
Por ejemplo, una compañía que utiliza Salesforce para CRM compra otra compañía con un sistema personalizado construido con Java. Un sencillo método inicial para integrar esos sistema es simplemente ejecutar el sistema Java en Heroku y representarlo en Salesforce. La ejecución del sistema Java en Heroku puede aliviar las cargas de ampliación y operaciones estandarizando al mismo tiempo una arquitectura de implementación para sistemas personalizados. Las interfaces de usuario autónomas que se ejecutan en Heroku y se integran con datos de Salesforce pueden proporcionar extensiones de back-office para Salesforce, así como las aplicaciones móviles y web de cara a los clientes. Las interfaces de usuario personalizadas pueden tener bibliotecas, funciones o conjuntos de habilidades de desarrollador que impulsen la decisión de utilizar Heroku y tecnologías de código abierto en lugar de las opciones nativas de Salesforce Platform.
Integración a través de procesos externos
Los procesos externos pueden transferir el procesamiento por lotes y desencadenar la gestión de eventos a aplicaciones en Heroku. Este método puede resultar útil dependiendo del tipo de trabajo que haya que realizar y la cantidad de esfuerzo aparejado. La ciencia de datos, el aprendizaje automático, el procesamiento de imágenes y video, así como la integración con sistemas heredados o externos pueden ser razones para descargar procesos externos sobre Heroku.
Como ejemplo, digamos que su compañía inmobiliaria carga fotografías de cada casa que tiene a la venta. Esas fotos son de gran tamaño, de modo que necesita una forma de cambiar su tamaño para reducir los tiempos de carga y los costos de almacenamiento. Puede descargar fácilmente este trabajo sobre un proceso externo en Heroku. Cada vez que se carga una fotografía en Salesforce, se envía a una aplicación en Heroku para su procesamiento, y la imagen con el tamaño cambiado se guarda de vuelta en Salesforce. La aplicación en Heroku que controla el proceso externo podría ser responsable únicamente de esa parte del sistema. En ese caso, es probable que la aplicación se considere un microservicio que puede implementarse de forma separada sin ninguna otra dependencia de sistemas.
Descripción general de los métodos de integración
Ahora sabe que la replicación de datos, los proxies de datos, las interfaces de usuario personalizadas y los procesos externos son estupendas razones para combinar Heroku y Salesforce. Pero, ¿cómo se hace esto en la práctica? Existe un número de métodos para realizar estos tipos de integraciones, que incluyen:
- Heroku Connect
- Salesforce Connect
- APIs de REST de Salesforce
- Llamadas
Profundizaremos en cada uno de ellos en breve, pero aquí tiene una rápida descripción general para empezar a trabajar.
Heroku Connect
Heroku Connect proporciona replicación de datos y proxies de datos para Salesforce. La replicación de datos sincroniza datos entre Salesforce y una base de datos Postgres de Heroku. Dependiendo de cómo esté configurada, la sincronización es unidireccional o bidireccional Heroku Connect también proporciona un proxy de datos para Salesforce a través del protocolo OData con Objetos externos de Heroku. Los Objetos externos de Heroku proporcionan un contenedor OData para la base de datos Postgres de Heroku con la que Heroku Connect mantiene una conexión. Esta función permite a los otros servicios web recuperar datos desde la base de datos Postgres de Heroku especificada empleando extremos RESTful generados por el contenedor.
Una de los mayores beneficios de la utilización de Heroku Connect para la replicación de datos es que un subconjunto de datos de Salesforce queda accesible de forma rápida y sencilla para una aplicación en Heroku. Como desarrollador de aplicaciones, solo tiene que redactar SQL estándar para consultas de la manera a la que está habituado. Heroku Connect y Postgres proporcionan un acceso de baja latencia y alto desempeño a los datos de Salesforce.
Salesforce Connect
Puede utilizar Salesforce Connect (anteriormente denominado Lightning Connect) como un proxy de datos para sacar OData u otras fuentes de datos a Salesforce según demanda. No se copian datos a la base de datos de Salesforce. Puede ejecutar extremos que exponen OData 2.0 en Heroku o según lo proporcionen sistemas externos. Como se mencionó anteriormente, Heroku Connect puede exponer una base de datos Postgres de Heroku como OData para su consumo por parte de Salesforce Connect. De forma alternativa, los adaptadores personalizados de Salesforce Connect permiten que Salesforce haga de proxy de cualquier fuente de datos con la que Apex se pueda comunicar, incluidas REST con XML o JSON y SOAP.
El beneficio principal de Salesforce Connect es que incorpora datos externos a la interfaz de usuario de Salesforce y hace que parezca que los datos residen en Salesforce, aunque solo hace de proxy según demanda desde una fuente de datos externa. Este proceso hace sencilla la recopilación de fuentes de datos dispares para usuarios de Salesforce.
APIs de REST de Salesforce
Las API de REST de Salesforce proporcionan a las aplicaciones en Heroku acceso a datos de Salesforce a través de solicitudes sencillas HTTP con formato JSON. Puede utilizar esta integración para los proxies de datos y las interfaces de usuario personalizadas. Las aplicaciones creadas con tecnologías de código abierto que se ejecutan en Heroku pueden utilizar OAuth para autorizar a los usuarios en una interfaz de usuario personalizada y luego interactuar con datos de Salesforce en su nombre. Los casos de uso de integración sin una interfaz de usuario pueden actuar como agentes de datos entre Salesforce y sistemas externos.
Llamadas
Puede utilizar llamadas desde Salesforce para llamar a procesos externos en Heroku. Las llamadas se redactan en Apex o se utilizan acciones de mensaje saliente para hacer que los eventos en Salesforce desencadenen la ejecución de un proceso en Heroku. Ese proceso a menudo utiliza uno de los métodos de integración anteriormente mencionados para obtener el resultado del proceso de vuelta en Salesforce.
Visite la publicación de blog Ampliar flujos con cómputos de Heroku: un patrón impulsado por eventos para obtener más información sobre Heroku y los servicios externos.
Comparación de métodos de integración
Cada método de integración de Salesforce y Heroku tiene un lugar dependiendo de los conjuntos de habilidades del desarrollador y el caso de uso a mano. A continuación se describen algunas diferencias básicas entre las opciones de integración.
|
Heroku Connect |
Salesforce Connect |
APIs de REST |
Llamadas |
---|---|---|---|---|
Modelo de seguridad |
Usuario de integración |
Varias (incluyendo usuario de integración y principal nombrado) |
OAuth |
Usuario de aplicación |
Límites |
Excluido de los límites |
Número máximo de fuentes, objetos y campos |
Límites de API |
Límites de API |
Funciones de sObject |
Todas las funciones estándar |
Solo lectura Sin campos de fórmula ni de resumen Sin desencadenadores ni procesos de aprobación Sin reglas de validación Seguimiento del historial de campos Sin notas, archivos adjuntos |
Todas las funciones estándar |
N/A |
Estrategia de datos |
Sincronización bidireccional en tiempo real u OData |
OData o proxy |
Lectura y copia |
Carga |
Usuarios finales |
Anónimo, clientes |
Usuarios de Salesforce |
Cualquiera |
No |
Protocolo |
SQL |
Apex |
HTTP |
HTTP |
A continuación se describen algunas sugerencias generales para las integraciones:
- Par replicar datos entre Salesforce y Heroku, utilice Heroku Connect.
- Para exponer una base de datos Postgres de Heroku en Salesforce, utilice el Objeto externo de Heroku Connect.
- Para hacer de proxy de fuentes de datos OData, SOAP, XML o JSON en Salesforce, utilice Salesforce Connect.
- Si Heroku Connect no se ajusta al escenario, como cuando tiene una interfaz de usuario personalizada en Heroku donde los usuarios inician sesión a través de Salesforce, utilice las API de REST de Salesforce.
- Para descargar o ampliar el procesamiento de eventos de datos de Salesforce, utilice llamadas desde Salesforce a Heroku.