Dieses Kapitel führt Sie durch die Wahl der Implementierungsarchitektur für die Entwicklung einer Google Chat-App.
Architekturstile
In diesem Abschnitt werden einige der gängigsten Architekturansätze zum Erstellen von Anwendungen beschrieben. Informationen darüber, welcher Ansatz für Ihre Anwendungen am besten geeignet ist, finden Sie unter Dienstarchitektur auswählen.
Dienstarchitektur
Google Chat unterstützt die Einbindung der Anwendung, implementiert jedoch die Anwendungslogik nicht. Diese Logik muss in Ihrem Code mit den für Ihre Anwendung geeigneten Bibliotheken oder Diensten implementiert werden.
Hier wird mithilfe einer Dienstarchitektur ermittelt, wo der Code instanziiert wird und wie er mit Google Chat interagiert. Die am häufigsten verwendeten werden unten beschrieben.
Webdienst
Eine der häufigsten Implementierungsformen von Anwendungen ist die Verwendung eines Webdiensts oder einer anderen HTTP-Implementierung auf lokalen Servern. In diesem Design konfigurieren Sie Google Chat für die Einbindung in einen Remotedienst über HTTP:
Dadurch kann die Implementierung vorhandene Bibliotheken und Komponenten nutzen, die bereits in Ihrem System vorhanden sind.
Cloud Pub/Sub
Wenn sich die Anwendungsimplementierungen hinter einer Firewall befinden, kann Google Chat möglicherweise keine HTTP-Aufrufe an sie senden. Ein Ansatz zur Lösung dieses Problems ist die Verwendung von Google Cloud Pub/Sub. Durch die Anwendungsimplementierung wird ein Thema abonniert, das Nachrichten von Google Chat überträgt:
In dieser Anordnung muss die App-Implementierung weiterhin HTTP verwenden, um Nachrichten an Google Chat zu senden.
Apps Script
Sie können die Anwendungslogik vollständig in Apps Script erstellen. Dies ist besonders nützlich für Anwendungen, die auch in Google Workspace-Dienste eingebunden werden können. Anwendungen wie diese können Daten mit Google Tabellen, Google Präsentationen, Google Kalender, Google Drive usw. lesen und schreiben.
Überlegen Sie, wie eine Implementierung nicht in Apps Script dargestellt wird. Der in Google Chat und Google Workspace integrierte HTTP-Bot sieht so aus:
Es ist viel einfacher, insbesondere in Bezug auf die Authentifizierung, eine solche Anwendung mit Apps Script mit integrierten Google Workspace-Diensten und implizitem Authentifizierungsmodell zu implementieren.
Eingehende Webhooks
Sie können eine Anwendung erstellen, die mithilfe von Aufrufen an die Google Chat API nur Nachrichten in einen Chatbereich einfügt. Dieser Ansatz ist für einen bestimmten Chatbereich „hartcodiert“ und erlaubt keine Nutzerinteraktion. Diese Art von Anwendung kann weder geteilt noch veröffentlicht werden.
Eingehende Webhooks eignen sich am besten für einfache, einmalige Anwendungen, über die Benachrichtigungen oder der Status gemeldet werden, oder für bestimmte Arten von App-Prototyping.
App-Logik implementieren
Google Chat beschränkt nicht die Art und Weise, wie Sie die Logik Ihrer Anwendung implementieren. Sie können einen einfachen Befehlsparser mit fester Syntax erstellen, erweiterte KI- und Sprachverarbeitungsbibliotheken oder -dienste oder Ähnliches für Ihre spezifischen Ziele verwenden.
Befehlsparser
Befehlsgesteuerte Apps untersuchen den Nachrichteninhalt von Ereignissen, die von Google Chat stammen, und extrahieren dann Befehle und Parameter aus diesen Inhalten.
Ein einfacher Ansatz besteht darin, die Nachricht zu tokenisieren, den Befehl zu extrahieren und dann auf ein Wörterbuch zu verweisen, das Befehle für Handler-Funktionen für jeden Befehl zuordnet.
Natural Language Processing
Viele Anwendungsimplementierungen verwenden Natural Language Processing (NLP), um festzustellen, wonach der Nutzer fragt. Es gibt viele Möglichkeiten, NLP zu implementieren. Ganz egal, welche Sie verwenden.
Ein leistungsstarker und beliebter Dienst, den Sie in Ihrer Anwendungsimplementierung verwenden können, ist Dialogflow. Damit können Sie mithilfe eines Intent-/Aktionsmodells intelligente Agents erstellen.
Dienstarchitektur auswählen
Dieser Abschnitt unterstützt Sie bei der Entscheidung für eine Dienstarchitektur für Ihre Anwendung.
Allgemeines
Es gibt eine Reihe von Faktoren, die Sie bei der Entscheidung für eine Dienstarchitektur berücksichtigen sollten. Diese werden in den folgenden Abschnitten erläutert. Der Abschnitt Auswahl treffen erleichtert Ihnen die Auswahl einer Architektur, die auf diesen Aspekten basiert.
- Für wen ist die App gedacht?
- Auf welche Ressourcen wird die App zugreifen?
- Welche Konversationsmuster werden Sie umsetzen?
Diese werden in den folgenden Abschnitten erläutert. Der Abschnitt Auswahl treffen unterstützt Sie bei der Auswahl einer Architektur, die auf diesen Aspekten basiert.
Zielgruppe der App
Eine App kann viele verschiedene Zielgruppen haben. Einige Beispiele:
- Eigene App
- Nur wenige Personen in Ihrer Arbeitsgruppe, niemand sonst
- Installation im gesamten Unternehmen
- Im Marketplace vertreiben
Zugriff auf Ressourcen
Sie sollten festlegen, auf welche Ressourcen Ihre App zugreifen muss. Zu diesen Ressourcen gehören:
- Google Workspace-Ressourcen
- Andere APIs und Systeme von Google
- Externe Ressourcen (nicht von Google)
Konversationsmuster
Sie sollten auch überlegen, wie Ihre App mit Nutzern interagieren soll. In den folgenden Abschnitten werden einige Unterhaltungsmuster beschrieben, die Ihre Anwendung implementieren könnte.
Anruf und Antwort (synchron)
Bei diesem Muster antwortet die App einzeln auf Nachrichten von Nutzern. Eine Nutzernachricht an die App führt zu einer Antwort von der App.
Mehrere Antworten (asynchron)
Dieses Muster wird durch eine bidirektionale Kommunikation zwischen Nutzern und der Anwendung gekennzeichnet, wobei die Anwendung eine beliebige Anzahl zusätzlicher Nachrichten generiert. Beispiel: Ein Nutzer fordert etwas von einer Anwendung an. Die Anwendung sollte eine erste Antwort senden, um die Anfrage zu bestätigen. Dann sendet die Anwendung später eine oder mehrere Nachrichten an den Gruppenbereich, von dem die Anfrage stammt.
One-Way von der App
Manchmal ist es nützlich, eine Anwendung zu erstellen, die Nachrichten in einen Gruppenbereich einfügt, aber keine Ereignisse von Nutzern empfängt. Das ist nicht sehr dialogorientiert, kann aber beispielsweise für Alarmberichte nützlich sein.
One-Way zur App
Es ist zwar möglich, eine Anwendung zu erstellen, die nur Nachrichten empfängt und verarbeitet, ohne dass den Nutzern eine Antwort oder Nachricht gesendet wird. Dies führt jedoch zu einer schlechten Nutzererfahrung und wir raten unbedingt davon ab.
Auswahl treffen
Welche Dienstarchitektur sollten Sie für Ihre Anwendungsimplementierung auswählen? Wenn Sie bereits eine App in Google Chat integrieren möchten, sollten Sie Ihre vorhandene Implementierung verwenden oder anpassen.
Wenn Sie eine neue Anwendung entwickeln, werden im folgenden Diagramm Vorschläge für verschiedene Architekturarchitekturen für verschiedene Anwendungsfälle gezeigt.