CdLM Informatica (DM 270/2004) Sistemi Distribuitidisys/Publish_Subscribe.pdf · Outline Messaging...

Preview:

Citation preview

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

Recommended