Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA...

Post on 27-May-2020

7 views 0 download

Transcript of Uma introdução sobre WCF Windows …download.microsoft.com/download/8/2/8/828313A8-585E-4BD0...SOA...

1

Uma introdução sobre WCF – Windows Communication Foundation

Waldemir CambiucciArquiteto de SoluçõesMicrosoft Brasil

twitter.com/wcambblogs.msdn.com/wcamb

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

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.

4

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.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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.

23

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

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

26

EndPoints para Web Services

Suporte ao wsHttpBinding

Tratando Behaviorsde 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

28

EndPoints para Cliente AJAX/REST

Usando o bindingwebHttpBinding

Usando o behavior custom, para suporte

ao cliente AJAX

Usando um endpointBehaviorenableWebScript

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

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

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

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

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

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

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)

36

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

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

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

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.