Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.