Κατανεμημένες υπηρεσίες καταλόγου (distributed directory services) Κατανεμημένα Συστήματα 1

Σχετικά έγγραφα
Κατανεμημένες υπηρεσίες καταλόγου (distributed directory services) Κατανεμημένα Συστήματα 1

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

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

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

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

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

Κεφάλαιο 6ο ΕΠΙΠΕΔΟ ΕΦΑΡΜΟΓΗΣ. Εισαγωγή

Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1

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

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

Δρομολόγηση (Routing)

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

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

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

Δίκτυα Η/Υ στην Επιχείρηση

Κεφ.11: Ευρετήρια και Κατακερματισμός

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

Δίκτυα Θεωρία

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

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

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

Δίκτυα Υπολογιστών Επίπεδο εφαρμογής To Σύστημα Ονομασίας Τομέων DNS

Δροµολόγηση (Routing)

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

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing):

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

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

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

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

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

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

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

ΚΕΦΑΛΑΙΟ 16: Επίλυση Ονομάτων (Name Resolution) και DNS

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

7.8 Σύστημα Ονομάτων Περιοχών (Domain Name System, DNS) Χώρος Ονομάτων του DNS

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

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

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

7.8 Σύστηµα ονοµάτων περιοχών (Domain Name System, DNS)

Κατανεµηµένασυστήµατα ονοµασίας

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

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

Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1

Απομακρυσμένη Πρόσβαση και Εντολές Ελέγχου και Υποστήριξης

ΔΙΚΤΥΑ (18-19) Π. Φουληράς

Συστήματα Peer To Peer (P2P Systems) Γαλάνης Δημήτριος Παπαδημητρίου Χριστίνα

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

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

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

Επίπεδο δικτύου IP Forwading κτλ

Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών. Κοντοτάσιου Ιωάννα ΑΜ 3125 Μπέσσας Απόστολος ΑΜ 3171

Βασικές Έννοιες Web Εφαρμογών

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

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

Διαχειριστικό σύστημα ονομάτων χώρου

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING)

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

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

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

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

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

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

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

Τεχνολογίες ιαδικτύου

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Όχι, γιατί αν κάθε browser ζητά διαφορετικό αντικείμενο κάθε φορά τότε όχι μόνο δεν βελτιώνει αλλα χειροτερεύει τον χρόνο προσπέλασης

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

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

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

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

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

Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες)

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

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

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

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

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

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

Τεχνική Οδηγία. Επίλυση προβληµάτων µε DDNS Updates στα σχολικά εργαστήρια. Μάρτιος Σύνταξη: Τοµέας Εκπαιδευτικής Τεχνολογίας

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

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

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Vodafone Business Connect

Transcript:

Κατανεμημένες υπηρεσίες καταλόγου (distributed directory services) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr

Αναγνωριστικά (αντί για διευθύνσεις) Είναι επιθυμητό να αναφερόμαστε σε μια οντότητα χωρίς να πρέπει να γνωρίζουμε (εκ των προτέρων) την (τρέχουσα) διεύθυνση της Χρειαζόμαστε αναγνωριστικά υψηλού επιπέδου που έχουν ισχύ ανεξάρτητα από μηχανήματα και διεργασίες (που είναι «εργαλεία» χαμηλού επιπέδου) Κάποιες «διευθύνσεις» είναι στην ουσία αναγνωριστικά υψηλού επιπέδου, π.χ. διευθύνσεις διαδικτύου (IP) Όμως, ακόμα αυτά τα αναγνωριστικά είναι χαμηλού επιπέδου καθώς αναφέρονται σε μηχανήματα Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr

http://www.inf.uth.gr:80/ce323/slides/intro.pdf DNS 129.132.80.234 TCP 80 server public_html IP ARP FS CE322 slides intro.pdf 2:60:8C:2:B0:5A MAC Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr

Υπηρεσίες καταλόγων Απαιτείται αναγωγή ενός ονόματος / αναγνωριστικού σε μια διεύθυνση / στοιχεία επικοινωνίας Χρειάζονται κατάλληλες υπηρεσίες καταλόγου DNS, Grapevine, GNS, X.500, LDAP Όταν αυτές επεκτείνονται πέρα από τα όρια ενός τοπικού δικτύου, υπάρχουν απαιτήσεις κλιμάκωσης Εύκολη διαχείριση Υψηλή διαθεσιμότητα Γρήγορη αναζήτηση Συνέπεια αλλαγών Σημείωση: οι υπηρεσίες καταλόγου είναι πληροφοριακά συστήματα ειδικού σκοπού Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr

Κατανεμημένη διαχείριση πληροφορίας Κάθε εξυπηρετητής διαχειρίζεται ένα μέρος της συνολικής πληροφορίας του συστήματος Κάθε εξυπηρετητής κρατά πληροφορία δρομολόγησης ώστε να μπορεί να διαχειρίζεται αιτήσεις που δεν μπορεί να ικανοποιηθούν τοπικά για να τις προωθεί προς την «σωστή κατεύθυνση» Αλλαγές γίνονται (συνήθως) τοπικά, στον κόμβο που διαχειρίζεται το συγκεκριμένο μέρος της πληροφορίας Aντίγραφα για λόγους διαθεσιμότητας / κλιμάκωσης Η μετάδοση των αλλαγών γίνεται από το κυρίως αντίγραφο στα υπόλοιπα (σύγχρονα ή ασύγχρονα) Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr

Ιεραρχική δόμηση Κλιμάκωση στην διαχείριση των ονομάτων καθώς και στην αναζήτηση πληροφορίας Μπορεί να γίνουν αλλαγές σε ένα τμήμα του χώρου ονομάτων χωρίς επικοινωνία με τα υπόλοιπα αν δεν υπάρχουν αντίγραφα που πρέπει να ανανεωθούν Εστιασμένη / αποδοτική προώθηση αιτήσεων και επιστροφή αποτελεσμάτων αναζήτησης ιδίως αν η ιεραρχία «συμβαδίζει» με τη φυσική δικτύωση Εκμετάλλευση του φαινομένου της «τοπικότητας» Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr

cache data L0 s3 server network L1.1 L1.1.1 L1.2 s4 L1.3.1 s5 L1.3 L1.3.2 s6 s7 L1.1.2 s1 Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr

Διαφάνεια κατανομής για τον πελάτη Διαφάνεια κατανομής για τις τοπικές εφαρμογές Το πρωτόκολλο αναζήτησης σε επίπεδο υπηρεσίας μπορεί να είναι πιο πολύπλοκο από ένα request-reply π.χ. να απαιτείται επανειλημμένη αλληλεπίδραση με έναν ή περισσότερους εξυπηρετητές της υπηρεσίας Μπορεί να χρησιμοποιηθεί μια διασύνδεση RPC ή άλλο λογισμικό / βιβλιοθήκη που κρύβει την επικοινωνία πάνω από το δίκτυο και παρέχει την επιθυμητή διαφάνεια στις τοπικές εφαρμογές Το τοπικό λογισμικό μπορεί να έχει δικό του cache μείωση της επικοινωνίας πάνω από το δίκτυο, επιτάχυνση αναζήτησης, αυξημένη διαθεσιμότητα Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr

cache data s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr

Επαναληπτική αναζήτηση πελάτη Ο πελάτης στέλνει αίτηση στον εξυπηρετητή Αν ο εξυπηρετητής έχει την ζητούμενη πληροφορία τότε την στέλνει στον πελάτη Διαφορετικά, ο εξυπηρετητής στέλνει στον πελάτη την διεύθυνση ενός άλλου εξυπηρετητή προς την «κατεύθυνση» όπου βρίσκεται η πληροφορία Ο πελάτης επαναλαμβάνει την διαδικασία μέχρι να λάβει απάντηση Κατανεμημένα Συστήματα 10 lalis@inf.uth.gr

s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 11 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 12 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 13 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s3 s6 s7 s1 Κατανεμημένα Συστήματα 14 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 15 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s5 s6 s7 s1 Κατανεμημένα Συστήματα 16 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 17 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s6 s6 s7 s1 Κατανεμημένα Συστήματα 18 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 19 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 20 lalis@inf.uth.gr

