Ricerca di un servizio in una rete P2P

sabato 04 giugno 2011 - 16.36
Tag Elenco Tags  C#  |  .NET 4.0  |  Visual Studio 2010

enzom83 Profilo | Newbie

Ciao!

Ho letto un po' di documentazione relativa alla creazione di una rete peer-to-peer utilizzando WCF, in particolare ho letto come funzionano il PNRP e il Peer Channel. Da queste letture ho capito che, usando il Peer Channel, sono in grado di creare e gestire una rete P2P parzialmente connessa senza dovermi occupare dei dettagli implementativi: una volta creata la rete, ovvero una volta che un certo numero di nodi si è aggregato alla mesh, ogni nodo può inviare messaggi, sicuro che questi vengano recapitati a tutti i nodi della rete (con la tecnica del flooding).

Nell'applicazione che devo realizzare (usando WCF e C# 4), la rete deve essere parzialmente connessa e ogni nodo deve fornire un certo insieme di servizi (che mette a disposizione degli altri nodi). Inoltre, ogni nodo deve essere in grado di abilitare/disabilitare uno o più servizi, rendendone quindi disponibile solo un sottoinsieme. In un tipico scenario di funzionamento, mi immagino che un nodo, nel momento in cui si aggrega alla rete connettendosi con alcuni nodi, possa effettuare una ricerca di un determinato servizio per sapere quali nodi lo forniscono.

In base alle suddette specifiche, penso che il Peer Channel possa essere adatto allo scopo: dopo che un nodo si aggrega alla rete, sarebbe sufficiente che invii un messaggio di richiesta contenente il nome del servizio di cui ha bisogno; grazie al Peer Channel, il messaggio sarebbe ricevuto da tutti i nodi (anche quelli con cui non è direttamente connesso); ogni altro nodo, ricevuto il messaggio di richiesta, verifica se il servizio richiesto è abilitato e gli risponde... Ho capito bene?

Grazie anticipatamente!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5