Skip to main content

Grundlegendes zur ereignisorientierten Softwarearchitektur

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Auflisten der Komponenten einer ereignisbasierten Softwarearchitektur
  • Erläutern der Vorteile einer ereignisorientierten Softwarearchitektur
  • Beschreiben von Anwendungsfällen für die Funktion "Plattformereignisse"
  • Beschreiben der Merkmale eines Plattformereignisses

Bevor Sie mit diesem Modul starten

Wir wissen, dass Sie unbedingt loslegen möchten! Ehe Sie sich jedoch an die Arbeit in diesem Modul begeben, sollten Sie mit einigen Konzepten vertraut sein, um dieses Modul absolvieren zu können. 

Dieses Modul zeigt Ihnen, wie Sie Plattformereignisse veröffentlichen können, indem Sie Apex, REST-API, Flows und Prozesse nutzen. Außerdem wird in diesem Modul behandelt, wie Sie neben anderen Methoden mit Apex-Auslösern Plattformereignisse abonnieren. Um dieses Modul verstehen zu können, sollten Sie mit mindestens einer dieser Technologien vertraut sein. Um die praktische Aufgabe in diesem Modul bewältigen zu können, sollten Sie Kenntnisse über Apex-Auslöser haben. Hier finden Sie eine Liste mit einem Trail und Modulen, anhand derer Sie Apex erlernen können.

Auch Vertrautheit mit den Konzepten von Pub/Sub-API ist für dieses Modul hilfreich, aber nicht erforderlich. Informationen zur Pub/Sub-API finden Sie in der Dokumentation zur Pub/Sub-API.

Grundlegendes zur ereignisorientierten Softwarearchitektur

Hat Ihr Auftragsabwicklungssystem ein Paket versendet? Müssen Ihre Druckerkassetten ausgetauscht werden? Ganz egal, wozu Sie benachrichtigt werden möchten: die Salesforce-Plattform für Benachrichtigungen im Unternehmen sorgt für die sichere und skalierbare Übermittlung benutzerdefinierter Benachrichtigungen innerhalb von Salesforce und aus externen Quellen. Mithilfe von Plattformereignissen können Sie Ihre Systeme überwachen und Änderungen an andere Systeme übermitteln.

Grundlage einer ereignisgesteuerten Kommunikation ist ein auf Veröffentlichung und Abonnements basierendes Modell: Ein Sender überträgt eine Nachricht, die von einem oder mehreren Empfängern empfangen wird. Dies ist vergleichbar mit einer Funkübertragung: Ein Sendemast überträgt ein Funksignal, das von Empfängern empfangen wird, sobald sie die richtige Frequenz eingestellt haben.

Wie bei einer Funkübertragung erfolgt die ereignisbasierte Kommunikation vom Sender zum Empfänger. Ereignisse werden unabhängig davon gesendet, ob die Empfänger empfangsbereit sind, und Empfänger bestätigen nicht den Empfang eines Ereignisses. Ereignisbasierte Kommunikation erfolgt in Echtzeit, als genauer gesagt, nahezu in Echtzeit. Funkwellen werden mit Lichtgeschwindigkeit übertragen, aber ereignisbasierte Software- und Hardwaresysteme weisen in der Regel Latenzen auf. 

Im Trailhead-Modul "Lightning-Plattform-API – Grundlagen" haben wir die Analogie von Radar auf einem Piratenschiff verwendet, um die Ereigniserkennung zu veranschaulichen. Diese Analogie funktioniert gut für das Streaming von Datenänderungserfassungs-Ereignissen, die auf Änderungen in Salesforce-Datensätzen basieren. Dieses Kommunikationsmodell erfordert nur einen Abonnenten. Doch bei Plattformereignissen gibt es zwei Teilnehmer an der Kommunikation: einen Sender und einen Empfänger. Sie bilden die beiden Komponenten einer ereignisorientierten Architektur.

