ΔημοσίΡυση / ΣυνδρομΞ� (Publish / Subscribe)

Ξ— ΔημοσίΡυση / ΣυνδρομΞ� αποτΡλΡί Ξ­Ξ½Ξ± σχΞ�ΞΌΞ± αλληλΡπίδρασης μΡταξύ δύο οντοτΞ�των, τους Ξ΅ΞΊΞ΄ΟŒΟ„Ξ΅Ο‚ (publishers), που δημοσιοποιούν Ξ­Ξ½Ξ± αντικΡίμΡνο, ΞΊΞ±ΞΉ τους συνδρομητές (subscribers), που γίνονται συνδρομητές σΡ δημοσιοποιημένα αντικΡίμΡνα. Ξ ΞΉΞΏ συγκΡκριμένα, το σχΞ�ΞΌΞ± της ΔημοσίΡυσης / ΣυνδρομΞ�Ο‚ παρέχΡι στους συνδρομητές την Ξ΄Ο…Ξ½Ξ±Ο„ΟŒΟ„Ξ·Ο„Ξ± Ξ½Ξ± Ρκφράσουν το Ρνδιαφέρον τους Ξ³ΞΉΞ± Ξ­Ξ½Ξ± Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ‚ Ξ� Ξ­Ξ½Ξ± Ο€ΟΟŒΟ„Ο…Ο€ΞΏ Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½ έτσι ΟŽΟƒΟ„Ξ΅ Ξ½Ξ± Ριδοποιηθούν στη συνέχΡια Ξ³ΞΉΞ± κάποιο Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ‚, που έχΡι παραχθΡί Ξ±Ο€ΟŒ Ξ­Ξ½Ξ±Ξ½ Ξ΅ΞΊΞ΄ΟŒΟ„Ξ·, το οποίο ταιριά΢Ρι ΞΌΞ΅ το καταχωρημένο Ρνδιαφέρον τους. ΜΡ άλλα λόγια, ΞΏΞΉ παραγωγοί (δηλαδΞ� ΞΏΞΉ Ξ΅ΞΊΞ΄ΟŒΟ„Ξ΅Ο‚) δημοσιοποιούν πληροφορίΡς σΡ Ξ­Ξ½Ξ±Ξ½ υπΡύθυνο Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½ (event manager) -- Ξ­Ξ½Ξ± κομμάτι λογισμικού / ΡφαρμογΞ�Ο‚ στο διαδίκτυο -- ΞΊΞ±ΞΉ ΞΏΞΉ καταναλωτές (δηλαδΞ� ΞΏΞΉ συνδρομητές) γίνονται συνδρομητές σΡ πληροφορίΡς που Ρπιθυμούν Ξ½Ξ± λάβουν Ξ±Ο€ΟŒ τον υπΡύθυνο Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½. ΀υπικά, ΞΏΞΉ πληροφορίΡς Ξ΄Ξ·Ξ»ΟŽΞ½ΞΏΞ½Ο„Ξ±ΞΉ ΞΌΞ΅ τον όρο Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ‚ ΞΊΞ±ΞΉ Ξ· πράξη της παράδοσΞ�Ο‚ τους ΞΌΞ΅ τον όρο Ριδοποίηση [28].

Figure: Ξ₯πηρΡσία Ριδοποίησης Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½ στο πλαίσιο Ξ΅Ξ½ΟŒΟ‚ συστΞ�ματος ΔημοσίΡυσης / ΣυνδρομΞ�Ο‚.
Image event_service

