La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

WINDOWS COMMUNICATION FOUNDATION

Presentazioni simili


Presentazione sul tema: "WINDOWS COMMUNICATION FOUNDATION"— Transcript della presentazione:

1 WINDOWS COMMUNICATION FOUNDATION
Fabio Cozzolino DotNetSide

2 Agenda Overview WCF 4.0 REST WCF Tips & Tricks SOA L’ABC di WCF
I Behaviors WCF 4.0 REST SOA vs REST WCF Tips & Tricks

3 SOA Tenets Boundaries are Explicit Services are Autonomous
Services Shares Schema and Contracts, not Classes or Types Compatibility is Policy-Based

4 Cos’è WCF? Un framework unificato per lo sviluppo di applicazioni distribuite su piattaforma Windows Rappresenta come Microsoft pensa SOA (Service-Oriented Architecture) … ma non solo

5 Caratteristiche di WCF
Comunicazioni basate sul concetto di messaggio Interoperabilità Indipendenza dal protocollo di trasporto e dalla formattazione del messaggio Indipendenza dall’hosting Servizi infrastrutturali pluggabili (sicurezza, transazioni, ecc…) E’ un framework con un’architettura altamente estendibile

6 Overview di WCF: L’ABC Un servizio WCF si basa su:
Un Address: DOVE Un Binding: COME Un Contract: COSA L’insieme costituisce l’Endpoint del servizio

7 Address, Binding, Contract
Behaviours Messaggio Consumer Provider C B A A B C A B C A B C EndPoint Address (dove) Binding (come) Contract (cosa)

8 Address Identifica l’indirizzo del servizio specificando:
URL net.tcp://localhost:10101/myservice.svc Headers (opzionale) E’ un’istanza di EndpointAddress

9 Binding COME comunichiamo con il servizio
il protocollo utilizzato (http, tcp, msmq, etc..) le modalità di formattazione del messaggio (encoding) le impostazioni di sicurezza (ws-security) gli eventuali standard da utilizzare (ws-trust, ws-reliablemessaging, ws-atomic transaction,SOAP) Ma anche sessioni e transazioni Esistono binding predefiniti ma possiamo crearne anche di personalizzati

10 Contract Identifica le informazioni scambiate dal servizio
Esistono tre tipi di contratto: Service contract (WSDL) Message contract (SOAP) Data contract (Xml Schema)

11 Behaviors Servizi infrastrutturali che modellano il comportamento del servizio Attivabili nel codice e dal .config Utile per le operazioni più delicate (sessioni, transazioni, instancing, identity) Per le politiche da adottare nello scambio dei messaggi (credenziali, throttling, auditing, serializzazione, affidabilità, ecc…) Possiamo creare behavior personalizzati: Implementando le interfacce System.ServiceModel.IServiceBehavior System.ServiceModel.IEndpointBehavior System.ServiceModel.IContractBehavior System.ServiceModel.IOperationBehavior

12 WCF Hosting Self-hosting Internet Information Services
Qualsiasi altra applicazione (Console,WinForms, etc..) Posso utilizzare tutti i protocolli previsti da WCF Internet Information Services IIS 6 solo http IIS 7 con Windows Activation Services: net.tcp, net.msmq, etc...

13 Implementazione di un servizio in WCF
DEMO

14 Windows Communication Foundation 4.0
Configuration-free services Service Discovery with WS-Discovery Routing Service Event Tracing for Windows

15 Endpoint Configuration in 3.x
B C Service vdir1 vdir2 vdir2 Echo. svc Web. config

16 Default Endpoints A B C Service ServiceHost. AddDefaultEndpoints()
vdir1 vdir2 vdir2 Echo. svc Echo. svc Protocol Mapping Scheme Binding BasicHttpBinding

17 Default Bindings A B C Service http://host vdir1 Web. config vdir2
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="" maxBufferSize=" " maxReceivedMessageSize=" "/> </basicHttpBinding> </bindings> </system.serviceModel> vdir1 A B C Service Web. config vdir2 vdir2 Gli endpoints di tipo BasicHttpBinding utilizzano la configurazione dal default binding che recuperano nella gerarchia dei file di configurazione Echo. svc

18 Default Behaviors A B C Service http://host Web. config vdir1 Bv vdir2
<system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <serviceThrottling maxConcurrentCalls="32"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> Web. config vdir1 A B C Bv Service vdir2 vdir2 Echo. svc Bv Otteniamo un merge dei behaviour ereditati con i behaviour del config corrente Un servizio o un endpoint ottengono il behavior di default recuperandolo dalla gerarchia dei file di configurazione Web. config

19 ROUTING SERVICE in WCF 4.0

