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

Σχετικά έγγραφα
Αποµακρυσµένη κλήση διαδικασιών

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

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

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

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

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

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

Επικοινωνία Client/Server

Πληροφορίες. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Ζητήµατα Επικοινωνίας Πελάτη-Εξυπηρετητή. Εξυπηρετητής

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

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

Λειτουργικά Συστήματα (Λ/Σ)

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

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

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

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

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

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

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

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Λειτουργικά Συστήματα (Λ/Σ)

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ

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

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Κεφάλαιο 10 ο Υποπρογράµµατα

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Λιβανός Γιώργος Εξάμηνο 2017Β

Σχεδιασμός Εικονικών Δικτύων Ενότητα 7: Μεταγλώττιση διευθύνσεων (ΝΑΤ)

Network Address Translation (NAT)

Το λειτουργικό σύστημα. Προγραμματισμός II 1

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

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

ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ Βελώνης Γεώργιος ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ. Μάθημα 2ο. Βελώνης Γεώργιος - 1ο Τ.Ε.Ε. Κατερίνης. Καθηγητής Πληροφορικής ΠΕ20 2-1

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

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

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

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

Διαφορές single-processor αρχιτεκτονικών και SoCs

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

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

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

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

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

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

Τι είναι το πρωτόκολλο Διαδικτύου (Internet Protocol, IP);

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

Η υπηρεσία του Π.Κ. αλλάζει!

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

ιαδίκτυα & Ενδοδίκτυα Η/Υ

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

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

Απομακρυσμένα αντικείμενα (Remote Objects) Κατανεμημένα Συστήματα 1

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

Connecto. Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Άγγελος Σφακιανάκης. Επιφάνεια Άμεσης Σύνδεσης

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

ίκτυα ίκτυο υπολογιστών: Ένα σύνολο από υπολογιστικές συσκευές που συνδέονται µεταξύ τους για σκοπούς επικοινωνίας και χρήσης πόρων. Συνήθως, οι συσκε

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

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

Οργάνωση επεξεργαστών και διεργασιών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Λειτουργικά Συστήματα (ΗΥ321)

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Σκοπιµότητα των firewalls

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

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

6.2 Υπηρεσίες Διαδικτύου

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

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

Transcript:

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1

Εισαγωγή Το μοντέλο client-server παρέχει έναν μηχανισμό δόμησης ΚΛΣ, στον οποίο η επικοινωνία βασίζεται στο σύστημα εισόδου/εξόδου (input/output) Είναι χρήσιμος για λειτουργίες όπως file services, αλλά δεν υποστηρίζει γενικότερη συνεργασία διεργασιών Επιπλέον, δεν προσφέρει διαφάνεια, δεν δίνει δηλαδή στον χρήστη την εντύπωση ενός κεντρικοποιημένου συστήματος Η ιδέα που εισήγαγαν οι Birrell&Nelson (1984) είναι να επιτραπεί στα προγράμματα να καλούν διαδικασίες που εκτελούνται σε διαφορετικές μηχανές Η μέθοδος αυτή λέγεται Remote Procedure Call - (RPC) Επικοινωνία -RPC 2

Συμβατική (Τοπική) Κλήση Διαδικασιών Θεωρούμε μία τυπική κλήση διαδικασίας σε ένα main() πρόγραμμα: count = read(fd, buf, nbytes); Η ροή ελέγχου είναι η παρακάτω: Επικοινωνία -RPC 3

Συμβατική (Τοπική) Κλήση Διαδικασιών count=read(fd,buf,nbytes) Πέρασμα παραμέτρου σε τοπική κλήση συνάρτησης a) Η στοίβα πριν την κλήση read b) Η στοίβα κατά τη διάρκεια εκτέλεσης της καλούμενης διαδικασίας Επικοινωνία -RPC 4

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

Συμβατική (Τοπική) Κλήση Διαδικασιών Μεταβίβαση παραμέτρων Μεταβίβαση με τιμή Αντιγραφή της πραγματικής παραμέτρου Παρόμοια με τοπική μεταβλητή Μεταβίβαση με αναφορά είκτης στην πραγματική παράμετρο Σύνδεση με μεταβλητή του καλούντα Επικοινωνία -RPC 6