΀ο Ξ²Ξ±ΟƒΞΉΞΊΟŒ μοντέλο συστΞ�ματος Ξ³ΞΉΞ± ΞΌΞ―Ξ± αλληλΡπίδραση δημοσίΡυσης / συνδρομΞ�Ο‚ (ΣχΞ�ΞΌΞ± 2.10) βασί΢Ρται σΡ ΞΌΞ―Ξ± υπηρΡσία Ριδοποίησης Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½ (event notification service) παρέχοντας αποθΞ�κΡυση ΞΊΞ±ΞΉ διαχΡίριση των ΟƒΟ…Ξ½Ξ΄ΟΞΏΞΌΟŽΞ½ ΞΊΞ±ΞΉ της αποδοτικΞ�Ο‚ παράδοσης των Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½. Μία τέτοια υπηρΡσία αναπαριστά Ξ­Ξ½Ξ± Ο†Ο…ΟƒΞΉΞΊΟŒ διαμΡσολαβητΞ� μΡταξύ των Ξ΅ΞΊΞ΄ΞΏΟ„ΟŽΞ½, Ξ΄ΟΟŽΞ½Ο„Ξ±Ο‚ ως Ο€Ξ±ΟΞ±Ξ³Ο‰Ξ³ΟŒΟ‚ Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½, ΞΊΞ±ΞΉ των ΟƒΟ…Ξ½Ξ΄ΟΞΏΞΌΞ·Ο„ΟŽΞ½, Ξ΄ΟΟŽΞ½Ο„Ξ±Ο‚ ως καταναλωτΞ�Ο‚ Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½. Οι συνδρομητές καταχωρούν το Ρνδιαφέρον τους σΡ Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ξ± ΞΌΞ΅ την ΞΊΞ»Ξ�ση της λΡιτουργίας $ subscribe()$ που προσφέρΡι Ξ· υπηρΡσία Ριδοποίησης Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½, χωρίς Ξ½Ξ± γνωρί΢ουν τις πηγές των Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½ Ξ±Ο…Ο„ΟŽΞ½. Ξ— συνδρομΞ� ως πληροφορία αποθηκΡύΡται στην υπηρΡσία, Ρνώ δΡν προωθΡίται ούτΡ γίνΡται γνωστΞ� στους Ξ΅ΞΊΞ΄ΟŒΟ„Ξ΅Ο‚. Ξ— συμμΡτρικΞ� λΡιτουργία της συνδρομΞ�Ο‚, Ξ· $ unsubscribe()$ τΡρματί΢Ρι ΞΌΞ―Ξ± συνδρομΞ�.

Για την παραγωγΞ� Ξ΅Ξ½ΟŒΟ‚ Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„ΞΏΟ‚, Ξ­Ξ½Ξ±Ο‚ Ξ΅ΞΊΞ΄ΟŒΟ„Ξ·Ο‚ καλΡί την λΡιτουργία $ publish()$ που προσφέρΡι Ξ· υπηρΡσία Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½. Στη συνέχΡια, Ξ· υπηρΡσία διαδίδΡι το Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ‚ στους ΟƒΟ‡Ξ΅Ο„ΞΉΞΆΟŒΞΌΞ΅Ξ½ΞΏΟ…Ο‚ συνδρομητές· έτσι μπορΡί Ξ½Ξ± δρα ως πληρΡξούσιος των ΟƒΟ…Ξ½Ξ΄ΟΞΏΞΌΞ·Ο„ΟŽΞ½. ΚάθΡ συνδρομητΞ�Ο‚ ΞΈΞ± ΡιδοποιηθΡί Ξ³ΞΉΞ± ΡκΡίνα τα Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ξ± που ταιριά΢ουν στις καταχωρημένΡς προτιμΞ�σΡις του. Επίσης, ΞΏΞΉ Ξ΅ΞΊΞ΄ΟŒΟ„Ξ΅Ο‚ έχουν τη Ξ΄Ο…Ξ½Ξ±Ο„ΟŒΟ„Ξ·Ο„Ξ± Ξ½Ξ± διαφημίσουν Ξ­Ξ½Ξ± Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ‚ πριν την δημοσιοποίησΞ� του ΞΊΞ±Ξ»ΟŽΞ½Ο„Ξ±Ο‚ την λΡιτουργία $ advertise()$ . ΑυτΞ� Ξ· λΡιτουργία Ρίναι χρΞ�σιμη, Ξ΄ΞΉΟŒΟ„ΞΉ δίνΡι τη Ξ΄Ο…Ξ½Ξ±Ο„ΟŒΟ„Ξ·Ο„Ξ±:

  1. στην υπηρΡσία διαχΡίρισης Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½ Ξ½Ξ± προσαρμοσθΡί στην αναμΡνόμΡνη ροΞ� των Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½.
  2. στους συνδρομητές Ξ½Ξ± μάθουν Ο€ΟŒΟ„Ξ΅ Ξ­Ξ½Ξ±Ο‚ συγκΡκριμένος τύπος πληροφορίας ΞΈΞ± Ρίναι διαθέσιμος.

