CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer
Post on 24-Jul-2020
0 Views
Preview:
Transcript
Publish SubscribeAngelastro Sergio
Diomede Antonio
Viterbo Tommaso
CdLM Informatica (DM 270/2004)
Sistemi Distribuiti
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 unsistema software separato chiamato Messaging System oMessage-oriented middleware (MOM).
Il Messaging System coordina e gestisce anche l’invio e laricezione dei messaggi. Lo scopo principale del MessagingSystem è di inoltrare i messaggi dai computer sender aicomputer receiver in un modello affidabile.
La ragione per cui un Messaging System è necessario perinoltrare i messaggi da un computer ad un altro è che icomputer e le reti che li connettono sono intrinsecamenteinaffidabili.
Il vantaggio principale del Messaging System è quello diinoltrare i messaggi fino a quando la rete, il sender o ilreceiver 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)
Remote Comunication
Platform
Language Integration
ReliableCommunication
Variable
Timing
Throttling
6/32
Messaging Benefits(2)
DisconnectedOperation
Mediation
ThreadManangement
Asynchronus
Communication
7/32
Synchronous and
Asynchronous Call Semantics
Synchronous Call Semantics
time
Process A
Process B
call return
blocked
time
Process A
Process B
message
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
Problema:
Accoppiamento Spaziale
Accoppiamento Temporale
Accoppiamento nel flusso delle operazioni
Publish/Subscribe Comunication
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
1.1
JMS API 1.1 VS 2.0 Conclusion
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 DelployingMessaging 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 Addison-Wesley
Slide del Corso di Sistemi Distribuiti – Sebastiano Pizzutilo – CdLMInformatica – 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 content-based Publish-Subscribe su sistemi topic-based . Fabio Papale - CdLMIngegneria Informatica Tesi di Laurea a.a. 2008/2009
32/32
top related