Komponenten ereignisorientierter Systeme

Ehe wir fortfahren, möchten wir einige Begriffe definieren.

Ereignis

Eine Änderung eines Status, die in einem Geschäftsprozess von Bedeutung ist. Die Erteilung eines Auftrags ist beispielsweise ein bedeutendes Ereignis, da die Auftragsabwicklung den Eingang einer Benachrichtigung erwartet, ehe ein Auftrag verarbeitet wird.

Ereignisnachricht

Eine Nachricht, die Daten zum Ereignis enthält. Wird auch Ereignisbenachrichtigung genannt. Eine Ereignisnachricht kann beispielsweise eine Benachrichtigung zu einer Auftragserteilung sein, die Informationen zum Auftrag enthält.

Ereignisproduzent

Der Urheber einer Ereignisnachricht. Beispiel: eine Auftragserteilungsanwendung.

Ereigniskanal

Ein Stream von Ereignissen, bei dem ein Ereignisproduzent Ereignisnachrichten sendet, die von Ereignisnutzern gelesen werden. Bei Plattformereignissen ist der Kanal für ein einzelnes Plattformereignis vorgesehen oder ein benutzerdefinierter Kanal, der Ereignisnachrichten für mehrere Plattformereignisse zusammenfasst.

Ereignisnutzer

Ein Abonnent eines Kanals, der Nachrichten auf dem Kanal empfängt. Eine Auftragsabwicklungsanwendung wird beispielsweise über neue Aufträge benachrichtigt.

Ereignisbus

Ein mandantenfähiger Multicloud-Ereignisspeicher und -Übermittlungsservice, der auf einem Veröffentlichen/Abonnieren-Modell basiert. Der Ereignisbus ermöglicht das Abrufen gespeicherter Ereignisnachrichten zu einem beliebigen Zeitpunkt während des Aufbewahrungszeitraums. Der Ereignisbus basiert auf einem zeitlich geordneten Protokoll, das sicherstellt, dass Ereignisnachrichten in der Reihenfolge ihres Eingangs bei Salesforce gespeichert und zugestellt werden.

Das folgende Diagramm veranschaulicht eine ereignisbasierte Softwarearchitektur.

Im Gegensatz zu Kommunikationsmodellen nach dem Anforderung/Antwort-Prinzip sind in einer auf einem ereignisorientierten basierenden Softwarearchitektur Ereignisproduzenten von Ereignisnutzern entkoppelt. Dadurch wird das Kommunikationsmodell in verbundenen Systemen vereinfacht. Es müssen keine Anforderungen an einen Server gerichtet werden, um Informationen zu einem bestimmten Zustand abzurufen. Stattdessen abonniert ein System einen Ereigniskanal und wird benachrichtigt, sobald neue Zustände auftreten. Eine beliebige Anzahl von Ereignisnutzern kann dieselben Ereignisse empfangen und darauf reagieren. Sobald ein Ereignis eintritt, empfangen Systeme diese Informationen und können darauf nahezu in Echtzeit reagieren. Systeme, die Ereignisse senden, und andere, die Ereignisse empfangen, weisen keine Abhängigkeiten voneinander auf, mit Ausnahme der Semantik des Nachrichteninhalts.

Die Salesforce-Plattform für Benachrichtigungen im Unternehmen bietet die Vorteile einer ereignisorientierten Softwarearchitektur. Plattformereignisse sind die Ereignisnachrichten, die Ihre Anwendungen senden und empfangen. Sie vereinfachen das Kommunizieren von Änderungen und Reagieren darauf, ohne dass Sie komplexe Logik schreiben müssen. Ereignisproduzenten und -abonnenten kommunizieren über Plattformereignisse miteinander. Ein oder mehrere Abonnenten können dasselbe Ereignis überwachen und Aktionen ausführen.

