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.