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

Σχετικά έγγραφα
Remote Method Invocation (RMI)

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

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

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

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

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

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

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

Κατανεµηµένα Αντικείµενα 16-1

Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Εργαλεία ανάπτυξης εφαρμογών internet Ι

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

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

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

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

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

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

Εργαλεία Ανάπτυξης Εφαρμογών Internet I

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

Προγραμματισμός Ι (ΗΥ120)

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

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

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

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

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

HX-TEL 999. ΗΧ-TEL999 rev1_1

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

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

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

JAX-RPC (Web Services) ΕΠΛ 425: Τεχνολογίες ιαδικτύου Μιχάλης Έλληνας

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

υποστηρίζουν και υλοποιούν την πολιτική ασφάλειας

CORBA. Αρχιτεκτονική και 3-tier 3. εφαρµογές. Β. Φλώρος. Μαρτάκος. Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστιακό Πανεπιστήµιο Αθηνών

Πρωτόκολλο TCP Διάλεξη ΙΙI

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

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

MultiBoot Οδηγός χρήσης

ΟΔΗΓΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑΣ GSM CL-IVB

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΝΗΜΕΡΩΣΗ ΤΩΝ ΔΗΜΟΣΙΩΝ ΟΙΚΟΝΟΜΙΚΩΝ ΥΠΗΡΕΣΙΩΝ (Δ.Ο.Υ.)

Γενικά. Σχήµα Ι: Επικοινωνία Client-Server, ExecuteCommand TuniConnection

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

Τεχνολογία Λογισμικού Τύπος Α

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

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

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

Μεθοδολογίες ικτυακής Επικοινωνίας Αρθρωµάτων Λογισµικού

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

ΕΠΛ233 ΠΛΗΡΟΦΟΡΙΑ ΤΥΠΟΥ. Type Information. Μ. Δικαιάκος

Σύστημα Εισροών - Εκροών CROSS Fuel Input-Output Flow Manager. Γρηγόρης Τζιάλλας

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

Οδηγίες EQL Desktop (rev ) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

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

ΕΚΘΕΣΗ ΠΡΟΔΙΑΓΡΑΦΩΝ ΔΑΠΑΝΗΣ ΓΙΑ ΤΗΝ ΠΑΡΟΧΗ ΥΠΗΡΕΣΙΩΝ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΙΚΩΝ ΜΕΤΡΩΝ ΑΣΦΑΛΕΙΑΣ ΤΟΥ COMPUTER ROOM ΔΗΜΟΥ ΩΡΑΙΟΚΑΣΤΡΟΥ

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2

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

Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec03 18/02/2019

ΟΔΗΓΙΕΣ ΘΕΡΜΟΣΤΑΤΗ/ΧΕΙΡΙΣΤΗΡΙΟΥ

IXION S-PRO SIGMA Technologies 6 προγραμματισμένα κινητά τηλέφωνα

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

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

ΤΡΟΠΟΣ ΕΝΕΡΓΟΠΟΙΗΣΗΣ / ΑΠΕΝΕΡΓΟΠΟΙΗΣΗΣ ΤOY ΠΑΚΕΤOY

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

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

ΑΡΧΗ ΔΙΑΣΦΑΛΙΣΗΣ ΤΟΥ ΑΠΟΡΡΗΤΟΥ ΤΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΟ

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Κατανεμημένα Συστήματα. Javascript LCR example

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

Βασίλειος Κοντογιάννης ΠΕ19

Σύνοψη 3 ης ιάλεξης. Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων.

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Οδηγίες χρήσης Πώς να χρησιμοποιήσετε το FastBanner

Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

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

Πρόσκληση 10: Προηγμένες Τηλεματικές Υπηρεσίες Τ.Ε.Ι. Ηπείρου Δίκτυο Τ.Ε.Ι. Ηπείρου ΙΙ

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α

ΕΜΠΟΡΙΚΗ ΠΟΛΙΤΙΚΗ ΟΙΚΟΝΟΜΙΚΟΙ ΟΡΟΙ ΣΥΝΕΡΓΑΣΙΑΣ ΜΕ ΠΡΑΚΤΟΡΕΣ ΤΗΣ ΟΠΑΠ Α.Ε.

