uma introdução sobre wcf windows …download.microsoft.com/download/8/2/8/828313a8-585e-4bd0...soa...

41
1 Uma introdução sobre WCF Windows Communication Foundation Waldemir Cambiucci Arquiteto de Soluções Microsoft Brasil twitter.com/wcamb blogs.msdn.com/wcamb

Upload: others

Post on 27-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

1

Uma introdução sobre WCF – Windows Communication Foundation

Waldemir CambiucciArquiteto de SoluçõesMicrosoft Brasil

twitter.com/wcambblogs.msdn.com/wcamb

Page 2: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

2

Agenda

O que é o WCF?

Cenários de serviços com WCF

Recomendações para a construção de serviços com WCF

Conclusões

Recursos

Publicação: Outubro/2009

Page 3: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

3

Objetivos da Sessão

Apresentar uma introdução sobre o WCF –Windows Communication Foundation.

Apresentar uma abordagem para cenários de serviços implementados com WCF.

Page 4: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

4

Page 5: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

5

O que é o WCF?Plataforma para aplicações distribuídas

interoperável, escalável e orientado a mensagens

Modelo de programação unificadoASP.NET Web Services (ASMX), .NET Remoting, Mensageria, Enterprise Services/COM+, RESTful

Suporte n-tier, web services, protocolos WS* e modelos de programação web:

POX, REST, JSON, AtomPub, etc.

Page 6: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

6

O que é o WCF?

WCF – Windows Comunication Foundation é um framework de desenvolvimento do .NET Framework, que permite a construção de interfaces de serviçospara cenários diversos, oferecendo recursos para a construção de aplicações distribuídas.

É parte integrante do .NET Framework desde a versão 3.0.

Page 7: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

.NET Framework 3.5 SP1

ADO.NET Entity

Framework

ADO.NET Data Services

ASP.NET Dynamic Data

ASP.NET Routing

.NET Framework 3.5

REST AJAX LINQ RSS

POX ATOM JSON +BCL

.NET Framework 3.0

WCF WPF WFCard

Space

.NET Framework 2.0

ADO.NET CLRWeb

ServicesASP.NET

.NET Framework

Principaisrecursos do .NET Framework.

Page 8: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

8

O que é o WCF?Windows Communication Foundation

Ambiente para a comunicação entre sistemas

Baseado em mensagens

Multi-protocolo

Multi-hosting

Compatível com WS, WS-*, tcp, P2P, etc.

Altamente configurávelPermite desacoplamento entre Serviços e sua Configuração

Page 9: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

9

Modelo unificado de programação

O WCF oferece um modelo unificado de programaçãopara a comunicação entre sistemas.

My

System

.NET Remoting

ASMX

WSE

MSMQ

Enterprise

Services

My

Service

Page 10: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

10

Modelo unificado de programação

O WCF oferece um modelo unificado de programaçãopara a comunicação entre sistemas.

My

System

.NET Remoting

ASMX

WSE

MSMQ

Enterprise

Services

My

ServiceWCF

Page 11: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

11

Anatomia de um serviço WCFFundamentos

Um serviço é orientado a mensagens, trocadas entre cliente e provedor.

Cliente Serviço

MensagemABC A B CBv Bv

Bv Bv

Page 12: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

12

Anatomia de um serviço WCFFundamentos

Cliente

Serviço

MensagemABC

A B C

A B C

Metadata

Bv

Bv

Bv

Bv

Proxy

ServiceHost<T>()Address Binding Contract

(Onde) (Como) (O quê)

Endpoint

Endpoint

Page 13: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

Arquitetura WCF

Aspectos de multi-hosting

Aspectos de multi-protocolo e mensagens

Aspectos de comportamentos e

serviços

Aspectos de nível lógico e contratos

Page 14: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

Contratos[ServiceContract]

public interface IMyInterface

{

[OperationContract]

public void MyMethod();

}

public class MyService: IMyInterface

{

public void MyMethod()

{

...

}

}

<service>

<endpoint name=“MyService”

address=“...”

binding=“netTcpBinding”

contract=“IMyInterface” />

Definição do contrato

Implementaçãodo serviço

Address + Binding +Contract = Endpoint

Page 15: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

15

Proxy

ChannelServiço

Endpoints

Dispatcher

Channel

TransportChannel

Channel

Channel

TransportChannel

Cliente

Criação de canais no WCF

Anatomia de um serviço WCFCanais de comunicação no WCF

Page 16: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

16

BindingsT = Transport Security | M = Message Security

Binding Interop. Segurança Sessão Transação Duplex

BasicHttp BP 1.1 TM

WsHttp WS TM X X

WsDualHttp WS M X X X

NetTcp .NET TM X X X

