Typische Verwendungen von Service Broker

Service Broker kann für jede Anwendung, die eine asynchrone Verarbeitung ausführen oder die Verarbeitung auf eine Reihe von Computern verteilen muss, nützlich sein. Typische Verwendungen von Service Broker schließen Folgendes ein:

  • Asynchrone Trigger

  • Zuverlässige Abfrageverarbeitung

  • Zuverlässige Datenauflistung

  • Verteilte serverseitige Verarbeitung für Clientanwendungen

  • Datenkonsolidierung für Clientanwendungen

  • Massenstapelverarbeitung

Asynchrone Trigger

Viele Anwendungen, die Trigger verwenden, wie z. B. Onlinetransaktionsverarbeitungs-Systeme (Online Transaction Processing, OLTP), können von Service Broker profitieren. Ein Trigger fügt der Warteschlange eine Nachricht hinzu, die Arbeit von einem Service Broker-Dienst anfordert. Der Trigger führt die angeforderte Arbeit nicht selbst aus. Stattdessen erstellt der Trigger eine Nachricht, die Informationen zur durchzuführende Arbeit enthält, und sendet diese Nachricht an einen Dienst, der die Arbeit ausführt. Der Trigger kehrt dann zurück.

Wenn für die ursprüngliche Transaktion ein Commit ausgeführt wird, übermittelt Service Broker die Nachricht dem Zieldienst. Das Programm, das den Dienst implementiert, führt die Arbeit in einer separaten Transaktion aus. Durch Ausführen dieser Arbeit in einer separaten Transaktion kann für die ursprüngliche Transaktion sofort ein Commit ausgeführt werden. Die Anwendung vermeidet Systemverlangsamungen, zu denen es kommt, wenn die ursprüngliche Transaktion offen gehalten wird, während die Arbeit ausgeführt wird.

Zuverlässige Abfrageverarbeitung

Manche Anwendungen müssen Abfragen trotz Computerfehlern, Netzausfällen oder ähnlichen Problemen zuverlässig verarbeiten. Eine Anwendung, die eine zuverlässige Abfrageverarbeitung benötigt, kann Abfragen absenden, indem sie Nachrichten an einen Service Broker-Dienst sendet. Die Anwendung, die den Dienst implementiert, liest die Nachricht, führt die Abfrage aus und gibt die Ergebnisse zurück. Alle drei Vorgänge finden in derselben Transaktion statt. Wenn ein Fehler auftritt, bevor für die Transaktion ein Commit ausgeführt wird, wird für die gesamte Transaktion ein Rollback ausgeführt und die Nachricht der Warteschlange erneut hinzugefügt. Wenn der Computer wiederhergestellt ist, wird die Anwendung erneut gestartet, und die Nachricht wird erneut verarbeitet.

Zuverlässige Datenauflistung

Anwendungen, die Daten aus einer großen Gruppe von Quellen sammeln, können Service Broker zur zuverlässigen Datenauflistung nutzen. Beispielsweise kann eine Einzelhandelsanwendung mit mehreren Sites Service Broker verwenden, um Transaktionsinformationen an einen zentralen Datenspeicher zu senden. Weil Service Broker zuverlässige, asynchrone Nachrichtenübermittlung bereitstellt, kann jede Site weiterhin Transaktionen verarbeiten, auch wenn die Site temporär die Konnektivität zum zentralen Datenspeicher verliert. Mithilfe der Service Broker-Sicherheit wird sichergestellt, dass Nachrichten nicht fehlgeleitet werden und die Daten bei der Übertragung geschützt werden.

Verteilte serverseitige Verarbeitung für Clientanwendungen

Große Anwendungen, die auf mehrere SQL Server-Datenbanken zugreifen, können von Service Broker profitieren. Beispielsweise könnte eine Webanwendung zum Bestellen von Büchern Service Broker auf der Serverseite verwenden, um Informationen zwischen den verschiedenen Datenbanken auszutauschen, die Daten zu Bestellungen, Kunden, Lagerbestand und Guthaben enthalten. Weil Service Broker Nachrichtenwarteschlangen und eine zuverlässige Nachrichtenübermittlung bereitstellt, kann die Anwendung weiterhin Bestellungen annehmen, auch wenn eine der Datenbanken nicht verfügbar oder stark ausgelastet ist. In diesem Szenario dient Service Broker als Framework für ein verteiltes OLTP-System.

Datenkonsolidierung für Clientanwendungen

Anwendungen, die Informationen aus mehreren Datenbanken gleichzeitig verwenden oder anzeigen müssen, können Service Broker nutzen. Beispielsweise kann eine Kundendienstanwendung, die Daten von mehreren Speicherorten in einem Bildschirm konsolidiert, Service Broker verwenden, um diese Anforderungen parallel statt sequenziell auszuführen und so die Anwendungsantwortzeit signifikant zu verkürzen. Die Kundendienstanwendung sendet Anforderungen an verschiedene Dienste parallel. Sobald die Dienste auf die Anforderungen antworten, sammelt die Kundendienstanwendung die Antworten und zeigt die Ergebnisse an.

Massenstapelverarbeitung

Anwendungen, die eine Massenstapelverarbeitung ausführen müssen, können die von Service Broker gebotenen Warteschlangen- und Parallelverarbeitungsfunktionen nutzen, um große Datenmengen schnell und effizient zu verarbeiten. Die Anwendung speichert zu verarbeitende Daten in einer Service Broker-Warteschlange. Ein Programm liest periodisch aus der Warteschlange und verarbeitet die Daten. Eine Anwendung kann das von Service Broker bereitgestellte zuverlässige Messaging nutzen, um eine Stapelverarbeitung auf einem anderen als dem Computer auszuführen, von dem die Anforderung stammt.