Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Σχετικά έγγραφα
Κατανεμημένα Συστήματα με Java. Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 17: Πρωτόκολλα μετάδοσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 2: Εφαρμογές πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 20: Υπηρεσίες καλύτερης προσπάθειας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 7: Θεωρία πληροφορίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Δομημένος Προγραμματισμός

Τεχνολογία Πολυμέσων. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 15: Συγχρονισμός πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Εισαγωγή στην Επιστήμη των Υπολογιστών

Τεχνολογία Πολυμέσων. Ενότητα # 19: Τηλεδιάσκεψη Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

13 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Μοντελοποίηση Λογικών Κυκλωμάτων

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Εισαγωγή στα Πληροφοριακά Συστήματα

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 6: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 10: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΜΑΘΗΜΑ: Δίκτυα Υψηλών Ταχυτήτων

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 1: Εισαγωγικό Μάθημα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Εισαγωγή στις Βάσεις Δεδομζνων II

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Κινητά και Διάχυτα Συστήματα. Ενότητα # 4: Απομακρυσμένα αντικείμενα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή στα Πληροφοριακά Συστήματα

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Αντικειμενοστρεφής Προγραμματισμός

Κατανεμημένα Συστήματα με Java. Ενότητα # 16: Κατανεμημένα συστήματα αντικειμένων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 1: Ορισμοί βασικών εννοιών: Μια πρώτη μοντελοποίηση. Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Αυτοματοποιημένη χαρτογραφία

Τεχνολογία Λογισμικού

Τεχνολογία Πολυμέσων. Ενότητα # 22: Δίκτυα ATM Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Λογιστικές Εφαρμογές Εργαστήριο

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΜΑΘΗΜΑ: Ηλεκτρονικά Ισχύος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Ιστορία της μετάφρασης

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Δομημένος Προγραμματισμός

Τεχνολογία Πολυμέσων. Ενότητα # 12: Κωδικοποίηση βίντεο: H.26x Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

ΜΑΚΡΟΟΙΚΟΝΟΜΙΚΗ Ενότητα 1: Εισαγωγή: Το αντικείμενο της Μακροοικονομικής Η έννοια και του ΑΕΠ Ονομαστικό και πραγματικό ΑΕΠ

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Διδακτική Φυσικών Επιστημών στην Προσχολική Εκπαίδευση

Ενδεικτικές λύσεις ασκήσεων

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Τεχνολογία Πολυμέσων. Ενότητα # 5: Εικόνα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Οδηγίες Οργάνωσης Μαθήματος στην Ιδρυματική πλατφόρμα του open e class. Σύνταξη: MY-AOC

