Cenários de implementação de serviços com WCF - Parte 3 : Serviços para Web 2.0
Serviços para Web 2.0
Olá pessoal, tudo certo?
Vamos continuar nossa discussão sobre cenários de utilização de WCF. Hoje vamos falar sobre serviços para Web 2.0.
O modelo Web 2.0 tornou-se popular devido uma série de recursos como wikis, mashups, a colaboração entre usuários e comunidades, folksonomias, composições de funcionalidades, etc. Além desses recursos, as aplicações RIA - Rich Internet Application, que envolvem mashups, scripts AJAX, Silverlight e outras tecnologias recentes, trouxeram para a Web o poder de interfaces com mídia e conteúdo interativo. Como ponto principal nesse cenário, o cliente Web 2.0 precisa de uma abordagem que diminua o número de interações com o servidor, o que é obtido através de protocolos específicos para a troca de mensagens.
Assim, entre os protocolos de mensagens para clientes Web 2.0 citamos:
Protocolo | Descrição |
POX | Um protocolo de mensagens XML simplificado, sem o formalismo do protocolo SOAP. |
REST | Uma alternativa ao protocolo SOAP, baseado em POX - Plain Old XML. Fornece um estilo de arquitetua que permite o acesso de a recursos através da internet. |
JSON | JavaScript Object Notation é um formato de mensagens leve, que é uma alternativa ao XML. É muito útil em combinação com clientes JavaScript, para a troca de dados com serviços com um overhead de processamento e um custo de transferência menor quando comparado com o XML. |
RSS/ATOM | Really Simple Syndication e ATOM são formatos de sindicalização baseados em XML. São especialmente interessantes para o compartilhamento de dados atualizados em feeds ou blogs. |
De fato, é possível construir serviços em WCF .NET 3.0 que suportam os protocolos acima, em serviços para Web 2.0. Usando o .NET 3.5, o WCF suporta nativamente esses protocolos, o que fornece um ganho adicional de produtividade e configuração para o desenvolvimento de nossos serviços.
A seguir, vamos olhar algumas características de cada combinação de serviços e protocolos de mensagens para a Web 2.0, considerando especificamente POX, REST, JSON, RSS e ATOM.
Características de serviços para Web 2.0 usando POX e REST:
Uma boa discussão com exemplos usando POX e REST é dada no artigo a seguir, veja:
POX and REST
Ref.: https://msdn.microsoft.com/en-us/library/aa395208.aspx
No link acima, você encontra exempos de serviços com interfaces POX e REST, assim como detalhes da interface e comportamentos no WCF. Para esse tipo de implementação, a tabela a seguir apresenta algumas das principais características do cenário.
Característica | Descrição |
Hosting |
IIS 6 sobre Windows Server 2003, IIS 7 sobre Windows Server 2008 |
Protocolo de Transporte |
HTTP ou HTTPS (SSL) |
Protocolo de Mensagens |
XML |
Autenticação |
Basic Authentication (com usuário e senha) é uma escolha típica. Porém, segurança sobre certificados e integração Windows são também suportados. |
Autorização |
Um armazenamento de credenciais é normalmente indicado, desde que credenciais Windows sejam necessárias. |
Segurança |
Se necessário, SSL é suportado. |
Assim, quando observamos as interações com serviços POX temos:
Do mesmo modo, quando observamos as interações com serviços REST temos:
Note que para serviços REST, os verbos HTTP (get, post, put e delete) são utilizados, permitindo a construção das chamadas arquiteturas RESTfull, muito interessantes tanto para a exploração de dados via internet, como para a construção de clientes RIA simplificados e de grande flexibilidade no consumo de serviços diversos.
Características de serviços para Web 2.0 usando JSON:
Característica | Descrição |
Hosting |
IIS 6 sobre Windows Server 2003, IIS 7 sobre Windows Server 2008 |
Protocolo de Transporte |
HTTP ou HTTPS (SSL) |
Protocolo de Mensagens |
JSON |
Autenticação |
Basic Authentication (com usuário e senha) é uma escolha típica. Porém, segurança sobre certificados e integração Windows são também suportados. |
Autorização |
Um armazenamento de credenciais é normalmente indicado, desde que credenciais Windows sejam necessárias. |
Segurança |
Se necessário, SSL é suportado. |
Uma implementação comum para o consumo de serviços JSON, SOAP e XML é o uso do objeto XmlHttpRequest. Ele permite um desenvolvimento flexível para esses vários formatos, facilitando o consumo na ponta cliente. A figura a seguir ilustra o cenário:
Uma boa referência de artigo com exemplos de serviços usando JSON você tem no link abaixo:
Weakly-typed JSON Serialization Sample
Ref.: https://msdn.microsoft.com/en-us/library/bb943471.aspx
Características de serviços para Web 2.0 usando RSS e ATOM:
Característica | Descrição |
Hosting |
IIS 6 sobre Windows Server 2003, IIS 7 sobre Windows Server 2008 |
Protocolo de Transporte |
HTTP ou HTTPS (SSL) |
Protocolo de Mensagens |
XML ou JSON |
Autenticação |
Basic Authentication (com usuário e senha) é uma escolha típica. Porém, segurança sobre certificados e integração Windows são também suportados. |
Autorização |
Um armazenamento de credenciais é normalmente indicado, desde que credenciais Windows sejam necessárias. |
Segurança |
Se necessário, SSL é suportado. |
Uma pergunta frequente para cenários de serviços para Web 2.0 é se podemos usar contratos para POX/REST, JSON e sindicalização (RSS/ATOM) no mesmo serviço WCF. Sim, é possível. Para cada contrato implementado, suportamos um conjunto de operações específicas, ainda que todas elas implementadas pelo mesmo serviço. Vale conferir mais sobre WebHTTPBinding e WebHTTPBehavior. Veja:
WCF Web Programming Object Model
Ref.: https://msdn.microsoft.com/en-us/library/bb412204.aspx
Assim, o objetivo deste post foi apresentar alguns protocolos de mensagens envolvidos com cenários Web 2.0, enquanto utilizamos o WCF para nossas implementações.
No próximo post, vamos falar de um novo cenário: serviços para serviços para intranets. Fiquem ligados!
Por enquanto é só! Até o próximo post :)
Waldemir.