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:

image

Do mesmo modo, quando observamos as interações com serviços REST temos:

image
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:

image

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.