Entwickleraufgaben für Service Broker
Der Anwendungsentwickler ist für das Entwerfen der Service Broker-Anwendung und das Erstellen von zu programmierenden Elementen verantwortlich. Der Systemadministrator ist für das Konfigurieren und Verwalten von Service Broker verantwortlich. Entwickler und Administratoren müssen bei der Planung des Systems zusammenarbeiten, um sicherzustellen, dass die Entwicklung und die Verwaltung des Systems optimal auf die jeweilige Umgebung und die geschäftlichen Zwecke abgestimmt sind.
Die bei der Erstellung einer einzelnen Anwendung anfallenden Aufgaben hängen von den jeweiligen Anforderungen ab. Im Allgemeinen sind beim Entwickeln einer Service Broker-Anwendung folgende Aufgaben auszuführen:
Planen Sie die Anwendung. Erstellen Sie eine Gliederung der Tasks, die mit der Anwendung ausgeführt werden müssen. Beschreiben Sie die Konversationen, die während der einzelnen Tasks stattfinden. Welcher Endpunkt muss welche Informationen in welcher Reihenfolge bereitstellen? Welche Verarbeitung ist erforderlich? Welche Prioritäten müssen den Konversationen zugewiesen werden? Alle nachfolgenden Informationen hängen von dieser Gliederung ab.
Bestimmen Sie das Format und die Struktur der einzelnen Nachrichten in jeder Konversation. Planen Sie die erwartete Abfolge des Nachrichtenaustauschs, und legen Sie fest, wie jeder Teilnehmer der Konversation auf Fehler und auf Nachrichten reagieren soll, die in einer unerwarteten Reihenfolge gesendet werden.
Wenn in der Konversation XML-Nachrichten verwendet werden, erstellen Sie ein Schema für jede XML-Nachricht. Schemas werden bei der Entwicklung, bei Tests und bei der Problembehandlung verwendet. Nachdem der Dienst in der Produktionsumgebung bereitgestellt wurde, haben Sie die Möglichkeit, die Schemaüberprüfung für die Nachrichtentypen zu entfernen, um die Leistung zu steigern.
Erstellen Sie in jeder Konversation einen Nachrichtentyp pro Nachricht.
Erstellen Sie für jede Konversation einen Vertrag. Durch den Vertrag werden die Nachrichtentypen identifiziert, die von jedem Endpunkt in der Konversation verwendet werden können.
Erstellen Sie eine Warteschlange, in der die von der Anwendung empfangenen Nachrichten gespeichert werden.
Erstellen Sie einen Dienst, um die durch den Vertrag definierte und durch die von Ihnen erstellte gespeicherte Prozedur implementierte Funktionalität verfügbar zu machen. Wenn Sie einen Dienst erstellen, ordnen Sie diesen der im vorherigen Schritt erstellten Warteschlange zu. Auf diese Weise geben Sie an, dass alle an diesen Dienst adressierten eingehenden Nachrichten in der angegebenen Warteschlange gespeichert werden sollen.
Überprüfen Sie die in Schritt 1 festgelegten Prioritätspläne. Erstellen Sie Konversationsprioritäten, die alle Konversationsendpunkte abdecken, für die andere Prioritätsebenen als die Standardprioritäten festgelegt wurden. Wenn die Prioritätsebenen verwendet werden sollen, wenn Nachrichten von einer Datenbank übertragen werden, stellen Sie sicher, dass die HONOR_BROKER_PRIORITY-Option in dieser Datenbank auf ON festgelegt ist.
Erstellen Sie eine Anwendung, die das erwartete Nachrichtenaustauschmuster und die in Schritt 1 festgelegten Verarbeitungsanforderungen implementiert. Wenn in der Anwendung die interne Aktivierung verwendet wird, ist die Anwendung eine gespeicherte Prozedur.
Wenn in der Anwendung die interne Aktivierung verwendet wird, ändern Sie die Warteschlange, um die Aktivierung zu ermöglichen. Geben Sie die in Schritt 8 erstellte gespeicherte Prozedur als gespeicherte Aktivierungsprozedur an.
Identifizieren Sie die Dienste, die den soeben erstellten Dienst verwenden. Wenn einer oder mehrere dieser Dienste außerhalb der lokalen SQL Server-Instanz vorhanden sind, erstellen Sie Routen für diese.
Überprüfen Sie die im vorherigen Schritt identifizierten Remotedienste, und bestimmen Sie die Sicherheitsanforderungen für die Kommunikation mit diesen. Erstellen Sie bei Bedarf Zertifikate, um diese Anforderungen durchzusetzen, und erstellen Sie dann Datenbankbenutzer für die Zertifikate. Ordnen Sie diese Zertifikate diesen Anmeldungen zu. Die Administratoren oder Entwickler der anderen Dienste müssen Remotedienstbindungen erstellen, um Dialogsicherheit für Datenverkehr zu diesem Dienst zu ermöglichen.
Beim Entwickeln und Testen ist es bequem, für eine Anwendung die Benutzernamen zu verwenden, die auch im Produktionsbetrieb verwendet werden, diese Benutzernamen jedoch Zertifikaten zuzuordnen, die nur in der Entwicklungs- und Testumgebung verwendet werden. Wenn die Anwendung in die Produktionsumgebung eingegliedert wird, verwenden Sie die für die Produktionsumgebung erstellten Zertifikate. Durch die Verwendung unterschiedlicher Zertifikate können Sie den mit der Bereitstellung der Anwendung verbundenen Arbeitsaufwand reduzieren, dabei jedoch die Sicherheit zwischen der Entwicklungs- und der Produktionsumgebung wahren.