Architekturübersicht des WCF LOB Adapter SDK
Das WCF LOB Adapter SDK basiert auf dem WCF-Kanalmodell und stellt Entwurfszeit- und Laufzeiterweiterungen für Adapterentwickler bereit, um Adapter für Branchensysteme mit großen und dynamischen Metadaten zu erstellen. Ein adapter, der mit dem WCF LOB Adapter SDK erstellt wurde, wird dem Consumer als benutzerdefinierte WCF-Bindung angezeigt. Die folgende Abbildung zeigt die interne Architektur und Standard Komponenten des WCF LOB Adapter SDK.
Handler
Der Handler definiert die vom Adapter unterstützten Nachrichtenaustauschmuster.
In der folgenden Tabelle sind die verfügbaren Handlertypen, ihre Funktion und die WCF-Kanäle zusammengefasst, die sie zugeordnet haben.
Handlertyp | Function | Zuordnung zu WCF-Kanälen |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IOutboundHandler |
Unterstützt unidirektionales Sende- oder Anforderungs-/Antwortmuster. | Ioutputchannel IRequestChannel |
Microsoft.ServiceModel.Channels.Common.IAsyncOutboundHandler |
Unterstützt asynchrones unidirektionales Sende- oder Anforderungs-/Antwortmuster. | Ioutputchannel IRequestChannel |
Microsoft.ServiceModel.Channels.Common.IInboundHandler |
Unterstützt unidirektionale Empfangs- oder Antwortmuster. | Iinputchannel IReplyChannel |
Microsoft.ServiceModel.Channels.Common.IAsyncInboundHandler |
Unterstützt asynchrone Varianten von Methoden mit unidirektionalen Empfangs- oder Antwortmustern. | IInputChannel IReplyChannel |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler |
Unterstützt das Durchsuchen von Metadaten auf dem Zielsystem. | IRequestChannel |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler |
Unterstützt die Suche nach Metadaten auf dem Zielsystem. | IRequestChannel |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler |
Unterstützt das Abrufen von Metadaten aus dem Zielsystem. | IRequestChannel |
Kanalimplementierung
Ein adapter, der mit dem WCF LOB Adapter SDK erstellt wurde, ist im Grunde ein Transportkanal (System.ServiceModel.Channels.IServiceListner). Ein Adapter, der mit dem WCF LOB Adapter SDK erstellt wurde, wird dem Consumer als WCF-Bindung angezeigt, wobei die Bindung zum Erstellen des Kanalstapels verwendet wird. Diese Bindung kann als Peer zu anderen vordefinierten WCF-Bindungen wie BasicHttpBinding, WsHttpBinding und NetTcpBinding betrachtet werden und kann beim Aufrufen eines Diensts über app.config oder im Code von der Clientanwendung festgelegt werden. Diese Bindung enthält einen geordneten Satz von Bindungselementen, wobei der Adapter das Schlüsselbindungselement ist, das von der T:System.ServiceModel.Channels.TransportBindingElement-Klasse abgeleitet ist. In einem ausgehenden Szenario verwendet die WCF LOB Adapter SDK-Runtime eine Kanalfactory, um den Adapter (d. a. den Transportkanal) zu erstellen. In einem eingehenden Szenario verwendet die WCF LOB Adapter SDK-Runtime Kanallistener für eingehende Kanäle in einer Dienstanwendung. Sowohl Laufzeit- als auch Entwurfszeitmeldungen durchlaufen diese Komponente.
Verbindungsfactory, Verbindungs- und Verbindungs-URI-Generator
ConnectionFactory bietet ein Factorymuster zum Erstellen von Verbindungen basierend auf URI und Benutzeranmeldeinformationen. Weitere Informationen finden Sie unter Microsoft.ServiceModel.Channels.Common.IConnectionFactory
.
Die Verbindung definiert einen Kommunikationsvertrag auf niedriger Ebene mit dem Zielsystem und kapselt native Kommunikations-APIs und Verbindungshandles. Weitere Informationen finden Sie unter Microsoft.ServiceModel.Channels.Common.IConnection
.
Der Verbindungs-URI-Generator ermöglicht Adapter-Consumern das programmgesteuerte Erstellen von Verbindungs-URIs ohne spezifische Syntaxkenntnisse. Weitere Informationen finden Sie unter Microsoft.ServiceModel.Channels.Common.ConnectionUri
.
Verbindungsverwaltung
Die Verbindungsverwaltung ist für die Lebensdauerverwaltung der Verbindungen eines Adapters verantwortlich. Es hält intern einen Pool der Verbindungen bereit für die Verwendung. Dieser Verbindungspool basiert auf Anmeldeinformationen und URI. Die Anmeldeinformationen enthalten einen Benutzernamen und ein Kennwort, die den Sicherheitskontext definieren, unter dem die Verbindung ausgeführt wird.
Wenn dieselben Anmeldeinformationen und URI verwendet werden, ruft jeder Kanal, der unter derselben Verbindungsfactory geöffnet wird, die Verbindung aus dem Pool ab, sofern bereits eine verfügbar ist.
Der Verbindungspool-Manager speichert Aufzeichnungen darüber, wie viele offene Verbindungen zu diesem URI vorhanden sind, unabhängig von den Anmeldeinformationen und über die Grenzen der Kanalfactory hinweg. Beispielsweise können Sie in einem System zwei Benutzer mit unterschiedlichen Anmeldeinformationen haben, was bedeutet, dass zwei Kanalfabriken eine Verbindung mit dem System herstellen.
Hinweis
Der Adapter kann in Bezug auf die Anzahl von Verbindungen, die er unterstützen kann, begrenzt sein, im Allgemeinen durch Systemressourcen begrenzt.
Um Adapterentwicklern beim Konfigurieren der Verbindungspooleinstellungen zu helfen, stellt das WCF LOB Adapter SDK zwei Klassen bereit, Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettings
und Microsoft.ServiceModel.Channels.Common.ConnectionManagerSettings
.
Metadatenverwaltung
Die Metadatenverwaltung ist für die objektorientierte Darstellung der Zwischenspeicherung der Metadaten für das Zielsystem verantwortlich. Metadaten können in einem gemeinsamen Cache gespeichert werden, auf den für alle Anmeldeinformationen zugegriffen werden kann, oder sie können pro Anmeldeinformationsbasis zwischengespeichert werden.
Der Metadatenlebenszyklus beginnt mit seinen Entwurfszeitdefinitionen und wird während der Laufzeit durch die Verwendung fortgesetzt. Zur Entwurfszeit müssen Adapterentwickler den Satz von Vorgängen identifizieren und den erforderlichen WSDL- und clientseitigen Proxy generieren. Zur Laufzeit verwenden die Adapter Framework-basierten Adapter die vordefinierten Metadaten, um die von den Zielsystemaufrufen zurückgegebenen Nachrichten zu interpretieren.
Damit Adapterautoren die Metadateneinstellung konfigurieren können, stellt das Adapterframework drei Klassen bereit, Microsoft.ServiceModel.Channels.Common.CacheSettings
Microsoft.ServiceModel.Channels.Common.MetadataSettings
und Microsoft.ServiceModel.Channels.Common.CommonCacheSettings
.
WSDL-Generator
WSDL Builder bietet die automatische WSDL-Generierung aus dem internen Metadatenobjektmodell des WCF LOB Adapter SDK (es kann für Szenarien überschrieben werden, in denen eine benutzerdefinierte WSDL-Generierung erforderlich ist).
Weitere Informationen finden Sie unter Microsoft.ServiceModel.Channels.Common.IWsdlRetrieval
.
Metadatensuche/-suche
Das Durchsuchen/Suchen von Metadaten ermöglicht das Durchsuchen und Durchsuchen aller Branchenmetadaten.
Weitere Informationen finden Sie unter Microsoft.ServiceModel.Channels.IMetadataRetrievalContract
.
Generierung von Metadaten
Die Metadatengenerierung ermöglicht das Generieren von Code für den Client (für ausgehende Szenarien) und für den Dienst (für eingehende Szenarien) basierend auf vom Adapter consumer ausgewählten Vorgängen. Obwohl wir empfehlen, dass Adapterverbraucher die Tools Add Adapter Service Reference Plug-In (Use Adapter Service Add-in in in fall of BizTalk-Anwendungen) verwenden, stellt das WCF LOB Adapter SDK eine öffentliche Schnittstelle Microsoft.ServiceModel.Channels.MetadataRetrievalClient.GetMetadata%2A
zum Abrufen des System.Web.Services.Description.ServiceDescription bereit, das eine Webdienstbeschreibungssprache (Web Service Description Language, WSDL) darstellt, die Informationen zu ausgewählten Vorgängen und Typen enthält. Adapterautoren verwenden das Metadatenobjektmodell für das WCF LOB Adapter SDK, das von abgeleitete Microsoft.ServiceModel.Channels.Common.OperationMetadata
Klassen enthält, um Microsoft.ServiceModel.Channels.Common.TypeMetadata
die Details der einzelnen Vorgänge und Typen zu beschreiben.