Σχεδιασµός βασισµένος σε συνιστώσες



Σχετικά έγγραφα
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Α. Ερωτήσεις Ανάπτυξης

Εισαγωγή στη Σχεδίαση Λογισμικού

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Αρχιτεκτονική Λογισμικού

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Κεφάλαιο 10 ο Υποπρογράµµατα

ΜΟΝΤΕΛΑ ΙΑΚΡΙΤΩΝΣΥΣΤΗΜΑΤΩΝ

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Διαφορές single-processor αρχιτεκτονικών και SoCs

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Περιεχόμενο του μαθήματος

2.1 Αντικειµενοστρεφής προγραµµατισµός

Δεδομένα και Πληροφορίες

Υποδείγματα Ανάπτυξης

επιµέλεια Θοδωρής Πιερράτος

Διαχείριση Πληροφοριακών Συστημάτων

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Μαλούτα Θεανώ Σελίδα 1

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

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

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Πλαίσιο Εργασιών. Στρατηγικές Ευκαιρίες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

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

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

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec06 (Εργαστήριο) 26/03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Προγραµµατιστικές τεχνικές

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Μεθοδολογίες Παραγωγής Λογισµικού

Επιµέλεια Θοδωρής Πιερράτος

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Περίληψη Λαμπρόπουλος

Διαχείριση Ετερογενών Δικτύων

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

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

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Ανάπτυξη πληροφοριακών συστημάτων

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Μαθησιακοί Στόχοι Προγράμματος Σπουδών

περιεχόμενα παρουσίασης

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Λογισµικό ΣΓΠ. Συστήµατα Γεωγραφικών Πληροφοριών ΙΙ. Χαροκόπειο Πανεπιστήµιο, Τµήµα Γεωγραφίας, ΣΓΠ ΙΙ, Χρίστος Χαλκιάς

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

11/5/2015. Οι επιχειρήσεις

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Ως ανάπτυξη προϊόντος ορίζεται όλο το σύνολο των δραστηριοτήτων από την έρευνα αγοράς, µέχρι την παράδοσή του στον πελάτη.

Τεχνολογίες Πληροφορίας και Επικοινωνίας στον Τουρισμό (Γ εξάμηνο)

Περίληψη ιπλωµατικής Εργασίας

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Πληροφορική 2. Τεχνολογία Λογισμικού

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ MANAGEMENT INFORMATION SYSTEMS (M.I.S.)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

Μοτίβα Σχεδίασης (Design Patterns)

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

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

Προγραμματισμός Υπολογιστών

Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό. Νικόλαος Μήτρου Καθηγητής, ΕΜΠ

3 Αλληλεπίδραση Αντικειμένων

Σχεδίαση Middleware Εγχειρίδιο Μελέτης

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Τεχνολογία λογισμικού στην πράξη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ 1. CORBA (Common Object Request Broker Architecture - Αρχιτεκτονική ιαµεσολάβησης για Αιτήµατα Κοινών Αντικειµένων)

Εισαγωγή στην Τεχνολογία Λογισµικού

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγικές Έννοιες

Εισαγωγή στη γλώσσα UML

Τα διαγράµµατα συστατικών

Transcript:

Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι η αρχιτεκτονική υπηρεσιών; Ποιες είναι οι έτοιµες λύσεις και πως µπορεί να µειωθεί ο χρόνος δηµιουργίας της νέας υπηρεσίας; Ποιων ειδών συνιστώσες έχουµε διαθέσιµες (σταθερές και κινητές) για να χτίσουµε υπηρεσίες; Πώς θα σπάσουµε την υπηρεσία στις κατάλληλες συνιστώσες; Πώς θα κάνουµε τις συνιστώσες ούτε πολύ µικρές ούτε πολύ µεγάλες; Πώς σκορπίζουµε τις συνιστώσες των υπηρεσιών πάνω από τα δίκτυα; 2 1

