Κατανεµηµένααντικείµενα Αποµακρυσµένα αντικείµενα Αναφορές προς αντικείµενα Εξυπηρετητές αντικειµένων Εκκαθάριση αντικειµένων Μετρητές αναφορών Λίστες αναφορών Αποκοµιδή απορριµµάτων Κατανεµηµένα Αντικείµενα 16-1
Αποµακρυσµένααντικείµενα Αντικείµενο Μέθοδοι ιεπαφή Κατάσταση ιεπαφή Μέθοδοι ιεπαφή (interface) αντικειµένου εριγραφή (υπογραφών) των µεθόδων του αντικειµένου αράµετροι εισόδου και εξόδου κάθε µεθόδου Ένα αντικείµενο µπορεί να υλοποιεί πολλές διεπαφές Υλοποίηση (implementation) αντικειµένου Μέθοδοι αντικειµένου: κοινές σε όλα τα αντικείµενα Κατάσταση αντικειµένου: ιδιωτική σε κάθε αντικείµενο Κατανεµηµένα Αντικείµενα 16-2
Αποµακρυσµένααντικείµενα ελάτης Αντικείµενο ληρεξούσιος ιεπαφή Μέθοδοι κελετός Κατάσταση Αποµακρυσµένα αντικείµενα ιεπαφή και υλοποίηση σε διαφορετικές µηχανές Υλοποίηση σε µία µόνο µηχανή Κατανεµηµένα αντικείµενα: κατανεµηµένη υλοποίηση Αποµακρυσµένη διεπαφή (remote interface) Οι παράµετροι µπορεί να περιλαµβάνουν αντικείµενα Αποµακρυσµένη Κλήση Μεθόδων (RMI) ληρεξούσιος (proxy) και σκελετός (skeleton) Κατανεµηµένα Αντικείµενα 16-3
Αποµακρυσµένααντικείµενα ροσαρµογέας Μέθοδοι ιεπαφή υναρτήσεις εδοµένα Αποµακρυσµένα αντικείµενα στις C++ και Java Εµπεριέχουν διάκριση διεπαφής και υλοποίησης Αυτόµατη παραγωγή πληρεξούσιου και σκελετού Μπορούµε να συνδυάσουµε γλώσσες µέσω IDL Αποµακρυσµένα αντικείµενα άλλων γλωσσών ιατίθεται µόνο η υλοποίηση, όχι η διεπαφή ροσθήκη ενός προσαρµογέα αντικειµένων Αντικειµενοστρεφής διεπαφή για τυχαίο κώδικα Κατανεµηµένα Αντικείµενα 16-4
Αποµακρυσµένααντικείµενα τατικές αποµακρυσµένες κλήσεις Οι διεπαφές είναι γνωστές κατά τη µεταγλώττιση υναµικές αποµακρυσµένες κλήσεις Οι διεπαφές µπορεί να ανακαλύπτονται δυναµικά Τα αντικείµενα καταχωρούν τις διεπαφές τους Χρήση γενικευµένων κλήσεων µεθόδων Αναγνωριστικά αντικειµένου και µεθόδου ίνακες παραµέτρων εισόδου και εξόδου ιάρκεια ζωής αντικειµένων αροδικά (transient): δηµιουργία από αρχική κατάσταση Καταστροφή κατάστασης όταν δεν χρειάζονται πια Επίµονα (persistent): δηµιουργία από υπάρχουσα κατάσταση Αποθήκευση κατάστασης όταν δεν χρειάζονται πια Κατανεµηµένα Αντικείµενα 16-5
Αναφορέςπρος αντικείµενα Χρήσεις (αποµακρυσµένων) αναφορών ροσδιορισµός αντικειµένων σε κλήσεις µεθόδων εν απαιτεί τυποποιηµένες αναφορές Μεταβίβαση αντικειµένων ως παραµέτρων αναφοράς Απαιτεί τυποποιηµένες αναφορές Εντοπισµός αντικειµένων εσµευτής (binder): µετάφραση ονόµατος σε αναφορά Εγγραφή αντικειµένων στο δεσµευτή από τον εξυπηρετητή εριεχόµενο αποµακρυσµένης αναφοράς Άµεση αναφορά: διεύθυνση, θύρα, αντικείµενο εν επιτρέπει τη µετακίνηση αντικειµένων Έµµεση αναφορά: µέσω µεταφραστή σε διευθύνσεις ιθανόν µε πληροφορίες για τα πρωτόκολλα επικοινωνίας Κατανεµηµένα Αντικείµενα 16-6
Αναφορέςπρος αντικείµενα Εξειδικευµένοι πληρεξούσιοι Αναφορά σε πληρεξούσιο αντί στο αντικείµενο Κατέβασµα και εκτέλεση εξειδικευµένου πληρεξούσιου Απαιτεί τυποποίηση αναφορών σε πληρεξούσιους Μεταβίβαση αντικειµένων σε µεθόδους Χρήση αποµακρυσµένης αναφοράς Αντιοικονοµική λύση όταν τα πάντα είναι αντικείµενα ιάκριση αντικειµένων Μεταβίβαση αποµακρυσµένων αντικειµένων µε αναφορά Μεταβίβαση αντικειµένων ενσωµατωµένων τύπων µε τιµή Απαγόρευση µεταβίβασης άλλων τύπων αντικειµένων Η Java επιτρέπει µεταβίβαση όλων των τοπικών αντικειµένων υνατότητα σειριακοποίησης σύνθετων αντικειµένων Κατανεµηµένα Αντικείµενα 16-7
Εξυπηρετητέςαντικειµένων Αντικείµενο 1 Κατάσταση Μέθοδοι κελετός Αντικείµενο 2 Κατάσταση Μέθοδοι κελετός ιανοµέας κλήσεων Εξυπηρετητής αντικειµένων Υπηρεσίες εξυπηρετητή αντικειµένων ηµιουργία και καταστροφή αντικειµένων ηµιουργία αναφορών και διανοµή κλήσεων ολιτικές ενεργοποίησης αντικειµένων Χρόνος δηµιουργίας και καταστροφής (Κατα)µερισµός µνήµης ιαχείριση νηµάτων Κατανεµηµένα Αντικείµενα 16-8
Εξυπηρετητέςαντικειµένων Αντικείµενο 1 Αντικείµενο 2 Αντικείµενο 3 Αντικείµενο 4 Κατάσταση Κατάσταση Κατάσταση Κατάσταση Μέθοδοι κελετός Μέθοδοι κελετός Μέθοδοι κελετός Μέθοδοι κελετός ροσαρµογέας 1 ροσαρµογέας 2 Εξυπηρετητής αντικειµένων ροσαρµογείς αντικειµένων Υλοποίηση (και) των πολιτικών ενεργοποίησης Ο εξυπηρετητής υποστηρίζει πολλούς προσαρµογείς Κάθε προσαρµογέας υποστηρίζει πολλά αντικείµενα Επικοινωνία προσαρµογέα µε αντικείµενα Χρήση γενικευµένων / δυναµικών κλήσεων ιαχείριση της κλήσης από το σκελετό Κατανεµηµένα Αντικείµενα 16-9
Εξυπηρετητέςαντικειµένων Τάξεις Υπηρέτες (servant classes) Υλοποιήσεις των αποµακρυσµένων αντικειµένων Καλούνται από τους σκελετούς των αντικειµένων Αρχικοποίηση εξυπηρετητή ηµιουργία ενός τουλάχιστον αντικειµένου Εγγραφή αντικειµένου στο δεσµευτή ηµιουργία πρόσθετων αντικειµένων µέσω RMI Κατασκευή αποµακρυσµένων αντικειµένων Οι κατασκευαστές δεν είναι αποµακρυσµένοι Κατασκευή µε µεθόδους άλλων αντικειµένων Εργοστασιακές µέθοδοι: κατασκευάζουν αντικείµενα Εργοστασιακά αντικείµενα: παρέχουν εργοστασιακές µεθόδους ηµιουργούνται κατά την αρχικοποίηση των εξυπηρετητών Κατανεµηµένα Αντικείµενα 16-10
Εκκαθάρισηαντικειµένων Αποµακρυσµένες αναφορές αντικειµένων ηµιουργούνται µαζί µε το αντικείµενο Αντιγράφονται όταν µεταβιβάζονται σε κλήσεις Όταν διαγραφούν όλες, το αντικείµενο είναι περιττό Κατανεµηµένη αποκοµιδή απορριµµάτων Εντοπισµός αντικειµένων χωρίς αναφορές Κάθε αναφορά είναι ένα ζεύγος πληρεξούσιου-σκελετού Υποθέτουµε µόνο αποµακρυσµένες αναφορές Οι αναφορές µπορεί να έχουν καταστραφεί Αποτυχία διεργασιών που περιέχουν αναφορές ότε µπορεί να διαγραφεί ένα αντικείµενο; Όταν δεν έχει αποµακρυσµένες αναφορές Οι κυκλικές αναφορές αγνοούνται Κατανεµηµένα Αντικείµενα 16-11
Εκκαθάρισηαντικειµένων 2 3 7 1 4 5 6 8 Γράφηµα αντικειµένων και αναφορών Κόµβοι: αντικείµενα / Ακµές: αναφορές Ριζικό σύνολο: αντικείµενα προσπελάσιµα χωρίς αναφορές Χρήστες, υπηρεσίες, µηχανές αράδειγµα: Το ριζικό σύνολο είναι το αντικείµενο 1 Μόνο τα αντικείµενα 3, 7 και 8 είναι προσπελάσιµα Κατανεµηµένα Αντικείµενα 16-12
Μετρητέςαναφορών λήθος αναφορών προς αντικείµενο Αύξηση σε κάθε δηµιουργία αναφοράς Μείωση σε κάθε διαγραφή αναφοράς ιαγραφή αντικειµένου κατά το µηδενισµό Εφαρµογή σε αποµακρυσµένα αντικείµενα Αποθήκευση µετρητή αναφορών στο σκελετό Κάθε αναφορά αντιστοιχεί σε έναν πληρεξούσιο Οι πληρεξούσιοι ενηµερώνουν το σκελετό µε µηνύµατα Απαιτείται αξιόπιστη αποστολή µηνυµάτων Μεταβίβαση αποµακρυσµένων αναφορών ηµιουργία νέου πληρεξούσιου στον καλούµενο Ο καλών δεν µπορεί να διαγραφεί άµεσα Κίνδυνος πρόωρης διαγραφής του αντικειµένου Κατανεµηµένα Αντικείµενα 16-13
Μετρητέςαναφορών Μετρητές αναφορών µε βάρη Κάθε σκελετός έχει ένα (αυθαίρετο) συνολικό βάρος Αρχικά: µερικό βάρος = συνολικό βάρος ηµιουργία αναφορών Το µισό µερικό βάρος του σκελετού πάει στον πληρεξούσιο Μεταβίβαση αναφορών Το µισό µερικό βάρος του παλιού πάει στον νέο πληρεξούσιο ιαγραφή αναφορών Ο πληρεξούσιος στέλνει το µερικό βάρος του Ο σκελετός µειώνει το συνολικό βάρος του Μερικό βάρος = συνολικό βάρος σηµαίνει καµία αναφορά Όταν οι µετρητές φτάσουν στο 1 έχουµε πρόβληµα Κατανεµηµένα Αντικείµενα 16-14
Μετρητέςαναφορών ελάτης Β ΜΒ = 40 (α) Αντικείµενο Α Β = 80 ΜΒ = 40 ελάτης Β ΜΒ = 20 ελάτης Γ ΜΒ = 20 (β) Αντικείµενο Α Β = 80 ΜΒ = 40 ελάτης Β ΜΒ = 20 ελάτης Γ ΜΒ = 20 Αντικείµενο Α Β = 80 ΜΒ = 20 ελάτης Β ΜΒ = 20 Αντικείµενο Α Β = 60 ΜΒ = 20 ελάτης ΜΒ = 20 ελάτης ΜΒ = 20 (γ) (δ) ελάτης Β ΜΒ = 20 Μετρητές αναφορών µε βάρη (ε) Αντικείµενο Α Β = 40 ΜΒ = 20 (στ) Αντικείµενο Α Β = 20 ΜΒ = 20 Κατανεµηµένα Αντικείµενα 16-15
Μετρητέςαναφορών Μετρητές αναφορών µε γενεές ύο µετρητές σε κάθε πληρεξούσιο Μετρητής αντιγράφων και µετρητής γενεών ίνακας πλήθους αντιγράφων ανά γενεά στο σκελετό ηµιουργία αναφορών Μηδενισµός και των δύο µετρητών στον πληρεξούσιο Αύξηση µετρητή µηδενικής γενεάς στο σκελετό Μεταβίβαση αναφορών Αύξηση µετρητή αντιγράφων στον καλούντα Αύξηση µετρητή γενεών στον καλούµενο ιαγραφή αναφορών Ο πληρεξούσιος στέλνει τους µετρητές του, έστω (µ,ν) Μείωση γενιάς µ κατά 1, αύξηση γενιάς µ+1 κατά ν Κατανεµηµένα Αντικείµενα 16-16
Μετρητέςαναφορών ελάτης Β Γ: 0 / Α: 0 (α) Αντικείµενο Α Γενεά 0 = 1 Γενεά 1 = 0 ελάτης Β Γ: 0 / Α: 1 ελάτης Γ Γ: 1 / Α: 0 (β) Αντικείµενο Α Γενεά 0 = 1 Γενεά 1 = 0 ελάτης Β Γ: 0 / Α: 1 ελάτης Γ Γ: 1 / Α: 0 Αντικείµενο Α Γενεά 0 = 2 Γενεά 1 = 0 ελάτης Β Γ: 0 / Α: 1 Αντικείµενο Α Γενεά 0 = 2 Γενεά 1 = -1 ελάτης Γ: 0 / Α: 0 (γ) ελάτης Γ: 0 / Α: 0 (δ) ελάτης Β Γ: 0 / Α: 1 (ε) Αντικείµενο Α Γενεά 0 = 1 Γενεά 1 = -1 (στ) Αντικείµενο Α Γενεά 0 = 0 Γενεά 1 = 0 Μετρητές αναφορών µε γενεές Κατανεµηµένα Αντικείµενα 16-17
Λίστεςαναφορών αρακολούθηση των πηγών των αναφορών Καταγραφή όλων των πληρεξούσιων του αντικειµένου Επιτρέπεται η επανάληψη κάθε πράξης Μεταβίβαση αναφορών ρώτα ενηµερώνεται ο σκελετός από τον καλούντα Αποφυγή τυχόν πρόωρης διαγραφής του αντικειµένου Ιδιότητες λίστας αναφορών Ο σκελετός µπορεί να ελέγχει περιοδικά τους πληρεξούσιους Οι λίστες αναφορών µπορεί να γίνουν πολύ µεγάλες Κάθε πράξη απαιτεί επικοινωνία µε το σκελετό αραχώρηση αναφορών (lease) ιαγραφή των αναφορών αν δεν ανανεωθούν ρητά Αποφεύγεται ο περιοδικός έλεγχος των πληρεξούσιων Κατανεµηµένα Αντικείµενα 16-18
Αποκοµιδήαπορριµµάτων εριορισµοί µετρητών και λιστών αναφορών εν εντοπίζουν τις κυκλικές αναφορές εν αντιµετωπίζουν εύκολα τις αποτυχίες Αποκοµιδή απορριµµάτων µε ιχνηλάτηση Ιχνηλάτηση αλυσίδων αναφορών από το ριζικό σύνολο Όσα αντικείµενα δεν απαριθµηθούν έτσι είναι περιττά Χρήση σε συνδυασµό µε απλούστερες τεχνικές Τεχνική σηµείωσης και σάρωσης Αρχικά όλα τα αντικείµενα είναι λευκά Τα αντικείµενα του ριζικού συνόλου γίνονται πράσινα Κάθε αντικείµενο µίας αλυσίδας γίνεται προσωρινά γκρι Όταν χρωµατιστούν όλες οι αναφορές του γίνεται πράσινο Όσα αντικείµενα παραµείνουν λευκά είναι περιττά Κατανεµηµένα Αντικείµενα 16-19
Αποκοµιδήαπορριµµάτων Α2 Α3 Α7 Α1 Α4 Α5 Α8 Α6 Κατανεµηµένη σηµείωση και σάρωση Τα αντικείµενα του ριζικού συνόλου γίνονται πράσινα Ακολουθούµε τις τοπικές αναφορές όπως συνήθως τις αποµακρυσµένες αναφορές ο πληρεξούσιος γίνεται γκρι Κάθε γκρι πληρεξούσιος στέλνει µήνυµα στον σκελετό Κατανεµηµένα Αντικείµενα 16-20
Αποκοµιδήαπορριµµάτων Α2 Α3 Α7 Α1 Α4 Α5 Α8 Α6 Κατανεµηµένη σηµείωση και σάρωση Ο σκελετός και το αντικείµενο χρωµατίζονται γκρι Η διαδικασία επαναλαµβάνεται αναδροµικά Το αντικείµενο γίνεται πράσινο όταν τελειώσουν οι πληρεξούσιοι Ο σκελετός επιστρέφει µήνυµα σε όλους τους πληρεξούσιους Κατανεµηµένα Αντικείµενα 16-21
Αποκοµιδήαπορριµµάτων Α2 Α1 Α3 Α7 Α4 Α5 Α6 Α8 Τέλος αλγορίθµου όταν δε γίνονται άλλες αλλαγές Μόνο το πράσινα αντικείµενα είναι προσπελάσιµα Το πράσινο χρώµα των πληρεξούσιων δεν αρκεί Μειονεκτήµατα αλγορίθµου Το σύστηµα πρέπει να µείνει σε σταθερή κατάσταση Αν αλλάξουν οι αναφορές µπορεί να γίνουν σφάλµατα Κατανεµηµένα Αντικείµενα 16-22
Αποκοµιδήαπορριµµάτων Ιεραρχική αποκοµιδή απορριµµάτων Αποκοµιδή απορριµµάτων σε µικρές οµάδες διεργασιών Τα αντικείµενα µε εξωτερικές αναφορές θεωρούνται προσπελάσιµα ταδιακή µεγέθυνση των οµάδων Ιεραρχική σηµείωση και σάρωση Χρήση µετρητών ή λιστών αναφορών και ιχνηλάτησης ηµείωση µόνο σκελετών και πληρεξούσιων ηµείωση σκελετών κληροί: προσπελάσιµοι από ριζικό σύνολο ή εκτός οµάδας Μαλακοί: όλοι οι άλλοι (αρχική κατάσταση) ηµείωση πληρεξούσιων κληροί: προσπελάσιµοι από το ριζικό σύνολο Μαλακοί: προσπελάσιµοι από µαλακούς σκελετούς Κενοί: όλοι οι άλλοι (αρχική κατάσταση) Κατανεµηµένα Αντικείµενα 16-23
Αποκοµιδήαπορριµµάτων Ιεραρχική σηµείωση και σάρωση 1. Οι σκελετοί µε εξωτερικές αναφορές γίνονται σκληροί 2. Χαρακτηρισµός πληρεξούσιων κληροί: αναφορές από ριζικό σύνολο ή σκληρούς σκελετούς Μαλακοί: αναφορές µόνο από µαλακούς σκελετούς 3. Οι σκληροί πληρεξούσιοι ενηµερώνουν τους σκελετούς Οι υπόλοιποι σκελετοί είναι ήδη µαλακοί 4. υνεχής επανάληψη δύο προηγούµενων βηµάτων ταµατάµε όταν δεν γίνονται άλλες αλλαγές 5. Τέλος αλγόριθµου Οι µαλακοί πληρεξούσιοι ανήκουν σε κύκλους Οι κενοί πληρεξούσιοι είναι µη προσπελάσιµοι Κατανεµηµένα Αντικείµενα 16-24