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

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

Τεχνολογία Λογισμικού (Software Engineering) Ενότητα – Σχεδιασμός Λογισμικού Κεφάλαιο – Αρχιτεκτονικός Σχεδιασμός.

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


Παρουσίαση με θέμα: "Τεχνολογία Λογισμικού (Software Engineering) Ενότητα – Σχεδιασμός Λογισμικού Κεφάλαιο – Αρχιτεκτονικός Σχεδιασμός."— Μεταγράφημα παρουσίασης:

1 Τεχνολογία Λογισμικού (Software Engineering) Ενότητα – Σχεδιασμός Λογισμικού Κεφάλαιο – Αρχιτεκτονικός Σχεδιασμός

2 Στόχοι Να εισαγάγει το αρχιτεκτονικό σχέδιο και να συζητηθεί η σημασία του Να εξηγηθεί γιατί απαιτούνται τα multiple models για να τεκμηριώσουν μια αρχιτεκτονική λογισμικού Να γίνει περιγραφή των τύπων των αρχιτεκτονικών μοντέλων που μπορούν να χρησιμοποιηθούν Να συζητηθούν και να συγκριθούν αρχιτεκτονικές αναφοράς

3 Θέματα που καλύπτονται Δόμηση συστημάτων Μοντέλα ελέγχου Modular ανάλυση Domain-specific αρχιτεκτονικές

4 Αρχιτεκτονική Λογισμικού Η διαδικασία σχεδίου για τα υποσυστήματα που αποτελούν ένα σύστημα και το πλαίσιο εργασίας(framework) για το υποσύστημα ελέγχου και επικοινωνίας είναι το αρχιτεκτονικό σχέδιο Η παραγωγή αυτής της διαδικασίας σχεδίου είναι μια περιγραφή της αρχιτεκτονικής λογισμικού

5 Αρχιτεκτονικό Σχέδιο Ένα αρχικό στάδιο της διαδικασίας σχεδίου συστημάτων Αντιπροσωπεύει τη σύνδεση μεταξύ των διαδικασιών προδιαγραφών και σχεδίου Συχνά πραγματοποιείται παράλληλα με μερικές δραστηριότητες προδιαγραφών Περιλαμβάνει τον προσδιορισμό σημαντικών τμημάτων συστημάτων και των επικοινωνιών τους

6 Πλεονεκτήματα της explicit(ρητής) Αρχιτεκτονικής Επικοινωνία stakeholder Η αρχιτεκτονική μπορεί να χρησιμοποιηθεί ως εστίαση της συζήτησης από τους system stakeholders Ανάλυση συστημάτων Σημαίνει οτι η ανάλυση είναι δυνατή εάν το σύστημα μπορεί να καλύψει τις μη λειτουργικές απαιτήσεις του Μεγάλης κλίμακας επαναχρησιμοποίηση(Large-scale reuse) Η αρχιτεκτονική μπορεί να είναι επαναχρησιμοποιήσιμη πέρα από μια περιοχή των συστημάτων

7 Αρχιτεκτονική Διαδικασία Σχεδίου Δόμηση συστημάτων Το σύστημα αποσυντίθεται σε διάφορα κύρια υποσυστήματα και οι επικοινωνίες μεταξύ αυτών των υποσυστημάτων προσδιορίζονται Διαμόρφωση ελέγχου Ένα μοντέλο των σχέσεων ελέγχου μεταξύ των διαφορετικών μερών του συστήματος καθιερώνεται Modular ανάλυση Τα προσδιορισμένα υποσυστήματα αποσυντίθενται στις ενότητες

8 Υποσυστήματα και Eνότητες Ένα υποσύστημα είναι ένα σύστημα του οποίου η λειτουργία είναι ανεξάρτητη από τις υπηρεσίες που παρέχονται από άλλα υποσυστήματα. Μια ενότητα είναι ένα τμήμα συστημάτων που παρέχει τις υπηρεσίες σε άλλα συστατικά αλλά δεν θεωρείται κανονικά ως χωριστό σύστημα

9 Αρχιτεκτονικά Μοντέλα Τα διαφορετικά αρχιτεκτονικά μοντέλα μπορούν να παραχθούν κατά τη διάρκεια της διαδικασίας σχεδίου Κάθε μοντέλο παρουσιάζει τις διαφορετικές προοπτικές στην αρχιτεκτονική

10 Αρχιτεκτονικά Mοντέλα Στατικό δομικό μοντέλο που παρουσιάζει τα σημαντικότερα τμήματα των συστημάτων Δυναμικό μοντέλο διαδικασίας που παρουσιάζει τη δομή διαδικασίας του συστήματος Μονέλο διεπαφών που καθορίζει τη διασύνδεση του υποσυστήματος Μοντέλο σχέσεων όπως ένα μοντέλο ροής πληροφοριών (data-flow model)

