introduzione a windows communication foundation pierre greborio peway microsoft mvp – solutions...
TRANSCRIPT
![Page 1: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/1.jpg)
![Page 2: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/2.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/3.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/4.jpg)
WinFXWinFX
![Page 5: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/5.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/6.jpg)
Service modelService model
Client Service
![Page 7: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/7.jpg)
EndpointEndpoint
Client Service
Endpoint
Endpoint
Endpoint
Endpoint Bv
Bv
Bv
![Page 8: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/8.jpg)
““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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/9.jpg)
Echo ServiceEcho Service
![Page 10: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/10.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/11.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/12.jpg)
Binding predefinitiBinding predefinitiYes
![Page 13: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/13.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/14.jpg)
Contract DuplexContract Duplex
![Page 15: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/15.jpg)
ArchitetturaArchitettura
Applicazione
Service Model
Messaging
![Page 16: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/16.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/17.jpg)
Track BehaviorTrack Behavior
![Page 18: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/18.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/19.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/20.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/21.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/22.jpg)
Who isWho is
![Page 23: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/23.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/24.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/25.jpg)
Who isWho is
![Page 26: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/26.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/27.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/28.jpg)
Image TransferImage Transfer
![Page 29: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/29.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/30.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/31.jpg)
Distributed TransactionDistributed Transaction
![Page 32: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/32.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/33.jpg)
SumSum
![Page 34: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/34.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/35.jpg)
MonitorMonitor
![Page 36: Introduzione a Windows Communication Foundation Pierre Greborio PEWay Microsoft MVP – Solutions Architect](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/36.jpg)
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](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb4a497959361e8b63d4/html5/thumbnails/37.jpg)
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