ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ



Σχετικά έγγραφα
14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

Ειδικά Θέματα Προγραμματισμού

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

HY335 4ο Φροντιστήριο

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Διαδικαστικά

Διδάσκων: Παναγιώτης Ανδρέου

ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ-ENOTHTAΣ: ΜΑΘΗΜΑ WORD

Κατανεμημένα Συστήματα

Γενικά (για τις γραπτές εξετάσεις)

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

Συντήρηση και Αντιμετώπιση συχνών προβλημάτων ΣΕΠΕΗΥ ΕΠΙΜΟΡΦΩΤΙΚΗ ΣΥΝΑΝΤΗΣΗ ΥΠΕΥΘΥΝΩΝ ΣΕΠΕΗΥ ΑΙΤ/ΝΙΑΣ

Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA ΣΤΗΝ ΤΕΕ: ΜΙΑ ΠΡΟΤΑΣΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙΔΕΣ

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Εγκατάσταση του PiNet για διαχείριση εργαστηρίου με Raspberry Pi. Συγγραφέας: Τριχόπουλος Γιώργος Δεκέμβριος 2016

Δίκτυα Υπολογιστών I Εργαστήρια

server : Ο υπολογιστής του καθηγητή που θέλουμε να ελέγχει τους υπόλοιπους του εργαστηρίου client : Οι υπολογιστές των μαθητών

Συνοπτικός Οδηγός Χρήσης του Moodle για το Φοιτητή

Το βιβλίο διευθύνσεων των Windows

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2

Δημ. Σχ. Μεγάλης Παναγίας Σχολικό έτος: ΤΑΞΗ: Ε1 Δημοτικού. Υπεύθυνος εκπαιδευτικός: Κίκας Ιωάννης

ΘΕΜΑ : «Από την ΜicroWorlds Pro στην Python. Μια Βιωματική Διδακτική Πρόταση.»

ΣυνοπτικόςΟδηγόςΧρήσηςτουMoodle για το Φοιτητή

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα.

Δημιουργία «Ηλεκτρονικής τάξης» στη πλατφόρμα e_class του Π.Σ.Δ. (Πανελλήνιο Σχολικό Δίκτυο)

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ 2 η ΕΡΓΑΣΙΑ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ: Πρότυπο FDDI

ΘΕΜΑ : Μια βιωματική διδακτική πρόταση στην Πληροφορική Γ Γυμνασίου με θέμα: «Από τον Αλγόριθμο στον Προγραμματισμό σε περιβάλλον MicroWorlds Pro»

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

ΚΑΤΑΣΚΕΥΗ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΩΝ ΜΕ ΧΡΗΣΗ LOGO

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

50 Ketseo,Theoni Sarif,Omar 104

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΔΙΜΕΠΑ Πρακτική Άσκηση Μαθηματικών Β' Φάση. Εργασία πειραματισμού με μαθητή

Μαθηματικά και Πληροφορική. Διδακτική Αξιοποίηση του Διαδικτύου για τη Μελέτη και την Αυτο-αξιολόγηση των Μαθητών.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Ειδικά Θέματα Δικτύων Ι

Προγραμματισμός ΙI (Θ)

Ψηφιακό Σχολείο 2.0. Βασικές έννοιες Υποδομές Ηλεκτρονική Μάθηση Διαχείριση Ηλεκτρονικής Τάξης Οργάνωση Ηλεκτρονικού Μαθήματος

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

ΥΠΟΛΟΓΙΣΤΙΚΕΣ & ΔΙΚΤΥΑΚΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΣΤΑ ΤΕΕ ΤΟ ΠΛΑΙΣΙΟ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ(Α & Β ΟΜΑΔΑ) ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 11/12/2011 ΑΠΑΝΤΗΣΕΙΣ

Εφαρμογές Σειριακής Επικοινωνίας