Κλήση Απομακρυσμένων Διαδικασιών Επικοινωνία γίνεται με ανταλλαγή μηνυμάτων π.χ. κλήσεις send/receive Χάνεται η διαφάνεια του συστήματος Επικοινωνία με χρήση απομακρυσμένων διαδικασιών Βασική ιδέα: να επιτραπεί στα προγράμματα να καλούν διαδικασίες που εκτελούνται σε διαφορετικές μηχανές (Birrell & Nelson 1984) Λογική αφαίρεση υψηλότερου επιπέδου Παρόμοια με κλήσεις τοπικών διαδικασιών Απόκρυψη της πραγματικής επικοινωνίας Όταν μία διαδικασία στη μηχανή Α καλέσει μία διαδικασία στη μηχανή Β, η εκτέλεση της διεργασίας στην Α αναστέλλεται και η εκτέλεση της καλούμενης διαδικασίας συνεχίζεται στη μηχανή Β Επικοινωνία -RPC 7

Κλήση Απομακρυσμένων Διαδικασιών Επικοινωνία -RPC 8

Κλήση Απομακρυσμένων Διαδικασιών Σύγχρονη κλήση Ασύγχρονη κλήση Χρήση δύο ασύγχρονων κλήσεων Επικοινωνία -RPC 9

Κλήση Απομακρυσμένων Διαδικασιών Πληροφορίες δίνονται από την καλούσα και την καλούμενη με τη μορφή παραμέτρων εν λαμβάνεται γνώση της μεταβίβασης των μηνυμάτων και της λειτουργίας εισόδου/εξόδου Επικοινωνία -RPC 10

Κλήση Απομακρυσμένων Διαδικασιών Η διαφάνεια της λειτουργίας του μηχανισμού RPC επιτυγχάνεται με την χρήση ψευδορουτινών-υποκατάστατων (stubs) client & server Κορμός πελάτη (client stub) Ίδια κλητική ακολουθία με διαδικασία Εκδοχή της απομακρυσμένης διαδικασίας στον πελάτη Κορμός εξυπηρετητή (server stub) Εκτελεί την κλήση της διαδικασίας Μετατρέπει τις εισερχόμενες κλήσεις σε τοπικές κλήσεις Υλοποίηση της απομακρυσμένης κλήσης με 2 τοπικές κλήσεις Κλήση κορμού πελάτη τοπικά από πελάτη Κλήση διαδικασίας τοπικά από κορμό εξυπηρετητή Επικοινωνία -RPC 11

Κλήση Απομακρυσμένων Διαδικασιών Μηχανή Πελάτη Μηχανή Εξυπ/τή Client Server call return return call Stub Stub form deform form deform Network Επικοινωνία -RPC 12

Κλήση Απομακρυσμένων Διαδικασιών Επικοινωνία -RPC 13

Κλήση Απομακρυσμένων Διαδικασιών Επικοινωνία -RPC 14

Κλήση Απομακρυσμένων Διαδικασιών Επικοινωνία -RPC 15

Κλήση Απομακρυσμένων Διαδικασιών Βήματα για απομακρυσμένη κλήση Η διαδικασία του πελάτη καλεί την ψευδορουτίνα πελάτη με τον συνηθισμένο τρόπο Η ψευδορουτίνα πελάτη σχηματίζει ένα μήνυμα και καλεί το τοπικό ΛΣ Το ΛΣ του πελάτη στέλνει το μήνυμα στο απομακρυσμένο ΛΣ Το απομακρυσμένο ΛΣ παραδίδει το μήνυμα στην ψευδορουτίνα εξυπηρετητή Η ψευδορουτίνα εξυπηρετητή ξεπακετάρει τις παραμέτρους από το μήνυμα και καλεί τον εξυπηρετητή Ο εξυπηρετητής ολοκληρώνει την εκτέλεσή του και επιστρέφει τα αποτελέσματά στην ψευδορουτίνα Η ψευδορουτίνα εξυπηρετητή σχηματίζει ένα μήνυμα με τα αποτελέσματα και καλεί το τοπικό ΛΣ Το ΛΣ του εξυπηρετητή στέλνει το μήνυμα στο ΛΣ του πελάτη Το ΛΣ του πελάτη παραδίδει το μήνυμα στην ψευδορουτίνα πελάτη Η ψευδορουτίνα πελάτη ξεπακετάρει τα αποτελέσματα και τα επιστρέφει στον πελάτη Επικοινωνία -RPC 16

