Condividi tramite


Panoramica dell'architettura di WCF LOB Adapter SDK

WCF LOB Adapter SDK è basato sul modello di canale WCF e fornisce estensioni in fase di progettazione e di runtime per gli sviluppatori di adattatori per creare adattatori a sistemi line-of-business con metadati di grandi dimensioni e dinamici. Un adattatore creato con WCF LOB Adapter SDK viene indicato al consumer come associazione WCF personalizzata. La figura seguente illustra l'architettura interna e i componenti principali di WCF LOB Adapter SDK.

Immagine che mostra l'architettura interna e i componenti principali di WCF LOB Adapter SDK.

Gestori

Il gestore definisce i modelli di scambio di messaggi supportati dall'adapter.

La tabella seguente riepiloga i tipi di gestore disponibili, la relativa funzione e i canali WCF a cui eseguono il mapping.

Tipo di gestore Funzione Esegue il mapping ai canali WCF
Microsoft.ServiceModel.Channels.Common.IOutboundHandler Supporta un modello di invio o richiesta/risposta unidirezionale. Ioutputchannel

IRequestChannel
Microsoft.ServiceModel.Channels.Common.IAsyncOutboundHandler Supporta il modello di invio unidirezionale o richiesta/risposta asincrono. Ioutputchannel

IRequestChannel
Microsoft.ServiceModel.Channels.Common.IInboundHandler Supporta modelli di ricezione o risposta unidirezionale. Iinputchannel

IReplyChannel
Microsoft.ServiceModel.Channels.Common.IAsyncInboundHandler Supporta varianti asincrone di metodi di ricezione o risposta unidirezionale. IInputChannel

IReplyChannel
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler Supporta l'esplorazione dei metadati nel sistema di destinazione. IRequestChannel
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler Supporta la ricerca di metadati nel sistema di destinazione. IRequestChannel
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler Supporta il recupero dei metadati dal sistema di destinazione. IRequestChannel

Implementazione del canale

Un adattatore compilato con WCF LOB Adapter SDK è fondamentalmente un canale di trasporto (System.ServiceModel.Channels.IServiceListner). Un adattatore compilato usando WCF LOB Adapter SDK viene indicato al consumer come associazione WCF, in cui l'associazione viene usata per creare lo stack di canali. Questa associazione può essere considerata un peer per altre associazioni WCF predefinite, ad esempio BasicHttpBinding, WsHttpBinding e NetTcpBinding e può essere impostata tramite app.config o nel codice dall'applicazione client quando si chiama un servizio. Questa associazione contiene un set ordinato di elementi di associazione, con l'adattatore che è l'elemento di associazione chiave che deriva dalla classe T:System.ServiceModel.Channels.TransportBindingElement. In uno scenario in uscita, il runtime dell'SDK dell'adapter LOB WCF usa una channel factory per creare l'adattatore, ovvero il canale di trasporto. In uno scenario in ingresso, il runtime dell'SDK dell'adapter LOB WCF usa listener di canale per i canali in ingresso in un'applicazione di servizio. Sia i messaggi in fase di esecuzione che i messaggi in fase di progettazione passano attraverso questo componente.

Factory di connessione, connessione e generatore di URI di connessione

ConnectionFactory fornisce un modello factory per la creazione di connessioni basate su URI e credenziali utente. Per altre informazioni, vedere Microsoft.ServiceModel.Channels.Common.IConnectionFactory.

La connessione definisce un contratto di comunicazione di basso livello con il sistema di destinazione e incapsula le API di comunicazione native e gli handle di connessione. Per altre informazioni, vedere Microsoft.ServiceModel.Channels.Common.IConnection.

Il Generatore URI di connessione consente ai consumer di adattatori di compilare URI di connessione a livello di codice senza conoscenze specifiche della sintassi. Per altre informazioni, vedere Microsoft.ServiceModel.Channels.Common.ConnectionUri.

