Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Καθ. Παναγιώτης Τριανταφύλλου 2009

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Καθ. Παναγιώτης Τριανταφύλλου 2009"— Μεταγράφημα παρουσίασης:

1 Καθ. Παναγιώτης Τριανταφύλλου 2009
Λειτουργικά Συστήματα ΙΙ Κεφάλαιο 2ο: Αρχιτεκτονική Λογισμικού και Συστήματος Καθ. Παναγιώτης Τριανταφύλλου 2009

2 Αρχιτεκτονική Λογισμικού, Συστήματος και Μοντέλα Διεργασιών
Layered, object-based, data-centered, event-based Αρχιτεκτονική Συστήματος Κεντρικοποιημένες (πελάτη-εξυπηρέτη) Επίπεδα εφαρμογών Αρχιτεκτονικές multi-tiered Αποκεντρωμένες P2P Υβριδικές Αρχιτεκτονικές

3 Αρχιτεκτονική Λογισμικού, Συστήματος και Μοντέλα Διεργασιών
Νήματα Ελέγχου (Threads) Εισαγωγή Δόμηση πολύ-νηματικών (multi-threaded) διεργασιών Έλεγχος σε ταυτόχρονη πρόσβαση Πρόσβαση σε global variables Υλοποίηση νημάτων (threads) Το Πακέτο (OSF-DCE Threads Package)

4 Αρχιτεκτονική Λογισμικού
Το σύστημα ιδωμένο μέσα από τα δομικά του στοιχεία (components) και πως τα (δομο)στοιχεία οργανώνονται (λογικά) επικοινωνούν και πως διαρθρώνουν (λειτουργικά) το σύστημα συνολικά (Δομο)Στοιχείο/Component: μια λειτουργική μονάδα, ξεχωριστή, με καθαρό interface που μπορεί να αντικατασταθεί μες στο περιβάλλον της. Συνδετήρας (connector): μηχανισμός που επιτυγχάνει την επικοινωνία, το συντονισμό και τη συνεργασία των στοιχείων.

5 Αρχιτεκτονική Λογισμικού: Διαστρωμένη (Layered)
Το σύστημα οργανώνεται σαν μια δομή με στρώματα. Κάθε στρώμα αποτελείται από ένα στοιχείο. Η επιτρεπόμενη επικοινωνία καθορίζεται ως: Κάθε στοιχείο στο στρώμα Σ(ν) μπορεί να καλεί το στοιχείο (δηλ. συναρτήσεις του) στο στρώμα Σ(ν-1). Αποτελέσματα περνιούνται στην αντίθετη κατεύθυνση [ Σ(ν-1)  Σ(ν) ].  ο έλεγχος ‘ρέει’ από στρώμα σε στρώμα . Γνωστό παράδειγμα: πρωτόκολλα επικοινωνίας (βλέπε ISO / OSI στάνταρντ).

6 Αρχιτεκτονική Λογισμικού: Οντοκεντρική
Πιο «ελεύθερη» αρχιτεκτονική Κάθε στοιχείο ορίζεται ως ένα αντικείμενο με γνωστές μεθόδους, καθεμιά με συγκεκριμένο interface. Αντικείμενα καλούν άλλα αντικείμενα μέσω συγκεκριμένου τρόπου επικοινωνίας (π.χ. RPC / RMI,…). Ακριβέστερα, αντικείμενα καλούν μεθόδους αντικειμένων... Η οντοκεντρική και η πολυεπίπεδη αρχιτεκτονικές είναι ίσως οι πιο ευρέως χρησιμοποιούμενες.

7 Αρχιτεκτονική Λογισμικού: Γεγονο-κεντρική (Event-based)
Στοιχεία επικοινωνούν μέσω (με την αποστολή και παραλαβή) γεγονότων. Γεγονότα μπορεί να μεταφέρουν πληροφορία.  Συστήματα δημοσίευσης/συνδρομής: Χρήστες γίνονται ‘συνδρομητές’ στο σύστημα (π.χ. ορίζουν ποια πληροφορία/γεγονότα τους ενδιαφέρουν) – καταναλωτές πληροφορίας / γεγονότων. Παραγωγοί πληροφορίας στέλνουν στο σύστημα γεγονότα (με την πληροφορία τους). Το σύστημα στέλνει το γεγονός/πληροφορία (ΜΟΝΟ) στους χρήστες που ενδιαφέρονται για αυτό. Χαλαρή σύζευξη διεργασιών !

8 Αρχιτεκτονική Λογισμικού: Πληροφορικο-κεντρική (Data-centered)
Το σύστημα ιδωμένο ως διεργασίες (στοιχεία) που επικοινωνούν μέσω μιας κοινής αποθήκης (repository) δεδομένων (π.χ. File System, Database,..) Πλειάδες κατανεμημένων/δικτυακών εφαρμογών Επικοινωνία μέσω αρχείων Επικοινωνία μέσω ιστοσελίδων, ιστοεφαρμογών... Υβριδική αρχιτεκτονική: Διαμοιραζόμενοι χώροι δεδομένων Χαλαρή σύζευξη διεργασιών (reference decoupling -- από event-based) + ασύγχρονη επικοινωνία – ενεργά σε διάφορες στιγμές... Στοιχεία δημοσιεύουν γεγονότα/πληροφορία (που αποθηκεύεται) Στοιχεία παραλαμβάνουν σχετική πληροφορία. Σύστημα αποθηκεύει και μεταδίδει γεγονότα.

