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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δίκτυα υπολογιστών.
Advertisements

ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ιωάννης Βλαχάβας, Ηλίας Σακελλαρίου Τμ. Πληροφορικής, Α.Π.Θ.
Υλοποίηση Συστήματος Ψηφοφορίας με τη χρήση Java RMI
Jetspeed Open Source Εργαλείο για την Δημιουργία Information Portals Πανεπιστήμιο Αιγαίου Βιορρές Νίκος.
Ιστορία του Ιντερνετ.
Αρχιτεκτονικός Σχεδιασμός
ΠΑΡΑΔΟΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΔΙΚΤΥΑ ΕΛΕΓΧΟΥ» ΟΚΤΩΒΡΙΟΣ 2004.
Λειτουργικό Σύστημα 2ο μέρος.
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Τεχνολογία Δικτύων Επικοινωνιών
Βάσεις Δεδομένων 1 T.Manavis– N.Kyritsis.
Λογισμικο συστηματοσ Κεφάλαιο 4ο
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
ΠΡΟΤΥΠΑ ΜΑΘΗΣΙΑΚΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΠΑΡΟΥΣΙΑΣΗ ΚΑΙ ΔΙΔΑΚΤΙΚΑ ΟΦΕΛΗ Ενότητα 3.7 – Β’ Μέρος.
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ
Web Services Υπηρεσίες διαδικτύου
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ
Torque Game Engine - #02 Κώστας Καρπούζης (kkarpou)
ΕΡΓΑΛΕΙΟ ΠΑΡΑΓΩΓΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ ΣΕ WEB SITE (CONTENT MANAGEMENT TOOL)
ΕΝΟΤΗΤΑ 12η Συστήματα μετρήσεων SCADA
Τι είναι Ανάλυση Τι είναι Συστήματα Πληροφορικής
Σύμφωνα με τον ΣΕΒ, αναμένεται να παρουσιάσουν ζήτηση μέχρι το 2020 Πηγή:
Εισαγωγικά Σχόλια για την Εργαστηριακή Άσκηση Τεχνολογίας Λογισμικού Κ. Κοντογιάννης.
ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 1 Εισαγωγή
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού u Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
ΨΗΦΙΑΚΑ ΕΚΠΑΙΔΕΥΤΙΚΑ ΠΑΙΧΝΙΔΙΑ
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
STANFORD DIGITAL LIBRARY TECHNOLOGIES Ανταβάλογλου Δέσποινα Βλισίδου Εύα Γόντικα Ειρήνη.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Ο ρόλος της τρισδιάστατης Ψηφιακής Μοντελοποίησης στη διδασκαλία του Προγραμματισμού: υλοποιώντας ένα μοντέλο του DNA – μια διαθεματική προσέγγιση Β. Ρεπαντής.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Κεφάλαιο 10 – Υποπρογράμματα
Network Inference Μπαλάφα Κασιανή - Αδριανή Πλασταρά Κατερίνα.
ΟΡΙΣΜΟΣ ΣΥΜΠΕΡΙΦΟΡΑΣ ΔΙΑΓΡΑΜΜΑTA ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
Λειτουργικά Συστήματα Πολλών Χρηστών
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Μαθηματικών “Θεωρητική Πληροφορική & Θεωρία Συστημάτων και Ελέγχου” Ανάπτυξη διαδραστικού περιβάλλοντος (GUI)
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
Αρχιτεκτονική Λογισμικού. Αρχιτεκτονική Συστήματος Λογισμικού Η Αρχιτεκτονική περιγράφει τη γενική στατική δομή του συστήματος, τα βασικά δομικά του στοιχεία,
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
1 ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ Μηχανογράφηση υπηρεσιών καταστημάτων Self-Video TMHMA ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τ.Ε.Ι. ΣΕΡΡΩΝ.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Χειρισμός Χρόνου και Μεθοδολογίες Προσομοίωσης
Κατανεμημένα Συστήματα
Κλάσεις και αντικείμενα
Wrapper Classes, Abstract Classes and Interfaces
Αρχές Διοίκησης και Διαχείρισης Έργων
Ανάπτυξη Μοντέλων Διακριτών Συστημάτων Μέρος Β
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
ΤΟΠΟΛΟΓΙΕΣ KAI ΜΟΝΑΔΕΣ ΔΙΑΣΥΝΔΕΣΗΣ ΤΟΠΙΚΩΝ ΔΙΚΤΥΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Γιώργος Θάνος Παρασκευή 5 Δεκεμβρίου 2008
Κεφάλαιο 7: Διαδικτύωση-Internet
Λύσεις Ασφάλειας στο Επίπεδο Διασύνδεσης
Activity Diagrams.
Το μοντέλο πελάτη - εξυπηρετητή
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εφαρμογή Μεθοδολογίας ICONIX
ΕΙΣΑΓΩΓΗ ΣΤΗ UML ΕΙΣΑΓΩΓΗ ΣΤΗ UML.
Το υπολογιστικό σύστημα σαν ενιαίο σύνολο
Μεταγράφημα παρουσίασης:

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

Οι Τεχνοτροπίες –Ροής Δεδομένων (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)

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

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

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

Οι Τεχνοτροπίες –Ροής Δεδομένων (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)

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

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

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

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

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

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

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

Επικοινωνιακό Διάγραμμα 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

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

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

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

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

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

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

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

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

Παράδειγμα Συστήματος με Τεχνοτροπία Μαυροπίνακα Knowledge Sources / Problem Solving Strategies …………….