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

Σχετικά έγγραφα
ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

Αποµακρυσµένη κλήση διαδικασιών

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

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

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

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

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

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

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

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

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

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

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

Πρωτόκολλα Διαδικτύου

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

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

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

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

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

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

Σύστηµα Java RMI. Κατανεµηµένα Συστήµατα 17-1

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

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

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

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

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Δομημένος Προγραμματισμός

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

Κεφάλαιο 7.3. Πρωτόκολλο TCP

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Δίκτυα Θεωρία

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Κατανεµηµένασυστήµατα αρχείων

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

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

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1

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

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

7.2.2 Σχέση OSI και TCP/IP

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Δίκτυα ATM. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 21-1

7.2 Τεχνολογία TCP/IP

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

ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ

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

Φύλλο Εργασίας 1 ου Κεφαλαίου

Επίπεδο Δικτύου: Διαδικτύωση

ΜΑΘΗΜΑ: Δίκτυα Υψηλών Ταχυτήτων

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

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

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

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

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

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Αντικειμενοστρεφής Προγραμματισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

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

Αρχιτεκτονική Υπολογιστών

Σχεδίαση Δικτύων Υπολογιστών

6.1 Επεκτείνοντας το δίκτυο 6.2 Επιλεγόμενες τηλεφωνικές γραμμές modems Πλεονεκτήματα Μειονεκτήματα Βασική χρήση

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Παράμετροι Συστημάτων Αναμονής Τύπος Little. Β. Μάγκλαρης, Σ. Παπαβασιλείου

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Συνεχής ροή πολυµέσων

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

α. Συνόδου β. Μεταφοράς γ. Δικτύου δ. Διασύνδεσης δεδομένων ε. Φυσικού Επιπέδου (Μονάδες 5)

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

Εισαγωγή στην Πληροφορική

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

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

