Κατανεμημένες Εφαρμογές και Ηλεκτρονικό Εμπόριο
{Main Text}

Άσκηση 2.3

Ανάπτυξη ενός πελάτη που προσπελαύνει ένα απλό διακομιστή ονομάτων

Θέσh αρχείων = /ExerciseCode/C2/TwoThree/


Γι' αυτή την άσκηση υπάρχουν οι κλάσεις

Σε αυτή την άσκηση θέλω να αναπτύξετε ένα μικρό τμήμα ενός πελάτη που προσπελαύνει ένα διακομιστή γνωστό ως διακομιστή ονομάτων. Καθώς διαβάζετε το βιβλίο θα διαπιστώσετε οτι ο διακομιστής ονομάτων είναι σημαντικό τμήμα ενός κατανεμημένου συστήματος.  Αποθηκεύει στοιχεία σχετικά με τους πόρους ενός συστήματος και τα συσχετίζει με συμβολικά ονόματα. Σας δίνεται ο πλήρης κώδικας για μια πολύ απλή έκδοση ενός διακομιστή ονομάτων, τον οποίο δεν χρειάζεται να τροποποιήσετε. Αυτό που κάνει είναι να δημιουργεί μια πολύ απλή βάση δεδομένων που συσχετίζει τη διεύθυνση ενός υπολογιστή (με τη μορφή της εστιγμένης τετράδας) με κάποιο συμβολικό όνομα.  Αυτό γίνεται απλά μέσω της δημιουργίας ενός αντικειμένου Hashtable στο οποίο προστίθενται μερικά ζέυγη ονομάτων/διευθύνσεων. Ο διακομιστής εκτελεί μια διαρκή επανάληψη αναμένοντας κάποιο πελάτη να του στείλει ένα συμβολικό όνομα. ¨Οταν το παραλάβει, το αναζητά στη βάση δεδομένων και επιστρέφει τη διεύθυνση που αντιστοιχεί. Αν δεν αναγνωρίσει το όνομα τότε επιστρέφει ένα μήνυμα λάθους.

Θέλω να γράψετε τον κώδικα που απαιτείται για την επικοινωνόα του πελάτη με τον διακομιστή.  Ο πελάτης βασίζεται σε ένα αντικείμενο Frame που έχει δύο πεδία κειμένου: ένα που κρατά το όνομα που εισάγει ο χρήστης (nameField) και ένα άλλο που λαμβάνει τη διεύθυνση που επιστρέφει ο διακομιστής (addressField) . Έχω σημειώσει το σημείο εισαγωγής του κώδικα και το τμήμα που μπορείτε να αγνοήσετε.

Ο έλεγχος του πελάτη και του διακομιστή μπορεί να γίνει στον ίδιο υπολογιστή με την εκτέλεση δύο διαφορετικών προγραμμάτων.

Τα απαιτούμενα βήματα είναι: