title: Υπηρεσίες εκδότη και συνδρομητή σε εφαρμογές διαδικτύου: Μια συγκριτική μελέτη 
title: Publication and subscription services in web applications : Α comparative study
Creators: name: Λαζιδης Αποστολος
Publisher: name: Technical University of Crete
Year: 2021

description: Η υπηρεσία "Εκδότη - Συνδρομητή" (Publish - Subscribe) έχει σχεδιαστεί για να διευκολύνει την επικοινωνία μεταξύ εφαρμογών ή χρηστών με εφαρμογές στο Διαδίκτυο. Η υπηρεσία σχεδιάζεται και αναπτύσσεται ως Υπηρεσιοκεντρική Αρχιτεκτονική που αποτελείται από τρεις επιμέρους υπηρεσίες. Τον εκδότη, τον συνδρομητή και τον διαμεσολαβητή. Ο εκδότης είναι η υπηρεσία η οποία στέλνει μηνύματα, ενώ ο συνδρομητής είναι η υπηρεσία που τα λαμβάνει. Ένα σύστημα Εκδότη - Συνδρομητή μπορεί να υποστηρίζει επιμέρους υπηρεσίες. Αυτές είναι ένας διαμεσολαβητής, μια υπηρεσία για τη δημοσίευση μηνυμάτων, υπηρεσίες εγγραφής και απεγγραφής των συνδρομητών και μια υπηρεσία για αυτόματη ενημέρωση σε περίπτωση εγγραφής. Παρόλο αυτά, ένα σύστημα Εκδότη - Συνδρομητή μπορεί να αποτελείται και από άλλες υπηρεσίες και μπορεί να προσφέρει επιπλέον λειτουργίες. Για παράδειγμα, ένα σύστημα μπορεί να διαθέτει ουρές, αρχεία καταγραφής ή βάσεις δεδομένων για την αποθήκευση των μηνυμάτων. Επίσης, μπορεί να διαθέτει υπηρεσίες αναπαραγωγής των μηνυμάτων, υπηρεσίες για τη διαχείριση των συνδεδεμένων δεδομένων, υπηρεσίες “ομοσπονδιών” (federation), υπηρεσίες ασφαλείας, υπηρεσίες για την επεξεργασία μηνυμάτων σε πραγματικό χρόνο κλπ. Ακόμη, ορίζει τη μορφή κωδικοποίησης για τα μηνύματα που θα δέχεται, το πρωτόκολλο με το οποίο θα επικοινωνούν οι εκδότες και οι συνδρομητές, το τρόπο με τον οποίο θα δέχονται οι συνδρομητές τα μηνύματα (Push-Pull model) κ.α. Τα συστήματα Εκδότη - Συνδρομητή διαφέρουν μεταξύ τους γιατί δεν υποστηρίζουν όλες τις παραπάνω υπηρεσίες και λειτουργίες. Επιπλέον, κάποιες από αυτές είναι προαιρετικές και στην επιλογή του χρήστη αν θα τις χρησιμοποιήσει. Τα συστήματα που μελετήθηκαν είναι το Orion-LD Context Broker, Scorpio Context Broker, Stellio Context Broker, Apache Kafka, RabbitMQ, Pushpin και Faye. Η παρούσα εργασία έχει ως στόχο να βοηθήσει στην επιλογή του κατάλληλου συστήματος Εκδότη - Συνδρομητή. Προκειμένου να επιτευχθεί αυτό, γίνεται μια σύγκριση της προσφερόμενης λειτουργικότητας κάθε συστήματος (υπηρεσίες και λειτουργίες) και εξετάζεται για κάθε σύστημα Εκδότη - Συνδρομητή ο χρόνος απόκρισης και η δυνατότητα κλιμάκωσης κάτω από συγκεκριμένες παραμέτρους. Όλα τα συστήματα έχουν υλοποιηθεί και η απόδοσή τους έχει μετρηθεί σε συνθήκες κορεσμού δηλαδή τα συστήματα δέχονται χιλιάδες μηνύματα, πολλά από τα οποία εκτελούνται παράλληλα. Τέλος, δίνονται κάποια σενάρια με κριτήρια που σχετίζονται με τις ανάγκες του χρήστη ή τις προδιαγραφές της εφαρμογής. 

description: The Publish - Subscribe service is designed to facilitate communication between applications or users with web applications. The service is designed and developed as a Service-Oriented Architecture (SOA) comprising three individual services. The publisher, the subscriber and the broker. The publishes services sends messages and the subscriber is the service that receives them. A Publish - Subscribe system consists of individual services. These are the broker service, a publish service for posting messages, subscribe and unsubscribe services and a notification service for automatic notifications in case of subscription. Although a Publish - Subscribe system may support additional operations. For example, a system may feature queues, log files or databases for storing messages. It can also have a replication manager, a context manager for linked data, a federation service, security services, stream api etc. Additionally, a Publish - Subscribe system defines message format, communication Protocol, push or pull message delivery etc. Publish - Subscribe systems are different from each other, because they do not support all the above services and operations. In addition, some of them are optional and in the user's choice to activate them. The dissertation provides a framework and criteria for selecting the Publication - Subscription service that best suits the requirements of an application. The systems studied are Orion-LD Context Broker, Scorpio Context Broker, Stellio Context Broker, Apache Kafka, RabbitMQ, Pushpin and Faye. All systems are compared based on features and operations supported. The response time and scalability capacity of all systems is studied. All systems have been implemented and their performance is measured under stress (i.e. systems accept thousands of messages, many of which are sent concurrently). Finally, the criteria for selecting an implementation given the conditions of an application are discussed.