Professional Documents
Culture Documents
P2P Πτυχιακή
P2P Πτυχιακή
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ASSIGNMENT 9:
Peer-to-peer Systems
Due: June 17, 2005
∆ιδάσκουσα: Ε. Πιτουρά
ΜΑΡΓΑΡΙΤΗ ΣΠΥΡΙ∆ΟΥΛΑ
ΠΕΡΙΕΧΟΜΕΝΑ
1. Εισαγωγή ...............................................................................................................1
2. Αναζήτηση .............................................................................................................2
3. Αρχιτεκτονική........................................................................................................3
3.1. Κεντρικοποιηµένα peer-to-peer συστήµατα ..................................................3
3.2. Ιεραρχικά .......................................................................................................3
3.3. Μη Κεντρικοποιηµένα peer-to-peer συστήµατα ...........................................4
3.4. Napster ...........................................................................................................4
3.5. Gnutella..........................................................................................................5
3.6. Το σύστηµα Chord ........................................................................................6
3.7. Το σύστηµα CAN .........................................................................................7
4. Επεξεργασία ~∆ιαχείριση ερωτήσεων...................................................................9
4.1. Κεντρικοποιηµένη αναζήτηση ....................................................................10
4.2. Ιεραρχική .....................................................................................................10
4.3. Τυφλή Αναζήτηση .......................................................................................10
4.4. Πληροφορηµένη αναζήτηση........................................................................11
4.5. Σύγκριση µεθόδων αναζήτησης...................................................................15
4.6. Προχωρηµένες ερωτήσεις – αναζητήσεις....................................................16
4.6.1. Ερωτήσεις διαστήµατος (Range Queries)............................................16
4.6.2. MURK~SCRAP...................................................................................17
4.6.3. Mercury................................................................................................17
4.6.4. Mutant Query .......................................................................................18
4.6.5. Παράδειγµα..........................................................................................18
5. ∆ιατήρηση αντιγράφων (Content Caching, Replication) ....................................20
5.1. Στρατηγική δηµιουργίας αντιγράφων ..........................................................21
5.1.1. Αντιγραφή σε αδόµητα συστήµατα .....................................................21
5.1.2. Αντίγραφα σε δοµηµένα συστήµατα ...................................................21
5.2. Ενηµέρωση ..................................................................................................22
5.2.1. Ενηµέρωση σε αδόµητα συστήµατα....................................................22
5.2.2. Ενηµέρωση σε δοµηµένα συστήµατα..................................................23
6. Ασφάλεια, Ανωνυµία, Έλεγχος Πρόσβασης .......................................................24
7. Σύνοψη.................................................................................................................24
8. Αναφορές .............................................................................................................25
Περίληψη
Κατανεµηµένα συστήµατα που στηρίζονται στην οµότιµη και εθελοντική συµπεριφορά
των κόµβων που τα απαρτίζουν έγιναν ευρέως γνωστά ως peer-to-peer συστήµατα.
Το δίκτυο που σχηµατίζουν είναι χτισµένο πάνω στην υπάρχουσα υποδοµή του
διαδικτύου και παρέχουν κοινή χρήση πόρων (αποθηκευτικό χώρο, υπολογιστική
ισχύς, κλπ.) ή διαµοιράζουν δεδοµένα. Η µη απαίτηση για κεντρικό εξυπηρέτη, η
δυνατότητα απευθείας επικοινωνίας µεταξύ των κόµβων (υπολογιστών που µετέχουν),
η scalability, η αυτοδιοργάνωση, η αυτονοµία και η ανωνυµία και δυναµικότητα
(peers join and leave) είναι χαρακτηριστικά που κάνουν τα συστήµατα αυτά
δηµοφιλή, και ελκυστικά ακόµη και στον εµπορικό κόσµο.
Στην παρούσα εργασία το ενδιαφέρον εστιάζεται στον τρόπο οργάνωσης των peer-to-
peer συστηµάτων, τις αρχιτεκτονικές που βασίζουν την δόµησή τους, τους
µηχανισµούς για εντοπισµό και ανάκτηση της επιθυµητής πληροφορίας και στις
στρατηγικές για δηµιουργία και διατήρηση αντιγράφων έτσι ώστε τα συστήµατα να
είναι αποδοτικότερα.
1. Εισαγωγή
Τα τελευταία χρόνια µε την ραγδαία εξάπλωση του Internet µια ακόµη ανάγκη
αναφύεται: Η ανάγκη για κοινή χρήση υπολογιστικών πόρων (αποθήκευση,
υπολογιστική ισχύ, κλπ.). Έτσι συγκροτούνται δίκτυα από πολλούς υπολογιστές µε
σκοπό την ανταλλαγή αρχείων, συνήθως µουσικά κοµµάτια (Napster, Gnutella), ή για
ανταλλαγή εγγράφων (Freenet), ή για κατανεµηµένο υπολογισµό (seti@home) ή και
για παροχή κατανεµηµένων υπηρεσιών. Τέτοια δίκτυα είναι γνωστά ως peer-to-peer
(P2P) δίκτυα.
Σε ένα peer-to-peer δίκτυο κάθε κόµβος που µετέχει είναι ισότιµος µε κάθε άλλο και
µπορεί να ενεργήσει είτε σαν πελάτης (client) είτε σαν εξυπηρέτης (server).
Κινητήρια δύναµη για ανάπτυξη εφαρµογών peer-to-peer αποτελεί η
αποκεντρικοποιηµένη και κατανεµηµένη δοµή τέτοιων συστηµάτων που δεν
απαιτούν διαχείριση και συντήρηση, οικονοµικές αξιώσεις ή άλλους νοµικούς
περιορισµούς. Οι κόµβοι προσαρµόζονται, αυτοδιοργανώνονται καθώς εισέρχονται ή
αποχωρούν από το σύστηµα, ικανοποιώντας την ιδιότητα της κλιµάκωσης και της
ανοχής στις αποτυχίες[1, 2]. Οι λειτουργίες του είναι κατανεµηµένες στους κόµβους
που µετέχουν σε ένα τέτοιο σύστηµα, όπου εκατοµµύρια διαφορετικοί χρήστες
µπορούν να είναι παρόντες ταυτόχρονα.
Ακολουθεί ο ορισµός ενός peer-to-peer συστήµατος όπως δίνεται από τους
Androutsellis-Theotokis, Spinellis [1]:
Πολλές άλλες peer-to-peer εφαρµογές εµφανίζονται την ίδια περίοδο είτε για την
ανταλλαγή µουσικών αρχείων είτε ακόµη και για την αξιοποίηση των χαµένων
κύκλων της CPU (sofi@home). Τόσο η επιστηµονική κοινότητα όσο και ο εµπορικός
κόσµος δείχνουν έντονο ενδιαφέρον για τα peer-to-peer συστήµατα τα οποία όχι µόνο
γίνονται αποδεκτά αλλά υιοθετούνται ευρέως διαµοιράζοντας αρχεία ή παρέχοντας
κατανεµηµένο υπολογισµό.
Στο υπόλοιπο αυτής της εργασίας, θα γίνει λόγος για την πιο βασική λειτουργία των
peer-to-peer συστηµάτων, την διαχείριση ερωτήσεων, και τις αρχιτεκτονικές που
προτάσσονται για το χειρισµό των λειτουργιών αναζήτησης, δροµολόγησης,
εντοπισµού πληροφορίας, που υποβάλλονται στο peer-to-peer σύστηµα. Η δεύτερη
ενότητα αναφέρεται στην αναζήτηση γενικά και η τρίτη ενότητα στις αρχιτεκτονικές
αυτών των συστηµάτων. Στην τέταρτη ενότητα, γίνεται παρουσίαση µεθόδων που
χρησιµοποιούνται για την επεξεργασία ερωτήσεων - αναζήτηση πληροφορίας. Ένα
άλλο σηµαντικό θέµα που µελετάται στην πέµπτη ενότητα είναι που, πόσα και ποια
αντίγραφα θα δηµιουργηθούν και θα ενηµερωθούν-διατηρηθούν. Στην συνέχεια
διατυπώνονται απόψεις που αφορούν την ασφάλεια, (Security, privacy, anonymity,
trust) και τέλος αναφέρονται µερικά συµπεράσµατα για τα peer-to-peer συστήµατα
και τις εφαρµογές τους.
2. Αναζήτηση
Τα peer-to-peer συστήµατα είναι από την φύση τους κατανεµηµένα και η γενική τους
χρήση είναι ο διαµοιρασµός αρχείων (file sharing). Το κλειδί για την χρησιµότητά
τους, αλλά και µια κύρια πρόκληση από σχεδιαστική άποψη είναι η τεχνική που
χρησιµοποιείται για την αναζήτηση και ανάκτηση των επιθυµητών δεδοµένων. Το
πρόβληµα εστιάζει:
στον εντοπισµό των δεδοµένων: ο µηχανισµός που χρησιµοποιείται για το
εντοπισµό του επιθυµητού δεδοµένου (ή αντικειµένου)
3. Αρχιτεκτονική
Οι κόµβοι, (πρόκειται για προσωπικούς υπολογιστές, σταθµούς εργασίας, κλπ.) που
µετέχουν σε ένα peer-to-peer σύστηµα σχηµατίζουν ένα δίκτυο επικάλυψης (overlay
network) πάνω από την υπάρχουσα υποδοµή του διαδικτύου. ∆ιασυνδέονται,
επικοινωνούν και ανταλλάσσουν πληροφορίες µεταξύ τους σε τοπολογίες ανεξάρτητα
από το δίκτυο υποδοµής (IP network) διατηρώντας την αυτονοµία τους[4]. Η
αρχιτεκτονική του δικτύου επηρεάζει τον µηχανισµό δροµολόγησης µηνυµάτων
αναζήτησης, την απόδοση, την ικανότητα κλιµάκωσης, την προσαρµοστικότητα -
ανοχή σε σφάλµατα, κλπ. και στοχεύει στην υποστήριξη λειτουργιών όπως
διαµοιρασµό αρχείων (file sharing), κατανεµηµένο υπολογισµό (distributed
computing), επικοινωνία – συνεργασία µεταξύ των χρηστών (collaboration network)
Υπάρχουν διάφορες αρχιτεκτονικές για τον σχηµατισµό του overlay δικτύου[1,8]:
3.2. Ιεραρχικά
Οι κόµβοι οργανώνονται σε Κεντρικοποιηµένα Ιεραρχικά Μη -Κεντρικοποιηµένα
ιεραρχική δοµή όπως γίνεται µε
τους DNS στο διαδίκτυο. Στα
ιεραρχικά peer-to-peer Σχήµα 3-1: P2P Αρχιτεκτονικές ∆οµηµένα Αδόµητα
συστήµατα εισάγεται ή έννοια
Peer-to-peer systems - 2005 3
των “super-peers” (FastTrack). Η δοµή τους µπορεί να είναι κεντρικοποιηµένη ή µη.
3.4. Napster
Το Napster έκανε την εµφάνισής του το 1999 και είναι το πιο γνωστό peer-to-peer
σύστηµα που χρησιµοποιήθηκε για ανταλλαγή µουσικών αρχείων. Η φιλοσοφία της
λειτουργίας του ήταν απλή. Σε έναν κεντρικό διακοµιστή φιλοξενούνταν µια βάση
δεδοµένων µε καταχωρίσεις ευρετηρίου για την θέση αποθήκευσης των µουσικών
αρχείων. Ο χρήστης απεύθυνε εκεί την ερώτηση για το αρχείο που επιθυµούσε, ο
3.5. Gnutella
Η Gnutella είναι ένα από τα πιο δηµοφιλή peer-to-peer δίκτυα για διαµοιρασµό
αρχείων (file sharing). Η λειτουργία του στηρίζεται σε ένα µικρό πρόγραµµα (µόλις
100Κ) που οι κόµβοι εγκαθιστούν για να έχουν την δυνατότητα δικτύωσης και που
ουσιαστικά αποτελεί το πρωτόκολλο βάση του οποίου γίνεται η ανταλλαγή των
δεδοµένων από κόµβο σε κόµβο (από PC σε PC).
Η λειτουργία του Gnutella έχει ως
εξής: Το δίκτυο απαρτίζεται από
κόµβους (χρήστες) που έχουν
εγκαταστήσει το λογισµικό του
client και συνδέονται µεταξύ τους
χωρίς συγκεκριµένη δοµή. Αρχικά,
για να συνδεθεί κανείς στο δίκτυο,
αρκεί να εντοπίσει έναν κόµβο που
συµµετέχει ήδη στο Gnutella.
Εκείνος τον ενηµερώνει µε µια
λίστα (την δική του) από άλλους
κόµβους που µετέχουν στο δίκτυο.
Ο κόµβος στέλνει τις ερωτήσεις
του για αναζήτηση σε όλους τους
Σχήµα 3-2: Η λειτουργία της Gnutella
ενεργά συνδεδεµένους κόµβους –
συνήθως µέχρι πέντε – µε εκείνον
(flooding). Η ερώτηση εφόσον δεν απαντηθεί, προωθείται σε γειτονικούς κόµβους.
Αν το επιθυµητό αρχείο εντοπισθεί σε περισσότερους κόµβους, τότε ο αιτών κόµβος
µπορεί να κατεβάσει το αρχείο σε τµήµατα από διαφορετικούς κόµβους,
απευθείας[22]. Όταν ο κόµβος αποσυνδέεται η λίστα των κόµβων που ήταν ενεργά
συνδεδεµένοι σε αυτόν αποθηκεύεται τοπικά για µελλοντική χρήση.
Η Gnutella λειτουργεί σαν ένα πρωτόκολλο ερωτήσεων. Για να το πετύχει αυτό
χρησιµοποιεί πακέτα µηνυµάτων πέντε διαφορετικών τύπων (έκδοση 0.4).
• ping: για τον εντοπισµό κόµβων στο δίκτυο
15 14
0
13
1 12
2 11
3 10
Finger pointer
9
4
8
5
6 7
Structured Unstructured
Blind Informed
CAN Self-Organizing Semantic
Overlay Network
Modified DFS
Intelligent BFS Interest based locality
Iterative Deepening
APS Assiciative search
Random Walks
Local Indices SON
GUESS
Routing Indices
d bloom filters
4.2. Ιεραρχική[2]
Βασίζεται στο παραδοσιακό σχήµα που χρησιµοποιείται στο Internet για τον
εντοπισµό µιας IP διεύθυνσης στο διαδίκτυο µε την χρήση Domain Name System
(DNS). Στα peer-to-peer συστήµατα ειδικοί κόµβοι, οι superpeers, απαρτίζουν µια
ιεραρχική δοµή (FastTrack’s/KaZaA). Η αναζήτηση αρχίζει από την κορυφή της
ιεραρχίας και διασχίζει ένα µονοπάτι µέχρι τον κόµβο που περιέχει το στοιχείο
(επιθυµητή πληροφορία). Όµως δεν υπάρχει καµιά εγγύηση ότι το στοιχείο θα βρεθεί.
Μια αναζήτηση µπορεί να ολοκληρωθεί σε O(logN) βήµατα. Όµως µια αποτυχία ή
µια αποχώρηση ενός κόµβου µπορεί να δηµιουργήσει σοβαρά προβλήµατα ιδιαίτερα
αν βρίσκεται ψηλά στην ιεραρχία.
Interest – Based locality[10]: Σύµφωνα µε την προσέγγιση αυτή οι κόµβοι που έχουν
κοινά ενδιαφέροντα δηµιουργούν απευθείας συνδέσεις µεταξύ τους, shortcuts, τις
οποίες και χρησιµοποιούν για τον εντοπισµό δεδοµένων. Τα shortcuts παρέχουν µια
χαλαρή δοµή πάνω από το υπάρχον overlay δίκτυο (Gnutella). Αν µια αναζήτηση
µέσω αυτών (shortcuts) αποτύχει τότε χρησιµοποιείται το overlay δίκτυο. Για
παράδειγµα έστω ότι ένας κόµβος Χ αναζητά τα αρχεία file1, file2, file3 και σε
κάποιους κόµβους εντοπίζει κάποια από αυτά, ενώ στον κόµβο Υ εντοπίζει και τα
τρία αρχεία. Σκοπός είναι το σύστηµα να εντοπίζει τέτοιους κόµβους και να
κατεβάζει τα αρχεία που επιθυµεί απευθείας από αυτούς.
Το ερώτηµα είναι πως θα ανακαλυφθούν οι κόµβοι αυτοί για να µπουν στην shortcuts
λίστα του κόµβου και πως θα επιλεγούν µεταξύ άλλων οι καταλληλότεροι. Η
ανακάλυψη των shortcuts όταν ένας κόµβος εισέρχεται στο σύστηµα για πρώτη φορά
γίνεται µέσω ερωτήσεων από τον κόµβο προς τους γείτονές µε την µέθοδο της
πληµµύρας. Από αυτά που βρίσκει επιλέγει κάποια τυχαία και τα προσθέτει στην
λίστα του. Η λίστα αυτή αποθηκεύεται από τον κάθε κόµβο που δεσµεύει µνήµη για
το σκοπό αυτό. Καθώς οι κόµβοι έρχονται και φεύγουν στο σύστηµα και τα
ενδιαφέροντα µεταβάλλονται, τα περιεχόµενα της λίστας ανανεώνονται και
ενηµερώνονται.
Η επιλογή των shortcuts που θα προστεθούν στη λίστα γίνεται από τον κόµβο που την
διατηρεί µε συνδυασµό κριτηρίων όπως η πιθανότητα «προµήθειας» περιεχοµένου,
latency, µήκος µονοπατιού, διαθεσιµότητα εύρους, ποσότητα περιεχοµένων, φόρτο
shortcuts.
Associative Search[11]: Όπως και στην προηγούµενη περίπτωση, έτσι και εδώ, οι
κόµβοι οργανώνονται ή οµαδοποιούνται ένα επίπεδο πάνω από το υφιστάµενο peer-
to-peer σύστηµα (Gnutella, FastTrack). Η οµαδοποίηση των κόµβων σε µια χαλαρή
τοπολογία γίνεται µε βάση τα όµοια εννοιολογικά δεδοµένα µε στόχο να απαντά
αποδοτικά σε ερωτήσεις για αυτά καθώς και να υποστηρίζει partial match ερωτήσεις
ή ακόµη και την εύρεση σπανίων δεδοµένων.
Peer-to-peer systems - 2005 13
Η αναζήτηση είναι καθοδηγούµενη (guided search) καθώς η ερώτηση προωθείται
στους συναφείς κόµβους που σχηµατίζουν κάποιο σύνολο. Το σύνολο, που
ονοµάζεται guide rule, σχηµατίζεται από κόµβους που ικανοποιούν κάποια συνθήκη.
Μια κατηγορία guide rule είναι το possession rule όπου η συνθήκη που πρέπει να
ικανοποιείται είναι η παρουσία ενός δεδοµένου στο τοπικό ευρετήριο. Οι κόµβοι
µπορούν να µετέχουν σε διαφορετικά – περισσότερα του ενός guide rule. Ουσιαστικά
η αναζήτηση εκµεταλλεύεται τις συνδέσεις µεταξύ των κόµβων και προωθεί τις
ερωτήσεις σε συναφείς “κοινότητες” κόµβων. Χρησιµοποιούνται δυο αλγόριθµοι
για την καθοδηγούµενη αναζήτηση: ο αλγόριθµος RAPIER και ο αλγόριθµος GAS.
RAPIER(Random Possession Rule): Ο αλγόριθµος βασίζεται σε µια απλή
επαναληπτική στρατηγική: Επιλέγει ένα τυχαίο στοιχείο από το τοπικό
ευρετήριο και εφαρµόζει “blind” αναζήτηση στους κόµβους που ανήκουν στο
“possession rule” σε προκαθορισµένο βάθος. Αν δεν βρεθεί το δεδοµένο η
αναζήτηση γίνεται στο υφιστάµενο δίκτυο (π.χ Gnutella) όπως αυτό την
υποστηρίζει (τυφλή αναζήτηση).
GAS (Greedy Guide Rule): Ο αλγόριθµος GAS είναι µια βελτιστοποιηµένη
έκδοση του προηγουµένου αλγορίθµου (Rapier). Ενώ πριν η επιλογή του
στοιχείου από την λίστα γινόταν τυχαία, τώρα λαµβάνεται υπόψη η
συνεισφορά του καθενός (πιθανότητα) στην επιτυχή αναζήτηση. Έτσι ο
κανόνας καθοδήγησης που επιλέγεται είναι αυτός που έχει την µεγαλύτερη
πιθανότητα για επιτυχή αναζήτηση.
Semantic Overlay Network[12]: Τα Semantic Overlay Network στηρίζονται στη
λογική ότι θα είναι αποδοτικότερο η δροµολόγηση των ερωτήσεων να γίνεται µόνο
προς τους κόµβους που είναι πιο πιθανό να έχουν απαντήσεις. Για να επιτευχθεί αυτό
οι κόµβοι µε εννοιολογικά όµοια περιεχόµενα σχηµατίζουν cluster. Η
κατηγοριοποίηση γίνεται ιεραρχικά και σχηµατίζουν ένα overlay δίκτυο σε ανώτερο
επίπεδο, µε τους κόµβους να καταλαµβάνουν θέσεις στην ιεραρχία ανάλογα µε το
πλήθος των δεδοµένων (files) που κατέχουν αλλά και την εννοιολογική τους
σηµασία. Ο σχηµατισµός αυτός δεν αποκλείει τα λάθη, δηλαδή τις εσφαλµένες
κατηγοριοποιήσεις όταν η πληροφορία δεν είναι αρκετή.
Όταν µια ερώτηση εισάγεται σε ένα τέτοιο σύστηµα, αρχικά θα πρέπει και η ίδια να
κατηγοριοποιηθεί και στη συνέχεια να προωθηθεί στο αντίστοιχο συστατικό (τµήµα
της ιεραρχίας) για να απαντηθεί. Αν το αποτέλεσµα δεν είναι αρκετό (η απάντηση δεν
βρέθηκε, ή δεν βρέθηκαν όλα τα δεδοµένα) τότε η ερώτηση προωθείτε σε ανώτερα
επίπεδα.
Unbounded –
No guarantee to Hops -
Time
O(dn1/d) O(logN) O(1) locate data to -Live -
Complexity
TTL limits, if limits
data located
Space Consta
2d logN Constant Constant Centralized
Complexity nt
Peers join Consta
2d (logN)2 Constant Constant Centralized
& leaves nt
peers
Functionali Centraliz Loosely connected
DHT based Flat topology
ty ed DHT to Super-
Peers
80 1 6 3
61
50 4
2
35
2 5
(2,2) (80, 20)
2 80 X
Σχήµα 4-2: Αντιστοίχηση Domain στο χώρο CAN και διαµέριση σε zone
4.6.5. Παράδειγµα
Έστω ότι ένας κόµβος (χρήστης) αναζητά CD που κοστίζουν λιγότερο από 10€ στην
περιοχή του Portland. Ας δούµε πως απαντάτε η ερώτηση αυτή αν χρησιµοποιηθεί
µια από τις µεθόδους που περιγράφονται στην 4.6 ενότητα, κάνοντας τις εξής
υποθέσεις:
Ο χρήστης αναζητά κάποια τραγούδια που δηµοσιοποιούνται σε κάποια λίστα από
τους παροχείς.
Οι τιµές των CDs κυµαίνονται από 2€ ως 80€ (π.χ. συλλογές). Οι περιοχές
αναζήτησης (πόλεις) µπορεί να είναι ανά τον κόσµο. Για χάρη απλότητας, δεν
εµφανίζονται στα σχήµατα ή εµφανίζονται ελάιστες.
Range Query
Σύµφωνα µε την λειτουργία του πρωτοκόλλου, όταν υπάρχουν n γνωρίσµατα στην
ερώτηση τότε αυτή αντιστοιχίζεται σε έναν 2n εικονικό χώρο. Έτσι η παραπάνω
ερώτηση θα µετασχηµατισθεί στην ερώτηση διαστήµατος (0, 10), (Portland, Portland)
στο χώρο τεσσάρων διαστάσεων. Οι πρώτες δύο διαστάσεις αφορούν το πρώτο
γνώρισµα (τιµή) ενώ οι δυο επόµενες το δεύτερο γνώρισµα. Εποµένως µπορεί να
εξετασθεί σαν ανεξάρτητος διαστατός χώρος για απλότητα.
Έστω ότι ο κόµβος 1 (Σχήµα 4.2) υποβάλλει το ερώτηµα και ο κόµβος 5 διατηρεί
αντίγραφα για εύρος τιµών (2,30). Η ερώτηση δροµολογείται στο zone του 5 και
επιλέγεται το αποτέλεσµα –που θα µπορούσε να το αποθηκεύει και από προηγούµενο
ερώτηµα - και στέλνεται σαν απάντηση στον κόµβο 1. Η αντίστοιχη διαδικασία
γίνεται και για το δεύτερο µέρος του ερωτήµατος. Η αντιστοίχηση γίνεται πάλι στο
διδιάστατο χώρο και το ερώτηµα υποβάλλεται µε ίδιο πάνω και κάτω όριο (Portland,
Portland). Ο συνδυασµός των δύο στων χώρο των 4 διαστάσεων επιστέφεται ως
απάντηση στον χρήστη του κόµβου.
Mercury
Η ερώτηση παραδίδεται σε ένα Hα Hub όπου α είναι τα γνωρίσµατα που
χρησιµοποιούνται στην ερώτηση. Εκεί, εσωτερικά το ένα τµήµα δροµολογείται στα
Ηp και Ηl hubs που απεικονίζουν τα διαστήµατα τιµών για το κόστος του CD το
Peer-to-peer systems - 2005 18
πρώτο (p: price) και την περιοχή (l: location) το δεύτερο στους κόµβους όπως
φαίνεται στο σχήµα 4.3. Το αποτέλεσµα επιστρέφεται στον κόµβο που έκανε την
ερώτηση.
Query
0 ? x ? 10
state =“Portland” Seattle
Multi-dimensional queries
SCRAP: Έστω ότι τα γνωρίσµατα price και location απεικονίζονται σε 4-bit κώδικα.
Από τις δυο διαστάσεις, µε παρεµβολή των κωδικών προκύπτει µια διάσταση µε 8bits
(π.χ. a3a2a1a0 για το πρώτο γνώρισµα και για το δεύτερο γνώρισµα προκύπτει a3b3a2
Peer-to-peer systems - 2005 19
b2a1b1a0b0). Στη συνέχεια εκτελείται κάποιος well known αλγόριθµος space-filling
curve για αντιστοίχηση ερωτήσεων. Το αποτέλεσµα που επιστρέφεται µπορεί να
περιέχει και εσφαλµένες απαντήσεις λόγω της αντιστοίχησης σε µια διάσταση.
MURK: Η ερώτηση υποβάλλεται σε ένα κόµβο. Αυτός την στέλνει σε όλους τους
κόµβους που έχουν σχετικά δεδοµένα (CD >10€, location=Portland) επαναληπτικά
µέχρι να συλλέξει την απάντηση. Η προώθηση της ερώτησης γίνεται µε greedy
στρατηγικές που βασίζονται στην ελάχιστη Manhattan απόσταση από τον προορισµό
(αντίστοιχο “rectangle”).
5.2. Ενηµέρωση
Ο µηχανισµός διαχείρισης αντιγράφων είναι στενά συνδεδεµένος µε τον µηχανισµό
της ενηµέρωσης και εξαρτάται από το περιβάλλον της εφαρµογής και το peer-to-peer
σύστηµα.
7. Σύνοψη
Τα peer-to-peer συστήµατα είναι πραγµατικότητα και ώριµα για να παρέχουν ένα
άλλο τρόπο σχεδίασης δικτυακών εφαρµογών. Απαρτίζονται από διασυνδεδεµένους
κόµβους κατανεµηµένους ανά τον κόσµο και σχηµατίζουν ένα overlay δίκτυο.
Αυτοδιοργανώνονται σε ευέλικτες τοπολογίες δικτύου µε σκοπό την κοινή χρήση
πόρων (δεδοµένα, αποθήκευση, κύκλους µηχανής). Η ευρεία αποδοχή τους και η
πληθώρα εφαρµογών τους βασίζεται στην αυτοδιοργάνωση σε ένα δυναµικό
περιβάλλον όπου οι κόµβοι έρχονται και φεύγουν, στην δυνατότητα για άµεση
επικοινωνία µεταξύ των χρηστών, την ιδιότητα της κλιµάκωσης, στην αυτονοµία και
ανωνυµία.
8. Αναφορές
[1] S. Androutsellis-Theotokis, D. Spinellis, “A Survey of Peer-to-Peer Content
Distribution Technologies”, ACM Computing Surveys, pp 335-371, December 2004.
[2] H. Balakrishnan, M. Frans Kaashoek, D. Karger, R. Morris, and I. Stoica, "Looking
Up Data in P2P Systems," Communications of the ACM, 46(2), February 2003.
[3] Computer για όλους, “Peer To Peer Computing”, Αριθµός Τεύχους: 202, 1/6/2001
[4] X. Zhang, Q. Zhang, Z. Zhang, G. Song and W. Zhu, "A Construction of Locality-
Aware Overlay Network: mOverlay and its performance", IEEE JSAC Special Issue
on Recent Advances on Service Overlay Networks, Jan. 2004.
[5] S. Ratnasamy, P. Francis, M. Handley, R. Karp, and S. Shenker, “A scalable content
addressable network,” in Proceedings of the ACM SIGCOMM, 2001, pp. 161–172.
[6] I. Stoica, R. Morris, D. Karger, M. F. Kaashoek, and H. Balakrishnan, “Chord: A
scalable peer-to-peer lookup service for internet applications”. In Proceedings of
SIGCOMM 2001.
[7] A. Crespo and H. Garcia-Molina. “Routing indices for peer-to-peer systems”
Submitted to ICDCS 2002, October 2001.
[8] Q. LV, P. Cao, E. Cohen, K. Li, and S. Shenker. Search and replication in
unstructured peer-to-peer networks. In Proc. 16th ACM International Conference on
Supercomputing (ICS’02), June 2002.
[9] D. Tsoumakos and N. Roussopoulos, “A Comparison of Peer-to-Peer Search
Methods”, in WebDB03, 2003