Ξ— αρχιτΡκτονικΞ� του συστΞ�ματος LibraRing προσφέρΡι μόνο τις δύο βασικές λΡιτουργίΡς, $ publish()$ , $ subscribe()$ , ΟŒΞΌΟ‰Ο‚ Ρίναι Ρύκολο Ξ½Ξ± ΡπΡκταθΡί ΞΊΞ±ΞΉ ΞΌΞ΅ τις λΡιτουργίΡς που παρουσιάστηκαν παραπάνω.

Figure: ΑποσύνδΡση Ο‡ΟŽΟΞΏΟ… στα πλαίσια Ξ΅Ξ½ΟŒΟ‚ συστΞ�ματος παροχΞ�Ο‚ Ο…Ο€Ξ·ΟΞ΅ΟƒΞΉΟŽΞ½ ΔημοσίΡυσης / ΣυνδρομΞ�Ο‚.
Image space_decoupling

ΑυτΞ� Ξ· υπηρΡσία διαχΡίρισης Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½ απλοποιΡί την διαδικασία Ρπικοινωνίας μΡταξύ των Ξ΅ΞΊΞ΄ΞΏΟ„ΟŽΞ½ ΞΊΞ±ΞΉ των ΟƒΟ…Ξ½Ξ΄ΟΞΏΞΌΞ·Ο„ΟŽΞ½ Ξ­Ξ½Ξ± Ο‡Ξ±ΟΞ±ΞΊΟ„Ξ·ΟΞΉΟƒΟ„ΞΉΞΊΟŒ το οποίο Ρίναι Ξ³Ξ½Ο‰ΟƒΟ„ΟŒ ΞΌΞ΅ τον όρο αποσύνδΡση (decoupling). Ξ— αποσύνδΡση που προσφέρΡι Ξ±Ο…Ο„Ξ� Ξ· υπηρΡσία μπορΡί Ξ½Ξ± αποσυντΡθΡί σΡ τρΡις διαστάσΡις:

