XML-Broker verwenden

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Webbasierte Client-Anwendungen erstellen


Der XML-Broker empfängt Aktualisierungen in Form von Deltapaketen von Browsern und trägt sie in den Anwendungsserver ein.

Wenn der XML-Broker in das Web-Modul (bzw. in ein Datenmodul mit einer TWebDispatcher-Komponente) eingefügt wird, registriert er sich beim Web-Dispatcher automatisch als Auto-Dispatcher-Objekt. Sie müssen deshalb im Unterschied zu anderen Komponenten kein Aktionselement für den XML-Broker erstellen, damit dieser auf Aktualisierungsbotschaften eines Web-Browsers antworten kann. Aktualisierungsbotschaften enthalten XML-Datenpakete, die im Anwendungsserver eingetragen werden sollen. Sie werden normalerweise durch das Klicken auf eine Schaltfläche in einer der HTML-Seiten generiert, die von der Web-Client-Anwendung erstellt werden.

Damit der Dispatcher die Botschaften des XML-Brokers erkennt, müssen sie wie im Thema Anforderungsbotschaften verteilen beschrieben werden.

Bei der Weitergabe einer Aktualisierungsbotschaft durch den Dispatcher an den XML-Broker werden gleichzeitig die Aktualisierungen an den Anwendungsserver übergeben. Falls Aktualisierungsfehler vorliegen, empfängt der Dispatcher ein XML-Deltapaket, in dem diese Fehler beschrieben sind. Zuletzt sendet der Dispatcher eine Antwortbotschaft an den Browser zurück, die den Browser entweder dazu veranlasst, zu der Seite zurückzukehren, die das XML-Deltapaket generiert hat, oder irgendeine andere Seite zu senden.

Eine Reihe von Ereignissen gibt Ihnen die Möglichkeit, in die verschiedenen Stadien dieses Aktualisierungsprozesses einzugreifen:

  1. Wenn der Dispatcher die Aktualisierungsbotschaft an den XML-Broker übergibt, empfängt er das Ereignis XMLBrokr.BeforeDispatch. In einer Behandlungsroutine für dieses Ereignis können Sie eine Vorverarbeitung der Anforderung durchführen oder sogar die gesamte Botschaft verarbeiten. Außerdem können Sie den XML-Broker in die Lage versetzen, neben Aktualisierungsbotschaften auch andere Botschaften zu bearbeiten.
  2. Wird die Botschaft nicht in der Ereignisbehandlungsroutine für BeforeDispatch verarbeitet, empfängt der XML-Broker das Ereignis XMLBrokr.OnRequestUpdate. Damit haben Sie die Möglichkeit, die Standardverarbeitung zu umgehen und eine eigene Routine zum Eintragen der Aktualisierungen zu schreiben.
  3. Wenn die Anforderung nicht in einer OnRequestUpdate-Ereignisbehandlungsroutine verarbeitet wird, trägt der XML-Broker die Aktualisierungen ein. Dabei auftretende Fehler werden in einem Deltapaket an den XML-Broker zurückgesendet.
  4. Liegen keine Aktualisierungsfehler vor, empfängt der XML-Broker ein XMLBrokr.OnGetResponse-Ereignis. In einer Behandlungsroutine für dieses Ereignis können Sie eine Antwortbotschaft erstellen, die anzeigt, dass das Eintragen erfolgreich war, oder aktualisierte Daten an den Browser sendet. Wenn die OnGetResponse-Ereignisbehandlungsroutine die Antwort als nicht abgeschlossen signalisiert (der Parameter Handled hat nicht den Wert True), sendet der XML-Broker eine Antwortbotschaft, die den Browser veranlasst, zu dem Dokument zurückzukehren, welches das Deltapaket generiert hat.
  5. Wenn beim Eintragen der Aktualisierungen Fehler aufgetreten sind, empfängt der XML-Broker das Ereignis XMLBrokr.OnGetErrorResponse. In einer entsprechenden Ereignisbehandlungsroutine können Sie dann versuchen, die Aktualisierungsfehler zu beheben. Sie können aber auch eine Web-Seite erstellen, in der die Fehler für den Endbenutzer beschrieben werden. Wenn die OnGetErrorResponse-Ereignisbehandlungsroutine die Antworterstellung nicht abschließt (und damit den Parameter Handled nicht auf True setzt), ruft der XML-Broker, um den Inhalt der Antwortbotschaft zu erstellen, einen speziellen Inhalts-Producer namens ReconcileProducer auf.
  6. Zuletzt empfängt der XML-Broker das Ereignis XMLBrokr.AfterDispatch. In einer Behandlungsroutine für dieses Ereignis können weitere Aktionen implementiert werden, die vor dem Senden der Antwort an den Web-Browser ausgeführt werden sollen.