150 likes | 259 Views
Peersim – ΠακÎτο isearch. ΜπουντουÏόπουλος Îίκος Α.Μ. 143 ΠαπαγεωÏγίου ΧαÏά Α.Μ. 145. Εισαγωγή. Το Peersim είναι Îνα open source, P2P πεÏιβάλλον εξομοίωσης, γÏαμμÎνο σε Java, με σκοπό την ανάπτυξη και τον Îλεγχο οποιουδήποτε P2P αλγοÏίθμου. ΧαÏακτηÏιστικά:
E N D
Peersim – Πακέτο isearch Μπουντουρόπουλος Νίκος Α.Μ. 143 Παπαγεωργίου Χαρά Α.Μ. 145
Εισαγωγή • Το Peersim είναι ένα open source, P2P περιβάλλον εξομοίωσης, γραμμένο σε Java, με σκοπό την ανάπτυξη και τον έλεγχο οποιουδήποτε P2P αλγορίθμου. • Χαρακτηριστικά: • Επεκτάσιμο μέχρι πάνω από 1εκ. κόμβους • Λεπτομερώς διαμορφωμένο • Ανοιχτή αρχιτεκτονική και βασισμένο σε συστατικά
Μοντέλα • Το Peersim υποστηρίζει δύο μοντέλα εξομοίωσης: • Cycle Based:Η εξομοίωση τρέχει ακολουθιακά, σε κάθε κύκλο τρέχουν όλα τα πρωτόκολλα. Aπλό,γρήγορο, μη ρεαλιστικό • Event Based: Το δίκτυο ανταποκρίνεται στις ενέργεις που έχουν προηγηθεί. Πιο ρεαλιστικό
Περιορισμοί • Το Peersim αγνοεί το επίπεδο μεταφοράς της στοίβας πρωτοκόλλων • Τα μηνύματα δεν είναι μοντελοποιημένα κατά την εγκατάσταση του δικτύου αλλά πρέπει να τα μοντελοποιήσει ο χρήστης. • Λύση: Δημιουργία πακέτου isearch για αναζήτηση αρχείων στο δίκτυο. Αναζήτηση με RW και RRW.
Κύκλος ζωής προσομοίωσης • Επιλογή μεγέθους του δικτύου (ο αριθμός των κόμβων) • Επιλογή ενός η περισσοτέρων πρωτοκόλλων για να πειραματιστούμε και αρχικοποίησή τους • Επιλογή ενός η περισσοτέρων αντικειμένων παρακολούθησης του δικτύου για καταγραφή των ιδιοτήτων που μας ενδιαφέρουν και για αλλαγή κάποιων παραμέτρων κατά τη διάρκεια της προσομοίωσης • Εκτέλεση της προσομοίωσης βάζοντας σε λειτοργία την κλάση Simulator και δημιουργώντας ένα configuration file που περιέχει όλες τις παραπάνω πληροφορίες
Διασυνδέσεις συστήματος • Node • CDProtocol • Linkable • Control • Initializers • Observers • Dynamics
Configuration file example 1 #Example 1 2 simulation.cycles 30 3 control.shf Shuffle 4 network.size 50000 5 6 protocol.lnk IdleProtocol 7 protocol.avg example.aggregation.AverageFunction 8 protocol.avg.linkable lnk 9 10 init.rnd WireKOut 11 init.rnd.protocol lnk 12 init.rnd.k 20 13 14 init.peak example.aggregation.PeakDistributionInitializer 15 init.peak.value 10000 16 init.peak.protocol avg 17 18 init.lin LinearDistribution 19 init.lin.protocol avg 20 init.lin.max 100 21 init.lin.min 1 22 23 # you can change this to select the peak initializer instead 24 include.init rnd lin 25 26 control.avgo example.aggregation.AverageObserver 27 control.avgo.protocol avg
Πακέτο isearch • Βασικές δομές • messageTable • hitTable • incomingQueue • view • keyStorage • Διαδικασία αποστολή μηνύματος
Κλάσεις του isearch (1) • SearchProtocol • Μέθοδοι send και forward • Μέθοδοι nextcycle και process • Μέθοδοι matches και match • SMessage • Id του κόμβου από τον οποίο δημιουργήθηκε • id μηνύματος • Ο αριθμός των βημάτων που έχει κάνει • Τύπο • payload
Κλάσεις του isearch (2) • SearchStats • ID του μηνύματος • Hops • Αριθμός κόμβων που έχουν δει το query • Αριθμός Hits • Αριθμός μηνυμάτων εξαιτίας αυτού του query • SearchObserver • Distribution
Κλάσεις του isearch (3) • SearchDataInitializer • keywords • query_nodes • max_queries • query_interval • max_cycles • proto
Πειράματα (1) • Οι αλγόριθμοι • Random Walk • Restricted Random Walk • Flooding • Restricted Flooding • Global Παράμετροι • Πλήθος κόμβων 1000 • Cycles=20 • WireKout k=20, power-law 10000
Πειράματα (2) • Αρχικοποίηση δεδομένων αναζήτησης • Δεδομένα με κατανομή Poisson • Keywords=1000 • Max_nodes =1 • Query_interval =1 • max_queries=1 • Καταγραφή επιτυχιών και μηνυμάτων