11 Αρχιτεκτονικές Mορφές(styles) Το αρχιτεκτονικό μοντέλο ενός συστήματος μπορεί να προσαρμοστεί σε ένα γενικό αρχιτεκτονικό μοντέλο ή ένα ύφος(στυλ) Μια συνειδητοποίηση αυτών των μορφών μπορεί να απλοποιήσει το πρόβλημα των αρχιτεκτονικών συστημάτων Εντούτοις, τα περισσότερα μεγάλα συστήματα είναι ετερογενή και δεν ακολουθούν ένα ενιαίο αρχιτεκτονικό ύφος

12 Ιδιότητες Αρχιτεκτονικής Απόδοση – Εντοπίστε τις διαδικασίες για να ελαχιστοποιήσετε την επικοινωνία υποσυστημάτων Ασφάλεια – Χρησιμοποιήστε μια αρχιτεκτονική δομή σε επίπεδα με κρίσιμα σημεία στα εσωτερικά στρώματα Προστασία – Απομονώστε τα safety-critical συστατικά Διαθεσιμότητα – Περιλάβετε τα περιττά συστατικά στην αρχιτεκτονική Συντηρησιμότητα – Χρησιμοποιείστε fine-grain και self-contained συστατικά

13 Δόμηση Συστημάτων Αλληλεπίδραση με την αποσύνθεση του συστήματος στα υποσυστήματα Το αρχιτεκτονικό σχέδιο εκφράζεται κανονικά ως διάγραμμα φραγμών(block diagram) παρουσιάζοντας μια επισκόπηση της δομής συστημάτων Μπορούν να αναπτυχθούν πιο συγκεκριμένα μοντέλα που επιδεικνύουν πώς shared data υποσυστημάτων, διανέμονται και πως αυτά διασυνδέονται το ένα με το άλλο

14 Σύστημα Ελέγχου Ρομπότ Συσκευασίας

15 Το Repository Model Τα υποσυστήματα πρέπει να ανταλλάζουν στοιχεία. Αυτό μπορεί να γίνει με δύο τρόπους: – Το κοινό στοιχείο φυλάσσεται σε μια κεντρική βάση δεδομένων ή μια αποθήκη και μπορεί να προσεγγιστεί από όλα τα υποσυστήματα – Κάθε υποσύστημα διατηρεί τη βάση δεδομένων του και περνά στοιχεία ρητά σε άλλα υποσυστήματα Όταν πρόκειται να μοιραστούν μεγάλες ποσότητες στοιχείων, τότε χρησιμοποιείται συνηθέστερα το μοντέλο διανομής(model of sharing )

16 Αρχιτεκτονική Συνόλων Εργαλείων CASE

17 Χαρακτηριστικά Μοντέλων Αποθήκευσης (Repository models) Πλεονεκτήματα – Αποδοτικός τρόπος να μοιραστούν οι μεγάλες ποσότητες στοιχείων – Τα υποσυστήματα δεν χρειάζεται να ασχοληθούν με το πώς τα δεδομένα δημιουργούν κεντρικό management π.χ. backup, ασφάλεια, κλπ. – Η διανομή του μοντέλου δημοσιεύεται ως σχήμα αποθηκών Μειονεκτήματα – Τα υποσυστήματα πρέπει να συμφωνήσουν σχετικά με ένα μοντέλο στοιχείων αποθηκών. Αναπόφευκτα πρέπει να γίνουν κάποιοι συμβιβασμοί – Η εξέλιξη στοιχείων είναι δύσκολη και ακριβή – Κανένα πεδίο για τις συγκεκριμένες διοικητικές πολιτικές – Δύσκολο να διανείμει αποτελεσματικά

18 Αρχιτεκτονική Client-server Διανεμημένο μοντέλο συστημάτων που επιδεικνύει πώς το στοιχείο και η επεξεργασία διανέμονται πέρα από μια σειρά των συστατικών Σύνολο αυτόνομων κεντρικών υπολογιστών που παρέχουν τις συγκεκριμένες υπηρεσίες όπως η εκτύπωση, η διαχείριση στοιχείων, κ.λπ.... Σύνολο πελατών που καλούν αυτές τις υπηρεσίες Δίκτυο που επιτρέπει στους πελάτες για να έχει πρόσβαση στους κεντρικούς υπολογιστές

19 Βιβλιοθήκη Ταινιών και Εικόνων

