Compartilhar via


Resolvedor peer

Para se conectar a uma malha, um nó par requer os endereços IP de outros nós. Os endereços IP são obtidos entrando em contato com um serviço de resolvedor, que usa a ID da malha e retorna uma lista de endereços correspondentes a nós registrados com essa ID de malha específica. O resolvedor mantém uma lista de endereços registrados, que ele cria com cada nó no registro de malha com o serviço.

Você pode especificar qual serviço PeerResolver usar por meio da propriedade Resolver do NetPeerTcpBinding.

Resolvedores de pares compatíveis

O Canal par permite dois tipos de resolvedores: PNRP (Protocolo de Resolução de Nomes de Par) e serviços de resolvedor personalizados.

Por padrão, o Canal par usa o serviço de resolvedor de pares PNRP para 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 WCF (Windows Communication Foundation) oferece um serviço de descoberta alternativo baseado em servidor: o CustomPeerResolverService. Você também pode definir explicitamente um serviço de resolvedor personalizado escrevendo uma classe que implementa a interface IPeerResolverContract.

Peer Name Resolution Protocol (PNRP)

O PNRP, o resolvedor padrão do Windows Vista, é um serviço de resolvedor de nomes distribuído e sem servidor. O PNRP também pode ser usado no Windows XP SP2 com a instalação do Pacote de Rede Avançado. Os dois clientes que executam a mesma versão do PNRP podem se localizar usando esse protocolo, desde que atendam a determinadas condições (como a falta de um firewall corporativo intervindo). Observe que a versão do PNRP fornecida com o Windows Vista é mais recente do que a incluída no Pacote de Rede Avançado. Verifique a Central de Download da Microsoft para obter atualizações no PNRP para Windows XP SP2.

Serviços de resolvedor personalizados

Quando o serviço PNRP está indisponível ou você quer ter controle completo sobre a formatação de malha, poderá usar um serviço de resolvedor personalizado baseado em servidor. Você pode definir explicitamente esse serviço escrevendo uma classe de resolvedor que implementa a interface IPeerResolverContract ou usando a implementação padrão pronta, CustomPeerResolverService.

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

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

Observação

Ao usar redes locais e improvisadas com um resolvedor personalizado, recomendamos que os aplicativos que usam ou apoiam redes vinculadas locais ou improvisadas incluam lógica que seleciona um único endereço de link local a ser usado ao se conectar. Isso evita possíveis confusões causadas por computadores com vários endereços locais de link. De acordo com isso, o Canal par só permite o uso de um único endereço local de link em qualquer dado momento. Você pode especificar esse endereço com a propriedade ListenIpAddress no NetPeerTcpBinding.

Para obter uma demonstração de como implementar um resolvedor personalizado, consulte Resolvedor de par personalizado do Canal par.

Nesta seção

Sobre o CustomPeerResolverService: registros de clientes

Confira também