Condividi tramite


Architettura di Windows Communication Foundation

L'immagine seguente illustra i livelli principali dell'architettura di Windows Communication Foundation (WCF).

Architettura WCF

Architettura WCF

Contratti e descrizioni

I contratti definiscono vari aspetti del sistema di messaggi. Il contratto dati descrive ogni parametro che costituisce ogni messaggio che un servizio può creare o utilizzare. I parametri del messaggio sono definiti dai documenti XSD (XML Schema Definition Language), consentendo a qualsiasi sistema che comprenda XML di elaborare i documenti. Il contratto di messaggio definisce parti di messaggio specifiche usando protocolli SOAP e consente un controllo più dettagliato su parti del messaggio, quando l'interoperabilità richiede tale precisione. Il contratto di servizio specifica le firme effettive del metodo del servizio e viene distribuito come interfaccia in uno dei linguaggi di programmazione supportati, ad esempio Visual Basic o Visual C#.

Le politiche e i vincoli stabiliscono le condizioni necessarie per comunicare con un servizio. Ad esempio, l'associazione deve (almeno) specificare il trasporto usato (ad esempio HTTP o TCP) e una codifica. I criteri includono i requisiti di sicurezza e altre condizioni che devono essere soddisfatte per comunicare con un servizio.

Fase di esecuzione del servizio

Il livello di runtime del servizio contiene i comportamenti che si verificano solo durante il funzionamento effettivo del servizio, ovvero i comportamenti di runtime del servizio. La regolazione del flusso controlla quanti messaggi vengono elaborati, e può variare se la richiesta per il servizio cresce fino a un limite predefinito. Un comportamento di errore specifica ciò che si verifica quando si verifica un errore interno nel servizio, ad esempio controllando quali informazioni vengono comunicate al client. Un numero eccessivo di informazioni può offrire a un utente malintenzionato un vantaggio nel montaggio di un attacco. Il comportamento dei metadati determina come e se i metadati vengono resi disponibili al mondo esterno. Il comportamento dell'istanza specifica il numero di istanze del servizio che è possibile eseguire, ad esempio un singleton specifica una sola istanza per elaborare tutti i messaggi. Il comportamento delle transazioni consente il rollback delle operazioni transazionali in caso di errore. Il comportamento dispatch è il controllo dell'elaborazione di un messaggio dall'infrastruttura WCF.

L'estendibilità consente la personalizzazione dei processi di runtime. Ad esempio, l'ispezione dei messaggi è la funzionalità per controllare parti di un messaggio e il filtro dei parametri consente l'esecuzione di azioni predefinite in base ai filtri che agiscono sulle intestazioni dei messaggi.

Messaggistica

Il livello di messaggistica è costituito da canali. Un canale è un componente che elabora un messaggio in qualche modo, ad esempio autenticando un messaggio. Un insieme di canali è noto anche come stack di canali. I canali operano su messaggi e intestazioni dei messaggi. Ciò è diverso dal livello di runtime del servizio, che riguarda principalmente l'elaborazione del contenuto dei corpi dei messaggi.

Esistono due tipi di canali: canali di trasporto e canali di protocollo.

I canali di trasporto leggono e scrivono messaggi dalla rete (o da altri punti di comunicazione con il mondo esterno). Alcuni trasporti usano un codificatore per convertire i messaggi (rappresentati come infoset XML) in e dalla rappresentazione del flusso di byte utilizzata dalla rete. Esempi di trasporti sono HTTP, named pipe, TCP e MSMQ. Esempi di codifiche sono XML e binari ottimizzati.

I canali del protocollo implementano protocolli di elaborazione dei messaggi, spesso leggendo o scrivendo intestazioni aggiuntive nel messaggio. Esempi di tali protocolli includono WS-Security e WS-Reliability.

Il livello di messaggistica illustra i formati possibili e i modelli di scambio dei dati. WS-Security è un'implementazione della specifica WS-Security che abilita la sicurezza a livello di messaggio. Il canale di messaggistica WS-Reliable consente la garanzia del recapito dei messaggi. I codificatori presentano un'ampia gamma di codifiche che possono essere usate per soddisfare le esigenze del messaggio. Il canale HTTP specifica che per il recapito dei messaggi viene usato il protocollo di trasporto HyperText. Il canale TCP specifica in modo analogo il protocollo TCP. Il canale del flusso delle transazioni regola i modelli di messaggi trattati. Il canale Named Pipe consente la comunicazione interprocesso. Il canale MSMQ consente l'interoperabilità con le applicazioni MSMQ.

Hosting e attivazione

Nella sua forma finale, un servizio è un programma. Analogamente ad altri programmi, un servizio deve essere eseguito in un eseguibile. Questa operazione è nota come servizio self-hosted .

I servizi possono anche essere ospitati o eseguiti in un eseguibile gestito da un agente esterno, ad esempio IIS o il servizio di attivazione di Windows (WAS). WAS consente l'attivazione automatica delle applicazioni WCF quando viene distribuita in un computer che esegue WAS. I servizi possono anche essere eseguiti manualmente come eseguibili ( file.exe). Un servizio può anche essere eseguito automaticamente come servizio Windows. I componenti COM+ possono anche essere ospitati come servizi WCF.

Vedere anche