20 Χαρακτηριστικά Client-server Πλεονεκτήματα – Η διανομή των στοιχείων είναι απλή – Κάνει αποτελεσματική τη χρήση των δικτυωμένων συστημάτων. πιθανόν απαιτεί το φτηνότερο υλικό – Είναι εύκολο να προσθέσει τους νέους κεντρικούς υπολογιστές ή να αναβαθμίσει τους υπάρχοντες κεντρικούς υπολογιστές Μειονεκτήματα – Δεν υπάρχει κανένα κοινό μοντέλο στοιχείων έτσι τα υποσυστήματα δεν χρησιμοποιούν τη διαφορετική ανταλλαγή στοιχείων. Ετσι η οργάνωση στοιχείων μπορεί να είναι ανεπαρκής – Περιττή διαχείριση σε κάθε κεντρικό υπολογιστή – Κανένας κεντρικός κατάλογος των ονομάτων και των υπηρεσιών – ετσι μπορεί είναι δύσκολο να ανακαλυφθεί ποιοι κεντρικοί υπολογιστές και υπηρεσίες είναι διαθέσιμες

21 Abstract machine model Χρησιμοποιήται για να διαμορφώσει τη διασύνδεση των υποσυστημάτων Οργανώνει το σύστημα σε ένα σύνολο στρωμάτων (ή αφηρημένων μηχανών) κάθε μια της οποίας παρέχετε ένα σύνολο υπηρεσιών Υποστηρίζει την επαυξητική ανάπτυξη (incremental development) των υποσυστημάτων στα διαφορετικά στρώματα. Όταν μια διεπαφή στρώματος αλλάζει, μόνο το παρακείμενο στρώμα επηρεάζεται Εντούτοις, συχνά είναι δύσκολο να δομήσει τα συστήματα κατ' αυτό τον τρόπο

22 Σύστημα Διαχείρισης Version

23 Μοντέλα Ελέγχου Ενδιαφέρεται για τη ροή ελέγχου μεταξύ των υποσυστημάτων.Ευδιάκριτη από το μοντέλο αποσύνθεσης συστημάτων Συγκεντρωμένος έλεγχος – Ένα υποσύστημα έχει γενική ευθύνη για τον έλεγχο και τις ενάρξεις και σταματά άλλα υποσυστήματα Event-based έλεγχος – Κάθε υποσύστημα μπορεί να αποκριθεί στα εξωτερικά παραγμένα γεγονότα από άλλα υποσυστήματα ή το περιβάλλον του συστήματος

24 Συγκεντρωμένος(Centralised) έλεγχος Ένα υποσύστημα ελέγχου παίρνει την ευθύνη για την εκτέλεση άλλων υποσυστημάτων Call-return model – Από επάνω προς τα κάτω μοντέλο υπορουτινών όπου ο έλεγχος αρχίζει στην κορυφή μιας ιεραρχίας υπορουτινών και κινείται προς τα κάτω. Εφαρμόσιμος στα διαδοχικά συστήματα Manager model – Εφαρμόσιμος στα ταυτόχρονα συστήματα. Έλεγχοι ενός τμήματος συστημάτων η παύση, η έναρξη και ο συντονισμός άλλων διαδικασιών συστημάτων. Μπορεί να εφαρμοστεί στα διαδοχικά συστήματα ως δήλωση περίπτωσης

25 Call-return model

26 Έλεγχος συστημάτων σε Πραγματικό Χρόνο

27 Συστήματα οδηγημένα από τα γεγονότα (Event- driven systems) Είναι συστήματα που οδηγούνται από εξωτερικά παραγόμενα γεγονότα και όπου ο χρονισμός του γεγονότος είναι εκτός ελέγχου των υποσυστημάτων που επεξεργάζονται το γεγονός Δύο κύρια event-driven models – Broadcast models. Ένα γεγονός είναι Broadcast μετάδοση σε όλα τα υποσυστήματα. Οποιοδήποτε υποσύστημα που μπορεί να χειριστεί το γεγονός μπορεί να κάνει έτσι – Interrupt-driven models. Χρησιμοποιείται σε συστήματα πραγματικού χρόνου, όπου κάποιο event που ανιχνεύεται μπορεί να διακόψει τον χειριστή και να πέρασει σε κάποιο άλλο συστατικό για την επεξεργασία Άλλα event-driven models περιλαμβάνουν τους υπολογισμούς με λογιστικό φύλλο (spreadsheet) και τα συστήματα παραγωγής

28 Broadcast Model Αποτελεσματικό στα υποσυστήματα ενσωμάτωσης στους διαφορετικούς υπολογιστές σε ένα δίκτυο Τα υποσυστήματα καταχωρούν ένα ενδιαφέρον για τα συγκεκριμένα γεγονότα. Όταν αυτοί εμφανίζονται, ο έλεγχος μεταφέρεται στο υποσύστημα που μπορεί να χειριστεί το γεγονός Η πολιτική ελέγχου δεν ενσωματώνεται στο γεγονός και το χειριστή μηνυμάτων. Τα υποσυστήματα αποφασίζουν σχετικά με τα γεγονότα που τους ενδιαφέρουν Εντούτοις, τα υποσυστήματα δεν ξέρουν εάν ή όταν ένα γεγονός θα αντιμετωπιστεί

