Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions...

37

Transcript of Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions...

Page 1: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.
Page 2: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Introduzione a Windows Introduzione a Windows Communication Communication

FoundationFoundation

Pierre GreborioPierre GreborioPEWayPEWay

Microsoft MVP – Solutions ArchitectMicrosoft MVP – Solutions Architect

Page 3: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

NotaNota

Tutto il codice che vediamo in Tutto il codice che vediamo in questa sessione è basato su WinFX questa sessione è basato su WinFX CTP di dicembre 2005CTP di dicembre 2005

Page 4: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

WinFXWinFX

Page 5: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Che cos’è WCF ?Che cos’è WCF ?

E’ framework che permette di E’ framework che permette di sviluppare velocemente sviluppare velocemente applicazioni SOAapplicazioni SOA

Nasce dall’esperienza di:Nasce dall’esperienza di: ASP.NET Web ServicesASP.NET Web Services Web Services Enhancement (WSE)Web Services Enhancement (WSE) .NET Remoting.NET Remoting Enterprise Services (COM+)Enterprise Services (COM+) MSMQ (System.Messaging)MSMQ (System.Messaging)

Page 6: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Service modelService model

Client Service

Page 7: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

EndpointEndpoint

Client Service

Endpoint

Endpoint

Endpoint

Endpoint Bv

Bv

Bv

Page 8: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

““ABC”ABC”

Client Service

A B C A B C

A B C

A B C

Address Binding Contract

Bv

Bv

Bv

Behavior

Bv

Page 9: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Echo ServiceEcho Service

Page 10: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

AddressAddress

E’ l’indirizzo del servizioE’ l’indirizzo del servizio E’ un’istanza di EndpointAddressE’ un’istanza di EndpointAddress Contiene:Contiene:

UriUri Identity (opzionale)Identity (opzionale) Headers (opzionale)Headers (opzionale)

Page 11: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

BindingBinding

Contiene le informazioni di come il Contiene le informazioni di come il servizio cominichi con il mondoservizio cominichi con il mondo

Si occupa di transazioni, gestione Si occupa di transazioni, gestione della sessione, sicurezza,...della sessione, sicurezza,...

Esistono 8 tipi di binding predefinitiEsistono 8 tipi di binding predefiniti E’ possibile creare custom bindingE’ possibile creare custom binding

Page 12: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Binding predefinitiBinding predefinitiYes

Page 13: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

ContractContract

Specifica che cosa il servizio Specifica che cosa il servizio comunica con il mondocomunica con il mondo

Vi sono tre tipi di contratto:Vi sono tre tipi di contratto: Service contract (ie. WSDL)Service contract (ie. WSDL) Message contract (ie. SOAP) Message contract (ie. SOAP) Data contract (ie. Xml Schema)Data contract (ie. Xml Schema)

Page 14: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Contract DuplexContract Duplex

Page 15: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

ArchitetturaArchitettura

Applicazione

Service Model

Messaging

Page 16: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Architettura adattativaArchitettura adattativa

Codice

Transaction Behavior

CLR Type Integration

Instancing Behavior

SecurityChannel

TCP Transport

SecurityChannel

TCP Transport

Transaction Behavior

CLR Type Integration

Outgoing

Incoming

Service Model Layer Messaging Layer

Page 17: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Track BehaviorTrack Behavior

Page 18: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

HostingHosting

Un servizio WCF può “vivere” in Un servizio WCF può “vivere” in differenti tipi di hostdifferenti tipi di host IIS (solo protocollo HTTP)IIS (solo protocollo HTTP) Windows application (Windows service, Windows application (Windows service,

console application, windows console application, windows application)application)

Web Application Service (IIS 7)Web Application Service (IIS 7)

Page 19: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

SicurezzaSicurezza

WCF gestisce sia la sicurezza lato WCF gestisce sia la sicurezza lato server che lato clientserver che lato client

La gestione della sicurezza riguarda La gestione della sicurezza riguarda 5 temi:5 temi: Transfer securityTransfer security

Firma digitaleFirma digitale CrittorafiaCrittorafia AutenticazioneAutenticazione

Access controlAccess control AutorizzazioneAutorizzazione

AuditingAuditing

Page 20: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Transfer securityTransfer security

La sicurezza è gestibile a due livelli:La sicurezza è gestibile a due livelli: Transport (es. HTTPs)Transport (es. HTTPs) Message (es. WS-Security)Message (es. WS-Security)

Trasport mode è adatto per Trasport mode è adatto per l’interoperabilità ma è applicabile l’interoperabilità ma è applicabile solo point-to-pointsolo point-to-point

Message mode è end-to-end ma è Message mode è end-to-end ma è meno efficientemeno efficiente

E’ possibile applicarli entrambeE’ possibile applicarli entrambe

Page 21: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

AutenticazioneAutenticazione

E’ basato sul concetto di E’ basato sul concetto di credenzialecredenziale

La credenziale è sia il dato che la La credenziale è sia il dato che la prova di possesso.prova di possesso.

