Atenção: esse artigo tem uma palestra complementar. Clique e assista!

Do que se trata o artigo

Neste artigo veremos como desenvolver aplicações peer to peer, utilizando as tecnologias: Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF) e LINQ to XML.

Para que serve

Este artigo serve para entendermos como criar comunicação entre sistemas, sem a necessidade de um servidor, através de aplicação peer to peer.

Em que situação o tema e útil

Sistemas P2P (peer to peer) podem ser utilizados em ambientes corporativos para compartilhar informações, arquivos e aplicações com processamento distribuído. É utilizado também para jogos em rede.

Resumo do DevMan

Neste artigo veremos na prática como é possível criar um aplicativo pearpeer to pearpeer (ponto a ponto) utilizando as mais novas tecnologias da Microsoft, como o Windows

Communication Foundation (WCF), o Windows Presentation Foundation (WPF) e oLinq to XML.

Você certamente já utilizou algum software baseado em comunicações Peer to Peer (P2P), ou ponto a ponto. Uma rede com comunicação puramente P2P ocorre quando todas as máquinas da rede se comunicam entre si, hora fazendo o papel de cliente, hora de servidor. Neste tipo de rede não existe a necessidade de um servidor central, podendo ser uma grande vantagem para diversos tipos de aplicações. Existem também as redes P2P hibridas que possuem um servidor central responsável por rastrear e gerenciar todos os demais nós da rede (clientes).

Um dos principais problemas de “pirataria” na internet é gerado por softwares utilizando P2P para compartilhar arquivos. Redes e programas como Napster, Kazaa, Gnutella, Torents, eDonkey, eMule entre outros, já foram foco de inúmeras discussões e até casos judiciais. Diferente dos sites de download, a grande vantagem de usar uma rede P2P neste caso é não depender de um único servidor (apesar de muitas destas redes usarem o modelo hibrido). Mesmo com alguns servidores, o custo cai consideravelmente, e permite uma escala muito maior, seja em termos de banda, processamento e compartilhamento de arquivos.

Além de compartilhamento de arquivo, softwares P2P possuem uma utilidade em comunicação, seja por mensagens instantâneas, seja por mensagens texto ou voz sobre IP (VOIP). Na Figura 1 temos um modelo simplificado da rede P2P do Skype, aplicativo de comunicação idealizado pela mesma organização do Kazaa. A rede p2p do Skype talvez seja uma das mais estudadas hoje em dia, principalmente por utilizar super nós e possuir uma grande eficiência. Note na Figura 01 que existe um servidor, responsável pela autenticação dos usuários, alguns super nós e outros hosts comuns.

Figura 1: Modelo básico da Rede P2P do Skype

Antes de colocar a mão na massa, vejamos o que significa cada sigla das sopas de letrinhas, começando com o que é o Windows Communication Foundation (WCF) e como podemos utilizá-lo para criar uma rede P2P.

Windows Communication Foundation (WCF).

O WCF foi introduzido na plataforma .NET na versão 3.0 e torna a comunicação em aplicações distribuídas mais fáceis de serem desenvolvidas, tendo facilidades como segurança, diferentes protocolos de envio, melhorias de desempenho de comunicação, integração multi-plataformas entre outras. A idéia geral do WCF é centralizar os principais meios de comunicação entre sistemas das mais diversas plataformas. Além de serviços baseados no SOAP, o WCF permite desenvolvimento de serviços REST, Peer to Peer entre outros.

O WCF baseia-se no “ABC”, sendo:

"A" à (Address) Endereço onde está o serviço;

"B" à (Binding) Modo como é feita a comunicação com o serviço;

"C" à (Contract) O que o serviço é capaz de fornecer.

Cada item do ABC trabalha de forma independente. Um contrato pode ter inúmeros bindings e um binding pode suportar inumeros contratos. Um serviço pode ter inúmeros "endpoints" ao mesmo tempo. Mais para frente veremos como implementar isso no sistema, e teremos uma noção melhor de seus significados práticos.

Windows Presentation Foundation (WPF).

O Windows Presentation Foundation (WPF), assim como o WCF, foi introduzido na versão 3.0 da plataforma .Net. Utiliza uma linguagem de markup XAML para desenvolvimento de aplicações ricas, baseando-se na estrutura XML. Com o WPF é possível criar interfaces com um apelo visual muito grande, e facilita muito a criação de gráficos, animação, vídeo entre outros. Controles com uma grande capacidade de customização gráfica estão disponíveis pelo WPF.

O Silverlight é a versão do WPF para a Web, e também utiliza XAML para marcações da sua interface gráfica. Ambos podem utilizar-se de softwares como o Blend Expression, para a criação de interfaces gráficas. Neste artigo montaremos toda a interface gráfica utilizando o WPF.

...
Quer ler esse conteúdo completo? Tenha acesso completo