SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Recomendações para a
    construção de serviços com WCF


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

1
Agenda
      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 abordagem para cenários de
     serviços implementados com WCF.

     Apresentar alguns aspectos importantes para a
     construção de serviços 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
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ê)




6
Recomendações gerais
     Hosting de serviços
     Encadeamento de serviços
     Reconhecimento de cenários assíncronos
     Segurança de serviços
     Escolha de bindings adequados
     Nomenclatura e versionamento
     Validação, tratamento de exceção, logging,
     etc…

7
Hosting de serviços
     Self-Hosting                 Managed-Hosting
          Cenários                    Cenário
            Não possui controle          Possui controle do
            do ambiente                  ambiente
            Aplicações P2P               Alta escalabilidade,
                                         disponibilidade,
                                         gerenciamento
          Implementação
            Windows Service
                                      Implementação
                                         Windows 2008:
            Console Application
                                         IIS/WAS
            WinForms, WPF,
                                         Windows 2008
            etc.
                                         R2/.NET Framework
                                         4.0: Dublin
8
Hosting de serviços
     Windows Server 2003
       IIS 6 para serviços HTTP
       Windows Services para serviços não-HTTP

     Windows Server 2008 / Windows Server 2008 R2
       IIS 7 para serviços HTTP
       IIS 7 / Windows Process Activation Service (WAS)
       para todos os protocolos
       Windows Services também pode ser usado
       Dublin irá oferecer novos recursos para
       administração e hosting de serviços WCF e WF

9
Modelo de Hosting
     Funcionalidade                     Windows Service   IIS 6, IIS 7 / WAS
     Domínio de processos e aplicação         Sim                 Sim
     Configuração externa de serviço          Sim                 Sim
     Service Activation                       Não                 Sim
     Health Monitoring e Recycling            Não                 Sim
     Ferramentas de Gerenciamento             Não                 Sim



           Existem ainda outras                 “Dublin” deve melhorar
           considerações sobre                     ainda mais essas
        protocolos, gerenciamento,                funcionalidades…
             limitações, etc…


10
Arquitetura IIS 7 / WAS
                                              Worker Process
                                               (w3wp.exe)
                  App Domain
                                                           TcpProcess
                    HttpHandler
                                                         ProtocolHandler
     Windows
     Activation                      NamedPipeProcess                        MsmqProcess        Protocol
     Service        HttpModule        ProtocolHandler                       ProtocolHandler     Handlers
     (WAS)


                       w3svc               inpas              itcpas             imsmqas
                        HTTP             Named Pipe            Tcp                Msmq          Listener
                  Listener Adapter    Listener Adapter   Listener Adapter    Listener Adapter   Adapters



                                                                                                Protocol
                     http.sys            net.pipe            net.tcp            net.msmq        Listeners


                  HTTP          Named Pipe                TCP               MSMQ



11
Hosting de Serviços




12
Hosting de Serviços
      Avalie os protocolos esperados para transporte e
      entrega de mensagens
        bindings suportados / bindings customizados

      Avalie as ferramentas de administração e monitoração
      de serviços no hosting
        Self-Hosting vs. Managed-Hosting

      Avalie as questões de threading e tratamento de
      concorrência no hosting
        Requisições concorrentes e throtling

13
Encadeamento de serviços    IIS                                         IIS
                                  ASP.NET Web Application                      ASP.NET Web Application

                                Web Server                                Web Server
                                                                                                      Propagação de
                                                                                                       credenciais,
                                                                                                       authn, authz
                                  Windows Service                              Windows Service
                                          Business Service                         Business Service

                                Application Server                        Application Server          Monitoração
                                                                                                        Logging,
                                                                                                      Caching, etc...
                                 Windows Service             Windows Service            Windows Service

                                       Processing               Processing                 Processing
                                         Service                  Service                    Service

                                Processing Server            Processing Server         Processing Server
14
Limitando o “Service Hops”
      Cruzar processos e fronteiras de máquinas exige
      WCF:
        Essencial para a distribuição de funcionalidades e
        escalabilidade de aplicações.

      O desenho orientado a serviços implica no reuso via
      serviços, mesmo para chamadas in-process.
        Algumas aplicações não podem suportar mais de 2
        encadeamentos de serviços numa única requisição.

      Criar um baseline/benchmark para sua aplicação.

