Approfondimenti sul modello publish-subscribe

By Francesco Allassia

Nel modello publish/subscribe, il produttore delle informazioni è chiamato editore mentre il consumatore è detto abbonato o iscritto.
L’editore fornisce informazioni su un argomento mentre l’abbonato indica gli argomenti a cui è interessato per ricevere poi le informazioni.

L’argomento dell’informazione è chiamato “topic” e altro non è che una stringa di caratteri. L’editore specifica il topic in fase di pubblicazione mentre l’abbonato lo indica in fase di iscrizione; dopo l’iscrizione riceverà informazioni solo per i topic a cui si è sottoscritto.
Gli abbonati possono specificare una gamma di topic utilizzando i caratteri jolly. Esempi di topic sono le stringhe “Sport” oppure “Sport/Calcio” o ancora “Sport/Golf”. Se in fase di iscrizione l’abbonato indica il topic “Sport/Calcio”, verrà notificato per le sole informazioni relative al Calcio; specificando “Sport/*” verrà notificato per tutte le informazioni riguardanti il Calcio ed il Golf.

Lo scambio dati tra gli editori e gli iscritti è controllato da un componente del MOM detto Broker.
Il Broker funge da intermediario tra editori e iscritti: il produttore di un messaggio pubblica il proprio messaggio al Broker, gli iscritti si rivolgono a loro volta al Broker per la sottoscrizione ad un certo topic.

Il punto di forza del modello pub/sub è il disaccoppiamento che il Broker crea tra l’editore e l’iscritto. Questa proprietà si esplica su tre livelli: quello spaziale, quello temporale e quello della sincronizzazione. Esaminiamo le caratteristiche di ognuno:

  • Disaccoppiamento spaziale
    1. gli editori e gli iscritti non hanno necessità di conoscersi a vicenda;
    2. gli editori pubblicano dati attraverso il Broker e gli iscritti li ricevono da quest’ultimo;
    3. gli editori non mantengono un riferimento all’iscritto, né sanno quanti iscritti sono presenti nel sistema;
    4. gli iscritti non mantengono riferimenti gli editori né sanno quanti editori sono presenti nel sistema;
  • Disaccoppiamento temporale
    1. non occorre che le parti che interagiscono siano attive nello stesso momento. Ad esempio, un editore può pubblicare eventi, ma l’iscritto interessato potrebbe non essere connesso
    2. viceversa, un abbonato può ricevere notifica per un evento prodotto da un editore che al momento risulta disconnesso.
  • Disaccoppiamento della sincronizzazione
    1. non esiste sincronizzazione tra le parti. L’editore, all’atto della produzione di un evento, non resta in attesa che un iscritto interessato venga notificato
    2. analogamente gli abbonati ricevono, in modo asincrono, una notifica da parte del Broker quando l’evento a cui sono interessati è disponibile.

I tre tipi di disaccoppiamento tra produttori e consumatori di informazioni eliminano le dipendenze tra i partecipanti all’interazione, rendendo il modello estremamente flessibile.

Tag: , , , , , , , , , ,

2 Risposte a “Approfondimenti sul modello publish-subscribe”

  1. kronakus Dice:

    Invece nel giornalismo il prduttore delle informazioni non è l’editore, ma la realtà, riproposta dal giornalista.
    O così dovrebbe essere. Purtroppo anche nel giornalismo è spesso l’editore a “produrre” l’informazione.

  2. Francesco Allassia Dice:

    kronakus concordo con te… La realtà dovrebbe essere il fatto cioè il topic. Esistono poi editori che creano topic senza il fatto o che descrivono il topic in modo distorto. Credo che l’unico modo per tentare di ricostruire la realtà sia quello di sottoscrivere gruppi “eterogenei” di editori.

Lascia un commento