Worklight-Adapter und das Muster Worklight: resource handler

Bei Worklight-Adaptern handelt es sich um den serverseitigen Code von Anwendungen, die auf der Worklight-Plattform für mobile Anwendungen implementiert sind und dort gewartet werden. Adapter stellen eine Verbindung vom Worklight-Server zu Unternehmensanwendungen her, beispielsweise zu denen, die in WebSphere Message Broker ausgeführt werden. Der Adapter stellt eine Gruppe von Services bereit, die als Prozeduren bezeichnet werden. Der Adapter und die mobile Anwendung werden im Worklight-Server implementiert.

Diagramm, in dem das Verhalten des Musters dargestellt wird.

Die folgende Sequenz durchläuft einen typischen Datenfluss für eine HTTP/JSON-Anforderung, die von einer mobilen Anwendung ausgegeben wurde:

Mobile Einheit zu Worklight

  1. Die mobile Anwendung ruft Prozeduren auf, indem Ajax-Anforderungen (WL.Client.invokeProcedure) ausgegeben werden.
  2. Die Parameter für die Prozedur werden als in JSON formatierte Daten übergeben. Die Parameter enthalten möglicherweise eine JSON-Darstellung der Ressource, auf die zugegriffen wird, und, falls die Sicherheit aktiviert ist, eine Base64-Zeichenfolgedarstellung der Benutzer-ID und des Kennworts.

Worklight

  1. Die Prozedur erweitert das JSON-Objekt um zusätzliche Informationen, z. B. den Namen der Aktion, die für dieses Objekt ausgeführt werden soll.

Worklight zu Message Broker

  1. Die Prozedur ruft einen HTTP-Befehl auf und integriert die Benutzer-ID und das Kennwort in die Kopfzeile für die HTTP-Basisauthentifizierung.

Nachrichtenbroker

  1. Der Nachrichtenfluss des Anforderungshandlers in Message Broker bearbeitet die HTTP-Anforderung.
  2. Der Nachrichtenfluss des Anforderungshandlers authentifiziert die Benutzer-ID und das Kennwort in einem LDAP-Server.
  3. Der Nachrichtenfluss des Anforderungshandler übergeht die zusätzlichen Informationen aus dem JSON-Objekt und ermittelt mit diesen Informationen, welche Aktion auf welcher Instanz der Ressource ausgeführt wird.
  4. Der Anforderungshandler autorisiert die Anforderung auf einem LDAP-Server. Dadurch wird sichergestellt, dass sich die Benutzer-ID in der korrekten LDAP-Gruppe zur Ausführung dieser Aktion in dieser Ressource befindet.
  5. Falls das Lesen einer Ressource angefordert wird, prüft der Nachrichtenfluss des Anforderungshandlers mit der ID der Ressourceninstanz, ob sich diese Instanz der Ressource im Cache befindet.
  6. Der Nachrichtenfluss des Anforderungshandlers füllt die lokale Umgebung ($LocalEnvironmentVariables/Worklight/ID) mit der eindeutigen ID der Ressourceninstanz, auf die zugegriffen wird.
  7. Eine Nachricht der JSON-Domäne wird an den korrekten untergeordneten Nachrichtenfluss des Prozedurhandler übergeben. Die Struktur dieser Nachricht stimmt mit dem JavaScript-Objekt überein, das von der mobilen Anwendung an die API WL.Client.invokeProcedure übergeben wurde.
  8. Die Logik des untergeordneten Nachrichtenflusses wird ausgeführt. Dazu gehört normalerweise die Umwandlung des JSON-Objekts in eine Anforderung an einen Back-End-Service oder eine Datenbank.
  9. Der untergeordnete Nachrichtenfluss gibt die JSON-Antwortnachricht an das zugehörige Ausgabeterminal weiter.
  10. Falls es sich bei der Aktion um einen Lesevorgang handelt und das Zwischenspeichern aktiviert ist, schreibt der Nachrichtenfluss des Anforderungshandlers das JSON-Objekt in den Cache.
  11. Falls es sich bei der Aktion um einen Aktualisierungs- oder Löschvorgang handelt, entfernt der Nachrichtenfluss des Anforderungshandlers diese Instanz der Ressource aus dem Cache.

Message Broker zu Worklight

  1. Die JSON-Antwort wird als HTTP-Antwort aus Message Broker zurück zum Worklight-Adapter gesendet.

Worklight zu mobiler Einheit

  1. Die JSON-Antwort wird als HTTP-Antwort vom Worklight-Server zurück zur ursprünglichen mobilen Anwendung gesendet.

Zurück zur Spezifikation des Musters 'Worklight: resource handler'