Tutorial 1: Entwickeln des Echo-Adapters
In diesem Tutorial entwickeln Sie mithilfe des WCF LOB Adapter SDK einen funktionalen Adapter. Der Adapter simuliert die Vorgänge eines fiktiven Branchensystems, um viele der wichtigsten Features des WCF LOB Adapter SDK zu veranschaulichen, einschließlich:
Synchroner eingehender Datenverkehr
Synchroner ausgehender Datenverkehr
Metadatensuche
Metadatensuche
Metadaten auflösen
Dieser Abschnitt enthält verschiedene Features, die vom Echoadapter unterstützt werden. Dabei handelt es sich um Nachrichtenaustausch, Vorgangsmetadaten, Verbindungseigenschaften und Adaptereigenschaften.
Nachrichtenaustauschmuster
Der Echoadapter unterstützt die folgenden beiden Nachrichtenaustauschmuster:
Synchroner ausgehender Datenverkehr, d. h. der nutzende Client sendet die WCF-Anforderungsnachricht über den Adapter an das Zielsystem und wartet dann auf den Empfang einer WCF-Antwortnachricht vom Zielsystem über den Adapter. Dies ist das häufigste Nachrichtenaustauschmuster für einen Adapter. Um synchronen ausgehenden Datenverkehr zu unterstützen, implementieren Sie die
Microsoft.ServiceModel.Channels.Common.IOutboundHandler
-Schnittstelle.Synchron eingehender Datenverkehr, d. h. der nutzende Client lauscht über den Adapter auf Daten oder Ereignisse vom Zielsystem. Implementieren Sie die
Microsoft.ServiceModel.Channels.Common.IInboundHandler
-Schnittstelle, um synchron eingehenden Datenverkehr zu unterstützen.Weitere Informationen zu den Nachrichtenaustauschmustern finden Sie unter Übersicht über die Architektur.
Hinweis
Der Adapterentwicklungs-Assistent zeigt das Nachrichtenaustauschmuster als Datenfluss auf der Benutzeroberfläche an.
Metadatenunterstützung
Der Echoadapter unterstützt Funktionen zum Durchsuchen, Suchen und Auflösen von Metadaten. In der Regel rufen die Browser- und Suchvorgänge aus einem LOB-System ab. Für den Echoadapter besteht ein LOB-System aus einer Reihe vordefinierter Vorgänge, wie unten gezeigt:
EchoMainCategory
Echo/EchoStrings
Echo/EchoGreetings
Echo/EchoCustomGreetingFromFile
Echo/OnReceiveEcho
Im Folgenden ist die Definition der einzelnen Vorgänge aufgeführt:
Name | Vorgangsdefinition | Beschreibung | Richtung |
---|---|---|---|
EchoMainCategory | Category | Kategorisiert die Vorgänge. | – |
Echo/EchoStrings | string[] EchoStrings(string data) | Gibt die eingehende Zeichenfolge mehrmals an den aufrufenden Client zurück. | Ausgehend |
Echo/EchoGreetings | Gruß[] EchoGreetings(Grußwort) | Gibt das eingehende Greeting-Objekt eine angegebene Anzahl von Wiederholungen an den aufrufenden Client zurück. | Ausgehend |
Echo/EchoCustomGreetingFromFile | CustomGreeting EchoCustomGreetingFromFile(Uri greetingInstancePath) | Gibt das Greeting-Objekt an, indem seine instance aus einer Datei gelesen wird. Die Metadaten des Greeting-Objekts werden aus einer vordefinierten XSD-Datei abgerufen. | Ausgehend |
Echo/OnReceiveEcho | void OnReceiveEcho(URI-Pfad, langer Inhalt) | Gibt den Speicherort und die Länge einer Datei an, die im angegebenen Ordner abgelegt wurde. | Eingehend |
Adaptereigenschaften
Der Adapter macht die folgenden Adaptereigenschaften verfügbar.
Name | Kategorie | Datentyp | Beschreibung |
---|---|---|---|
Anzahl | Sonstiges | System.Int32 | Wird verwendet, um die Angegebene Anzahl von Eingaben an den aufrufenden Client zurückzugeben. Standardeinstellung = 5 |
EnableConnectionPooling | Sonstiges | System.Boolean | Wird verwendet, um verbindungspooling für den Adapter zu aktivieren oder zu deaktivieren. Standard = true, d. h. das Verbindungspooling ist in der Runtime-Engine des WCF LOB Adapter SDK aktiviert. |
InboundFileFilter | Eingehend | System.String | Wird nur für das eingehende Szenario verwendet und vom FileSystemWatcher verwendet, um die Dateien der Erweiterung zu überwachen. Default=*.txt |
InboundFileSystemWatcherFolderFolder | Eingehend | System.String | Wird verwendet, um den Ordner festzulegen, in dem die Dateien gelöscht werden, damit FileSystemWatcher eine Benachrichtigung an den Adapter auslösen kann. Standard = c:\inbound\watcher. |
Verbindungseigenschaften
Der Echoadapter macht die folgenden Verbindungseigenschaften verfügbar.
Name | Datentyp | Beschreibung |
---|---|---|
Anwendung | System.String | Der Anwendungsname innerhalb des LOB-Systems. Diese Eigenschaft dient zur Veranschaulichung. Der Echoadapter umfasst kein LOB-System. Standard = lobapplication |
EnableAuthentication | System.Boolean | Bei "true" erwartet der Adapter einen Wert im Feld "Benutzername" innerhalb der Clientanmeldeinformationen. Standard = false |
Hostname | System.String | Der Servername, in dem sich ein LOB-System befindet. Diese Eigenschaft dient zur Veranschaulichung. Der Echoadapter umfasst kein LOB-System. Standard = lobhostname |
Schnittstellenimplementierung
Das WCF LOB Adapter SDK definiert eine Sammlung von Klassen und Schnittstellen, die implementiert werden müssen, um bestimmte Features des Adapters zu unterstützen. In der folgenden Tabelle werden diese Klassen und Schnittstellen, ihre Beschreibungen und deren Implementierung beschrieben.
Klasse/Schnittstelle | Wann muss implementiert werden? | Beschreibung |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IConnection | Wenn Sie die Verbindung mit dem Zielsystem definieren müssen. | Definiert die Verbindung mit dem Zielsystem. |
Microsoft.ServiceModel.Channels.Common.IConnectionFactory | Wenn Sie eine Verbindung mit dem Zielsystem erstellen müssen. | Erstellt die Verbindung mit dem Zielsystem. |
Microsoft.ServiceModel.Channels.Common.ConnectionUri | Wenn Sie einen Verbindungs-URI verwalten müssen. Wenn Sie die Verbindungseigenschaft im Add Adapter Service Reference Plug-In tool kategorisieren müssen. |
Verwaltet einen Verbindungs-URI für das Zielsystem. |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler | Ihr Adapter muss die Metadatenauflösungsfunktion unterstützen. | Löst Vorgangs- und Typmetadaten auf. |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler | Wenn Ihr Adapter die Metadatensuchfunktion unterstützt. | Sucht nach den Vorgängen im Zielsystem. |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler | Ihr Adapter muss die Durchstöberfunktion unterstützen. | Sucht nach den Vorgängen im Zielsystem. |
Microsoft.ServiceModel.Channels.Common.IOutboundHandler | Wenn Ihr Adapter in der Regel ausgehende Funktionen unterstützen muss. | Transformiert die eingehende WCF-Anforderungsnachricht in eine Zielsystemnachricht, ruft die systemspezifische Zielfunktion auf und transformiert die Antwort dann in eine ausgehende WCF-Antwortnachricht. |
Microsoft.ServiceModel.Channels.Common.IInboundHandler | Wenn Ihr Adapter eingehende Funktionen unterstützt. | Lauscht auf Daten und/oder Ereignisse aus dem Zielsystem. |
Um die Adapterentwicklung zu vereinfachen, verwenden Sie den Assistenten für die Adapterentwicklung, um Ihr Adapterprojekt zu generieren. Dadurch werden eine Reihe abgeleiteter Klassen erstellt, die auf Ihre Adapterfeatures zugeschnitten sind.
Um die Adapter- und Verbindungseigenschaften über die Tools Zum Hinzufügen des Adapterdienstverweis-Plug-Ins und zum Verwenden des Adapterdienst-Add-Ins anzupassen, ändern Sie die folgenden dateien, die vom Adapterentwicklungs-Assistenten generiert wurden.
{Projektname} BindingElement.cs
{Projektname} BindingElementExtensionElement.cs
{Projektname} ConnectionUri.cs
Ausführliche Informationen dazu finden Sie unter Schritt 2: Kategorisieren der Adapter- und Verbindungseigenschaften.