NetNamedPipes .NET T X X X

NetMsmq .NET TM X X

NetPeerTcp .NET TM X

MsmqIntegration MSMQ TM

Page 17: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

17

Transport Encoder Security Reliability Protocol

HTTP

TCP

Pipes

MSMQ

Text

Binary WS-*

Custom

WS-*

Custom

WS-*

Custom

Custom

Custom

HTTP Text WS-*WS-*WS-*TCP Binary

MTOM

Transport

Composição de BindingsABC do WCF

Page 18: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

18

Bindings com HTTPBasicHttpBinding

HTTP + Text/MTOM Encoding + Transport Security(https)

Primeira escolha para:Integração com tudo que fala SOAP/HTTP

WS Basic Profile 1.1 compliant

WsHttpBinding / WsDualHttpBindingBasicHttpBinding features + Segurança no nível da Mensagem + Reliable Session + Transaction Flow

WsDualHttpBinding: Conversações Bidirecionais Duplex

Primeira escolha para:Cenários avançados para Web Services

Federated Security, Reliable Delivery, Transaction Integration

Page 19: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

19

Bindings com TCP/IPNetTcpBinding

WCF Framing Protocol + Binary EncodingTransport/Message Security, Reliable Session, TransactionsBidirectional (Duplex) no mesmo socket

Prefira em relação ao WsHttpBinding quando:Cenários WCF-a-WCF sensíveis à Largura de Banda/DesempenhoNotificações/feedback instantâneos ao Cliente com NAT/Firewall

NetNamedPipeBindingMesmas features do NetTcpBindingConfiabilidade garantida pelo WindowsPrefira em relação ao NetTcpBinding quando:

Necessita desempenho máximo na comunicação entre máquinas ou in-process

Page 20: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

20

Bindings com MSMQNetMsmqBinding

Transporte MSMQ + Binary EncodingSegurança nos níveis de Transporte/Mensagem, TransaçõesPrimeira escolha para:

Reliable, Durable, Queued One-Way MessagingCenários de alta vazão

MsmqIntegrationBindingTransporte do MSMQ + MSMQ EncodingsSegurança do MSMQ, TransaçõesPrimeira escolha para:

Cenários de Integração com aplicações MSMQ existentesIntegração simples com o Host Integration Server e o BizTalk

Page 21: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

21

Bindings para REST

webHttpBinding“web-friendly” WCF Binding no .NET 3.5

Permite a construção de serviços ”RESTful”

Suporta transporte HTTP e HTTPS somente

Não utiliza envelopes SOAP

WebMessageEncodingJSON, XML, Binary

Novos bindings estão disponíveis com o .NET 3.5 SP1, considerando integração com WF, sessões, recuperação, etc.

Page 22: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

22

Uma árvore de decisão para Bindings

Programming WCF Servicesby Juval Lowy

Para cada cenário de aplicaçãoteremos um binding específico

que melhor atende suasnecessidades.

Page 23: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

23

Page 24: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

24

NetTcpBinding

Cliente Intranet

Serviço

Componente de Negócio

DALC

TCP

Windows

WCF para Aplicações Intranet

Suporte ao modeloCliente/Servidor.

Serviços distribuídosentre processos e fronteiras de máquinas.

Características:

Mensagens TCP/binária

Autenticação Windows

NetTcpBinding

ActiveDirectory

Page 25: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

25

WCF para Web Services

Suporte para protocolosSOAP/WS*

Características:

Mensagens HTTP/Text

Transporte seguro via SSL ou segurança pormensagens

Autenticação baseadaem usuário/senha

BasicHttpBinding e WSHttpBinding

UserName

Serviço

Componente de

Negócio

DALC

BasicHttpBinding WSHttpBInding

Cliente Internet

(Basic Profile)

Cliente Internet

(WS*)

HTTPHTTPS

credentials

Page 26: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

26

EndPoints para Web Services

Suporte ao wsHttpBinding

Tratando Behaviorsde serviços

Page 27: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

27

WCF e mundo WebSuporte para modelos de programação Web, clientesAJAX e Silverlight.

Características:POX, REST, Atom/Pub

Segurança via URL com segurança de aplicação

WebHttpBinding para Ajax

REST-Centric

Behavior webHttp(JSON) e enableWebScript (AJAX)

Serviço

Componentes de

Negócio

DALC

WebHttpBinding WebHttpBinding

Browser Browser

AJAX Silverlight

HTTP/HTTPS

Page 28: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

28

EndPoints para Cliente AJAX/REST

Usando o bindingwebHttpBinding

Usando o behavior custom, para suporte

ao cliente AJAX

Usando um endpointBehaviorenableWebScript

Page 29: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

29

Serviços Distribuídos