Le credenziali si possono usare a Le credenziali si possono usare a due livelli:due livelli: Trasporto (None, Basic, Digest, Ntlm, Trasporto (None, Basic, Digest, Ntlm,

Windows, Certificate)Windows, Certificate) Messaggio (None, Windows, Messaggio (None, Windows,

Username, Certificate, Infocard)Username, Certificate, Infocard)

Page 22: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Who isWho is

Page 23: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

AutorizzazioneAutorizzazione

L’autorizzazione è il processo di L’autorizzazione è il processo di verifica se un utente ha il permesso verifica se un utente ha il permesso di accedere ad una risorsadi accedere ad una risorsa

Si basa su attributi:Si basa su attributi: PrincipalPermissionAttributePrincipalPermissionAttribute

Page 24: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

AuditingAuditing

WCF permette di loggare gli eventi WCF permette di loggare gli eventi legati alla sicurezza (successo e/o legati alla sicurezza (successo e/o fallimento)fallimento)

L’auditing avviene a due livelli:L’auditing avviene a due livelli: Servizio - durante l’autenticazione Servizio - durante l’autenticazione

dell’utentedell’utente Messaggio – durante la verifica della Messaggio – durante la verifica della

firma digitale e crittografiafirma digitale e crittografia

Page 25: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Who isWho is

Page 26: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

AffidabilitàAffidabilità

Affidabilità significa:Affidabilità significa: Non perdo i messaggi per strada !Non perdo i messaggi per strada ! Viene rispettato l’ordine di invio.Viene rispettato l’ordine di invio. Non dipendo da problemi “esterni”Non dipendo da problemi “esterni”

WCF propone tre soluzioni:WCF propone tre soluzioni: CodeCode Reliable sessionReliable session TransazioniTransazioni

Page 27: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

CodeCode

Si appoggia a MSMQSi appoggia a MSMQ L’operazione deve essere one-wayL’operazione deve essere one-way Disponibile anche senza connettivitàDisponibile anche senza connettività

MSMQMSMQ

Page 28: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Image TransferImage Transfer

Page 29: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Reliable sessionReliable session

Garantisce che i messaggi arrivino tutti Garantisce che i messaggi arrivino tutti a destinazionea destinazione

E’ possibile pretendere che l’ordine di E’ possibile pretendere che l’ordine di arrivo corrsisponda all’ordine di arrivo corrsisponda all’ordine di partenzapartenza<bindings> <wsHttpBinding> <binding name="Binding1">

<reliableSession enabled="true" ordered="true" />

</binding> </wsHttpBinding></bindings>

Page 30: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

TransazioniTransazioni

Due modelli a confrontoDue modelli a confronto Transazioni atomicheTransazioni atomiche

Più semplicePiù semplice Fortemente accoppiatoFortemente accoppiato

CompensazioneCompensazione Più complessoPiù complesso Debolmente accoppiatoDebolmente accoppiato

Bisogna scegliere il modello in base al Bisogna scegliere il modello in base al contestocontesto

E’ basato sul protocollo E’ basato sul protocollo WS-AtomicTransactionWS-AtomicTransaction

Page 31: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Distributed TransactionDistributed Transaction

Page 32: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

SessionSession

E’ possibile far uso delle sessioni E’ possibile far uso delle sessioni per mantenere uno “stato”per mantenere uno “stato”

L’uso della sessione deve essere L’uso della sessione deve essere gestito con il ciclo di vita del gestito con il ciclo di vita del servizioservizio

E’ possibile condividere la stessa E’ possibile condividere la stessa sessione fra più client sessione fra più client (SharedSession)(SharedSession)

Page 33: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

SumSum

Page 34: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

Diagnostica e monitoringDiagnostica e monitoring

Performance counterPerformance counter Classi ed eventi WMIClassi ed eventi WMI TracingTracing

Page 35: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

MonitorMonitor

Page 36: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

IntegrazioneIntegrazione

WCF è integrabile bidirezionalmente con:WCF è integrabile bidirezionalmente con: MSMQMSMQ ASP.NET XML web servicesASP.NET XML web services Enterprise Services (COM+)Enterprise Services (COM+)

E’ fondamentale definire in modo E’ fondamentale definire in modo corretto il binding ed il modello di corretto il binding ed il modello di serializzazioneserializzazione

Scrivendosi un custom channel è Scrivendosi un custom channel è possibile integrarsi con tutto:possibile integrarsi con tutto: .NET Remoting.NET Remoting Java RMIJava RMI

Page 37: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect.

RiferimentiRiferimenti

Programming IndigoProgramming IndigoISBN ISBN 0-7356-2151-90-7356-2151-9

Forum ugidotnet.beta.winfxForum ugidotnet.beta.winfx http://windowscommunication.nethttp://windowscommunication.net http://msdn.microsoft.com/http://msdn.microsoft.com/

webservices/indigo/default.aspxwebservices/indigo/default.aspx