ΕΜΠΟΡΙΚΗ ΠΟΛΙΤΙΚΗ ΟΙΚΟΝΟΜΙΚΟΙ ΟΡΟΙ ΣΥΝΕΡΓΑΣΙΑΣ ΜΕ ΠΡΑΚΤΟΡΕΣ ΤΗΣ ΟΠΑΠ Α.Ε.

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Στο grid διαχείρισης φακέλων εμφανίζονται οι εξής πληροφορίες:

11β Δομικά πρότυπα σχεδίασης

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

Οδηγός Εγκατάστασης Pylon Auto Moto Cube

MultiBoot Οδηγός χρήσης

Δοκιμή και Αποσφαλμάτωση Testing and Debugging

Προσοµοίωση λειτουργίας επιπέδων OSI

Δομές Δεδομένων (Data Structures)

ΑΠΟΦΑΣΗ. (αριθμ.: 52 /2009)

ΤΡΟΠΟΣ ΕΝΕΡΓΟΠΟΙΗΣΗΣ / ΑΠΕΝΕΡΓΟΠΟΙΗΣΗΣ ΤΩΝ ΠΑΚΕΤΩΝ

Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1

ΠΡΟΣΟΧΗ Η έκδοση 5.40 δεν απαιτεί Convert μετά την εγκατάσταση.

Σύνοψη 6 ης ιάλεξης. Εισαγωγικά (2)

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

Εξωτερικές συσκευές Οδηγός χρήσης

ΕΝΗΜΕΡΩΤΙΚΟ ΦΥΛΛΑΔΙΟ ΠΡΩΤΟΕΤΩΝ ΦΟΙΤΗΤΩΝ

Transcript:

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

Απομακρυσμένα αντικείμενα Οι μέθοδοι τους μπορεί να κληθούν απομακρυσμένα στο πνεύμα των RPCs Οι τοπικές αναφορές σε απομακρυσμένα αντικείμενα δείχνουν σε ένα αντικείμενο «πληρεξούσιο» (proxy) στο πνεύμα του RPC client stub Στο μηχάνημα του απομακρυσμένου αντικειμένου υπάρχει ένα αντικείμενο «σκελετός» (skeleton) στο πνεύμα του RPC server stub Ο κώδικας των proxy και skeleton μπορεί να παράγεται αυτόματα χρησιμοποιώντας ειδικά εργαλεία όπως τα RPC client/server stubs Διάφορες τεχνολογίες: Jv-RMI, DCOM, Corb, Κατανεμημένα Συστήματα llis@inf.uth.gr

virtul (remote) reference server object proxy skeleton runtime runtime Κατανεμημένα Συστήματα 3 llis@inf.uth.gr

.foo(pr) res server object proxy res.foo(pr) skeleton runtime pr res runtime Κατανεμημένα Συστήματα 4 llis@inf.uth.gr

Ενδεικτική μεθοδολογία ανάπτυξης υπάρχουσες τάξεις/διασυνδέσεις Remote Interfce Remote Object Clss extends extends client ppliction uses MyRemote Interfce implements MyRemote Object Clss τάξεις που δημιουργούνται αυτόματα implements MyRemote ProxyObject Clss uses MyRemote SkeletonObject Clss Κατανεμημένα Συστήματα 5 llis@inf.uth.gr

interfce RemoteCounter extends Remote { } void resetcounter() throws RemoteException; int getcounter() throws RemoteException; void inccounter() throws RemoteException; clss RemoteCounterObject extends RemoteObject implements RemoteCounter { } privte int c; MyRemoteCounter() { c=0; } void resetcounter() throws RemoteException { c=0; } int getcounter() throws RemoteException { return(c); } void inccounter() throws Remote Exception { c++; } Κατανεμημένα Συστήματα 6 llis@inf.uth.gr

