uma introdução sobre wcf windows …download.microsoft.com/download/8/2/8/828313a8-585e-4bd0...soa...
TRANSCRIPT
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
Recursos
Série de posts sobre WCFhttp://blogs.msdn.com/wcamb/archive/tags/WCF/default.aspx
Windows Communication Foundation: Application Deployment Scenarios
http://msdn.microsoft.com/en-us/library/cc512374.aspx
Série de posts sobre Cenários de WCFhttp://blogs.msdn.com/wcamb/archive/tags/Cen_26002300_225_3B00_rios+de+servi_26002300_231_3B00_os+WCF/default.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.