Introdução à integração entre Salesforce e Heroku

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Entender os diferentes motivos para integrar o Salesforce e a Heroku.
  • Descrever os métodos de integração do Salesforce e da Heroku.

Como desenvolvedor do Salesforce, você sabe que a Heroku é um ótimo lugar para executar aplicativos que se integram ao Salesforce para vários casos de uso. Mas quais são os motivos por trás disso e os melhores métodos de integração? Leia e encontre as respostas.

Motivos de integração do Salesforce e da Heroku

Os sistemas empresariais modernos são compostos de várias partes diferentes com interfaces diferentes para vários tipos de usuários. Essas interfaces costumam juntar dados de várias origens. A arquitetura de microsserviços apareceu como forma de desmembrar as partes de um sistema em serviços de implantação autônoma e mais fáceis de gerenciar a fim de fornecer pontos de extremidade que unem diferentes serviços. A Heroku é um ótimo lugar para executar aplicativos e microsserviços que podem ser usados com o Salesforce por meio de vários métodos de integração.

Existem quatro objetivos comuns para a integração dos aplicativos na Heroku com o Salesforce:

  • Replicação de dados
  • Proxies de dados
  • Interfaces de usuário personalizadas
  • Processos externos

Veremos cada um desses objetivos em detalhe mais adiante neste módulo.

Integração por meio de replicação de dados

A replicação de dados é a cópia ou a sincronização de dados entre o Salesforce e outro sistema. Você pode usar a replicação de dados para armazenar dados e permitir o relatório de origem e a análise entre dados. Você também pode usá-la para trabalhar com sistemas herdados que precisam inserir ou obter dados do Salesforce. O caso de uso mais comum da Heroku com o Salesforce é a oferta de interface de alta produtividade e baixa latência para aplicativos voltados para o cliente criados com tecnologias de código aberto.

Por exemplo, digamos que você venda chapéus de festa com unicórnios infláveis. O Salesforce é seu sistema de registro de informações de produto, como preço e inventário, com um site público criado com Node.js, Rails, Java e outros. O site usa esses dados para exibir a disponibilidade e fornecer o recurso de solicitações. Com o aplicativo Web público em execução na Heroku, faz sentido replicar a informação de produto em um repositório de dados na Heroku para que ela possa lidar com inúmeras solicitações com baixa latência. Por exemplo, se os usuários do site público podem “curtir” um produto, você pode usar a replicação de dados para propagar a quantidade de curtidas até a equipe de marketing do Salesforce.

Integração por meio de proxies de dados

Os proxies de dados agregam repositórios de dados diferentes, mas, diferentemente da replicação, os dados não são copiados. Os dados só podem ser lidos sob demanda. Esta abordagem permite que as ferramentas de ciência de dados, business intelligence, relatório e painéis reúnam dados de vários repositórios sem se preocuparem com questões de sincronização de dados, como armazenamento e desatualização. Você pode integrar sistemas herdados e sistemas externos por meio de proxies de dados para fornecer dados ao Salesforce, ou este pode fornecer seus dados a outros sistemas externos.

Se um usuário do Salesforce precisar executar relatórios de inventário que correlacionem dados de produto no Salesforce com dados de armazenamento de um sistema externo, os proxies de dados podem dar essa informação sem ter que usar métodos de execução mais lenta, como extração, transformação e carregamento (ETL). Quando o relatório é executado, o Salesforce busca os dados necessários no sistema externo sem ter que armazená-los. Isso também funciona no sentido contrário: um aplicativo em execução na Heroku é um proxy de dados do Salesforce para outro sistema que forneça uma camada de segurança e transformação. Falaremos sobre isso em breve.

Integração por meio de interfaces de usuário personalizadas

Você pode criar interfaces de usuário para o Salesforce facilmente usando várias tecnologias, como o Visualforce e os componentes do Lightning, por exemplo. Quando as interfaces são criadas com tecnologias de código aberto, como Java, Node.js, PHP e outras, elas podem ser executadas na Heroku e integradas à interface de usuário do Salesforce ou aos dados do Salesforce. Em outras situações, um sistema herdado ou um sistema externo pode fornecer uma interface de usuário que precisa ter contato com a interface de usuário do Salesforce.

