Freigeben über


Effizientes Verwenden von SSO in der Geschäftsprozessverwaltungslösung

Wie bei der dienstorientierten Lösung wird bei der Lösung für die Geschäftsprozessverwaltung das Feature Einmaliges Anmelden für Unternehmen (Enterprise Single Sign-On, SSO) zum Speichern von Konfigurationswerten, z. B. Anzahl der Auftragsverarbeitungsstufen, verwendet. Es wird der geheime Speicher verwendet, weil er bei jeder Installation von BizTalk vorhanden ist, weil SSO darin die Konfigurationsinformationen zwischenspeichert, damit die Werte jederzeit verfügbar sind, und weil in diesem Speicher Informationen wie Datenbankverbindungszeichenfolgen und -kennwörter geschützt sind. Aus allen diesen Gründen ist der geheime Speicher selbst dann ein geeigneter Aufbewahrungsort für die Konfigurationsinformationen, wenn SSO nicht zum Verwalten von Verbindungen zu den Back-End-Anwendungen eingesetzt wird.

Um die Latenzzeit zu verringern, verwendet die Lösung einen lokalen Cache für die Konfigurationswerte. Der Cache wird alle fünf Minuten von der Lösung aktualisiert.

In diesem Thema wird der von der Lösung verwendete Zwischenspeichermechanismus beschrieben. Bei dieser Lösung wird ein etwas anderer Ansatz für das SSO-Zwischenspeichern als bei der dienstorientierten Lösung verwendet. Eine Beschreibung, wie die dienstorientierte Lösung SSO-Werte zwischenspeichert, finden Sie unter Verwenden von SSO Efficiently in der dienstorientierten Lösung.

Lokales Zwischenspeichern von Konfigurationswerten

Bei der Lösung für die Geschäftsprozessverwaltung werden Eigenschaften eines Singleton-Objekts verwendet, um den Zugriff auf die SSO-Werte zu ermöglichen.

Hinweis

Bei einem Singleton-Objekt handelt es sich um ein Objekt mit nur einer Instanz. Weitere Informationen zu Singletonobjekten und deren Erstellung in C# finden Sie unter Implementieren von Singleton in C#.

In der Lösung ruft eine Orchestrierung zuerst das Singleton-Objekt ab und verweist anschließend über die Objekteigenschaften auf die Werte. Hier sehen Sie Code aus der OrderManager-Orchestrierung :

configData = Microsoft.Samples.BizTalk.SouthridgeVideo.Utilities
                .SsoConfigHelper.Singleton;
numStages = configData.TotalStages;

Die Orchestrierung ruft die Singleton-Methode für das SsoConfigHelper-Objekt auf, um Zugriff auf die eine Kopie des Objekts zu erhalten. Wenn das -Objekt vorhanden ist, ruft die Orchestrierung die Anzahl der Verarbeitungsphasen (TotalStages) ab.

Die Lösung verwendet eine häufige Methode zum Erstellen eines Singleton-Objekts: Es wird festgelegt, dass der Konstruktor privat ist, und festgelegt, dass das Objekt eine eigene Instanz erstellt. Danach wird diese Instanz einer privaten Variablen zugewiesen und schließlich der Zugriff auf den Wert dieser Variablen über eine Methode oder Eigenschaft ermöglicht. Das SsoConfigHelper-Objekt verwendet die Singleton-Eigenschaft, um Zugriff auf die einzelne Kopie von sich selbst zu gewähren.

Hinweis

Das SsoConfigHelper-Objekt verwendet einen statischen Konstruktor, um die Anfangswerte aus dem SSO-Cache abzurufen und den Aktualisierungsmechanismus einzurichten. Weil ein statischer Konstruktor nicht aufgerufen werden kann, wird der Singleton-Entwurf beibehalten. Weitere Informationen finden Sie unter Statische Konstruktoren (C#-Programmierhandbuch).

Alle Objekte, auf die eine Orchestrierung – direkt oder indirekt – verweist, müssen serialisierbar sein. Weitere Informationen finden Sie unter "Serialisierung" in Persistenz und der Orchestrierungs-Engine. Obwohl das SsoConfigHelper-Objekt notwendigerweise serialisierbar ist, verwendet das Modul, wenn die Orchestrierung die Orchestrierung aktiviert, weiterhin den einzelnen aktuellen instance des Objekts, wenn die Orchestrierung aktiviert wird. Weitere Informationen zur Serialisierung und BizTalk Server Variablen finden Sie unter Orchestrierungsvariablentypen.

Hinweis

Alle öffentlichen Methoden für das Objekt in der dienstorientierten Lösung sind statisch. Folglich muss die Orchestrierung einer Variablen keine Instanz zuweisen, und die Klasse muss nicht serialisiert werden.

Das SsoConfigHelper-Objekt verwendet dieselben Mechanismen zum Abrufen und Aktualisieren von Konfigurationswerten wie die dienstorientierte Lösung. Das gleiche Sperrmuster wird ebenfalls verwendet. Weitere Informationen zu diesen Mechanismen finden Sie unter Verwenden von SSO Efficiently in der dienstorientierten Lösung und im Quellcode für SsoConfigHelper.

Wie die single Sign-On Caching, die in der dienstorientierten Lösung ausgeführt wird, implementiert die Geschäftsprozessverwaltungslösung die IPropertyBag-Schnittstelle aus dem Microsoft.BizTalk.SSOClient.Interop-Namespace , um die Werte zu speichern. Die Geschäftsprozessverwaltungslösung verwendet ein HybridDictionary-Objekt anstelle eines NameValueCollection-Objekts .

Anders als die dienstorientierte Lösung zeigt die Lösung für die Geschäftsprozessverwaltung ein Objekt mit Eigenschaften an, die den Konfigurationsdaten entsprechen. Damit wird verhindert, dass die Orchestrierung die Unterschiede in den Nachrichtentypen verarbeiten muss.

Weitere Informationen

Implementierungshighlights der Lösung für die Geschäftsprozessverwaltung