Dienstarchitektur

In diesem Abschnitt werden die Datenbankobjekte beschrieben, die das Grundkonzept einer Anwendung mit Service Broker bestimmen.

Zur Zeitpunkt des Entwurfs geben Service Broker-Anwendungen die folgenden Objekte an:

  • Nachrichtentypen — Definieren die Namen von Nachrichten, die zwischen Anwendungen ausgetauscht werden. Optional bieten sie eine Überprüfung der Nachrichten.
  • Verträge— Geben die Richtung und den Typ von Nachrichten in einer bestimmten Konversation an.
  • Warteschlangen— Speichern Nachrichten. Dieser Speichermechanismus ermöglicht die asynchrone Kommunikation zwischen den Diensten. Service Broker-Warteschlangen bieten zusätzliche Vorteile, z. B. das automatische Sperren von Nachrichten in derselben Konversationsgruppe.
  • Dienste— Sind adressierbare Endpunkte für Konversationen. Service Broker-Nachrichten werden von einem Dienst zu einem anderen Dienst gesendet. Ein Dienst gibt eine Warteschlange zum Aufbewahren von Nachrichten sowie Verträge an, für die der Dienst das Ziel sein kann. Ein Vertrag stellt einem Dienst einen richtig definierten Satz von Nachrichtentypen bereit.

Eine Service Broker-Anwendung verwendet die SQL Server-Objekte in der vorherigen Liste, um eine Konversation auszuführen. Jedes Programm, das Transact-SQL-Anweisungen in SQL Server ausführen kann, kann Service Broker verwenden. Anwendungen können gespeicherte Prozeduren sein, die in Transact-SQL oder einer CLR-kompatiblen Sprache geschrieben sind, oder es können externe Programme sein, die sich mit einer Instanz von SQL Server verbinden.

Das folgende Diagramm zeigt einen Service Broker-Dienst:

Beziehung der Service Broker-Objekte

Wie in der Illustration gezeigt, gibt der ProcessExpenses-Vertrag drei Nachrichtentypen an: SubmitExpense, AcceptDenyExpense und ReimbursementIssued. Der Vertrag listet die Nachrichtentypen auf, die für eine Konversation notwendig sind, bei der ein Kostenerstattungstask ausgeführt wird. Der Vertrag ProcessExpenses bestimmt alle Konversationen zwischen dem Dienst ProcessExpense und beliebigen Diensten, die eine Konversation mit dem Dienst ProcessExpense initiieren. Der Dienst ProcessExpense speichert eingehende und ausgehende Nachrichten in der Warteschlange ExpenseQueue. Die gespeicherte Prozedur ExpenseProcessing empfängt Nachrichten aus dieser Warteschlange, verarbeitet sie und sendet sie zurück zur Warteschlange, von wo aus sie an den richtigen Broker weitergeleitet werden, wenn eine Antwort erforderlich ist.

Siehe auch

Konzepte

Nachrichtentypen
Verträge
Warteschlangen
Erstellen von Anwendungen mit Service Broker
Dienste

Andere Ressourcen

Service Broker-Lernprogramme

Hilfe und Informationen

Informationsquellen für SQL Server 2005