windows communication foundation l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
WINDOWS COMMUNICATION FOUNDATION PowerPoint Presentation
Download Presentation
WINDOWS COMMUNICATION FOUNDATION

Loading in 2 Seconds...

play fullscreen
1 / 43

WINDOWS COMMUNICATION FOUNDATION - PowerPoint PPT Presentation


  • 214 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'WINDOWS COMMUNICATION FOUNDATION' - maxima


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
windows communication foundation

WINDOWS COMMUNICATION FOUNDATION

Fabio CozzolinoDotNetSide

fabio@dotnetside.org

agenda
Agenda
  • Overview
    • SOA
    • L’ABC di WCF
    • I Behaviors
  • WCF 4.0
  • REST
    • SOA vs REST
  • WCF Tips & Tricks
soa tenets
Boundaries are Explicit

Services are Autonomous

Services Shares Schema and Contracts, not Classes or Types

Compatibility is Policy-Based

SOA Tenets
cos wcf
Un framework unificato per lo sviluppo di applicazioni distribuite su piattaforma Windows

Rappresenta come Microsoft pensa SOA (Service-OrientedArchitecture)

… ma non solo

Cos’è WCF?
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

Caratteristiche di WCF
overview di wcf l abc
Overview di WCF: L’ABC
  • Un servizio WCF sibasasu:
    • Un Address: DOVE
    • Un Binding: COME
    • Un Contract: COSA
  • L’insiemecostituiscel’Endpoint del servizio
address binding contract

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)

address
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
binding
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
contract
Identifica le informazioni scambiate dal servizio

Esistono tre tipi di contratto:

Service contract (WSDL)

Message contract (SOAP)

Data contract (Xml Schema)

Contract
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

Behaviors
wcf hosting
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...
windows communication foundation 4 0
Windows Communication Foundation 4.0
  • Configuration-free services
  • Service Discovery with WS-Discovery
  • Routing Service
  • Event Tracing for Windows
endpoint configuration in 3 x
Endpoint Configuration in 3.x

Service

http://host

vdir1

A

B

C

vdir2

vdir2

Echo.svc

Web.config

default endpoints
Default Endpoints

Service

ServiceHost.AddDefaultEndpoints()

http://host

vdir1

A

B

C

vdir2

vdir2

Protocol Mapping

Echo.svc

Echo.svc

default bindings
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

default behaviors
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

routing service
Routing Service
  • Dispatching dei messaggi basato su filtri
  • Protocol and security bridging
  • Mapping delle eccezioni
  • Ho a disposizione un set predefinito di filtri:
message routing
Message Routing

Lab Service

Action = http://healthcare/labservice

Client

Routing

Service

HospitalService

Action = http://healthcare/hospitalservice

protocol bridging
Protocol Bridging

Client

Service

Routing

Service

BasicHttp

Net.Tcp

SOAP 1.1

SOAP 1.2

security
Security

Client

Service

Routing

Service

Message sent usingRouting Service Identity

Message sent usingClient Identity

Message sent usingClient Identity

Impersonation using WindowsIdentityToken

error handling
Error Handling

Lab

Service

Client

Routing

Service

BackupLab Service

discovery
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
ad hoc discovery
Ad-hoc Discovery

Steve Online

Hello

Hello

Hello

Steve Online

Chat App:Steve

Chat App:Ed

Chat App:Jurgen

ad hoc discovery28
Ad-hoc Discovery

ProbeMatch

ProbeMatch

Probe

Probe

Probe

Chat App:Steve

Chat App:Ed

Chat App:Jurgen

ad hoc discovery29
Ad-hoc Discovery

Steve Offline

Bye

Bye

Bye

Steve Offline

Chat App:Steve

Chat App:Ed

Chat App:Jurgen

managed discovery
Managed Discovery

ProbeMatch

Probe

Probe

Hello

Probe

Hello

Proxy Available

Chat App:Steve

DiscoveryProxy

Chat App:Jurgen

discovery message parts
Discovery Message Parts
  • Types
    • Listadixs:QName
    • Contrattirichiestidal client o comunquesupportatidalserviziodestinatario
  • Scopes
    • Listadixs:anyURI
    • Scopes richiestidal client o previstidalserviziodestinatario
  • EndpointReference
    • wsa:EndpointReference
    • EndpointReferencedel serviziodestinatario
what is rest
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
rest in wcf webget e webinvoke
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
rest in wcf uritemplate
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:
rest in wcf webhttpbinding
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
rest in wcf webservicehost
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
improvements in wcf 4 0
Improvements in WCF 4.0
  • Gestionedella cache con AspNetCacheProfile
  • Generazionedellapaginadi Help