9 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη
Βασικά: μιλάμε για αρχιτεκτονική λογισμικού το πόσα είναι και που τοποθετούνται τα δομοστοιχεία (instantiation of a software architecture). Κεντρικοποιημένη Πελάτη-εξυπηρέτη Αιτούμαι/απαντώ (request/reply) Πελάτες: ζητούν υπηρεσίες από εξυπηρέτες Εξυπηρέτες: προσφέρουν υπηρεσίες Πελάτες/εξυπηρέτες επικοινωνούν μέσω ενός δεδομένου πρωτοκόλλου (π.χ. TCP/IP, UDP/IP,…) -- αξιόπιστο ή μη.

10 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη
Διαστρωμάτωση εφαρμογών (application layering) Λογικά στρώματα υπηρεσιών/λειτουργικότητας Ανατεθημένα σε πελάτες/εξυπηρέτες Διαχωρισμός εννοιών πελάτη/εξυπηρέτη ; Διαχωρισμός λειτουργικότητας σε 3 επίπεδα: Διεπαφή με το χρήστη (user interface level) Κύριο σώμα εφαρμογήςεπεξεργασίας ερωτημάτων χρήστη/πελάτη (processing level) Επίπεδο δεδομένων/πληροφορίας (data level)

11 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη
Στις μηχανές-πελάτες εγκαθίσταται/τρέχει το λογισμικό διεπαφής χρήστη-εφαρμογών/συστήματος – front-end. Λογισμικό διεπαφής: συνήθως σε μοντέρνες εφαρμογές είναι πολύ σύνθετο Γραφική παρουσίαση, παραθυρικά περιβάλλοντα, διεπαφή μέσω ποντικιού (drag&drop), … Το επίπεδο επεξεργασίας/εφαρμογής εγκαθίσταται/τρέχει σε ξέχωρους σταθμούς / εξυπηρέτες εφαρμογής (application servers). Το επίπεδο δεδομένων εγκαθίσταται/τρέχει σε ξέχωρους σταθμούς/εξυπηρέτες δεδομένων (data servers – back-end).

12 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη
Παράδειγμα: Μηχανές αναζήτησης στον Παγκόσμιο Ιστό Μηχανές πελάτη: διεπαφή δέχεται είσοδο-ερώτημα κλειδολέξεων και το μεταβιβάζει στον εξυπηρέτη. Μηχανή εξυπηρέτη – εξυπηρέτης εφαρμογής: επεξεργάζεται ερώτημα και επικοινωνεί με back-end εξυπηρέτες (δεδομένων). Μηχανές back-end εξυπηρέτες: αποθηκεύουν τα δεδομένα (ιστοσελίδες) και απαντούν στον εξυπηρέτη εφαρμογής, στέλνοντας ιστοσελίδες Μηχανή εξυπηρέτη – εξυπηρέτης εφαρμογής: δέχεται ιστοσελίδες και τις ταξινομεί/διαβαθμίζει και τις επιστρέφει στη μηχανή πελάτη. Μηχανές πελάτη: διεπαφή δέχεται ταξινομημένες σελίδες από εξυπηρέτη εφαρμογής και τις μεταβιβάζει στο χρήστη.  multi-tiered architecture

13 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη
2-tiered architecture: Διεπαφή στη μηχανή πελάτη. Εφαρμογή και αποθήκευση στη μηχανή εξυπηρέτη. 3-tiered architecture: Επεξεργασία σε ξεχωριστή μηχανή εξυπηρέτη εφαρμογής. Αποθήκευση σε ξεχωριστή μηχανή εξυπηρέτη δεδομένων/αποθήκη.

14 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη
Πολλοί επιπλέον δυνατοί συνδυασμοί κατανομής λειτουργικότητας σε μηχανές: Μέρος λειτουργικότητας εφαρμογής μπορεί να τρέχει στον πελάτη (π.χ. συμπλήρωση και έλεγχος φόρμας εισόδου, έλεγξε για καθολική συμπλήρωση). Μέρος λειτουργικότητας αποθήκης μπορεί να τρέχει στον πελάτη, π.χ. προσωρινή αποταμίευση δεδομένων (data caching). Φυλλομετρώντας τον ιστό: αποταμίευση στον τοπικό δίσκο του πελάτη των τελευταίων σελίδων που επισκέφτηκε – καλύτερη απόδοση.