Κλήση Απομακρυσμένων Διαδικασιών Μεταβίβαση παραμέτρων Κανονική μορφή αναπαράστασης Τυποποιημένος τρόπος παράστασης κάθε τύπου Οι αποστολείς μετατρέπουν σε κανονική μορφή Οι παραλήπτες μετατρέπουν από κανονική μορφή Χρησιμοποιείται στο TCP/IP (σειρά δικτύου) Χρήση κλήσεων βιβλιοθήκης για μετατροπές Οι κλήσεις μπορεί να είναι κενές σε ορισμένα συστήματα Βελτιστοποίηση αναπαράστασης Ο πελάτης και ο εξυπηρετητής μπορεί να είναι ίδιου τύπου Η μετατροπή από/προς την κανονική μορφή είναι περιττή Αναπαράσταση πάντα σε μορφή πελάτη Πεδίο χρησιμοποιούμενης αναπαράστασης Ο εξυπηρετητής κάνει τις μετατροπές αν χρειάζεται Επικοινωνία -RPC 17

Κλήση Απομακρυσμένων Διαδικασιών ιευθέτηση παραμέτρων Υπάρχουν διαφορές στην αναπαράσταση δεδομένων σε διαφορετικές αρχιτεκτονικές συστημάτων Χρειάζεται συμφωνία στο format μεταξύ πελάτη και εξυπηρετητή Call by copy restore Στην count=read(fd, buf, nbytes) Αντιγράφεται ο πίνακας με τις παραμέτρους στον εξυπηρετητή Εκτελείται η read και επιστρέφεται ο πίνακας με τα αποτελέσματα υσκολία για πολύπλοκες δομές Σε κάποια συστήματα χρησιμοποιείται ειδικός κώδικας στον εξυπηρετητή που ζητά από τον πελάτη ότι χρειάζεται όταν το χρειαστεί Επικοινωνία -RPC 18

Πρωτόκολλα Επικοινωνίας Συνδεσμικό ή ασυνδεσµικό πρωτόκολλο Με σύνδεση (τηλέφωνο) ή χωρίς σύνδεση (ταχυδρομείο) Ασυνδεσµικά πρωτόκολλα για τοπικά δίκτυα Η απουσία συνδέσεων αυξάνει την ταχύτητα Τα συνδεσμικά πρωτόκολλα παρέχουν αξιοπιστία Το πρωτόκολλο ασχολείται µε τις λεπτομέρειες Κόστος αποκατάστασης / απελευθέρωσης σύνδεσης Το TCP απαιτεί πολλαπλά µηνύµατα διαχείρισης Αναγκαστικά συνδεσμικά σε ευρεία περιοχή Επικοινωνία -RPC 19

Πρωτόκολλα Επικοινωνίας Έτοιµο ή εξειδικευμένο πρωτόκολλο Το έτοιµο πρωτόκολλο είναι δοκιμασμένο Συνήθως παρέχονται περιττές ευκολίες Από τα 13 πεδία του IP χρειαζόμαστε τα 3 Το εξειδικευμένο πρωτόκολλο είναι πιο γρήγορο Παραλλαγές γνωστών πρωτοκόλλων για RPC Επικοινωνία -RPC 20

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

Πρωτόκολλα Επικοινωνίας a) TCP b) TCP συναλλαγών (transaction TCP) Επικοινωνία -RPC 22

Πρωτόκολλα Επικοινωνίας Κόστος απομακρυσμένων κλήσεων Σταθερό κόστος ανά µήνυµα Συµφέρει η ανταλλαγή µεγάλων µηνυµάτων Το Ethernet περιορίζει τα πακέτα στα 1500 byte Μικρότερα πακέτα στα δίκτυα ευρείας περιοχής Θρυμματισμός µεγάλων πακέτων σε µικρά Σηµαντικό κόστος θρυμματισμού και συναρμολόγησης Επικοινωνία -RPC 23

