Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα Συστήµατα 09-1
Τοπικήκλήση διαδικασιών Επικοινωνία µε ανταλλαγή µηνυµάτων Κλήσεις send και receive Απώλεια διαφάνειας του συστήµατος Επικοινωνία µε κλήση αποµακρυσµένων διαδικασιών Λογική αφαίρεση υψηλότερου επιπέδου Παρόµοια µε κλήσεις τοπικών διαδικασιών Απόκρυψη της πραγµατικής επικοινωνίας Υλοποίηση τοπικών κλήσεων διαδικασιών έσµευση χώρου και εκχώρηση παραµέτρων στη στοίβα Εκχώρηση πραγµατικών παραµέτρων στη στοίβα Κλήση διαδικασίας και επιστροφή Αντιγραφή αποτελεσµάτων από στοίβα Αποδέσµευση χώρου από τη στοίβα Κατανεµηµένα Συστήµατα 09-2
Τοπικήκλήση διαδικασιών 1 2 Καλών Στοίβα Καλούµενος Λειτουργικό Υλισµικό Μεταβίβαση µε τιµή Αντιγραφή της πραγµατικής παραµέτρου Παρόµοια µε τοπική µεταβλητή Μεταβίβαση µε αναφορά είκτης στην πραγµατική παράµετρο Σύνδεση µε µεταβλητή του καλούντα Μεταβίβαση µε τιµή/αποτέλεσµα Αντιγραφή της πραγµατικής παραµέτρου Αντιγραφή της τελικής τιµής στην πραγµατική παράµετρο Παρόµοια αλλά όχι ίδια µε µεταβίβαση µε αναφορά Κατανεµηµένα Συστήµατα 09-3
Αποµακρυσµένηκλήση διαδικασιών 1 Καλών Στοίβα 2 Κορµός Κορµός πελάτη εξυπηρετητή Λειτουργικό Υλισµικό 3 Καλούµενος Στοίβα 5 Λειτουργικό Υλισµικό 4 ίκτυο ιασύνδεσης Στόχος αποµακρυσµένης κλήσης διαδικασιών (RPC) Μέγιστη δυνατή οµοιότητα µε τοπική κλήση Απόκρυψη λεπτοµερειών µέσω βιβλιοθήκης Κορµός πελάτη: ίδια κλητική ακολουθία µε διαδικασία Κορµός εξυπηρετητή: εκτελεί την κλήση της διαδικασίας Κλήση κορµού πελάτη τοπικά από πελάτη Κλήση διαδικασίας τοπικά από κορµό εξυπηρετητή Κατανεµηµένα Συστήµατα 09-4
Μεταβίβασηπαραµέτρων Πρόταξη παραµέτρων (parameter marshalling) Μεταβίβαση παραµέτρων κλήσης µέσω δικτύου Αφορά µόνο τους κορµούς πελάτη και εξυπηρετητή Μεταβίβαση µε τιµή Αντιγραφή τιµών παραµέτρων στο µήνυµα Αντιγραφή τιµών παραµέτρων στη στοίβα Αντίστροφη πορεία για επιστροφή αποτελεσµάτων Αναπαράσταση παραµέτρων Η αναπαράσταση των τιµών µπορεί να διαφέρει ASCII ή EBCDIC, συµπλήρωµα ως προς ένα ή δύο Αναπαράσταση πραγµατικών αριθµών ιαφορετική σειρά αποθήκευσης δυφιοσυλλαβών Μικρό άκρο (Intel) και µεγάλο άκρο (Sun, Motorola) Κατανεµηµένα Συστήµατα 09-5
Μεταβίβασηπαραµέτρων Κανονική µορφή αναπαράστασης Τυποποιηµένος τρόπος παράστασης κάθε τύπου Οι αποστολείς µετατρέπουν σε κανονική µορφή Οι παραλήπτες µετατρέπουν από κανονική µορφή Χρησιµοποιείται στο TCP/IP (σειρά δικτύου) Χρήση κλήσεων βιβλιοθήκης για µετατροπές Οι κλήσεις µπορεί να είναι κενές σε ορισµένα συστήµατα Βελτιστοποίηση αναπαράστασης Ο πελάτης και ο εξυπηρετητής µπορεί να είναι ίδιου τύπου Η µετατροπή από/προς την κανονική µορφή είναι περιττή Αναπαράσταση πάντα σε µορφή πελάτη Πεδίο χρησιµοποιούµενης αναπαράστασης Ο εξυπηρετητής κάνει τις µετατροπές, αν χρειάζεται Κατανεµηµένα Συστήµατα 09-6
Μεταβίβασηπαραµέτρων Παράµετροι αναφοράς (δείκτες) Οι δείκτες δεν έχουν νόηµα στην αποµακρυσµένη µηχανή Πρέπει να συνδεθούν ο καλών και ο καλούµενος Χρήση µεταβίβασης µε αντιγραφή/επαναφορά Αντιγραφή της αρχικής τιµής στην είσοδο Χρήση δείκτη προς το αντίγραφο της τιµής Αντιγραφή της τελικής τιµής στην έξοδο εν επιτρέπονται τα ψευδώνυµα Μεγάλο κόστος σε δοµές όπως πίνακες εν επαρκεί για δυναµικές δοµές δεδοµένων Χρήση εικονικών δεικτών Οι προσπελάσεις του δείκτη µεταφέρονται στον καλούντα Μεγάλο κόστος επικοινωνίας µέσω δικτύου Κατανεµηµένα Συστήµατα 09-7
Πρωτόκολλαεπικοινωνίας Συνδεσµικό ή ασυνδεσµικό πρωτόκολλο Τα συνδεσµικά πρωτόκολλα παρέχουν αξιοπιστία Το πρωτόκολλο ασχολείται µε τις λεπτοµέρειες Κόστος αποκατάστασης/απελευθέρωσης σύνδεσης Το TCP απαιτεί πολλαπλά µηνύµατα διαχείρισης Ασυνδεσµικά πρωτόκολλα για τοπικά δίκτυα Αναγκαστικά συνδεσµικά σε ευρεία περιοχή Έτοιµο ή εξειδικευµένο πρωτόκολλο Το έτοιµο πρωτόκολλο είναι δοκιµασµένο Συνήθως παρέχονται περιττές ευκολίες Από τα 13 πεδία του IP χρειαζόµαστε τα 3 Το εξειδικευµένο πρωτόκολλο είναι πιο γρήγορο Παραλλαγές γνωστών πρωτοκόλλων για RPC Κατανεµηµένα Συστήµατα 09-8
Πρωτόκολλαεπικοινωνίας TCP συναλλαγών (T/TCP) Συνδυασµός αποκατάστασης σύνδεσης µε αίτηση Συνδυασµός απελευθέρωσης σύνδεσης µε απόκριση 3 µόνο µηνύµατα στην απλούστερη περίπτωση Πρόσθετα µηνύµατα για πολλές παραµέτρους Υποστηρίζονται όλες οι ευκολίες του TCP Κόστος αποµακρυσµένων κλήσεων Σταθερό κόστος ανά µήνυµα Συµφέρει η ανταλλαγή µεγάλων µηνυµάτων Το Ethernet περιορίζει τα πακέτα στα 1500 bytes Μικρότερα πακέτα στα δίκτυα ευρείας περιοχής Θρυµµατισµός µεγάλων πακέτων σε µικρά Κατανεµηµένα Συστήµατα 09-9
Αντιγραφήµηνυµάτων Κόστος αντιγραφής µηνυµάτων Σταθερό κόστος: µεταγωγή συµφραζοµένων Μεταβλητό κόστος: αντιγραφή δεδοµένων Ακολουθία αντιγραφών 5 αντιγραφές όταν δεν έχουµε παραµέτρους 7 αντιγραφές όταν έχουµε παραµέτρους Επιπλέον έχουµε και το κόστος µετάδοσης του µηνύµατος Καλών Καλούµενος Στοίβα Στοίβα 1 Κορµός πελάτη Κορµός εξυπηρετητή 7 2 3 Λειτουργικό Υλισµικό 4 Λειτουργικό Υλισµικό 6 5 ίκτυο ιασύνδεσης Κατανεµηµένα Συστήµατα 09-10
Αντιγραφήµηνυµάτων Τεχνική σκορπίσµατος/συλλογής Χρησιµοποιείται από κυκλώµατα διεπαφής Συλλογή µηνύµατος από πολλούς ενταµιευτές Σκόρπισµα µηνύµατος σε πολλούς ενταµιευτές Κεφαλίδα στον πυρήνα, σώµα στον κορµό Αποφεύγονται οι διαδοχικές αντιγραφές Τεχνική εικονικής µνήµης Κατασκευή µηνύµατος στον κορµό πελάτη Τροποποίηση χάρτη µνήµης Απεικόνιση µηνύµατος στον πυρήνα Αποφεύγονται όλες οι αντιγραφές Αντίστροφη διαδικασία στον εξυπηρετητή Απαιτεί µικρές σελίδες/τεµάχια µνήµης Κατανεµηµένα Συστήµατα 09-11
Προδιαγραφέςδιαδικασιών Λειτουργίες κορµών πελάτη και εξυπηρετητή Πρόταξη παραµέτρων και επικοινωνία Υλοποίηση κορµών πελάτη και εξυπηρετητή Απαιτείται γνώση των παραµέτρων εν απαιτείται κατανόηση της κλήσης ιαδικασίες βιβλιοθήκης για πρόταξη κάθε τύπου ιαδικασίες βιβλιοθήκης για επικοινωνία Γλώσσα ορισµού διεπαφών (IDL) Τυποποιηµένη περιγραφή παραµέτρων διαδικασιών Συνήθως ανεξάρτητη από γλώσσες προγραµµατισµού Αυτόµατη δηµιουργία κορµών από την IDL Χρήση βιβλιοθήκης για επικοινωνία και πρόταξη Σύνδεση κορµών µε πελάτη και εξυπηρετητή Κατανεµηµένα Συστήµατα 09-12
RPC στο σύστηµα DCE Περιβάλλον κατανεµηµένης επεξεργασίας (DCE) Μοντέλο πελάτη-εξυπηρετητή µε ενδιάµεσο λογισµικό Παρέχονται υπηρεσίες DCE και υπηρεσίες χρήστη Όλη η επικοινωνία γίνεται µέσω RPC Αυτόµατη µετατροπή τύπων δεδοµένων Κατάλληλο για διάφορες γλώσσες προγραµµατισµού Αρχείο IDL Μεταγλωττιστής IDL Κορµός πελάτη Κορµός εξυπηρετητή Πρόγραµµα πελάτη Αρχείο δηλώσεων Πρόγραµµα εξυπηρετητή Κατανεµηµένα Συστήµατα 09-13
RPC στο σύστηµα DCE Περιγραφή διεπαφών σε IDL Μοναδικό αναγνωριστικό για κάθε διεπαφή Περιγραφή παραµέτρων διαδικασιών Περιγραφή σταθερών και τύπων Απεικόνιση στην επιθυµητή γλώσσα προγραµµατισµού Επικοινωνία πελάτη και εξυπηρετητή Ο εξυπηρετητής εγγράφεται στην υπηρεσία ευρετηρίου του DCE Καταχωρείται το όνοµα και η διεύθυνση του εξυπηρετητή Ο εξυπηρετητής εγγράφεται στην τοπική υπηρεσία θυρών Καταχωρείται η θύρα στην οποία αναµένει ο εξυπηρετητής Ο πελάτης εντοπίζει τη διεύθυνση και τη θύρα του εξυπηρετητή Σηµασιολογία αποµακρυσµένων κλήσεων Κλήση το πολύ µία φορά Κλήση τουλάχιστον µία φορά Κατανεµηµένα Συστήµατα 09-14