SlideShare uma empresa Scribd logo
1 de 41
Uma introdução sobre
    WCF – Windows Communication
    Foundation


    Waldemir Cambiucci
    Arquiteto de Soluções        twitter.com/wcamb
    Microsoft Brasil        blogs.msdn.com/wcamb

1
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
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
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
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
.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
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
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
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
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
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
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
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” />
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
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
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
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
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
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
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
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
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
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
EndPoints para Web Services




                                             Suporte ao
                                            wsHttpBinding

                       Tratando Behaviors
                           de serviços
26
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
EndPoints para Cliente AJAX/REST
                              Usando um
                           endpointBehavior
                           enableWebScript


                                  Usando o binding
                                  webHttpBinding




                                  Usando o behavior
                                 custom, para suporte
                                    ao cliente AJAX
28
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
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
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
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
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
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
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
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...
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 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
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
© 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

Mais conteúdo relacionado

Mais procurados

Padrões essenciais de mensageria para integração de sistemas
Padrões essenciais de mensageria para integração de sistemasPadrões essenciais de mensageria para integração de sistemas
Padrões essenciais de mensageria para integração de sistemasHelder da Rocha
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFFabian Gehrke
 
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...Helton Franco
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processosFaculdade Mater Christi
 
Modelo osi juliana e claudia
Modelo osi juliana e claudiaModelo osi juliana e claudia
Modelo osi juliana e claudiajuclau
 
Protocolos TCP IP UDP
Protocolos TCP IP UDPProtocolos TCP IP UDP
Protocolos TCP IP UDPAndré Nobre
 

Mais procurados (9)

Aula 1
Aula 1Aula 1
Aula 1
 
Padrões essenciais de mensageria para integração de sistemas
Padrões essenciais de mensageria para integração de sistemasPadrões essenciais de mensageria para integração de sistemas
Padrões essenciais de mensageria para integração de sistemas
 
Trabalho Final PSDC - Simião
Trabalho Final PSDC - SimiãoTrabalho Final PSDC - Simião
Trabalho Final PSDC - Simião
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCF
 
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...
Estudo e analise comparativa de desempenho do protocolo mqtt em redes de band...
 
Protocolos logicos de_comunicacao
Protocolos logicos de_comunicacaoProtocolos logicos de_comunicacao
Protocolos logicos de_comunicacao
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
 
Modelo osi juliana e claudia
Modelo osi juliana e claudiaModelo osi juliana e claudia
Modelo osi juliana e claudia
 
Protocolos TCP IP UDP
Protocolos TCP IP UDPProtocolos TCP IP UDP
Protocolos TCP IP UDP
 

Semelhante a Introdução ao WCF: Uma plataforma para aplicações distribuídas

AAB304 - Windows Workflow Foundation - wcamb
AAB304 - Windows Workflow Foundation - wcambAAB304 - Windows Workflow Foundation - wcamb
AAB304 - Windows Workflow Foundation - wcambMicrosoft Brasil
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWSDextra
 
AAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambAAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambMicrosoft Brasil
 
Introdução ao WCF - Windows Communication Foundation
Introdução ao WCF - Windows Communication FoundationIntrodução ao WCF - Windows Communication Foundation
Introdução ao WCF - Windows Communication FoundationC. Augusto Proiete
 
Introdução ao WCF - Windows Communication Foundation - C. Augusto Proiete
Introdução ao WCF - Windows Communication Foundation - C. Augusto ProieteIntrodução ao WCF - Windows Communication Foundation - C. Augusto Proiete
Introdução ao WCF - Windows Communication Foundation - C. Augusto ProieteComunidade NetPonto
 
3ª Unidade Modelo OSI e TCP/IP
3ª Unidade Modelo OSI e TCP/IP3ª Unidade Modelo OSI e TCP/IP
3ª Unidade Modelo OSI e TCP/IPCleiton Cunha
 
Introdução ao Windows Azure
Introdução ao Windows AzureIntrodução ao Windows Azure
Introdução ao Windows AzureFernando Correia
 
Microservices Architecture Workshop
Microservices Architecture WorkshopMicroservices Architecture Workshop
Microservices Architecture WorkshopClaudio Acquaviva
 
Distribuindo Aplicações com WCF
Distribuindo Aplicações com WCFDistribuindo Aplicações com WCF
Distribuindo Aplicações com WCF.NetArchitects
 
