WPC (1/3) - WCF

Eccomi, ho appena finito le mie sessioni alla WPC

Un rapido riassunto e un po' di materiale. Nella sessione su Windows Communication Foundation (in breve WCF) ho affrontato un argomento un po' particolare, cioè come utilizzare Transazioni, Sessioni, Relaiable Session e Code.

Ma andiamo con ordine, mi sono accorto infatti che non tutti conoscevano le nozioni di base di questa fantastica tecnologia:-) Per cui chi vuol partire con WCF può anche leggersi questo mio post introduttivo in cui parlo di Address, Binding e Contract: in poche parlole l'ABC di WCF.

Ora che avete un'idea di cosa sia WCF, potete chiedervi: cosa serve in WCF per realizzare un'applicazione affidabile ? La risposta è semplice:

  • Sessioni: in WCF una sessione è un po' come un "colloquio" tra un client ed un servizio in cui definisco in che modo quest'ultimo deve rispondere alle richieste del client. Potrei fare in modo che per ogni nuova richiesta del client venga creata una nuova istanza del servizio. Questa modalità di funzionalmento viene chiamata PerCall. Potrei volere che ogni richiesta da parte di un client ad un servizio venga mantenuta in un'unica sessione che sia in grado di mantenere lo stato tra una chiamata e la successiva: questa modalità è detta per Session. In ultimo potrei voler mantenere una sessione condivisa tra più client, che vedranno quindi un unico stato condiviso. Questa modalità è detta Single. Nelle slide trovate gli esempi.
  • Reliable Session: WCF consente anche di utilizzare quella che viene definita come "Reliable Session", cioè un meccanismo basato sullo standard WS-ReliableMessaging che garantisce la consegna di messaggi in modo ordinato e senza duplicati. Il tutto semplicemente abilitando nel file di configurazione lo specifico elemento nel binding
  •  Transazioni: in WCF non poteva mancare certo il supporto alle transazioni. Si possono usare diversi attributi, che trovate negli esempi indicati nelle slide ed è inoltre possibile far fluire una transazione dal client al servizio, in modo che quest'ultimo faccia il commit o l'abort della transazione su richiesta o comportamento del client.
  • Le code: in ultimo il supporto per MSMQ di WCF consente di rendere asincrona l'applicazione e di disaccopiare il funzionamento del client da quello del servizio, cioè se anche il servizio è giù il clienti è in grado di funzionare.

Il tutto (quasi) insieme:

image_thumb9 

Nelle slide trovate i link alla sezione della library MSDN in cui trovate approfonditi gli argomenti trattati ed i riferimenti agli esempi per ogni problematica affontata. Gli esempi che potete trovare sono veramente numerosi.

Spero la sessione sia stata utille

-Pietro