Διδακτικές προσεγγίσεις στην Πληροφορική. Η εποικοδομιστική προσέγγιση για τη γνώση. ως ενεργητική και όχι παθητική διαδικασία

Το πρόγραμμα Skype (έκδοση )

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

2η Προγραµµατιστική Εργασία

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ: ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ «ΤΑ ΚΛΑΣΜΑΤΑ»

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ Να διατηρηθεί μέχρι... Βαθμός Ασφαλείας...

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

6. Εξαιρέσεις στη γλώσσα Java

ΔΙΑΓΩΝΙΣΜΑ B ΤΕΤΡΑΜΗΝΟΥ - ΘΕΩΡΙΑ

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

ΠΡΑΚΤΙΚΗ ΑΣΚΗΣΗ 2013/14. Μιχαηλίδου Αγγελική Λάλας Γεώργιος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΙΔΑΓΩΓΙΚΟ ΤΜΗΜΑ ΔΗΜΟΤΙΚΗΣ ΕΚΠΑΙΔΕΥΣΗΣ

ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΠΟΛΥΜΕΣΑ- ΔΙΚΤΥΑ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

Εγχειρίδιο Χρήσης για Εκπαιδευτές/Διοικητικούς. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο

Εξοικείωση με τις εντολές ipconfig και ping

Πώς να διαβάζεις στο σπίτι γρήγορα και αποτελεσματικά για μαθητές τάξης Teens 2 & 3 (B & C Senior)

Ηλεκτρονικό Εργαστήριο Φυσικής. ρακόπουλος Γρηγόρης, ΠΕ04, Ελληνογαλλική Σχολή Καλαµαρί,

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

«Ψηφιακή τάξη: Φύλλα εργασίας, χρήση σε ηλεκτρονική μορφή, προβλήματα κατά την εφαρμογή, ανταπόκριση και συμμετοχή»

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΑΞΙΟΠΟΙΗΣΗ ΤΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΤΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΣΤΗ ΔΙΔΑΚΤΙΚΗ ΠΡΑΞΗ. Η ΠΕΡΙΠΤΩΣΗ ΤΩΝ ΚΥΚΛΑΔΩΝ

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Εισαγωγή στους Υπολογιστές

Interactive Power Point

1 1η ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΕΜΠΕΔΩΣΗΣ ΓΝΩΣΤΙΚΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ ΠΕΡΙΓΡΑΦΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004

Οντοκεντρικός Προγραμματισμός

Κεφάλαιο 1. Νήματα (Threads). Time Sharing

Εγχειρίδιο Χρήσης για Διαχειριστές. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

Ταυτότητα εκπαιδευτικού σεναρίου. Γνώσεις και πρότερες ιδέες των μαθητών. Σκοπός και στόχοι

ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΟΡΙΟΥ ΣΥΝΑΡΤΗΣΗΣ

Linux Terminal Server Project

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

Transcript:

