Το work with title Publication and subscription services in web applications : Α comparative study by Lazidis Apostolos is licensed under Creative Commons Attribution 4.0 International
Bibliographic Citation
Apostolos Lazidis, "Publication and subscription services in web applications : Α comparative study", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2021
https://doi.org/10.26233/heallink.tuc.89445
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.