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

Άσκηση 4.1

Υλοποίηση ενός προσαρμοστικού πρωτοκόλλου με χρήση σειροποιήσιμου αντικειμένου

Θέση αρχείων = /ExerciseCode/C4/FourOne/

Σε αυτή την άσκηση θέλω να γράψετε ένα μικρό τμήμα κώδικα για ένα πελάτη ο οποίος χρησιμοποιεί ένα σειροποιήσιμο αντικείμενο για να υλοποιήσει ένα προσαρμοστικό πρωτόκολλο.

Το πρώτο μέρος αυτής της άσκησης περιέχει κώδικα ο οποίος προσδιορίζει ένα σειροποιήσιμο αντικείμενο. Ένα σειροποιήσιμο αντικείμενο μπορεί να σταλεί μέσω του δικτύου. Αυτό που στέλνεται δεν είναι μόνο η κατάσταση του αντικειμένου αλλά και ο κώδικας για τις μεθόδους του αντικειμένου. Για να μπορέσει ένα αντικείμενο να σταλεί μέσω του δικτύου, η κλάση του θα πρέπει να υλοποιεί την διεπαφή Serializable. Αυτή η διεπαφή δεν περιέχει ορισμούς μεθόδων, παρά μόνο ενεργεί ως ένδειξη στο σύστημα εκτέλεσης της Java ότι αυτό το αντικείμενο μπορεί να μεταφερθεί μέσω του δικτύου. Ας δούμε όμως κάποιες βασικές κλάσεις που αφορούν την άσκηση:

Το δεύτερο μέρος της άσκησης αποτελείται από ένα απλό αντικείμενο για τον διακομιστή. Υλοποιείται από την κλάση Server στην οποία υπάρχει κώδικας ο οποίος διαβάζει ένα αντικείμενο που στέλνεται από το δίκτυο και έπειτα εκτελεί τη μέθοδο  execute του αντικειμένου.

Το τελευταίο μέρος της άσκησης είναι η υλοποίηση ενός πελάτη ο οποίος θα επικοινωνεί με το διακομιστή.  Εδώ έχουμε τρεις κλάσεις::

Τα βήματα τα οποία πρέπει να ακολουθήσετε είναι τα εξής:

Ο πελάτης και ο διακομιστής επικοινωνούν χρησιμοποιώντας ένα προσαρμοστικό πρωτόκολλο.  Το πρωτόκολλο περιλαμβάνεται στις κλάσεις KeyReturner και NumberReturner. αν θέλετε να αλλάξετε το πρωτόκολλο, ας πούμε προσθέτοντας περισσότερες λειτουργίες, το μόνο που θα έπρεπε να κάνετε θα ήταν να προσθέσετε νέες υποκλάσεις της ProtocolObject. Δεν υπάρχει λόγος να αλλάξετε τον διακομιστή όμως.

Το προσαρμοστικό πρωτόκολλο βασίζεται στο γεγονός ότι η Java μπορεί να στείλει αντικείμενα τα οποία περιέχουν κώδικα και έχουν συγκεκριμένες τιμές μεταβλητών / κατάσταση μέσω του δικτύου, καθώς και ότι ο κώδικας μπορεί να εκτελεστεί σε απομακρυσμένο υπολογιστή.