s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 21 lalis@inf.uth.gr

client query(q): res = querycache(q); if (res == NULL) { s = contactserver(); do { send(s,<query,myid,q>); recv(s,<reply,res,s>); } while (res == *); addcache(q,res); } return(res); server deliver(<query,p,q>): s = serverfor(q); if (s = myid) send(p,<reply,*,s>); else send(p,<reply,querydb(q),*>); Κατανεμημένα Συστήματα 22 lalis@inf.uth.gr

Επαναληπτική αναζήτηση εξυπηρετητή Ο πελάτης στέλνει αίτηση στον εξυπηρετητή, και περιμένει μέχρι να πάρει απάντηση Αν ο εξυπηρετητής έχει την ζητούμενη πληροφορία τότε την στέλνει στον πελάτη Διαφορετικά, ο εξυπηρετητής συνεχίζει την διαδικασία αναζήτησης για λογαριασμό του πελάτη Οι υπόλοιποι εξυπηρετητές εξακολουθούν να λειτουργούν με βάση την επαναληπτική μέθοδο Κατανεμημένα Συστήματα 23 lalis@inf.uth.gr

s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 24 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 25 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 26 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 27 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s5 s6 s7 s1 Κατανεμημένα Συστήματα 28 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 29 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s6 s6 s7 s1 Κατανεμημένα Συστήματα 30 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 31 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 32 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 33 lalis@inf.uth.gr

s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 34 lalis@inf.uth.gr

server client query(q): res = querycache(q); if (res == NULL) { s = contactserver(); send(s,<cquery,myid,q>); recv(s,<creply,res>); addcache(q,res); } return(res); deliver(<cquery,p,q>): s = serverfor(q); if (s = myid) res = query(q); else res = querydb(q); send(p,<creply,res>); query(q): res = querycache(q); if (res == NULL) { s = serverfor(q); do { send(s,<squery,myid,q>); recv(s,<sreply,res,s>); } while (res == *); addcache(q,res); } return(res); deliver(<squery,p,q>): s = serverfor(q); if (s = myid) send(p,<sreply,*,s>); else send(p,<sreply,querydb(q),*>); Κατανεμημένα Συστήματα 35 lalis@inf.uth.gr

Αναδρομική αναζήτηση Ο πελάτης στέλνει αίτηση στον εξυπηρετητή, και περιμένει μέχρι να πάρει απάντηση Αν ο εξυπηρετητής έχει την ζητούμενη πληροφορία τότε την στέλνει στον πελάτη Διαφορετικά, ο εξυπηρετητής συνεχίζει την διαδικασία αναζήτησης για λογαριασμό του πελάτη Η αναζήτηση υποστηρίζεται από τους υπόλοιπους εξυπηρετητές με αναδρομικό τρόπο ο «επόμενος» εξυπηρετητής συνεχίζει την αναζήτηση για λογαριασμό του «προηγούμενου» Κατανεμημένα Συστήματα 36 lalis@inf.uth.gr

s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 37 lalis@inf.uth.gr

? s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 38 lalis@inf.uth.gr

? s3 server network application client library s4 s5? s6 s7 s1 Κατανεμημένα Συστήματα 39 lalis@inf.uth.gr

? s3 server network application client library s4 s5?? s6 s7 s1 Κατανεμημένα Συστήματα 40 lalis@inf.uth.gr

? s3 server network application client library s4? s5?? s6 s7 s1 Κατανεμημένα Συστήματα 41 lalis@inf.uth.gr

? s3 server network application client library s4? s5?? s6? s7 s1 Κατανεμημένα Συστήματα 42 lalis@inf.uth.gr

? s3 server network application client library s4 s6 s5 s7 s1 Κατανεμημένα Συστήματα 43 lalis@inf.uth.gr

s3 server network application client library s4 s5 s6 s7 s1 Κατανεμημένα Συστήματα 44 lalis@inf.uth.gr