15
Reconheça os cenários assíncronos
      Bindings como NetMsmqBinding e o
      MsmqIntegrationBinding permitem a entrega através
      de filas de mensagens, para soluções assíncronas.
                                                             msg1

      Cliente            Fila MSMQ
                                                                     WCF
                                                Dispatcher
           Proxy                                                    Service

                   msg
                                     MSMQ
                                     Channel
                                     Listener
                                                             msg2


                                                                     WCF
                                                Dispatcher
                                                                    Service
16
Binding para serviços assíncronos




                                      Usando o
                              msmqIntegrationBinding
                              para serviços assíncronos.




17
Pattern de Serviços Assíncronos

      namespace WcfServiceLibrary                 Pattern Begin/End
      {                                            para operações
          [ServiceContract]                          Assíncronas
          public interface IAsyncOrderService
          {
              [OperationContract(AsyncPattern = true)]
              IAsyncResult BeginGetOrders(int numOrders,
      AsyncCallback callback, object state);

                [OperationContract]
                Order[] EndGetOrders(IAsyncResult result);
          }
      Scale WCF Application Better with Asynchronous Programming
      http://blogs.msdn.com/wenlong/archive/2009/02/09/scale-wcf-application-better-with-
      asynchronous-programming.aspx
18
Segurança com WCF
      Segurança por transporte:
        SSL, TLS, IPSec
        Ponto-a-Ponto
        Aplicado para toda mensagem

      Segurança por mensagem:
        Segurança para Web Services (WS*)
        Segurança para o receptor de mensagens
        Segurança para partes da mensagem


19
Segurança com WCF
      Modo de segurança
      Níveis de proteção
      Credenciais para cliente e servidor
      Impersonation
      Negociação de credenciais
      Sessões de segurança
      Comportamentos de autenticação e
      autorização
            Web Service Security Guidance
            http://www.codeplex.com/WCFSecurityGuide
20
Segurança com WCF
       Web Service Security Guidance




21
Nomenclatura - Métodos
      Utilize sempre significados específicos para
      seus métodos e interfaces
        CreateCustomer / CriarCliente

      Recomendação: utilizar “Verbo Simples +
      Substantivo”
        CreateAccount / CriarConta
        VerifyApproval / VerificarAprovacao
        GetCustomer / ObterCliente

22
Nomenclatura - Métodos
      Recomendação: Evite round-trips
        Compare com mundo real

      Exemplos
        Evitar: GetCustomerFirstName,
        GetCustomerLastName
        Utilizar: GetCustomer


23
Versionamento de contrato
       Recomendação:
         adote uma padronização para versionamento do
         contrato de serviços e de dados.




     URL da empresa
                                Nome do
                                 serviço    Versão Ano/Mês
                                              ou v1.0.0.0
                  Nome da
                  aplicação
24
Versionamento de contrato




                            Versionamento
                          padronizado para o
                          contrato de dados.




25
Validação
      Assuma que todo input requer atenção na
      interface de serviços.
        Valide os dados conforme tipo, tamanho, formato,
        limites e o domínio de aplicação.

      Use o modelo de validação integrado ao WCF
      na Enterprise Library 4.1
        Enterprise Library 4.1 - October 2008
        Hands-On Labs for Enterprise Library 4.1

      Use a Enterprise Library 4.1 sempre que possível!
26
Validação WCF com EntLib 4.1




                           Definindo o tipo de
                           validação de dados




27
Logging de serviços WCF
     Usando a Enterprise Library



                                    Escolhendo o Trace
                                      Listener para as
                                   mensagens de Logging




28
Logging de serviços WCF
     Usando a Enterprise Library
                                    Usando o Enterprise
                                   Library Logging para o
                                    trace de eventos no
                                        serviço WCF.




29
Bindings versus Segurança
                                  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

30
31
Conclusões
      WCF realiza a separação entre serviço e protocolos,
      com grande poder de abstração, suportando múltiplos
      protocolos e múltiplos hosts.
      WCF simplifica a implementação e a configuração de
      interfaces de serviços.
      Existem diversos aspectos relacionados a construção
      de serviços como:
        hosting de serviços, encadeamento de serviços,
        reconhecimento de cenários assíncronos, segurança de
        serviços, escolha de bindings adequados, nomenclatura e
        versionamento, entre outros.

32
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
33
© 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.




34

Weitere ähnliche Inhalte

Was ist angesagt?

Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
Adriano Teixeira de Souza
 
Arquitetura orientada a servicos soa
Arquitetura orientada a servicos   soaArquitetura orientada a servicos   soa
Arquitetura orientada a servicos soa
Leonardo Eloy
 
Windows Server 2012 - Além da virtualização
Windows Server 2012 - Além da virtualizaçãoWindows Server 2012 - Além da virtualização
Windows Server 2012 - Além da virtualização
Fabio Hara
 
Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc  Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc
guest880159
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
alinebicudo
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
DNAD
 
Plataforma de Data Center FlexPod
Plataforma de Data Center FlexPod   Plataforma de Data Center FlexPod
Plataforma de Data Center FlexPod
Ten Sistemas e Redes
 
Nuvens híbridas: Conectando aplicações locais com a nuvem na plataforma Windo...
Nuvens híbridas:Conectando aplicações locais com a nuvem na plataforma Windo...Nuvens híbridas:Conectando aplicações locais com a nuvem na plataforma Windo...
Nuvens híbridas: Conectando aplicações locais com a nuvem na plataforma Windo...
Osvaldo Daibert
 

Was ist angesagt? (19)

Windows Server 2008 R2
Windows Server 2008 R2Windows Server 2008 R2
Windows Server 2008 R2
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Microservices
MicroservicesMicroservices
Microservices
 
Conceitos de SOA
Conceitos de SOAConceitos de SOA
Conceitos de SOA
 
Arquitetura orientada a servicos soa
Arquitetura orientada a servicos   soaArquitetura orientada a servicos   soa
Arquitetura orientada a servicos soa
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Drive a assis_belem_ago2011_cloud_externo
Drive a assis_belem_ago2011_cloud_externoDrive a assis_belem_ago2011_cloud_externo
Drive a assis_belem_ago2011_cloud_externo
 
Windows Server 2012 - Além da virtualização
Windows Server 2012 - Além da virtualizaçãoWindows Server 2012 - Além da virtualização
Windows Server 2012 - Além da virtualização
 
Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc  Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc
 
Citrix transformando seu DC em nuvem
Citrix   transformando seu DC em nuvemCitrix   transformando seu DC em nuvem
Citrix transformando seu DC em nuvem
 
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...
Providenciar Uma Plataforma De AplicaçõEs De Alta Performance Para Aplicações...
 
Portfolio de Serviços SAN Internet
Portfolio de Serviços SAN InternetPortfolio de Serviços SAN Internet
Portfolio de Serviços SAN Internet
 
Ibolt e Procnet
Ibolt e ProcnetIbolt e Procnet
Ibolt e Procnet
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
Plataforma de Data Center FlexPod
Plataforma de Data Center FlexPod   Plataforma de Data Center FlexPod
Plataforma de Data Center FlexPod
 
SOA - Fatos e Mitos
SOA - Fatos e MitosSOA - Fatos e Mitos
SOA - Fatos e Mitos
 
Nuvens híbridas: Conectando aplicações locais com a nuvem na plataforma Windo...
Nuvens híbridas:Conectando aplicações locais com a nuvem na plataforma Windo...Nuvens híbridas:Conectando aplicações locais com a nuvem na plataforma Windo...
Nuvens híbridas: Conectando aplicações locais com a nuvem na plataforma Windo...
 
Power BI Administração e Governança
Power BI Administração e GovernançaPower BI Administração e Governança
Power BI Administração e Governança
 

Andere mochten auch

O negócio provedor de infra estrutura utilities v inatel
O negócio  provedor de infra estrutura utilities v inatelO negócio  provedor de infra estrutura utilities v inatel
O negócio provedor de infra estrutura utilities v inatel
Eduardo Grizendi
 
Embranet
EmbranetEmbranet
Embranet
jalira
 
O negócio provedor de infra estrutura prefeitura
O negócio  provedor de infra estrutura prefeituraO negócio  provedor de infra estrutura prefeitura
O negócio provedor de infra estrutura prefeitura
Eduardo Grizendi
 
Eficiência energética em Data Center
Eficiência energética em Data CenterEficiência energética em Data Center
Eficiência energética em Data Center
d2sp
 
Eight Steps to an Effective Vulnerability Assessment
Eight Steps to an Effective Vulnerability AssessmentEight Steps to an Effective Vulnerability Assessment
Eight Steps to an Effective Vulnerability Assessment
Sirius
 

Andere mochten auch (15)

Forneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure PackForneça serviços de Hosting com o Windows Azure Pack
Forneça serviços de Hosting com o Windows Azure Pack
 
Computacao em nuvem windows azure
Computacao em nuvem   windows azureComputacao em nuvem   windows azure
Computacao em nuvem windows azure
 
"EUBrasilCloudFORUM Coordinated Support Action Project"
"EUBrasilCloudFORUM Coordinated Support Action Project""EUBrasilCloudFORUM Coordinated Support Action Project"
"EUBrasilCloudFORUM Coordinated Support Action Project"
 
O negócio provedor de infra estrutura utilities v inatel
O negócio  provedor de infra estrutura utilities v inatelO negócio  provedor de infra estrutura utilities v inatel
O negócio provedor de infra estrutura utilities v inatel
 
Hosting Inok
Hosting InokHosting Inok
Hosting Inok
 
Embranet
EmbranetEmbranet
Embranet
 
O negócio provedor de infra estrutura prefeitura
O negócio  provedor de infra estrutura prefeituraO negócio  provedor de infra estrutura prefeitura
O negócio provedor de infra estrutura prefeitura
 
Eficiência energética em Data Center
Eficiência energética em Data CenterEficiência energética em Data Center
Eficiência energética em Data Center
 
Buscadores cuadro sinóptico
Buscadores cuadro sinópticoBuscadores cuadro sinóptico
Buscadores cuadro sinóptico
 
Business Continuity e Disaster Recovery na Cloud
Business Continuity e Disaster Recovery na CloudBusiness Continuity e Disaster Recovery na Cloud
Business Continuity e Disaster Recovery na Cloud
 
AAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcambAAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcamb
 
BI - Padrões de arquitetura e uso recursos
BI - Padrões de arquitetura e uso recursosBI - Padrões de arquitetura e uso recursos
BI - Padrões de arquitetura e uso recursos
 
6 trends that will shape Cloud computing in 2017 - An Infograph
6 trends that will shape Cloud computing in 2017 - An Infograph6 trends that will shape Cloud computing in 2017 - An Infograph
6 trends that will shape Cloud computing in 2017 - An Infograph
 
10 Keys to Data-Centric Security
10 Keys to Data-Centric Security10 Keys to Data-Centric Security
10 Keys to Data-Centric Security
 
Eight Steps to an Effective Vulnerability Assessment
Eight Steps to an Effective Vulnerability AssessmentEight Steps to an Effective Vulnerability Assessment
Eight Steps to an Effective Vulnerability Assessment
 

Ähnlich wie AAB306 - Wcf Services Best Practices - wcamb

Azure Services Platform Overview
Azure Services Platform OverviewAzure Services Platform Overview
Azure Services Platform Overview
Campus Party Brasil
 
Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)
Marcelo Paiva
 
Desenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NETDesenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NET
Gustavo Malheiros
 
Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)
Rodrigo Kono
 

Ähnlich wie AAB306 - Wcf Services Best Practices - wcamb (20)

Mac5700
Mac5700Mac5700
Mac5700
 
ASP.NET - Web Services
ASP.NET - Web ServicesASP.NET - Web Services
ASP.NET - Web Services
 
A plataforma Azure da Microsoft
A plataforma Azure da MicrosoftA plataforma Azure da Microsoft
A plataforma Azure da Microsoft
 
MS Online Friday - 2ª Sexta
 MS Online Friday - 2ª Sexta MS Online Friday - 2ª Sexta
MS Online Friday - 2ª Sexta
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWS
 
Azure Services Platform Overview
Azure Services Platform OverviewAzure Services Platform Overview
Azure Services Platform Overview
 
Paulo Santanna Nsi Windows Server 2008 R2 Overview
Paulo Santanna   Nsi   Windows Server 2008 R2 OverviewPaulo Santanna   Nsi   Windows Server 2008 R2 Overview
Paulo Santanna Nsi Windows Server 2008 R2 Overview
 
Architecture In A Box: SOI com Dublin
Architecture In A Box: SOI com DublinArchitecture In A Box: SOI com Dublin
Architecture In A Box: SOI com Dublin
 
