• Save
AAB306 - Wcf Services Best Practices - wcamb
Upcoming SlideShare
Loading in...5
×
 

AAB306 - Wcf Services Best Practices - wcamb

on

  • 2,214 views

Recomendações gerais sobre serviços e questões sobre WCF.

Recomendações gerais sobre serviços e questões sobre WCF.
Publicação: Outubro/2009.
Autor: Waldemir Cambiucci

Statistics

Views

Total Views
2,214
Views on SlideShare
2,110
Embed Views
104

Actions

Likes
2
Downloads
0
Comments
0

5 Embeds 104

http://blogs.msdn.com 95
http://www.slideshare.net 6
http://cleberprogrammer.wordpress.com 1
http://epithermally27.rssing.com 1
http://waldemir1.rssing.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    AAB306 - Wcf Services Best Practices - wcamb AAB306 - Wcf Services Best Practices - wcamb Presentation Transcript

    • 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