Hospedagem de serviços WCF
Olá pessoal, hoje vou falar um pouco sobre as opções de hospedagem dos serviços WCF e os seus diversos cenários de uso, temas frequentemente discutidos por aí. Estes cenários podem ser:
Cenário | Descrição |
Enterprise Web Services | Fornece suporte para web services simple baseados em SOAP ou avançados que utilizam protocolos WS*. |
Web 2.0 Services | Um modelo de programação para web com suporte à POX, REST, JSON, RSS e Atom. |
Aplicações da Intranet | Foco em aplicações rodando atrás de um firewall em uma rede controlada. |
Mensagens Enfileiradas | Possibilita cenários de chamadas assíncronas ou desconectadas entre os clientes e o serviço. |
Veremos agora maiores detalhes sobre cada um dos itens listados acima.
Enterprise Web Services
A partir do final da década de 1990 muitos desenvolvedores passaram a utilizar web services baseados no protocolo SOAP e outros protocolos mais avançados (conhecidos como WS*) para suportar a interoperabilidade entre plataformas distintas, o que facilitou a comunicação distribuída através da Internet e também a troca de mensagens entre sistemas protegidos por firewalls.
Neste cenário o WCF suporta os seguintes protocolos:
Categoria | Protocolo |
Mensageria | SOAP, WS-Addressing, MTOM |
Metadados | WSDL, WS-MetadataExchange, WS-Policy |
Segurança | WS-Security, WS-SecureConversation, WS-Trust |
Confiabilidade | WS-ReliableMessaging |
Transações | WS-Coordination, WS-AtomicTransaction |
Não podemos esquecer que a escolha dos protocolos deve ser feita baseando-se nos seguintes cenários:
- Serviços que devem ser consumidos por uma plataforma cliente específica devem utilizar protocolos de acordo com o que os clientes suportam;
- Serviços que devem ser consumidos por plataformas desconhecidas devem utilizar o menos denominador comum;
- Serviços que serão consumidos por clientes WCF podem ser configurados para utilizar os protocolos mais avançados;
- Serviços podem ser configurados para suportar vários tipos de protocolos possibilitando a possibilidade de ser consumido por vários tipos de clientes.
Implementação
As características de implementação dos enterprise web services são:
Característica | Descrição |
Hospedagem | IIS 6 no Windows Server 2003, IIS 7 no Windows Server 2008 |
Protocolo de transporte | HTTP, HTTPS |
Protocolo de mensageria | SOAP + WS-Addressing |
Autenticação | Usuário e senha (WS-Security) |
Autorização | Custom credential store |
Segurança da transmissão | SSL se HTTPS, WS-Secutiry se HTTP |
Web 2.0 Services
O modelo de programação para Web 2.0 se tornou bastante popular para o desenvolvimento de aplicações RIA (Rich Internet Applications) baseadas em browsers, possibilitando grande interatividade com os usuários. Os web services baseados em SOAP ou WS* não são uma boa opção para este cenário, pois não existem ferramentas para geração de proxies e o tratamento das mensagens SOAP traria muita complexidade. Este cenário requer uma abordagem que simplifique a comunicação das aplicações baseadas em browsers e o WCF pode atender com os seguintes protocolos:
Protocolo | Descrição |
POX | Troca de mensagens XML sem o formalismo do SOAP |
REST | Muitas vezes utiliza POX, se baseia no padrão de acesso à URI para processamento |
JSON | Alternativa mais leve que o XML, muito utilizado por clientes JavaScript |
RSS/ATOM | Formato de syndication baseado em XML, utilizado para compartilhar a atualização de dados |
POX/REST
Antes do surgimento do SOAP os sistemas já trocavam mensagens XML. Plain-Old-XML (POX) é o termo utilizado para definir essa troca de mensagens, geralmente através do protocolo HTTP.
Representational State Transfer (REST) é um estilo utilizado para interação com recursos, sendo muito útil para operações CRUD (create, read, update e delete). Através dos verbos HTTP faz a distinção das operações que devem ser realizadas em cima dos recursos, representados por uma URI. Já o POX utiliza mais de uma URI para interação com cada um dos recursos utilizando os verbos HTTP GET e POST para interação.
Vejamos o funcionamento:
JSON
JavaScript Object Notation (JSON) é um formato de mensagem desenvolvido para ser utilizado por clientes JavaScript. Se compatado ao XML, a notação JSON carrega um menor overhead e é mais simples, permitindo que alguns modelos de programação gerarem proxies de acesso, o que muitas vezes facilita o trabalho dos desenvolvedores. Pode ser utilizado como formato de mensagem para implementações REST.
RSS e Atom
Really Simple Syndication (RSS) e Atom são formatos de syndication que permitem às aplicações cliente acessar conteúdo de natureza tipicamente cronológica e com atualizações constantes.
Implementação
As características de implementação dos web 2.0 services são:
Característica | Descrição |
Hospedagem | IIS 6 no Windows Server 2003, IIS 7 no Windows Server 2008 |
Protocolo de transporte | HTTP, HTTPS |
Protocolo de mensageria | XML, JSON |
Autenticação | Usuário e senha (Basic Authentication) |
Autorização | Custom credential store |
Segurança da transmissão | SSL se necessário |
Aplicações da Intranet
O WCF pode ser considerado o substituto das tecnologias .NET Remoting e Enterprise Services para a distribuição de funcionalidades entre processos e máquinas na mesma rede. Estas aplicações não necessitam de protocolos interoperáveis para comunicação, o que faz com que possa ser utilizado WCF em ambas as pontas para comunição entre os clientes e os serviços.
Implementação
As características de implementação das aplicações da intranet são:
Característica | Descrição |
Hospedagem | Windows NT Service no Windows Server 2003, Windows Activation Service (WAS) no Windows Server 2008 |
Protocolo de transporte | TCP, Named pipes (somente se o cliente e o serviço estiverem na mesma máquina) |
Protocolo de mensageria | SOAP + Binary |
Autenticação | Credencial WindowsCertificado X.509 se for necessário validar a aplicação cliente (utilizado em DMZ) |
Autorização | Credencial WindowsCertificado X.509 se for necessário validar a aplicação cliente (utilizado em DMZ) |
Segurança da transmissão | Chaves geradas pela crecendial WindowsCertificado X.509 se for necessário validar a aplicação cliente (utilizado em DMZ) |
Mensagens Enfileiradas
O uso de um modelo de mensagens assíncrono facilita a comunicação entre sistemas através de um baixo acoplamento, tornando possível a execução de processos de longa duração sem a necessidade da espera de um retorno. O WCF utiliza o Microsoft Message Queuing (MSMQ) para possibilitar este tipo de comunicação, garantindo a entrega de mensagens assíncronas até mesmo com a possibilidade da interrupção da comunicação entre o cliente e o serviço.
Implementação
As características de implementação das mensagens enfileiradas são:
Característica | Descrição |
Hospedagem | Windows NT Service no Windows Server 2003, Windows Activation Service (WAS) no Windows Server 2008 |
Protocolo de transporte | MSMQ (nativo, SOAP Reliable Messaging Protocol - SRMP, SOAP Reliable Messaging Protocol Secure - SRMPS) |
Protocolo de mensageria | SOAP + Binary |
Autenticação da fila | Certificado X.509 |
Autorização da fila | Certificado X.509 |
Proteção da fila | Certificado X.509 |
Autenticação da mensagem | Certificado X.509 |
Autorização da mensagem | Certificado X.509 |
Proteção da mensagem | Certificado X.509 |
Espero que este post tenha ajudado a esclarecer um pouco sobre as possibilidades de uso do WCF.
Não esqueça de deixar o seu comentário.
[]'s
Rafael
Comments
- Anonymous
March 04, 2009
Olá pessoal, no meu último post iniciei uma série sobre como criar um serviço WCF, agora vou falar um