Por exemplo, uma empresa que usa o Salesforce para CRM adquire outra empresa com um sistema personalizado criado em Java. Um método fácil para integrar esses sistemas seria executar o sistema Java na Heroku e processá-lo no Salesforce. A execução do sistema Java na Heroku pode aliviar os fardos de dimensionamento e operações na padronização de uma arquitetura de implantação de sistemas personalizados. As interfaces de usuário autônomas em execução na Heroku e integradas aos dados do Salesforce podem oferecer extensões de back-office ao Salesforce e aplicativos móveis e Web voltados para o cliente. As interfaces de usuário personalizadas podem ter bibliotecas, recursos ou conjuntos de habilidades do desenvolvedor que fundamentam a decisão de usar a Heroku e as tecnologias de código aberto em vez das opções nativas do Force.com.

Integração por meio de processos externos

Os processos externos podem descarregar o processamento em lotes ou o fluxo de trabalho e acionar o tratamento de eventos para aplicativos na Heroku. Este método pode ser útil dependendo do tipo de trabalho que precisa ser feito e a quantidade de trabalho envolvida. Ciência de dados, aprendizado de máquina, processamento de imagem e vídeo e integração com sistemas herdados ou sistemas externos podem ser motivos para descarregar os processos externos para a Heroku.

Como exemplo, digamos que sua imobiliária carregue fotos de imóveis para cada anúncio de casa à venda. Estas fotos são muito grandes e, por isso, você precisa poder redimensioná-las a fim de reduzir o tempo de carregamento e o custo de armazenamento. É possível descarregar este trabalho para um processo externo na Heroku. Cada vez que uma foto é carregada no Salesforce, ela é enviada para um aplicativo na Heroku para processamento e a imagem redimensionada é salva no Salesforce. O aplicativo na Heroku que lida com o processo externo pode ser responsável somente por essa parte do sistema. Nesse caso, o aplicativo provavelmente é considerado um microsserviço que pode ser implantado separadamente sem depender de outras partes do sistema.

Visão geral dos métodos de integração

Agora você sabe que a replicação de dados, os proxies de dados, as interfaces de usuário personalizadas e os processos externos são ótimos motivos para combinar a Heroku e o Salesforce. Mas como se faz isso de fato? Existem vários métodos disponíveis para efetuar esses tipos de integração, incluindo:

  • Heroku Connect
  • Salesforce Connect
  • APIs REST do Salesforce
  • Callouts
  • Canvas

Vamos falar sobre cada um desses métodos em detalhe daqui a pouco, mas eis uma visão geral rápida para introduzir o assunto.

Heroku Connect

O Heroku Connect oferece replicação de dados e proxies de dados para o Salesforce. A replicação de dados sincroniza dados entre o Salesforce e um banco de dados Heroku Postgres. Dependendo de como está configurada, a sincronização pode ser unilateral ou bilateral. Para passar à prática com o Heroku Connect, confira o projeto do Trailhead Início Rápido: Heroku Connect. O Heroku Connect também fornece um proxy de dados ao Salesforce por meio do protocolo OData usando objetos externos da Heroku. Os objetos externos da Heroku fornecem um wrapper OData para o banco de dados Heroku Postgres com o qual o Heroku Connect mantém conexão. Este recurso permite que outros serviços Web recuperem dados do banco de dados Heroku Postgres especificado usando pontos de extremidade RESTful gerados pelo wrapper.

Diagrama mostrando setas que saem primeiro do Salesforce para um componente intermediário e depois para o Heroku e que, por último, retornam ao Salesforce quando se insere um contato

Uma das maiores vantagens de usar o Heroku Connect para a replicação de dados é que um subconjunto de dados do Salesforce pode ser acessado de maneira rápida e fácil por um aplicativo na Heroku. Como desenvolvedor de aplicativo, você só precisa escrever SQL padrão para as consultas como de hábito. O Heroku Connect e o Postgres fornecem acesso de alta produtividade e baixa latência aos dados do Salesforce.

Salesforce Connect

Você pode usar o Salesforce Connect (que antigamente chamava-se Lightning Connect) como proxy de dados para acionar o OData ou outras origens de dados no Salesforce sob demanda. Nenhum dado é copiado para o banco de dados do Salesforce. Você pode executar pontos de extremidade que expõem o OData 2.0 na Heroku ou os fornecidos por sistemas externos. Conforme mencionado anteriormente, o Heroku Connect pode expor um banco de dados Heroku Postgres como OData para ser consumido pelo Salesforce Connect. Como alternativa, os adaptadores personalizados do Salesforce Connect permitem que o Salesforce faça o proxy de qualquer origem de dados que possa comunicar com o Apex, inclusive REST com XML ou JSON e SOAP.

Imagem mostrando como os Objetos externos podem ser usados para conectar externamente com dados  exteriores disponíveis a partir de SAP, Oracle, Workday ou Heroku

A principal vantagem do Salesforce Connect é que traz dados externos para a interface de usuário do Salesforce e faz parecer que os dados residem no Salesforce, embora o proxy seja feito apenas sob demanda de uma origem de dados externa. Este processo facilita o agrupamento de origens de dados diferentes para usuários do Salesforce.

APIs REST do Salesforce

As APIs REST do Salesforce fornecem aos aplicativos na Heroku acesso a dados do Salesforce por meio de solicitações HTTP formatadas para JSON simples. Você pode usar esta integração para proxies de dados e interfaces de usuário personalizadas. Os aplicativos criados com tecnologias de código aberto que estão em execução na Heroku podem usar OAuth para autorizar os usuários em uma interface de usuário personalizada e depois interagir com os dados do Salesforce em seu nome. Os casos de uso de integração sem uma interface de usuário podem agenciar os dados entre o Salesforce e os sistemas externos.

Imagem mostrando uma conexão entre os objetos no Salesforce ao Heroku por meio de uma interface REST

Callouts

Você pode usar callouts do Salesforce para chamar processos externos na Heroku. Você escreve os callouts no Apex ou utiliza mensagens de saída de fluxo de trabalho para fazer com que os eventos no Salesforce acionem a execução de um processo na Heroku. Esse processo normalmente usa um dos métodos de integração mencionados anteriormente para enviar o resultado do processo de volta ao Salesforce.

Diagrama que mostra uma caixa com o Salesforce e um Evento de dados que é acionado ou enviado a partir de uma mensagem de saída. Uma seta sai da caixa e aponta para outra caixa contendo todos os aplicativos hospedados no Heroku

Canvas

O Canvas permite o carregamento de uma interface de usuário externa no Salesforce que pode interagir com dados do Salesforce por meio de API JavaScript. Você pode executar a interface de usuário externa na Heroku e criá-la com tecnologia Web de código aberto. As solicitações de dados feitas pelos aplicativos do Canvas ocorrem no contexto do usuário do Salesforce.

Diagrama mostrando que os aplicativos Heroku podem interagir com o Salesforce através de uma ponte Javascript do Canvas

Como comparar métodos de integração

Cada método de integração do Salesforce e da Heroku tem um propósito dependendo do conjunto de habilidades do desenvolvedor e do caso de uso em questão. Veja algumas diferenças básicas entre as opções de integração.

Heroku Connect Salesforce Connect APIs REST Callouts Canvas
Modelo de segurança Usuário de integração Vários (inclusive o usuário da integração e a denominada principal) OAuth Usuário do aplicativo Usuário do aplicativo
Limites Excluído dos limites Quantidade máxima de fontes, objetos e campos Limites da API Limites da API Limites da solicitação
Recursos SObject Todos os recursos padrão Somente leitura
Sem fórmula e campos de resumo de totalização
Sem acionadores, fluxos de trabalho e processos de aprovação
Sem regras de validação
Rastreamento de histórico de campo
Sem anotações, anexos
Todos os recursos padrão N/D Todos os recursos padrão
Estratégia de dados OData ou sincronização bidirecional em tempo real OData ou proxy Leitura e cópia Carga API do Canvas
Usuários finais Anônimos, clientes Usuários do Salesforce Qualquer um Não Usuários do Salesforce
Protocolo SQL Apex HTTP HTTP HTTP

Eis algumas sugestões gerais para integração:

  • Para replicar dados entre o Salesforce e a Heroku, use o Heroku Connect.
  • Para expor um banco de dados Heroku Postgres ao Salesforce, use o objeto externo do Heroku Connect.
  • Para fazer proxy entre origens de dados OData, SOAP, XML ou JSON e o Salesforce, use o Salesforce Connect.
  • Se o Heroku Connect não for a melhor opção, por exemplo, quando você tem uma interface de usuário personalizada na Heroku em que os usuários fazem login pelo Salesforce, utilize as APIs REST do Salesforce.
  • Para descarregar ou estender o processamento de eventos de dados do Salesforce, use callouts do Salesforce para a Heroku.
  • Para inserir uma interface de usuário personalizada da Heroku (ou outro aplicativo da Web externo) no Salesforce, use o Canvas.

Recursos

Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira