Recenti studi hanno messo in risalto il fatto che i modelli P2P e Grid condividono molte caratteristiche e che una sinergia tra i due campi di ricerca porterebbe a notevoli progressi in entrambe le direzioni. Sia il campo P2P che quello della Grid offrono paradigmi per sviluppare sistemi distribuiti efficienti e varie applicazioni. Come ben illustrato nell'articolo "Toward a Synergy Between P2P and Grids" di Domenico Talia e di Paolo Trunfio [51], P2P e grid sono modelli di calcolo distribuito che permettono una collaborazione decentralizzata di vari computer all'interno di reti in cui vengono offerti e usati dei servizi. La classe P2P è formata da un insieme di applicazioni e di sistemi autonomi che gestiscono e utilizzano risorse distribuite sui vari host di Internet; una griglia è una piattaforma distribuita geograficamente composta da un insieme di macchine eterogenee a cui gli utenti possono accedere tramite una singola interfaccia. In buona sostanza quindi le grid sono dei sistemi P2P: i nodi delle grid sono sempre più numerosi e nonostante vi siano ancora molte applicazioni basate su servizi di tipo gerarchico, queste funzionalità possono essere decentralizzate in modo da diminuire i bottleneck. Il modello P2P può essere utilizzato per garantire la scalabilità della grid e per implementarvi sistemi decentralizzati non gerarchici.
Nell'articolo vengono analizzati i punti in comune e le differenze tra i due sistemi e vengono inoltre illustrate possibili aree che possono risultare dalla sinergia di questi due campi di ricerca [50], [51], [53]: - Sicurezza: questo è un tema centrale nelle Grid in quanto l'accesso alle varie risorse deve essere sempre controllato tramite meccanismi
di autenticazione, autorizzazione e di integrità. Questi meccanismi sono pensati per "comunità chiuse" e quindi non garantiscono anonimato né delle risorse né tantomeno degli utenti.
I sistemi P2P sono pensati per "comunità aperte" dove gli scopi degli utenti sono molto più generici (ad esempio reperire file musicali) rispetto a quelli molto più specifici delle Grid (ad esempio simulazioni in campo fisico). Per questi motivi i meccanismi di sicurezza nel P2P sono molto più laschi, non vi sono sistemi di autenticazione e autorizzazione, e quindi in molti casi viene assicurato l'anonimato. - Connettività: le Grid in genere sono formate da macchine potenti connesse da reti ad alta banda ed il numero di nodi accessibili è abbastanza basso in quanto esiste un rigido sistema di accounting. Al contrario i sistemi P2P sono composti da comuni Pc che non sono connessi permanentemente alla rete ma sono accessibili per tempi limitati. Il numero di nodi reperibili è molto più grande rispetto a quello di una grid in cui è più rigido il meccanismo di aggiunta di nuovi nodi. Il sistema Grid potrebbe quindi beneficiare di un meccanismo più flessibile di connettività prendendo spunto da quelli usati dai sistemi P2P.
- Accesso alle risorse: nelle Grid l'accesso remoto alle risorse o l'esecuzione remota di job è regolato da meccanismi rigidi che garantiscono la condivisione e lo spostamento sicuro delle risorse. I sistemi P2P non mettono a disposizione meccanismi per la memorizzazione delle risorse ma solo protocolli per la condivisione e lo scambio di dati tra i vari nodi.
- Discovery delle risorse e della presenza dei nodi: nei sistemi Grid il discovery delle risorse è basato essenzialmente su modelli gerarchici e centralizzati (es. Globus Toolkit). Il discovery delle risorse include in parte anche quello dei nodi mentre nel caso dei sistemi P2P ogni nodo notifica periodicamente la propria presenza nella rete.
distribuito. Per realizzare questo meccanismo si potrebbero usare algoritmi decentralizzati di tipo P2P in modo da evitare punti di centralizzazione che possono essere molto critici.
Gli autori nelle conclusioni dichiarano che il modello P2P porterebbe dei miglioramenti ai sistemi Grid per implementare tool e servizi di griglia e per sviluppare applicazioni che si coordinano ed accedono a servizi e risorse remote. Questa tecnica potrebbe essere applicata al servizio di discovery MDS di Globus: attualmente la griglia è vista come una collezione di sottogriglie appartenenti ad organizzazioni diverse quindi si potrebbe pensare il Globus MDS come un servizio su larga scala adottando un modello di rete super-peer. Come descritto in "Designing a Super-Peer Network" di Beverly Yang e Hector Garcia- Molina [54], una rete super-peer è formata da alcuni nodi (super- peer) che hanno funzionalità di server centralizzati verso un certo insieme di nodi client. I nodi client inviano query ai super-peer ed attendono risposte sempre dagli stessi. Inoltre i super-peer sono connessi tra di loro e si occupano quindi dell'instradamento dei messaggi attraverso le loro sottoreti virtuali (quelle formate da loro stessi e dai loro client). I sistemi P2P puri come Gnutella hanno come punto debole il metodo di ricerca delle risorse che viene implementato tramite il flooding di messaggi nella rete e la banda limitata di alcuni peer che provoca dei bottleneck. Per limitare queste inefficienze si può sfruttare l'eterogeneità della rete assegnando maggiori responsabilità ai nodi più dotati (quelli che hanno ad esempio banda migliore). Nei sistemi P2P centralizzati la ricerca delle risorse è più efficiente, ma il costo della memorizzazione degli indici delle risorse è tutto a carico del singolo nodo server ed è quindi molto alto; nei sistemi ibridi come Napster la ricerca avviene tramite directory centralizzate mentre il download avviene in modo P2P: questi sistemi sono più vulnerabili verso attacchi mirati e un eventuale danno ad uno dei server può compromettere il
funzionamento di tutto il sistema. Il modello super-peer presenta alcuni elementi del modello puro e alcuni di quello ibrido: combina l'efficienza dovuta alla centralizzazione del modello client-server l'autonomia, il bilanciamento del carico e la robustezza per le ricerche del modello completamente distribuito.