{ int a = 5; { int b = 7; a = b + 3;

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Transcript:

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Οικονομικό Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Οι εικόνες προέρχονται από το βιβλίο «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3 η έκδοση, 2011, Εκδόσεις Κλειδάριθμος. 3

Σκοποί ενότητας Επανάληψη των βασικών πρωτοκόλλων επικοινωνίας και της έννοιας των υποδοχών. Κατανόηση της αντιμετώπισης των υποδοχών στην Java και του τρόπου με τον οποίο χρησιμοποιούνται. Εξοικείωση με την λειτουργικότητα και την υλοποίηση των απομακρυσμένων κλήσεων. 4

Περιεχόμενα ενότητας Πρωτόκολλα επικοινωνίας Δικτύωση στην Java Απομακρυσμένες κλήσεις 5

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

Γιατί χρειάζονται πρωτόκολλα; Επικοινωνία μέσω δικτύου Ανταλλαγή μηνυμάτων με send και receive Ποια είναι η σημασιολογία των μηνυμάτων; Ποια είναι η διαδοχή των μηνυμάτων; Πρωτόκολλο επικοινωνίας: σειρά κανόνων Μορφότυπο Περιεχόμενα Σημασία μηνυμάτων 7

Μοντέλα αναφοράς Είδη πρωτοκόλλων Με σύνδεση ή χωρίς σύνδεση Οι συνδέσεις διευκολύνουν την αξιοπιστία Η απουσία συνδέσεων αυξάνει την ταχύτητα Μοντέλα αναφοράς πρωτοκόλλων Κατανέμουν τα πρωτόκολλα σε επίπεδα Διαδοχικά επίπεδα επικοινωνούν μέσω διεπαφής Ομόλογα επίπεδα επικοινωνούν μέσω πρωτοκόλλου 8

Μοντέλο αναφοράς OSI Εφαρμογή Εφαρμογή Εφαρμογής Παρουσίασης Συνόδου Μεταφοράς Δικτύου Ζεύξης Φυσικό Εφαρμογής Παρουσίασης Συνόδου Μεταφοράς Δικτύου Ζεύξης Φυσικό Δίκτυο Προτάθηκε ως γενικό μοντέλο των δικτύων Περιορισμένη επιτυχία, η ορολογία επιβίωσε όμως Μόνο τα φυσικά επίπεδα επικοινωνούν μέσω του δικτύου 9

Μοντέλο αναφοράς TCP/IP Εφαρμογή Εφαρμογή Εφαρμογής Εφαρμογής Μεταφοράς Μεταφοράς Διαδικτύου Διαδικτύου Χαμηλότερα επίπεδα Χαμηλότερα επίπεδα Δίκτυο Προτάθηκε ως περιγραφή του Διαδικτύου Δεν σχεδιάστηκε πραγματικά με αυτό τον τρόπο Επίπεδο διαδικτύου: IP, πρωτόκολλα δρομολόγησης Επίπεδο μεταφοράς: TCP ή UDP Επίπεδο εφαρμογής: FTP, SMTP, HTTP, NNTP, TELNET 10

Υποδοχές επικοινωνίας Εφαρμογή Εφαρμογή Υποδοχές Υποδοχές UDP TCP TCP UDP IP IP Χαμηλότερα επίπεδα Χαμηλότερα επίπεδα Δίκτυο Λογική αφαίρεση άκρου επικοινωνίας Αποκρύπτει το πρωτόκολλο μεταφοράς Υλοποίηση μέσω κατάλληλης βιβλιοθήκης Διεπαφή παρόμοια με αυτή των αρχείων Υποδοχές ρεύματος και δεδομενογραφημάτων 11

Επικοινωνία υποδοχών Χαρακτηριστικά υποδοχής Πρωτόκολλο, διεύθυνση IP, θύρα Επικοινωνία δύο υποδοχών Πρωτόκολλο, διευθύνσεις άκρων, θύρες άκρων Εξυπηρετητής: καθορίζει τη θύρα Ευρέως γνωστές θύρες Πελάτης: γνωρίζει στοιχεία εξυπηρετητή Διεύθυνση IP και θύρα εξυπηρετητή 12

Τύποι εξυπηρετητών Ταυτόχρονος εξυπηρετητής Επικοινωνεί ταυτόχρονα με πολλούς πελάτες Δημιουργεί αντίγραφο της υποδοχής ανά πελάτη Δημιουργεί νέα διεργασία για κάθε πελάτη Επαναληπτικός εξυπηρετητής Επικοινωνεί μόνο με έναν πελάτη ανά πάσα στιγμή Μία μόνο υποδοχή και διεργασία Μεγαλύτερη καθυστέρηση εξυπηρέτησης 13

Ομότιμοι κόμβοι Πελάτες και εξυπηρετητές μαζί Ταυτόχρονη αποστολή / λήψη αιτημάτων Πολλές διεργασίες / νήματα Χωριστά για κάθε υποδοχή Συγχρονισμός / επικοινωνία με κοινές δομές Εναλλακτικά, ασύγχρονες υλοποιήσεις Πολύπλεξη πολλών υποδοχών Πολύ πιο σύνθετος κώδικας 14

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

Υποδοχές Υποδοχές σε C Η κλασική διεπαφή είναι γραμμένη σε C Πολλές και περίπλοκες κλήσεις Καλύπτει πολλές οικογένειες πρωτοκόλλων Υποδοχές σε Java Ειδικές τάξεις για TCP και UDP Πακέτο java.net Περιορισμένη αλλά πολύ απλούστερη διεπαφή 16

Διευθύνσεις IP (1 από 2) Διευθύνσεις IP: τάξη InetAddress Εξειδικεύεται σε Inet4Address και Inet6Address Περιέχει διεύθυνση IP και όνομα υπολογιστή InetAddress getbyaddress (byte[] addr) Δημιουργεί αντικείμενο από τη διεύθυνση IP Διεύθυνση σε διάταξη δυφιοσυλλαβών δικτύου InetAddress getbyaddress (String host, byte[] addr) Συμπληρώνει και το όνομα, αλλά χωρίς επίλυση 17

Διευθύνσεις IP (2 από 2) InetAddress getbyname (String host) Επιλύει το όνομα αν είναι σε μορφή DNS Αν είναι σε μορφή διεύθυνσης, απλά το μετατρέπει InetAddress getlocalhost () Δημιουργεί αντικείμενο με την τοπική διεύθυνση String gethostaddress () Διεύθυνση αντικειμένου σε μορφή κειμένου String gethostname () Όνομα αντικειμένου Αντίστροφη επίλυση αν χρειάζεται 18

Υποδοχές ρευμάτων (1 από 4) Τάξη Socket: υποδοχές ρεύματος πελατών Απαιτεί απομακρυσμένη διεύθυνση και θύρα Ανοίγει σύνδεση κατά τη δημιουργία της Socket (InetAddress addr, int port) Σύνδεση με διεύθυνση IP και θύρα Socket (String host, int port) Σύνδεση με όνομα και θύρα 19

Υποδοχές ρευμάτων (2 από 4) Τάξη ServerSocket: υποδοχές ρεύματος εξυπηρετητών Απαιτεί μόνο την τοπική θύρα ServerSocket (int port) Θύρα 0 σημαίνει τυχαία διαθέσιμη θύρα Αυτόματη δημιουργία ουράς για 50 αιτήσεις Socket accept () Αποδοχή της επόμενης αίτησης σε νέα υποδοχή 20

Υποδοχές ρευμάτων (3 από 4) Επικοινωνία πελάτη και εξυπηρετητή Socket: συνδεδεμένη θύρα στον πελάτη ServerSocket: ενεργή (όχι συνδεδεμένη) θύρα accept: νέα συνδεδεμένη θύρα στον εξυπηρετητή Είδη εξυπηρετητών Ταυτόχρονοι: πολλές αιτήσεις ταυτόχρονα Επαναληπτικοί: μία αίτηση σε κάθε στιγμή Η accept δίνει και τις δύο επιλογές στον εξυπηρετητή 21

Υποδοχές ρευμάτων (4 από 4) Στη C η υποδοχή μοιάζει με αρχείο Στη Java μοιάζει με ό,τι θέλουμε InputStream getinputstream () Συνδέει ένα ρεύμα εισόδου στην υποδοχή OutputStream getoutputstream () Συνδέει ένα ρεύμα εξόδου στην υποδοχή void close (): Κλείνει την υποδοχή 22

Σειριακοποίηση (1 από 2) Επίπεδα επικοινωνίας στη Java Δυφιοσυλλαβών (Input/OutputStream) Πρωταρχικών τύπων (DataInput/OutputStream) Δεν χρειάζεται κωδικοποίηση σε bytes Αντικειμένων (ObjectInput/OutputStream) Χρησιμοποιούνται οι ίδιες ακριβώς υποδοχές Αλλάζει το τι θα πάρουμε από αυτές 23

Σειριακοποίηση (2 από 2) Σειριακοποίηση αντικειμένων Τοποθέτηση μελών σε ροή δυφιοσυλλαβών Τα μέλη μπορεί να είναι άλλα αντικείμενα Αποσειριακοποίηση: ανακατασκευή αντικειμένου Αποθήκευση ή μετάδοση αντικειμένων Ποια αντικείμενα είναι σειριακοποιήσιμα; Πρέπει να υλοποιούν τη διεπαφή java.io.serializable Ισχύει σχεδόν πάντα για java.lang και java.util 24

Δεδομενογράμματα (1 από 5) Ανταλλαγή αυτοδύναμων πακέτων Κάθε πακέτο περιέχει διεύθυνση / θύρα Αποστολής ή λήψης, κατά περίπτωση Κάθε πακέτο αποστέλλεται εντελώς αυτόνομα Τάξη DatagramPacket: τα ίδια τα μηνύματα DatagramPacket (byte[] buff, int length) Δημιουργεί δεδομενογράφημα για λήψη δεδομένων Το length περιορίζει το πλήθος byte προς ανάγνωση Πρέπει να είναι μικρότερο από το μέγεθος του buffer 25

Δεδομενογράμματα (2 από 5) DatagramPacket (byte[] buff, int length, InetAddress host, int port) Δεδομενογράφημα για αποστολή δεδομένων Καθορίζει επιπλέον διεύθυνση και θύρα παραλήπτη InetAddress getaddress () Επιστρέφει τη διεύθυνση του δεδομενογράμματος int getport () Επιστρέφει τη θύρα του δεδομενογράμματος Διεύθυνση / θύρα της απομακρυσμένης μηχανής 26

Δεδομενογράμματα (3 από 5) void setaddress (InetAddress addr) Θέτει τη διεύθυνση του δεδομενογράμματος void setport (int port) Θέτει τη θύρα του δεδομενογράμματος Διεύθυνση / θύρα της απομακρυσμένης μηχανής byte[] getdata () Επιστρέφει τα δεδομένα του δεδομενογράμματος void setdata (byte[] buff) Θέτει τα δεδομένα του δεδομενογράμματος 27

Δεδομενογράμματα (4 από 5) Τάξη DatagramSocket: Ίδια για τα δύο άκρα Η ανταλλαγή δεδομένων είναι συμμετρική DatagramSocket () Υποδοχή σε τυχαία τοπική θύρα Πιο χρήσιμη στην πλευρά του πελάτη DatagramSocket (int port) Υποδοχή σε συγκεκριμένη τοπική θύρα Πιο χρήσιμη στην πλευρά του εξυπηρετητή 28

Δεδομενογράμματα (5 από 5) void send (DatagramPacket p) Αποστολή δεδομενογράμματος μέσω υποδοχής Η διεύθυνση / θύρα πρέπει να έχουν συμπληρωθεί void receive (DatagramPacket p) Λήψη δεδομενογράμματος μέσω υποδοχής Περιλαμβάνεται η διεύθυνση / θύρα του αποστολέα void close (): Κλείνει την υποδοχή 29

Πολυεκπομπή (1 από 2) Αποστολή μηνυμάτων σε πολλούς παραλήπτες Χρήση διεύθυνσης IP πολυεκπομπής (class D) Οι παραλήπτες εγγράφονται / διαγράφονται Ο αποστολέας δεν ανήκει πάντα στην ομάδα Τάξη MulticastSocket: υποτάξη DatagramSocket Χρησιμοποιεί πάντα το UDP, όχι το TCP Χρήση send / receive για ανταλλαγή πακέτων MulticastSocket (int port) Δημιουργία υποδοχής πολυεκπομπής 30

Πολυεκπομπή (2 από 2) void joingroup (InetAddress addr) void leavegroup (InetAddress addr) Εγγραφή σε / διαγραφή από ομάδα Έλεγχος εύρους πολυεκπομπών μέσω TTL int gettimetolive () void settimetoleave (int ttl) Ανάγνωση / ρύθμιση του TTL 31

Ομοιόμορφοι Εντοπιστές (1 από 3) Ομοιόμορφοι Εντοπιστές Πόρων (URL) Χρήση στον Παγκόσμιο Ιστό (WWW) Αναφέρονται σε έγγραφα-πόρους στον Ιστό Πρωτόκολλο, διεύθυνση, θύρα, όνομα αρχείου Παράδειγμα: http://www.aueb.gr:80/photos/ Τάξη URL: απλή περιγραφή ενός URL URL(String spec) Δημιουργεί URL από πλήρη περιγραφή 32

Ομοιόμορφοι Εντοπιστές (2 από 3) URLConnection openconnection() Ανοίγει σύνδεση με πόρο που δείχνει το URL Επιστρέφει ένα αντικείμενο URLConnection Μέσω του URLConnection μπορούμε: Να πάρουμε ένα ρεύμα για ανάγνωση του πόρου Να μετατρέψουμε τον πόρο σε αντικείμενο Object Να διαβάσουμε τα πεδία επικεφαλίδας του πόρου 33

Ομοιόμορφοι Εντοπιστές (3 από 3) InputStream getinputstream() Επιστρέφει ρεύμα για ανάγνωση του πόρου Object getcontent() Κατεβάζει τα περιεχόμενα του πόρου Μετατρέπει το περιεχόμενο σε αντικείμενο Βρίσκει τον τύπο του πόρου Πρέπει να έχουμε ορίσει χειριστή περιεχομένου Ο χειριστής δημιουργεί το σωστό αντικείμενο 34

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

Γιατί απομακρυσμένες κλήσεις; Επικοινωνία με ανταλλαγή μηνυμάτων Κλήσεις send και receive Ο προγραμματιστής «βλέπει» το δίκτυο Απώλεια διαφάνειας του συστήματος Κλήση απομακρυσμένων διαδικασιών Λογική αφαίρεση υψηλότερου επιπέδου Παρόμοια με κλήσεις τοπικών διαδικασιών Απόκρυψη της πραγματικής επικοινωνίας 36

Τοπικές κλήσεις (LPC) 1 2 Καλών Στοίβα Καλούμενος Λειτουργικό Υλισμικό Υλοποίηση τοπικών κλήσεων διαδικασιών Δέσμευση χώρου στη στοίβα Εκχώρηση πραγματικών παραμέτρων στη στοίβα Κλήση διαδικασίας και επιστροφή Αντιγραφή αποτελεσμάτων από στοίβα Αποδέσμευση χώρου από τη στοίβα 37

Απομακρυσμένες κλήσεις (RPC) 1 Καλών Καλούμενος 5 Στοίβα Στοίβα 2 Κορμός πελάτη Κορμός εξυπηρετητή 4 Λειτουργικό Υλισμικό 3 Λειτουργικό Υλισμικό Δίκτυο Απόκρυψη λεπτομερειών μέσω βιβλιοθήκης Κορμός πελάτη: ίδια κλητική ακολουθία με διαδικασία Κορμός εξυπηρετητή: εκτελεί την κλήση διαδικασίας Κλήση κορμού πελάτη τοπικά από πελάτη Κλήση διαδικασίας τοπικά από κορμό εξυπηρετητή 38

Μεταβίβαση παραμέτρων (1 από 2) Πρόταξη παραμέτρων (parameter marshalling) Μεταβίβαση παραμέτρων κλήσης μέσω δικτύου Αφορά τους κορμούς πελάτη και εξυπηρετητή Μεταβίβαση με τιμή Αντιγραφή τιμών παραμέτρων στο μήνυμα Αντιγραφή τιμών παραμέτρων στη στοίβα Αντίστροφη πορεία για επιστροφή αποτελεσμάτων Παράμετροι αναφοράς (δείκτες) Οι δείκτες δεν έχουν νόημα από μακριά 39

Μεταβίβαση παραμέτρων (2 από 2) Χρήση εικονικών δεικτών Οι προσπελάσεις μεταφέρονται στον καλούντα Μεγάλο κόστος επικοινωνίας μέσω δικτύου Χρήση μεταβίβασης με αντιγραφή/επαναφορά Αντιγραφή της αρχικής τιμής στην είσοδο Χρήση δείκτη προς το αντίγραφο της τιμής Αντιγραφή της τελικής τιμής στην έξοδο Μεγάλο κόστος σε δομές όπως πίνακες Δεν επαρκεί για δυναμικές δομές δεδομένων 40

Αναπαράσταση παραμέτρων Αναπαράσταση παραμέτρων Η παράσταση τιμών μπορεί να διαφέρει ASCII ή EBCDIC, συμπλήρωμα ως προς 1 ή 2 Μεγέθη αριθμών Αναπαράσταση πραγματικών αριθμών Σειρά αποθήκευσης δυφιοσυλλαβών Μικρό άκρο (Intel) Μεγάλο άκρο (Sun, Motorola) 41

Κανονική μορφή παραμέτρων Κανονική μορφή αναπαράστασης Τυποποιημένος τρόπος παράστασης τύπων Οι αποστολείς μετατρέπουν σε κανονική μορφή Οι παραλήπτες μετατρέπουν από κανονική μορφή Χρησιμοποιείται στο TCP/IP (σειρά δικτύου) Χρήση κλήσεων βιβλιοθήκης για μετατροπές Οι κλήσεις μπορεί να είναι κενές Στο TCP/IP σειρά δικτύου = μεγάλο άκρο 42

Πρωτόκολλα (1 από 3) Συνδεσμικό ή ασυνδεσμικό πρωτόκολλο Τα συνδεσμικά πρωτόκολλα παρέχουν αξιοπιστία Το πρωτόκολλο ασχολείται με τις λεπτομέρειες Κόστος αποκατάστασης/απελευθέρωσης σύνδεσης Ασυνδεσμικά πρωτόκολλα για τοπικά δίκτυα Αναγκαστικά συνδεσμικά σε ευρεία περιοχή Έτοιμο ή εξειδικευμένο πρωτόκολλο Το έτοιμο πρωτόκολλο είναι δοκιμασμένο Συνήθως παρέχονται περιττές ευκολίες Το εξειδικευμένο πρωτόκολλο είναι πιο γρήγορο 43

Πρωτόκολλα (2 από 3) TCP συναλλαγών (T/TCP) Παραλλαγή TCP για απλή επικοινωνία Συνδυασμός αποκατάστασης σύνδεσης με αίτηση Συνδυασμός απελευθέρωσης με απόκριση 3 μόνο μηνύματα στην απλούστερη περίπτωση Πρόσθετα μηνύματα για πολλές παραμέτρους Υποστηρίζονται όλες οι ευκολίες του TCP 44

Πρωτόκολλα (3 από 3) Κόστος απομακρυσμένων κλήσεων Σταθερό κόστος ανά μήνυμα Εξυπηρέτηση διακοπής, μεταγωγή Συμφέρει η ανταλλαγή μεγάλων μηνυμάτων Το Ethernet θέλει πακέτα έως 1500 bytes Μικρότερα πακέτα σε δίκτυα ευρείας περιοχής Θρυμματισμός μεγάλων πακέτων σε μικρά Κόστος ανασυναρμολόγησης 45

Αντιγραφή μηνυμάτων (1 από 2) Καλών Καλούμενος Στοίβα Στοίβα 1 Κορμός πελάτη Κορμός εξυπηρετητή 5 Λειτουργικό Λειτουργικό 2 4 Υλισμικό Υλισμικό 3 Δίκτυο Ακολουθία αντιγραφών Οι αντιγραφές έχουν μεγάλο κόστος 5 αντιγραφές όταν δεν έχουμε παραμέτρους 7 αντιγραφές όταν έχουμε παραμέτρους 46

Αντιγραφή μηνυμάτων (2 από 2) Καλών Καλούμενος Στοίβα Στοίβα 1 7 2 Κορμός πελάτη Λειτουργικό Λειτουργικό 3 5 Υλισμικό 4 Κορμός εξυπηρετητή Υλισμικό 6 Δίκτυο Διασύνδεσης Τεχνική εικονικής μνήμης Κατασκευή μηνύματος στον κορμό πελάτη Τροποποίηση χάρτη μνήμης Απεικόνιση μηνύματος στον πυρήνα 47

Κορμοί πελάτη και εξυπηρετητή Λειτουργίες κορμών πελάτη και εξυπηρετητή Πρόταξη παραμέτρων και επικοινωνία Υλοποίηση κορμών πελάτη και εξυπηρετητή Απαιτείται γνώση των παραμέτρων Δεν απαιτείται κατανόηση της κλήσης Διαδικασίες βιβλιοθήκης για πρόταξη τύπων Διαδικασίες βιβλιοθήκης για επικοινωνία Αυτοματοποιημένη δημιουργία κορμών 48

Ορισμός διεπαφών Γλώσσα ορισμού διεπαφών (IDL) Τυποποιημένη περιγραφή παραμέτρων Ανεξάρτητη από γλώσσες προγραμματισμού Αυτόματη δημιουργία κορμών από την IDL Οι κορμοί δεν γνωρίζουν τη σημασιολογία Αρκεί να γνωρίζουν τη σύνταξη της κλήσης Χρήση βιβλιοθήκης για επικοινωνία και πρόταξη Σύνδεση κορμών με πελάτη και εξυπηρετητή 49

To σύστημα DCE (1 από 5) Περιβάλλον κατανεμημένης επεξεργασίας Ενδιάμεσο λογισμικό πελάτη-εξυπηρετητή Παρέχονται υπηρεσίες DCE και υπηρεσίες χρήστη Όλη η επικοινωνία γίνεται μέσω RPC Αυτόματη δέσμευση πελάτη με εξυπηρετητή Διάφορες γλώσσες προγραμματισμού Αυτόματη μετατροπή τύπων δεδομένων 50

To σύστημα DCE (2 από 5) Περιγραφή διεπαφών σε IDL Μοναδικό αναγνωριστικό για κάθε διεπαφή Περιγραφή παραμέτρων διαδικασιών Περιγραφή σταθερών και τύπων Δεν επιτρέπονται οι καθολικές μεταβλητές Απεικόνιση σε γλώσσα προγραμματισμού Συγκεκριμένοι κανόνες για κάθε γλώσσα Αντιστοιχία σε τύπους της γλώσσας 51

To σύστημα DCE (3 από 5) Αρχείο IDL Μεταγλωττιστής IDL Κορμός πελάτη Κορμός εξυπηρετητή Πρόγραμμα πελάτη Αρχείο δηλώσεων Λειτουργία συστήματος DCE Συγγραφή διεπαφών σε IDL Πρόγραμμα εξυπηρετητή Παραγωγή κορμών πελάτη και εξυπηρετητή Παραγωγή αρχείου δηλώσεων στην κατάλληλη γλώσσα Σύνδεση πελάτη και εξυπηρετητή με τον αντίστοιχο κορμό 52

To σύστημα DCE (4 από 5) Επικοινωνία πελάτη και εξυπηρετητή Εξυπηρετητής: εγγράφεται στο ευρετήριο DCE Καταχωρείται όνομα και διεύθυνση εξυπηρετητή Εξυπηρετητής: εγγράφεται σε υπηρεσία θυρών Η υπηρεσία εκτελείται τοπικά σε γνωστή θύρα Δείχνει θύρα στην οποία αναμένει ο εξυπηρετητής Ο πελάτης εντοπίζει τη διεύθυνση Ο πελάτης εντοπίζει τη θύρα του εξυπηρετητή 53

To σύστημα DCE (5 από 5) Σημασιολογία απομακρυσμένων κλήσεων Κλήση το πολύ μία φορά Αν η κλήση αποτύχει, δεν επαναλαμβάνεται Μπορεί να έχει εκτελεστεί χωρίς επιβεβαίωση Μπορεί και να μην έχει εκτελεστεί καθόλου Κλήση τουλάχιστον μία φορά Επανάληψη της κλήσης μέχρι να επιβεβαιωθεί Μπορεί να εκτελεστεί πολλές φορές Σταματάμε στην πρώτη επιβεβαίωση 54

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