29 Selective broadcasting

30 Interrupt-driven Συστήματα Χρησιμοποιούνται σε real-time systems (συστήματα σε πραγματικό χρόνο) όπου η απάντηση σε ένα γεγονός είναι ουσιαστική Υπάρχουν γνωστοί τύποι interrupt και οι οποίοι έχουν καθορισμένους handler Κάθε τύπος συνδέεται με μια θέση μνήμης και ένας διακόπτης υλικού προκαλεί τη μεταφορά στο χειριστή του Επιτρέπουν τη γρήγορη απάντηση αλλά είναι σύνθετο να προγραμματιστεί και δύσκολο να επικυρωθεί

31 Interrupt-driven έλεγχος

32 Modular ανάλυση Ένα άλλο δομικό επίπεδο όπου τα υποσυστήματα αποσυντίθενται στις ενότητες Καλύπτονται δύο Modular μοντέλα ανάλυσης – Ένα μοντέλο αντικειμένου όπου το σύστημα αποσυντίθεται στην αλληλεπίδραση αντικειμένων – Ένα μοντέλο ροής πληροφοριών όπου το σύστημα αποσυντίθεται στις λειτουργικές ενότητες που μετασχηματίζουν τις εισαγωγές στα αποτελέσματα. Επίσης γνωστό ως μοντέλο σωληνώσεων(pipeline model) Αν είναι δυνατό, αποφάσεις που αφορούν concurrency θα πρέπει να παίρνονται μετά την υλοποίηση των modules

33 Μοντέλα Αντικειμένου Κτίστε το σύστημα σε ένα σύνολο αντικειμένων, αόριστα συνδεμένων με τις καθορισμένες με σαφήνεια διεπαφές Η αντικειμενοστρεφής(Object-oriented) ανάλυση ενδιαφέρεται για τον προσδιορισμό των κλάσεων αντικειμένου, των ιδιοτήτων και των διαδικασιών τους Όταν εφαρμόζεται το μοντέλο, τα αντικείμενα δημιουργούνται από αυτές τις κλάσεις και κάποιο μοντέλο ελέγχου χρησιμοποιείται για να συντονίσει τις διαδικασίες αντικειμένου

34 Σύστημα Επεξεργασίας Τιμολογίων

35 Data-flow Models Οι λειτουργικοί μετασχηματισμοί επεξεργάζονται τις εισαγωγές τους για να παραγάγουν τα αποτελέσματα Μπορεί να αναφέρεται ως μοντέλο σωλήνων και φίλτρων (όπως στο Unix shell) Οι παραλλαγές αυτής της προσέγγισης είναι πολύ κοινές. Όταν οι μετασχηματισμοί είναι διαδοχικοί, αυτό είναι ένα διαδοχικό μοντέλο batch που χρησιμοποιείται εκτενώς στα συστήματα επεξεργασίας δεδομένων Όχι και τόσο κατάλληλο για τα συστήματα διεπαφής

36 Σύστημα Επεξεργασίας Τιμολογίων

37 Εξαρτώμενες από το Πεδίο(Domain-specific) Αρχιτεκτονικές Αρχιτεκτονικά μοντέλα που είναι συγκεκριμένα για κάποια περιοχή εφαρμογής Υπάρχουν δύο τύποι domain-specific model – Γενικά μοντέλα που είναι κομμάτια από διάφορα πραγματικά συστήματα και που τοποθετούν τα κύρια χαρακτηριστικά αυτών των συστημάτων – Μοντέλα αναφοράς που είναι πιό αφηρημένα, εξιδανικευμένα μοντέλα. Παρέχονται πληροφορίες για την κατηγορία συστήματος και γίνεται σύγκριση των διαφορετικών αρχιτεκτονικών Τα γενικά μοντέλα είναι συνήθως από κάτω προς τα επάνω μοντέλα(bottom-up models). Τα μοντέλα αναφοράς είναι από επάνω προς τα κάτω μοντέλα(top-down models)

38 Γενικά Μοντέλα Το μοντέλο μεταγλωτιστών(Compiler model) είναι ένα γνωστό παράδειγμα αν και υπάρχουν και άλλα μοντέλα στις πιό εξειδικευμένες περιοχές εφαρμογής – Lexical analyser – Symbol table – Syntax analyser – Syntax tree – Semantic analyser – Code generator Το γενικό μοντέλο μεταγλωττιστών μπορεί να οργανωθεί σύμφωνα με τα διαφορετικά αρχιτεκτονικά μοντέλα

39 Compiler Model

40 Σύστημα Επεξεργασίας Γλωσσών