client query(q): res = querycache(q); if (res == NULL) { s = contactserver(); send(s,<query,myid,q>); recv(s,<reply,res>); addcache(q,res); } return(res); server deliver(<query,p,q>): s = serverfor(q); if (s = myid) res = query(q); else res = querydb(q); send(p,<reply,res>); query(q): res = querycache(q); if (res == NULL) { s = serverfor(q); send(s,<query,myid,q>); recv(s,<reply,res>); addcache(q,res); } return(res); Κατανεμημένα Συστήματα 45 lalis@inf.uth.gr

Παρατηρήσεις Η δρομολόγηση των αιτήσεων/απαντήσεων γίνεται στο επίπεδο του υπερδικτύου των εξυπηρετητών Με την αναδρομική μέθοδο, η πληροφορία που επιστρέφει προς τον πελάτη μπορεί να αποθηκευτεί στη κρυφή μνήμη των εξυπηρετητών που βρίσκονται κατά μήκος της «διαδρομής» όμως οι εξυπηρετητές πρέπει να κρατούν εσωτερικά κατάσταση για κάθε εκκρεμή αναζήτηση Η επαναληπτική μέθοδος μειώνει τις απαιτήσεις μνήμης στους εξυπηρετητές αλλά μπορεί να οδηγήσει σε αυξημένο κόστος επικοινωνίας και επεξεργασίας Κατανεμημένα Συστήματα 46 lalis@inf.uth.gr

Internet Domain Name Service (DNS) Αναγωγή ονομάτων (υπολογιστών και υπηρεσιών) σε διευθύνσεις στο επίπεδο του διαδικτύου Διαχωρισμός του χώρου ονομάτων έτσι ώστε η διαχείριση υπο-χώρων να γίνεται ανεξάρτητα από ξεχωριστούς φορείς χωρίς συντονισμό μεταξύ τους Υπερδίκτυο εξυπηρετητών (DNS servers) μέσω του οποίου υλοποιείται η επιθυμητή αναγωγή/αναζήτηση Κατανεμημένα Συστήματα 47 lalis@inf.uth.gr

Χώροι ονομάτων και ζώνες DNS Ο χώρος των ονομάτων δομείται ιεραρχικά Τα ονόματα έχουν αντίστοιχα δομημένη μορφή <name3>.<name2>.<name1> Κάθε τμήμα του ονόματος <nameκ> προσδιορίζει έναν υπο-χώρο σε επίπεδο Κ από τη ρίζα της ιεραρχίας το όνομα της ρίζας υπονοείται Σε επίπεδο διαχείρισης, διαφορετικά τμήματα ενός υπο-χώρου μπορεί να ομαδοποιηθούν σε ξεχωριστές «ζώνες» (zones) Κατανεμημένα Συστήματα 48 lalis@inf.uth.gr

. com edu gr uth ntua uoc www prd mie inf inf-server www bigj lazycow Κατανεμημένα Συστήματα 49 lalis@inf.uth.gr

Εξυπηρετητές DNS Πληροφορία ζώνης ονόματα που ανήκουν στη ζώνη ονόματα/διευθύνσεις εξυπηρετητών της ζώνης ονόματα/διευθύνσεις εξυπηρετητών που είναι υπεύθυνοι για τον υπερ-χώρο και τους υπο-χώρους εκτός ζώνης Κάθε ζώνη υποστηρίζεται από έναν πρωτεύοντα εξυπηρετητή ζώνης, όπου γίνονται και οι αλλαγές Μπορεί να υπάρχουν δευτερεύοντες εξυπηρετητές, που επικοινωνούν περιοδικά με τον πρωτεύοντα για να ενημερωθούν για τυχόν αλλαγές Οι εξυπηρετές μπορεί να κρατούν επιπλέον πληροφορία σε κρυφή μνήμη (με περιορισμένη διάρκεια ζωής) Κατανεμημένα Συστήματα 50 lalis@inf.uth.gr

. a.root-servers.net *.gr com edu gr dns1.forthnet.gr. *.uth.gr centaurus.uth.gr *.gr *.inf.uth.gr uth ntua uoc www prd mie inf dns0.inf.uth.gr *.uth.gr inf-server www bigj lazycow Κατανεμημένα Συστήματα 51 lalis@inf.uth.gr