Τύποι Servers Stateful servers ιατηρούν πληροφορία κατάστασης του client από τη μία κλήση του στην επόμενη πχ, ένας stateful file server προσφέρει: open, read, write, seek, close και διατηρεί έναν file pointer Stateless servers εν διατηρούν πληροφορία κατάστασης του client. Κάθε request μεταφέρει όλες τις απαιτούμενες παραμέτρους πχ, ένας stateless file server προσφέρει: read,write και χρειάζεται fileposition ως παράμετρο Οι stateless servers προσφέρουν σαφές πλεονέκτημα σε περίπτωση κατάρρευσής τους, αλλά μπορεί να υστερούν σε απόδοση Επικοινωνία -RPC 24

Διαφάνεια RPC Ο στόχος είναι η διαφάνεια κλήσης απομακρυσμένων διαδικασιών Συντακτική διαφάνεια (syntactic transparency) Σημασιολογική διαφάνεια (semantic transparency) Η συντακτική διαφάνεια δεν είναι δύσκολο να επιτευχθεί, μια και οι απομακρυσμένες κλήσεις ακολουθούν το ίδιο μοντέλο με τις τοπικές Κλήση διαδικασίας από μία διεργασία και αναστολή αυτής μέχρι την επιστροφή της κλήσης Πέρασμα παραμέτρων στην κλήση Επιστροφή αποτελεσμάτων από την κλήση Επικοινωνία -RPC 25

Διαφάνεια RPC Η πλήρης σημασιολογική διαφάνεια είναι αδύνατη διότι: Οι απομακρυσμένες διαδικασίες εκτελούνται σε ξεχωριστό address space. πχ, η χρήση δομών δεδομένων με δείκτες είναι δύσκολη και απαιτεί ειδικούς μηχανισμούς (πχ calll-by-copy/restore) οι οποίοι διαφέρουν από τους κλασικούς (call by value/reference) Οι απομακρυσμένες διαδικασίες παρουσιάζουν σφάλματα τα οποία πηγάζουν από την ύπαρξη διαφορετικών μηχανών και του δικτύου ανάμεσά τους. Η αντιμετώπιση τέτοιων σφαλμάτων αλλάζει τη σημασιολογία Η εκτέλεση απομακρυσμένων διαδικασιών απαιτεί 10-1000 φορές περισσότερο χρόνο, γεγονός που πρέπει να έχει υπόψη του η διεργασίαclient Επικοινωνία -RPC 26

Κύριες Κατηγορίες Σφαλμάτων RPC Πιθανά σφάλματα σ ένα σύστημα RPC Ο πελάτης δεν μπορεί να εντοπίσει τον εξυπηρετητή Το μήνυμα αίτησης από τον πελάτη στον εξυπηρετητή έχει χαθεί Ο εξυπηρετητής τίθεται εκτός αφού έχει λάβει μία αίτηση Το μήνυμα απάντησης από τον εξυπηρετητή στον πελάτη έχει χαθεί Ο πελάτης τίθεται εκτός αφού έχει στείλει την αίτηση Επικοινωνία -RPC 27

Κύριες Κατηγορίες Σφαλμάτων RPC Σφάλμα Εντοπισμού Server Συμβαίνει σε περίπτωση κατάρρευσης του server, ή όταν έχει αλλάξει ο αριθμός έκδοσής του Μπορεί να το πληροφορηθεί η client διεργασία που έκανε την κλήση μέσω ειδικού SIGNAL (πχ SIGNOSERVER) ή διαδικασίας exception, ανάλογα με το τι υποστηρίζει η γλώσσα στην οποία γράφτηκε ο client Τέτοια σφάλματα καθιστούν αδύνατη τη διαφάνεια Επικοινωνία -RPC 28

