Che cos'è un messaggio attivo?
Un messaggio attivo (AM) è un tipo di comunicazione tra processi utilizzata nell'informatica, in cui la subroutine o la funzione di un programma per computer può essere eseguita da un computer completamente diverso da quello in cui risiede. Questo tipo di messaggio ha un formato così fondamentale che consente un maggiore utilizzo della larghezza di banda della rete rispetto ai protocolli Internet standard (IP). È anche considerato un sistema di passaggio di messaggi asincrono, in quanto viene immediatamente attivato invece di attendere un momento particolare per la sincronizzazione con il programma.
Con il modello di comunicazione di messaggistica attiva, gran parte del lavoro avviene a livello hardware in cui l'hardware interagisce con i driver del sistema operativo. Dato che questo livello inferiore è normalmente riservato all'attività del sistema operativo, i messaggi sono costruiti in modo tale da poter trasportare istruzioni per accedere a una sequenza di funzioni utente di livello superiore. All'interno dell'intestazione di un AM si trova l'indirizzo di ciò che viene definito un gestore. Il gestore è un'istruzione speciale a livello di utente che consente al corpo del messaggio di essere elaborato da un calcolo che attraversa il processore. Il corpo di un messaggio attivo, quindi, è l'argomento della funzione o i dati su cui il calcolo deve agire.
Data la natura essenziale della costruzione di un messaggio attivo, è in grado di passare i protocolli di comunicazione della rete IP esistenti. La differenza principale, tuttavia, è che viene applicato immediatamente alla ricezione, invece di richiedere un metodo di consegna, invio, riconoscimento, a più fasi. In questo modo, un messaggio attivo considera la rete semplicemente un tubo aperto per l'attraversamento. Le sue uniche limitazioni sono quelle della rete fisica, in cui la distanza tra i nodi può influire sulla latenza dei messaggi.
Il modo in cui funziona un sistema di messaggi attivo è tramite un mittente che riempie la rete di messaggi. Non c'è buffering sull'estremità ricevente, la cui unica risposta a una AM è di interrompere brevemente il suo calcolo per il gestore del messaggio, prendere il messaggio dalla rete e proseguire la sua attività. L'unica volta che si verifica il buffering dei messaggi è sul lato del mittente, dove i messaggi vengono bloccati in base al raggiungimento o meno dei limiti della rete. Un metodo di polling tiene sotto controllo la rete in modo che il sistema sappia quando iniettare più messaggi. I messaggi attivi consentono quindi la sovrapposizione continua dei messaggi inviati con i calcoli che si verificano su macchine remote, oltre a mantenerli tutti coordinati.
Sebbene il metodo del messaggio attivo possa essere di natura semplice, deve affrontare alcuni problemi relativi all'implementazione. Anche se hanno una struttura così primitiva, spesso sono necessari driver di interfaccia progettati su misura per gestire i messaggi per un sistema informatico. I messaggi attivi sono inoltre progettati per funzionare tra nodi di computer che eseguono tutti lo stesso programma. In questo modo, le istruzioni inviate e ricevute sono specifiche per il programma già in esecuzione sul computer di destinazione.
A causa della loro natura, i messaggi attivi hanno trovato ampio uso in ambienti di elaborazione paralleli, come applicazioni a processo singolo, dati multipli (SPMD). Questi programmi funzionano su grandi reti di sistemi informatici in cui vengono utilizzati messaggi attivi per trasmettere istruzioni e dati tra le macchine. Tali sistemi distribuiti utilizzano il metodo per elaborare in modo efficiente enormi quantità di dati che altrimenti richiederebbero troppo tempo su una singola macchina.