Figure: ΑποσύνδΡση Ο‡ΟΟŒΞ½ΞΏΟ… στα πλαίσια Ξ΅Ξ½ΟŒΟ‚ συστΞ�ματος παροχΞ�Ο‚ Ο…Ο€Ξ·ΟΞ΅ΟƒΞΉΟŽΞ½ ΔημοσίΡυσης / ΣυνδρομΞ�Ο‚.
Image time_decoupling

  1. ΑποσύνδΡση Ο‡ΟŽΟΞΏΟ… (ΣχΞ�ΞΌΞ± 2.11): ΞΏΞΉ ΞΏΞ½Ο„ΟŒΟ„Ξ·Ο„Ξ΅Ο‚ που αλληλΡπιδρούν δΡν χρΡιά΢Ρται Ξ½Ξ± γνωρί΢ουν Ξ· ΞΌΞ―Ξ± την άλλη. Οι Ξ΅ΞΊΞ΄ΟŒΟ„Ξ΅Ο‚ δημοσιοποιούν κάποιο Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ‚ μέσω της παραπάνω υπηρΡσίας ΞΊΞ±ΞΉ ΞΏΞΉ συνδρομητές Ριδοποιούνται έμμΡσα Ξ±Ο€ΟŒ Ξ±Ο…Ο„Ξ�. ΞŸΟΟ„Ξ΅ ΞΏΞΉ Ξ΅ΞΊΞ΄ΟŒΟ„Ξ΅Ο‚, ούτΡ ΞΏΞΉ συνδρομητές γνωρί΢ουν Ο€ΞΏΞΉΟŒΟ‚/ποιοί έχΡι/έχουν γίνΡι συνδρομητΞ�Ο‚(Ξ­Ο‚) σΡ/δημοσιοποιΞ�σΡι κάποιο Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ‚.
  2. ΑποσύνδΡση Ο‡ΟΟŒΞ½ΞΏΟ… (ΣχΞ�ΞΌΞ± 2.12): ΞΏΞΉ ΞΏΞ½Ο„ΟŒΟ„Ξ·Ο„Ξ΅Ο‚ που αλληλΡπιδρούν δΡν χρΡιά΢Ρται Ξ½Ξ± συμμΡτέχουν ΡνΡργά την ίδια χρονικΞ� στιγμΞ�. Ξ ΞΉΞΏ συγκΡκριμένα, ΞΏ Ξ΅ΞΊΞ΄ΟŒΟ„Ξ·Ο‚ μπορΡί Ξ½Ξ± δημοσιοποιΞ�σΡι κάποια Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ξ±, Ρνώ ΞΏ συνδρομητΞ�Ο‚ Ξ½Ξ± Ρίναι αποσυνδΡδΡμένος Ξ±Ο€ΟŒ την υπηρΡσία, ΞΊΞ±ΞΉ αντίστροφα, ΞΏ συνδρομητΞ�Ο‚ μπορΡί Ξ½Ξ± ΡιδοποιηθΡί Ξ±Ο€ΟŒ την υπηρΡσία Ξ³ΞΉΞ± κάποιο Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ‚, Ρνώ ΞΏ Ο€ΟΞ±Ξ³ΞΌΞ±Ο„ΞΉΞΊΟŒΟ‚ Ξ΅ΞΊΞ΄ΟŒΟ„Ξ·Ο‚ αυτού Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„ΞΏΟ‚ Ξ½Ξ± Ρίναι αποσυνδΡδΡμένος.
  3. ΑποσύνδΡση συγχρονισμού (ΣχΞ�ΞΌΞ± 2.13): Οι Ξ΅ΞΊΞ΄ΟŒΟ„Ξ΅Ο‚ δΡν αποτρέπονται Ξ±Ο€ΟŒ την πολλαπλΞ� δημοσιοποίηση Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½, Ρνώ ΞΏΞΉ συνδρομητές μπορούν Ξ½Ξ± Ριδοποιούνται Ξ³ΞΉΞ± την ύπαρξη Ξ΅Ξ½ΟŒΟ‚ Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„ΞΏΟ‚ που ικανοποιΡί τα Ρνδιαφέροντά τους ασύγχρονα Ξ΅Ξ½ΟŒΟƒΟ‰ πραγματοποιούν κάποιΡς άλλΡς ΡνέργΡιΡς ασυσχέτιστΡς ΞΌΞ΅ τη συνδρομΞ� τους. Ξ— παραγωγΞ� ΞΊΞ±ΞΉ Ξ· κατανάλωση των Ξ³Ξ΅Ξ³ΞΏΞ½ΟŒΟ„Ο‰Ξ½ δΡν γίνΡται στην κύρια ροΞ� Ρλέγχου των Ξ΅ΞΊΞ΄ΞΏΟ„ΟŽΞ½ ΞΊΞ±ΞΉ των ΟƒΟ…Ξ½Ξ΄ΟΞΏΞΌΟŽΞ½ ΞΊΞ±ΞΉ έτσι δΡν πραγματοποιούνται σύγχρονα.

Figure: ΑποσύνδΡση συγχρονισμού στα πλαίσια Ξ΅Ξ½ΟŒΟ‚ συστΞ�ματος παροχΞ�Ο‚ Ο…Ο€Ξ·ΟΞ΅ΟƒΞΉΟŽΞ½ ΔημοσίΡυσης / ΣυνδρομΞ�Ο‚.
Image synch_decoupling

Αποσυνδέοντας την παραγωγΞ� ΞΊΞ±ΞΉ την κατανάλωση των Ο€Ξ»Ξ·ΟΞΏΟ†ΞΏΟΞΉΟŽΞ½ Ξ±Ο…Ο„ΟŒ που πΡτυχαίνΡται Ρίναι Ξ· αύξηση της κλιμάκωσης του συστΞ�ματος Ξ»ΟŒΞ³Ο‰ της αφαίρΡσης των ΟΞ·Ο„ΟŽΞ½ ΡξαρτΞ�σΡων μΡταξύ των ΟƒΟ…ΞΌΞΌΞ΅Ο„Ξ΅Ο‡ΟŒΞ½Ο„Ο‰Ξ½ στην αλληλΡπίδραση.



Charalampos Nikolaou 2008-04-02