Εγγραφές DNS Α (διεύθυνση) NS (όνομα εξυπηρετητή ονομάτων) CNAME (συνώνυμο) Π.χ., για την ζώνη uth.gr name type value gr NS dns1.forthnet.gr dns1.forthnet.gr A 138.37.88.249 inf.uth.gr NS dns0.inf.uth.gr dns0.inf.uth.gr A 194.177.204.125 www.uth.gr CNAME goofy.uth.gr www.prd.uth.gr CNAME goofy.uth.gr goofy.uth.gr A 194.177.200.6 Κατανεμημένα Συστήματα 52 lalis@inf.uth.gr

Αναζήτηση DNS (name resolution) Επαναληπτική και αναδρομική μέθοδος Η αναγωγή ονομάτων σε διευθύνσεις IP γίνεται συχνά, κάθε φορά που μια εφαρμογή χρησιμοποιεί ένα όνομα ενός μηχανήματος ή μιας υπηρεσίας e-mail, ftp, www Η χρήση κρυφής μνήμης είναι ιδιαίτερα σημαντική καλή απόκριση αποφυγή υπερφόρτωσης τοπικού εξυπηρετητή DNS αποφυγή υπερφόρτωσης δικτύου εξυπηρετητών DNS Κατανεμημένα Συστήματα 53 lalis@inf.uth.gr

Ομότιμα (p2p) συστήματα αναζήτησης Δεν υπάρχει εκ των προτέρων συμπεφωνημένη κατανομή της πληροφορίας προς αναζήτηση Δεν υπάρχει διαχωρισμός ανάμεσα σε πελάτες και εξυπηρετητές: οι κόμβοι είναι ομότιμοι Κάθε κόμβος μπορεί να παρέχει πληροφορίες καθώς και να πραγματοποιεί αναζητήσεις για πληροφορία Οι κόμβοι δεν είναι απαραίτητα μόνιμα διαθέσιμοι, καθώς μπορεί να (από)συνδέονται στο/από το δίκτυο εντελώς δυναμικά και ανεξέλεγκτα Πρόκληση: σχηματισμός κατάλληλου υπερδικτύου για γρήγορη αναζήτηση με μειωμένη επικοινωνία Κατανεμημένα Συστήματα 54 lalis@inf.uth.gr

find? join leave Κατανεμημένα Συστήματα 55 lalis@inf.uth.gr

Κατασκευή υπερδικτύου Ο νεοεισερχόμενος κόμβος επικοινωνεί με έναν από κάποιους προκαθορισμένους (διαθέσιμους) κόμβους που παίζουν τον ρόλο μιας υπηρεσίας καταλόγου Λαμβάνει τα στοιχεία επικοινωνίας από έναν σχετικά μικρό αριθμό κόμβων που κρίνεται ότι μπορεί να χρησιμοποιηθούν ως γείτονες του στο υπερδίκτυο Επιλέγει κάποιους από αυτούς τους κόμβους για γείτονες, π.χ., με βάση τον εκτιμώμενο φόρτο τους, την διαθεσιμότητα τους, την χρησιμότητα τους σε προηγούμενες αναζητήσεις Δυναμική προσαρμογή του υπερδικτύου λόγω άφιξης/αναχώρησης κόμβων και αλλαγής γειτόνων Κατανεμημένα Συστήματα 56 lalis@inf.uth.gr

A,B,C Α B C D Α B C D Κατανεμημένα Συστήματα 57 lalis@inf.uth.gr

Αναζήτηση με πλημμύρα (flooding) Ο κόμβος που αναζητεί πληροφορία στέλνει αίτηση αναζήτησης σε όλους τους γειτονικούς κόμβους Όταν ένας κόμβος δεχτεί αίτηση αναζήτησης αν έχει ήδη δεχτεί αυτή την αίτηση, την αγνοεί αν έχει την πληροφορία τοπικά, στέλνει απάντηση διαφορετικά προωθεί την αίτηση στους γείτονες του Η αναζήτηση σταματά όταν βρεθεί απάντηση ή η αίτηση φτάσει σε όλους τους κόμβους Αποφυγή υπερφόρτωσης δικτύου όριο προωθήσεων μιας αίτησης όριο στους γείτονες που χρησιμοποιούνται για την προώθηση χρήση κρυφής μνήμης στους κόμβους Κατανεμημένα Συστήματα 58 lalis@inf.uth.gr