{ int a = 5; { int b = 7; a = b + 3;

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Διδακτική Πληροφορικής

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 8 η : Γραφήματα

Συστήματα Αναμονής. Ενότητα 6: Θεωρία Ουρών. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Transcript:

Κατανεμημένα Συστήματα Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Οικονομικό Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Οι εικόνες προέρχονται από το βιβλίο «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3 η έκδοση, 2011, Εκδόσεις Κλειδάριθμος. 3

Σκοποί ενότητας Κατανόηση της έννοιας και των εφαρμογών του μηνυματοστρεφούς ενδιάμεσου λογισμικού. Εξοικείωση με μια πρότυπη διεπαφή (υπηρεσία μηνυμάτων της Java) και ένα πρότυπο πρωτόκολλο (προηγμένο πρωτόκολλο αναμονής μηνυμάτων) για μηνυματοστρεφές ενδιάμεσο λογισμικό. 4

Περιεχόμενα ενότητας Εισαγωγή Υπηρεσία μηνυμάτων της Java Προηγμένο πρωτόκολλο αναμονής μηνυμάτων Άλλες προσεγγίσεις 5

Εισαγωγή Μάθημα: Κατανεμημένα Συστήματα, Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Τι είναι το MOM; (1 από 4) Μηνυματοστρεφές ενδιάμεσο λογισμικό Message Oriented Middleware (MOM) Ασύγχρονη αλλά αξιόπιστη επικοινωνία Ανταλλαγή μηνυμάτων μεταξύ πελατών Παραγωγοί ή αποστολείς Καταναλωτές ή παραλήπτες Επικοινωνία μέσω μεσίτη (broker) 7

Τι είναι το MOM; (2 από 4) Χαλαρή σύνδεση πελατών Δεν γνωρίζουν ο ένας για τον άλλο Διαφορετικές πλατφόρμες και γλώσσες Ασύγχρονη επικοινωνία Ο αποστολέας στέλνει μήνυμα και τερματίζει Ο παραλήπτης το παραλαμβάνει αργότερα Τα μηνύματα αποθηκεύονται σε ουρές 8

Τι είναι το MOM; (3 από 4) Μεσίτης Παραγωγός Ουρά 1 Καταναλωτής Παραγωγός Ουρά 2 Καταναλωτής Παραγωγός Ουρά 3 Καταναλωτής Αξιόπιστη παράδοση μηνυμάτων Με διάφορα μοντέλα παράδοσης Δρομολόγηση μηνυμάτων Με βάση επικεφαλίδα ή περιεχόμενο Επεξεργασία μηνυμάτων από μεσίτη 9

Τι είναι το MOM; (4 από 4) Υπάρχουν πολλές υλοποιήσεις MOM Διάφορα πρωτόκολλα και διεπαφές Περιορισμένη διαλειτουργικότητα Τυποποιημένες διεπαφές Παράδειγμα: JMS Τυποποιημένα πρωτόκολλα Παράδειγμα: AMQP 10

Υπηρεσία μηνυμάτων της Java Μάθημα: Κατανεμημένα Συστήματα, Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Στόχος του JMS Υπηρεσία μηνυμάτων της Java Java Messaging Service (JMS) Περιλαμβάνεται στη Java Enterprise Edition Προδιαγράφει API για συστήματα MOM Δεν περιλαμβάνει υλοποίηση του API Το API υλοποιείται από έναν πάροχο JMS Επιτρέπει σε πελάτες JMS να επικοινωνούν Παραγωγοί/εκδότες και καταναλωτές/συνδρομητές 12

Μοντέλα παράδοσης (1 από 2) Μοντέλο σημείο-προς-σημείο Κάθε μήνυμα παραδίδεται σε έναν παραλήπτη Το μήνυμα στέλνεται σε συγκεκριμένη ουρά Θα το λάβει ένας καταναλωτής της ουράς Ανεξάρτητα από το πόσοι υπάρχουν Αποθηκεύεται αν δεν υπάρχει καταναλωτής Ασύγχρονη επικοινωνία πελατών 13

Μοντέλα παράδοσης (2 από 2) Μοντέλο δημοσίευσης/συνδρομής Το μήνυμα δημοσιεύεται σε ένα θέμα Το λαμβάνουν όλοι όσοι ενδιαφέρονται Πρέπει όμως να είναι ήδη ενεργοί Εκτός αν έχουν διαρκή συνδρομή στο θέμα Διαρκείς συνδρομές: είναι πάντα ενεργές Ακόμη κι όταν ο συνδρομητής δεν είναι Όταν γίνουν ενεργοί λαμβάνουν τα μηνύματα 14

Μηνύματα JMS (1 από 3) Δομή μηνυμάτων JMS Επικεφαλίδα, ιδιότητες, σώμα Μόνο η επικεφαλίδα είναι υποχρεωτική Επικεφαλίδα μηνύματος Ένα ή περισσότερα πεδία Όλα τα μηνύματα υποστηρίζουν τα ίδια πεδία Χρήση για δρομολόγηση και αναγνώριση 15

Μηνύματα JMS (2 από 3) Ιδιότητες μηνύματος Ζεύγη ονόματος τιμής Ουσιαστικά επεκτείνουν την επικεφαλίδα Μπορούν να χρησιμοποιηθούν σε φίλτρα Σώμα μηνύματος Και αυτό προαιρετικό Μπορεί να έχει διάφορους τύπους 16

Μηνύματα JMS (3 από 3) Σώμα μηνύματος Ρεύμα: ακολουθία τύπων της Java Χάρτης αντιστοίχισης Ζεύγη ονόματος τιμής τύπων της Java Διαβάζονται και με βάση το όνομα Κείμενο: συμβολοσειρά Αντικείμενο: σειριακοποιημένο αντικείμενο Δυφιοσυλλαβές: ακολουθία byte χωρίς ερμηνεία 17

Επιλογείς μηνυμάτων Επιπλέον κριτήρια για παραλαβή Ορίζονται από έναν υποψήφιο παραλήπτη Αναφέρονται σε πεδία/ιδιότητες του μηνύματος Εφαρμόζονται στα εισερχόμενα μηνύματα Αν δεν ταιριάζουν, το μήνυμα δεν παραδίδεται 18

Τι δεν είναι το JMS Δεν έχουμε πλήρη διαλειτουργικότητα Ίδια διεπαφή (σε Java) για πολλούς παρόχους Μπορούμε να αλλάξουμε πάροχο εύκολα Πρέπει να μιλάμε όλοι με τον ίδιο πάροχο Διαφορετικοί πάροχοι δεν μιλάνε μεταξύ τους! Αυτό απαιτεί κοινό πρωτόκολλο, όχι κοινό API Υπάρχουν προϊόντα γέφυρες μεταξύ παρόχων 19

Προηγμένο πρωτόκολλο αναμονής μηνυμάτων Μάθημα: Κατανεμημένα Συστήματα, Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Τι είναι το AMQP; Προηγμένο πρωτόκολλο αναμονής μηνυμάτων Advanced message queueing protocol (AMQP) Επικοινωνία διαφορετικών προϊόντων MOM Κοινό μοντέλο συστήματος MOM Κοινό πρωτόκολλο επικοινωνίας Μοντέλο AMQP Ορίζει τις οντότητες που εμπλέκονται στο MOM Επώνυμες και ανώνυμες οντότητες 21

Μηνύματα AMQP Μεσίτης Παραγωγός Ανταλλακτήριο Συσχέτιση Καταναλωτής Ουρά μηνυμάτων Μήνυμα: ανώνυμη οντότητα Επικεφαλίδα: περιέχει σύνολο από ιδιότητες Κλειδί δρομολόγησης: βασική ιδιότητα δρομολόγησης Προτεραιότητα: επηρεάζει λήψη μηνυμάτων Διατηρούμενο: πρέπει οπωσδήποτε να παραδοθεί Σώμα: ακολουθία δυαδικών δεδομένων 22

Ουρές AMQP Ουρά μηνυμάτων: επώνυμη οντότητα Αποθηκεύει και διανέμει μηνύματα Αποθήκευση σε μνήμη ή/και δίσκο Σειρά παράδοσης ανάλογα με προτεραιότητα Ιδιότητες ουράς Ιδιωτική/καταμεριζόμενη: ένας/πολλοί καταναλωτές Διαρκής/παροδική: παραμένει ή όχι σε επανεκκίνηση Προσωρινή/μόνιμη: χάνεται ή όχι χωρίς καταναλωτές 23

Ανταλλακτήρια AMQP Ανταλλακτήριο: επώνυμη οντότητα Προωθεί μηνύματα παραγωγών σε ουρές Ιδιότητες ανταλλακτηρίου Διαρκές/παροδικό: παραμένει ή όχι σε επανεκκίνηση Προσωρινό/μόνιμο: χάνεται ή όχι χωρίς ουρές Συσχέτιση: ανώνυμη οντότητα Συνδέει ανταλλακτήριο με ουρά Κλειδί και (προαιρετικά) ορίσματα Διαγράφεται όταν δεν συνδέεται με κάτι 24

Δρομολόγηση (1 από 3) Παρέχονται διάφοροι τύποι δρομολόγησης Εξαρτώνται από τον τύπο ανταλλακτηρίου Πιθανόν και από τις ιδιότητες της συσχέτισης Κλειδί και ορίσματα συσχέτισης Άμεσο ανταλλακτήριο (υποχρεωτικό) Συγκρίνει κλειδί μηνύματος και συσχέτισης Αν ταυτίζονται, προωθεί το μήνυμα Πιθανόν σε πολλές ουρές 25

Δρομολόγηση (2 από 3) Ανταλλακτήριο διασποράς (υποχρεωτικό) Προωθεί το μήνυμα σε όλες τις ουρές Αγνοεί κλειδιά και ιδιότητες Ανταλλακτήριο θεμάτων (προαιρετικό) Σύγκριση δομημένων κλειδιών Το μήνυμα έχει κλειδί της μορφής ww.xx.yy.zz. Το ανταλλακτήριο έχει κλειδί της μορφής *.xx.# *: ένα τυχαίο πεδίο, #: πολλά τυχαία πεδία 26

Δρομολόγηση (3 από 3) Ανταλλακτήριο επικεφαλίδων (προαιρετικό) Σύγκριση επικεφαλίδας και ορισμάτων Δεν χρησιμοποιεί τα κλειδιά Τα ορίσματα των συσχετίσεων ορίζουν: Τα ονόματα πεδίων που πρέπει να υπάρχουν Πιθανόν τον τύπο και την τιμή των πεδίων Αν δεν προσδιορίζονται, τότε αρκεί το όνομα Αν πρέπει να ταιριάζει ένα ή όλα τα πεδία 27

Πρωτόκολλο AMQP Πρωτόκολλο επικοινωνίας πελάτη-μεσίτη Επίπεδο μοντέλου Εντολές που χρησιμοποιούνται στην επικοινωνία Επίπεδο συνόδου Αξιόπιστη μεταφορά εντολών Επίπεδο μεταφοράς Πλαισίωση, πολύπλεξη, παράσταση δεδομένων 28

Άλλες προσεγγίσεις Μάθημα: Κατανεμημένα Συστήματα, Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Πρωτόκολλα MOM (1 από 2) Επεκτάσιμο πρωτόκολλο μηνυμάτων/παρουσίας Extensible messaging/presence protocol (XMPP) Χρήση XML για επικοινωνία Κατάλληλο για πολλές εφαρμογές εκτός MOM Presence, VoIP, messaging Κειμενοστρεφές πρωτόκολλο συνεχούς ροής Streaming text oriented message protocol (STOMP) Χρησιμοποιεί μόνο απλό κείμενο 30

Πρωτόκολλα MOM (2 από 2) ZeroMQ ή 0MQ ή zmq Επικοινωνία χωρίς μεσίτες Υλοποιείται ως βιβλιοθήκη, όχι εξυπηρετητής Αποφεύγει τρίτα σημεία αποτυχίας (μεσίτες) Διεπαφή παρόμοια με των υποδοχών Υποστήριξη σε πολλά περιβάλλοντα και γλώσσες Οι σχεδιαστές θεωρούν το AMQP προβληματικό Ακολούθησαν εντελώς διαφορετική σχεδίαση 31

Τέλος Ενότητας # 11 Μάθημα: Κατανεμημένα Συστήματα, Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής