Publish Subscribe - Dipartimento di Informatica

CdLM Informatica (DM 270/2004)
Sistemi Distribuiti
Publish Subscribe
Angelastro Sergio
Diomede Antonio
Viterbo Tommaso
Outline

Messaging System

Messaging Benefits

Synchronous and Asynchronous Call Semantics

Peer-to-Peer Comunication

Message Queueing System

Message Oriented Middleware

Observer Design Pattern

Java Messaging Service (JMS)

Implementing Pusblish/Subscribe w/JMS
0/32
Messaging System

La funzionalità di messaggistica è tipicamente fornita da un
sistema software separato chiamato Messaging System o
Message-oriented middleware (MOM).

Il Messaging System coordina e gestisce anche l’invio e la
ricezione dei messaggi. Lo scopo principale del Messaging
System è di inoltrare i messaggi dai computer sender ai
computer receiver in un modello affidabile.

La ragione per cui un Messaging System è necessario per
inoltrare i messaggi da un computer ad un altro è che i
computer e le reti che li connettono sono intrinsecamente
inaffidabili.

Il vantaggio principale del Messaging System è quello di
inoltrare i messaggi fino a quando la rete, il sender o il
receiver non saranno pronti alla comunicazione.
1/32
Messaging System Function(1)
2/32
Messaging System Function(2)
Send e Forget
 L’applicazione che invia il messaggio lo invia
inserendolo nel canale ad esso adibito.
 Una volta che l’invio è completato, il sender
può andare avanti in altri lavori mentre il
Messaging System trasmette il messaggio in
background.
 Il sender può essere fiducioso che il receiver
riceverà eventualmente il messaggio e non
deve aspettare fino a quando che arriva.
3/32
Messaging System Function(3)
Store and Forward:
 Quando l’applicazione che invia il messaggio
lo invia inserendolo nel canale ad esso
adibito, il Messaging System immagazzina il
messaggio nel computer sender, entrambi in
memoria o nel disco.
4/32
Messaging System Function(4)
Store and Forward:
 Il Messaging System spedisce il messaggio inoltrandolo dal computer
sender al computer receiver, e poi immagazzina il messaggio di nuovo
nel computer receiver.
5/32
Messaging Benefits(1)
Throttling
Variable
Timing
Reliable
Communication
Platform
Language Integration
Remote
Comunication
6/32
Messaging Benefits(2)
Asynchronus
Communication
Thread
Manangement
Mediation
Disconnected
Operation
7/32
Synchronous and
Asynchronous Call Semantics
time
blocked
Process A
call
return
time
Process B
Process A
message
Synchronous Call Semantics
Process B
Asynchronous Call Semantics
8/32
Peer-to-Peer Comunication

Ogni computer (nodo autonomo ed indipendente) può
operare indifferentemente come client o come server

Consente accessi condivisi a diverse risorse


File

Priferiche

Sensori
Non c’è la necessità di un server centrale.
9/32
Publish/Subscribe Comunication VS
Client/Server Comunication
Client/Server Comunication
Publish/Subscribe Comunication
Problema:
Accoppiamento Spaziale
Accoppiamento Temporale
Accoppiamento nel flusso delle operazioni
Soluzione:
Databroker
Asincronia
10/32
Publish/Subscribe
Comunication

I mittenti e i destinatari dialogano per tramite di data manager definiti come [Broker |
Dispatcher] che svolgono la funzione di store-and-forward;

Il data manager utilizza tecniche di message queueing per organizzare i messaggi
ricevuti in tematiche di interesse o in classi diverse;

I Mittenti (publisher) pubblicano i loro messaggi sui data manager;

I Destinatari (subscriber) si rivolgono al data manager abbonandosi (subscribing) alla
ricezione del messaggio a cui sono interessati;

Prima della sottoscrizione della ricezione il Destinatario attua un processo di filtering
nel quale può precisare la tipologia di messaggi a cui è interessato:


Content-based: si sceglie l’informazione in base al contenuto, è una selezione
più granulare

Item-based: si sceglie l’informazione in base all’argomento di interesse, la
probabilità di ricevere messaggi a cui non si è interessati è alta;
I Publisher non sanno quanti e quali sono i Subscriber e viceversa:

Questo contribuisce alla scalabilità del sistema.
11/32
Message Queueing System
12/32
Message Oriented Middleware
13/32
MOM Publish/Subscribe
14/32
Publish/Subscribe
Observer Design Pattern
15/32
Observer Design Pattern
Collaborations
16/32
Java Messaging Service (JMS)

È un API per la messaggistica a livello enterprise
sviluppato da Sun Microsystemn (ora acquisita da
Oracle)

È un astrazione delle interfacce e classi necessarie per i
client di messaggistica quando si vuole comunicare con
il Messaging System.

JDBC astrae l’accesso ai database relazionali, il JNDI
astrae l’accesso ai servizi di naming e directory  JMS
astrae l’accesso al MOM.

Usare JMS, un client dell’applicazione di messaggistica
sono portabili attraverso vari MOM.
17/32
JMS Publish Subscribe
18/32
Implementing
Pusblish/Subscribe
1.1
2.0
19/32
Implementing
Pusblish/Subscribe

Development Tools JMS 1.1 API

Ambiente di Sviluppo: Eclipse Luna Java Enterprise
Enviroment

Development kit e Enviroment:


Java Development Kit 1.6 e Java Runtime Enviroment 1.6
JMS Server: Jboss 5.0 CR2
20/32
Implementing
Pusblish/Subscribe

Development Tools JMS 2.0 API

Ambiente di Sviluppo: Eclipse Kepler Java Enterprise
Enviroment

Development kit e Enviroment:


Java Development kit 1.8 e Java Runtime Enviroment 1.8
JMS Server: GlassFish 4.0
21/32
JMS Server Settings

API 1.1

API 2.0
22/32
JMS Server(1)

API 1.1

API 2.0
23/32
JMS Server(2)

API 1.1

API 2.0
24/32
JMS Message Creation

API 1.1

API 2.0
25/32
JMS Publish(1)

API 1.1
26/32
JMS Publish(2)

API 2.0
27/32
JMS Subscribe

API 1.1

API 2.0
28/32
JMS API 1.1 VS 2.0 Conclusion
1.1
2.0

Semplifica JMS API 1.0 esistenti senza perdere la
compatibilità

Nuove API che richiedono un minor numero di oggetti

JMSContext, JMSProducer…

Nel JAVA Enterprise Editon, permette al JMSContext di
essere iniettato e gestito dal container

Gli oggetti JMS implementano l’AutoCloseable

Asincronia dell’invio del messaggio
29/32
JMS API 1.1 Demo

DEMO APPLICATION
30/32
JMS API 2.0 Demo

DEMO APPLICATION
31/32
REFERENCES

Enterprise Integration Patterns Designing, Build, and Delploying
Messaging Solution – Gregor Hohpe/Bobby Woolf - Publisher: The
Addison-Wesley Signature Series

Java Message Service - Richard Monson-Haefel/David A. Chappell Publisher: O'Reilly - First Edition January 2001 - ISBN: 0-596-00068-5

Design Patterns Element s of Reusable Object-Oriented Software - Erich
Gamma/Richard Helm/Ralph Johnson/John Vlissides – Publisher AddisonWesley

Slide del Corso di Sistemi Distribuiti – Sebastiano Pizzutilo – CdLM
Informatica – Università degli Studi Di Bari “Aldo Moro” – a.a. 2014/2015

Implementazione mom basata sul paradigma publish/subscribe e
message queueing - Andrea Antonio Garganico 197474
CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS a.a. 2006/2007

Un Meccanismo efficiente per l’implementazione del modello contentbased Publish-Subscribe su sistemi topic-based . Fabio Papale - CdLM
Ingegneria Informatica Tesi di Laurea a.a. 2008/2009
32/32