1 / 23

HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής , Ε.Μ.Π

HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής , Ε.Μ.Π. Οι Τεχνοτροπίες. Ροής Δεδομένων ( Data Flow) Κλήσης-Επιστροφής (Call-and-return) Κύριο Πρόγραμμα και Ρουτίνες ( Main Program and Subroutines ) Απόκρυψης Πληροφορίας ( Information Hiding Architectural Style)

clara
Download Presentation

HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής , Ε.Μ.Π

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HMMYΤεχνολογία ΛογισμικούΔιδάσκωνΚώστας ΚοντογιάννηςΑναπλ. Καθηγητής, Ε.Μ.Π

  2. Οι Τεχνοτροπίες • Ροής Δεδομένων (Data Flow) • Κλήσης-Επιστροφής (Call-and-return) • Κύριο Πρόγραμμα και Ρουτίνες (Main Program and Subroutines) • Απόκρυψης Πληροφορίας (Information Hiding Architectural Style) • Data Abstraction • Object Oriented • Αλληλεπιδρώντων Λειτουργιών (Interacting processes) • Δεδομενο-κεντρικής αποθήκης (Data-oriented repository) • Ιεραρχικές (Hierarchical) • Ετερογενείς Αρχιτεκτονικές (heterogeneous architectures)

  3. Αρχιτεκτονική Τεχνοτροπία Κύριο Πρόγραμμα και Ρουτίνες • Κλασσική τεχνοτροπία από τη δεκαετία του 60 και πρίν την άνθηση του αντικειμενοστραφών τεχνικών • Η ιδέα αυτής της τεχνοτροπίας βασίζεται • στην ιεραρχική δόμηση του συστήματος σε ένα σύνολο από υπολογιστικές ψηφίδες - μονάδες (components – subroutines) όπου η κάθε μια υλοποιεί συγκεκριμένες λειτουργίες του συστήματος • στην μεταφορά δεδομένων ανάμεσα στις μονάδες με τη μορφή παραμέτρων • στη σχεδίαση όπου κάθε μονάδα μπορεί να κληθεί από μια ή περισσότερες μονάδες που βρίσκονται πιο ψηλά στην ιεραρχική δόμηση του συστήματος • Στην ύπαρξη κάποιας κεντρικής μονάδας που «οδηγεί» και ξεκινά τη λειτουργία του συστήματος • Αυτή η αρχιτεκτονική τεχνοτροπία είναι συμβατή με αυτό πουονομάζουμε top-down σχεδίαση (για να λύσουμε ένα πρόβλημα ορίζουμε και επιλύουμε υπο-προβλήματα)

  4. Data Abstraction / Object Oriented • Πολύ διαδεδομένες αρχιτεκτονικές τεχνοτροπίες • Μονάδες: • Αντικείμενα, Κλάσεις ή Αφηρημένοι Τύποι Δεδομένων • Συνδέσεις: • Μηνύματα που ξεκινούν μια διαδικασία (π.χ. μέθοδο) σε μια μονάδα (π.χ. κλάση ή αντικείμενο, ΑΤΔ) • Βασικές Αρχές: • Η Μονάδα αποκρύπτει πληροφορίες σχετικές με τα μοντέλα και τις δομές των δεδομένων που αυτή εμπεριέχει. • Η προσπέλαση αυτών των δεδομένων από άλλες μονάδες γίνεται μόνο με τη χρήση συγκεκριμένων μεθόδων της μονάδας που εμπεριέχει αυτά τα δεδομένα. • Παραλλαγές: • Μονάδες σαν παράλληλες διαδικασίες • Πολλαπλές διαπροσωπείες για μια μονάδα (Java !) • Σημειώστε ότι η τεχνοτροπία Data Abstraction διαφέρει από τη τεχνοτροπία Object-Oriented, στο σημείο ότι η πρώτη δεν προσφέρει δυνατότητα γενίκευσης / ειδίκευσης ανάμεσα στις ψηφίδες / μονάδες

  5. Κριτική για τη Τεχνοτροπία Data Abstraction / Object Oriented • Θετικά Σημεία: • Επιτρέπει τη αλλαγή της υλοποίησης κάθε ψηφίδας / μονάδας χωρίς να χρειάζεται να αλλάξουν οι ψηφίδες / μονάδες πελάτες τους (θεωρούμε ότι οι διαπροσωπείες δεν αλλάζουν) • Επιτρέπει τη δόμηση του συστήματος σαν ένα σύνολο αλληλεπιδρώντων μονάδων (agents) που μπορεί να είναι και κατανεμημένοι σε διαφορετικούς υπολογιστές / δίκτυα • Αρνητικά Σημεία: • Για να επικοινωνήσει μια μονάδα με κάποια άλλη θα πρέπει να γνωρίζει την ταυτότητά της (π.χ. Λεπτομέρειες για τη διαπροσωπεία της, τη κατάστασή της). Σημειώστε ότι αυτό δεν είναι απαραίτητο για τη τεχνοτροπία αυλού/φιλτου • Παρενέργειες ανάμεσα σε μονάδες. Για παράδειγμα όταν η μονάδα Α χρησιμοποιεί τη μονάδα Β και η Γ χρησιμοποιεί τη Β τότε αλλάγές που υφίσταται η Β από τη Γ είναι ξαφνικές και άγνωστες στη Α (και αντίστροφα). • Αυτή η τεχνοτροπία επιτρέπει τη δημιουργία πολύπλοκων αλληλεπιδράσεων ανάμεσα στις μονάδες. Επίσης η λειτουργίες κατανέμονται σε πολλές δυναμικές και κατανεμημένες (πιθανόν και στη φυσική τους μορφή) λειτουργίες(dynamic functionality, distributed functionality)

  6. Οι Τεχνοτροπίες • Ροής Δεδομένων (Data Flow) • Κλήσης-Επιστροφής (Call-and-return) • Αλληλεπιδρώντων Λειτουργιών (Interacting processes) • Event Systems • Εν Δυνάμει Κλήσης (Implicit Invocation) • Communicating Processes • Light weight processes (π.χ. Threads) • Κατανεμημένων Αντικειμένων (Distributed Objects) • Δεδομενο-κεντρικής αποθήκης (Data-oriented repository) • Ιεραρχικές (Hierarchical) • Ετερογενείς Αρχιτεκτονικές (heterogeneous architectures)

  7. Τεχνοτροπία Εν Δυνάμει Κλήσης – Γενική Περιγραφή • Αυτή η τεχνοτροπία βασίζεται στην ιδιομορφία με την οποία καλείται μια λειτουργία σε μια μονάδα από κάποια άλλη μονάδα. • Σύμφωνα λοιπόν με αυτή τη τεχνοτροπία αντί μια μονάδα να καλεί συγκεκριμένες λειτουργίες κάποιας άλλης μονάδας, η μονάδα δημοσιοποιεί ένα ή περισσότερα γεγονότα (events) • Έτσι λοιπόν, μια μονάδα μπορεί να δηλώσει ενδιαφέρον σε ένα ή περισσότερα γεγονότα και να συνδέσει συγκεκριμένες λειτουργίες με κάθε γεγονός • Όταν αυτά τα γεγονότα παρατηρηθούν στο σύστημα (π.χ. Μια άλλη μονάδα τα έχει δημοσιοποιήσει) τότε οι μονάδες που έχουν δηλώσει ενδιαφέρον σε αυτό το γεγονός «ξυπνούν» και εκτελούν τις συγκεκριμένες λειτουργίες τους που είναι συνδέονται με αυτά τα γεγονότα

  8. Τεχνοτροπία Εν Δυνάμει Κλήσης – Γενική Περιγραφή • Είναι σημαντικό να σημειώσουμε ότι η τεχνοτροπία της εν-δυνάμει κλήσης διαφέρει από την τεχνοτροπία Data Abstraction / Object Oriented διότι οι επικοινωνία δεν γίνεται από μια μονάδα σε κάποια άλλη (τα μηνύματα δημοσιοποιούνται – broadcast) και οι μονάδες δεν είναι απαραίτητα αντικείμενα ή ΑΤΔ. • Αυτή η τεχνοτροπία είναι πολύ κατάλληλη για την διασύνδεση εφαρμογών / εργαλείων σε ένα κοινό περιβάλλον. Για παράδειγμα, • Οι εφαρμογές επικοινωνούν με τη χρήση δημοσιοποιημένων μηνυμάτων που λαμβάνονται από όλες τις εφαρμογές που συμμετέχουν στο περιβάλλον • Οι εφαρμογές ορίζουν μοτίβα γεγονότων που θεωρούν σημαντικά, και ορίζουν επίσης ποιες λειτουργίες θα κληθούν εάν αυτά τα μοτίβα επαληθευτούν (δηλ. δημοσιοποιηθούν) στο περιβάλλον • Κάθε εφαρμογή έχει μια μέθοδο να ελέγχει εάν τα μοτίβα γεγονότων επαληθεύονται και ένα μηχανισμό κλήσης των αντίστοιχων λειτουργιών τους που θα πρέπει να κληθούν αντίστοιχα

  9. Τεχνοτροπία Εν Δυνάμει Κλήσης – Λεπτομερής Περιγραφή • Μονάδες: Μονάδες των οποίων οι διαπροσωπείες ορίζουν • μια συλλογή από μεθόδους που αυτές οι μονάδες προσφέρουν και • μια συλλογή από γεγονότα που αυτές οι μονάδες μπορούν να δημοσιοποιήσουν • Συνδέσεις: Συσχετίσεις ανάμεσα σε μοτίβα γεγονότων και σε μεθόδους / λειτουργίες που θα πρέπει να κληθούν όταν αυτά τα μοτίβα επαληθευτούν • Σταθερά Χαρακτηριστικά: • Οι μονάδες που δημοσιοποιούν γεγονότα δεν γνωρίζουν ποιες μονάδες θα είναι οι παραλήπτες αυτών των γεγονότων (events) • Οι μονάδες δεν μπορούν και δεν πρέπει να κάνουν υποθέσεις ή να βασίζονται στη σειρά ή ακόμη και ποιες μονάδες θα ανταποκριθούν στα γεγονότα που δημοσιοποιούν • Παραδείγματα / Εφαρμογές (Shaw and Garlan textbook) • Διασύνδεση εργαλείων σε προγραμματιστικά περιβάλλοντα • Εφαρμογές Διαπροσωπείας Χρήστη (Model-View-Controller • Syntax-directed editors

  10. Κριτική για τη Τεχνοτροπίατης Εν Δυνάμει Κλήσης • Θετικά Στοιχεία: • Ευέλικτη αρχιτεκτονική τεχνοτροπία, υποστηρίζει επαναχρησιμοποίηση μονάδων (plug and play components) • Συστήματα τα οποία έχουν δομηθεί με αυτή τη τεχνοτροπία έχουν υψηλό βαθμό συντηρησημότητας. Η αναπλήρωση μιας μονάδας έχει ελάχιστη επίδραση στις άλλες μονάδες • Αρνητικά Στοιχεία: • Δυσκολία να ελεγχθεί η λειτουργία και η ορθότητα του συστήματος (loss of control) • Μια μονάδα δεν γνωρίζει ποια θα είναι τα επακόλουθα ενός γεγονότος που αυτή δημοσιοποιεί • Μια μονάδα δεν μπορεί να βασίζεται στη σειρά με την οποία άλλες μονάδες θα εκτελέσουν τις λειτουργίες τους • Μια μονάδα δεν γνωρίζει (εν γένει) εάν οι άλλες μονάδες έχουν τελειώσει τη λειτουργία τους • Η τεχνοτροπία μπορεί να δημιουργήσει συστήματα που οι μονάδες τους έχουν απρόβλεπτες Δυσκολία να έχουμε κοινά δεδομένα που προσπελάζονται και αλλάζουν από πολλές μονάδες • Στη πράξη, ένα σύστημα που έχει σχεδιαστεί με τη τεχνοτροπία της εν δυνάμει κλήσης, συνδυάζει και μονάδες που υποστηρίζουν τη τεχνοτροπία κλήσης-επιστροφής

  11. Εφαρμογή Τεχνοτροπίας Εν Δυνάμει Κλήσης “Model-View-Controller“ • Η τεχνοτροπία αυτή βασίζεται στη διάσπαση ενός συστήματος σε τρεις μονάδες: • Τη μονάδα Μοντέλο που περικλείει και μοντελοποιεί τις βασικές λειτουργίες και τα δεδομένα του συστήματος • Μια ή περισσότερες μονάδες Παρουσίασης που ορίζουν διαφορετικούς τρόπους παρουσίασης δεδομένων και αποτελεσμάτων στο χρήστη • Μια ή περισσότερες μονάδες Ελέγχου που διαχειρίζονται με τον κατάλληλο τρόπο την εισαγωγή πληροφοριών και αιτημάτων από τον χρήστη • Ένας μηχανισμός διασποράς αλλαγών (π.χ. Το σχεδιαστικό μοτίβο observer) χρησιμοποιείται για να διασφαλίσει ότι όταν ο χρήστης αλλάξει τα δεδομένα (model) μέσω μιας μονάδας ελέγχου (controller) τότε όλες οι παρουσιάσεις των δεδομένων (views) αλλάζουν έτσι ώστε αυτές να παραμένουν συνακόλουθες μεταξύ τους • Μερικές φορές επειδή μια μονάδα ελέγχου πρέπει να λειτουργεί στο πλαίσιο ενός συγκεκριμένου τρόπου παρουσίασης (view) σε αυτές τις υλοποιήσεις η μονάδα ελέγχου και η αντίστοιχη μονάδα παρουσίασης συνδυάζονται σε μια μονάδα

  12. Παράδειγμα “Model-View-Controller“ Views Controller Τιμές στα ζεύγη από τα στοιχεία a, b, c, x, y, z Model

  13. initiator Controller 1 repository * Model 1 notifier subscriber View * Model/View/Controller (MVC) • Σε αυτή την εφαρμογή της τεχνοτροπίας εν δυνάμει κλήσης οι μονάδες τυποποιούνται σε τρεις κατηγορίες • Μονάδα Μοντέλου (Model): Περιγράφει και κωδικοποιεί τα δεδομένα πεδίου της εφαρμογής • Μονάδες Εποπτείας (View): Περιγράφουν και υλοποιεί τη μορφή παρουσίασης των δεδομένων στο χρήστη ή σε άλλα συστήματα • Μονάδα Ελέγχου (Controller): Περιγράφει και κωδικοποιεί την αλλαγές που κάνει ο χρήστης στα δεδομένα και ενημερώνει ανάλογα τη μονάδα Μοντέλου

  14. 2.User types new filename 3. Request name change in model :Controller 1. Views subscribe to event :Model 5. Updated views 4. Notify subscribers :InfoView :FolderView Επικοινωνιακό Διάγραμμα MVC

  15. Αρχιτεκτονική Τεχνοτροπία Κατανεμημένων Αντικειμένων • Αυτή η αρχιτεκτονική τεχνοτροπία βασίζεται στη ιδέα ότι • οι μονάδες ενός συστήματος είναι κατανεμημένες σε διάφορους υπολογιστές ή τρέχουν σαν ξεχωριστές διαδικασίες (processes) • Οι λειτουργίες της κάθε μονάδες διατίθενται μόνο μέσα από σαφείς διαπροσωπείες και εσωκλείνονται σεένα ή περισσότερα αντικείμενα που ονομάζονται αντικείμενα περιβλήματος (wrapper objects) • Τα αντικείμενα μπορεί (και κατά συνέπεια οι λειτουργίες που εσωκλείνουν) μπορούν να προσπελασθούν από άλλες μονάδες • Ο τρόπος προσπέλασης βασίζεται σε ένα πλαίσιο που επιτρέπει μια μονάδα (ή εφαρμογή) να χρησιμοποιεί αντικείμενα που βρίσκονται σε άλλους υπολογιστές ή διαδικασίες σαν να ήταν τοπικά • Δύο τυπικές υλοποιήσεις τέτοιων πλαισίων είναι το Remote Method Invocation (RMI) και το πλαίσιο CORBA

  16. RMI Communication modules Proxy for A A’s client stubs A’s skeleton A server stubs dispatcher X A B C ROID modules

  17. - Manufacturing: - Electronic Commerce: - Healthcare: -Telecommunications: - Finance -Transportation - ….. - Architecture guide and roadmap - Working on Internet facilities. Domains Interfaces Common Facilities Application Interfaces Common Object Request Broker - Naming - Security (...ICL) - Transactions (..Bull) - Query Service - Persistence - Lifecycle - ORBIX - IONA - Obj Broker BEA - VisiBroker Borland - Omni Orb Olivetti - Component Broker IBM Object Services CORBA Architecture

  18. Obj Impl Client Obj Impl Client Stub Skeleton Stub Skeleton REQUEST REQUEST ORB ORB Different Hosts Single-Process ORB ORB REQUEST Different Processes Skeleton Stub Obj Impl Client CORBA ORB

  19. Obj Impl Obj Impl Stub Skeleton Stub Skeleton Skeleton Stub Obj Impl ORB Interoperation Client Client ORB ORB ORB ORB Client

  20. Οι Τεχνοτροπίες • Ροής Δεδομένων (Data Flow) • Κλήσης-Επιστροφής (Call-and-return) • Αλληλεπιδρώντων Λειτουργιών (Interacting processes) • Δεδομενο-κεντρικής αποθήκης (Data-oriented repository) • Transactional databases • Blackboard • Ιεραρχικές (Hierarchical) • Ετερογενείς Αρχιτεκτονικές (heterogeneous architectures)

  21. Αρχιτεκτονική Τεχνοτροπία Δεδομενο-κεντρικής αποθήκης • Αυτή η αρχιτεκτονική τεχνοτροπία χαρακτηρίζεται από την μια κεντρική αποθήκη δεδομένων ή οποία με τα περιεχόμενά της περιγράφει και ορίζει την κατάσταση (state) του συστήματος • Ανεξάρτητες μονάδες ενεργούν στα περιεχόμενα της αποθήκης (και ενδεχομένως αλλάζουν τη κατάσταση του συστήματος) • Η επικοινωνία ανάμεσα στην αποθήκη δεδομένων και στις ανεξάρτητες μονάδες μπορεί να πάρει διάφορες μορφές. Οι δύο πιο διαδεδομένες μορφές είναι: • Βάσεις Δεδομένων Συναλλαγής (Transactional databases): Εισερχόμενες επερωτήσεις για συναλλαγές προκαλούν διαδικασίες που ενεργούν στα δεδομένα της αποθήκης. Αυτή η μορφή χαρακτηρίζεται ως παθητική μορφή • Αρχιτεκτονική Μαυροπίνακα (Blackboard architecture): Η παρούσα κατάσταση της αποθήκης (π.χ. Οι τιμές των δεδομένων) προκαλεί το ξεκίνημα συγκεκριμένων διαδικασιών και λειτουργιών. Η μορφή αυτή χαρακτηρίζεται σαν ενεργητικήμορφή

  22. Αρχιτεκτονική Τεχνοτροπία Μαυροπίνακα • Ο μαυροπίνακας χρησιμοποιείται σαν κεντρική αποθήκη δεδομένων • Κάθε επαΐων (expert) συμβάλει στο σύστημα με κάποιες λειτουργίες που μπορούν να χρησιμοποιηθούν για τη επίλυση ενός προβλήματος. Κάθε λειτουργία μπορεί να επιλύσει μόνο μερικά το πρόβλημα • Μια μονάδα διευκόλυνσης επιλέγει ποια διαδικασία από τις διαθέσιμες είναι η πλέον κατάλληλη να τρέξει κάθε φορά ανάλογα με τη κατάσταση της αποθήκης (μαυροπίνακα) • Με αυτό το τρόπο η αποθήκη κάθε στιγμή έχει μια εικόνα της (μερικής) λύσης και τέλος της τελικής λύσης του προβλήματος • Η τεχνοτροπία επιτρέπει τις λειτουργίες (knowledge sources / problem solvers) να συνεργάζονται χωρίς να χρειάζεται να υπάρχει ένας συγκεκριμένος αλγόριθμος συνεργασίας

  23. Παράδειγμα Συστήματος με Τεχνοτροπία Μαυροπίνακα ……………. Knowledge Sources / Problem Solving Strategies http://www.nb.net/~javadoug/bb.htm

More Related