1
Uma introdução sobre
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
3
Objetivos da Sessão
Apresentar uma introdução sobre o WCF –
Windows Communication Foundation.
5
O que é o WCF?
Plataforma para aplicações distribuída
sinteroperável, escalável e orientado a mensagens
Modelo de programação unificado
ASP.NET Web Services (ASMX), .NET Remoting, Mensageria, Enterprise Services/COM+, RESTful
Suporte n-tier, web services, protocolos WS* e
modelos de programação web:
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ços
para cenários diversos, oferecendo recursos para a construção de aplicações distribuídas.
.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 WF Card
Space
.NET Framework 2.0
ADO.NET CLR ServicesWeb ASP.NET
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ável
9
Modelo unificado de programação
O WCF oferece um modelo unificado de programação para a comunicação entre sistemas.
10
Modelo unificado de programação
O WCF oferece um modelo unificado de programação para a comunicação entre sistemas.
11
Anatomia de um serviço WCF
Fundamentos
12
Anatomia de um serviço WCF
Fundamentos Cliente Serviço Mensagem A B C A B C A B C Metadata Bv Bv Bv Bv Proxy ServiceHost<T>()Address Binding Contract (Onde) (Como) (O quê)
Endpoint
Contratos
[ServiceContract]
public interface IMyInterface {
[OperationContract]
public void MyMethod(); }
public class MyService: IMyInterface {
16
Bindings
T = Transport Security | M = Message Security
Binding Interop. Segurança Sessão Transação Duplex
17
Transport Encoder Security Reliability Protocol
18
Bindings com HTTP
BasicHttpBinding
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 / WsDualHttpBinding
BasicHttpBinding 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
19
Bindings com TCP/IP
NetTcpBinding
WCF Framing Protocol + Binary Encoding
Transport/Message Security, Reliable Session, Transactions Bidirectional (Duplex) no mesmo socket
Prefira em relação ao WsHttpBinding quando:
Cenários WCF-a-WCF sensíveis à Largura de Banda/Desempenho
Notificações/feedback instantâneos ao Cliente com NAT/Firewall
NetNamedPipeBinding
Mesmas features do NetTcpBinding
Confiabilidade garantida pelo Windows
Prefira em relação ao NetTcpBinding quando:
20
Bindings com MSMQ
NetMsmqBinding
Transporte MSMQ + Binary Encoding
Segurança nos níveis de Transporte/Mensagem, Transações
Primeira escolha para:
Reliable, Durable, Queued One-Way Messaging Cenários de alta vazão
MsmqIntegrationBinding
Transporte do MSMQ + MSMQ Encodings Segurança do MSMQ, Transações
Primeira escolha para:
Cenários de Integração com aplicações MSMQ existentes
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
WebMessageEncoding
JSON, XML, Binary
Novos bindings estão disponíveis com o .NET 3.5 SP1, considerando integração com WF, sessões,
22
Uma árvore de decisão para Bindings
Programming WCF Services by Juval Lowy
Para cada cenário de aplicação teremos um binding específico
24 NetTcpBinding Cliente Intranet Serviço Componente de Negócio DALC TCP Windows
WCF para Aplicações Intranet
25
WCF para Web Services
Suporte para protocolos SOAP/WS*
Características:
26
EndPoints para Web Services
Suporte ao wsHttpBinding Tratando Behaviors
27
WCF e mundo Web
Suporte para modelos de programação Web, clientes AJAX e Silverlight.
Características:
28
EndPoints para Cliente AJAX/REST
Usando o binding webHttpBinding
Usando o behavior custom, para suporte
ao cliente AJAX Usando um
29
Serviços Distribuídos
Serviços WCF podem
encapsular funcionalidades de negócio para aplicações Web
Suporta fronteiras
distribuídas e segurança Características:
Mensagens TCP/binário
30
SOA
WCF é parte de uma estratégia orientada a serviços. Interfaces deserviços para toda lógica de negócio. Características:
32
WCF para Aplicações Intranet
Considerações gerais
Característica Descrição
Hospedagem Windows NT Service -> Windows Server 2003 WAS -> Windows Server 2008
Protocolo Transporte
TCP
Named Pipes (cliente e serviço na mesma máquina) Protocolo
Mensageria
SOAP + Binary
Segurança Credencial Windows Certificado X.509
Binding NetTcpBinding
33
WCF para Web Services
Considerações gerais
Característica Descrição
Hospedagem IIS6 -> Windows Server 2003
IIS7 -> Windows Server 2008
Protocolo Transporte HTTP, HTTPS
Protocolo Mensageria SOAP + WS-*
Autenticação Usuário + Senha (WS-Security)
Segurança Transmissão SSL -> HTTPS
WS-Security -> HTTP
34
WCF e mundo Web
Considerações gerais
Característica Descrição
Hospedagem IIS6 –> Windows Server 2003
IIS7 -> Windows Server 2008 Protocolo Transposte HTTP, HTTPS
Protocolo Mensageria XML, JSON
Autenticação Basic Authentication
Segurança SSL
Binding WebHttpBinding
35
WCF e cenários de mensageria
Considerações gerais
Característica Descrição
Hospedagem Windows NT Service -> Windows Server 2003 WAS -> Windows Server 2008
Protocolo Transporte MSMQ
Protocolo Mensageria SOAP + Binary
Segurança Certificado X.509
Binding MsmqIntegrationBinding (Legado)
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ção
Cabe ao arquiteto definir que protocolos e/ou mecanismos devem ser utilizados
Pode ser customizado...
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
Recursos
Série de posts sobre WCF
http://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 WCF
40
Recursos (cont.)
ArqBR.Groups http://arqbr.groups.live.com/ ArqCasts no Channel9/Brasil http://channel9.msdn.com/brasil/ebook Arquitetura de Soluções
http://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-sobre-arquitetura-de-solu-es.aspx
Centro de Arquitetura MSDN
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