41 Αρχιτεκτονικές αναφοράς Τα μοντέλα αναφοράς προέρχονται περισότερο από μια μελέτη της περιοχής εφαρμογής παρά από τα υπάρχοντα συστήματα Μπορούν να χρησιμοποιηθούν ως βάση για την εφαρμογή συστημάτων ή για να συγκριθούν τα διαφορετικά συστήματα. Ενεργεί ως πρότυπο απέναντι στο οποίο μπορούν να αξιολογηθούν τα συστήματα Το μοντέλο της OSI είναι ένα μοντέλο βασισμένο σε επίπεδα για τα συστήματα επικοινωνιών

42 Μοντέλο Αναφοράς της OSI

43 Βασικά σημεία Ο αρχιτέκτονας λογισμικού είναι αρμόδιος για την παραγωγή ενός δομικού μοντέλου συστημάτων, ενός μοντέλου ελέγχου και ενός μοντέλου αποσύνθεσης υποσυστημάτων Τα μεγάλα συστήματα προσαρμόζονται σπάνια σε ένα ενιαίο αρχιτεκτονικό μοντέλο Τα μοντέλα αποσύνθεσης συστημάτων περιλαμβάνουν τα μοντέλα αποθήκευσης, τα μοντέλα client-server και τα αφηρημένα μοντέλα μηχανών(abstract machine models) Τα μοντέλα ελέγχου περιλαμβάνουν συγκεντρωμένο έλεγχο και τα event-driven models

44 Βασικά σημεία Τα Modular decomposition models περιλαμβάνουν τα μοντέλα ροής πληροφοριών (data-flow) και τα μοντέλα αντικειμένου Τα εξαρτώμενα από το πεδίο αρχιτεκτονικά μοντέλα(Domain specific architectural models) είναι αφαιρέσεις πέρα από μια περιοχή εφαρμογής. Μπορούν να κατασκευαστούν με την περίληψη από τα υπάρχοντα συστήματα ή μπορούν να είναι εξιδανικευμένα μοντέλα αναφοράς

45 Τεχνολογία Λογισμικού (Software Engineering) Ενότητα – Σχεδιασμός Λογισμικού Κεφάλαιο – Σχεδίαση Κατανεμημένων Συστημάτων

46 Αρχιτεκτονική Κατανεμημένων Συστημάτων Αρχιτεκτονικό σχέδιο για το λογισμικό που εκτελείται σε περισσότερους από έναν επεξεργαστές

47 Στόχοι Να εξηγηθούν τα πλεονεκτήματα και τα μειονεκτήματα της αρχιτεκτονικής των κατανεμημένων συστημάτων Να περιγραφούν οι διαφορετικές προσεγγίσεις στην ανάπτυξη των συστημάτων client-server Να εξηγηθούν οι διαφορές μεταξύ της αρχιτεκτονικής client-server και της αρχιτεκτονικής κατανεμημένων αντικειμένων Να γίνει περιγραφή των object request brokers και των αρχών που υπογραμμίζουν τα πρότυπα CORBA

48 Θέματα που καλύπτονται Αρχιτεκτονικές Πολυεπεξεργαστών Αρχιτεκτονικές Client-server Κατανεμημένες Αρχιτεκτονικές Αντικειμένου CORBA

49 Κατανεμημένα Συστήματα Ουσιαστικά όλα τα μεγάλα βασισμένα σε υπολογιστή συστήματα είναι τώρα κατανεμημένα συστήματα Η επεξεργασία πληροφοριών κατανέμεται στους διάφορους υπολογιστές για να μην είναι περιορισμένη σε μια ενιαία μηχανή Η Κατανεμημένη τεχνολογία λογισμικού είναι τώρα πολύ σημαντική

50 Τύποι συστημάτων Προσωπικά συστήματα που δεν κατανέμονται και που σχεδιάζονται για να τρέξουν σε έναν προσωπικό υπολογιστή ή έναν τερματικό σταθμό. Ενσωματωμένα συστήματα που τρέχουν σε έναν ενιαίο επεξεργαστή ή σε μια ενσωματωμένη ομάδα επεξεργαστών. Κατανεμημένα συστήματα όπου το λογισμικό εκτελείται σε μια αόριστα ενσωματωμένη ομάδα συνεργαζόμενων επεξεργαστών που συνδέονται σε δίκτυο.

51 Χαρακτηριστικά Κατανεμημένων Συστημάτων Κατανομή των πόρων. Ανοικτή Αρχιτεκνονική. Παράλληλη λειτουργία. Εξελιξιμότητα. Ανοχή ελαττωμάτων. Διαφάνεια.

52 Μειονεκτήματα Κατανεμημένων Συστημάτων Πολυπλοκότητα. Ασφάλεια. Δύσκολη Διαχείριση. Μη προβλεψιμότητα.

53 Ζητήματα στο κατανεμημένο σχέδιο συστημάτων