unconstrained flooding find? find? request reply Κατανεμημένα Συστήματα 59 lalis@inf.uth.gr

flooding with hop limit = 3 find? find? request reply Κατανεμημένα Συστήματα 60 lalis@inf.uth.gr

flooding with hop limit = 2 find? find? request reply Κατανεμημένα Συστήματα 61 lalis@inf.uth.gr

flooding with out degree 2 find? find? request reply Κατανεμημένα Συστήματα 62 lalis@inf.uth.gr

flooding with out degree 2 (again) find? find? request reply Κατανεμημένα Συστήματα 63 lalis@inf.uth.gr

Βιολογικά μοντέλα (π.χ., μυρμήγκια) Όταν μια απάντηση στέλνεται προς τα πίσω, ανανεώνεται πληροφορία για τα μονοπάτια που οδηγούν στην πληροφορία Αυτή η πληροφορία χρησιμοποιείται για την προώθηση/δρομολόγηση επόμενων αιτήσεων Η πληροφορία μπορεί να είναι στοχαστική, και να «εξασθενεί» με τον χρόνο (αν δεν ανανεωθεί) Αναλογία με τον μηχανισμό ανεύρεσης τροφής που χρησιμοποιούν (υποσυνείδητα) τα μυρμήγκια: εναπόθεση φερομόνης που εξατμίζεται σταδιακά Κατανεμημένα Συστήματα 64 lalis@inf.uth.gr

unconstrained flooding with re-enforcement find? request reply Κατανεμημένα Συστήματα 65 lalis@inf.uth.gr

unconstrained flooding with re-enforcement find? request reply Κατανεμημένα Συστήματα 66 lalis@inf.uth.gr

unconstrained flooding with re-enforcement find? request reply Κατανεμημένα Συστήματα 67 lalis@inf.uth.gr

unconstrained flooding with re-enforcement find? request reply Κατανεμημένα Συστήματα 68 lalis@inf.uth.gr

Distributed hash tables Οι πόροι λαμβάνουν αναγνωριστικά [0,Ν-1] π.χ., μέσω κάποιου hash function Δημιουργείται ένα ευρετήριο όπου η εγγραφή με αριθμό k περιέχει τη διεύθυνση του κόμβου που διαθέτει την πληροφορία με αυτό το κλειδί Τα περιεχόμενα του ευρετηρίου δεν μπορεί να αποθηκευτούν εξ ολοκλήρου σε ένα μοναδικό κόμβο Ζητούμενο: οργάνωση των κόμβων και κατανομή των περιεχομένων ώστε να επιτυγχάνεται αποδοτική αναζήτηση του ευρετηρίου Κατανεμημένα Συστήματα 69 lalis@inf.uth.gr

Chord δομή υπερδικτύου Οι κόμβοι σχηματίζουν έναν δακτύλιο με βάση τα μοναδικά αναγνωριστικά τους [0,Ν-1] prev(n): προηγούμενος κόμβος στον δακτύλιο next(n): επόμενος κόμβος στον δακτύλιο Στον κόμβο n αποθηκεύονται οι εγγραφές για τους πόρους με κλειδί k: prev(n) < k n Υποθέτουμε ότι τα αναγνωριστικά των πόρων είναι ομοιόμορφα κατανεμημένα στο [0,Ν-1] Κατανεμημένα Συστήματα 70 lalis@inf.uth.gr

