Άσκηση 9.1
Ανάπτυξη ενός
απλού
διακομιστή
απομακρυσμένων
αντικειμένων
που
υλοποιεί
μια απλή
υπηρεσία
ονομασίας
Θέση αρχείων = /ExerciseCode/C9/NineOne/
Υπάρχουν
δύο μέρη σε
αυτή την άσκηση.
Το πρώτο
υλοποιεί
μια
απομακρυσμένη
υπηρεσία
ονομασίας.
Περιέχει τις
ακόλουθες
κλάσεις:
- LookupService
είναι η
διεπαφή που
καθορίζει
την υπηρεσία.
Περιέχει μια
μέθοδο getName
η οποία, με
δεδομένο μια
διεύθυνση IP,
σε μορφή
αλφαριθμητικού
,
επιστρέφει
το όνμα του
υπολογιστή
που
συνδέεται με
την IP αυτή.
- LookupServiceImpl
είναι η
υλοποίηση
της
υπηρεσίας.
Αποθηκεύει
τα ζεύγη όνομα
υπολογιστή
/IP διεύθυνση
σε ένα πίνακα
κατακερματισμού
και
κατασκευάζει
ένα
απομακρυσμένο
αντικείμενο
στο οποίο
μπορούν να
στέλνουν
μηνύματα οι
πελάτες.
Το τμήμα
του πελάτη
αποτελείται
από τις
ακόλουθες
κλάσεις:
- RMIClientSolution. Αυτή είναι η λύση.
- RMIClient. Αυτός
είναι ο
κώδικας που
πρέπει να
τροποποιήσετε.
Ο
κώδικας στη
κλάση θα
δημιουργήσει
μια αναφορά
στο
απομακρυσμένο
αντικείμενο
server και θα
στείλει ένα
μηνύμα getName σε
αυτό.
Για την
ολοκλήρωση
της άσκησης
πρέπει να
κάνετε τα
παρακάτω
βήματα.
Τροποποιήστε
το αρχείο
ασφαλείας
που
διαχειρίζεται
την πρόσβαση
σε
αντικείμενα RMI.
Αυτό το
αρχείο μπορεί
να βρεθεί στο
φάκελο /Java ROOT/jre/lib/security/.
Υπάρχουν 2
αρχεία
ασφαλείας,
βρείτε αυτό
με τύπο
πολιτικής (policy type).
Ανοίξτε το με
οποιονδήποτε
διοτθωτή
κειμένου και
αντικαταστήστε
τα
περιεχόμενα
του με
grant { //Allow everything permission
java.security.AllPermission;
};
Αυτό θα
επιτρέψει την
πρόσβαση σε
αντικείμενα RMI.
Για να
εκτελέσετε
την άσκηση
ακολουθείστε
τα
παρακάτω
βήματα.
- Συμβολομεταφράστε
όλες τις κλάσεις.
- Δημιουργήστε
τα στελέχη
και
σκελετούς
με το
εργαλείο rmic
που έρχεται
μαζί με την
Java.
- Ξεκινήστε
το μητρώο RMI.
Πρέπει να
ελέγξετε την
υλοποίηση
σας για να
δείτε πως θα
το κάνετε
αυτό. Μερικές
υλοποιήσεις
σας
επιτρέπουν να
το κάνετ
ανοίγοντας
ένα παράθυρο MSDOS
και
πληκτρολογώντας
rmiregistry.
- Ξεκινήστε
τον
διακομιστή
σε ένα
παράθυρο MSDOS.
Κατά την
εκτέλεση
του
διακομιστή
προσθέστε τη
γραμμή -Djava.rmi.server.codebase=file:///διαδρομή
προς τις
κλάσεις, στο
τέλος της
εντολής java. Θα
δείτε
ορισμένα
μηνύματα που
θα σας λένε
ότι ο
διακομιστής
ξεκίνησε και
είναι έτοιμος.
- Εκτελέστε
τη λύση για
τον πελάτη σε
ένα άλλο
παράθυρο MSDOS. Θα
δείτε ένα
μήνυμα
που θα
δείχνει το
όνομα του
υπολογιστή
που έχει τη
διεύθυνση IP
123.3.2.1.
- Τερματίστε
τον
διακομιστή
κλείνοντας
το σχετικό
παράθυρο MSDOS.
- Διαβάστε
τον κώδικα
στο LookupService και
LookupServiceImpl και
κατανοήστε
πως
χρησιμοποιούνται
για τη
δημιουργία
ενός
απομακρυσμένου
αντικειμένου.
- Διαβάστε
τον κώδικα
του RMIClient και
κατανοήστε
τι συμβαίνει.
- Εισάγετε
τον κώδικα Java
στο RMIClient που
ερωτά το
απομακρυσμένο
αντικείμενο
για το όνομα
του
υπολογιστή
με IP 123.3.2.1 και το
εμφανίζει.
Αυτό μπορεί να
γίνει με μία ή
δυο
δηλώσεις.
- Ξεκινήστε
τον
διακομιστή
όπως πρίν και
έπειτα
εκτελέστε
τον πελάτη.