54 Αρχιτεκτονικές Κατανεμημένων Συστημάτων Αρχιτεκτονικές Client-server – Κατανεμημένες υπηρεσίες που καλούνται από τους πελάτες. Οι κεντρικοί υπολογιστές που παρέχουν τις υπηρεσίες αντιμετωπίζονται διαφορετικά από τους πελάτες που χρησιμοποιούν τις υπηρεσίες Κατανεμημένες Αρχιτεκτονικές Αντικειμένου – Καμία διάκριση μεταξύ των πελατών και των κεντρικών υπολογιστών. Οποιοδήποτε αντικείμενο στο σύστημα μπορεί να παρέχει και να χρησιμοποιήσει τις υπηρεσίες από άλλα αντικείμενα

55 Middleware Λογισμικό που διαχειρίζεται και υποστηρίζει τα διαφορετικά συστατικά ενός κατανεμημένου συστήματος. Στην ουσία, κάθεται στη μέση του συστήματος Το middleware είναι συνήθως off-the-shelf προϊόν και όχι custom λογισμικό Παραδείγματα – Transaction processing monitors – Μεταλλάκτες στοιχείων. – Ελεγκτές επικοινωνίας.

56 Αρχιτεκτονικές πολυεπεξεργαστών Απλούστερο κατανεμημένο πρότυπο συστημάτων Σύστημα που αποτελείται από τις πολλαπλάσιες διαδικασίες που μπορούν (αλλά δεν χρειάζεται) να εκτελεστούν στους διαφορετικούς επεξεργαστές Αρχιτεκτονικό πρότυπο πολλών μεγάλων συστημάτων, σε πραγματικό χρόνο Η κατανομή της διαδικασίας στον επεξεργαστή μπορεί να προ-διαταχτεί ή μπορεί να είναι υπό τον έλεγχο ενός despatcher

57 Ένα σύστημα ελέγχου κυκλοφορίας πολυεπεξεργαστών

58 Αρχιτεκτονικές Client-server Η εφαρμογή διαμορφώνεται ως σύνολο υπηρεσιών που παρέχονται από τους κεντρικούς υπολογιστές και ένα σύνολο πελατών που χρησιμοποιούν αυτές τις υπηρεσίες Οι πελάτες ξέρουν για τους κεντρικούς υπολογιστές αλλά οι κεντρικοί υπολογιστές δεν χρειάζονται να ξέρουν για τους πελάτες Οι πελάτες και οι κεντρικοί υπολογιστές είναι λογικές διαδικασίες Η χαρτογράφηση των επεξεργαστών στις διαδικασίες δεν είναι απαραιτήτως 1 : 1

59 Ένα σύστημα Client-server

60 Υπολογιστές σε ένα δίκτυο C/S

61 Αρχιτεκτονική Επιπέδων Επίπεδο παρουσίασης – Ασχολείται με την παρουσίαση των αποτελεσμάτων ενός υπολογισμού στους χρήστες συστημάτων και με τη συλλογή των εισαγωγών χρηστών Επίπεδο επεξεργασίας εφαρμογής – Ασχολείται με την παροχή της συγκεκριμένης λειτουργίας εφαρμογής π.χ., σε ένα τραπεζικό σύστημα, η κατάθεση λειτουργεί όπως η πληρωμή σε ανοικτό λογαριασμό, ο στενός απολογισμός, κ.λπ.... Data management Επίπεδο – Ασχολείται με τη διαχείριση των βάσεων δεδομένων συστημάτων

62 Επίπεδα Εφαρμογής

63 Thin and fat clients Thin-client model – Σε ένα μοντέλο Thin-client, όλες οι επεξεργασίες εφαρμογής και διαχείρισης στοιχείων πραγματοποιούνται στον κεντρικό υπολογιστή. Ο πελάτης είναι απλά αρμόδιος για την εκτέλεση του λογισμικού παρουσίασης. Fat-client model – Σε αυτό το μοντέλο, ο κεντρικός υπολογιστής είναι μόνο αρμόδιος για τη διαχείριση στοιχείων. Το λογισμικό στον πελάτη εφαρμόζει τη λογική της εφαρμογής συστημάτων και τις αλληλεπιδράσεις με το χρήστη.

64 Thin and fat clients

65 Thin client model Χρησιμοποιείται όταν τα συστήματα legacy μεταναστεύουν στις αρχιτεκτονικές κεντρικών υπολογιστών πελατών. – The legacy system acts as a server in its own right with a graphical interface implemented on a client Ένα σημαντικό μειονέκτημα είναι ότι τοποθετεί ένα βαρύ φορτίο επεξεργασίας και στον κεντρικό υπολογιστή και στο δίκτυο

66 Fat client model Περισσότερη επεξεργασία μεταβιβάζεται στον πελάτη καθώς η επεξεργασία εφαρμογής εκτελείται τοπικά Ο καταλληλότερος για τα νέα συστήματα C/S όπου οι ικανότητες του συστήματος πελατών είναι γνωστές εκ των προτέρων Πιό σύνθετος από ένα Thin client model ειδικά για τη διαχείριση. Οι νέες εκδόσεις της εφαρμογής πρέπει να εγκατασταθούν σε όλους τους πελάτες

