xApp-Architektur¶
Das folgende Diagramm veranschaulicht den Vorgang, wenn die xApp-Shell-Seite ihre Ressourcen (HTML/CSS/JS) lädt, indem sie statische Dateien über HTTP/HTTPs 1.1-Anforderungen an "service-static-files" anfordert und eine WebSocket-Verbindung (über Socket.io) zu "serviceapp-session-manager" herstellt, um Informationen über xApp-Sitzungen abzurufen. Zu diesen Informationen gehört ein asynchrones Ereignis zum Initialisieren einer xApp-Sitzung, das eine eindeutige URL erstellt und angibt, welche xApp in einer bestimmten xApp-Sitzung angezeigt wird. Der Elastic Load Balancer hilft bei der Verteilung des eingehenden Datenverkehrs, während Traefik den Datenverkehr basierend auf bestimmten Anforderungen dynamisch an Backend-Server weiterleitet. Der "serviceapp-session-manager" aktualisiert den xApp-Sitzungsstatus in der App-Sitzungsdatenbank, und der WebSocket überträgt Daten an die Shell-Seite, die xApps lädt und Daten für das SDK bereitstellt.
xApp-Sequenzdiagramm¶
Das Diagramm veranschaulicht die Abfolge der Interaktionen zwischen einem Benutzer, Cognigy Flow, xApp Backend und xApp Page im Kontext einer xApp-Architekturintegration.
'''Meerjungfrau sequenceDiagram title Cognigy xApp - typischer Ablauf von Interaktionen
actor u als User Teilnehmer f as Cognigy Flow participant xb als xApp Backend participant xf als xApp-Seite
u->>f: 1. Gespräch beginnen F aktivieren %% f->>f: xApp-Init-Sitzung f->> xb: 2. xApp Init-Sitzung XB aktivieren xb->>f: 3. xApp-Sitzungstoken f->>f: 4. Erstellen der xApp-URL mithilfe des Tokens f->>u: 5. "Geben Sie Ihre Daten in xApp über diese URL ein" f->>xb: 6. xApp HTML anzeigen XB->>XB: 7.HTML merken u->>xf: 8. xApp-Seite öffnen XF aktivieren xf->>xf: 9. Ladebildschirm für das Rendern xf->>xb: 10. Seite abrufen xb->>xf: 11. HTML-Code der Seite xf->>xf: 12. HTML-Seite rendern xf->>u: 13. HTML-Seite U->>XF: 14. Ausfüllen und Übermitteln von Daten xf->>xf: 15. SDK.submit(Daten) xf->>xb: 16. Daten xf->>xf: 17. Rendern Hier gibt es nichts zu tun XF deaktivieren XB->>F: 18. input.data._cognigy._app.payload XB deaktivieren F->>F: 19. Verarbeiten von input.data F->>U: 20. "Sie haben Ihre Daten von xApp erhalten" F deaktivieren '''
- Der Benutzer beginnt eine Konversation mit einem Cognigy Flow.
- Der Cognigy Flow initialisiert eine Sitzung mit dem xApp-Backend.
- Das xApp-Backend antwortet mit einem Sitzungstoken.
- Der Cognigy Flow erstellt eine URL unter Verwendung des Sitzungstokens
- Der Cognigy Flow sendet eine Nachricht: "Geben Sie Ihre Daten über diese URL in xApp ein" an den Benutzer.
- Der Cognigy Flow sendet eine Anfrage an das xApp-Backend, um die HTML-Seite anzuzeigen.
- Das xApp-Backend merkt sich die HTML-Seite.
- Der Benutzer öffnet die xApp-Seite.
- Auf der xApp-Seite wird ein Ladebildschirm gerendert.
- Die xApp-Seite fordert die HTML-Seite vom xApp-Backend an.
- Das xApp-Backend antwortet mit der HTML-Seite.
- Die xApp-Seite rendert die HTML-Seite.
- Die HTML-Seite wird dem Benutzer angezeigt.
- Der Benutzer füllt die Daten aus und übermittelt sie.
- Die xApp-Seite sendet die Daten an das SDK.
- Das SDK sendet die Daten an das xApp-Backend.
- Die Seite "Hier ist nichts zu tun" wird gerendert.
- Das xApp-Backend verarbeitet 'input.data._cognigy._app.payload' und sendet es als Eingabe an Cognigy Flow.
- Der Cognigy Flow verarbeitet "input.data".
- Der Cognigy Flow sendet eine Nachricht "Received your data from xApp" an den Benutzer und bestätigt, dass die Daten empfangen wurden.