Μεταφορά απομακρυσμένων αναφορών Η αναφορά σε ένα απομακρυσμένο αντικείμενο (μέσω ενός τοπικού proxy) είναι μεταφέρσιμη Μπορεί να σταλεί σε άλλα μηχανήματα, π.χ., ως παράμετρος ή/και αποτέλεσμα απομακρυσμένων κλήσεων μεθόδων Ο αποστολέας σειριοποιεί το proxy και ο παραλήπτης το αποσειριοποιεί σε ένα τοπικό αντίγραφο Η σειριοποιημένη μορφή ενός proxy περιέχει την πληροφορία που χρειάζεται για την δημιουργία και την σύνδεση ενός καινούργιου proxy με το απομακρυσμένο αντικείμενο (skeleton) Κατανεμημένα Συστήματα 7 llis@inf.uth.gr

runtime b pb Β sβ runtime runtime Κατανεμημένα Συστήματα 8 llis@inf.uth.gr

b.op() runtime Β pb B.op() b sβ runtime runtime info() Κατανεμημένα Συστήματα 9 llis@inf.uth.gr

b.op() res runtime Β pb res B.op() b sβ res runtime runtime info() Κατανεμημένα Συστήματα 10 llis@inf.uth.gr

runtime Β b pb sβ runtime runtime Κατανεμημένα Συστήματα 11 llis@inf.uth.gr

Δημιουργία απομακρυσμένων αντικειμένων Επιστρέφεται αναφορά σε ένα αντικείμενο proxy Ένα απομακρυσμένο αντικείμενο μπορεί να δημιουργηθεί και σε απομακρυσμένο μηχάνημα Απαιτείται υπηρεσία «παραγωγής» αντικειμένων (object fctory) που επιστρέφει (πάνω από το δίκτυο) μια αναφορά στο αντικείμενο που δημιουργήθηκε κάτι ανάλογο με το NEW, σε απομακρυσμένη έκδοση η υπηρεσία μπορεί να είναι η ίδια υλοποιημένη ως ένα απομακρυσμένο (εργοστασιακό) αντικείμενο (fctory object) Τοπικά, η αναφορά στο απομακρυσμένο αντικείμενο δείχνει σε ένα (καινούργιο) αντικείμενο proxy Κατανεμημένα Συστήματα 1 llis@inf.uth.gr

fctory object F f pf sf runtime runtime Κατανεμημένα Συστήματα 13 llis@inf.uth.gr

f.new(clss) F f pf sf F.new(Clss) runtime runtime Κατανεμημένα Συστήματα 14 llis@inf.uth.gr

f.new(clss) F f pf sf F.new(Clss) runtime info() runtime Κατανεμημένα Συστήματα 15 llis@inf.uth.gr

F f pf sf runtime runtime Κατανεμημένα Συστήματα 16 llis@inf.uth.gr

F f pf sf runtime runtime Κατανεμημένα Συστήματα 17 llis@inf.uth.gr

F f pf sf runtime runtime Κατανεμημένα Συστήματα 18 llis@inf.uth.gr

Δυναμική εγκατάσταση proxy / skeleton Στον οντοκεντρικό προγραμματισμό δεν είναι πάντα γνωστό εκ των προτέρων (την ώρα της ανάπτυξης) το ποιοι (ακριβώς) τύποι αντικειμένων θα δημιουργηθούν Ο κώδικας της τάξης ενός απομακρυσμένου αντικειμένου ή proxy ίσως δεν υπάρχει τοπικά Απαιτείται ένας μηχανισμός μεταφοράς και δυναμικής φόρτωσης κώδικα πάνω από το δίκτυο Καθώς αυτό γίνεται αυτόματα, π.χ., κατά την μεταφορά των απομακρυσμένων αναφορών, προκύπτουν προβλήματα ασφάλειας Συνήθως, πρέπει να προδιαγραφούν με ρητό τρόπο (configurtion), τα «έμπιστα» μηχανήματα από τα οποία επιτρέπεται να φορτωθεί κώδικας Κατανεμημένα Συστήματα 19 llis@inf.uth.gr

Απενεργοποίηση / ενεργοποίηση αντικειμένων Αν ένα αντικείμενο παραμένει ανενεργό για μεγάλο χρονικό διάστημα, μπορεί να μεταφερθεί στον δίσκο για να απελευθερωθούν πόροι του συστήματος Όταν καταφθάσει αίτηση για ένα απενεργοποιημένο αντικείμενο, αυτό ενεργοποιείται ξανά ώστε να πραγματοποιηθεί η αντίστοιχη κλήση μεθόδου Το μέσο αποθήκευσης μπορεί να είναι οτιδήποτε δίσκος, σύστημα αρχείων, βάση δεδομένων Αυτοματοποίηση διαδικασίας (απ)ενεργοποίησης ομοιότητες με την (απο)σειριοποίηση δομών/αντικειμένων Κατανεμημένα Συστήματα 0 llis@inf.uth.gr