Windows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsWindows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsMarkus Christen
 
Apresentacao Tcc
Apresentacao TccApresentacao Tcc
Apresentacao Tcccoelhocr
 
Azure Services Platform Overview
Azure Services Platform OverviewAzure Services Platform Overview
Azure Services Platform OverviewCampus Party Brasil
 

Semelhante a Introdução ao WCF: Uma plataforma para aplicações distribuídas (20)

AAB304 - Windows Workflow Foundation - wcamb
AAB304 - Windows Workflow Foundation - wcambAAB304 - Windows Workflow Foundation - wcamb
AAB304 - Windows Workflow Foundation - wcamb
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWS
 
Mac5700
Mac5700Mac5700
Mac5700
 
AAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambAAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcamb
 
WCF
WCFWCF
WCF
 
Web Services XML - .NET framework
Web Services XML - .NET frameworkWeb Services XML - .NET framework
Web Services XML - .NET framework
 
Introdução ao WCF - Windows Communication Foundation
Introdução ao WCF - Windows Communication FoundationIntrodução ao WCF - Windows Communication Foundation
Introdução ao WCF - Windows Communication Foundation
 
Introdução ao WCF - Windows Communication Foundation - C. Augusto Proiete
Introdução ao WCF - Windows Communication Foundation - C. Augusto ProieteIntrodução ao WCF - Windows Communication Foundation - C. Augusto Proiete
Introdução ao WCF - Windows Communication Foundation - C. Augusto Proiete
 
3ª Unidade Modelo OSI e TCP/IP
3ª Unidade Modelo OSI e TCP/IP3ª Unidade Modelo OSI e TCP/IP
3ª Unidade Modelo OSI e TCP/IP
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
DotNet Remoting - .NET framework
DotNet Remoting - .NET frameworkDotNet Remoting - .NET framework
DotNet Remoting - .NET framework
 
Introdução ao Windows Azure
Introdução ao Windows AzureIntrodução ao Windows Azure
Introdução ao Windows Azure
 
Microservices Architecture Workshop
Microservices Architecture WorkshopMicroservices Architecture Workshop
Microservices Architecture Workshop
 
Distribuindo Aplicações com WCF
Distribuindo Aplicações com WCFDistribuindo Aplicações com WCF
Distribuindo Aplicações com WCF
 
Windows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-ProsWindows Azure no Mundo Real para IT-Pros
Windows Azure no Mundo Real para IT-Pros
 
Apresentacao Tcc
Apresentacao TccApresentacao Tcc
Apresentacao Tcc
 
Web services
Web  servicesWeb  services
Web services
 
ASP.NET - Web Services
ASP.NET - Web ServicesASP.NET - Web Services
ASP.NET - Web Services
 
Azure Services Platform Overview
Azure Services Platform OverviewAzure Services Platform Overview
Azure Services Platform Overview
 
Lan
LanLan
Lan
 

Mais de Microsoft Brasil

AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambMicrosoft Brasil
 
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfAAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfMicrosoft Brasil
 
AAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcambAAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcambMicrosoft Brasil
 
AAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambAAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambMicrosoft Brasil
 
AAB302 - Model Driven Design e Oslo - wcamb
AAB302 - Model Driven Design e Oslo - wcambAAB302 - Model Driven Design e Oslo - wcamb
AAB302 - Model Driven Design e Oslo - wcambMicrosoft Brasil
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambMicrosoft Brasil
 

Mais de Microsoft Brasil (6)

AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcamb
 
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfAAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
 
AAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcambAAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcamb
 
AAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambAAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcamb
 
AAB302 - Model Driven Design e Oslo - wcamb
AAB302 - Model Driven Design e Oslo - wcambAAB302 - Model Driven Design e Oslo - wcamb
AAB302 - Model Driven Design e Oslo - wcamb
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 

Introdução ao WCF: Uma plataforma para aplicações distribuídas

  • 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. 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. 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
  • 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. 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. .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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 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. 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. EndPoints para Web Services Suporte ao wsHttpBinding Tratando Behaviors de serviços 26
  • 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. EndPoints para Cliente AJAX/REST Usando um endpointBehavior enableWebScript Usando o binding webHttpBinding Usando o behavior custom, para suporte ao cliente AJAX 28
  • 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. 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. 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. 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. 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. 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. 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
  • 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. 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. 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. 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. © 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