Riduzione del Traffico nei Sistemi P2P: un Approccio Semantico
Transcript
Riduzione del Traffico nei Sistemi P2P: un Approccio Semantico
Riduzione del Traffico nei Sistemi P2P: un Approccio Semantico Francesco Buccafurri,? Gianluca Lax e Simona Rombo DIMET, Università degli Studi Mediterranea di Reggio Calabria Via Graziella, Località Feo di Vito, 89060 Reggio Calabria, Italy [email protected], [email protected], [email protected] Sommario Nei sistemi P2P un serio problema che ne limita la scalabilità è l’esplosione di traffico dovuto al fatto che ogni peer propaga le query a tutto l’insieme dei peer ad esso noti. In questo lavoro affrontiamo tale problema proponendo una strategia per ridurre il numero di peer a cui propagare le query selezionando quei peer verso i quali l’aspettativa è alta. L’innovatività della proposta sta nel fatto che tale aspettativa non è solo legata a proprietà di similarità tra ontologie dei peer o verso la query, ma tiene conto di proprietà globali che modellano l’interazione tra l’utente e l’intera comunità dei peer. 1 Introduzione Con il termine peer-to-peer ci riferiamo a quei sistemi che utilizzano risorse distribuite in maniera autonoma e totalmente decentralizzata. Tali sistemi stanno ricevendo molta attenzione sia nel mondo accademico che in quello industriale. Vengono infatti utilizzati in numerosi campi quali l’analisi demografica, la simulazione, la ricerca di sequenze dei genomi, l’istant messaging, il file mirroring, il file sharing, e altro ancora. In tutti questi ambiti, un problema significativo è la localizzazione dei peer contenenti una data risorsa. L’approccio classico per affrontare tale problema prevede l’utilizzo di uno o più peer allo scopo di indicizzare le risorse. Tale approccio, per quanto abbastanza funzionale, risulta non scalabile in quanto al crescere del numero di risorse deve aumentare il numero di peer utilizzati per indicizzarle. Inoltre, appare non conforme al paradigma dei sistemi P2P che prevede il massimo di parità possibile nei compiti e nel funzionamento dei vari peer. Nei sistemi totalmente distribuiti (in cui tutti i nodi sono “pari”), la localizzazione di una risorsa avviene attraverso una ricerca quasi esaustiva: ogni peer che riceve una richiesta per una risorsa, tenta di soddisfarla con le risorse in possesso, ed, inoltre, la propaga in maniera broadcast ad ogni peer conosciuto in modo da favorire una risposta più completa possibile. E’ da osservare a questo punto che anche se, come appare plausibile, ogni peer ha un limitato numero di peer conosciuti (e cioé direttamente inclusi nei propri contatti), un protocollo come quello descritto sopra, può facilmente determinare query che si propagano per tempi estremamente lunghi o che ciclino indefinitamente. ? Autore di riferimento 2 Francesco Buccafurri, Gianluca Lax e Simona Rombo Per ovviare a questo problema è certamente possibile utilizzare adeguati accorgimenti basati su time-out e sulla memorizzazione dei peer attraversati dalla query. Tuttavia, la crescita esponenziale di messaggi determinata dal passaggio da un peer all’altro, e i conseguenti seri problemi di banda e di scalabilità non sono attualmente risolti adeguatamente. Il nostro lavoro propone una soluzione al precedente problema, che si basa sulla restrizione, da parte di ogni peer, dell’insieme dei peer a cui sottomettere (o propagare) le query. L’approccio è strutturale e semantico assieme, in quanto tiene conto della somiglianza dei peer in termini di contenuti e struttura (proprietà che viene chiamata similarità), ma anche di una proprietá semantica globale, detta aspettativa. Per dare l’intuizione di quest’ultima nozione, si consideri il caso in cui un peer P2 , pur non presentando elevata similaritá con un peer P1 , dimostri la sua utilitá per P1 , rispondendo positivamente a query inviate originariamente da P1 . In questo caso è quindi necessario poter rappresentare tale informazione che prescinde dal concetto di similarità, e che è invece legata alla dinamica del sistema. Nel nostro modello viene a tal fine introdotta la proprietà di aspettativa di un peer verso un altro peer. Pertanto, nell’esempio citato prima, le risposte positive di P2 , avranno l’effetto di incrementare l’aspettativa di P1 verso P2 . L’utilità di un tale approccio può essere facilmente compresa se si considera che nel momento in cui un utente inizia a modificare i propri interessi, qualsiasi sistema di ausilio alla ricerca di informazioni semplicemente basato sulla similarità tra le ontologie dei peer, non potrà essere efficace. I sistemi di questo tipo presentano cioè una elevata inerzia che tende a vanificare la loro utilità in misura proporzionale alla dinamicità del comportamento dell’utente. La struttura del lavoro è la seguente: nella prossima sezione descriviamo i principali sistemi P2P proposti in letteratura focalizzando l’attenzione sull’approccio utilizzato per la localizzazione delle risorse. Nella Sezione 3 definiamo l’ontologia di un peer e mostriamo come calcolare la similarità tra ontologie. Nella Sezione 4 introduciamo la nozione di aspettativa e definiamo il sistema lineare che permette di calcolarla. Nella Sezione 5 illustriamo i parametri del sistema e l’adattatività del sistema. Un esempio verrà fornito nella Sezione 6. Infine trarremo le conclusioni nella Sezione 7. 2 Lavori Correlati La prima applicazione a evidenziare le potenzialità della tecnologia P2P è stata Napster [8] che utilizzava un server per indicizzare le risorse condivise. Tale approccio centralizzato permetteva di ottenere risposte in tempi rapidi riguardo alla localizzazione di una determinata risorsa. In breve tempo, l’elevato numero di utilizzatori di Napster portò al collasso del server, a causa dell’enormità di richieste concentrate in un unico calcolatore. Un miglioramento a Napster si ebbe con la creazione di alcuni applicativi, quali Kazaa [5] e Morpheus [7], basati sull’utilizzo di “super-peer” per memorizzare gli indici delle risorse. Tali super-peer sono dei peer che soddisfano dei vincoli sulla banda e sulle risorse hardware disponibili. Appare chiaro che le Riduzione del Traffico nei Sistemi P2P: un Approccio Semantico 3 performance del sistema dipendono strettamente dal numero di super-peer disponibili. Ma non tutti gli utenti possiedono un calcolatore in grado di soddisfare i vincoli per essere utilizzato come super-peer, e fra questi, non tutti sono disposti a cedere buona parte della banda per fornire il servizio di indicizzazione delle risorse, essenziale per la sopravvivenza del sistema. Un problema comune ad entrambi gli approcci precedenti è dato dalla dinamicità del sistema. La frequenza con cui i peer si connettono al sistema è elevata e porta ad avere un notevole traffico dovuto alla necessità di ogni peer che si inserisce nel sistema di comunicare le risorse condivise. Inoltre, anche il tempo di vita dei peer non è deterministico e porta ad avere indici con riferimenti a peer non più connessi al sistema. Gnutella [4] è un sistema P2P totalmente distribuito, in cui un peer che vuole connettersi al sistema deve contattare un peer che già vi appartiene per ottenere un elenco di IP di altri peer, ai quali effettuare richieste. Quando un peer riceve una richiesta per una risorsa la cerca tra quelle disponibili, comunicando al mittente il risultato di tale richiesta, e inoltra la stessa richiesta a tutti i peer di cui conosce l’IP. Gnutella presenta dei tempi di ricerca di gran lunga superiori rispetto a quelli dei sistemi precedentemente citati. Infatti, la mancanza di un server centrale o di super-peer che mantengano degli indici alle risorse condivise dagli utenti obbliga ad effettuare delle ricerche in maniera broadcast, generando un eccessivo utilizzo di banda senza, inoltre, dare sempre la certezza di ottenere la risorsa ricercata. Il sistema Chord [11] sfrutta delle tabelle hash distribuite (DHT) per creare un mapping tra le risorse condivise e i peer del sistema, per cui ogni peer è responsabile dell’indicizzazione di una o più risorse. Ad ogni risorsa r è associata una chiave (in genere il suo nome) e la sua ricerca, nota la chiave, si effettua contattando il peer associato a r, che restituisce l’elenco dei peer che condividono r. La ricerca è effettuata in tempo logaritmico rispetto al numero dei peer appartenenti al sistema. Il limite di tale approccio è che si può effettuare solo la ricerca di risorse di cui si conosce la chiave. Altri sistemi che utilizzano DHT per indicizzare le risorse condivise sono [10], [9], [6]. In [3] viene presentato HELIOS, un sistema P2P totalmente distribuito in grado di gestire la condivisione della conoscenza. Vengono descritte l’ontologia utilizzata per la rappresentazione della conoscenza di ogni peer e la modalità con la quale i peer interagiscono fra loro per permettere la ricerca di informazioni. La ricerca di una risorsa avviene sfruttando il matching tra la query (che segue una predefinita tipologia) e l’ontologia dei peer. In [1] per rendere efficiente la ricerca vengono utilizzate due tipologie di peer: i brokering agents, cioè i peer che gestiscono una visione globale della conoscenza di tutto il sistema, e i query agents, cioè i peer che hanno il compito di ricevere ogni richiesta di informazione e di eseguirla collaborando con i brokering agents. L’originalità del nostro approccio si riconduce essenzialmente al fatto che, a differenza delle proposte sopra citate, vengono utilizzate, oltre a proprietà locali, anche proprietà globali, legate cioè al contesto dei peer in cui un dato peer è inserito ed alla interazione reciproca che ne scaturisce. Da questo punto di vista 4 Francesco Buccafurri, Gianluca Lax e Simona Rombo la nostra proposta può essere messa in relazione con [2], dove viene introdotto il trattamento e l’utilizzo di proprietà globali, differenti da quelle considerate nel presente lavoro, e applicate al caso della cooperazione in sistemi multi-agente. E’ da osservare, inoltre, che l’approccio definito in [2] non è applicabile al caso dei sistemi P2P, ma solo al caso di comunità di agenti ristrette, staticamente determinate, in cui è prevista una agenzia che coordini la cooperazione. In assenza di tale agenzia, come appunto nel caso dei sistemi P2P distribuiti, il carico computazionale sul singolo nodo, previsto per implementare il sistema proposto in [2] non sarebbe sostenibile. In particolare, considerato un cluster di n peer completamente connesso, l’elaborazione prevista dal sistema [2] corrisponderebbe alla risoluzione di n − 1 sistemi lineari di dimensione n − 1, mentre nel nostro caso corrisponde alla risoluzione di un sistema lineare di dimensione n − 1. 3 Ontologia del peer Uno degli aspetti più importanti dei sistemi P2P è la condivisione delle risorse tra i peer. Le risorse sono generalmente file musicali, video, documenti elettronici, o generici dati digitali che l’utente ha creato autonomamente oppure ha prelevato da altri utenti. Ogni utente mette a disposizione degli altri utenti tali dati e, viceversa, può richiedere e accedere a dati che gli altri utenti condividono. E’ verosimile supporre che le richieste di un utente siano strettamente legate ai suoi interessi e, di conseguenza, i suoi interessi siano legati ai dati condivisi. Per questo motivo riuscire a estrapolare gli interessi di un utente, partendo dai dati da lui condivisi, può essere utile per aiutarlo nella ricerca di nuovi dati di potenziale interesse. A tale scopo può risultare proficuo l’utilizzo dell’ontologia del peer, una rappresentazione sintetica dei dati da lui condivisi in grado di evidenziare quelle che sono le sue preferenze. Due sono i problemi che bisogna affrontare: (1) quello di definire un’ontologia in grado di rispecchiare gli interessi del peer e (2) quello di definire una tecnica per calcolare il grado di similarità tra due ontologie e, di conseguenza, una percentuale degli interessi comuni tra due utenti. In letteratura sono state proposte numerose tipologie di ontologia utilizzate nei sistemi peer to peer [3] oppure applicate ad altri contesti ma adattabili, con lievi modifiche, anche al caso dei sistemi P2P [?]. Di seguito descriviamo l’ontologia che abbiamo utilizzato in questo lavoro per la modellazione degli interessi di un utente. E’ opportuno sottolineare che il modello di ontologia che adottiamo in questo lavoro è estremamente semplice. I motivi di tale scelta sono duplici. Da una parte, l’aspetto peculiare della proposta è certamente quello legato alla proprietà di aspettativa (che sarà introdotta più avanti), con la quale ci si pone l’obiettivo di superare i limiti propri dei sistemi che si basano solo sulla somiglianza tra ontologie. Di conseguenza, per motivi di presentazione, abbiamo scelto di introdurre questa nuova proprietà, e di studiarne le sue potenziali utilità, in un contesto il più semplice possibile. D’altra parte, nello scegliere un modello di ontologia essenziale, si dimostra che il nostro approccio può essere valido ed applicabile in maniera generale, cioè anche Riduzione del Traffico nei Sistemi P2P: un Approccio Semantico 5 quando non sono previste ontologie complesse, come per esempio nel caso dei sistemi P2P commerciali. In definitiva, tuttavia, il nostro modello è in una certa misura parametrico rispetto al modello di ontologia e, conseguentemente, rispetto alla nozione di similarità adottati. Pertanto, modelli più complessi di ontologie potrebbero essere facilmente utilizzati nel nostro sistema senza modifiche sostanziali. 3.1 Definizione di Ontologia Nella definizione dell’ontologia utilizzata, sfruttiamo i metadati comunemente associati ad ogni risorsa. Ad esempio, un file musicale può avere i metadati autore, genere, titolo, ognuno dei quali assume un certo valore. Con hM1 , . . . , Mm i denotiamo l’universo (assunto finito) di tutti i possibili metadati. In un peer P , data una coppia metadato-valore (Ml , V ), dove V rappresenta uno dei possibili valori che il metadato Ml può assumere, denotiamo con N umP (Ml , V ) la funzione che restituisce il numero di risorse presenti nel peer P che assumono il valore V in corrispondenza del metadato Ml . Ad esempio, se in un peer vi sono 23 file di genere classico, N um(genere, classico) = 23. Dato un intero positivo s, una (s-)ontologia per il peer P è un insieme di coppie (Ml , V ) tali che V è un valore possibile per il metadato Ml e N umP (Ml , V ) ≥ s. Si noti che s rappresenta un valore di soglia, per il quale in una s−ontologia appaiono solo i valori dei metadati che risultano essere assunti da almeno s risorse. Un esempio di 5-ontologia di un utente appassionato di musica classica è il seguente: (hgenere, classico, 23i, hautore, M ozart, 10i, hautore, Bach, 7i), dove, per chiarezza espositiva, abbiamo rappresentato all’interno delle tuple anche il valore di N umP . Si noti che in questo caso, essendo 23 > 10 + 7, nel peer saranno presenti altri autori, ma per ognuno il numero di occorrenze sarà inferiore a 5. 3.2 Similarità tra Ontologie Dopo avere definito l’ontologia di un peer, descriviamo la nozione di similarità tra ontologie. Essendo le ontologie legate agli interessi dell’utente, è presumibile che peer con ontologie simili siano associati ad utenti con interessi simili, per cui la similarità tra ontologie può essere proficuamente utilizzata per scoprire peer che condividono risorse di potenziale interesse, come verrà mostrato nella prossima sezione. Siano Pi e Pj due peer aventi rispettivamente 0i e Oj come ontologie. La similarità Si,j tra i due peer è definita come: P min(N umPi (Ml ,V ),N umPj (Ml ,V )) P(Ml ,V )∈Oi ∩Oj P Sij = min( (Ml ,V )∈Oi N umPi (Ml ,V ), (Ml ,V )∈Oj N umPj (Ml ,V )) Il numeratore computa il numero di risorse dei due peer aventi valori uguali per metadati uguali, il denominatore, per come è calcolato, normalizza il risultato di modo che la similarità è un valore compreso tra 0 e 1. Un esempio di calcolo di similarità verrà fornito nella Sezione 6. 6 4 Francesco Buccafurri, Gianluca Lax e Simona Rombo Oltre le Similarità: la Nozione di Aspettativa Il sistema P2P proposto è un sistema totalmente decentralizzato in cui viene ridotto, per ciascun peer, il numero dei peer a cui sottomettere la richiesta, per limitare il traffico dovuto al passaggio della query da un peer all’altro e consentire tempi di vita maggiori per le query aumentando in tal modo la probabilità di successo. In altre parole, l’obiettivo che il nostro approccio intende raggiungere è di avere, a parità di numero di peer coinvolti nella query, una frazione maggiore di peer significativi rispetto alla query. Appare chiaro, a questo punto, come sia di fondamentale importanza stabilire un opportuno criterio per la selezione dei peer a cui propagare la query e, a tal fine, la similarità tra due peer assume sicuramente una posizione di rilievo, sebbene non sia, però, l’unico fattore da tenere in considerazione. Sia dato un peer Pi (si consideri dato in tutto il corso della sezione). E’ plausibile ritenere che Pi abbia alta aspettativa verso peer abbastanza simili a se stesso, poichè elevata similarità denota maggiore comunanza di interessi. Tenere in considerazione solo peer simili a Pi porterebbe, però, all’esclusione di peer potenzialmente più efficaci a soddisfarne le richieste quando l’utente sta cambiando i suoi interessi. In tal caso, infatti, Pi cercherà contenuti di genere diverso rispetto a quelli che possiede, e che riflettono ormai interessi passati. Il concetto di aspettativa deve pertanto andare oltre quello di similarità. Cosı̀ come la similarità, possiamo misurare l’aspettativa con un numero tra 0 e 1. Sia Aij l’aspettativa del peer Pi verso il peer Pj . Ciò che intendiamo codificare è che l’aspettativa di Pi verso un certo nodo Pj può essere alta (prossima ad 1) anche se la similarità tra Pi e Pj non è elevata. Cioè, l’aspettativa deve dipendere da un’altra componente. Ma qualsiasi sia l’origine semantica di tale componente, è ragionevole richiedere la seguente proprietà di ”equilibrio” globale: se l’aspettativa verso Pj è alta pur essendo bassa la similarità con Pj , dovrà essere alta la similarità di Pj con altri peer verso cui l’aspettativa di Pi è alta. In altre parole, l’aspettativa verso Pj potrà essere ottenuta combinado la similarità con Pj (componente locale) e l’insieme delle aspettative verso gli altri peer, pesate attraverso la similarità di tali peer verso Pj (componente globale). In accordo con l’approccio cosı̀ descritto, dato un insieme di peer P = {P1 , P2 , . . . , Pn } possiamo definire le aspettative di Pi ∈ / P verso i peer di P , attraverso il seguente sistema lineare: ³ ´ P 1 (∀j ∈ {1, . . . , n}) Aij = αij (βi Sij + (1 − βi ) n−1 (1) k=1...n,k6=j Aik Skj ) dove i coefficienti 0 < αij < 1 e 0 < βi < 1 sono opportuni parametri inizialmente impostati a 1. αij determina lo smorzamento di aspettativa che si produce, come vedremo nella prossima sezione, verso peer che non rispondono positivamente alle query. βi ha il compito di modulare l’importanza che hanno le due componenti (locale e globale). Nella Sezione 5 il ruolo dei due parametri potrà essere compreso in maniera completa in quanto verrà mostrato come tali parametri vengono aggiornati in funzione della dinamica del sistema. Riduzione del Traffico nei Sistemi P2P: un Approccio Semantico 7 Il seguente teorema mostra che, per ogni valore dei parametri αij e βi , esiste un’unica soluzione del sistema (1), e che tale soluzione è una tupla di valori reali compresi tra 0 e 1. Teorema 1 Dato un insieme di coefficienti reali {αij , βi , Sij , Sjk tali che αij ∈ (0, 1), βi ∈ (0, 1), Sij ∈ [0, 1], Sjk ∈ [0, 1], con j ∈ {1, . . . , n} e k ∈ {1, . . . , n} \ {j}}, esiste un’unica tupla S = hAi1 , . . . , Ain i di valori reali appartenenti all’intervallo [0,1] che soddisfa la (1). Dimostrazione Dimostriamo dapprima esistenza ed unicità della soluzione del sistema (1) e, successivamente, che la soluzione è una tupla di valori reali compresi tra 0 e 1. Esistenza e unicità. È sufficiente dimostrare che la matrice M dei coefficienti del sistema lineare (1) ha determinante non nullo. Denotando con mhk = 1 i αih 1−β n−1 Skh il generico elemento di M, dove 0 ≤ mhk < n−1 , la matrice dei coefficienti assume la seguente forma: −1 m12 ... m1n m21 −1 ... m2n M = ... ... ... ... mn1 mn2 ... −1 Supponiamo per assurdo che la matrice M abbia determinante nullo. In tal caso, esiste sicuramente una combinazione lineare delle colonne di M, mediante n coefficienti hh1 , . . . , hn i diversi da zero, uguale al vettore nullo. In particolare, per la k–ma riga si ottiene: P P −hk + r=1...n,r6=k mir hr = 0 ⇒ hk = r=1...n,r6=k mir hr 1 Possiamo maggiorare ciascun termine della sommatoria con n−1 · hr , ottenendo: P 1 hk < n−1 r=1...n−1,r6 h . Moltiplicando per (n-1) ambo i membri e sommando r =k P ad essi hk : n · hk < r=1...n hr Applicando ad ambo i membri la sommatoria per k ∈ {1, . . . , n}: P P P P P n · k=1...n hk < k=1...n r=1...n hr ⇒ n · k=1...n hk < n · r=1...n hr il che è assurdo e questo completa la dimostrazione di esistenza ed unicità della soluzione del sistema (1). Dimostriamo a questo punto che la soluzione è una tupla di valori reali positivi. Aih ≥ 0 ∀h ∈ {1, . . . , n}. Supponiamo per assurdo che nella soluzione di (1) esista qualche aspettativa negativa. In tal caso, anche il minimo di tali valori, che indichiamo con Aim , sarà minore di zero. Riscrivendo la (1) per Aim si ottiene: ³ ´ P 1 Aim = αim βi Sim + (1 − βi ) n−1 k=1...n,k6=m Aik Skm < 0 Poichè Aim è il minimo delle aspettative ed, inoltre, sia αim che le similarità sono compresi tra 0 e 1, vale la seguente catena di diseguaglianze: ³ ´ P 1 Aim ≥ αim βi Sim + (1 − βi ) n−1 A S ≥ βi Sim + (1 − βi )Aim im km k=1...n,k6=m 8 Francesco Buccafurri, Gianluca Lax e Simona Rombo da cui: βi Aim ≥ βi Sim ⇒ Aim ≥ 0. Siamo dunque giunti ad un assurdo e ciò conclude questa parte della dimostrazione. Rimane a questo punto da dimostrare che la soluzione del sistema è una tupla di valori minori o uguali ad 1. Aih ≤ 1 ∀h ∈ {1, . . . , n}. Riscrivendo la (1) per il massimo di tutte le aspettative, che indichiamo con AiM , e avendo già dimostrato che Aih ≥ 0 ∀h ∈ {1, . . . , n}, si ha che AiM è uguale a: αiM (βi SiM +(1−βi ) 1 n−1 X Aik SkM ) ≤ βi +(1−βi ) k=1...n,k6=M 1 n−1 X AiM k=1...n,k6=M da cui: AiM ≤ βi + (1 − βi )AiM ⇒ AiM ≤ 1 che conclude questa parte della dimostrazione. Il teorema è pertanto dimostrato. 5 Adattatività del Sistema In questa sezione concentriamo la nostra attenzione sui coefficienti αij e βi introdotti in (1). Possiamo immaginare il funzionamento del sistema come una sequenza di passi, ognuno corrispondente alla esecuzione di una nuova query. αij viene inizialmente posto uguale ad 1. Ogni volta che il peer Pj non risponde ad una richiesta di Pi (si consideri dato anche nella presente sezione), il coefficiente αij viene decrementato, altrimenti viene impostato di nuovo a 1. E’ bene osservare che il decremento di αij non deve essere troppo elevato per quei nodi che, pur non avendo risposto, sono però abbastanza simili a qualche peer che nell’ultimo passo ha risposto positivamente. Essi, evidentemente, somigliano in qualche misura al prototipo di peer che, in quella particolare fase di ricerca, è in grado di soddisfare le richieste di Pi , ed è pertanto sperabile che in futuro risponderanno positivamente. Al contrario, αij va decrementato maggiormente per quei nodi che non solo non hanno soddisfatto la richiesta, ma non sono neanche simili ad alcun peer che ha risposto positivamente, pertanto il loro contributo può essere ritenuto poco interessante. Nella valutazione di αij ad un certo passo k, bisogna tener conto del valore del coefficiente al passo precedente e di quanto Pj è simile ai nodi che hanno risposto positivamente al passo k − 1, pertanto αij può essere espresso attraverso la seguente relazione: αij (k) = αij (k−1)+maxPh ∈Yik (Shj ) 2 dove Yik denota l’insieme dei peer che hanno risposto positivamente alla query sottoposta da Pi al passo k. Il valore di αij (k) è ottenuto quindi come media tra il valore che αij assume al passo precedente e il massimo delle similarità tra Pj e i peer che hanno risposto positivamente. Per quanto riguarda, invece, il coefficiente βi (inizialmente posto a 1), esso deve far pesare di più la similarità tra Pi e Pj nella valutazione di Aij , se al passo precedente hanno risposto peer molto simili a Pi , farla pesare di meno se hanno, invece, risposto peer poco simili a Pi poichè in tal caso bisogna dare Riduzione del Traffico nei Sistemi P2P: un Approccio Semantico 9 maggiore enfasi all’ aspettativa verso peer più simili agli ultimi peer che hanno risposto. βi viene dunque calcolato come media tra il valore che assume al passo precedente e la media delle similarità tra Pi e i nodi che hanno soddisfatto la richiesta, come espresso dalla seguente relazione: P 1 βi (k) = βi (k−1)+ |Y ik | 2 Ph ∈Yik (Shi ) In tal modo, se a rispondere sono stati peer molto simili a Pi , presumibilmente anche le prossime richieste potranno essere soddisfatte da nodi simili a Pi , che quindi saranno privilegiati nella scelta. Viceversa, se hanno risposto nodi che hanno bassa similarità con Pi , vuol dire che gli interessi dell’utente stanno cambiando e, quindi, va privilegiato il contributo dato dai peer più simili a quelli che hanno risposto; tale contributo è, appunto, rappresentato dal secondo addendo della (1) che aumenta al decrescere di βi . Il fatto di mediare αij e βi con i valori assunti all’iterazione precedente consente di evitare brusche variazioni del sistema al momento in cui dovesse mutare la natura delle informazioni ricercate. Ciò permette anche di evitare errori di valutazione causati da eventuali query errate proprio perchè gli interessi si spostano gradualmente. Si noti che la scelta dei peer a cui inviare la query potrà quindi esser fatta in base all’aspettativa che ha Pi verso gli altri peer. In particolare, stabilito un opportuno numero n di peer a cui inviare la query (parametro che può essere impostato in relazione alle condizioni di traffico che si vogliono ottenere), saranno scelti i primi n peer in ragione del valore dell’aspettativa. 6 Un Esempio In questa sezione forniamo un esempio applicativo per mostrare come l’approccio proposto possa essere utilizzato per la classificazione e la ricerca di peer potenzialmente attrattivi. In questo esempio consideriamo il sistema P2P con 15 peer mostrato Figura 1. P4 P1 P0 P2 P3 Figura 1. Il sistema P2P considerato e le connessioni tra i 15 peer Ogni peer è rappresentato da un cerchio e la presenza di un arco tra due cerchi indica che i corrispondenti peer sono in contatto. Tutti i peer hanno un 10 Francesco Buccafurri, Gianluca Lax e Simona Rombo ruolo attivo, in quanto ognuno risponde alle richieste ricevute e le propaga. Per motivi di semplicità, evidenziamo solo le azioni compiute da alcuni dei 15 peer, in particolare quelli che in Figura 1 sono rappresentati con un cerchio all’interno del quale è presente la sigla Pk con 0 ≤ k ≤ 4. Non essendo rilevanti per la comprensione dell’esempio, i rimanenti peer non sono individuati nella figura. Supponendo che per limitare il traffico ogni nodo possa contattare al massimo 3 nodi, in questo esempio mostriamo come si evolve la scelta di questi 3 nodi da parte di P0 che utilizza la tecnica da noi proposta. Al termine commenteremo le scelte effettuate da P0 evidenziando come il risultato sia diverso da quello ottenibile utilizzando come criterio solo la similarità. In questo esempio abbiamo supposto che le risorse condivise dai peer siano file audio, ed in particolare canzoni, ipotesi molto realistica. Abbiamo inoltre supposto che le canzoni appartenga ad uno dominio limitato di generi musicali. Nella Tabella 1 è mostrato il numero di file condiviso da ciascun peer per genere musicale, limitando le canzoni a 6 generi musicali. Ad esempio il peer P0 condivide 52 canzoni pop, 37 rock e 11 rap. genere/peer rock pop rap jazz blues classica P0 37 52 11 0 0 0 P1 36 42 23 0 4 0 P2 12 31 0 0 15 0 P3 8 0 17 0 0 61 P4 0 3 12 21 43 0 Tabella 1. Distribuzione dei file tra i peer per genere Utilizzando la formula vista nella Sezione 3, per il calcolo della similarità tra i peer, è possibile ricavare la matrice delle similarità che viene mostrata nella Tabella 2. simil. P0 P1 P2 P3 P4 P0 1 0.89 0.74 0.22 0.18 P1 0.89 1 0.81 0.25 0.24 P2 0.74 0.81 1 0.14 0.31 P3 0.22 0.25 0.14 1 0.15 P4 0.18 0.24 0.31 0.15 1 Tabella 2. Similarità tra peer Supponiamo di applicare la nostra tecnica per gestire i contatti del peer P0 e vediamo come il sistema evolve. Riduzione del Traffico nei Sistemi P2P: un Approccio Semantico 11 Nella situazione rappresentata in Figura 1, P0 ha come contatti P1 , P2 e P3 ai quali rivolge le proprie richieste. In questo momento i parametri del sistema lineare valgono: β0 = 0.60, α0,1 = 0.50, α0,2 = 0.65, α0,3 = 0.40. Risolvendo il sistema lineare 1 con questi parametri otteniamo che: A0,1 = 0.2867, A0,2 = 0.2215, A0,3 = 0.0619. Esprimendo tali valori in percentuale avremo: A0,1 = 50.29%, A0,2 = 38.85%, A0,3 = 10.86%. A questo punto P0 sottopone una richiesta per un nuovo file ai tre peer. Essi non posseggono tale file e propagano la query ad altri peer. Il peer P4 possiede tale file e lo invia a P0 insieme alla propria ontologia. P0 utilizza l’ontologia ricevuta per calcolare la similarità tra i peer Pi con 0 ≤ i ≤ 4, ed aggiorna i parametri del sistema lineare in base alle formule viste in Sezione 5: β0 = 0.60+0.18 = 0.39, α0,1 = 0.50+0.24 = 0.37, α0,2 = 0.65+0.31 = 0.48, 2 2 2 0.40+0.15 α0,3 = = 0.275 e α = 1. 0,4 2 Le soluzioni del sistema lineare cosı̀ ottenuto, cioè le aspirazioni di P0 verso gli altri peer (espresse in percentuale) sono: A0,1 = 34.28%, A0,2 = 37.41%, A0,3 = 6.87%, A0,4 = 21.44%. Dato che ogni peer può mantenere i contatti con soli 3 peer, P0 decide di eliminare dai suoi contatti P3 , cioè il nodo verso il quale l’aspettativa è minima. Osserviamo che se avessimo considerato solo le similarità, il nodo meno simile a P0 e per questo motivo eliminato, sarebbe stato P4 . Notiamo come il fatto che l’utente abbia richiesto un file che non si trova su peer simili è interpretato dal sistema come un sintomo che gli interessi dell’utente stanno modificandosi. Dunque P4 , che ha risposto positivamente, assume un valore di aspettativa rilevante, pur essendo poco simile a P0 . Diminuisce invece l’aspettativa per P1 , pur essendo molto simile a P0 . Il fatto che il peer con maggiore aspettativa risulti essere P2 può apparire strano: infatti non ha risposto positivamente a P0 ed inoltre esso non è il più simile a P0 . Questo risultato è spiegabile considerando che P2 è abbastanza simile a P4 , il peer che ha risposto positivamente all’ultima richiesta di P0 . Inoltre è molto simile a P0 . Pertanto, usare l’aspettativa come obiettivo da massimizzare coincide con la ricerca di un compromesso tra la massimizzazione della similarità e la massimizzazione della speranza di contattare nodi capaci di soddisfare la dinamica degli interessi dell’utente. In altre parole, piuttosto che guidare l’utente solo verso peer che per struttura somigliano al peer di appartenenza dell’utente, e quindi risultare efficaci solo nel caso in cui gli interessi dell’utente siano statici, il sistema, traendo dalle risposte dei peer meno simili informazione ritenuta rilevante, si adatta alla dinamica dell’utente e quindi alla dinamica dei sui interessi. 7 Conclusioni In questo lavoro abbiamo affrontato il problema della riduzione del traffico nelle reti P2P attraverso un approccio semantico che si pone l’obiettivo di quantificare l’aspettativa che un certo peer ha verso altri peer della rete. L’aspettativa tiene conto sia della similarità tra le ontologie dei peer, sia di proprietà globali, per le quali un peer Q anche se privo di elevata somiglianza, può apparire di interesse 12 Francesco Buccafurri, Gianluca Lax e Simona Rombo per un altro peer P perche’ simile a peer verso cui P ha elevata aspettativa. Il modello quantitativo conduce alla definizione di un sistema lineare la cui unica soluzione fornisce un criterio di scelta dei peer a cui propagare la query in modo che sperabilmente essa possa essere soddisfatta. Il sistema è adattativo, in modo tale da seguire la dinamica degli interessi dell’utente, superando cioè uno dei limiti tipici dei sistemi di supporto alla ricerca di informazioni. Riferimenti bibliografici 1. D. Beneventano, S. Bergamaschi, A. Fergnani, F. Guerra, and M. Vincini. A peerto-peer agent-based semantic search engine. In Proceedings of the Eleventh Italian Symposium on Advanced Database Systems, pages 367–378, 2003. 2. F. Buccafurri, D. Rosaci, G. M. L. Sarnè, and L. Palopoli. Spy: A multi-agent model yielding semantic properties. In Proceedings of the The Second Asia-Pacific Conference on Intelligent Agent Technology (IAT-2001), pages 44–53, 2001. 3. S. Castano, A. Ferrara, and S. Montanelli. The helios framework for peer-based knowledge sharing and evolution. In Proceedings of the Eleventh Italian Symposium on Advanced Database Systems, pages 347–358, 2003. 4. Gnutella. http://gnutella.wego.com. 5. Kazaa. http://www.kazaa.com. 6. J. Kubiatowicz, D. Bindel, Y. Chen, S. Czerwinski, P. Eaton, D. Geels, R. Gummadi, S. Rhea, H. Weatherspoon, C. Wells, and B. Zhao. Oceanstore: an architecture for global-scale persistent storage. In Proceedings of the ninth international conference on Architectural support for programming languages and operating systems, pages 190–201. ACM Press, 2000. 7. Morpheus. http://www.morpheus.com. 8. Napster. http://www.napster.com. 9. S. Ratnasamy, P. Francis, M. Handley, R. Karp, and S. Schenker. A scalable content-addressable network. In Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications, pages 161–172. ACM Press, 2001. 10. A. I. T. Rowstron and P. Druschel. Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems. In Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg, pages 329– 350. Springer-Verlag, 2001. 11. I. Stoica, R. Morris, D. Karger, M. Frans Kaashoek, and H. Balakrishnan. Chord: A scalable peer-to-peer lookup service for internet applications. In Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications, pages 149–160. ACM Press, 2001.