runtime runtime Κατανεμημένα Συστήματα 1 llis@inf.uth.gr

runtime runtime dectivte stte of Κατανεμημένα Συστήματα llis@inf.uth.gr

runtime runtime stte of Κατανεμημένα Συστήματα 3 llis@inf.uth.gr

cll runtime runtime crete empty instnce of stte of Κατανεμημένα Συστήματα 4 llis@inf.uth.gr

cll runtime runtime ctivte stte of Κατανεμημένα Συστήματα 5 llis@inf.uth.gr

cll cll runtime runtime Κατανεμημένα Συστήματα 6 llis@inf.uth.gr

Συλλογή απομακρυσμένων αντικειμένων Ένα απομακρυσμένο αντικείμενο πρέπει να συλλέγεται όταν δεν χρησιμοποιείται από κανέναν όταν δεν υπάρχουν (απομακρυσμένες) αναφορές σε αυτό Απαιτείται καταγραφή των απομακρυσμένων αναφορών (proxies) που υφίστανται ανά πάσα στιγμή όταν μηδενιστεί ο αριθμός των απομακρυσμένων αναφορών τότε το αντικείμενο μπορεί να συλλεχθεί συμβατικά Χρειάζεται προσοχή έτσι ώστε η συλλογή αντικειμένων να λειτουργεί σωστά σε συνδυασμό με την αντιγραφή απομακρυσμένων αναφορών, ώστε να μην υπάρχει περίπτωση εσφαλμένης συλλογής αντικειμένων, λόγω ασύγχρονης επικοινωνίας Κατανεμημένα Συστήματα 7 llis@inf.uth.gr

Μετρητής αναφορών Για κάθε απομακρυσμένο αντικείμενο διατηρείται ένας μετρητής αναφορών Αρχικοποιείται σε 1 όταν δημιουργείται το πρώτο proxy Αυξάνεται κατά 1 όταν δημιουργείται ένα νέο proxy Μειώνεται κατά 1 όταν συλλέγεται ένα proxy Κάθε φορά που δημιουργείται / καταστρέφεται ένα proxy, υπάρχει επικοινωνία με τον εξυπηρετητή Η αντιγραφή μιας αναφοράς πρέπει να γίνεται σύγχρονα, έτσι ώστε το proxy του αποστολέα να μην μπορεί να συλλεχθεί προτού δημιουργηθεί επιτυχώς το proxy στον παραλήπτη Κατανεμημένα Συστήματα 8 llis@inf.uth.gr

1 Κατανεμημένα Συστήματα 9 llis@inf.uth.gr

copy +1 1 Κατανεμημένα Συστήματα 30 llis@inf.uth.gr

Κατανεμημένα Συστήματα 31 llis@inf.uth.gr

copy +1 Κατανεμημένα Συστήματα 3 llis@inf.uth.gr

3 Κατανεμημένα Συστήματα 33 llis@inf.uth.gr

copy 3 +1 Κατανεμημένα Συστήματα 34 llis@inf.uth.gr

4 Κατανεμημένα Συστήματα 35 llis@inf.uth.gr

4 Κατανεμημένα Συστήματα 36 llis@inf.uth.gr

-1 4 Κατανεμημένα Συστήματα 37 llis@inf.uth.gr

3 Κατανεμημένα Συστήματα 38 llis@inf.uth.gr

3 Κατανεμημένα Συστήματα 39 llis@inf.uth.gr

-1 3 Κατανεμημένα Συστήματα 40 llis@inf.uth.gr

Κατανεμημένα Συστήματα 41 llis@inf.uth.gr

