1 / 43

WINDOWS COMMUNICATION FOUNDATION

WINDOWS COMMUNICATION FOUNDATION. Fabio Cozzolino DotNetSide fabio@dotnetside.org. Agenda. Overview SOA L’ABC di WCF I Behaviors WCF 4.0 REST SOA vs REST WCF Tips & Tricks. Boundaries are Explicit Services are Autonomous Services Shares Schema and Contracts, not Classes or Types

maxima
Télécharger la présentation

WINDOWS COMMUNICATION FOUNDATION

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WINDOWS COMMUNICATION FOUNDATION Fabio CozzolinoDotNetSide fabio@dotnetside.org

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

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

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

  5. 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 Caratteristiche di WCF

  6. Overview di WCF: L’ABC • Un servizio WCF sibasasu: • Un Address: DOVE • Un Binding: COME • Un Contract: COSA • L’insiemecostituiscel’Endpoint del servizio

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

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

  9. COME comunichiamo con il servizio ilprotocolloutilizzato (http, tcp, msmq, etc..) le modalitàdiformattazione del messaggio (encoding) le impostazionidisicurezza (ws-security) glieventuali standard dautilizzare (ws-trust, ws-reliablemessaging, ws-atomic transaction,SOAP) Ma anche sessioni e transazioni Esistono binding predefiniti ma possiamo crearne anche di personalizzati Binding

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

  11. 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 Behaviors

  12. WCF Hosting • Self-hosting • 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 Service http://host vdir1 A B C vdir2 vdir2 Echo.svc Web.config

  16. Default Endpoints Service ServiceHost.AddDefaultEndpoints() http://host vdir1 A B C vdir2 vdir2 Protocol Mapping Echo.svc Echo.svc

  17. Default Bindings <system.serviceModel> <bindings> <basicHttpBinding> <binding name=""maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/> </basicHttpBinding> </bindings> </system.serviceModel> Service http://host vdir1 A B C vdir2 Web.config vdir2 Gli endpoints ditipoBasicHttpBindingutilizzano la configurazionedal default binding cherecuperanonellagerarchiadei file diconfigurazione Echo.svc

  18. Default Behaviors <system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <serviceThrottlingmaxConcurrentCalls="32"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <serviceMetadatahttpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> http://host Web.config Service vdir1 A B C vdir2 vdir2 Bv Echo.svc Bv Un servizio o un endpoint ottengonoil behavior di default recuperandolodallagerarchiadei file diconfigurazione Otteniamo un merge deibehaviourereditati con ibehaviour del configcorrente 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:

  21. Message Routing Lab Service Action = http://healthcare/labservice Client Routing Service HospitalService Action = http://healthcare/hospitalservice

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

  23. Security Client Service Routing Service Message sent usingRouting Service Identity Message sent usingClient Identity Message sent usingClient Identity Impersonation using WindowsIdentityToken

  24. Error Handling Lab Service Client Routing Service BackupLab Service

  25. WS-DISCOVERY in WCF 4.0

  26. Discovery • Consente la pubblicazionedi un endpoint di un servizio e la ricercautilizzandocriteribendefiniti • Trovaservizidisponibili • Riduce la configurazione • Semplicemodificadella location • Applicazionidinamiche • WS-Discovery – e’ uno standard interoperabile per la definizione del protocollo • Ad-hoc Discovery • Managed Discovery

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

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

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

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

  31. Discovery Message Parts • Types • Listadixs:QName • Contrattirichiestidal client o comunquesupportatidalserviziodestinatario • Scopes • Listadixs:anyURI • Scopes richiestidal client o previstidalserviziodestinatario • EndpointReference • wsa:EndpointReference • EndpointReferencedel serviziodestinatario

  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: • http://dotnetside.org/users/fabio • http://dotnetside.org/users

  34. HTTP Methods

  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 WebHttpBindinge del WebHttpBehavior • WebOperationContext • Accesso al contesto HTTP

  39. Improvements in WCF 4.0 • Gestionedella cache con AspNetCacheProfile • Generazionedellapaginadi Help

  40. Developing REST services with WCF DEMO

  41. GRAZIE 

  42. Un grazie di cuore a tuttigli sponsor!

  43. La vostraopinione per noi è fondamentale: compilateil modulo di feedback! GraZIE PER L’ATTENZIONE

More Related