Πελάτες (Clients)

Η λειτουργία ενός πελάτη δεν είναι προκαθορισμένη με την έννοια που είναι για έναν υπερ-κόμβο, που αναμένει να αποδεχθεί και να εξυπηρετήσει αιτήσεις από πελάτες. Παρ' όλα αυτά, η λειτουργία του είναι συγκεκριμένη και υποδεικνύεται ρητά από την αρχιτεκτονική LibraRing και τα πρωτόκολλά της. Έτσι, ένας πελάτης μπορεί να συμμετάσχει στο δίκτυο LibraRing, μέσω του πρωτοκόλλου συμμετοχής (καλώντας την συνάρτηση $ newClientJoin()$ ), να συνδεθεί ή να αποσυνδεθεί από αυτό μέσω του πρωτοκόλλου σύνδεσης / αποσύνδεσης (καλώντας τη συνάρτηση $ connectClient()$ / $ disconnectClient()$ αντίστοιχα) και να δημιουργήσει μία επερώτηση στιγμιαία ή διαρκείας (καλώντας τη συνάρτηση $ newQuery()$ ) καταθέτοντάς την σε έναν υπερ-κόμβο (καλώντας τη συνάρτηση $ submitQuery()$ ). Επιπροσθέτως, κατά τη δημιουργία ενός κόμβου-πελάτη αυτός αναμένει αιτήσεις από έναν υπερ-κόμβο. Αυτό γίνεται για την παραλαβή πιθανών ειδοποιήσεων από το σημείο πρόσβασής του, που είχαν δημιουργηθεί κατά το διάστημα που ο πελάτης ήταν αποσυνδεδεμένος.

Ως επέκταση της αρχιτεκτονικής LibraRing έχει προστεθεί η λειτουργικότητα της απόκτησης ενός πόρου -- δημοσίευσης -- από τον πάροχο που τον δημοσίευσε. Για να γίνει κάτι τέτοιο, τη στιγμή που ο πελάτης λαμβάνει μία ειδοποίηση ή μία απάντηση από μία στιγμιαία επερώτηση, αιτεί από τον πάροχο κάθε πόρου τη δημοσίευση. Αυτό γίνεται μέσω των συναρτήσεων $ connectToProvider()$ και $ providerRequest()$ και προϋποθέτει ότι ο πάροχος θα είναι συνδεδεμένος και θα αναμένει την εξυπηρέτηση τέτοιων αιτήσεων στην κατάλληλη διεύθυνση και πόρτα (ή θύρα) που είχε ορίσει στην περιγραφή αυτού του πόρου που δημοσίευσε στο δίκτυο LibraRing.



Charalampos Nikolaou 2008-04-02