Πλεονεκτήµατα χρήσης συνιστωσών Με τη χρήση συνιστωσών επιτυγχάνεται: την επαναχρησιµοποίηση διαθέσιµου λογισµικού, τον χωρισµό του συστήµατος σε τµήµατα, µε σκοπό τον καλύτερο έλεγχο ενός πολύπλοκου συστήµατος κατά τη δηµιουργία και τη συντήρηση, την καλύτερη κατανοµή του λογισµικού µέσα στο δίκτυο. 3 Ορισµοί της συνιστώσας "Συνιστώσα λογισµικού είναι µια φυσική συσκευασία εκτελέσιµου λογισµικού µε καλά καθορισµένη και γνωστή διεπαφή." Η συνιστώσα είναι ανεξάρτητη εκτελέσιµη οντότητα. Η πηγαίος κώδικας της συνιστώσας δεν είναι διαθέσιµος, κατά συνέπεια η συνιστώσα δεν περνάει από compiler µαζί µε τις άλλες συνιστώσες του συστήµατος. Η διεπαφή της συνιστώσας είναι δηµόσια ανακοινωµένη. Όλες οι αλληλεπιδράσεις περνούν µόνο µέσα από αυτήν την διεπαφή. Η διεπαφή εκφράζεται µέσω παραµετροποιηµένων λειτουργιών, ενώ η εσωτερική κατάσταση της συνιστώσας δεν είναι εξωτερικά παρατηρήσιµη. 4 2

«Μέγεθος» και θέση της συνιστώσας Πέντε επίπεδα αφαίρεσης: Λειτουργική αφαίρεση: Η συνιστώσα υλοποιεί µια και µοναδική λειτουργία, π.χ. µια µαθηµατική συνάρτηση. Περιστασιακές οµαδοποιήσεις: Η συνιστώσα είναι µια συλλογή χαλαρά συσχετισµένων οντοτήτων, που µπορεί να είναι δηλώσεις δεδοµένων, συναρτήσεις κ.λπ. Η διεπαφή παροχής υπηρεσιών αποτελείται από τα ονόµατα όλων των οντοτήτων της οµάδας. Αφαιρέσεις δεδοµένων: Η συνιστώσα αντιπροσωπεύει µια αφαίρεση δεδοµένων (data abstraction) ή µια κλάση (class) σε µια αντικειµενοστρεφή γλώσσα. Η διεπαφή παροχής αποτελείται από λειτουργίες για τη δηµιουργία, τροποποίηση ή πρόσβαση στην αφαίρεση δεδοµένων. Αφαιρέσεις οµάδων (cluster abstractions): Η συνιστώσα είναι οµάδα συσχετισµένων κλάσεων, που συνεργάζονται. Αφαίρεση συστήµατος: Η συνιστώσα είναι ολόκληρο αυτάρκες σύστηµα. 5 Το παράδειγµα της CORBA H CORBA (Common Object Request Broker Architecture) είναι µια αρχιτεκτονική που επιτρέπει σε κοµµάτια προγραµµάτων, που καλούνται αντικείµενα, να επικοινωνούν µεταξύ τους ανεξάρτητα από τη γλώσσα προγραµµατισµού, στην οποία έχουν γραφτεί, από το λειτουργικό σύστηµα, πάνω από το οποίο τρέχουν, από τη συγκεκριµένη µηχανή ή από το δίκτυο. Η CORBA αναπτύχθηκε από ένα επιχειρηµατικό consortium που λέγεται Object Management Group (OMG). Υπάρχουν περισσότερες της µιας υλοποιήσεις της CORBA, από τις πιο γνωστές είναι η SOM και DSOM της ΙΒΜ. Η Αρχιτεκτονική ιαχείρισης Αντικειµένων (OMA - Object Management Architecture) ταξινοµεί τα αντικείµενα σε τέσσερις κατηγορίες: CORBAservices, CORBAfacilities, CORBAdomain objects, and Application Objects. Οι µεταξύ τους σχέσεις φαίνονται στο ακόλουθο διάγραµµα αρχιτεκτονικής: 6 3

