Wichtige Komponenten des WCF LOB Adapter SDK
Das Entwickeln eines Adapters mit dem WCF LOB Adapter SDK erfordert die Verwendung vieler der folgenden grundlegenden Komponenten:
Verbindungskomponenten , um eine Verbindung mit dem Branchensystem herzustellen und aufrechtzuerhalten.
Handlerkomponenten definieren und implementieren Prozeduren, die zum Arbeiten mit eingehenden und ausgehenden Nachrichten und Metadatenvorgängen verwendet werden.
Metadatenkomponenten definieren und bearbeiten die Metadaten, die für die Kommunikation mit dem Branchensystem verwendet werden.
Benutzerdefinierte Komponenten bieten Unterstützung für Transaktionen, zuverlässiges Messaging und Sicherheit.
Kernkomponenten binden alle Komponenten zusammen und stellen eine nahtlose Integration in WCF sicher.
Diese Komponenten stehen im Mittelpunkt dieses Themas.
Verbindungskomponenten
Die Verbindungskomponenten umfassen Schnittstellen und Klassen, die die Lebensdauer von Verbindungen definieren und steuern sowie URI-Abfrageattribute und Benutzerattribute verwalten. Verbindungskomponenten umfassen die In der folgenden Tabelle beschriebenen Schnittstellen und Klassen.
Verbindungskomponente | Erforderlich? | BESCHREIBUNG |
---|---|---|
Microsoft.ServiceModel.Channels.Common.ConnectionUri |
Erforderlich | Basisklasse für die Bereitstellung einer angepassten URI-Erstellungsumgebung für Benutzer, die Ihren Adapter nutzen. |
Microsoft.ServiceModel.Channels.Common.IConnection |
Erforderlich | Schnittstelle, die das Verhalten für eine Verbindung definiert. Entwickler müssen diese Schnittstelle implementieren, um eine Verbindung mit dem Zielsystem zu definieren. |
Microsoft.ServiceModel.Channels.Common.IConnectionFactory |
Erforderlich | Basisklasse für eine Verbindungsfactory. Entwickler werden beim Definieren der Verbindungsfactory für das Zielsystem eine Unterklasse ausführen. |
Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettings |
Optional | Enthält Einstellungen, die das Verhalten des Verbindungspools steuern. Entwickler können diese Werte basierend auf dem Verhalten des Zielsystems optimieren. |
Microsoft.ServiceModel.Channels.Common.ConnectionManagerSettings |
Optional | Enthält statische Einstellungen, die das Verhalten des Verbindungspools steuern. Entwickler möchten diese Werte möglicherweise für ihr Zielsystem optimieren. |
Der WCF LOB-Adapterentwicklungs-Assistent erstellt Implementierungen von Microsoft.ServiceModel.Channels.Common.IConnection``Microsoft.ServiceModel.Channels.Common.ConnectionUri
und Microsoft.ServiceModel.Channels.Common.IConnectionFactory
unabhängig von den ausgewählten Assistentenoptionen. Diese Implementierungen enthalten Code zur Unterstützung der im Assistenten ausgewählten Optionen (einschließlich Verbindungseigenschaften im Verbindungs-URI), aber der Adapterentwickler muss Implementierungen für Open, Close und andere Methoden von Microsoft.ServiceModel.Channels.Common.IConnection
und Microsoft.ServiceModel.Channels.Common.ConnectionUri
bereitstellen.
Handlerkomponenten
Die Handlerkomponenten bieten Unterstützung für verschiedene Nachrichtenaustauschmuster, einschließlich eingehender, ausgehender, asynchroner eingehender, asynchroner ausgehender, asynchroner ausgehender und Metadatensuche, Durchsuchen und Auflösen von Vorgängen. Handlerkomponenten umfassen die Schnittstellen und Klassen, die in der folgenden Tabelle beschrieben werden.
Handlerkomponente | Erforderlich? | BESCHREIBUNG |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IAsyncInboundHandler |
Optional | Wird verwendet, um Nachrichten asynchron vom Zielsystem zu empfangen. Die asynchrone Unterstützung ist optional. |
Microsoft.ServiceModel.Channels.Common.IAsyncOutboundHandler |
Optional | Wird zum asynchronen Senden von Nachrichten vom Zielsystem verwendet. Die asynchrone Unterstützung ist optional. |
Microsoft.ServiceModel.Channels.Common.IInboundHandler |
Optional | Wird verwendet, um Nachrichten vom Zielsystem zu empfangen. Entwickler sollten diesen Handler implementieren, wenn der Adapter auf Nachrichten vom Zielsystem lauschen muss. |
Microsoft.ServiceModel.Channels.Common.IOutboundHandler |
Optional | Bietet Unterstützung für das Senden von Nachrichten an das Zielsystem. Es ist zwar optional, aber für das Anforderung-Antwort-Nachrichtenmuster erforderlich. Die meisten grundlegenden Kommunikationstechnologien basieren auf diesem Muster, einschließlich HTTP, RPC und vielen anderen. |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler |
Optional | Dieser Handler wird implementiert, wenn der Adapter die Metadatensuche unterstützt. Obwohl es optional ist, implementieren Entwickler diesen Handler häufig, um eine Liste der im Zielsystem verfügbaren Vorgänge bereitzustellen. |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler |
Optional | Dieser Handler muss implementiert werden, wenn der Adapter Metadaten aus dem Zielsystem abruft und zurückgibt, die systemspezifische Logik und Datentypen darstellen. Metadaten können aus dem eigentlichen Zielsystem abgerufen oder erstellt werden, um die Funktionen des Zielsystems darzustellen. Ein FTP-Adapter könnte beispielsweise GET- und PUT-Vorgänge erstellen. Obwohl nicht erforderlich, implementieren Entwickler diesen Handler im Allgemeinen, um Informationen zu einem bestimmten Vorgang bereitzustellen. |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler |
Optional | Dieser Handler wird implementiert, wenn der Adapter die Metadatensuche unterstützt. |
Der Adapterentwicklungs-Assistent erstellt Implementierungen von Microsoft.ServiceModel.Channels.Common.IAsyncOutboundHandler
, Microsoft.ServiceModel.Channels.Common.IOutboundHandler
und Microsoft.ServiceModel.Channels.Common.IInboundHandler
den Metadatenhandlern basierend auf den vom Entwickler getroffenen Entscheidungen. Supportcode wird bereitgestellt. Der Adapterentwickler muss jedoch Code angeben, um den eingehenden Listener und anderen code, der durch TODO-Kommentare gekennzeichnet ist, zu starten und zu beenden.
Metadatenkomponenten
Die Metadatenkomponenten bieten Unterstützung für die Verarbeitung von Metadatenanforderungen sowie für die Beschreibung von Typen und Vorgängen in der Zielanwendung. Die Handlerkomponenten steuern, wie Metadatenanforderungen behandelt werden. Die Metadatenkomponenten beschreiben die Datentypen und Vorgänge, die vom Zielsystem verfügbar gemacht werden.
Die Metadatenkomponenten sind so konzipiert, dass sie zwei Arten von Metadateninformationen enthalten: Typmetadaten und Vorgangsmetadaten.
Typmetadaten beschreiben die Datentypen, die im Zielsystem verfügbar sind, und enthalten den Namen des Typs, seine Arrayeigenschaften, wenn es sich um ein Array handelt, und ob es sich um einen einfachen XSD-Schematyp oder einen komplexen Typ handelt.
Vorgangsmetadaten beschreiben die Vorgänge, die im Zielsystem verfügbar sind. Eigenschaften umfassen einen Rückgabetyp, eine Liste von Parametern und den Vorgangsnamen.
Die Metadatenunterstützung innerhalb eines Adapters ist optional, wird jedoch empfohlen. Einer der Vorteile der Verwendung des WCF LOB Adapter SDK zum Erstellen eines Adapters im Vergleich zur Implementierung von Funktionen als WCF-Dienst ist die Möglichkeit, einen dynamischen Satz von Vorgängen verfügbar zu machen und an diese zu binden.
Hinweis
Wenn Sie einen begrenzten Satz statischer Methoden verfügbar machen müssen, sollten Sie die Verwendung von WCF in Erwägung ziehen.
Die für die Verarbeitung, Beschreibung und Arbeit mit Metadaten verfügbaren Komponenten werden in der folgenden Tabelle beschrieben.
Metadatenkomponente | BESCHREIBUNG |
---|---|
Microsoft.ServiceModel.Channels.Common.ComplexQualifiedType |
Eine Klasse, die einen komplexen qualifizierten Typ für einen Adapter darstellt. Wenn das Zielsystem beispielsweise eine relationale Datenbank ist, kann es sich bei einem Tabellen-, Zeilen- oder benutzerdefinierten Prozedurrückgabetyp um benutzerdefinierte qualifizierte Typen handeln. |
Microsoft.ServiceModel.Channels.Common.OperationMetadata |
Basisklasse zum Darstellen von Vorgangsmetadaten für das Zielsystem. Beispielsweise können Sie OperationMetadata unterklassen, um Informationen zu gespeicherten Prozeduren in einem Adapter für eine relationale Datenbank zu enthalten. |
Microsoft.ServiceModel.Channels.Common.OperationMetadataTraceRecord |
Bietet eine Möglichkeit zum Erfassen von Vorgangsmetadaten in einer Ablaufverfolgungsdatei. Die Ablaufverfolgung sammelt Informationen wie eindeutige ID, zeitpunkt des letzten Zugriffs, Zeitstempel, Anzeigename, Ursprünglicher Name, Parameter und andere Details. |
Microsoft.ServiceModel.Channels.Common.ParameterizedOperationMetadata |
Stellt eine Möglichkeit zum Definieren von Attributen eines Vorgangs bereit, z. B. Parameter und Rückgabetyp. |
Microsoft.ServiceModel.Channels.Common.OperationParameter |
Beschreibt einen Parameter, der zum Aufrufen eines Vorgangs auf dem Zielsystem verwendet wird. Eigenschaften umfassen den Namen, den ursprünglichen Namen, die Parameterrichtung und ein Flag, das angibt, ob der Parameter leer ist oder nicht. |
Microsoft.ServiceModel.Channels.Common.OperationParameterDirection |
Ein aufgezählter Typ, der die Richtung eines Parameters für einen Vorgang beschreibt. Ein Parameter kann nur eingehender (In), nur ausgehender (Out) oder bidirektional (InOut) sein. |
Microsoft.ServiceModel.Channels.Common.OperationResult |
Stellt ein Vorgangsergebnis dar. Kann OperationResult.Empty für Vorgänge sein, die void oder NULL und je nach Vorgang eine Zeichenfolge, eine ganze Zahl oder einen anderen Wert zurückgeben. |
Microsoft.ServiceModel.Channels.Common.QualifiedType |
Entwickelt, um die Basisklasse für qualifizierte Typeigenschaften zu sein und wird verwendet, um Eigenschaften von Typmetadaten für ein Zielsystem zu beschreiben. |
Microsoft.ServiceModel.Channels.Common.QualifiedTypeContainer |
Stellt einen Container für eine Reihe verwandter qualifizierter Typen bereit. |
Microsoft.ServiceModel.Channels.Common.SimpleQualifiedType |
Beschreibt die Eigenschaften von Typmetadaten für ein Zielsystem, wenn dieser Typ direkt einem W3C XSD-Schematyp zugeordnet wird. Eine Liste der zulässigen Typen finden Sie unter XmlTypeCode-Enumeration. |
Microsoft.ServiceModel.Channels.Common.TypeMember |
Bietet eine Möglichkeit zum Definieren eines einfachen oder komplexen Datenmembers in den Metadaten des strukturierten Typs. |
Microsoft.ServiceModel.Channels.Common.TypeMetadata |
Basisklasse zum Darstellen von Typmetadaten für das Zielsystem. |
Microsoft.ServiceModel.Channels.Common.StructuredTypeMetadata |
Stellt eine Möglichkeit zum Definieren einer Datenstruktur bereit, die komplexe und/oder einfache Typmember enthält. |
Microsoft.ServiceModel.Channels.Common.TypeMetadataCollection |
Stellt einen Container für eine Reihe verwandter Typmetadaten bereit. |
Microsoft.ServiceModel.Channels.Common.TypeMetadataTraceRecord |
Bietet eine Möglichkeit, Typmetadaten in einer Ablaufverfolgungsdatei zu erfassen. Die Ablaufverfolgung sammelt Informationen wie eindeutige ID, Zeitpunkt des letzten Zugriffs, Zeitstempel und andere Details. |
Benutzerdefinierte Komponenten
Benutzerdefinierte Komponenten bieten Unterstützung für Transaktionen, Sicherheit, zuverlässiges Messaging und andere Features, die stark vom Zielsystem abhängig sind. Als Adapterentwickler, der das WCF LOB Adapter SDK verwendet, müssen Sie die Funktionen des Zielsystems verstehen und den Umfang ermitteln, in dem Sie diese unterstützen möchten.
Kernkomponenten
Kernkomponenten stellen eine Reihe von Basisklassen und Schnittstellen bereit, mit denen der Adapter an WCF angeschlossen werden kann. Die Kernkomponenten werden in der folgenden Tabelle beschrieben.
Kernkomponente | Erforderlich? | BESCHREIBUNG |
---|---|---|
Microsoft.ServiceModel.Channels.Common.Adapter |
Erforderlich | Die Basisklasse eines Adapters, der mit dem WCF LOB Adapter SDK geschrieben wurde. Sie ist für die Interaktion mit der WCF-Kanalarchitektur verantwortlich. |
Microsoft.ServiceModel.Channels.Common.AdapterBinding |
Erforderlich | Klasse, die Einstellungen enthält, die verschiedene Einstellungen für den Adapter steuern, einschließlich des Verbindungspools (Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettings ), des Caches (Microsoft.ServiceModel.Channels.Common.CacheSettings ), der Metadaten (Microsoft.ServiceModel.Channels.Common.MetadataSettings ) und des Messagings (Microsoft.ServiceModel.Channels.Common.MessagingSettings ). |
Benutzerdefinierte Adapter werden über WCF-Bindungen verfügbar gemacht. Weitere Informationen finden Sie in der WCF-Dokumentation unter https://go.microsoft.com/fwlink/?LinkId=100308.
Der Adapterentwicklungs-Assistent erstellt Implementierungen von Microsoft.ServiceModel.Channels.Common.Adapter
, Microsoft.ServiceModel.Channels.Common.AdapterBinding
, System.ServiceModel.Configuration.StandardBindingElement
und System.ServiceModel.Configuration.StandardBindingCollectionElement
, um die Adapterbindung für das WCF-Konfigurationssystem verfügbar zu machen. Der Adapterentwicklungs-Assistent generiert auch eine Implementierung von, System.ServiceModel.Configuration.BindingElementExtensionElement
um die Verwendung in einer benutzerdefinierten WCF-Bindung von einer Computer- oder Anwendungskonfigurationsdatei zu ermöglichen Microsoft.ServiceModel.Channels.Common.Adapter
.
Weitere Informationen zu StandardBindingElement, StandardBindingCollectionElement und BindingElementExtensionElement finden Sie in der WCF-Dokumentation.
Weitere Informationen zum Konfigurieren eines adapters, der mit dem WCF LOB Adapter SDK geschrieben wurde, finden Sie unter Bereitstellen eines Adapters mithilfe des WCF LOB Adapter SDK.
Weitere Informationen
Grundlegendes zum BRANCHENsystem mit dem WCF LOB Adapter SDK