Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών Κοντοτάσιου Ιωάννα ΑΜ 35 Μπέσσας Απόστολος ΑΜ 37
Το πρόβλημα των αναφορών Κάθε ερευνητική εργασία απαιτείται να αναφέρει τις βιβλιογραφικές αναφορές της. Ο όγκος, όμως, των βιβλιογραφικών αναφορών που πρόκειται να χρησιμοποιήσει κάποιος ερευνητής αναμένεται να είναι πολύ μεγάλος και η συντήρηση/ενημέρωση της αντίστοιχης βάσης πολύ δύσκολη.
Λύση Προτείνουμε τη δημιουργία ενός ομότιμου δικτύου (peer to peer network) πάνω από το TCP/IP για το διαμοιρασμό βιβλιογραφικών αναφορών, αποθηκευμένων σε μορφή BibTeX, μεταξύ των ερευνητών. Η γνώση των αναφορών με αυτό τον τρόπο διανέμεται εύκολα και γρήγορα σε όλους και λόγω της μη κεντρικοποιημένης λύσης εξασφαλίζεται η στιβαρότητα του συστήματος.
Τι είναι το BibTeX Το BibTeX είναι ένα ειδικά διαμορφωμένο κείμενο για την αποθήκευση και διαχείριση βιβλιογραφικών αναφορών. Χρησιμοποιείται κυρίως σε συνδυασμό με το LaTeX, που είναι μια γλώσσα περιγραφής κειμένου για την παραγωγή υψηλής ποιότητας εγγράφων. Πχ @article { } title = {'A title'}, author = {'Me'}, year = {'007'}
Σχηματισμός δικτύου Το δίκτυο θα αποτελείται από τους υπολογιστές των ερευνητών που θέλουν να συμμετάσχουν σε αυτό. Κάθε υπολογιστής αποτελεί έναν κόμβο του δικτύου. Αφού κάποιος συνδεθεί, θα προσφέρει την πληροφορία του στο δίκτυο και θα μπορεί να προσπελάσει οποιαδήποτε βιβλιογραφική αναφορά που υπάρχει στο δίκτυο.
Το σύστημα Από τον τρόπο σχηματισμού του ομότιμου δικτύου προκύπτει: Το overlay δίκτυο, δηλαδή το δίκτυο (πάνω από το TCP/IP) που αποτελείται από τους κόμβους που συμμετέχουν στο ομότιμο δίκτυο και έχει ακμές, που συνδέουν τους κόμβους που γνωρίζουν ο ένας την ύπαρξη του άλλου. Οι γείτονες ενός κόμβου, δηλαδή οι υπόλοιποι κόμβοι που συνδέονται απ' ευθείας με αυτόν στο 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 φορές, αντιγράφεται η εγγραφή στον απαραίτητο αριθμό κόμβων. Η μέθοδος επιλογής τον κόμβων γίνετε με την ίδια σειρά όπως στον αλγόριθμο της αναζήτησης
Αναζήτηση διπλότυπων εγγραφών Ψάχνει για εγγραφές που αναφέρονται στα ίδια κείμενα και ενημερώνει τις εγγραφές του κόμβου που εκτέλεσε την λειτουργία έτσι, ώστε να έχει όσο το δυνατόν περισσότερα πεδία. Σημείωση: Εγγραφές θεωρείται ότι αναφέρονται στο ίδιο κείμενο όταν έχουν ίδιο συγγραφέα και τίτλο.
Αναζήτηση διπλότυπων εγγραφών: Επεξήγηση Όταν ένας κόμβος εκτελέσει την λειτουργία: Για κάθε βιβλιογραφική αναφορά του:. Εκτελεί αναζήτηση στο δίκτυο. Όταν βρει κάποια αναφορά που αναφέρεται στο ίδιο κείμενο, ενημερώνει την αναφορά σύμφωνα με την οποία γίνεται η αναζήτηση και διαγράφει την άλλη.. Όταν τελειώσει η αναζήτηση, επιστρέφεται η αναφορά σύμφωνα με την οποία γίνεται η αναζήτηση στον κόμβο που εκτέλεσε την λειτουργία, και αυτός αντικαθιστά την εγγραφή του με την ενημερωμένη.
Δομή κόμβου Κάθε κόμβος αποτελείται από: το back-end το οποίο υλοποιεί Τη διαχείριση της τοπικής βάσης αναφορών Την εκτέλεση των απαραίτητων λειτουργιών που απαιτούν την επικοινωνία μεταξύ των κόμβων του δικτύου. το front-end μέσω του οποίου ο χρήστης θα μπορεί να κάνει αιτήσεις για τις λειτουργίες που παρέχονται και να βλέπει τα αποτελέσματα μέσω μιας εύχρηστης html σελίδας.
Δομή κόμβου σχηματικά
Τεχνολογίες που χρησιμοποιήθηκαν Για την ανάπτυξη του back-end της εφαρμογής χρησιμοποιήθηκε η αντικειμενοστραφής γλώσσα προγραμματισμού ruby (ruby) και η βιβλιοθήκη druby (distributed Ruby), ενώ για το front-end χρησιμοποιήθηκε eruby (embedded σε html ruby). Λόγοι για αυτήν την επιλογή: Υποστήριξη κάποιων ισχυρών δομών που βοήθησαν ιδιαίτερα στην υλοποίηση. Ευκολία στην χρήση. Χρήση και εκμάθηση διαφορετικών τεχνολογιών.
Παράδειγμα αναζήτησης
Περαιτέρω πληροφορίες Για περισσότερες πληροφορίες σε σχέση με την υλοποίηση, τον κώδικα καθώς και την παρούσα παρουσίαση: http://www.ceid.upatras.gr/courses/katanemhmena/wiki/inde x.php/006-007:κατανεμημένα_συστήματα_ιι:ασκήσεις: Project:η_Ομάδα
Ευχαριστούμε