15 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη
Ευτραφείς / λεπτοί πελάτες (fat / thin clients): Μεταφέροντας λειτουργικότητα στις μηχανές-πελάτη (ευτραφείς πελάτες). + απόδοση (χρόνος απόκρισης) + κλιμακωσιμότητα (αποφόρτιση εξυπηρέτη) - διαχείριση (μη εμπιστεύσιμες μηχανές, ευάλωτες, λανθασμένη συμπεριφορά, ...) Τάση: υπέρ λεπτών πελατών Τότε, πού είναι η κατανεμημένη επεξεργασία; Κατανομή στον κώδικα του εξυπηρέτη: Αντίγραφα (replication) για ανοχή σε σφάλματα και απόδοση Τμηματοποίηση (partitioning) για κατανομή φορτίου, 3-tiered αρχιτεκτονικές, κλπ.

16 Αρχιτεκτονική Συστημάτων: Αποκεντρωμένη
Οι multi-tiered client-server αρχιτεκτονικές ακολουθούν τη λογική οργάνωση μιας εφαρμογής/συστήματος σε στρώματα διεπαφής, επεξεργασίας/εφαρμογής και αποθήκης. Κάθετη κατανομή (Vertical distribution) Τοποθετούμε λογικά-διαφοροποιημένα στοιχεία σε διαφορετικές μηχανές. Οριζόνται κατανομή (horizontal distribution) Κατανομή των πελατών και εξυπηρετών Π.χ. Πελάτες / εξυπηρέτες διασπώνται σε (παρ)όμοια δομοστοιχεία που επεξεργάζονται διαφορετικά υποσύνολα πληροφορίας...

17 Αρχιτεκτονική Συστημάτων: Αποκεντρωμένη
Αποκεντρωμένες αρχιτεκτονικές βασίζονται στην έντονη εναλλαγή των ρόλων πελάτη/εξυπηρέτη στην ίδια μηχανή – δηλ. κανένας κόμβος δεν είναι μόνο πελάτης ή εξυπηρέτης. Το συνολικό φορτίο μοιράζεται σε όλες τις μηχανές: κάθε μηχανή-κόμβος είναι υπεύθυνη για ένα τμήμα του φορτίου, π.χ. Αποθηκεύει και εξυπηρετεί αιτήσεις για ένα τμήμα των δεδομένων στο σύστημα.  δίκτυα/συστήματα ομοτίμων (peer-to-peer).

18 Αρχιτεκτονική Συστημάτων: Αποκεντρωμένη
Παράδειγμα: το δίκτυο Chord Όλα τα αντικείμενα και όλοι οι κόμβοι λαμβάνουν ένα αναγνωριστικό (ID) μέσω μιας ψευδοτυχαίας συνάρτησης (π.χ. SHA-1). [είναι ασφαλές αυτό;] Αναγνωριστικά ν δυαδικών ψηφίων, ορίζουν ένα χώρο (ID space) 0, ... Η συνάρτηση succ(ID) δίνει ως έξοδο τον κόμβο το αναγνωριστικό του οποίου είναι το μικρότερο με τιμή μεγαλύτερη ή ίση του ID. Κάθε αντικείμενο με αναγνωριστικό ID, αποθηκεύεται στον κόμβο succ(ID). Για να προσπελάσει οποιοσδήποτε κόμβος το αντικείμενο με αναγνωριστικό ID, εκδίδει την εντολή LOOKUP(ID). Οι κόμβοι στο Chord χρησιμοποιούν ειδικούς αλγόριθμους δρομολόγησης και ειδικούς πίνακες δρομολόγησης.

19 Παράδειγμα αποθήκευσης στο Chord
ΚΛΕΙΔΙΑ ΚΟΜΒΟΙ κλειδιά keyIDs IP διευθύνσεις nodeIDs 8 “ShakeIt” 20 1 1 3 “Memories” 50 9 “Eden” 16 28 “Monkey” 8 50 40 “Money” 3 54 “Yesterday” 30 60 succ(20) = N28 SHA-1(“ShakeIt”) = 20 SHA-1( ) = 0 30 20 m=6 ID space 2m=64 16

20 Αρχιτεκτονική Συστημάτων: Αποκεντρωμένη
Συστήματα P2P: Όλοι οι κόμβοι καταλαμβάνουν μια θέση στην τοπολογία του δικτύου Συμφωνούν να προωθούν αιτήσεις για ανεύρεση πληροφορίας/δεδομένων Αποθηκεύουν τα δεδομένα που τους αντιστοιχούν. Τρέχουν πρωτόκολλα που κάνουν την προσπέλαση δεδομένων εύκολη Δομημένα δίκτυα (σαν το Chord) έχουν σε κάθε κόμβο πίνακες μεγέθους logN και επιτυγχάνουν την εύρεση αντικειμένων (lookup(ID)) μόνο με logN μηνύματα, σε δίκτυα με Ν κόμβους. Περίπου 70% όλης της κίνησης στο Διαδίκτυο είναι P2P κίνηση !!! Πιο πολλά στο μάθημα «Διανομή Περιεχομένου στο Διαδίκτυο»...


Κατέβασμα ppt "Καθ. Παναγιώτης Τριανταφύλλου 2009"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google