20 Routing Service Dispatching dei messaggi basato su filtri
Protocol and security bridging Mapping delle eccezioni Ho a disposizione un set predefinito di filtri: Filter On MessageFilter Action ActionMessageFilter Address header AddressMessageFilter Address header – longest prefix matching AddressPrefixMessageFilter Endpoint Name EndpointNameMessageFilter No Filter – matches everything MatchAllMessageFilter Logical And of two filters StrictAndMessageFilter XPath expression XPathMessageFilter Custom

21 Message Routing Lab Service Action = http://healthcare/labservice
Client Routing Service Hospital Service Action =

22 Protocol Bridging Client Service BasicHttp SOAP 1.1 SOAP 1.2 Net.Tcp
Routing Service BasicHttp SOAP 1.1 SOAP 1.2 Net.Tcp

23 Security Client Service Message sent using Client Identity
Routing Service Message sent using Client Identity Message sent using Client Identity Message sent using Routing Service Identity Impersonation using WindowsIdentityToken

24 Error Handling Lab Service Client Backup Lab Service Routing Service
MessageFilter Endpoint Alternate Endpoints action == LabService BackupLabService

25 WS-DISCOVERY in WCF 4.0

26 Discovery Consente la pubblicazione di un endpoint di un servizio e la ricerca utilizzando criteri ben definiti Trova servizi disponibili Riduce la configurazione Semplice modifica della location Applicazioni dinamiche WS-Discovery – e’ uno standard interoperabile per la definizione del protocollo Ad-hoc Discovery Managed Discovery

27 Ad-hoc Discovery Chat App: Jurgen Chat App: Steve Chat App: Ed
Steve Online Chat App: Jurgen Hello Chat App: Steve Hello Steve Online Hello Chat App: Ed

28 Ad-hoc Discovery Chat App: Jurgen Chat App: Steve Chat App: Ed
ProbeMatch Probe Chat App: Steve Probe ProbeMatch Probe Chat App: Ed

29 Ad-hoc Discovery Chat App: Jurgen Chat App: Steve Chat App: Ed
Steve Offline Chat App: Jurgen Bye Chat App: Steve Bye Steve Offline Bye Chat App: Ed

30 Managed Discovery Chat App: Jurgen Chat App: Steve Discovery Proxy
Proxy Available Chat App: Steve Hello Probe Probe Hello Probe ProbeMatch Jurgen Discovery Proxy

31 Discovery Message Parts
Types Lista di xs:QName Contratti richiesti dal client o comunque supportati dal servizio destinatario Scopes Lista di xs:anyURI Scopes richiesti dal client o previsti dal servizio destinatario EndpointReference wsa:EndpointReference EndpointReference del servizio destinatario

32 WCF 4.0 DEMO

33 What is REST? Representional State Transfer
E’ principalmente uno stile architetturale, non una specifica Importanza alla risorsa (Content+Capabilities) Utilizzo di tecnologie esistenti: HTTP Http Methods e Status Codes = Uniform Interface Domain-neutral data-oriented formats XML, JSON, Atom/Atom Publishing Le risorse vengono identificate attraverso l’utilizzo di URI Esempio:

34 HTTP Methods Method Descrizione GET Recupera una risorsa
E’ in sola lettura Cacheable PUT Aggiorna una risorsa Utilizzato anche per creare le risorse se il client ne conosce l’indirizzo remoto Idempotent DELETE Cancella la risorsa specificata POST Crea una nuova risorsa Unsafe

35 REST in WCF: WebGet e WebInvoke
Due nuovi attributi per definire le operation di WCF Definizione del metodo HTTP da utilizzare WebGet permette operazioni in sola lettura WebInvoke consente di modificare lo stato delle nostre risorse Definizione della URI collegata alla operation: UriTemplate Definizione del formato della richiesta e della risposta Attualmente supporta XML e JSON

36 REST in WCF: UriTemplate
Consente di definire la struttura dell’URI e dei parametri Nell’URI definiamo anche dei placeholder che rappresentano i parametri del nostro metodo:

37 REST in WCF: WebHttpBinding
Nuovo binding specifico per REST Supporta esclusivamente il protocollo HTTP Sicurezza solo a livello di trasporto (HTTPS) Supporto per i seguenti formati: XML JSON Binary

38 REST in WCF: WebServiceHost
Estende il ServiceHost Aggiunge le funzionalità necessarie per l’esecuzione di servizi REST Configurazione automatica del WebHttpBinding e del WebHttpBehavior WebOperationContext Accesso al contesto HTTP

39 Improvements in WCF 4.0 Gestione della cache con AspNetCacheProfile
Generazione della pagina di Help

40 Developing REST services with WCF
DEMO

41 GRAZIE 

42 Un grazie di cuore a tutti gli sponsor!

43 GraZIE PER L’ATTENZIONE
La vostra opinione per noi è fondamentale: compilate il modulo di feedback! GraZIE PER L’ATTENZIONE


Scaricare ppt "WINDOWS COMMUNICATION FOUNDATION"

Presentazioni simili


Annunci Google