WCF
WCFWCF
WCF
 
Web Services XML - .NET framework
Web Services XML - .NET frameworkWeb Services XML - .NET framework
Web Services XML - .NET framework
 
Windows Server 2008 R2
Windows Server 2008 R2Windows Server 2008 R2
Windows Server 2008 R2
 
Construindo aplicações saudáveis e prontas para envelhecer The 12ou15 Factors
Construindo aplicações saudáveis e prontas para envelhecer The 12ou15 FactorsConstruindo aplicações saudáveis e prontas para envelhecer The 12ou15 Factors
Construindo aplicações saudáveis e prontas para envelhecer The 12ou15 Factors
 
Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)
 
Desenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NETDesenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NET
 
Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)Plataforma Windows Azure (Cloud Computing)
Plataforma Windows Azure (Cloud Computing)
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCF
 
AAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcambAAB303 - Windows Communication Foundation - wcamb
AAB303 - Windows Communication Foundation - wcamb
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

AAB306 - Wcf Services Best Practices - wcamb

  • 1. Recomendações para a construção de serviços com WCF Waldemir Cambiucci Arquiteto de Soluções twitter.com/wcamb Microsoft Brasil blogs.msdn.com/wcamb 1
  • 2. Agenda 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 abordagem para cenários de serviços implementados com WCF. Apresentar alguns aspectos importantes para a construção de serviços 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. 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ê) 6
  • 7. Recomendações gerais Hosting de serviços Encadeamento de serviços Reconhecimento de cenários assíncronos Segurança de serviços Escolha de bindings adequados Nomenclatura e versionamento Validação, tratamento de exceção, logging, etc… 7
  • 8. Hosting de serviços Self-Hosting Managed-Hosting Cenários Cenário Não possui controle Possui controle do do ambiente ambiente Aplicações P2P Alta escalabilidade, disponibilidade, gerenciamento Implementação Windows Service Implementação Windows 2008: Console Application IIS/WAS WinForms, WPF, Windows 2008 etc. R2/.NET Framework 4.0: Dublin 8
  • 9. Hosting de serviços Windows Server 2003 IIS 6 para serviços HTTP Windows Services para serviços não-HTTP Windows Server 2008 / Windows Server 2008 R2 IIS 7 para serviços HTTP IIS 7 / Windows Process Activation Service (WAS) para todos os protocolos Windows Services também pode ser usado Dublin irá oferecer novos recursos para administração e hosting de serviços WCF e WF 9
  • 10. Modelo de Hosting Funcionalidade Windows Service IIS 6, IIS 7 / WAS Domínio de processos e aplicação Sim Sim Configuração externa de serviço Sim Sim Service Activation Não Sim Health Monitoring e Recycling Não Sim Ferramentas de Gerenciamento Não Sim Existem ainda outras “Dublin” deve melhorar considerações sobre ainda mais essas protocolos, gerenciamento, funcionalidades… limitações, etc… 10
  • 11. Arquitetura IIS 7 / WAS Worker Process (w3wp.exe) App Domain TcpProcess HttpHandler ProtocolHandler Windows Activation NamedPipeProcess MsmqProcess Protocol Service HttpModule ProtocolHandler ProtocolHandler Handlers (WAS) w3svc inpas itcpas imsmqas HTTP Named Pipe Tcp Msmq Listener Listener Adapter Listener Adapter Listener Adapter Listener Adapter Adapters Protocol http.sys net.pipe net.tcp net.msmq Listeners HTTP Named Pipe TCP MSMQ 11
  • 13. Hosting de Serviços Avalie os protocolos esperados para transporte e entrega de mensagens bindings suportados / bindings customizados Avalie as ferramentas de administração e monitoração de serviços no hosting Self-Hosting vs. Managed-Hosting Avalie as questões de threading e tratamento de concorrência no hosting Requisições concorrentes e throtling 13
  • 14. Encadeamento de serviços IIS IIS ASP.NET Web Application ASP.NET Web Application Web Server Web Server Propagação de credenciais, authn, authz Windows Service Windows Service Business Service Business Service Application Server Application Server Monitoração Logging, Caching, etc... Windows Service Windows Service Windows Service Processing Processing Processing Service Service Service Processing Server Processing Server Processing Server 14
  • 15. Limitando o “Service Hops” Cruzar processos e fronteiras de máquinas exige WCF: Essencial para a distribuição de funcionalidades e escalabilidade de aplicações. O desenho orientado a serviços implica no reuso via serviços, mesmo para chamadas in-process. Algumas aplicações não podem suportar mais de 2 encadeamentos de serviços numa única requisição. Criar um baseline/benchmark para sua aplicação. 15
  • 16. Reconheça os cenários assíncronos Bindings como NetMsmqBinding e o MsmqIntegrationBinding permitem a entrega através de filas de mensagens, para soluções assíncronas. msg1 Cliente Fila MSMQ WCF Dispatcher Proxy Service msg MSMQ Channel Listener msg2 WCF Dispatcher Service 16
  • 17. Binding para serviços assíncronos Usando o msmqIntegrationBinding para serviços assíncronos. 17
  • 18. Pattern de Serviços Assíncronos namespace WcfServiceLibrary Pattern Begin/End { para operações [ServiceContract] Assíncronas public interface IAsyncOrderService { [OperationContract(AsyncPattern = true)] IAsyncResult BeginGetOrders(int numOrders, AsyncCallback callback, object state); [OperationContract] Order[] EndGetOrders(IAsyncResult result); } Scale WCF Application Better with Asynchronous Programming http://blogs.msdn.com/wenlong/archive/2009/02/09/scale-wcf-application-better-with- asynchronous-programming.aspx 18
  • 19. Segurança com WCF Segurança por transporte: SSL, TLS, IPSec Ponto-a-Ponto Aplicado para toda mensagem Segurança por mensagem: Segurança para Web Services (WS*) Segurança para o receptor de mensagens Segurança para partes da mensagem 19
  • 20. Segurança com WCF Modo de segurança Níveis de proteção Credenciais para cliente e servidor Impersonation Negociação de credenciais Sessões de segurança Comportamentos de autenticação e autorização Web Service Security Guidance http://www.codeplex.com/WCFSecurityGuide 20
  • 21. Segurança com WCF Web Service Security Guidance 21
  • 22. Nomenclatura - Métodos Utilize sempre significados específicos para seus métodos e interfaces CreateCustomer / CriarCliente Recomendação: utilizar “Verbo Simples + Substantivo” CreateAccount / CriarConta VerifyApproval / VerificarAprovacao GetCustomer / ObterCliente 22
  • 23. Nomenclatura - Métodos Recomendação: Evite round-trips Compare com mundo real Exemplos Evitar: GetCustomerFirstName, GetCustomerLastName Utilizar: GetCustomer 23
  • 24. Versionamento de contrato Recomendação: adote uma padronização para versionamento do contrato de serviços e de dados. URL da empresa Nome do serviço Versão Ano/Mês ou v1.0.0.0 Nome da aplicação 24
  • 25. Versionamento de contrato Versionamento padronizado para o contrato de dados. 25
  • 26. Validação Assuma que todo input requer atenção na interface de serviços. Valide os dados conforme tipo, tamanho, formato, limites e o domínio de aplicação. Use o modelo de validação integrado ao WCF na Enterprise Library 4.1 Enterprise Library 4.1 - October 2008 Hands-On Labs for Enterprise Library 4.1 Use a Enterprise Library 4.1 sempre que possível! 26
  • 27. Validação WCF com EntLib 4.1 Definindo o tipo de validação de dados 27
  • 28. Logging de serviços WCF Usando a Enterprise Library Escolhendo o Trace Listener para as mensagens de Logging 28
  • 29. Logging de serviços WCF Usando a Enterprise Library Usando o Enterprise Library Logging para o trace de eventos no serviço WCF. 29
  • 30. Bindings versus Segurança 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 30
  • 31. 31
  • 32. Conclusões WCF realiza a separação entre serviço e protocolos, com grande poder de abstração, suportando múltiplos protocolos e múltiplos hosts. WCF simplifica a implementação e a configuração de interfaces de serviços. Existem diversos aspectos relacionados a construção de serviços como: hosting de serviços, encadeamento de serviços, reconhecimento de cenários assíncronos, segurança de serviços, escolha de bindings adequados, nomenclatura e versionamento, entre outros. 32
  • 33. 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 33
  • 34. © 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. 34