67 A client-server ATM system

68 Τριών επιπέδων αρχιτεκτονικές Σε μια τριών επιπέδων αρχιτεκτονική, κάθε ένα από τα στρώματα αρχιτεκτονικής εφαρμογής μπορεί να εκτελέσει σε έναν χωριστό επεξεργαστή Επιτρέπει την καλύτερη απόδοση από μια προσέγγιση Thin client και είναι απλούστερο να διαχειριστεί από μια προσέγγιση fat client Μια πιό εξελικτική αρχιτεκτονική - καθώς οι απαιτήσεις αυξάνονται, οι πρόσθετοι κεντρικοί υπολογιστές μπορούν να προστεθούν

69 Μια αρχιτεκτονική 3 επιπέδων C/S(A 3-tier C/S architecture)

70 Ένα τραπεζικό σύστημα Διαδικτύου

71 Χρήση των Αρχιτεκτονικών C/S

72 Κατανεμημένες Αρχιτεκτονικές Αντικειμένου Δεν υπάρχει διάκριση, σε αρχιτεκτονικές τύπου distributed objects, μεταξύ των πελατών και των κεντρικών υπολογιστών Κάθε κατανεμητή οντότητα είναι ένα αντικείμενο που παρέχει τις υπηρεσίες σε άλλα αντικείμενα και λαμβάνει τις υπηρεσίες από άλλα αντικείμενα Η επικοινωνία αντικειμένου είναι εφικτή μέσω ενός συστήματος middleware αποκαλούμενου object request broker(software bus) Εντούτοις, πιό σύνθετο να σχεδιαστεί από τα συστήματα C/S

73 Κατανεμημένη Αρχιτεκτονική Αντικειμένου

74 Πλεονεκτήματα της Κατανεμημένης Αρχιτεκτονικής Αντικειμένου Επιτρέπει στο σχεδιαστή συστημάτων να καθυστερήσει τις αποφάσεις σχετικά με που και τον τρόπο με τον οποίο οι υπηρεσίες πρέπει να παρασχεθούν Είναι μια ανοιχτή αρχιτεκτονική συστημάτων που επιτρέπει σε νέους πόρους να προστεθούν όπως & όταν απαιτείται Το σύστημα είναι ευέλικτο και ρυθμιζόμενο Είναι δυνατό να μετατραπεί το σύστημα δυναμικά με τα αντικείμενα που μεταναστεύουν μέσω του δίκτυου όπως απαιτείται

75 Χρήσεις της Κατανεμημένης Αρχιτεκτονικής Αντικειμένου Σαν λογικό πρότυπο που επιτρέπει σε σας να κτίσετε και να οργανώσετε το σύστημα. Σε αυτήν την περίπτωση, σκέφτεστε για το πώς να παρέχετε τη λειτουργία εφαρμογής απλώς από την άποψη των υπηρεσιών και των συνδυασμών υπηρεσιών Σαν ευέλικτη προσέγγιση στην υλοποίηση συστημάτων client-server. Το λογικό μοντέλο του συστήματος είναι ένα μοντέλο client-server αλλά οι πελάτες και οι κεντρικοί υπολογιστές υλοποιούνται ως κατανεμημένα αντικείμενα επικοινωνώντας μέσω ενός software bus.

76 A data mining system

77 Το λογικό μοντέλο του συστήματος δεν είναι ένα μοντέλο παροχής υπηρεσιών όπου υπάρχουν διακεκριμένες υπηρεσίες data management Επιτρέπει στον αριθμό βάσεων δεδομένων που προσεγγίζονται να αυξηθούν χωρίς να επηρρεάσουν το σύστημα Επιτρέπει στους νέους τύπους σχέσεων να εξαχθούν με την προσθήκη των integrator objects

78 CORBA Το CORBA είναι ένα διεθνές μοντέλο για έναν Object Request Broker - middleware για να διαχειριστεί τις επικοινωνίες μεταξύ των κατανεμημένων αντικειμένων Διάφορες εφαρμογές CORBA είναι διαθέσιμες Το DCOM είναι μια εναλλακτική προσέγγιση από τη Microsoft στους Object Request Broker Το CORBA έχει καθοριστεί από το Object Management Group.(OMG)

79 Δομή εφαρμογής Αντικείμενα εφαρμογής Τυποποιημένα αντικείμενα, που καθορίζονται από το OMG, για μια συγκεκριμένη ασφάλεια περιοχών π.χ. ασφάλεια. Θεμελιώδεις υπηρεσίες CORBA όπως η διαχείριση καταλόγων και ασφάλειας Οριζόντιες (δηλ. κόβοντας δια μέσου τις εφαρμογές) εγκαταστάσεις όπως οι εγκαταστάσεις διεπαφής

