Variabili di adapter
Gli adapter personalizzati devono necessariamente gestire diverse variabili. I valori assegnati a tali variabili influenzano la logica personalizzata implementata dall'adapter. Le proprietà di configurazione specifiche del trasporto o dell'applicazione possono essere utili per il supporto della soluzione. Nella tabella seguente sono elencate le variabili più comuni fra queste. È necessario decidere se supportarle tutte nell'adapter personalizzato.
L'adapter deve implementare interfacce specifiche per ogni opzione. Dopo la tabella è riportato un elenco di opzioni di variabili con collegamenti per informazioni aggiuntive sulla scrittura di codice per gli adapter a supporto delle decisioni progettuali.
Variabile di adapter | Descrizione |
---|---|
Direzione di comunicazione | Ricezione. Un adapter di ricezione resta in ascolto su un indirizzo con protocollo specifico in attesa di un messaggio in ingresso. Quando riceve un messaggio, lo inoltra al motore di messaggistica, il quale lo passa attraverso una pipeline di ricezione per renderlo infine persistente nel database MessageBox. Trasmissione. Quando il motore di messaggistica deve trasmettere un messaggio a un determinato endpoint, lo passa alla pipeline di trasmissione. Un adapter di trasmissione accetta il messaggio dalla pipeline e lo invia alla porta di trasmissione. |
Hosting dell'adapter | In-process. Una scheda in-process viene creata e ospitata all'interno del processo di servizio BizTalk, BTSNTSvc.exe. Se l'host è a 64 bit, il processo è denominato BTSNTSvc64.exe. Per semplificare, in questa sezione non si parlerà del processo a 64 bit. Ciò significa che BizTalk Server crea e gestisce la durata dell'adattatore, la inizializza con il proxy di trasporto, le richieste dell'adapter e termina la scheda al termine dell'arresto del servizio. Per le schede in-process, BizTalk Server fornisce anche informazioni di configurazione all'adattatore in fase di esecuzione, tra cui gestore, porta di trasmissione e configurazione della posizione di ricezione. Gli aspetti di configurazione, quali le finestre di servizi, vengono gestiti dal motore di messaggistica, in modo che l'adapter non debba verificare che un indirizzo di ricezione o una porta di trasmissione si trovi all'esterno di una finestra di servizio. Si noti che tutti gli adapter di trasmissione sono adapter in-process e devono essere eseguiti nel processo BTSNTSvc.exe. Isolamento L'adapter viene creato in un host isolato che non fa parte del runtime di BizTalk Server. È un esempio di adapter isolato l'adapter di ricezione HTTP, che viene eseguito nello spazio di elaborazione di Internet Information Services (IIS). Il modello di processo di IIS, ad esempio, è tale che IIS gestisce la durata delle applicazioni ASP.NET e delle estensioni ISAPI. Quando BizTalk Server non è in grado di gestire la durata dell'adattatore, l'adattatore viene definito adattatore isolato. Poiché BizTalk Server non gestisce l'istanza di un adattatore isolato, l'adapter deve creare il proprio proxy di trasporto e registrarsi con tale proxy di trasporto. Si noti che l'architettura BizTalk Server elimina le comunicazioni interprocesso non necessarie. Poiché l'adapter isolato e lo stack di BizTalk sono nello stesso processo, quando l'adapter chiama il motore di messaggistica non avviene alcuna comunicazione interprocesso. L'unica comunicazione interprocesso (inevitabile) è tra il motore di messaggistica e il database. Le applicazioni COM+ non sono in grado di ospitare adapter di trasmissione scritti in codice non gestito. |
Schema di scambio dei messaggi | Unidirezionale. Il messaggio è in ingresso o in uscita. Request-Response (bidirezionale) . Le schede di risposta richiesta sono sempre schede di ricezione. Una scheda di ricezione della risposta richiesta riceve un messaggio di richiesta dal client e invia il messaggio a BizTalk Server. Dopo aver elaborato il messaggio di richiesta, BizTalk Server invia un messaggio di risposta all'adapter. L'adapter ritrasmette quindi il messaggio di risposta al client, Solicit-Response (bidirezionale) . Gli adattatori di richiesta di risposta sono sempre adattatori di invio. Un adapter di trasmissione di tipo sollecitazione-risposta invia un messaggio di richiesta da BizTalk Server a una destinazione, rimane in attesa di una risposta, quindi invia il messaggio di risposta a BizTalk Server. |
Binding delle porte di trasmissione | Porte di trasmissione e indirizzi di ricezione dinamici. La variabile URI della porta di trasmissione o dell'indirizzo di ricezione utilizzata nel binding dinamico è determinata in fase di esecuzione. Porte di trasmissione e indirizzi di ricezione statici. La variabile URI della porta di trasmissione o dell' indirizzo di ricezione è statica e viene configurata prima della fase di esecuzione. |
Adapter di trasmissione sincroni e asincroni | Adapter di trasmissione sincroni Durante l'esecuzione di un'operazione di trasmissione, il motore di messaggistica blocca il thread del proxy di trasporto finché il batch di messaggi non è stato inviato e quindi avviene la restituzione. Il proxy di trasporto gestisce la rimozione dei messaggi dopo che la trasmissione è avvenuta, è stata ritentata o sospesa o dopo che il passaggio all'operazione seguente è stato completato. Adapter di trasmissione asincroni Gli adapter di trasmissione non bloccano il thread del proxy di trasporto, ma utilizzano un thread separato durante l'esecuzione delle operazioni di trasmissione. A differenza degli adapter sincroni, questi adapter devono implementare l'intera logica per l'eliminazione e i tentativi, in quanto non viene gestita dal proxy di trasporto. Gli adattatori che inviano messaggi asincroni consentono prestazioni migliori BizTalk Server rispetto a quelle che inviano messaggi sincroni. e questo perché i thread attendono a lungo che vengano completate le operazioni dei messaggi in ingresso e in uscita. Poiché il motore di messaggistica è fortemente legato alla CPU, il blocco del thread del motore di messaggistica degrada le prestazioni degli adapter. È consigliabile utilizzare le trasmissioni asincrone in quanto le prestazioni migliorano. |
Adapter di ricezione asincroni | Tutti gli adapter di ricezione sono asincroni, ovvero, quando un adapter invia nuovi messaggi al motore di messaggistica BizTalk, non attende che vengano elaborati completamente prima della restituzione. |
Supporto transazionale | Adapter transazionale. Supporta messaggi di trasmissione e ricezione delle transazioni. Per quanto riguarda la trasmissione, le transazioni sono supportate solo dagli adapter di trasmissione con supporto batch di tipo asincrono. Adapter non transazionale. Adapter che non riceve o trasmette messaggi nell'ambito di una transazione esplicita. Molti adapter non sono transazionali in quanto eseguono la trasmissione da o a un sistema, ad esempio il file system di Windows, che non supporta le transazioni. |
Adapter di trasmissione con e senza supporto batch | Adapter con supporto batch Gli adapter di trasmissione sono in grado di elaborare messaggi in batch di operazioni. Tutti gli adapter possono raccogliere i messaggi disponibili per l'invio e quindi inoltrarli tutti insieme al database MessageBox, riducendo in tal modo il numero di aggiornamenti del database necessari. In alcuni casi ciò significa che la lunghezza del batch è uno. Analogamente, gli adapter di trasmissione raccolgono i messaggi disponibili per l'invio, li estraggono e quindi li inviano alla relativa destinazione tutti insieme. In generale, BizTalk Server considera un batch come unità di lavoro per gli aggiornamenti del database. Gli adapter possono inviare nello stesso batch messaggi unidirezionali, di richiesta-risposta e di sollecitazione-risposta, oltre che sospendere ed eliminare messaggi e richiedere che venga ritentata la trasmissione di un messaggio o che un messaggio venga spostato al trasporto di backup. Se possibile, è opportuno utilizzare le trasmissioni con supporto batch. Possono operare in batch sia gli adapter di trasmissione sia gli adapter di ricezione, ma supportano le transazioni soltanto gli adapter di trasmissione di tipo asincrono con supporto batch. Adapter senza supporto batch. Per ogni messaggio sono necessarie chiamate indipendenti al server. |
Adapter di ricezione con supporto batch | Tutti gli adapter di ricezione dispongono del supporto batch. |
Configurazione dinamica e statica dell'adapter in fase di progettazione | Adapter dinamici in fase di progettazione. Perché un adapter supporti la configurazione dinamica in fase di progettazione è necessario sviluppare un'interfaccia utente (UI) personalizzata da utilizzare con l'Aggiunta guidata adapter. Questa interfaccia consente all'utente di selezionare uno schema da aggiungere a un progetto BizTalk e ne restituisce la descrizione del servizio tramite un file WSDL (Web Services Description Language). Per ottenere gli schemi, l'adapter fornisce una UI personalizzata. Quando un servizio viene importato mediante l'Aggiunta guidata adapter, al progetto BizTalk vengono aggiunti tipi di porta, tipi di messaggio e un'orchestrazione, oltre agli schemi. Per altre informazioni, vedere Configurazione dell'adattatore statico Design-Time. Adapter statici in fase di progettazione. Perché un adapter supporti la configurazione statica in fase di progettazione si implementano interfacce standard per consentire la selezione di uno schema da aggiungere a un progetto BizTalk nell'Aggiunta guidata adapter. L'UI per l'adapter viene fornita da Adapter Framework BizTalk. Per informazioni sulla modifica dell'adattatore di file di esempio, vedere Configurazione della scheda di Design-Time dinamica. |
Adapter di trasporto e adapter dell'applicazione | Adapter di trasporto Gli adapter di trasporto supportano un protocollo specifico e non utilizzano uno schema. Delle dodici schede native, nove sono adattatori di trasporto: MSMQ, MQ Series, File, FTP, HTTP, SMTP, POP3 e SOAP. Adapter di applicazione. Gli adapter applicazione utilizzano schemi di dati per inviare dati a un'applicazione specificata. Delle schede native, due sono adattatori dell'applicazione: Windows SharePoint Services e SQL. |
Per informazioni sulle interfacce da implementare nel codice per gli adapter personalizzati, utilizzare il collegamento presente nella tabella seguente relativo al tipo di adapter che si intende creare. In alcuni casi sarà necessario combinare le interfacce elencate per soddisfare un requisito con le interfacce elencate in una pagina separata per soddisfare un altro requisito.
Sviluppo di adapter personalizzati
Uso degli adapter
Esempi di adapter - Sviluppo