Chord δρομολόγηση Κάθε κόμβος n διατηρεί έναν πίνακα δρομολόγησης (finger table) που αποτελείται από m=o(logn) γραμμές Κάθε γραμμή i (0 i < m) του πίνακα περιέχει το αναγνωριστικό του κόμβου που είναι υπεύθυνος για τα αναγνωριστικά πόρων [n+2 i mod N, n+2 i+1 mod N) Η αναζήτηση για τον κόμβο που έχει την ζητούμενη πληροφορία / διεύθυνση για τον πόρο k γίνεται χρησιμοποιώντας αυτόν τον πίνακα δρομολόγησης Κάθε αναζήτηση απαιτεί Ο(logN) βήματα Κατανεμημένα Συστήματα 71 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N1 [2,3) 3 [3,5) 3 [5,1) 0 1 N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 72 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 get(4) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 73 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 [2,3) 3 N1 info(4) [3,5) 3 1 [5,1) 0 N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 74 lalis@inf.uth.gr

Προσθήκη νέου κόμβου Όταν προστίθεται ένας νέος κόμβος πρέπει να ανακατανεμηθούν οι εγγραφές του ευρετηρίου και να προσαρμοστούν oι πίνακες δρομολόγησης 1. Αρχικοποίηση του πίνακα finger στον νέο κόμβο 2. Αντιγραφή των καταχωρήσεων που αντιστοιχούν στον νέο κόμβο (μόνο από τον αμέσως «επόμενο» κόμβο) 3. Ενημέρωση των finger tables των υπολοίπων κόμβων 4. Απομάκρυνση των καταχωρήσεων που μεταφέρθηκαν στον νέο κόμβο από τον αμέσως επόμενο κόμβο Αντίστοιχη διαδικασία ακολουθείται όταν ένας κόμβος επιθυμεί να αποχωρήσει από το σύστημα... Κατανεμημένα Συστήματα 75 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0)? [0,2)? [2,6)? N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 76 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 fnd(7) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0)? [0,2)? [2,6)? N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 77 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 node 0 N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2)? [2,6)? N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 78 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 fnd(0) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2)? [2,6)? N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 79 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 node 0 N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6)? N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 80 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 fnd(2) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6)? N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 81 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 node 3 N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 82 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 get(4) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 83 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 info(4) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 4 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 84 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 get(5) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 4 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 85 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 info(5) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 4 5 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 86 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 get(6) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 4 5 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 87 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 info(6) N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 4 5 6 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 88 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 4 5 6 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 89 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 0 N6 N1 [2,3) 3 [3,5) 3 [5,1) 0 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 0 4 5 6 [5,7) 0 [7,3) 0 2 3 Κατανεμημένα Συστήματα 90 lalis@inf.uth.gr

4 5 6 7 0 N0 [1,2) 1 [2,4) 3 [4,0) 6 [7,0) 0 N6 update [4-6]->6 N1 [2,3) 3 [3,5) 3 [5,1) 6 1 [0,2) 0 [2,6) 3 N3 [4,5) 6 4 5 6 [5,7) 6 [7,3) 0 2 3 Κατανεμημένα Συστήματα 91 lalis@inf.uth.gr

[1,2) 1 7 0 N0 [2,4) 3 [4,0) 6 N6 N1 [2,3) 3 [3,5) 3 [5,1) 6 1 [7,0) 0 [0,2) 0 [2,6) 3 N3 [4,5) 6 4 5 6 [5,7) 6 [7,3) 0 2 3 Κατανεμημένα Συστήματα 92 lalis@inf.uth.gr

Παρατηρήσεις Τα περισσότερα πρωτόκολλα υποθέτουν μια αυστηρά σειριακή προσθήκη / αποχώρηση των κόμβων Tι γίνεται αν πολλοί κόμβοι επιχειρήσουν να συνδεθούν με το σύστημα ταυτόχρονα; Τι γίνεται αν ένας κόμβος παρουσιάσει βλάβη ή αποχωρήσει χωρίς να ενημερώσει τους υπόλοιπους; Το κόστος προσθήκης/αποχώρησης δεν είναι αμελητέο Πόσο καλά λειτουργούν τα υπάρχοντα πρωτόκολλα για (ιδιαίτερα) δυναμικά συστήματα; Κατανεμημένα Συστήματα 93 lalis@inf.uth.gr