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

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

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

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


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

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“ Controller Views Τιμές στα ζεύγη από τα στοιχεία a, b, c, x, y, z Model

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

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

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

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

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

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

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

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


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

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


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