Kommunikation zwischen Webseite und Server
Ein Grund, eine Lösung in eine Webseite einzubetten, ist der Austausch von Daten zwischen der Webseite und der eingebetteten Lösung, sodass die Lösung die Input-Daten über MobileTogether Server verarbeitet und das Ergebnis an die Webseite zurückgibt. Ein typisches Szenario wäre das folgende:
1.Ein Benutzer füllt Daten in einem HTML-Webseitenformular aus.
2.Diese Daten werden an die (gerade in einen IFrame der Webseite geladene) Lösung übertragen.
3.Die Lösung sendet die Daten an den Workflow der Lösung auf MobileTogether Server, wo die Lösung auf die übliche Art und Weise verarbeitet wird.
4.Die Ergebnisse werden an den IFrame zurückgegeben, wo sie (i) als Teil der Lösung angezeigt werden können und/oder (ii) an die Webseite zurück übertragen werden, um dort angezeigt oder weiter verarbeitet zu werden.
Anmerkung: | Wir unterscheiden in der Beschreibung dieser Funktion zwischen dem Begriff Lösung (was im IFrame angezeigt wird) und Workflow (das auf dem Server bereitgestellte Design). |
Der gesamte Hin- und Retourvorgang besteht aus den folgenden Schritten: Webseite - Lösung - Workflow - Lösung - Webseite. Die zum Senden der Daten zwischen Webseite und Workflow verwendeten Mechanismen sind in den Unterabschnitten dieses Abschnitts beschrieben:
•Senden: Von der Webseite an die Lösung
•Empfangsbereitschaft der Lösung gegenüber der Webseite
Mechanismen zur Datenübertragung
Die Datenübertragung zwischen der Webseite und dem Server erfolgt in zwei Phasen: Webseite - Lösung und Lösung - Workflow. In diesen beiden Phasen kommen jeweils die folgenden Mechanismen zum Einsatz:
Webseite - Lösung
Die Kommunikation zwischen der Webseite und der Lösung erfolgt über JavaScript:
•Mit Hilfe der Methode Window.postMessage() werden Daten von der Webseite an den eingebetteten IFrame gesendet (Die Nachricht wird automatisch weiter von der Lösung an den Workflow gesendet).
•Auf der Webseite wird die Methode Window.addEventListener() verwendet, um mittels "Listen" auf ein Nachrichtenereignis zu horchen, das vom Workflow an den IFrame gesendet wird. Wenn vom IFrame eine Nachricht empfangen wird, wird sie an die Webseite weitergeleitet, wo die Nachricht mit Hilfe einer JavaScript-Funktion verarbeitet und auf der Webseite angezeigt werden kann.
Beide oben aufgelisteten Methoden sind W3C-Spezifikationen. Nähere Informationen dazu finden Sie im Mozilla Developer Network in den Beschreibungen zu PostMessage und AddEventListener sowie MessageEvent, da er Event Listener auf ein Nachrichtenereignis horcht.
Lösung-Workflow
Die Kommunikation zwischen der Lösung und dem Workflow basiert darauf, dass der Zugriff auf die Daten im Workflow über eine JSON-Seitenquelle (namens $MT_EMBEDDEDMESSAGE) erfolgt. Da die JSON-Seitenquelle anhand einer JSON-Struktur erstellt werden muss, wird in der Lösung folgendermaßen vorgegangen: (i) die Lösung serialisiert die im IFrame empfangene Nachricht automatisch in einen JSON-String und (ii) sendet den serialisierten JSON-String automatisch an den Workflow (wo er als die $MT_EMBEDDEDMESSAGE-JSON-Seitenquelle erstellt werden kann).
Wenn die Kommunikation in umgekehrter Richtung erfolgt (vom Workflow an die Lösung), werden die Daten in Form eines JSON-String gesendet (normalerweise durch Serialisierung der $MT_EMBEDDEDMESSAGE-JSON-Seitenquelle).