Resolvedores de pares

Para se conectar a uma malha, um nó de mesmo nível requer os endereços IP de outros nós. Os endereços IP são obtidos entrando em contato com um serviço de resolução, que usa o ID de malha e retorna uma lista de endereços correspondentes aos nós registrados com esse ID de malha específico. O resolvedor mantém uma lista de endereços registrados, que ele cria fazendo com que cada nó na malha registre com o serviço.

Você pode especificar qual serviço PeerResolver usar através da Resolver propriedade do NetPeerTcpBinding.

Resolvedores de pares suportados

O Peer Channel suporta dois tipos de resolvedores: PNRP (Peer Name Resolution Protocol) e serviços de resolução personalizados.

Por padrão, o Peer Channel usa o serviço de resolução de pares PNRP para a descoberta de pares e vizinhos na malha. Para situações/plataformas em que o PNRP não está disponível ou não é viável, o Windows Communication Foundation (WCF) fornece um serviço de descoberta alternativo baseado em servidor - o CustomPeerResolverService. Você também pode definir explicitamente um serviço de resolução personalizado escrevendo uma classe que implementa a IPeerResolverContract interface.

Protocolo PNRP (Peer Name Resolution Protocol)

PNRP, o resolvedor padrão para o Windows Vista, é um serviço de resolução de nomes distribuído e sem servidor. O PNRP também pode ser usado no Windows XP SP2 instalando o Advanced Networking Pack. Quaisquer dois clientes que executam a mesma versão do PNRP podem localizar um ao outro usando este protocolo, desde que atendam a certas condições (como a falta de um firewall corporativo interveniente). Observe que a versão do PNRP que acompanha o Windows Vista é mais recente do que a versão incluída no Advanced Networking Pack. Consulte o Centro de Download da Microsoft para atualizações do PNRP para Windows XP SP2.

Serviços de resolução personalizados

Quando o serviço PNRP não estiver disponível ou você quiser controle total sobre a modelagem de malha, poderá usar um serviço de resolução personalizado baseado em servidor. Você pode definir explicitamente esse serviço escrevendo uma classe de resolvedor implementando a IPeerResolverContract interface ou usando a implementação padrão da caixa de entrada, CustomPeerResolverService.

Sob a implementação padrão do serviço, os registros do cliente expiram após um determinado período de tempo se o cliente não atualizar explicitamente o registro. Os clientes que usam o serviço de resolução devem estar cientes do limite superior na latência cliente-servidor para atualizar com êxito os registros a tempo. Isso envolve a escolha de um tempo limite de atualização apropriado (RefreshInterval) no serviço de resolução. (Para obter mais informações, consulte Dentro do CustomPeerResolverService: Registros de cliente.)

O gravador do aplicativo também deve considerar a proteção da conexão entre os clientes e o serviço de resolução personalizado. Você pode fazer isso usando as configurações de segurança que os NetTcpBinding clientes usam para entrar em contato com o serviço de resolução. Você deve especificar credenciais (se usadas) no ChannelFactory usado para criar Canal de Par. Essas credenciais são passadas para o ChannelFactory usado para criar canais para o resolvedor personalizado.

Nota

Ao usar redes locais e improvisadas com um resolvedor personalizado, é altamente recomendável que os aplicativos que usam ou suportam redes de link local ou improvisadas incluam uma lógica que selecione um único endereço de link local para usar ao se conectar. Isso evita qualquer confusão potencialmente causada por computadores com vários endereços de link local. De acordo com isso, o Peer Channel só suporta o uso de um único endereço de link local a qualquer momento. Você pode especificar este endereço com a ListenIpAddress propriedade no NetPeerTcpBinding.

Para obter uma demonstração de como implementar um resolvedor personalizado, consulte Peer Channel Custom Peer Resolver.

Nesta Secção

Dentro do CustomPeerResolverService: Registros de cliente

Consulte também