Metadata-based Mp3 Search Using OpenDHT®


» Περίληψη
» Πρόγραμμα
» OpenDHT
» Screenshots
» Αναφορά
» Κώδικας
» Επικοινωνία
Περίληψη

Τα τελευταία χρόνια η χρήση των συστημάτων ομοτίμων κόμβων (p2p systems) έχει μεγάλη απήχηση μεταξύ των χρηστών του διαδικτύου. Μάλιστα η διάδοση τους είναι τόσο εκτεταμένη στην κοινότητα των χρηστών που πλέον το μεγαλύτερο ποσοστό μηνυμάτων που διακινούνται στο διαδίκτυο προέρχεται από τέτοια συστήματα.

Η πιο δημοφιλής χρήση των συστημάτων αυτών είναι ο διαμοιρασμός αρχείων. Ο χρήστης συνήθως αναζητά αρχεία πολυμέσων, όπως εικόνες, video ή αρχεία ήχου, δίνοντας κάποιες λέξεις-κλειδιά. Το πρόγραμμα με το οποίο συνδέεται στο σύστημα του επιστρέφει μία λίστα από αρχεία που το ονομά τους περιέχει κάποιες απο αυτές τις λέξεις.

Η αναζήτηση βάσει των λέξεων που περιέχονται στο όνομα ενός αρχείου έχει διάφορα μειονεκτήματα, το κυριότερο εκ των οποίων είναι ότι δεν είναι δυνατές πιο σύνθετες αναζητήσεις. Για παράδειγμα, ας υποθέσουμε ότι υπάρχει ένα αρχείο ήχου που έχει σαν όνομα τον τίτλο του τραγουδιού. Θα θέλαμε να υπήρχε η δυνατότητα να επιστραφεί το αρχείο ακόμα και αν κάναμε μια αναζήτηση με βάση το όνομα του συνθέτη του τραγουδιού ή τον τίτλο του άλμπουμ στο οποίο ανήκει το συγκεκριμένο τραγούδι.

Στην εργασία αυτή σχεδιάσαμε και υλοποιήσαμε ένα σύστημα διαμοιρασμού αρχείων ήχου τύπου mp3 (mpeg-layer-ΙΙΙ), το οποίο αντιμετωπίζει το προηγούμενο πρόβλημα. Χρησιμοποιήσαμε την κωδικοποίηση mp3 τόσο γιατί είναι πολύ διαδομένη για αρχεία ήχου -το μεγαλύτερο μέρος αρχείων ήχου που ανταλλάσονται είναι αυτής της μορφής- όσο και επειδή έχει ένα πολύ τεκμηριωμένο πρότυπο αποθήκευσης των metadata του, το id3v1. H εφαρμογή μας έχει τη δυνατότα να κάνει αρκετά σύνθετες αναζητήσεις βάσει των metadata των αρχείων, όπως για παράδειγμα βάσει του τίτλου του τραγουδιού, του καλλιτέχνη/συγκροτήματος, του άλμπουμ στο οποίο ανήκει, του έτους παραγωγής, και διαφόρων άλλων στοιχείων.

Πρόγραμμα

Το πρόγραμμα που αναπτύξαμε αρχικά εξάγει από τα αρχεία τα metadata τους, τα οποία στη συνέχεια αποθηκεύει σε ένα κατανεμημένο ευρετήριο. Από τη στιγμή που τα metadata ενός τραγουδιού αποθηκευτούν στο ευρετήριο, οποιοσδήποτε χρήστης μπορεί να αναζητήσει και να κατεβάσει το συγκεκριμένο αρχείο.

Τα metadata εξάγονται από τα αρχεία χρησιμοποιώντας την (οpen-source) βιβλιοθήκη entagged, η οποία παρέχει ένα API για την επεξεργασία των tags αρχείων mp3.

Το σύστημα μας χρησιμοποιεί το OpenDHT για την αποθήκευση των metadata που εξάγονται απο τα αρχεία των χρηστών που συμμετέχουν στο σύστημα. Η προσπέλαση του OpenDHT γίνεται μέσω XML RPCs .

Το πρόγραμμα αναπτύχθηκε σε γλώσσα Java και είναι πολυνηματικό.

OpenDHT

Το OpenDHT είναι ένας κατανεμημένος πίνακας κατακερματισμού που δίνει τη δυνατότητα γρήγορων αναζητήσεων. Παρέχει ένα απλό interface με δύο βασικές λειτουργίες για την αποθήκευση και ανάκτηση ζευγών <κλειδί,τιμή>, την put(key,value) και την get(key).

Ο κατανεμημένος πίνακας κατακερματισμού του OpenDHT υλοποιείται από το Bamboo DHT. Στην πραγματικότητα πρόκειται για το ίδιο project.

Τέλος, το OpenDHT βασίζεται στο PlanetLab. Συγκεκριμένα, το OpenDHT εκτελείται από περίπου 200 κόμβους του PlanetLab.

Screenshots

Search files


Download files


Upload files


Share files

Αναφορά
Κατέβασμα της τελικής αναφοράς και παρουσίασης:
Κώδικας
Κατέβασμα του πηγαίου κώδικα: Κατέβασμα βοηθητικών βιβλιοθηκών:
Επικοινωνία
Κοσμάς Ελευθέριος, ekosmas [at] cs.uoi.gr
Μαργαρίτης Γιώργος, gmargari [at] cs.uoi.gr
Πετρόχειλος Οδυσσέας, csst0170 [at] cs.uoi.gr



Copyright © 2007 - Giorgos Margaritis, Lefteris Kosmas, Odisseas Petroxeilos