Μετρητής βάρους/πίστωσης Ένα απομακρυσμένο αντικείμενο διαθέτει ένα «βάρος» ή μια «τρέχουσα πίστωση» που αντιπροσωπεύει το σύνολο των πιστώσεων που έχουν δοθεί σε proxies Αρχικά, ολόκληρη η πίστωση δίνεται στο πρώτο proxy Όταν αντιγράφεται μια αναφορά, ένα μέρος της πίστωσης του αντίστοιχου proxy μεταβιβάζεται στην νέα αναφορά χωρίς επικοινωνία με το αντικείμενο Όταν συλλέγεται μια αναφορά, η πίστωση που έχει δοθεί στο proxy επιστρέφεται πίσω στο αντικείμενο, και αφαιρείται από την τρέχουσα πίστωση Το αντικείμενο συλλέγεται όταν ο μετρητής γίνει 0 Πρόβλημα: τι γίνεται αν μια αναφορά έχει πίστωση 1; Κατανεμημένα Συστήματα 4 llis@inf.uth.gr

8 8 Κατανεμημένα Συστήματα 43 llis@inf.uth.gr

4 copy,4 4 8 Κατανεμημένα Συστήματα 44 llis@inf.uth.gr

4 4 8 Κατανεμημένα Συστήματα 45 llis@inf.uth.gr

copy, 4 8 Κατανεμημένα Συστήματα 46 llis@inf.uth.gr

4 8 Κατανεμημένα Συστήματα 47 llis@inf.uth.gr

copy, 8 Κατανεμημένα Συστήματα 48 llis@inf.uth.gr

8 Κατανεμημένα Συστήματα 49 llis@inf.uth.gr

8 Κατανεμημένα Συστήματα 50 llis@inf.uth.gr

- 8 Κατανεμημένα Συστήματα 51 llis@inf.uth.gr

6 Κατανεμημένα Συστήματα 5 llis@inf.uth.gr

6 Κατανεμημένα Συστήματα 53 llis@inf.uth.gr

- 4 Κατανεμημένα Συστήματα 54 llis@inf.uth.gr

4 Κατανεμημένα Συστήματα 55 llis@inf.uth.gr

1 copy,1 1 4 Κατανεμημένα Συστήματα 56 llis@inf.uth.gr

1 1 4 Κατανεμημένα Συστήματα 57 llis@inf.uth.gr

1 1 4 Κατανεμημένα Συστήματα 58 llis@inf.uth.gr

1 1-1 4 Κατανεμημένα Συστήματα 59 llis@inf.uth.gr

1 3 Κατανεμημένα Συστήματα 60 llis@inf.uth.gr

Μετρητές με γενιές αντιγράφων Ένα αντικείμενο διατηρεί ξεχωριστούς μετρητές αναφορών για κάθε γενιά αντιγράφων proxies Κάθε proxy έχει ένα αριθμό γενιάς G και αριθμό αντιγράφων N που έχουν γίνει μέσω αυτού Για το πρώτο proxy: G=0, N=0 Όταν αντιγράφεται ένα proxy (G,N) τότε N=N+1, ενώ το νέο proxy που δημιουργείται είναι (G+1,0) Όταν συλλέγεται ένα proxy (G,N), η πληροφορία αυτή στέλνεται στο απομακρυσμένο αντικείμενο, ώστε να ενημερωθούν οι γενιές και οι αντίστοιχοι μετρητές Το αντικείμενο συλλέγεται όταν μηδενιστούν οι μετρητές αναφορών για όλες τις γνωστές γενιές Κατανεμημένα Συστήματα 61 llis@inf.uth.gr

G0 0 G0 1 Κατανεμημένα Συστήματα 6 llis@inf.uth.gr

G0 1 copy,g1 G1 0 G0 1 Κατανεμημένα Συστήματα 63 llis@inf.uth.gr

G0 1 G1 0 G0 1 Κατανεμημένα Συστήματα 64 llis@inf.uth.gr

G1 0 copy,g1 G0 G1 0 G0 1 Κατανεμημένα Συστήματα 65 llis@inf.uth.gr

G1 0 G0 G1 0 G0 1 Κατανεμημένα Συστήματα 66 llis@inf.uth.gr

G1 0 G0 G1 1 copy,g G0 1 G 0 Κατανεμημένα Συστήματα 67 llis@inf.uth.gr