Gestione delle connessioni

La gestione delle connessioni è responsabile della gestione della durata delle connessioni di una scheda. Mantiene internamente un pool di connessioni pronte per l'uso. Questo pool di connessioni è basato su credenziali e URI. Le credenziali contengono un nome utente e una password che definiscono il contesto di sicurezza in cui viene eseguita la connessione.

Quando vengono usate le stesse credenziali e gli stessi URI, qualsiasi canale aperto nella stessa factory di connessione ottiene la connessione dal pool, se ne è già disponibile uno.

Gestione pool di connessioni mantiene i record del numero di connessioni aperte a tale URI indipendentemente dalle credenziali e oltre i limiti della channel factory. In un sistema, ad esempio, è possibile avere due utenti con credenziali diverse, ovvero due channel factory che si connettono al sistema.

Nota

L'adattatore può essere limitato rispetto al numero di connessioni che può supportare, in genere limitato dalle risorse di sistema.

Per consentire agli sviluppatori di adattatori di configurare le impostazioni del pool di connessioni, WCF LOB Adapter SDK fornisce due classi e Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettingsMicrosoft.ServiceModel.Channels.Common.ConnectionManagerSettings.

Gestione dei metadati

La gestione dei metadati è responsabile della rappresentazione orientata agli oggetti della memorizzazione nella cache dei metadati per il sistema di destinazione. I metadati possono essere mantenuti in una cache comune accessibile in tutte le credenziali oppure possono essere memorizzati nella cache per ogni base di credenziale.

Il ciclo di vita dei metadati inizia con le definizioni in fase di progettazione e continua l'utilizzo durante il runtime. In fase di progettazione, gli sviluppatori di adattatori devono identificare il set di operazioni e devono generare il proxy WSDL e lato client necessario. In fase di esecuzione, gli adapter basati su Adapter Framework usano i metadati predefiniti per interpretare i messaggi restituiti dalle chiamate di sistema di destinazione.

Per consentire ai writer di adattatori di configurare l'impostazione dei metadati, Adapter Framework fornisce tre classi, Microsoft.ServiceModel.Channels.Common.CacheSettingsMicrosoft.ServiceModel.Channels.Common.MetadataSettings e Microsoft.ServiceModel.Channels.Common.CommonCacheSettings.

Generatore WSDL

WSDL Builder fornisce la generazione WSDL automatica dal modello a oggetti dei metadati interni di WCF LOB Adapter SDK (può essere sottoposto a override per scenari che richiedono la generazione WSDL personalizzata).

Per altre informazioni, vedere Microsoft.ServiceModel.Channels.Common.IWsdlRetrieval.

Ricerca/esplorazione dei metadati

La ricerca o l'esplorazione dei metadati consente di esplorare e cercare tutti i metadati LOB.

Per altre informazioni, vedere Microsoft.ServiceModel.Channels.IMetadataRetrievalContract.

Generazione di metadati

La generazione di metadati consente di generare codice per il client (per gli scenari in uscita) e per il servizio (per gli scenari in ingresso) in base alle operazioni selezionate dal consumer dell'adattatore. Anche se è consigliabile che i consumer di adattatori usino gli strumenti Add Adapter Service Reference Plug-in (Consume Adapter Service Add-in Case of BizTalk applications), WCF LOB Adapter SDK fornisce un'interfaccia Microsoft.ServiceModel.Channels.MetadataRetrievalClient.GetMetadata%2A pubblica per recuperare system.Web.Services.Description.ServiceDescription, che rappresenta un linguaggio WSDL (Web Service Description Language) contenente informazioni su operazioni e tipi selezionati. Gli adattatori writer usano il modello a oggetti di metadati per WCF LOB Adapter SDK che include classi derivate da Microsoft.ServiceModel.Channels.Common.OperationMetadata e Microsoft.ServiceModel.Channels.Common.TypeMetadata per descrivere i dettagli di ogni operazione e tipo.