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 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 init.peak example.aggregation.PeakDistributionInitializer 15 init.peak.value init.peak.protocol avg init.lin LinearDistribution 19 init.lin.protocol avg 20 init.lin.max init.lin.min # you can change this to select the peak initializer instead 24 include.init rnd lin 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 Καταγραφή επιτυχιών και μηνυμάτων
Regular Graph
Power-law graph