Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AAB303 - Windows Communication Foundation - wcamb

1,225 views

Published on

Uma introdução sobre WCF - Windows Communication Foundation
Publicação: Outubro/2009.
Autor: Waldemir Cambiucci

Published in: Technology
  • Be the first to comment

AAB303 - Windows Communication Foundation - wcamb

  1. 1. Uma introdução sobre WCF – Windows Communication Foundation Waldemir Cambiucci Arquiteto de Soluções twitter.com/wcamb Microsoft Brasil blogs.msdn.com/wcamb 1
  2. 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 2
  3. 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. 3
  4. 4. 4
  5. 5. O que é o WCF? Plataforma para aplicações distribuídas interoperá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: POX, REST, JSON, AtomPub, etc. 5
  6. 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. É parte integrante do .NET Framework desde a versão 3.0. 6
  7. 7. .NET Framework 3.5 SP1 .NET ADO.NET Entity ADO.NET Data Services ASP.NET Dynamic Data ASP.NET Routing Framework Framework .NET Framework 3.5 Principais REST AJAX LINQ RSS recursos do POX ATOM JSON +BCL .NET Framework. .NET Framework 3.0 Card WCF WPF WF Space .NET Framework 2.0 Web ADO.NET CLR Services ASP.NET
  8. 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 Permite desacoplamento entre Serviços e sua Configuração 8
  9. 9. Modelo unificado de programação O WCF oferece um modelo unificado de programação para a comunicação entre sistemas. .NET Remoting ASMX My My WSE System Service MSMQ Enterprise Services 9
  10. 10. Modelo unificado de programação O WCF oferece um modelo unificado de programação para a comunicação entre sistemas. .NET Remoting ASMX My My WCF WSE System Service MSMQ Enterprise Services 10
  11. 11. Anatomia de um serviço WCF Fundamentos Um serviço é orientado a mensagens, trocadas entre cliente e provedor. Cliente Serviço Bv Bv Bv C B A Mensagem A B C Bv 11
  12. 12. Anatomia de um serviço WCF Fundamentos Metadata Cliente Bv Endpoint Serviço Bv C B A Mensagem A B C Bv A B C Bv Proxy Address Binding Contract ServiceHost<T>() Endpoint (Onde) (Como) (O quê) 12
  13. 13. Arquitetura WCF Aspectos de nível lógico e contratos Aspectos de comportamentos e serviços Aspectos de multi-protocolo e mensagens Aspectos de multi-hosting
  14. 14. Contratos [ServiceContract] public interface IMyInterface { Definição do [OperationContract] contrato public void MyMethod(); } public class MyService: IMyInterface { public void MyMethod() { Implementação ... do serviço } } <service> <endpoint name=“MyService” address=“...” Address + Binding + binding=“netTcpBinding” Contract = Endpoint contract=“IMyInterface” />
  15. 15. Anatomia de um serviço WCF Canais de comunicação no WCF Cliente Criação de canais no WCF Proxy Endpoints Channel Channel Serviço Dispatcher Channel Channel Transport Transport Channel Channel 15
  16. 16. Bindings T = 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 16
  17. 17. Composição de Bindings ABC do WCF Transport Encoder Security Reliability Protocol HTTP TCP Binary Text WS-* WS-* WS-* HTTP Text Transport TCP Binary WS-* WS-* Pipes WS-* MTOM Custom Custom MSMQ Custom Custom Custom 17
  18. 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 Federated Security, Reliable Delivery, Transaction Integration 18
  19. 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: Necessita desempenho máximo na comunicação entre máquinas ou in-process 19
  20. 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 Integração simples com o Host Integration Server e o BizTalk 20
  21. 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, recuperação, etc. 21
  22. 22. Uma árvore de decisão para Bindings Para cada cenário de aplicação Programming WCF Services teremos um binding específico by Juval Lowy que melhor atende suas necessidades. 22
  23. 23. 23
  24. 24. WCF para Aplicações Intranet Suporte ao modelo Cliente Intranet Cliente/Servidor. Serviços distribuídos Windows entre processos e Active fronteiras de máquinas. TCP Directory Características: NetTcpBinding Mensagens TCP/binária Serviço Autenticação Windows Componente de Negócio NetTcpBinding DALC 24
  25. 25. WCF para Web Services Suporte para protocolos SOAP/WS* Cliente Internet (Basic Profile) Cliente Internet (WS*) Características: Mensagens HTTP/Text UserName HTTPS HTTP Transporte seguro via SSL ou segurança por credentials BasicHttpBinding WSHttpBInding mensagens Autenticação baseada Serviço em usuário/senha Componente de Negócio BasicHttpBinding e WSHttpBinding DALC 25
  26. 26. EndPoints para Web Services Suporte ao wsHttpBinding Tratando Behaviors de serviços 26
  27. 27. WCF e mundo Web Browser Browser Suporte para modelos de programação Web, clientes AJAX Silverlight AJAX e Silverlight. Características: HTTP/HTTPS POX, REST, Atom/Pub Segurança via URL com segurança de aplicação WebHttpBinding WebHttpBinding WebHttpBinding para Ajax Serviço REST-Centric Componentes de Behavior webHttp(JSON) e Negócio enableWebScript (AJAX) DALC 27
  28. 28. EndPoints para Cliente AJAX/REST Usando um endpointBehavior enableWebScript Usando o binding webHttpBinding Usando o behavior custom, para suporte ao cliente AJAX 28
  29. 29. Serviços Distribuídos Browser Serviços WCF podem HTTPS encapsular funcionalidades UserName de negócio para aplicações credentials Web Aplicação ASP.NET Suporta fronteiras distribuídas e segurança TCP Certificate Certificate Características: NetTcpBinding Store Mensagens TCP/binário Serviço Autenticação por certificados Componente de NetTcpBinding Negócio DALC 29
  30. 30. SOA Cliente Internet Cliente Internet Browser (Basic Profile) (WS*) WCF é parte de uma HTTPS HTTP HTTPS estratégia orientada a serviços. Aplicação Interfaces de ASP.NET serviços para toda lógica de negócio. NetTcp WSHttp BasicHttp Características: Serviço Diversos cenários de bindings possíveis Componente de Negócio Big SOA versus Little SOA DALC 30
  31. 31. Cloud Computing Cliente Internet Cliente Internet Browser (Basic Profile) (WS*) Serviços publicados na HTTPS HTTP HTTPS nuvem, através de um ISB – Internet Aplicação ASP.NET Service Bus .NET Services da Plataforma de Service WSHttp / on-premise Bus Serviços Azure: Serviço Access Control Componente de Negócio Service Bus Access Control DALC Windows Azure .NET Services Service Bus 31
  32. 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 TCP Transporte Named Pipes (cliente e serviço na mesma máquina) Protocolo SOAP + Binary Mensageria Segurança Credencial Windows Certificado X.509 Binding NetTcpBinding NetNamedPipeBinding 32
  33. 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 Binding BasicHttpBinding, WsHttpBinding 33
  34. 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 WebHttpBehavior 34
  35. 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) NetMsmqBinding (WCF – WCF) 35
  36. 36. 36
  37. 37. Resumo sobre o WCF 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...
  38. 38. 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
  39. 39. 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 http://blogs.msdn.com/wcamb/archive/tags/Cen_26002300_225_3B00_ rios+de+servi_26002300_231_3B00_os+WCF/default.aspx
  40. 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 http://msdn.microsoft.com/pt-br/architecture/default.aspx 40
  41. 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. 41

×