openSUSE:Hermes Architecture

Μετάβαση σε: πλοήγηση, αναζήτηση


Αυτή η σελίδα εξηγεί την αρχιτεκτονική του συστήματος Ερμής (Hermes).

Αν χρειάζεστε επιπλέον βοήθεια (και πιθανότατα να χρειαστείτε ;-) μη διστάσετε να ρωτήσετε στο IRC στο freenode στο κανάλι των boosters #opensuse-boosters.


Αρχιτεκτονική

Για να εκπληρωθούν οι απαιτήσεις, χρειάζονται τα ακόλουθα λειτουργικά τμήματα:

Hermes arch overview.png

  • Το Άρθρωμα Προτιμήσεων Χρήστη (User Preferences Module) αποθηκεύει τις διαφορετικές επιλογές του χρήστη σχετικά με ποιες ενημερώσεις θέλει αυτός να λαμβάνει. Με αυτό το κομμάτι του συστήματος, ο χρήστης ελέγχει το πώς τα μηνύματα θα τον προσεγγίζουν. Τροφοδοτεί την πληροφορία του σε σχεδόν όλα τα άλλα τμήματα.
  • Η Αποθήκη (Storage) αποτελεί τη διεπαφή για τα εισερχόμενα μηνύματα και τα αποθηκεύει στη βάση δεδομένων ή τα μεταφέρει στο Relay αν απαιτείται η άμεση αποστολή τους.
  • Μια Βάση Δεδομένων (Database) κρατά τα μηνύματα μέχρι την παράδοσή τους. Αφού τα δεδομένα έχουν κάποια δομή χρησιμοποιείται μια σχεσιακή βάση δεδομένων.
  • Το Relay πυροδοτείται με βάση την ώρα και ελέγχει αν υπάρχουν μηνύματα προς παράδοση. Αν ναι συναρμολογεί τα μηνύματα αν αυτό απαιτείται (όπως με τις συνόψεις) και τα παρέχει στον πράκτορα για παράδοση.
  • Οι Πράκτορες (Agents) είναι ειδικευμένα αρθρώματα μεταφοράς που παραδίδουν μηνύματα χρησιμοποιώντας διαφορετικές τεχνολογίες.

Αυτά είναι τα λογικά κομμάτια κατασκευής. Για περισσότερες λεπτομέρειες διαβάστε σχετικά με τα υποσυστήματα του Ερμή.


Διεπαφές

Βασικά υπάρχουν τέσσερα σημεία αλληλεπίδρασης με το σύστημα:

  • Αποθήκευση Μηνυμάτων μέσω μιας διεπαφής HTTP CGI (αργότερα REST)
  • Αλληλεπίδραση χρήστη για ρύθμιση προτιμήσεων και ανάγνωση μηνυμάτων μέσω μιας διαδικτυακής εφαρμογής βασισμένη στο rails
  • Μια διαχειριστική διεπαφή για διαχειριστικές λειτουργίες
  • Παράδοση μηνυμάτων μέσω των διάφορων πρακτόρων

Ακολουθούν μερικές λεπτομέρειες για κάθε μια.

Αποθήκευση μηνυμάτων

Άλλες εφαρμογές που θέλουν να τροφοδοτήσουν τις ενημερώσεις τους στον Ερμή μπορούν να αποθηκεύσουν ενημερώσεις στο σύστημα μέσω της βασισμένης στο HTTP CGI διεπαφής.

Έννοια: Η διεπαφή τύπου REST για τον Ερμή

Η διεπαφή REST δεν έχει ακόμα υλοποιηθεί αλλά ορίστε η όλη ιδέα.

Πελάτες μπορούν να στείλουν ενημερώσεις στον Ερμή μέσω ενός αιτήματος POST στο

http://hermes.opensuse.org/<username>/[<notificationtype>]

Όλες οι παράμετροι προστίθενται στο αίτημα τύπου POST.

Για να κάνετε κάποιο ερώτημα σε ήδη υπάρχουσες ενημερώσεις από την αποθήκη του Ερμή (Hermes Storage) ένα αίτημα GET στο ακόλουθο url επιστρέφει τα αποθηκευμένα μηνύματα:

http://hermes.opensuse.org/<username>/[<notificationtype>]

Τύποι Ενημερώσεων

Ο τύπος ενημερώσεων είναι ένα ειδικό στοιχείο που χρησιμοποιείται για να αξιολογήσει το είδος της ενημέρωσης. Πρέπει να είναι παράμετρος του αιτήματος CGI POST. Βασικά ο τύπος μηνύματος είναι ένα αλφαριθμητικό ελεύθερα επιλεγόμενο από τον πελάτη που στέλνει την ενημέρωση. Δεν χρειάζεται να ανησυχεί για το αν υπάρχει ο τύπος της ενημέρωσης ή έχει χρησιμοποιηθεί στο παρελθόν. Αν ένας τύπος ενημέρωσης δεν είναι γνωστός στον Ερμή, ο χρονοπρογραμματισμός της ενημέρωσης και ο τύπος της παράδοσης χειρίζονται από κάποια προεπιλογή του χρήστη.

Σε αργότερες διαθέσεις του Ερμή (Hermes) μπορεί να δίδονται τύποι υπομηνυμάτων που να κληρονομούν τις γονεϊκές ρυθμίσεις.


Πράκτορες

Υπάρχουν διαφορετικοί πράκτορες που παραδίδουν τα μηνύματα σύμφωνα με τους χρονικούς περιορισμούς που ορίζονται για τον τύπο του εκάστοτε μηνύματος από τον χρήστη. Ο τύπος παράδοσης (μέσω μηνύματος ηλεκτρονικού ταχυδρομείου, μέσω μηνύματος Jabber κλπ.) είναι επίσης ζήτημα προς ρύθμιση που γίνεται μέσα από το Starship, το άρθρωμα για τις προτιμήσεις του χρήστη. Οι Πράκτορες εκκινούνται από το Relay για να κάνουν την παράδοση των μηνυμάτων.


Η Δικτυακή Εφαρμογή Χρήστη Starship

Η εφαρμογή ιστού του Ερμή που ονομάζεται Starship εξυπηρετεί δύο σκοπούς: Τη διαχείριση των προτιμήσεων χρήστη και την εμφάνιση της λίστας των μηνυμάτων. Για τον Ερμή του openSUSE η εγκατάσταση του Starship φιλοξενείται στο http://hermes.opensuse.org.

Αυτό το άρθρωμα επιτρέπει στο χρήστη να επεξεργαστεί τις προσωπικές του ρυθμίσεις. Δηλαδή το πώς ένα μήνυμα συγκεκριμένου τύπου παραδίδεται και κάτω από ποιους χρονικούς περιορισμούς. Επιπρόσθετα μπορούν να ρυθμιστούν φίλτρα για τον επιπλέον αριθμητικό περιορισμό των μηνυμάτων προς παράδοση.

Δείτε την τεκμηρίωση χρήστη για το Starship: τεκμηρίωση χρήσης του Ερμή

Το Starship επίσης εμφανίζει τη λίστα των μηνυμάτων με τέτοιο τρόπο, ώστε να ταξινομούνται, να φλιτράρονται ομαλά.