Erste Schritte mit der Salesforce- & Heroku-Integration
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Erläutern der verschiedenen Gründe für die Integration von Salesforce und Heroku
- Beschreiben der Methoden für die Integration von Salesforce und Heroku
Als Salesforce-Entwickler wissen Sie, dass sich Heroku hervorragend dazu eignet, Anwendungen auszuführen, die die Integration mit Salesforce für eine Vielzahl von Anwendungsfällen nutzen. Doch wie lauten die exakten Gründe dafür und, was sind die besten Methoden für die Integration? Im Folgenden werden diese Fragen beantwortet.
Gründe für die Integration von Salesforce und Heroku
Moderne Unternehmenssysteme bestehen aus vielen verschiedenen Bestandteilen mit unterschiedlichen Oberflächen für eine Vielzahl von Benutzertypen. Diese Oberflächen führen oftmals Daten aus vielen verschiedenen Datenquellen zusammen. Die Microservices-Architektur entstand als Möglichkeit, die Bestandteile eines Systems zu entkoppeln und in besser verwaltbare, unabhängig bereitstellbare Services aufzuteilen, um Endpunkte bereitzustellen, die unterschiedliche Systeme zusammenbringen. Heroku eignet sich hervorragend dazu, Anwendungen und Microservices auszuführen, die Sie durch eine Vielzahl von Integrationsmethoden mit Salesforce nutzen können.
Vier gängige Gründe für die Integration von Anwendung in Heroku mit Salesforce sind:
- Datenabgleich
- Daten-Proxys
- Benutzerdefinierte Benutzeroberflächen
- Externe Prozesse
Wir sehen uns jeden dieser Gründe im weiteren Verlauf dieses Moduls genauer an.
Integration durch Datenabgleich
Beim Datenabgleich werden Daten zwischen Salesforce und einem anderen System kopiert oder synchronisiert. Sie können den Datenabgleich für Data Warehousing nutzen, um datenquellenübergreifende Berichte und Analysen zu ermöglichen. Außerdem können Sie den Datenabgleich für die Verwendung mit Altsystemen einsetzen, die Daten entweder aus Salesforce benötigen oder in Salesforce einspeisen. Der gängigste Anwendungsfall mit Heroku und Salesforce ist die Bereitstellung einer Oberfläche mit hohem Durchsatz und geringer Latenz für kundenorientierte Anwendungen, die mit Open Source-Technologien erstellt wurden.
Nehmen wir beispielsweise an, Sie verkaufen aufblasbare Einhorn-Faschingshüte. Salesforce ist Ihr Aufzeichnungssystem für Produktinformationen wie Preis und Bestand mit einer öffentlichen Website, die mit Node.js, Rails, Java usw. erstellt wurde. Die Website nutzt diese Daten, um die Verfügbarkeit anzuzeigen und Bestellfunktionen bereitzustellen. Da die öffentliche Webanwendung auf Heroku ausgeführt wird, macht es Sinn, die Produktinformationen in einem Datenspeicher auf Heroku zu replizieren, damit eine große Anzahl von Anforderungen mit geringer Latenz verarbeitet werden kann. Wenn Benutzer der öffentlichen Website ein Produkt beispielsweise "liken" können, können Sie den Datenabgleich nutzen, um die Anzahl der Likes als Information für das Marketingteam zurück in Salesforce zu übertragen.
Integration durch Daten-Proxys
Data-Proxys aggregieren verschiedene Datenspeicher, doch im Gegensatz zum Datenabgleich werden die Daten nicht kopiert. Die Daten können nur bei Bedarf gelesen werden. Dieser Ansatz ermöglicht Data Science-, Business Intelligence-, Reporting- und Dashboarding-Tools, Daten über mehrere Datenspeicher hinweg zusammenzutragen, ohne sich über Herausforderungen der Datensynchronisierung wie Speicherung und mangelnde Aktualität Gedanken zu machen. Sie können Altsysteme und externe Systeme durch Daten-Proxys integrieren, um Daten für Salesforce bereitzustellen. Es gibt aber auch die Möglichkeit, dass Salesforce seine Daten anderen externen Systemen bereitstellt.
Wenn ein Salesforce-Benutzer Inventarberichte ausführen muss, die Produktdaten in Salesforce mit Lagerdaten aus einem externen System korrelieren, können Daten-Proxys diese Informationen bereitstellen, ohne dass langsamere Methoden wie ETL (Extract, Transform and Load) verwendet werden müssen. Bei der Berichtsausführung ruft Salesforce die notwendigen Daten aus dem externen System ab, ohne die Daten zu speichern. Das Ganze funktioniert auch in der Gegenrichtung: Eine Anwendung, die in Heroku ausgeführt wird, ist ein Daten-Proxy für Salesforce zu einem anderen System, der eine Sicherheits- und Transformationsschicht bereitstellt. Dazu kommen wir gleich noch.
Integration durch benutzerdefinierte Benutzeroberflächen
Sie können ganz leicht benutzerdefinierte Benutzeroberflächen für Salesforce erstellen. Dazu verwenden Sie verschiedene Technologien wie z. B. Visualforce und Lightning Components, um nur zwei zu nennen. Wenn Oberflächen mit Open Source-Technologien wie Java, Node.js, PHP usw. erstellt werden, können sie in Heroku ausgeführt und entweder in die Salesforce-Benutzeroberfläche integriert werden oder über Integrationslösungen nur Salesforce-Daten nutzen. In anderen Fällen bietet ein Alt- oder externes System eine Benutzeroberfläche, die in der Salesforce-Benutzeroberfläche dargestellt werden muss.
Beispiel: Ein Unternehmen, das Salesforce für CRM verwendet, kauft ein anderes Unternehmen mit einem benutzerspezifischen System, das auf Java basiert. Eine einfache Methode für eine erste Integration dieser Systeme besteht darin, das Java-System einfach in Heroku auszuführen und in Salesforce darzustellen. Die Ausführung des Java-Systems in Heroku kann die Skalierungs- und Betriebsprobleme reduzieren und legt gleichzeitig einen Standard für die Bereitstellungsarchitektur für benutzerspezifische Systeme fest. Eigenständige Benutzeroberflächen, die in Heroku ausgeführt werden und per Integration Salesforce-Daten nutzen, können als Back-Office-Erweiterungen zu Salesforce sowie kundenorientierten Web- und mobilen Anwendungen fungieren. Benutzerdefinierte Benutzeroberflächen können Bibliotheken, Funktionen oder Entwickler-Skillsets beinhalten, die den Ausschlag für die Verwendung von Heroku und Open Source-Technologien gegenüber nativen Salesforce Platform-Optionen geben.
Integration durch externe Prozesse
Externe Prozesse können die Batch- und Auslöserereignisverarbeitung in Anwendungen in Heroku verlagern. Abhängig vom Typ des Auftrags und des Arbeitsumfangs, die erledigt werden sollen, kann diese Methode nützlich sein. Data Science, Machine Learning, Bild- und Videoverarbeitung sowie Integration mit Alt- oder externen Systemen können Gründe für die Verlagerung externer Prozesse zu Heroku sein.
Nehmen wir beispielsweise an, Ihr Immobilienunternehmen lädt Fotos für jedes Haus hoch, das es zum Verkauf anbietet. Die Fotodateien sind riesig, und Sie müssen eine Möglichkeit finden, ihre Größe zu reduzieren, um die Hochladedauer und die Speicherkosen zu senken. Diesen Auftrag können Sie leicht in einen externen Prozess in Heroku verlagern. Sobald ein Foto in Salesforce hochgeladen wird, wird es zur Verarbeitung an eine Anwendung in Heroku übertragen, und die verkleinerte Bilddatei wird dann wieder an Salesforce zurück übertragen und gespeichert. Es wäre möglich, dass die Anwendung in Heroku, die den externen Prozess verarbeitet, nur für diesen einen Aspekt des Systems zuständig ist. In diesem Fall gilt die Anwendung wahrscheinlich als Microservice, der separat, ohne andere Systemabhängigkeiten bereitgestellt werden kann.
Überblick über Integrationsmethoden
Sie wissen jetzt, dass Datenabgleich, Daten-Proxys, benutzerdefinierte Benutzeroberflächen und externe Prozesse gute Gründe sind, um Heroku und Salesforce zu kombinieren. Doch wie macht man das ganz konkret? Es gibt eine Reihe von Methoden für die Durchführung dieser Arten von Integrationen, wie etwa:
- Heroku Connect
- Salesforce Connect
- Salesforce REST-APIs
- Callouts
Alle diese Methoden sehen wir uns später noch genauer an, doch hier folgt zunächst ein kurzer Überblick zum Einstieg.
Heroku Connect
Heroku Connect bietet sowohl den Datenabgleich als auch Daten-Proxys für Salesforce. Beim Datenabgleich werden Daten zwischen Salesforce und einer Heroku Postgres-Datenbank synchronisiert. Abhängig von der Konfiguration erfolgt die Synchronisierung nur in eine Richtung oder aber bidirektional. Heroku Connect stellt über das OData-Protokoll unter Verwendung von Heroku External Objects zudem einen Daten-Proxy zu Salesforce bereit. Heroku External Objects stellt einen OData-Wrapper für die Heroku Postgres-Datenbank bereit, zu der Heroku Connect eine Verbindung unterhält. Diese Funktion ermöglicht anderen Webservices, unter Verwendung von RESTful-Endpunkten, die vom Wrapper erstellt wurden, Daten aus der angegebenen Heroku Postgres-Datenbank abzurufen.
Einer der größten Vorteile bei der Verwendung von Heroku Connect für den Datenabgleich besteht darin, dass eine Anwendung in Heroku schnell und einfach auf eine Teilmenge der Salesforce-Daten zugreifen kann. Sie als Anwendungsentwickler schreiben einfach standardmäßige SQL für Abfragen, wie Sie dies sonst auch tun würden. Heroku Connect und Postgres bieten Zugriff auf Salesforce-Daten, der sich durch geringe Latenz und hohen Durchsatz auszeichnet.
Salesforce Connect
Mit Salesforce Connect (früher Lightning Connect) als Daten-Proxy können Sie OData- oder andere Datenquellen ad-hoc in Salesforce laden. Es werden keine Daten in die Salesforce-Datenbank kopiert. Sie können Endpunkte ausführen, die OData 2.0 in Heroku oder gemäß der Bereitstellung durch externe Systeme verfügbar machen. Wie bereits erwähnt kann Heroku Connect eine Heroku Postgres-Datenbank als OData für die Nutzung durch Salesforce Connect bereitstellen. Alternativ ermöglicht es Salesforce Connect durch benutzerdefinierte Adapter, dass Salesforce als Daten-Proxy jede Datenquelle nutzt, mit der Apex kommunizieren kann, einschließlich REST mit XML oder JSON und SOAP.
Der Hauptvorteil von Salesforce Connect besteht darin, dass es externe Daten in die Salesforce-Benutzeroberfläche bringt und es so aussehen lässt, als ob sich die Daten in Salesforce befänden, obwohl sie nur bei Bedarf über den Proxy aus einer externen Datenquelle geladen werden. Dieser Prozess macht es leicht, getrennte Datenquellen für Salesforce-Benutzer zusammenzuführen.
Salesforce REST-APIs
Die Salesforce REST-APIs geben Anwendungen auf Heroku durch einfache JSON formatierte HTTP-Anforderungen Zugriff auf Salesforce-Daten. Sie können diese Integration für Daten-Proxys und benutzerdefinierte Benutzeroberflächen verwenden. Mit Open Source-Technologien erstellte Anwendungen, die auf Heroku ausgeführt werden, können OAuth verwenden, um Benutzer in einer benutzerdefinierten Benutzeroberfläche zu autorisieren und dann in ihrem Namen mit Salesforce-Daten in Interaktion zu treten. Integrations-Anwendungsfälle ohne Benutzeroberfläche können Daten zwischen Salesforce und externen Systemen austauschen.
Callouts
Sie können Callouts von Salesforce verwenden, um externe Prozesse in Heroku aufzurufen. Sie schreiben die Callouts in Apex oder verwenden Aktionen des Typs "Ausgehende Nachricht", damit Ereignisse in Salesforce die Ausführung eines Prozesses in Heroku auslösen. Dieser Prozess verwendet oftmals eine der zuvor genannten Integrationsmethoden, um die Prozessergebnisse wieder in Salesforce zu übertragen.
Suchen Sie den Blog Post Extend Flows with Heroku Compute: An Event Driven Pattern (Erweitern von Flows mit Heroku Compute: ein ereignisgesteuertes Muster) auf, um mehr über Heroku und externe Services zu erfahren.
Vergleich der Integrationsmethoden
Jede Salesforce- und Heroku-Integrationsmethode hat abhängig von der Expertise der Entwickler und dem jeweiligem Anwendungsfall ihre Vorzüge. Die folgende Tabelle zeigt einige grundlegende Unterschiede zwischen den Integrationsoptionen.
|
Heroku Connect |
Salesforce Connect |
REST-APIs |
Callouts |
---|---|---|---|---|
Sicherheitsmodell |
Integrationsbenutzer |
Verschiedene (einschließlich Integrationsbenutzer und benannter Prinzipal) |
OAuth |
Anwendungsbenutzer |
Obergrenzen |
Wird bei Obergrenzen nicht berücksichtigt |
Max. Anzahl von Datenquellen, Objekten und Feldern |
API-Obergrenzen |
API-Obergrenzen |
SObject-Funktionen |
Alle Standardfunktionen |
Lesezugriff Keine Formelfelder und Rollup-Zusammenfassungsfelder Keine Auslöser und Genehmigungsprozesse Keine Validierungsregeln Feldverlaufsverfolgung Keine Notizen und Anhänge |
Alle Standardfunktionen |
Nicht verfügbar |
Datenstrategie |
Bidir. Echtzeit-Synchr. oder OData |
OData oder Proxy |
Lesen & kopieren |
Nutzlast |
Endbenutzer |
Anonym, Kunden |
Salesforce-Benutzer |
Keine Einschränkungen |
Nein |
Protokoll |
SQL |
Apex |
HTTP |
HTTP |
Allgemeine Vorschläge für Integrationslösungen:
- Verwenden Sie Heroku Connect für den Datenabgleich zwischen Salesforce und Heroku.
- Soll eine Heroku Postgres-Datenbank für Salesforce zur Verfügung stehen, verwenden Sie Heroku Connect External Object.
- Für die Proxy-Nutzung von OData-, SOAP-, XML- oder JSON-Datenquellen in Salesforce verwenden Sie Salesforce Connect.
- Wenn Heroku Connect ungeeignet ist, wie etwa, wenn Sie eine benutzerdefinierte Benutzeroberfläche in Heroku nutzen, bei der sich Benutzer über Salesforce anmelden, verwenden Sie die REST-APIs von Salesforce.
- Soll die Verarbeitung von Salesforce-Datenereignissen verlagert oder erweitert werden, verwenden Sie Callouts von Salesforce an Heroku.