Angenommen, eine Nachrichtenagentur namens Cloud News sendet Ereignisse an abonnierende Clients mit den neuesten Informationen zu Verkehrs- und Straßenverhältnissen in einer Bergregion. Die Inhalte dieser Ereignisse sind nicht bloß die Nachrichten selbst, sondern auch zugehörige Details wie die Dringlichkeit der Nachricht und der Ort des Vorfalls. Abonnenten können diese Ereignisse empfangen und bestimmen, welche Aktionen basierend auf der Dringlichkeit der Nachricht erfolgen sollen.

Das ist alles gut und schön, doch was sind reale Fälle, in denen Sie Plattformereignisse verwenden können? Selbstredend ist die Nutzung von Plattformereignissen nicht auf Nachrichtenagenturen beschränkt. Es folgen einige nützliche Anwendungsbereiche.

Beispiele für die Nutzung von Plattformereignissen

Lassen Sie uns einen Blick auf einige Geschäftsszenarien werfen, in denen Plattformereignisse zum Einsatz kommen. In diesen Szenarien kommunizieren Salesforce und externe Systeme über Plattformereignisnachrichten. Im ersten Szenario benachrichtigt eine Anwendung in Salesforce externe Anwendungen zur Auftragsabwicklung über einen Produktversandauftrag. Im zweiten Szenario benachrichtigt eine externe Produktanwendung Salesforce über Artikelretouren. Das letzte Szenario veranschaulicht, wie Ereignisnachrichten in Salesforce mithilfe von Auslösern genutzt werden.

Plattform zu externer Anwendung: Auftragsabwicklung in einer Lieferantenanwendung

Wenn in Salesforce eine Opportunity als "Gewonnen" geschlossen wird, hat Ihr Unternehmen einen Abschluss mit einem Kunden erzielt. Angenommen, Sie arbeiten mit einem Lieferanten zusammen, um zu einer Opportunity gehörige Produkte zu versenden. Jeder Lieferant hat eine externe Anwendung zum Verarbeiten von Versandaufträgen für bestimmte Produkte. Die externe Anwendung überwacht Plattformereignisse. Beim Schließen einer Opportunity wird ein Auslöser, der Teil der Produktbestellungsanwendung in Salesforce ist, ausgelöst und eine Plattformereignisnachricht wird veröffentlicht. Jede Lieferantenanwendung wird über das Ereignis benachrichtigt. Der für den Versand des jeweiligen Produkts zuständige Lieferant erstellt die Sendung.

Externe Anwendung zu Plattformanwendung: Verarbeiten von Artikelretouren in Salesforce

Angenommen, ein Kunde möchte einen erworbenen Artikel an einen Lieferanten zurückgeben. Ein externes System sendet Artikelretourenanforderungen zur Verarbeitung an Salesforce. Das externe System veröffentlicht ein Plattformereignis, um Salesforce auf die Artikelretoure aufmerksam zu machen. Ein Ereignis-Listener (Auslöser) in Salesforce empfängt das Ereignis und führt verschiedene Aktionen aus. Der Auslöser kann beispielsweise den Vertriebsmitarbeiter auf die Retoure aufmerksam machen und eine Bestätigungs-E-Mail an den Kunden senden.

Plattform zu Plattform: Neuzuweisen von Lead-Datensätzen

Wenn ein Lead in Salesforce zugewiesen ist, wird ein Lead-Auslöser ausgelöst, der offene Opportunities und Kundenvorgänge im Zusammenhang mit dem Lead-Inhaber sucht. Basierend auf den zugehörigen Datensätzen veröffentlicht der Auslöser ein Ereignis, das von einer Salesforce-Anwendung empfangen wird. Auf Grundlage der Ereignisinformationen weist die Anwendung den Lead neu zu und erstellt einen Chatter-Post.

In diesem Szenario können Sie die gleichen Aktionen mithilfe von Flow Builder ausführen. Doch bei der Nutzung von Plattformereignissen können Sie von einem ereignisbasierten Programmierungsmodell und einer standardisierten Programmierung in Ihren Anwendungen profitieren.

Merkmale von Plattformereignissen

Nun, da Sie eine Vorstellung davon haben, wann Plattformereignisse verwendet werden sollten, wollen wir ihre Komponenten und Merkmale eingehender untersuchen.

Sie legen die benutzerdefinierten Daten fest, die Plattformereignisse enthalten. Ebenso wie benutzerdefinierte Objekte werden Plattformereignisse in Salesforce von Ihnen definiert. Sie erstellen die Definition eines Plattformereignisses, indem Sie ihr einen Namen geben und benutzerdefinierte Felder hinzufügen. Hier sehen Sie eine Beispieldefinition benutzerdefinierter Felder für ein Nachrichtenereignis für die Agentur Cloud News.

Feldbezeichnung/-name

API-Feldname

Feldtyp

Standort

Location__c

Text

Länge: 100

Dringend

Urgent__c

Kontrollkästchen

News Content

News_Content__c

Textfeld (Lang)

Plattformereignisse und Salesforce-Objekte

Ein Plattformereignis ist eine besondere Art von Salesforce-Einheit, die einem Salesforce-Objekt auf viele Weisen ähnelt. Eine Ereignisnachricht ist eine Instanz eines Plattformereignisses, vergleichbar mit einem Datensatz, der eine Instanz eines Salesforce-Objekts ist. Im Gegensatz zu Datensätzen können Sie Ereignisnachrichten nicht aktualisieren oder löschen und auch nicht auf der Salesforce-Benutzeroberfläche anzeigen.

Für Plattformereignisse können Sie Lese- und Erstellungsberechtigungen festlegen. Benutzern können Sie in Profilen oder Berechtigungssätzen Berechtigungen erteilen.

Verwenden von Plattformereignissen in nativen und externen Apps

Plattformereignisse ermöglichen den Fluss von Ereignisnachrichten innerhalb von Salesforce bzw. an oder von externen Anwendungen. Anwendungen auf der Salesforce-Plattform verwenden zum Veröffentlichen von Ereignissen eine Apex-Methode und zum Nutzen von Ereignissen einen Apex-Auslöser oder die Lightning-Komponente "Emp API". Als Alternative zum Programmieren können Sie Ereignisse auch mit dem deklarativen Tool Flow Builder veröffentlichen. Externe Anwendungen veröffentlichen Ereignisse mithilfe der Pub/Sub-API oder der Daten-APIs und nutzen Ereignisse mithilfe der Pub/Sub-API. Wie Sie sehen, lassen sich Plattformereignisse überaus flexibel einsetzen!

Verwenden Sie Plattformereignisse in diesen Fällen:

  • Zum Senden und Empfangen benutzerdefinierter Ereignisdaten mit einem vordefinierten Schema
  • Zum Veröffentlichen oder Abonnieren von Ereignissen in Apex
  • Für ein flexibles Veröffentlichen und Verarbeiten von Ereignissen auf der Salesforce-Plattform
Hinweis

Eine andere Art von Streaming-Ereignis ist ein Datenänderungserfassungs-Ereignis. Dieses Ereignis enthält Änderungen an Salesforce-Datensätzen nach Erstellungs-, Aktualisierungs-, Lösch- und Wiederherstellungsvorgängen.  Weitere Informationen über die Datenänderungserfassung finden Sie im Trailhead-Modul Datenänderungserfassung – Grundlagen.

In der nächsten Lektion beschäftigen wir uns mit dem Definieren eines Plattformereignisses und von Veröffentlichungsereignissen.

Ressourcen

Teilen Sie Ihr Trailhead-Feedback über die Salesforce-Hilfe.

Wir würden uns sehr freuen, von Ihren Erfahrungen mit Trailhead zu hören: Sie können jetzt jederzeit über die Salesforce-Hilfe auf das neue Feedback-Formular zugreifen.

Weitere Infos Weiter zu "Feedback teilen"