Κύριες Κατηγορίες Σφαλμάτων RPC Απολεσθέντα Μηνύματα Αίτησης Πιθανή η απώλεια λόγω δικτύου. Μπορεί να αντιμετωπισθεί ως εξής: Κάθε φορά που ο πυρήνας στέλνει μία κλήση ενεργοποιεί έναν χρονομετρητή Αν αυτός εκπνεύσει πριν ληφθεί το μήνυμα απάντησης, το μήνυμα επαναμεταδίδεται Αν όντως χάθηκε, ο server δεν μπορεί να ξεχωρίσει το retransmitted από το αρχικό Αν χάνεται συνεχώς, ο πυρήνας θα θεωρήσει ότι ο server δεν είναι διαθέσιμος, οπότε ανάγεται στο προηγούμενο πρόβλημα Επικοινωνία -RPC 29

Κύριες Κατηγορίες Σφαλμάτων RPC Απολεσθέντα Μηνύματα Απάντησης Πρόβλημα που αντιμετωπίζεται δύσκολα Αν ο πυρήνας του client χρησιμοποιεί timer, όταν αυτός εκπνεύσει, ο πυρήνας δεν γνωρίζει κατά πόσο χάθηκε η αίτηση χάθηκε η απάντηση ο server είναι αργός (χρήση ΙΑΑ) Η επανεκτέλεση της κλήσης: είναι δυνατή, αν η απομακρυσμένη διαδικασία δεν προκαλεί αλλαγή κατάστασης (state change) στον server (τότε ονομάζεται κραταιή (idempotent)) διαφορετικά, είναι δυνατή μόνο αν ο server εκτελεί duplicate filtering, δηλαδή ξεχωρίζει την αρχική αίτηση από αναμεταδόσεις της και απλά ξαναστέλνει την απάντηση, χωρίς επανεκτέλεση Επικοινωνία -RPC 30

Κύριες Κατηγορίες Σφαλμάτων RPC Κατάρρευση Server Ο client αναγνωρίζει την εκπνοή κάποιου μετρητή (και πιθανώς την κατάρρευση), αλλά δεν μπορεί να γνωρίζει κατά πόσο ο server κατάρρευσε πριν την εκτέλεση της διαδικασίας, κατά τη διάρκεια, ή μετά Όμως κάθε περίπτωση απαιτεί διαφορετική αντιμετώπιση στην πρώτη, πρέπει να επανα-μεταδοθεί η κλήση στην δεύτερη πρέπει να επιστρέψει σφάλμα εκτέλεσης στον client η τρίτη ισοδυναμεί με χαμένο μήνυμα απάντησης Επικοινωνία -RPC 31

Κύριες Κατηγορίες Σφαλμάτων RPC Κατάρρευση Client Η απομακρυσμένη διαδικασία μένει ορφανή (orphan) και δεσμεύει πόρους (κλειδωμένα αρχεία, μνήμη, CPU time) Αν ο client επανέρθει και απλά καλέσει ξανά την απομακρυσμένη διαδικασία, μπορεί να λάβει την απάντηση της ορφανής Πιθανές λύσεις: Εξολόθρευση: ο client αποθηκεύει στο δίσκο πληροφορία για κάθε RPC μήνυμα και σε περίπτωση επανεργοποίησης καταστρέφει τις ορφανές που υπάρχουν στις εγγραφές. Είναι χρονοβόρα, και μπορεί να αφήσει δισόρφανες Επικοινωνία -RPC 32

Κύριες Κατηγορίες Σφαλμάτων RPC Κατάρρευση Client Πιθανές λύσεις: Αναβίωση:ο χρόνος διαιρείται σε σειριακά αριθμημένες εποχές. Μετά την επανεργοποίηση, ο client στέλνει μήνυμα «νέας εποχής», και ο server καταστρέφει όλες τις διαδικασίες προηγούμενης αποχής Μερική αναβίωση: μετά τη λήψη μηνύματος νέας εποχής, ο server καταστρέφει μόνον τις διαδικασίες που δεν έχουν ιδιοκτήτη Λήξη: κάθε απομακρυσμένη διαδικασίαπου δεν ολοκληρώνει την εκτέλεσή της μετά από προκαθορισμένο χρονικό διάστημα Τ, αιτείται πρόσθετο χρόνο Τ και αν δεν ολοκληρώσει και πάλi, καταστρέφεται Επικοινωνία -RPC 33