Muster 'Worklight: resource handler'

Mit diesem Muster können Sie Services für mobile Anwendungen bereitstellen, die die Worklight-APIs verwenden. Die Services werden mobilen Anwendungen als Worklight-Adapterprozeduren verfügbar gemacht, die aus dem JavaScript in der Anwendung aufgerufen werden.

Das Muster wird angepasst, indem die Steuerroutine für jede dieser Prozeduren als untergeordnete Nachrichtenflüsse in WebSphere Message Broker implementiert werden. Das Muster stellt die Umsetzung der Sicherheitsrichtlinie und das globale Zwischenspeichern bereit.

Diagramm, in dem das Verhalten des Musters dargestellt wird.

Lösung

Die Services folgen einem ressourcenorientierten Modell mit CRUD-Aktionen (Create, Read, Update, Delete - Erstellen, Lesen, Aktualisieren, Löschen) für die Ressource.

Jeder Adapter stellt bis zu vier Prozeduren für eine einzelne Ressource bereit - eine Prozedur für jede CRUD-Aktion. Das Muster wird durch das Implementieren eines Prozedurhandlers für jede Prozedur angepasst. Die Prozedurhandler werden als untergeordnete Nachrichtenflüsse implementiert.

Das Muster generiert den Adapter, der im Worklight-Server ausgeführt wird, und einen Nachrichtenfluss, der die eingehenden Anforderungen vom Adapter verarbeitet. Dieser Nachrichtenfluss für den Anforderungshandler leitet die Anforderung an den relevanten untergeordneten Nachrichtenfluss des Prozedurenhandlers weiter, abhängig von der Adapterprozedur, die von der mobilen Anwendung aufgerufen wurde.

Es wird eine HTTP-Verbindung zwischen dem Adapter, der auf dem Worklight-Server ausgeführt wird, und dem im Message Broker ausgeführten Nachrichtenfluss für den Anforderungshandler hergestellt. Bei Worklight handelt es sich um den HTTP-Client und Message Broker ist der HTTP-Server für diese Verbindung.

Die mobile Anwendung ruft die Adapterprozedur auf, indem ein JavaScript-Objekt an eine JavaScript-Funktion in der Worklight-API übermittelt wird. Die an den untergeordneten Nachrichtenfluss weitergegebene Nachrichtenbaumstruktur befindet sich in der JSON-Domäne und enthält die Daten aus dem JavaScript-Objekt, das von der mobilen Anwendung bereitgestellt wird.

Vor dem Aufrufen des untergeordneten Nachrichtenflusses für den korrekten Prozedurhandler wird die Anforderung gegen eine Sicherheitsrichtlinie abgeglichen. Sobald die Sicherheit überprüft wurde, kann die Verarbeitung im untergeordneten Nachrichtenfluss des Prozedurhandlers fortegesetzt werden. Für Leseoperationen wird ein Speichercache geprüft, um festzustellen, ob die Ressourceninstanz ohne weitere Verarbeitungsschritte verfügbar ist.

Sicherheit

Die Sicherheit ist optional. Wenn die Sicherheit aktiviert ist, muss die mobile Anwendung ein Sicherheitstoken für die Adapterprozedur bereitstellen. Das Muster stellt Richtliniendurchsetzungspunkte (Policy Enforcement Points, PEPs) für die Sicherheit bereit, die einen Aufruf an den LDAP-Server als Richtlinienentscheidungspunkt (Policy Decision Point, PDP) für die Sicherheit ausgeben.

Bei den beiden Aspekten hinsichtlich der Sicherheit, die von diesem Muster bereitgestellt werden, handelt es sich um die Authentifizierung und die Autorisierung

Mit der Authentifizierung wird sichergestellt, dass die Anforderung von einem gültigen Benutzer ausgegeben wurde. Dazu wird geprüft, dass das von der mobilen Anwendung bereitgestellte Token gültig ist. Das Token ist eine Kombination der Benutzer-ID, einem Doppelpunkt und einem Kennwort. Diese Werte werden verknüpft und von der mobilen Anwendung mit Base64 codiert. Das Muster entschlüsselt diese Zeichenfolge und übergibt die Benutzer-ID zur Authentifizierung an den LDAP-Server. Diese Prüfung wird durchgeführt, bevor im Nachrichtenfluss eine andere Verarbeitung gestartet wird.

Berechtigungsprüfungen werden nach der Authentifizierung der Benutzer-ID und des Kennworts ausgeführt. Die eingehende Anforderungsnachricht wird analysiert, um zu ermitteln, welche Aktion (CRUD) in der Ressource angefordert wird.

Durch die Berechtigungsprüfungen wird sichergestellt, dass der authentifizierte Benutzer die angeforderte Aktion aufrufen darf. Das Muster unterstützt zwei Autorisierungsgruppen:

Cache

Das Zwischenspeichern ist optional. Wenn das Zwischenspeichern aktiviert ist, wird es durch die Verwendung der WebSphere Extreme Scale-Technologie (WXS) bereitgestellt, die in Message Broker integriert ist.

Jedes Mal, wenn der Prozedurhandler für den Lesevorgang aufgerufen wird, wird der zurückgegebene Wert dem Cache hinzugefügt. Sobald die gleiche Instanz der Ressource über diesen Adapter aktualisiert oder gelöscht wird, wird sie aus dem Cache entfernt.

Im Abschnitt Tasks, die nach der Generierung des Musters ausgeführt werden müssen finden Sie Einzelheiten zu den Implementierungsoptionen und zur gemeinsamen Nutzung des Cache in Ausführungsgruppen und Brokern im Netz, um eine horizontale Skalierung zu erreichen.

Implementierung

Das Muster generiert eine Message Broker-Anwendung, die während der Ausführung von Message Broker implementiert werden muss. Der Worklight-Adapter muss im Worklight-Server implementiert werden, um die Schnittstelle zwischen der mobilen Anwendung und dem Web-Service bereitzustellen, der in Message Broker ausgeführt wird.

Einschränkungen bei der Verwendung des Musters
Worklight-Adapter
Erforderliche Tasks vor der Anwendung des Musters
Parameter für das Muster
Erforderliche Tasks nach der Generierung des Musters