80 Δομή εφαρμογής CORBA

81 Πρότυπα CORBA Ένα μοντέλο αντικειμένου για τα αντικείμενα εφαρμογής – Ένα αντικείμενο CORBA είναι μια ενθυλάκωση κατάστασης με μια καθορισμένη με σαφήνεια, ουδέτερης- γλώσσας διεπαφή που καθορίζεται σε ένα IDL (γλώσσα καθορισμού διεπαφών) Ένας object request broker που διαχειρίζεται τα αιτήματα για τις υπηρεσίες αντικειμένου(object services) Ένα σύνολο γενικών object services της χρήσης σε πολλές κατανεμημένες εφαρμογές Ένα σύνολο κοινών συστατικών που χτίζονται πάνω από αυτές τις υπηρεσίες

82 Αντικείμενα CORBA Τα αντικείμενα CORBA είναι συγκρίσιμα, σε γενικές γραμμές, με τα αντικείμενα στη c ++ και στη java ΠΡΕΠΕΙ να έχουν έναν χωριστό καθορισμό διεπαφών που εκφράζεται χρησιμοποιώντας μια κοινή γλώσσα (IDL) παρόμοια με τη c ++ Υπάρχει μια χαρτογράφηση από αυτό το IDL στον προγραμματισμό των γλωσσών (c ++, java, κ.λπ....) Επομένως, τα αντικείμενα που γράφονται στις διαφορετικές γλώσσες μπορούν να επικοινωνήσουν το ένα με το άλλο

83 Object request broker (ORB) Οι επικοινωνίες αντικειμένου ORB handles ξέρουν για όλα τα αντικείμενα στο σύστημα και τις διεπαφές τους Χρησιμοποιώντας ένα ORB, το καλούμενο αντικείμενο δεσμεύει ένα στέλεχος IDL που καθορίζει τη διεπαφή του καλούμενου αντικειμένου Η κλήση αυτού του στελέχους οδηγεί στις κλήσεις στο ORB που καλεί έπειτα το απαραίτητο αντικείμενο μέσω ενός δημοσιευμένου σκελετού IDL που συνδέει τη διεπαφή με την εφαρμογή υπηρεσιών

84 ORB-based object επικοινωνίες

85 Inter-ORB επικοινωνίες Τα ORBs δεν είναι συνήθως χωριστά προγράμματα αλλά είναι ένα σύνολο αντικειμένων σε μια βιβλιοθήκη που συνδέονται με μια εφαρμογή όταν αναπτύσσεται ORBs handle επικοινωνίες μεταξύ των αντικειμένων που εκτελούνται σχετικά με τη λογική μηχανή Διάφοροι ORBs μπορούν να είναι διαθέσιμοι και κάθε υπολογιστής σε ένα κατανεμημένο σύστημα θα έχει το ORB του Οι Inter-ORB επικοινωνίες χρησιμοποιούνται για τις Κατανεμημένες κλήσεις αντικειμένου

86 Inter-ORB επικοινωνίες

87 Υπηρεσίες CORBA Naming and trading services – Αυτές οι υπηρεσίες επιτρέπουν στα αντικείμενα να ανακαλύψουν και να αναφερθούν σε άλλα αντικείμενα στο δίκτυο Notification services – Αυτές οι υπηρεσίες επιτρέπουν στα αντικείμενα να δηλώσουν σε άλλα αντικείμενα ότι ένα γεγονός έχει εμφανιστεί Transaction services – Αυτές οι υπηρεσίες υποστηρίζουν τις ατομικές συναλλαγές και τη μείωση της αποτυχίας

88 Βασικά σημεία Σχεδόν όλα τα νέα μεγάλα συστήματα είναι διανεμημένα συστήματα Τα διανεμημένα συστήματα υποστηρίζουν τη διανομή των πόρων, την ειλικρίνεια, το συναγωνισμό, την εξελιξιμότητα, την ανοχή στα σφάλματα και τη διαφάνεια Οι αρχιτεκτονικές Client-server περιλαμβάνουν τις υπηρεσίες που παραδίδονται από τους κεντρικούς υπολογιστές στα προγράμματα που λειτουργούν για τους Clients Το λογισμικό αλληλεπίδρασης με τον χρήστη τρέχει πάντα στον Client και τη διαχείριση στοιχείων(data management) στον κεντρικό υπολογιστή

89 Υπόμνημα-Λεξικό OMG : Object Management Group


Κατέβασμα ppt "Τεχνολογία Λογισμικού (Software Engineering) Ενότητα – Σχεδιασμός Λογισμικού Κεφάλαιο – Αρχιτεκτονικός Σχεδιασμός."

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


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