34
Publish Subscribe Angelastro Sergio Diomede Antonio Viterbo Tommaso CdLM Informatica (DM 270/2004) Sistemi Distribuiti

CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Publish SubscribeAngelastro Sergio

Diomede Antonio

Viterbo Tommaso

CdLM Informatica (DM 270/2004)

Sistemi Distribuiti

Page 2: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 3: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 4: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Messaging System Function(1)

2/32

Page 5: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 6: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 7: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 8: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Messaging Benefits(1)

Remote Comunication

Platform

Language Integration

ReliableCommunication

Variable

Timing

Throttling

6/32

Page 9: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Messaging Benefits(2)

DisconnectedOperation

Mediation

ThreadManangement

Asynchronus

Communication

7/32

Page 10: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 11: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 12: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 13: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 14: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Message Queueing System

12/32

Page 15: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Message Oriented Middleware

13/32

Page 16: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

MOM Publish/Subscribe

14/32

Page 17: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Publish/Subscribe

Observer Design Pattern

15/32

Page 18: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Observer Design Pattern

Collaborations

16/32

Page 19: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 20: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS Publish Subscribe

18/32

Page 21: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

Implementing

Pusblish/Subscribe

1.1

2.0

19/32

Page 22: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 23: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 24: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS Server Settings

API 1.1

API 2.0

22/32

Page 25: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS Server(1)

API 1.1

API 2.0

23/32

Page 26: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS Server(2)

API 1.1

API 2.0

24/32

Page 27: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS Message Creation

API 1.1

API 2.0

25/32

Page 28: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS Publish(1)

API 1.1

26/32

Page 29: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS Publish(2)

API 2.0

27/32

Page 30: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS Subscribe

API 1.1

API 2.0

28/32

Page 31: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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

Page 32: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS API 1.1 Demo

DEMO APPLICATION

30/32

Page 33: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

JMS API 2.0 Demo

DEMO APPLICATION

31/32

Page 34: CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics Peer-to-Peer

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