1.2.5 ΤΟ ΜΟΝΤΕΛΟ ΤΩΝ ΓΕΓΟΝΟΤΩΝ (EVENT MODEL)


Κατά αντιστοιχία με τα αιτήματα των πελατών ο εξυπηρετητής επικοινωνεί με τους πελάτες στέλνοντας γεγονότα (events) στους πελάτες. Τα γεγονότα (events) είναι μηνύματα που δημιουργεί ο εξυπηρετητής σαν άμεσα ή έμμεσα αποτελέσματα κάποιων πράξεων του χρήστη (για παράδειγμα το πάτημα ενός πλήκτρου, η μετακίνηση του ποντικιού κτλ.). Επίσης ο εξυπηρετητής δημιουργεί events για να γνωστοποιήσει στον πελάτη την κάθε μεταβολή της κατάστασης των παραθύρων. Για παράδειγμα ο εξυπηρετητής μπορεί να στείλει σε ένα πελάτη ένα γεγονός "Expose" όταν ένα παράθυρο σχετιζόμενο με τον πελάτη χρειάζεται να επανασχεδιαστεί. Το σύστημα των Χ Windows υποστηρίζει τριάντα τρείς τύπους γεγονότων ενώ προσφέρει επιπλέον και μηχανισμό που επιτρέπει στους πελάτες να ορίσουν δικούς τους ιδιαίτερους τύπους γεγονότων.

Ο εξυπηρετητής στέλνει τα γεγονότα στον πελάτη τοποθετώντας τα σε μία ουρά FIFO (first-in, first-out) που μπορεί να διαβαστεί από τον πελάτη. Κάθε γεγονός αποτελείται από μία δομή δεδομένων (data structure) που περιέχει τον τύπο του γεγονότος, το παράθυρο μέσα στο οποίο έλαβε χώρα το γεγονός και δεδομένα ξεχωριστά για κάθε τύπο γεγονότος.

Οι περισσότερες εφαρμογές που τρέχουν στα Χ Windows είναι σχεδιασμένες έτσι ώστε να περιμένουν να συμβεί ένα γεγονός, στη συνέχεια να ανταποκρίνονται σε αυτό με τις ανάλογες ενέργειες και έπειτα περιμένουν ξανά για το επόμενο γεγονός. Οι εφαρμογές αυτές που λειτουργούν με βάση τα γεγονότα που συμβαίνουν χαρακτηρίζονται ως event-driven (καθοδηγούμενες από τα γεγονότα). Το σύστημα αυτό σε συνδυασμό με τα αιτήματα (requests) που αναφέρθηκαν παραπάνω παρέχουν ένα ισχυρό και ευέλικτο μοντέλο για την ανάπτυξη διαλογικών προγραμμάτων μέσα σε περιβάλλον multi-tasking. Περαιτέρω αναλύση του θέματος γίνεται στο 3ο κεφάλαιο.


[prev] [up] [next] [contents] [index]