G1 0 G0 G1 1 G0 1 G 0 Κατανεμημένα Συστήματα 68 llis@inf.uth.gr

G1 0 G0 G1 1 G0 1 G 0 Κατανεμημένα Συστήματα 69 llis@inf.uth.gr

G1 0 G0 G1 1 G1,1 G0 1 G 0 Κατανεμημένα Συστήματα 70 llis@inf.uth.gr

G1 0 G0 G0 1 G1-1 G 1 G 0 Κατανεμημένα Συστήματα 71 llis@inf.uth.gr

G1 0 G0 G0 1 G1-1 G 1 G 0 Κατανεμημένα Συστήματα 7 llis@inf.uth.gr

G1 0 G0 G0, G0 1 G1-1 G 1 G 0 Κατανεμημένα Συστήματα 73 llis@inf.uth.gr

G1 0 G 0 G0 0 G1 1 G 1 Κατανεμημένα Συστήματα 74 llis@inf.uth.gr

G1 1 copy,g G 0 G0 0 G1 1 G 1 G 0 Κατανεμημένα Συστήματα 75 llis@inf.uth.gr

G1 1 G 0 G0 0 G1 1 G 1 G 0 Κατανεμημένα Συστήματα 76 llis@inf.uth.gr

G1 1 G 0 G0 0 G1 1 G 1 G 0 Κατανεμημένα Συστήματα 77 llis@inf.uth.gr

G1 1 G 0 G1,1 G0 0 G1 1 G 1 G 0 Κατανεμημένα Συστήματα 78 llis@inf.uth.gr

G 0 G0 0 G1 0 G G 0 Κατανεμημένα Συστήματα 79 llis@inf.uth.gr

Χειρισμός κυκλικών αναφορών Μπορεί να υπάρχει «απομονωμένος» κύκλος αναφορών π.χ., Α έχει μια αναφορά στο Β, και το αντίστροφο, χωρίς να υπάρχει καμία εξωτερική αναφορά σε κάποιο από τα Α και Β Ο εντοπισμός τέτοιων κυκλικών αναφορών είναι ιδιαίτερα δύσκολος σε ένα κατανεμημένο σύστημα ασύγχρονη εκτέλεση και επικοινωνία μπορεί να δημιουργούνται / συλλέγονται αναφορές ταυτόχρονα με τη διαδικασία του εντοπισμού κύκλων Ανασταλτικοί αλγόριθμοι: σταμάτημα/πάγωμα της εκτέλεσης, άμεση συλλογή των «σκουπιδιών» Προοδευτικοί αλγόριθμοι: εγγυώνται ότι κάποια στιγμή θα γίνει συλλογή των «σκουπιδιών» Κατανεμημένα Συστήματα 80 llis@inf.uth.gr

Χειρισμός βλαβών Παρόμοιες τεχνικές με request-reply/rpc Για βλάβες χωρίς επανεκκίνηση του «πελάτη» (που κρατά αναφορές στο αντικείμενο) απαιτείται αναθεώρηση των μεθόδων συλλογής αντικειμένων δεν γίνεται σωστή ενημέρωση των μετρητών αναφοράς Για τον έλεγχο της λειτουργίας των πελατών πρέπει να υπάρχει ρητή πληροφορία για την ταυτότητα τους, άρα και επικοινωνία με το απομακρυσμένο αντικείμενο κάθε φορά που δημιουργείται ένα καινούργιο proxy Εναλλακτικά, το αντικείμενο έχει διάρκεια ζωής που ανανεώνεται περιοδικά από τους πελάτες αν ένας πελάτης παρουσιάσει βλάβη, απλά δεν θα συνεισφέρει στην παράταση ζωής του αντικειμένου Κατανεμημένα Συστήματα 81 llis@inf.uth.gr

Μόνιμα αντικείμενα (υπηρεσιακά) Αντικείμενα που δεν συλλέγονται αυτόματα αντικείμενα που προσφέρουν υπηρεσίες συστήματος Δημιουργούνται και καταστρέφονται «με το χέρι» Οι πελάτες τα ανακαλύπτουν με ρητό τρόπο γνωστές μέθοδοι ανακάλυψης Κατανεμημένα Συστήματα 8 llis@inf.uth.gr