Κάθε ΚΠΚ υλοποιεί μία και μοναδική λειτουργία, την
. Αυτή παράγει την τοποθεσία στο δίκτυο του κόμβου που είναι υπεύθυνος για το δεδομένο κλειδί. Για παράδειγμα, μία απλή κατανεμημένη εφαρμογή αποθήκευσης μπορεί να χρησιμοποιήσει αυτή τη διεπαφή ως εξής: Για να δημοσιοποιήσει ένα αρχείο υπό ένα μοναδικό όνομα (κλειδί), ο πάροχος μετατρέπει το όνομα του σε ένα αριθμητικό κλειδί χρησιμοποιώντας μία συνάρτηση κατακερματισμού, όπως η SHA-1 (Secure Hash Algorithm-1) και μετά καλεί την
, η οποία θα του επιστρέψει τον κόμβο που είναι υπεύθυνος για αυτό το κλειδί. Στη συνέχεια στέλνει σε αυτόν το αρχείο, το οποίο και αποθηκεύεται. Ένας καταναλωτής που επιθυμεί να διαβάσει αυτό το αρχείο, γνωρίζοντας, φυσικά το όνομά του, το μετατρέπει με την παραπάνω συνάρτηση στο αριθμητικό του κλειδί και καλεί την
. Ο υπεύθυνος κόμβος θα απαντήσει στέλνοντας ένα αντίγραφο σε αυτόν.
Αυτή είναι η διεπαφή που πρέπει να προσφέρει και να υλοποιεί κάθε τέτοιος ΚΠΚ. Παρ' όλα αυτά, οι ΚΠΚ διακρίνονται σε διάφορες κατηγορίες ανάλογα με τον τρόπο που υλοποιούν τις επόμενες διαδικασίες:
Figure:
Μονοδιάστατη δρομολόγηση στο σύστημα Chord.
|
- Αντιστοίχηση κλειδιών σε κόμβους: τα κλειδιά και οι κόμβοι αναγνωρίζονται με έναν δυαδικό αριθμό που στη βιβλιογραφία αναφέρεται ως αναγνωριστικό (identifier, ID). Τα κλειδιά αποθηκεύονται σε έναν ή περισσότερους κόμβους με αναγνωριστικά ````κοντά'''' στο κλειδί. Η έννοια του ````κοντά'''' είναι σχετική και ποικίλει από σύστημα σε σύστημα. Καθορίζεται από τη συνάρτηση απόστασης (distance function). Περισσότερα θα αναφερθούν παρακάτω.
- Δρομολόγηση μηνυμάτων για επερωτήσεις κλειδιών: κάθε κόμβος που λαμβάνει ένα τέτοιο μήνυμα, αν έχει το κλειδί
, τότε απαντάει με αυτόν στον αποστολέα του μηνύματος, διαφορετικά συμβουλευόμενος τις τοπικές του πληροφορίες προωθεί το μήνυμα στους γείτονές του. Αυτές οι τοπικές πληροφορίες συνήθως υλοποιούνται με τη δομή του πίνακα δρομολόγησης (routing table). Και σε αυτή τη διαδικασία υπάρχει μία διαφοροποίηση μεταξύ των συστημάτων που προσφέρουν την διεπαφή του ΚΠΚ. Η δρομολόγηση και η συντήρηση των πινάκων δρομολόγησης μπορεί να γίνει είτε σε μία διάσταση (βλέπε Σχήμα 2.2), είτε σε πολλαπλές (βλέπε Σχήμα 2.3).
Figure:
Δισδιάστατη δρομολόγηση του συστήματος CAN και προσομοίωση εκτέλεσης της διαδικασίας αναζήτησης (lookup()) .
|
- Διαχείριση δυναμικότητας δικτύου: οι ΚΠΚ μπορούν να προσαρμόζονται σε εισαγωγές, αναχωρήσεις και αποτυχίες κόμβων και να ανανεώνουν τους πίνακες δρομολόγησης με μικρή προσπάθεια. Σε αυτή την ενότητα εμπίπτει και η ανάπτυξη αλγορίθμων που προσφέρουν τη δυνατότητα ανοχής σε σφάλματα (fault tolerance) καθώς επίσης και ανάκαμψης από αυτά.
Στις επόμενες υποενότητες θα αναφερθούμε σε δύο σημαντικά Συστήματα Ομότιμων Κόμβων που υλοποιούν και προσφέρουν τη διεπαφή του Κατανεμημένου Πίνακα Κατακερματισμού με διαφορετικό τρόπο όσον αφορά στα προαναφερθέντα θέματα. Αυτά είναι τα Chord [14] και το Pastry [3].
Charalampos Nikolaou
2008-04-02