Peer Channel Custom Peer Resolver

Cet exemple montre comment implémenter un programme de résolution personnalisé pouvant être utilisé avec les applications de canal homologue.

Il est basé sur l'exemple Self-Host. Par ailleurs, consultez Getting Started, exemple pour une vue d'ensemble détaillée de Windows Communication Foundation (WCF).

ms751466.note(fr-fr,VS.90).gifRemarque :
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent à la fin de cette rubrique.

Concepts clés :

Un canal homologue est une technologie de communication P2P (peer-to-peer) pluripartite de WCF. Elle fournit un canal de communication P2P basé sur des messages sécurisé et évolutif pour les développeurs d'applications. Un exemple courant d'application pluripartite pouvant bénéficier du canal homologue concerne les applications collaboratives telles que la conversation, dans le cadre de laquelle un groupe de personnes discutent les unes avec les autres d'égal à égal sans qu'un serveur soit nécessaire. Un canal homologue active à la fois des scénarios consommateur et d'entreprise autour de la collaboration P2P, la distribution de contenu, l'équilibrage de charge et le traitement distribué.

Le canal homologue introduit les nouveaux concepts suivants :

  • Une maille est une collection nommée (un graphique interconnecté) de nœuds homologues qui peuvent communiquer entre eux et qui sont identifiés par un ID de maille unique.

    ms751466.note(fr-fr,VS.90).gifRemarque :
    Les nœuds actifs dans la maille publient leur nom de maille afin de permettre aux autres de les identifier. Une maille présente les caractéristiques suivantes : elle s'ajuste aux modifications apportées à l'appartenance, dispose d'une connectivité résiliente dans un environnement où les nœuds rejoignent et quittent constamment la maille, et est optimisée de manière dynamique en fonction des modèles de trafic.

  • Un nœud homologue est un point de terminaison dans une maille. Une application peut disposer de plusieurs nœuds homologues participant à différentes mailles.

  • Un canal homologue est un canal construit à l'aide de la liaison netPeerTcpBinding ou d'une liaison personnalisée qui utilise PeerTransportBindingElement.

  • Un programme de résolution d'homologue est chargé de résoudre un ID de maille aux adresses de point de terminaison des nœuds dans la maille. Lorsqu'un nœud d'homologue est ouvert, il utilise un programme de résolution d'homologue pour résoudre l'ID de maille à une liste d'adresses d'autres nœuds d'homologues dans la maille. Cela crée une maille de nœuds interconnectés permettant de propager des messages sur l'ensemble de la maille.

L'exemple montre comment écrire un service Web de programme de résolution d'homologue personnalisé et comment auto-héberger le service à partir d'un fichier exécutable. Le client n'est pas une application autonome, mais il est compilé avec les d'autres applications de canal homologue qui utilisent un programme de résolution d'homologue personnalisé. Pour découvrir comment les applications de canal homologue utilisent le côté client d'un programme de résolution d'homologue personnalisé, consultez Peer Channel Chat.

Un service de programme de résolution d'homologue personnalisé est un service singleton qui met en cache les ID de maille et les adresses de point de terminaison dans un dictionnaire, et répond aux demandes d'inscription, d'annulation d'inscription, etc. des clients.

Les ID de maille sont supposés être uniques. Si plusieurs applications utilisent le même programme de résolution, elles doivent choisir des ID de maille différents afin d'éviter tout conflit.

L'exemple implémente une fonction principale statique pour créer un ServiceHost pour le type CustomPeerResolverService donné. L'hôte est également chargé de fournir une adresse de base à l'hôte de service, qui a été configuré dans les paramètres d'application du fichier de configuration (App.config).

<appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress"
     value=" net.tcp://localhost/servicemodelsamples/peerResolverService" />
</appSettings>

Le service implémente le contrat, qui expose les opérations RegisterMeshId, UnregisterMeshId et ResolveMeshId. Le client adresse des demandes synchrones à une opération donnée, et le service répond avec le résultat.

Le service expose un point de terminaison unique permettant de communiquer avec le service qui est défini à l'aide du fichier de configuration (App.config). La liaison est configurée avec un NetTcpBinding standard, qui fournit la communication TCP.

<services>
    <service 
       service="Microsoft.ServiceModel.Samples. CustomPeerResolverService">
       <!-- use base address provided by the host -->
       <endpoint address=""
            binding=" netTcpBinding "
             contract="Microsoft.ServiceModel.Samples. ICustomPeerResolver" />
    </service>
</services>

Tel qu'il est configuré, le service est accessible à l'adresse net.tcp://localhost/servicemodelsamples/peerResolverservice par un client sur le même ordinateur. Pour que les clients installés sur des ordinateurs distants puissent accéder au service, un nom de domaine complet doit être spécifié au lieu de localhost.

Lorsque vous exécutez l'exemple, les messages d''inscription et d'annulation d'inscription d'opération s'affichent dans la fenêtre de console du service. Si plusieurs inscriptions sont effectuées pour le même ID de maille, seule la première inscription et la dernière annulation d'inscription provoquent l'affichage des messages dans la fenêtre de console. Appuyez sur ENTER dans la fenêtre de console pour arrêter le service (après avoir arrêté les applications de canal homologue à l'aide de ce service).

ms751466.note(fr-fr,VS.90).gifRemarque :
Cet exemple ne gère pas actuellement toutes les exceptions possibles que l'infrastructure peut lever. Si vous utilisez ces exemples dans un environnement commercial ou de production, conformez-vous aux meilleures pratiques de gestion des exceptions.

Pour configurer, générer et exécuter l'exemple

  1. Assurez-vous d'avoir effectué la procédure indiquée dans la section Procédure d'installation unique pour les exemples Windows Communication Foundation.

  2. Pour générer l'édition C#, C++ ou Visual Basic .NET de la solution, suivez les instructions indiquées dans Génération des exemples Windows Communication Foundation.

  3. Pour exécuter l'exemple dans une configuration à un ou plusieurs ordinateurs, suivez les instructions indiquées dans Exécution des exemples Windows Communication Foundation. (L'exemple d'application Peer Channel Chat inclut également sa propre implémentation du programme de résolution d'homologue personnalisé. Suivez les instructions fournies sur la page Peer Channel Chat pour générer et exécuter les instances du programme de résolution personnalisé et de Peer Chat.)

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.