Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr
Γιατί μετακινούμενος κώδικας; Ευελιξία διαχείρισης μετακίνηση υπηρεσιών του συστήματος Μείωση επικοινωνίας / τοπικής επεξεργασίας μεταφορά επεξεργασίας στην πηγή δεδομένων μεταφορά επεξεργασίας στον πελάτη Ευέλικτα σχήματα επικοινωνίας/επεξεργασίας ιδιωτική κωδικοποίηση πληροφορίας ιδιωτικά σχήματα επικοινωνίας ιδιωτικά σχήματα ανακάλυψης/δρομολόγησης Αυτονομία έξυπνα προγράμματα, πράκτορες Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr
πρόγραμμα επικοινωνία πρόγραμμα Α όγκος δεδομένων ή/και συχνότητα επικοινωνίας Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr
Μεταφορά επεξεργασίας στην πηγή Α Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr
Μεταφορά επεξεργασίας στην πηγή Α Α Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr
Μεταφορά επεξεργασίας στην πηγή Α Α Α Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr
Μεταφορά επεξεργασίας στην πηγή Α Α Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr
Μεταφορά επεξεργασίας στην πηγή Α Α Α Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr
Ιδιωτική επικοινωνία (στον εξυπηρετητή) Α Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr
Ιδιωτική επικοινωνία (στον εξυπηρετητή) Α Α Κατανεμημένα Συστήματα 10 lalis@inf.uth.gr
Ιδιωτική επικοινωνία (στον εξυπηρετητή) Α Α Κατανεμημένα Συστήματα 11 lalis@inf.uth.gr
Ιδιωτική επικοινωνία (στον πελάτη) Α Κατανεμημένα Συστήματα 12 lalis@inf.uth.gr
Ιδιωτική επικοινωνία (στον πελάτη) Α Κατανεμημένα Συστήματα 13 lalis@inf.uth.gr
Ιδιωτική επικοινωνία (στον πελάτη) Α Κατανεμημένα Συστήματα 14 lalis@inf.uth.gr
Ιδιωτική επικοινωνία (στον πελάτη) Α Κατανεμημένα Συστήματα 15 lalis@inf.uth.gr
Εξισορρόπηση φόρτου επικοινωνίας Α C Κατανεμημένα Συστήματα 16 lalis@inf.uth.gr
Εξισορρόπηση φόρτου επικοινωνίας Α C Κατανεμημένα Συστήματα 17 lalis@inf.uth.gr
Εξισορρόπηση φόρτου επικοινωνίας Α B C Κατανεμημένα Συστήματα 18 lalis@inf.uth.gr
Εξισορρόπηση φόρτου επικοινωνίας Α C Κατανεμημένα Συστήματα 19 lalis@inf.uth.gr
Ανακάλυψη / δρομολόγηση Α Κατανεμημένα Συστήματα 20 lalis@inf.uth.gr
Ανακάλυψη / δρομολόγηση Α R Κατανεμημένα Συστήματα 21 lalis@inf.uth.gr
Ανακάλυψη / δρομολόγηση R Α R R Κατανεμημένα Συστήματα 22 lalis@inf.uth.gr
Ανακάλυψη / δρομολόγηση R R Α R R R Κατανεμημένα Συστήματα 23 lalis@inf.uth.gr
Ανακάλυψη / δρομολόγηση R R Α R R R Κατανεμημένα Συστήματα 24 lalis@inf.uth.gr
Ανακάλυψη / δρομολόγηση Α R R R Κατανεμημένα Συστήματα 25 lalis@inf.uth.gr
ασική προϋπόθεση: φορητός κώδικας Source code: μετάφραση στον προορισμό Executable code: το περιβάλλον προορισμού πρέπει να έχει την αρχιτεκτονική και το λειτουργικό και για τα οποία φτιάχτηκε το εκτελέσιμο Intermediate code: ο κώδικας δίνεται σε εντολές (ενδιάμεσης) μορφής/γλώσσας, που μεταφράζεται ή ερμηνεύεται δυναμικά στον κόμβο προορισμού Στον προορισμό πρέπει να υπάρχει κατάλληλο περιβάλλον υποδοχής/εκτέλεσης κώδικα Κατανεμημένα Συστήματα 26 lalis@inf.uth.gr
Μετανάστευση προγράμματος Weak migration: στον προορισμό, το πρόγραμμα αρχίζει την εκτέλεση του ξανά από την αρχή Strong migration: στον προορισμό, το πρόγραμμα συνεχίζει την εκτέλεση του από το σημείο που την σταμάτησε προτού γίνει η μετακίνηση Για strong migration απαιτείται: Σώσιμο κατάστασης πριν την μετακίνηση και επαναφορά κατάστασης μετά την μετακίνηση Αποκατάσταση αναφορών σε «ειδικούς» πόρους Αποκατάσταση «καναλιών» επικοινωνίας Κατανεμημένα Συστήματα 27 lalis@inf.uth.gr
Οντότητα μετανάστευσης Διεργασία: η διαδικασία της μετακίνησης υλοποιείται σε επίπεδο λειτουργικού συστήματος το λειτουργικό δεν γνωρίζει πώς να χειριστεί τους «ειδικούς» πόρους (π.χ., files, sockets) που χρησιμοποιεί μια διεργασία προϋποθέτει ομοιογένεια λειτουργικού Ενεργό αντικείμενο (σε πιο ψηλό επίπεδο): η διαδικασία μετακίνησης υλοποιείται σε κάποιο περιβάλλον εκτέλεσης πάνω από το λειτουργικό ανεξαρτησία από το λειτουργικό αυτοματοποίηση μηχανισμών σειριοποίησης/αποκατάστασης μέσω τεχνικών οντοκεντρικού προγραμματισμού Κατανεμημένα Συστήματα 28 lalis@inf.uth.gr
Σώσιμο-μεταφορά-επαναφορά κατάστασης Ομοιότητες με Tην εναλλαγή διεργασιών Tηv διαδικασία απενεργοποίησης προγραμμάτων (ενεργών αντικειμένων) και απομάκρυνσης τους από την κυρίως μνήμη, και επαναφοράς τους στην κυρίως μνήμη και ενεργοποίησης τους Tην σειριοποίηση δεδομένων Κατανεμημένα Συστήματα 29 lalis@inf.uth.gr
memory Node A Node B memory stack program state program state stack code code network Κατανεμημένα Συστήματα 30 lalis@inf.uth.gr
Χειρισμός αναφορών σε ειδικούς πόρους Εξαρτάται από το πόσο στενά συνδεδεμένος είναι ο πόρος (α) με τον τοπικό κόμβο/περιβάλλον και (β) με την οντότητα υπό μετακίνηση Αντιγραφή του πόρου στον προορισμό Μετακίνηση του πόρου στον προορισμό Απομακρυσμένη πρόσβαση του πόρου από τον προορισμό Συνήθως χρειάζεται (δυναμική) επανασύνδεση της μετακινούμενης οντότητας με τον πόρο είτε υπάρχει/δημιουργηθεί τοπικά, είτε είναι απομακρυσμένος Κατανεμημένα Συστήματα 31 lalis@inf.uth.gr
stdout library database Κατανεμημένα Συστήματα 32 lalis@inf.uth.gr
stdout library copy library database Κατανεμημένα Συστήματα 33 lalis@inf.uth.gr
stdout library library database Κατανεμημένα Συστήματα 34 lalis@inf.uth.gr
stdout Α Α library library database move database Κατανεμημένα Συστήματα 35 lalis@inf.uth.gr
Διαχείριση (άκρων) επικοινωνίας Ιδανικά, θέλουμε διαφάνεια μετακίνησης Αποκατάσταση επικοινωνίας μετά την μετακίνηση ενημέρωση: το πρόγραμμα ενημερώνει ρητά την άλλη πλευρά για το νέο άκρο επικοινωνίας του ανακάλυψη: η άλλη πλευρά ανακαλύπτει μόνη της το νέο άκρο επικοινωνίας του προγράμματος σταθερό άκρο: το μετακινούμενο πρόγραμμα «δεν αλλάζει» άκρο επικοινωνίας Μετάδοση μηνυμάτων κατά την μετακίνηση μπλοκάρισμα αποστολέα αποθήκευση στον αποστολέα ή σε ενδιάμεση αποθήκη Κατανεμημένα Συστήματα 36 lalis@inf.uth.gr
Ενημέρωση Προτού αρχίσει η μετακίνηση, στέλνεται στην άλλη πλευρά μήνυμα ακύρωσης του άκρου επικοινωνίας του μετακινούμενου προγράμματος Όταν ολοκληρωθεί η μετακίνηση, στέλνεται στην άλλη πλευρά μήνυμα ενημέρωσης για το νέο άκρο επικοινωνίας του προγράμματος Η άλλη πλευρά αναστέλλει την επικοινωνία μέχρι να ενημερωθεί για το νέο άκρο επικοινωνίας Κατανεμημένα Συστήματα 37 lalis@inf.uth.gr
A Κατανεμημένα Συστήματα 38 lalis@inf.uth.gr
cancel A Κατανεμημένα Συστήματα 39 lalis@inf.uth.gr
A Κατανεμημένα Συστήματα 40 lalis@inf.uth.gr
A update Κατανεμημένα Συστήματα 41 lalis@inf.uth.gr
A Κατανεμημένα Συστήματα 42 lalis@inf.uth.gr
Ανακάλυψη μέσω καταλόγου Το μετακινούμενο πρόγραμμα ενημερώνει μια υπηρεσία καταλόγου για το ότι βρίσκεται υπό μετακίνηση (ακυρώνει τα παλιά στοιχεία επικοινωνίας) Όταν ολοκληρωθεί η μετακίνηση, το πρόγραμμα ενημερώνει πάλι τον κατάλογο με τα νέα στοιχεία επικοινωνίας του Η άλλη πλευρά, όταν αποτυγχάνει η επικοινωνία με το εν λόγω πρόγραμμα, συμβουλεύεται (περιοδικά) τον κατάλογο, μέχρι να ανανεωθούν τα στοιχεία επικοινωνίας Κατανεμημένα Συστήματα 43 lalis@inf.uth.gr
registry A Κατανεμημένα Συστήματα 44 lalis@inf.uth.gr
registry cancel A Κατανεμημένα Συστήματα 45 lalis@inf.uth.gr
registry A Κατανεμημένα Συστήματα 46 lalis@inf.uth.gr
registry error A Κατανεμημένα Συστήματα 47 lalis@inf.uth.gr
registry? B A Κατανεμημένα Συστήματα 48 lalis@inf.uth.gr
registry A update Κατανεμημένα Συστήματα 49 lalis@inf.uth.gr
registry B A Κατανεμημένα Συστήματα 50 lalis@inf.uth.gr
registry A Κατανεμημένα Συστήματα 51 lalis@inf.uth.gr
Ανακάλυψη μέσω ανακατεύθυνσης Το παλιό άκρο επικοινωνίας παραμένει ενεργό Χρησιμοποιείται από μια διεργασία που εκτελεί χρέη ανακατεύθυνσης: όταν καταφθάνει ένα μήνυμα, η διεργασία ενημερώνει τον αποστολέα για τα νέα στοιχεία επικοινωνίας δείχνει προς την σωστή «κατεύθυνση» Η άλλη πλευρά, όταν λάβει μήνυμα ανακατεύθυνσης, ξαναστέλνει το μήνυμα στο νέο άκρο επικοινωνίας Χρειάζεται ένας μηχανισμός συλλογής «άχρηστων» διεργασιών/πληροφορίας ανακατεύθυνσης Κατανεμημένα Συστήματα 52 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 53 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 54 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 55 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 56 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 57 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 58 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 59 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 60 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 61 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 62 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 63 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 64 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 65 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 66 lalis@inf.uth.gr
A1 A2 Κατανεμημένα Συστήματα 67 lalis@inf.uth.gr
Σταθερό άκρο επικοινωνίας (θυρίδα) Το μετακινούμενο πρόγραμμα έχει ένα σταθερό άκρο επικοινωνίας, που λειτουργεί ως ταχυδρομική θυρίδα δεν βρίσκεται απαραίτητα στο ίδιο μηχάνημα Η αλληλεπίδραση μεταξύ θυρίδας και προγράμματος έχει το σχήμα της απομακρυσμένης ενημέρωσης Είτε τα μηνύματα που καταφθάνουν στην θυρίδα αποθηκεύονται τοπικά, και το πρόγραμμα πρέπει να ελέγχει περιοδικά την θυρίδα για νέα μηνύματα Είτε τα μηνύματα που καταφθάνουν στην θυρίδα προωθούνται στο εκάστοτε άκρο επικοινωνίας του προγράμματος, οπότε το πρόγραμμα πρέπει να ενημερώνει την θυρίδα όταν αλλάζει θέση Κατανεμημένα Συστήματα 68 lalis@inf.uth.gr
A Κατανεμημένα Συστήματα 69 lalis@inf.uth.gr
m1 m1 A Κατανεμημένα Συστήματα 70 lalis@inf.uth.gr
A Κατανεμημένα Συστήματα 71 lalis@inf.uth.gr
A Κατανεμημένα Συστήματα 72 lalis@inf.uth.gr
A Κατανεμημένα Συστήματα 73 lalis@inf.uth.gr
m1 A Κατανεμημένα Συστήματα 74 lalis@inf.uth.gr
m1 A Κατανεμημένα Συστήματα 75 lalis@inf.uth.gr
m1 A m1 Κατανεμημένα Συστήματα 76 lalis@inf.uth.gr
Ζητήματα απόδοσης/βελτιστοποίησης Ποια μέθοδος είναι η πιο κατάλληλη; Εξαρτάται από τις υποθέσεις εργασίας που κάνουμε για το σύστημα μας δεν υπάρχει «πανάκεια» Συχνή μετακίνηση: επικοινωνία μέσω θυρίδας Συχνή επικοινωνία: απ ευθείας επικοινωνία Στην πράξη γίνονται (όπως πάντα) συμβιβασμοί πρέπει όμως να ξέρουμε τι κάνουμε και τις συνέπειες Κατανεμημένα Συστήματα 77 lalis@inf.uth.gr
μετάδοση μηνύματος με απ ευθείας επικοινωνία μετάδοση μηνύματος μέσω θυρίδας Α Α Α Α Κατανεμημένα Συστήματα 78 lalis@inf.uth.gr
μετάδοση μηνύματος με απ ευθείας επικοινωνία μετάδοση μηνύματος μέσω θυρίδας Α Α Α Α Κατανεμημένα Συστήματα 79 lalis@inf.uth.gr