Τα τελευταία χρόνια η χρήση των συστημάτων ομοτίμων κόμβων (p2p systems) έχει μεγάλη απήχηση μεταξύ των χρηστών του διαδικτύου. Μάλιστα η διάδοση τους είναι τόσο εκτεταμένη στην κοινότητα των χρηστών που πλέον το μεγαλύτερο ποσοστό μηνυμάτων που διακινούνται στο διαδίκτυο προέρχεται από τέτοια συστήματα.
Η πιο δημοφιλής χρήση των συστημάτων αυτών είναι ο διαμοιρασμός αρχείων. Ο χρήστης συνήθως αναζητά αρχεία πολυμέσων, όπως εικόνες, video ή αρχεία ήχου, δίνοντας κάποιες λέξεις-κλειδιά. Το πρόγραμμα με το οποίο συνδέεται στο σύστημα του επιστρέφει μία λίστα από αρχεία που το ονομά τους περιέχει κάποιες απο αυτές τις λέξεις.
Η αναζήτηση βάσει των λέξεων που περιέχονται στο όνομα ενός αρχείου έχει διάφορα μειονεκτήματα, το κυριότερο εκ των οποίων είναι ότι δεν είναι δυνατές πιο σύνθετες αναζητήσεις. Για παράδειγμα, ας υποθέσουμε ότι υπάρχει ένα αρχείο ήχου που έχει σαν όνομα τον τίτλο του τραγουδιού. Θα θέλαμε να υπήρχε η δυνατότητα να επιστραφεί το αρχείο ακόμα και αν κάναμε μια αναζήτηση με βάση το όνομα του συνθέτη του τραγουδιού ή τον τίτλο του άλμπουμ στο οποίο ανήκει το συγκεκριμένο τραγούδι.
Στην εργασία αυτή σχεδιάσαμε και υλοποιήσαμε ένα σύστημα διαμοιρασμού αρχείων ήχου τύπου mp3 (mpeg-layer-ΙΙΙ), το οποίο αντιμετωπίζει το προηγούμενο πρόβλημα. Χρησιμοποιήσαμε την κωδικοποίηση mp3 τόσο γιατί είναι πολύ διαδομένη για αρχεία ήχου -το μεγαλύτερο μέρος αρχείων ήχου που ανταλλάσονται είναι αυτής της μορφής- όσο και επειδή έχει ένα πολύ τεκμηριωμένο πρότυπο αποθήκευσης των metadata του, το id3v1. H εφαρμογή μας έχει τη δυνατότα να κάνει αρκετά σύνθετες αναζητήσεις βάσει των metadata των αρχείων, όπως για παράδειγμα βάσει του τίτλου του τραγουδιού, του καλλιτέχνη/συγκροτήματος, του άλμπουμ στο οποίο ανήκει, του έτους παραγωγής, και διαφόρων άλλων στοιχείων.
|