Το παράδειγµα της ΤΙΝΑ 7 Το παράδειγµα της ΤΙΝΑ ΗΤΙΝΑ ολοκληρώνει όλες τις λειτουργίες ελέγχου και διαχείρισης σε µια ενοποιηµένη αρχιτεκτονική λογισµικού. Η ΤΙΝΑ υποστηρίζεται από ένα και µοναδικό Κατανεµηµένο Περιβάλλον Επεξεργασίας (Distributed Processing Environment, συντοµογρ. DPE, δηλαδή ένα περιβάλλον, που υποστηρίζει την τοποθέτηση και επικοινωνία αντικειµένων µεταξύ τους). Ορίζει ένα σύνολο από σηµεία διεπαφής, που ονοµάζονται Σηµεία Αναφοράς (Reference Points). 8 4

Το παράδειγµα της ΤΙΝΑ Προκειµένου να γίνει ένα σύστηµα πιο εύκολα κατανοητό υιοθετούνται τρεις διαφορετικές οπτικές γωνίες: Η πληροφοριακή άποψη (information viewpoint) περιγράφει τις οντότητες που είναι φορείς πληροφορίας, τις σχέσεις µεταξύ τους, τους περιορισµούς και τους κανόνες, που επηρεάζουν τη συµπεριφορά τους. Η υπολογιστική άποψη (computational viewpoint) περιγράφει τα υπολογιστικά αντικείµενα και τις µεταξύ τους σχέσεις. Με απλά λόγια περιγράφει τα κοµµάτια του προγράµµατος, που αλληλεπιδρούν µεταξύ τους και µε τις διεπαφές έτσι ώστε να υλοποιείται η εφαρµογή. Η µηχανική άποψη (engineering viewpoint) περιγράφει την οργάνωση µιας αφηρηµένης υποδοµής, που χρειάζεται για να υποστηρίξει την κατανοµή των συνιστωσών στους υπολογιστικούς κόµβους. 9 Το µέγεθος των συνιστωσών Ηπροσαρµογή σε συγκεκριµένη αρχιτεκτονική ή σε συγκεκριµένο µοντέλο: Π.χ. αν ακολουθείται το µοντέλο της TINA, µερικές τουλάχιστον από τις συνιστώσες είναι εν µέρει δεδοµένες ως προς το σκοπό και τις λειτουργίες. Η επίδραση του επιχειρηµατικού µοντέλου: Λειτουργίες, που αναµένεται ότι µπορεί να ασκούνται από διαφορετικούς ρόλους (και άρα να καταλήξουν σε διαφορετικούς παίκτες), πρέπει να εκτελούνται από διαφορετικές συνιστώσες, ώστε να είναι δυνατή η κατανοµή τους σύµφωνα µε το µοντέλο. Η ευελιξία της συνιστώσας σε περίπτωση επαναχρησιµοποίησης: Μια συνιστώσα µπορεί να εξυπηρετεί καλά τους σκοπούς ενός µοντέλου, αλλά να υλοποιηθεί µε διευρυµένες ικανότητες προκειµένου να καλυφθούν µελλοντικές ή εναλλακτικές ανάγκες. Η καλή κατάτµηση του συστήµατος µε λειτουργικά και σχεδιαστικά κριτήρια: Πολλές φορές ο σχεδιαστής χωρίζει τις λειτουργίες µε όποιο τρόπο τον βοηθάει να κατανοήσει καλύτερα το σύστηµα και τις αλληλεπιδράσεις ανάµεσα στα µέρη του. Άλλοτε προσθέτει σε συνιστώσες ικανότητες, που θα είναι βοηθητικές στα στάδια των δοκιµών ή της συντήρησης του συστήµατος. Με κριτήρια διανοµής στη δικτυακή υποδοµή: Οι διαφορετικές συνιστώσες είναι πιθανό να καταλήξουν σε διαφορετικούς κόµβους του δικτύου. Ωστόσο αν κάποιες λειτουργίες πρόκειται να είναι µόνιµα στενά συνδεδεµένες κατά τρόπο ώστε να είναι επιθυµητό να εµφανίζονται πάντοτε στον ίδιο πάντοτε κόµβο, ένας τρόπος να γίνει αυτό υποχρεωτικό είναι να συστεγασθούν τελικά σε µια και µόνη συνιστώσα. 10 5

Ηδιανοµή των συνιστωσών στο δίκτυο 11 Με ποιο τρόπο εκτιµούµε τον όγκο της κίνησης ανάµεσα σε δυο συνιστώσες; 12 6