Beispielanwendung

Die Beispielanwendung besteht aus einem Web-Service und einer REST-konformer API, die beide in WSRR beschrieben und geregelt werden. Eine DataPower-Domäne wird mit WSRR als Gateway konfiguriert und ein Beispiel-Web-Client wird bereitgestellt, um die Services auszuführen.

Das Grundszenario in der Beispielanwendung ist eine Anwendung zur Warenbestandsführung für ein Geschäft ('Warehouse') und ein REST-konformer Service, der eine der Operationen für mobile Geräte dupliziert. Der Web-Service 'Store' besitzt drei Operationen:
  • purchase (einkaufen)
  • findInventory (Bestand ermitteln)
  • returnProduct (Produkt zurückgeben)
Die letzte Operation 'findInventory' ist auch als REST-konformer Service verfügbar.

Der Beispiel-Web-Service

Die Basis-Service-Level-Definition (SLD) enthält zwei angehängte Mediationsrichtlinien:
  • Überprüfung anhand der Datei 'Store.wsdl'. Dieses Beispiel basiert auf der Annahme, dass die DataPower-Validierung inaktiviert ist.
  • Zurückweisung, wenn mehr als fünf Nachrichten in 90 Sekunden eingehen. Dieser Schwellenwert ist zu Demonstrationszwecken niedrig.

Der Konsument des Service 'Store' ist die Anwendung 'StoreConsumer', die die Konsumenten-ID CEO hat. Dieser Konsument hat zwei Service-Level-Agreements (SLAs): Gold und Silver. Wenn eine Anforderung bei DataPower mit der Konsumenten-ID CEO und der Kontext-ID Silver eingeht, ist das Durchlaufen der Anforderung zulässig, da die SLA 'Silver' vorhanden ist. Wenn die Konsumenten-ID CEO und die Kontext-ID Gold lautet, wird die SLA 'Gold' abgeglichen. Dieser SLA ist eine Weiterleitungsrichtlinie angehängt, sodass die Anforderung an den alternativen Endpunkt weitergeleitet wird, der in der Richtlinie angegeben ist.

Wenn eine Anforderung mit einer anderen Konsumenten-ID als CEO eingeht, gibt es keine Anwendungsversion mit dieser Konsumenten-ID. Es gibt deshalb auch keine SLAs, die abgeglichen werden können. Dies ist daher eine Anforderung von einem anonymen Konsumenten. Es werden alle Richtlinien angewendet, die der anonymen SLA angehängt sind. In diesem Fall wird eine Benachrichtigung in den Protokollen angezeigt. Beachten Sie, dass das Beispiel keine Möglichkeit beinhaltet, eine Anforderung mit einer anderen Konsumenten-ID als CEO zu senden.

Das Szenario führt außerdem eine Autorisierung für die Operation 'findInventory' auf der Basis der Gruppenzugehörigkeit aus. Es wird ein LDAP-Server mit einem Beispiel für die Zuordnung von Benutzerberechtigungen zur richtigen Gruppe bereitgestellt.

Die Beispielanwendung zeigt den Ablauf der Anwendung, wobei jedes Feld ein anderes DataPower-Gateway darstellt.

Abbildung 1. Ablaufdiagramm der BeispielanwendungDie eingehende Anforderung hat eine SKU-ID und Basisauthentifizierung. Die Sicherheitsfunktion wechselt 'StoreAddLTPA' und anschließend zu 'StoreWSP', wo die Anforderung mithilfe des LTPA-Tokens authentifiziert wird. Ist der Benutzer ein Benutzer der Kategorie 'Gold', wird die Anforderung an 'StoreAlternateMockService' gesendet. Ist dies nicht der Fall, wird die Anforderung an 'StoreMockService' gesendet. Ist der Benutzer ein Manager, enthält die Antwort alle Daten. Ist dies nicht der Fall, enthält die Antwort überarbeitete Preisinformationen.

Der REST-konforme Beispiel-Service

Der REST-konforme Service wird auf ähnliche Weise geregelt wie der Web-Service, unterscheidet sich aber von ihm in der Art und Weise, wie Richtlinien verwendet werden. Wie beim Web-Service gibt es zwei SLAs: eine SLA für 'Silver'-Kunden und eine SLA für 'Gold'-Kunden. Beim REST-konformen Service gibt es jedoch keine Richtlinien, die auf SLD-Ebene (werden auf alle Anforderungen angewendet) angehängt sind. Stattdessen ist jeder SLA eine Richtlinie angehängt. Die SLA 'Gold' besitzt eine Richtlinie, die Nachrichten nach mehr als 5 Anforderungen in 90 Sekunden abweist, und die SLA 'Silver' lässt 2 Anforderungen in 90 Sekunden vor dem Abweisen zu.


Konzept Konzept

Feedback


Timestamp icon Letzte Aktualisierung: 03.03.2014


http://publib.boulder.ibm.com/infocenter/prodconn/v1r0m0/topic/com.ibm.scenarios.soawdpwsrr25.doc/topics/csoa2_samples.htm