Glossario di Windows Communication Foundation per .NET Framework 4.5

Di seguito sono elencate le definizioni dei termini usati nella documentazione di Windows Communication Foundation.

Termini

Termine Definizione
address Specifica il percorso in cui vengono ricevuti i messaggi. Viene specificato come Uniform Resource Identifier (URI). La parte relativa allo schema URI denomina il meccanismo di trasporto da usare per raggiungere l'indirizzo, ad esempio HTTP e TCP. La parte gerarchica dell'URI contiene un percorso univoco il cui formato dipende dal meccanismo di trasporto.
endpoint applicazione Endpoint esposto dall'applicazione che corrisponde a un contratto di servizio implementato dall'applicazione.
comportamento Un comportamento è un componente che controlla vari aspetti in fase di esecuzione di un servizio, di un endpoint, di una particolare operazione o di un client. I comportamenti sono raggruppati in base allo scopo. I comportamenti comuni influiscono globalmente su tutti gli endpoint, i comportamenti del servizio influiscono solo sugli aspetti relativi al servizio, i comportamenti dell'endpoint influiscono solo sulle proprietà relative all'endpoint e i comportamenti a livello di operazione influiscono su particolari operazioni.
binding Definisce i protocolli di comunicazione usati per comunicare con i servizi WCF. È costituita da un set di componenti chiamati elementi di associazione posizionati uno sopra l'altro in uno stack per creare l'infrastruttura di comunicazione. Vedere endpoint.
channel Implementazione concreta di un elemento di associazione. L'associazione rappresenta la configurazione e il canale è l'implementazione associata a tale configurazione. Per ogni elemento di associazione è pertanto presente un canale associato. I canali si dispongono uno sopra l'altro per creare l'implementazione concreta dell'associazione, ovvero lo stack dei canali.
sicurezza basata sulle attestazioni Consente l'accesso autorizzato alle risorse protette in base ad attestazioni.
applicazione client Un'applicazione client è un programma che scambia messaggi con uno o più endpoint. L'applicazione client inizia creando un'istanza di un client WCF e chiamando metodi del client WCF. È importante notare che una singola applicazione può essere sia un client che un servizio.
codifica Consente allo sviluppatore di mantenere uno stretto controllo su tutti i componenti del servizio o del client ed eventuali impostazioni eseguite tramite la configurazione possono essere controllate e se necessario sottoposte a override dal codice. Il controllo di un'applicazione può essere eseguito tramite codifica, tramite configurazione o tramite una combinazione di entrambe.
configurazione La configurazione presenta il vantaggio di consentire a qualcun altro oltre allo sviluppatore, ad esempio a un amministratore di rete, di impostare parametri del client e del servizio dopo che il codice è stato scritto e senza doverlo ricompilare. La configurazione non solo consente di impostare valori come gli indirizzi endpoint ma fornisce anche un maggior controllo consentendo di aggiungere endpoint, associazioni e comportamenti. Il controllo di un'applicazione può essere eseguito tramite configurazione, tramite codifica o tramite una combinazione di entrambe.
contract Un contratto è una specifica di supporto per un determinato tipo di contratto. Un contratto di servizio, ad esempio, è una specifica per un gruppo di operazioni. In WCF, i contratti presentano una gerarchia che rispecchia gli oggetti descrizione appartenenti allo spazio dei nomi System.ServiceModel.Description. Un contratto di servizio è l'ambito di contratto più esteso di WCF. Ogni operazione di servizio di un contratto di servizio presenta un contratto di operazione che specifica i messaggi, compresi i messaggi di errore, che l'operazione è in grado di scambiare nonché la direzione dello scambio. Ogni messaggio di un'operazione presenta un contratto di messaggio, ovvero una specifica della struttura della SOAP envelope del messaggio. Inoltre, ogni contratto di messaggio presenta un contratto di dati che specifica le strutture di dati contenute nei messaggi.
contratto dati I tipi di dati usati da un servizio devono essere descritti nei metadati per consentire ad altri di interagire con il servizio. Le descrizioni dei tipi di dati sono note come contratto dati e i tipi possono essere usati in qualsiasi parte di un messaggio, ad esempio come parametri o tipi restituiti. Se il servizio usa solo tipi semplici, non è necessario usare esplicitamente i contratti dati.
applicazione dichiarativa Applicazione sufficientemente descritta per essere creata in fase di esecuzione senza eseguire istruzioni imperative.
endpoint Ogni endpoint è costituito da un indirizzo, un'associazione e un contratto usati per comunicare con un servizio WCF.
indirizzo endpoint Consente di creare indirizzi endpoint univoci per ogni endpoint in un servizio o, a determinate condizioni, di condividere un indirizzo tra gli endpoint.
contratto di errore Un contratto di errore può essere associato a un'operazione del servizio per individuare errori che possono essere restituiti al chiamante. Un'operazione può avere zero o più errori associati. Si tratta di errori SOAP modellati come eccezioni nel modello di programmazione. L'eccezione viene convertita in un errore SOAP che può quindi essere inviato al client.
hosting Un servizio deve essere ospitato in un processo. Un host è un'applicazione che controlla la durata del servizio. I servizi possono essere indipendenti o gestiti da un processo di hosting esistente.
processo di hosting Un processo di hosting è un'applicazione progettata per ospitare servizi, inclusi Internet Information Services (IIS), Windows Activation Services (WAS) e servizi per Windows. In questi scenari di hosting, l'host controlla la durata del servizio. Ad esempio, tramite IIS è possibile configurare una directory virtuale che contiene l'assembly del servizio e il file di configurazione. Quando un messaggio viene ricevuto, IIS avvia il servizio e ne controlla la durata.
operazione di avvio Operazione chiamata come prima operazione di una nuova sessione. Le operazioni non di avvio possono essere chiamate solo dopo che è stata chiamata almeno un'operazione di avvio.
modello di istanze Un servizio è dotato di un modello di istanze. Sono presenti tre modelli di istanze: "singolo," nel quale un solo oggetto CLR provvede a tutti i client, "per chiamata," nel quale viene creato un nuovo oggetto CLR per gestire ogni chiamata del client e "per sessione," nel quale viene creato un set di oggetti CLR, uno per ogni sessione separata. La scelta di un modello di istanze dipende dai requisiti dell'applicazione e dal modello di utilizzo previsto del servizio.
message Un messaggio è un'unità autonoma di dati che può essere costituita da varie parti, incluso corpo e intestazioni.
contratto di messaggio Un contratto di messaggio descrive il formato di un messaggio. Dichiara, ad esempio, se gli elementi del messaggio devono andare nelle intestazioni invece che nel corpo, quale livello di sicurezza deve essere applicato e a quali elementi del messaggio e così via.
modalità di sicurezza dei messaggi La modalità di sicurezza a livello di messaggio specifica che la sicurezza viene fornita mediante l'implementazione di una o più specifiche di sicurezza. Ogni messaggio contiene i meccanismi necessari a fornire sicurezza durante il transito e a consentire ai destinatari di rilevare manomissioni e decrittografare i messaggi. A tale scopo, la sicurezza viene incapsulata all'interno di ogni messaggio, fornendo sicurezza end-to-end tra più hop. Poiché le informazioni sulla sicurezza diventano parte del messaggio, è inoltre possibile includere più tipi di credenziali nel messaggio, denominati attestazioni. Questo approccio presenta inoltre il vantaggio di consentire al messaggio di viaggiare in modo protetto su qualsiasi trasporto, anche se tra l'origine e la destinazione ne esistono diversi. Lo svantaggio di questo approccio consiste nella complessità dei meccanismi di crittografia adottati, con conseguenti implicazioni sulle prestazioni.
metadata I metadati di un servizio descrivono le caratteristiche del servizio che devono essere comprese da un'entità esterna per comunicare con il servizio. I metadati possono essere usati dallo strumento ServiceModel Metadata Utility Tool (Svcutil.exe) per generare un client WCF e una configurazione abbinata, che possono essere usati da un'applicazione client per interagire con il servizio. I metadati esposti dal servizio includono documenti di XML Schema che definiscono il contratto di dati del servizio e documenti WSDL che descrivono i metodi del servizio. Se abilitati, i metadati del servizio vengono generati automaticamente da WCF tramite il controllo del servizio e dei relativi endpoint. Per pubblicare metadati da un servizio, è necessario abilitare esplicitamente il comportamento dei metadati.
contratto dell'operazione Un contratto dell'operazione definisce i parametri e il tipo restituito di un'operazione. Quando si crea un'interfaccia che definisce il contratto di servizio, si indica un contratto dell'operazione applicando l'attributo T:System.ServiceModel.OperationContractAttribute a ogni definizione del metodo che fa parte del contratto. Le operazioni possono essere modellate in modo da accettare un solo messaggio e restituire un solo messaggio o in modo da accettare un set di tipi e restituire un tipo. Nel secondo caso, il sistema determina il formato dei messaggi che vengono scambiati per quell'operazione.
proiezione Rappresentazione dei dati in transito. Ad esempio, una proiezione SOAP invia messaggi come buste SOAP e una proiezione Web invia messaggi in formato JSON.
security La sicurezza in WCF include riservatezza (crittografia dei messaggi per impedire l'intercettazione), integrità (mezzi per il rilevamento di manomissioni del messaggio), autenticazione (mezzi per la convalida di server e client) e autorizzazione (controllo di accesso alle risorse). Queste funzioni vengono fornite basandosi sui meccanismi di sicurezza esistenti, ad esempio TLS su HTTP (anche noto come HTTPS) o implementando una o più delle varie specifiche di sicurezza WS-*.
servizio indipendente Un servizio indipendente è un servizio in esecuzione all'interno di un'applicazione del processo creata dallo sviluppatore. Lo sviluppatore ne controlla la durata, imposta le proprietà del servizio, apre il servizio (impostandolo in modalità di ascolto) e chiude il servizio.
service Programma o processo che espone uno o più endpoint, che a loro volta espongono una o più operazioni.
contratto di servizio Il contratto di servizio unisce più operazioni correlate in una sola unità funzionale. Il contratto può definire impostazioni a livello di servizio, ad esempio lo spazio dei nomi del servizio, un contratto callback corrispondente e altre impostazioni simili. Nella maggior parte dei casi, il contratto viene definito creando un'interfaccia nel linguaggio di programmazione selezionato e applicando l'attributo T:System.ServiceModel.ServiceContractAttribute all'interfaccia. Il codice del servizio effettivo viene determinato implementando l'interfaccia.
operazione del servizio Un'operazione del servizio è una procedura definita nel codice di un servizio che implementa la funzionalità per un'operazione. Questa operazione viene esposta ai client come metodi in un client WCF. Il metodo può restituire un valore e può prendere un numero facoltativo di argomenti oppure può non prendere alcun argomento e può non restituire alcuna risposta. Ad esempio, un'operazione che funziona come saluto "Hello" può essere usata come notifica della presenza di un client e per iniziare una serie di operazioni.
associazioni fornite dal sistema WCF include numerose associazioni fornite dal sistema. Si tratta di raccolte di elementi di associazione ottimizzati per scenari specifici. T:System.ServiceModel.WSHttpBinding è progettata ad esempio per l'interoperabilità con servizi che implementano varie specifiche WS-*. Queste associazioni consentono di risparmiare tempo presentando solo quelle opzioni che possono essere applicate correttamente allo scenario specifico. Se una di queste associazioni non soddisfa i requisiti, è possibile crearne una personalizzata.
operazione di chiusura Operazione chiamata come ultimo messaggio di una sessione esistente. Nel caso predefinito, WCF ricicla l'oggetto servizio e il relativo contesto dopo la chiusura della sessione a cui è associato il servizio.
modalità di sicurezza del trasporto La sicurezza può essere fornita in una delle tre modalità seguenti: modalità di trasporto, modalità di sicurezza del messaggio e trasporto con modalità di credenziale messaggio. La modalità di sicurezza a livello di trasporto specifica che la riservatezza, l'integrità e l'autenticazione vengono fornite da meccanismi a livello del trasporto (ad esempio HTTPS). In caso di uso di un trasporto come HTTPS, questa modalità presenta il vantaggio di essere efficiente in termini di prestazioni e di essere ben compresa grazie alla sua prevalenza su Internet. Lo svantaggio consiste nel fatto che questo tipo di sicurezza viene applicato separatamente su ogni hop nel percorso di comunicazione, rendendo quest'ultima vulnerabile a un attacco di tipo "man in the middle".
trasporto con modalità di sicurezza delle credenziali messaggio Questa modalità usa il livello del trasporto per fornire riservatezza, autenticazione e integrità dei messaggi, mentre ogni messaggio può contenere più credenziali (attestazioni) richieste dai destinatari del messaggio.
convertitore di tipi Un tipo CLR può essere associato a uno o più tipi derivati di System.ComponentModel.TypeConverter che consentono la conversione di istanze di tipo CLR in e da istanze di altri tipi. Un convertitore di tipi è associato a un tipo CLR usando l'attributo System.ComponentModel.TypeConverterAttribute. Un attributo TypeConverterAttribute può essere specificato direttamente nel tipo CLR o in una proprietà. Un convertitore di tipi specificato in una proprietà sarà sempre prioritario rispetto a un convertitore di tipi specificato nel tipo CLR della proprietà.
client WCF Un client WCF è un costrutto dell'applicazione client che espone le operazioni del servizio come metodi (nel linguaggio di programmazione .NET Framework scelto, ad esempio Visual Basic o Visual C#). Qualsiasi applicazione può ospitare un client WCF, inclusa un'applicazione che ospita un servizio. È pertanto possibile creare un servizio che include client WCF di altri servizi. Un client WCF può essere generato automaticamente usando lo strumento ServiceModel Metadata Utility Tool (Svcutil.exe) e puntandolo a un servizio in esecuzione che pubblica metadati.
servizi flusso di lavoro Un servizio flusso di lavoro è un servizio WCF implementato come flusso di lavoro. Il flusso di lavoro contiene attività di messaggistica che consentono di inviare e/o ricevere messaggi WCF.
WS-* Abbreviazione per il set in continua crescita di specifiche Web Service (WS), ad esempio WS-Security, WS-ReliableMessaging e così via, che sono implementate in WCF.
XAML Extensible Application Markup Language
schema XAML Schema di markup usato per definire tipi personalizzati in XAML.