Serviços WCF podemencapsular funcionalidadesde negócio para aplicaçõesWeb

Suporta fronteirasdistribuídas e segurança

Características:Mensagens TCP/binário

Autenticação por certificados

NetTcpBinding

NetTcpBinding

Aplicação

ASP.NET

Serviço

Componente de

Negócio

DALC

TCP

CertificateStore

Certificate

Browser

UserName

HTTPS

credentials

Page 30: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

30

SOA

WCF é parte de uma estratégia orientada a serviços.

Interfaces de serviços para toda lógica de negócio.

Características:Diversos cenários de bindings possíveis

Big SOA versus LittleSOA

NetTcp

Aplicação

ASP.NET

Serviço

Componente de

Negócio

DALC

Browser

HTTPS

Cliente Internet

(Basic Profile)

Cliente Internet

(WS*)

BasicHttp

WSHttp

HTTPHTTPS

Page 31: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

31

Cloud Computing

Serviços publicados na nuvem, através de um ISB – Internet Service Bus

.NET Services da Plataforma de Serviços Azure:

Access Control

Service Bus

Aplicação

ASP.NET

Serviço

Componente de

Negócio

DALC

Browser

HTTPS

Cliente Internet

(Basic Profile)

Cliente Internet

(WS*)

WSHttp / on-premise

HTTPHTTPS

Windows Azure.NET ServicesService Bus

Service Bus

Access Control

Page 32: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

32

WCF para Aplicações Intranet

Considerações gerais

Característica Descrição

Hospedagem Windows NT Service -> Windows Server 2003WAS -> Windows Server 2008

Protocolo Transporte

TCPNamed Pipes (cliente e serviço na mesma máquina)

Protocolo Mensageria

SOAP + Binary

Segurança Credencial WindowsCertificado X.509

Binding NetTcpBindingNetNamedPipeBinding

Page 33: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

33

WCF para Web Services

Considerações gerais

Característica Descrição

Hospedagem IIS6 -> Windows Server 2003IIS7 -> Windows Server 2008

Protocolo Transporte HTTP, HTTPS

Protocolo Mensageria SOAP + WS-*

Autenticação Usuário + Senha (WS-Security)

Segurança Transmissão SSL -> HTTPSWS-Security -> HTTP

Binding BasicHttpBinding, WsHttpBinding

Page 34: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

34

WCF e mundo Web

Considerações gerais

Característica Descrição

Hospedagem IIS6 –> Windows Server 2003IIS7 -> Windows Server 2008

Protocolo Transposte HTTP, HTTPS

Protocolo Mensageria XML, JSON

Autenticação Basic Authentication

Segurança SSL

Binding WebHttpBindingWebHttpBehavior

Page 35: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

35

WCF e cenários de mensageria

Considerações gerais

Característica Descrição

Hospedagem Windows NT Service -> Windows Server 2003WAS -> Windows Server 2008

Protocolo Transporte MSMQ

Protocolo Mensageria SOAP + Binary

Segurança Certificado X.509

Binding MsmqIntegrationBinding (Legado)NetMsmqBinding (WCF – WCF)

Page 36: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

36

Page 37: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

WCF realiza a separação entre Serviço e Protocolos utilizados

Grande poder de abstração!

Implementa uma gama grande de protocolos e mecanismos para diferentes cenários

Múltiplos protocolos podem ser usados para um mesmo serviço

Simplifica a implementação e a configuraçãoCabe ao arquiteto definir que protocolos e/ou mecanismos devem ser utilizados

Pode ser customizado...

Resumo sobre o WCF

Page 38: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

Resumo sobre o WCF 4.0

Novos recursos estão chegando com o WCF 4.0:Configuração simplificada de serviços

Standard Endpoints

Discovery

Router service

Melhorias no suporte à REST

Para saber mais sobre o WCF 4.0:A Developer's Introduction to Windows Workflow Foundation (WF4) in .NET 4 Beta 1

http://msdn.microsoft.com/en-us/library/ee342461.aspx

A Developer’s Introduction to Windows Communication Foundation (WCF) .NET 4 Beta 1

http://msdn.microsoft.com/pt-br/library/ee354381(en-us).aspx

Page 40: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

40

Recursos (cont.)

ArqBR.Groupshttp://arqbr.groups.live.com/

ArqCasts no Channel9/Brasilhttp://channel9.msdn.com/brasil/

ebook Arquitetura de Soluçõeshttp://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-sobre-arquitetura-de-solu-es.aspx

Centro de Arquitetura MSDNhttp://msdn.microsoft.com/pt-br/architecture/default.aspx

Page 41: Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA WCF é parte de uma estratégia orientada a serviços. Interfaces de serviços

41

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.