3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 145 ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ Βραχνός Ευριπίδης Καθηγητής Πληροφορικής ΤΕΕ Μήλου evrachnos@gmail.com http://www.db-net.aueb.gr/evry/ ΠΕΡΙΛΗΨΗ Στην εργασία αυτή κάνουμε χρήση της βιβλιοθήκης net της java, για την υλοποίηση μιας δικτυακής εφαρμογής, που έχει σαν σκοπό την καλύτερη κατανόηση κάποιων τοπολογιών και προτύπων που διδάσκονται στο μάθημα Μετάδοση Δεδομένων και Δίκτυα Υπολογιστών του Β κύκλου της ειδικότητας πληροφορικής του ΤΕΕ. Πιο συγκεκριμένα θα δείξουμε πως μπορούν οι μαθητές με την κατάλληλη καθοδήγηση να υλοποιήσουν αρχικά την τοπολογία του δακτυλίου και στη συνέχεια το πρότυπο δακτυλίου με κουπόνι. Οι μαθητές δούλεψαν ανά ζεύγη. Ένας υλοποίησε τον εξυπηρέτη(server) και ο άλλος τον εξυπηρετούμενο(client). Πιστεύουμε ότι οι μαθητές θα πρέπει να υλοποιούν αντίστοιχες ασκήσεις στα πλαίσια του μαθήματος των δικτύων. Η βιβλιοθήκη net της java μπορεί να χρησιμοποιηθεί έτσι ώστε να αποφύγουμε ανούσιες λεπτομέρειες και να επικεντρωθούμε στις βασικές έννοιες όπως θα δείξουμε στη συνέχεια. ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: java, net, δίκτυα υπολογιστών, ΤΕΕ, δικτυακός προγραμματισμός, τοπολογία δακτυλίου με κουπόνι ΕΙΣΑΓΩΓΗ Το μάθημα Δίκτυα Υπολογιστών του Β κύκλου του ΤΕΕ που εξετάζεται και πανελλαδικά είναι κατά βάση θεωρητικό. Το εργαστήριο του μαθήματος, όσον αφορά τα πρότυπα επικοινωνίας αναλίσκεται σε διάφορα λογισμικά προσομοίωσης που υπάρχουν και με τα οποία οι μαθητές μπορούν να παρακολουθήσουν τη μετάδοση πακέτων μεταξύ υπολογιστών με βάση τα συγκεκριμένα πρότυπα. Εμείς ακολουθήσαμε μια άλλη προσέγγιση όσον αφορά το θέμα του εργαστηρίου. Αντί οι μαθητές να είναι παθητικοί θεατές ενός λογισμικού προσομοίωσης, ίσως θα ήταν καλύτερα να υλοποιήσουν οι ίδιοι τα πρωτόκολλα αυτά. Αυτό ίσως να ακούγεται λίγο εξωπραγματικό για τα δεδομένα του ΤΕΕ, θα δείξουμε όμως ότι δεν είναι. Το μόνο που μας έλειπε εκτός από την καλή θέληση, ήταν μια γλώσσα προγραμματισμού που να υποστηρίζει προγραμματισμό σε ένα τοπικό δίκτυο. Στην ύλη του μαθήματος Προγραμματιστικά Εργαλεία στο Διαδίκτυο περιλαμβάνονται τα γνωστά java applets. Έτσι βρήκαμε την ευκαιρία να εξηγήσουμε κάποιες βασικές έννοιες της γλώσσας και να κάνουμε κάποιες ασκήσεις ώστε οι μαθητές να κατανοήσουν τις βασικές δομές της. Όλα αυτά έγιναν με απλά παραδείγματα και με την πρόθεση από μέρους μας να κρύβουμε σε κάθε άσκηση τα δυσνόητα μέρη της γλώσσας όπως αυτό των λειτουργιών εισόδου/εξόδου. Αυτό το καταφέραμε με την υλοποίηση μερικών πολύ απλών μεθόδων για είσοδο και έξοδο τις οποίες χρησιμοποίησαν οι μαθητές. Οι διδακτικοί μας στόχοι σε αυτή τη δραστηριότητα είναι οι παρακάτω Κατανόηση της αρχιτεκτονικής του μοντέλου πελάτη-εξυπηρέτη

