Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών Κοντοτάσιου Ιωάννα ΑΜ 35 Μπέσσας Απόστολος ΑΜ 37
Σκοπός της άσκησης Ο σκοπός της άσκησης είναι η δημιουργία ενός ομότιμου δικτύου διαμοιρασμού βιβλιογραφικών αναφορών σε μορφή BibTeX που θα χρησιμοποιεί τα πρωτόκολλα TCP και IP.
Δομή εφαρμογής Θα υπάρχει Ένα back-end που θα αναλαμβάνει την εκτέλεση των απαραίτητων λειτουργιών και την επικοινωνία με τους υπόλοιπους κόμβους του δικτύου (ruby/drb). Ένα front-end μέσω του οποίου ο χρήστης θα χρησιμοποιεί το δίκτυο (eruby/html).
Τι είναι το BibTeX Το BibTeX είναι ένα ειδικά διαμορφωμένο κείμενο για την αποθήκευση και διαχείριση βιβλιογραφικών αναφορών. Χρησιμοποιείται κυρίως σε συνδυασμό με το LaTeX, που είναι μια γλώσσα περιγραφής κειμένου για την παραγωγή υψηλής ποιότητας εγγράφων. Πχ @article {title = {'A title'}, author = {'Me'}, year = {'007'}} Στα πλαίσια της άσκησης δημιουργήθηκε ένας απλός parser για αρχεία bib.
Το σύστημα (/3) Το σύστημα αποτελείται από ομότιμους κόμβους χρήστες, καθένας από τους οποίους προσθέτει στο σύστημα την πληροφορία από το αρχείο του με τις βιβλιογραφικές αναφορές. Δεν υπάρχει κάποιος κεντρικός κόμβος server που να διατηρεί είτε όλη την πληροφορία είτε την δομή του δικτύου.
Το σύστημα (/3) Ορίζουμε: Το overlay δίκτυο ως το δίκτυο (πάνω από το TCP/IP) που αποτελείται από τους κόμβους που συμμετέχουν στο ομότιμο δίκτυο και έχει ακμές, που συνδέουν τους κόμβους που γνωρίζουν ο ένας την ύπαρξη του άλλου και αντίστροφα. Γείτονας ενός κόμβου στο overlay δίκτυο είναι κάποιος κόμβος που συνδέεται απ' ευθείας με αυτόν στο overlay δίκτυο.
Το σύστημα (3/3) Κάθε κόμβος διατηρεί μία λίστα με τους γείτονές του και με τις τοπικά αποθηκευμένες βιβλιογραφικές αναφορές του.
Ανάπτυξη του δικτύου Αρχικά στο σύστημα υπάρχει ένας κόμβος, ο οποίος ξεκινάει το δίκτυο. Για να συμμετάσχει κάποιος άλλος κόμβος στο δίκτυο, θα πρέπει να γνωρίζει κάποιον κόμβο του δικτύου. Δημιουργείται μία ακμή μεταξύ των δύο κόμβων στο overlay δίκτυο. Ο νέος κόμβος αποτελεί γείτονα του κόμβου μέσω του οποίου συνδέθηκε και αντίστροφα.
Χαρακτηριστικά του δικτύου Το overlay δίκτυο, εξ ορισμού, είνια ακυκλικό, αφού κάθε φορά που ένας κόμβος συνδέεται, δημιουργεί μόνο μία σύνδεση με έναν υπάρχοντα κόμβο του δικτύου.
Παράδειγμα ανάπτυξης δικτύου null Αρχικά στο δίκτυο υπάρχει μόνο ο κόμβος, ο οποίος δεν έχει κανέναν γείτονα
Παράδειγμα ανάπτυξης δικτύου null null Κόμβος θέλει να συμμετάσχει στο δίκτυο και γνωρίζει τον κόμβο
Παράδειγμα ανάπτυξης δικτύου Οι κόμβοι και γίνονται γείτονες
Παράδειγμα ανάπτυξης δικτύου 3 null Κόμβος 3 θέλει να συμμετάσχει στο δίκτυο και γνωρίζει τον κόμβο
Παράδειγμα ανάπτυξης δικτύου,3 3 κόμβοι και 3 γίνονται γείτονες
Παράδειγμα ανάπτυξης δικτύου,3 4 3 null Κόμβος 4 θέλει να συμμετάσχει στο δίκτυο και γνωρίζει τον κόμβο
Παράδειγμα ανάπτυξης δικτύου,4,3 4 3 Οι κόμβοι και 4 γίνονται γείτονες
Λειτουργίες που παρέχονται Αναζήτηση βιβλιογραφικών αναφορών με βάση τα κριτήρια τίτλος, συγγραφέας, έτος δημοσίευσης ή κάποιος συνδυασμός αυτών. Δημιουργία αντιγράφων των βιβλιογραφικών αναφορών κάποιου κόμβου. Εύρεση διπλοτύπων των εγγραφών ενός κόμβου στο δίκτυο, διαγραφή τους και ενημέρωση της αρχικής εγγραφής του κόμβου.
Αναζήτηση Δεδομένων κάποιων κριτηρίων που θέτει ο χρήστης πραγματοποιείται αναζήτηση στις εγγραφές κάθε κόμβου του δικτύου για αναφορές που πληρούν τα κριτήρια. Αυτές οι αναφορές επιστρέφονται στο χρήστη.
Ανάλυση αναζήτησης Όταν ένας κόμβος εκτελεί αναζήτηση:. Ψάχνει τις δικές του αναφορές. Στέλνει μήνυμα για αναζήτηση σε έναν ένα τους γείτονές του περιμένοντας τα αποτελέσματα. 3. Αν κάποιος κόμβος δεν έχει (άλλους) γείτονες, επιστρέφει τις εγγραφές που ξέρει ότι ταιριάζουν. 4. Αναδρομικά αυτοί εκτελούν την ίδια διαδικασία.
Παράδειγμα αναζήτησης,4 Search self,3,5 5 4 3 Ο κόμβος εκτελεί αναζήτηση. Αρχικά ψάχνει τοπικά για βιβλιογραφικές αναφορές που συμφωνούν με τα κριτήρια που έθεσε
Παράδειγμα αναζήτησης,4 Search Search {for node },3,5 5 4 3 Ο κόμβος στέλνει μήνυμα για αναζήτηση στον κόμβο
Παράδειγμα αναζήτησης Search self,4 Search,3,5 5 4 3 Ο κόμβος αρχίζει να ψάχνει τις τοπικές βιβλιογραφικές αναφορές του
Παράδειγμα αναζήτησης Search 4,4 Search,3,5 5 Search {for node } 4 3 Ο κόμβος στέλνει μήνυμα αναζήτησης στον 4. Δεν έστειλε στον γιατί από αυτόν πήρε αρχικά το μήνυμα
Παράδειγμα αναζήτησης Search 4,4 Search,3,5 5 4 3 Search self Ο κόμβος 4 αρχίζει να ψάχνει τις τοπικές αναφορές του
Παράδειγμα αναζήτησης Search 4,4 Search,3,5 5 Return result 4 3 Ο κόμβος 4 τελειώνει την αναζήτηση και αφού δεν έχει γείτονες να προωθήσει το μήνυμα αναζήτησης, στέλνει τα αποτελέσματα στον
Παράδειγμα αναζήτησης,4 Return result Search,3,5 5 4 3 Ο κόμβος τελειώνει την αναζήτηση και αφού δεν έχει άλλους γείτονες να προωθήσει το μήνυμα αναζήτησης, στέλνει τα αποτελέσματα στον
Παράδειγμα αναζήτησης,4 Search,3,5 5 Search {for node } 4 3 Ο κόμβος προωθεί το μήνυμα αναζήτησης στον επόμενο γείτονά του
Παράδειγμα αναζήτησης,4 Search,3,5 5 4 3 Search self Ο κόμβος 3 αρχίζει την τοπική αναζήτηση
Παράδειγμα αναζήτησης,4 Search,3,5 5 Return result 4 3 Ο κόμβος 3 επιστρέφει τα αποτελέσματα στον κόμβο
Παράδειγμα αναζήτησης,4 Search 3,3,5 5 4 3 Ο κόμβος στέλνει μήνυμα αναζήτησης στον κόμβο 5
Παράδειγμα αναζήτησης,4 Search 3,3,5 Search {for node } 5 4 3 Ο κόμβος στέλνει μήνυμα αναζήτησης στον κόμβο 5
Παράδειγμα αναζήτησης,4 Search 3,3,5 5 4 3 Search self Ο κόμβος 5 αρχίζει να ψάχνει τις τοπικές βιβλιογραφικές αναφορές του
Παράδειγμα αναζήτησης,4 Search 3,3,5 5 Return result 4 3 Ο κόμβος 5 επιστρέφει τα αποτελέσματά του στον
Παράδειγμα αναζήτησης,4,3,5 5 4 3 Τέλος αναζήτησης. Ο κόμβος έχει λάβει όλα τα αποτελέσματα του ταιριάζουν στα κριτήρια που έθεσε
Δημιουργία αντιγράφων Εξασφαλίζει ότι στο δίκτυο θα υπάρχουν τουλάχιστον 3 αντίγραφα κάθε βιβλιογραφικής αναφοράς που έχει ο κόμβος που εκτέλεσε την λειτουργία.
Δημιουργία αντιγράφων: Επεξήγηση λειτουργίας Όταν ένας κόμβος ζητήσει δημιουργία αντιγράφων για κάθε βιβλιογραφική του αναφορά: Εκτελεί αναζήτηση για να βρει πόσες φορές υπάρχει αυτή στο δικτύου Αν υπάρχει 3 φορές δεν κάνει τίποτα Αν υπάρχει λιγότερες από 3 φορές, αντιγράφεται η εγγραφή στον απαραίτητο αριθμό κόμβων. Η μέθοδος επιλογής τον κόμβων γίνετε με την ίδια σειρά όπως στον αλγόριθμο της αναζήτησης
Αναζήτηση διπλότυπων εγγραφών Ψάχνει για εγγραφές που αναφέρονται στα ίδια κείμενα και ενημερώνει τις εγγραφές του κόμβου που εκτέλεσε την λειτουργία έτσι, ώστε να έχει όσο το δυνατόν περισσότερα πεδία. Σημείωση: Εγγραφές θεωρείται ότι αναφέρονται στο ίδιο κείμενο όταν έχουν ίδιο συγγραφέα και τίτλο.
Αναζήτηση διπλότυπων εγγραφών: Επεξήγηση Όταν ένας κόμβος εκτελέσει την λειτουργία: Για κάθε βιβλιογραφική αναφορά του:. Εκτελεί αναζήτηση στο δίκτυο. Όταν βρει κάποια αναφορά που αναφέρεται στο ίδιο κείμενο, ενημερώνει την αναφορά σύμφωνα με την οποία γίνεται η αναζήτηση και διαγράφει την άλλη.. Όταν τελειώσει η αναζήτηση, επιστρέφεται η αναφορά σύμφωνα με την οποία γίνεται η αναζήτηση στον κόμβο που εκτέλεσε την λειτουργία, και αυτός αντικαθιστά την εγγραφή του με την ενημερωμένη.
Παράδειγμα αναζήτησης
Ιστοσελίδα εργασίας Για περαιτέρω πληροφορίες και αντίστοιχο κώδικα http://www.ceid.upatras.gr/courses/katanemhmena/wiki/ index.php/006-007:κατανεμημένα_συστήματα_ιι:ασκήσεις:project: η_ομάδα