146 3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ Κατανόηση των τοπολογιών τοπικών δικτύων Σχήμα 1. Οι τέσσερις βασικές τοπολογίες που περιλαμβάνει το μάθημα: δίαυλος, δακτύλιος, αστέρας και δέντρο. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Η άσκηση έλαβε χώρα στο εργαστήριο του ΤΕΕ το οποίο περιλαμβάνει δώδεκα σταθμούς εργασίας με Windows 2000, και τον κεντρικό υπολογιστή που τρέχει Windows 2000 Server. Όλα αυτά συνδέονται σε τοπολογία αστέρα μέσω του κεντρικού διανομέα του εργαστηρίου και έτσι συνιστούν ένα τοπικό δίκτυο. Οι υπολογιστές του τοπικού μας δικτύου μοιράζονται μια σύνδεση ISDN 128-Κbit για πρόσβαση στο διαδίκτυο. Για την υλοποίηση της εργασίας οι μαθητές χρησιμοποίησαν το προγραμματιστικό περιβάλλον JCreator το οποίο διατίθεται δωρεάν από την ομώνυμη διεύθυνση. Σχήμα 2. Το περιβάλλον του εργαστηρίου. Ως γνωστόν κάθε υπολογιστής έχει μια μοναδική διεύθυνση στο δίκτυο γνωστή και ως IP. Η διεύθυνση αυτή είναι ένας 32-bit αριθμός στο IPv4. Στο Διαδίκτυο νέας γενιάς όπου θα έχουμε το σύστημα διευθυνσιοδότησης IPv6 η διεύθυνση IP θα είναι ένας 128-bit αριθμός. Η πρώτη άσκηση την οποία κλήθηκαν να υλοποιήσουν οι μαθητές ήταν μια μέθοδος η οποία ελέγχει αν ένα δοσμένο όνομα και μια διεύθυνση IP αναφέρονται στον ίδιο υπολογιστή στο διαδίκτυο. Προηγουμένως είχε εξηγηθεί η λειτουργία της κλάσης InetAddress, το περιεχόμενο ενός αντικειμένου της κλάσης αλλά και οι τρόποι προσπέλασης του. Στη συνέχεια δίνουμε το τμήμα κώδικα που κλήθηκαν να γράψουν οι μαθητές. InetAddress address1 = InetAddress.getByName("www.db-net.aueb.gr"); System.out.println("Η διεύθυνση είναι " + address1.gethostaddress()); InetAddress address2 = InetAddress.getByName("195.251.235.65"); System.out.println("Το όνομα είναι " + address2.gethostname()); if (address1.equals(address2)) { System.out.println("Οι διευθύνσεις είναι ίδιες");

3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 147 Κάνουμε την παραδοχή ότι οι μαθητές έχουν ήδη παρακολουθήσει ένα μάθημα σε Java και γνωρίζουν βασικές έννοιες όπως η μέθοδος equals και η κλήση στατικών μεθόδων. Αυτό με το υπάρχον πρόγραμμα σπουδών θα μπορούσε να γίνει στα πλαίσια των μαθημάτων Προγραμματισμός Υπολογιστών και Προγραμματιστικά Εργαλεία στο Διαδίκτυο. Μια άλλη έννοια που θα πρέπει να εξηγηθεί στους μαθητές είναι η έννοια της θύρας (port). Θα πρέπει να καταλάβουν ότι δεν είναι κάτι υλικό αλλά έχει να κάνει σχέση με το πρόγραμμα. Για παράδειγμα θα μπορούσαμε να τους πούμε ότι μια θύρα που αντιστοιχεί σε ένα πρόγραμμα είναι ουσιαστικά ένα αρχείο ή μια περιοχή στη μνήμη η οποία ελέγχεται τακτικά για νέα μηνύματα και χαρακτηρίζεται από έναν μοναδικό αριθμό. Οι θύρες από 1 εώς 1023 είναι δεσμευμένες από το σύστημα, έτσι θα πρέπει να επιλέξουμε έναν αριθμό μεγαλύτερο του 1023, π.χ. 8192. Επίσης από το μάθημα Λειτουργικά Συστήματα τα παιδιά έχουν έρθει σε επαφή με το μοντέλο πελάτη-εξυπηρέτη(client-server). Μια πρακτική εξήγηση για τη συγκεκριμένη περίπτωση χωρίς να μπούμε σε λεπτομέρειες είναι η εξής απλή: Ο εξυπηρέτης ακούει και ο πελάτης του μιλάει ή αλλιώς ο πελάτης στέλνει πακέτα και ο εξυπηρέτης που περιμένει, τα λαμβάνει. Μπορούμε να χρησιμοποιούμε και την κλισέ φράση Ο εξυπηρέτης ακούει στη θύρα xx. Εδώ θα μπορούσαμε να ρωτήσουμε τα παιδιά, στην περίπτωση του ταχυδρόμου που φέρνει τα γράμματα στην πόρτα μας ποιος είναι ο πελάτης και ποιος ο εξυπηρέτης. Μια συζήτηση πάνω σε αυτό το παράδειγμα θα είχε ενδιαφέρον. Η ΥΛΟΠΟΙΗΣΗ Ο λόγος που επιλέξαμε τη γλώσσα προγραμματισμού Java για τη συγκεκριμένη άσκηση, είναι η πολύ καλή υποστήριξη που παρέχει για την επικοινωνία μεταξύ υπολογιστών, μέσω της βιβλιοθήκη java.net. Αν ψάξει κανείς μπορεί να βρει αναρίθμητα παραδείγματα χρήσης αυτής της βιβλιοθήκης στο διαδίκτυο. Εμείς συμβουλευτήκαμε το βιβλίο Thinking in Java του Bruce Eckel το οποίο διατίθεται δωρεάν σε ηλεκτρονική μορφή από τη διεύθυνση http://www.eckelobjects.com/eckel. Θα χρειαστεί να υλοποιήσουμε δυο κλάσεις, μια για τον πελάτη και μια για τον εξυπηρέτη. Ο ΕΞΥΠΗΡΕΤΗΣ (SERVER) Για να αποκατασταθεί μια σύνδεση μεταξύ δυο υπολογιστών η βιβλιοθήκη αυτή χρησιμοποιεί τη δομή socket (υποδοχή). Η δημιουργία μιας υποδοχής η οποία θα ακούει στη θύρα port=8192 από την πλευρά του εξυπηρέτη γίνεται με την παρακάτω εντολή: ServerSocket mysocket = new ServerSocket(port); η οποία χρησιμοποιεί την κλάση ServerSocket για να αναπαραστήσει την μια άκρη της υποδοχής με το αντικείμενο mysocket που αφορά τον εξυπηρέτη. Το αντικείμενο αυτό ακούει στη θύρα port και περιμένει μήνυμα από κάποιον πελάτη. Η μέθοδος που υλοποιεί αυτή τη συμπεριφορά είναι η accept: Socket client = mysocket.accept(); Μόλις κάποιος πελάτης στείλει μήνυμα, η accept επιστρέφει το αντικείμενο client το οποίο παριστάνει την υποδοχή που επιτρέπει την επικοινωνία με τον πελάτη, ώστε να μπορεί ο εξυπηρέτης να διαβάζει με τις μεθόδους εισόδου/εξόδου της γλώσσας τα μηνύματα που στέλνει ο πελάτης μέσω της υποδοχής. Εδώ πρέπει να σημειώσουμε μια παρανόηση που γίνεται λόγω του

148 3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ ονόματος του αντικειμένου ServerSocket. Το αντικείμενο αυτό δεν χρησιμοποιείται για την επικοινωνία με τον πελάτη, απλά ακούει στη δεδομένη θύρα. Μόλις κάποιος πελάτης αιτηθεί σύνδεση τότε δημιουργείται το αντικείμενο client τύπου Socket για την επικοινωνία μεταξύ του πελάτη και του εξυπηρέτη. Το αντικείμενο τύπου mysocket συνεχίζει να ακούει στη θύρα για τυχόν επόμενες αιτήσεις. Θα πρέπει να τονίσουμε τη διαφορά μεταξύ των δυο τύπων αντικειμένων στους μαθητές: Ο ServerSocket ακούει ( διαβάζει ) αιτήσεις για σύνδεση και επιστρέφει μέσω της accept ένα αντικείμενο Socket που παριστάνει τη νέα σύνδεση. Ο Socket ακούει ( διαβάζει ) πακέτα δεδομένων και όχι συνδέσεις Στη συνέχεια δίνουμε το βασικό τμήμα του κώδικα από την υλοποίηση του εξυπηρέτη. Με πλάγια γράμματα είναι ο κώδικας που έγραψαν οι μαθητές. Τους ζητήθηκε να δώσουν τις εντολές έτσι ώστε τα μηνύματα που λαμβάνουμε από τον πελάτη, να εμφανίζονται στην οθόνη. Η σύνδεση τερματίζεται όταν λάβουμε τη λέξη JAVA. Οι μέθοδοι CreateReader και CreateWriter δημιουργήθηκαν από τον καθηγητή ώστε να κρύψουμε από τους μαθητές τις λεπτομέρειες των ρευμάτων εισόδου-εξόδου, και να μην χρειάζεται να εξηγήσουμε πράγματα χωρίς καμία διδακτική αξία. ServerSocket mysocket = new ServerSocket(8192); System.out.println("Ο εξυπηρέτης ξεκίνησε " + mysocket); Socket client = mysocket.accept(); System.out.println("Η σύνδεση έγινε "+ socket); BufferedReader in = CreateReader(socket); String message = in.readline(); while (!message.equals( JAVA )) { System.out.println(message); message = in.readline(); Για λόγους πληρότητας δίνουμε και τις δυο μεθόδους που υλοποιήσαμε, για να απλοποιήσουμε τα πράγματα: BufferedReader CreateReader(Socket socket) { return new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter CreateWriter(Socket socket) { return new PrintWriter(new BufferedWriter(new OutputStreamWriter( socket.getoutputstream())),true); Ο ΠΕΛΑΤΗΣ (CLIENT) Με αντίστοιχο τρόπο γίνεται και η δημιουργία της υποδοχής από την πλευρά του πελάτη, μόνο που εδώ ο πελάτης θα πρέπει να δώσει και τη διεύθυνση του εξυπηρέτη στο διαδίκτυο: Socket server = new Socket( www.db-net.aueb.gr, 80);

3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 149 Το αντικείμενο server παριστάνει τη σύνδεση στη θύρα 80 του εξυπηρέτη που βρίσκεται στη διεύθυνση www.db-net.aueb.gr από την πλευρά του πελάτη. Όπου IPAddress είναι η διεύθυνση του υπολογιστή στον οποίο τρέχει ο εξυπηρέτης. Φυσικά έχουμε συνεννοηθεί όλοι να χρησιμοποιούμε την ίδια θύρα (8192). Παρακάτω δίνεται και το τμήμα κώδικα του πελάτη. Όπως μπορεί να διακρίνει κάποιος είναι σχεδόν ίδιο με αυτό του εξυπηρέτη όσον αφορά την κύρια λειτουργία με τη διαφορά, ότι ενώ ο εξυπηρέτης διαβάζει από την υποδοχή και αντιγράφει το μήνυμα στην προκαθορισμένη έξοδο (οθόνη), ο πελάτης διαβάζει από την προκαθορισμένη είσοδο αυτά που πληκτρολογεί ο χρήστης και τα αντιγράφει στην υποδοχή για να τα λάβει ο εξυπηρέτης. Να σημειώσουμε ότι η ανάγνωση από το πληκτρολόγιο στη Java δεν είναι κάτι απλό όπως φαίνεται και παρακάτω. Θα μπορούσαμε να είχαμε και εδώ μια μέθοδο που να επιστρέφει ένα ρεύμα εισόδου αλλά θέλαμε να φαίνεται ότι το αυτό το ρεύμα εισόδου αναφέρεται στην προκαθορισμένη είσοδο. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); Socket socket = new Socket(IPaddress, 8192); PrintWriter out = CreateWriter(socket); String message = in.readline(); while (!message.equals( JAVA )); out.println(message); message = in.readline(); ΑΠΟ ΤΗ ΘΕΩΡΙΑ ΣΤΗΝ ΠΡΑΞΗ Οι μαθητές δούλεψαν για τη συγκεκριμένη άσκηση κατά ζεύγη. Ο ένας υλοποίησε τον εξυπηρέτη και ο άλλος τον πελάτη. Στη συνέχεια αφού συνεννοήθηκαν για τη χρήση κοινού port και αφού βρήκε ο κάθε ένας την IP διεύθυνση του άλλου, μέσω της εντολής ping ξεκίνησαν. Ένα πολύ συνηθισμένο πρόβλημα εκτός από τα συντακτικά λάθη ήταν η αδυναμία εύρεσης μιας συνθήκης τερματισμού. Ενώ δηλαδή τα προγράμματα που έφτιαξαν δούλευαν, ελάχιστοι τα τερμάτιζαν σωστά. Το πρόβλημα ήταν ο τρόπος χρήσης της μεθόδου equals() για τα Strings. Το επόμενο βήμα ήταν να ανταλλάξουν οι μαθητές αρχεία μεταξύ τους έτσι ώστε ο κάθε ένας να τρέχει στον υπολογιστή του και τον πελάτη και τον εξυπηρέτη. Έτσι με τον πελάτη έστελνε δεδομένα ενώ στην οθόνη του εξυπηρέτη φαίνονταν αυτά που του έστελναν. Ουσιαστικά υλοποίησαν την υπηρεσία talk του UNIX. ΥΛΟΠΟΙΗΣΗ ΔΑΚΤΥΛΙΟΥ ΜΕ ΚΟΥΠΟΝΙ Το επόμενο βήμα ήταν να υλοποιήσουμε τις διάφορες τοπολογίες του βιβλίου. Η πρώτη ήταν η τοπολογία του δακτυλίου. Μετά από συζήτηση οι μαθητές ανακάλυψαν ότι η τοπολογία αυτή ήταν ήδη υλοποιημένη. Το μόνο που έλειπε ήταν να δώσουν στην εφαρμογή-πελάτη που είχαν υλοποιήσει τη διεύθυνση IP του επόμενου στον δακτύλιο και στον εξυπηρέτη τη διεύθυνση IP του προηγούμενου μαθητή. Απλά ο κάθε μαθητής θα έγραφε στο παράθυρο του πελάτη ότι διάβαζε από το παράθυρο του εξυπηρέτη. Το επόμενο βήμα ήταν η υλοποίηση της τοπολογίας δακτυλίου με κουπόνι.

150 3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ Σχήμα 3. Τοπολογία Δακτυλίου με κουπόνι. Η μονή αλλαγή που πρέπει να γίνει εδώ δεν είναι στα προγράμματα αλλά στη συμπεριφορά του μαθητή. Σχήμα 4. Ο κάθε μαθητής αποφασίζει τι θα στείλει στον επόμενο υπολογιστή. Κατ αρχήν θα πρέπει να συμφωνήσουν όλοι πιο θα είναι το αναγνωριστικό του κουπονιού. Ας πούμε το μήνυμα ###. Όταν ο μαθητής βλέπει στην οθόνη του εξυπηρέτη του αυτό το σύμβολο θα μπορεί να στέλνει ότι μήνυμα θέλει (κατάσταση μετάδοσης). Όταν τελειώσει θα στείλει το κουπόνι στον επόμενο μέσω του πελάτη του. Εάν λάβει ένα απλό μήνυμα θα πρέπει απλά να το αναπαράγει και να το αντιγράψει από την οθόνη του εξυπηρέτη στην οθόνη του πελάτη, ώστε να το στείλει στον επόμενο(κατάσταση ακρόασης). Ήταν μια πολύ ευχάριστη δραστηριότητα, ειδικά όταν κάποιος μαθητής ήθελε να στείλει ένα μήνυμα σε κάποιον απομακρυσμένο συμμαθητή του. Θα μπορούσαμε να είχαμε υλοποιήσει μια ακόμα υποδοχή μεταξύ του πελάτη και του εξυπηρέτη του ίδιου υπολογιστή ώστε να αντιγράφονται αυτόματα τα μηνύματα που έρχονται στον επόμενο. Θα χρειαζόταν επίσης να προσθέσουμε και λίγο κώδικα για τη διαχείριση του κουπονιού. Έτσι όμως ο μαθητής δεν θα συμμετείχε ενεργά ως μέρος της τοπολογίας και ούτε θα καταλάβαινε εύκολα τον τρόπο λειτουργία της. Άλλωστε η πρώτη διαδικασία με ανθρώπινη παρέμβαση είναι πολύ πιο διασκεδαστική. ΣΥΜΠΕΡΑΣΜΑΤΑ Σε αυτή την εργασία δείξαμε πως μπορεί να χρησιμοποιηθεί η βιβλιοθήκη java.net για να υλοποιήσουν οι μαθητές την τοπολογία δακτυλίου και πιο συγκεκριμένα το πρότυπο του δακτυλίου με κουπόνι. Δόθηκε στους μαθητές να υλοποιήσουν ένα μικρό κομμάτι του πελάτη και του εξυπηρέτη, εκθέτοντάς τους τα διάφορα στάδια του προβλήματος και δίνοντας τους την ευκαιρία σε κάθε περίπτωση να υλοποιήσουν κάτι δικό τους (ανακαλυπτική μάθηση). Στη συνέχεια οι μαθητές δούλεψαν σε ζευγάρια, όπου ο ένας είχε την ευθύνη της υλοποίησης του πελάτη και ο άλλος του εξυπηρέτη (συνεργατική μάθηση). Τέλος για να υλοποιήσουν το πρότυπο του δακτυλίου με κουπόνι χρειάστηκε να συμμετέχουν και οι ίδιοι στην τοπολογία αφού αποφάσιζαν για το πότε θα στείλουν μηνύματα και αν θα κρατήσουν ή θα προωθήσουν το κουπόνι. Με παρόμοιο τρόπο θα μπορούσαν να υλοποιηθούν και άλλες τοπολογίες. Πιστεύουμε ότι ο προγραμματισμός θα πρέπει να μπει στην ύλη του μαθήματος των Δικτύων του Β κύκλου διότι μέσα από αυτή τη διαδικασία οι μαθητές θα αφομοιώσουν καλύτερα τις έννοιες του βιβλίου.

3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 151 ΜΕΛΛΟΝΤΙΚΗ ΔΟΥΛΕΙΑ Θα μπορούσαμε να κάνουμε πολλά πράγματα με τη βιβλιοθήκη της net της java. Για παράδειγμα θα μπορούσαμε να υλοποιήσουμε ένα μίνι δωμάτιο συνομιλίας (chat room) με χρήση πολυνηματικού προγραμματισμού στον εξυπηρέτη. Η έννοια του νήματος εξηγείται επιφανειακά στο μάθημα Λειτουργικά Συστήματα, ωστόσο μπορεί κανείς εύκολα να χρησιμοποιήσει την κλάση Thread της Java. Επίσης θα μπορούσαμε να προσθέσουμε κάποια στοιχεία γραφικών στην εφαρμογή από τη βιβλιοθήκη swing της Java. ΒΙΒΛΙΟΓΡΑΦΙΑ 1. Eckel (1997), Thinking in Java, Thinking in java, http://www.eckelobjects.com/eckel 1. Τσιλιγκιρίδης Θ. et. al. Μετάδοση Δεδομένων και Δίκτυα Υπολογιστών, τόμος ΙΙ, 2. ΥΠΕΠΘ, Παιδαγωγικό Ινστιτούτο, Αθήνα.