Ce este un mesaj activ?

Un mesaj activ (AM) este un tip de comunicare între procese utilizat în calcul, prin care subrutina sau funcția unui program de calculator poate fi executată de un computer complet diferit de cel în care se află. Acest tip de mesaj are un format atât de fundamental încât permite o utilizare mai mare a lățimii de bandă a rețelei peste protocoalele Internet standard (IP). Este, de asemenea, considerat un sistem de transmitere a mesajelor asincron, prin aceea că este acționat imediat în loc să aștepte un anumit moment pentru a se sincroniza cu programul.

Cu modelul de comunicare de mesagerie activă, o mare parte a muncii are loc la nivel hardware, unde hardware-ul interacționează cu driverele sistemului de operare. Întrucât acest nivel inferior este în mod normal rezervat afacerii sistemului de operare, mesajele sunt construite în așa fel încât să poată transporta instrucțiuni pentru accesarea unei secvențe de funcții de utilizator de nivel superior. În interiorul antetului unui AM se află adresa a ceea ce se numește handler. Handler-ul este o instrucțiune specială la nivel de utilizator care permite ca corpul mesajului să fie procesat printr-un calcul care rulează prin procesor. Corpul unui mesaj activ este, prin urmare, argumentul funcției sau datele asupra cărora calculul trebuie să acționeze.

Având în vedere natura esențială a construcției unui mesaj activ, acesta este capabil să treacă peste protocoalele de comunicație de rețea IP existente. Diferența principală, totuși, este că se acționează instantaneu la primire, spre deosebire de necesitatea unei metode de livrare în mai multe faze, trimitere, confirmare de primire. În acest fel, un mesaj activ consideră rețeaua pur și simplu o conductă deschisă pentru traversare. Singurele sale limitări sunt cele ale rețelei fizice, unde distanța dintre noduri poate determina latența mesajului.

Modul în care funcționează un sistem de mesaje activ este de către un expeditor care umple rețeaua cu mesaje. Nu există niciun buffering la capătul de recepție, al cărui singur răspuns la un AM este să întrerupă pentru scurt timp calculul acestuia pentru handler-ul mesajului, să ia mesajul din rețea și să-și continue activitatea. Singurul moment în care are loc tamponarea mesajelor este la sfârșitul expeditorului, unde mesajele sunt reținute în funcție de faptul dacă rețeaua își atinge limitele. O metodă de sondare ține cont de rețea, astfel încât sistemul să știe când să injecteze mai multe mesaje. Mesajele active permit astfel suprapunerea continuă a mesajelor trimise cu calculele care au loc pe mașinile de la distanță, precum și menținând toate coordonate.

Deși metoda mesajului activ poate fi de natură simplă, se confruntă cu câteva probleme în ceea ce privește implementarea. Chiar dacă au o construcție atât de primitivă, driverele de interfață personalizate sunt adesea necesare pentru a gestiona mesajele pentru un sistem informatic. Mesajele active sunt, de asemenea, concepute pentru a opera printre noduri de computer care rulează toate același program. În acest fel, instrucțiunile trimise și primite sunt specifice programului care rulează deja pe computerul de destinație.

Datorită naturii lor, mesajele active au găsit o utilizare extinsă în medii de calcul paralele, cum ar fi aplicațiile cu proces unic, date multiple (SPMD). Aceste programe rulează pe rețele mari de sisteme informatice în care mesajele active sunt folosite pentru a transmite instrucțiuni și date între mașini. Astfel de sisteme distribuite folosesc metoda pentru a procesa eficient cantități masive de date care altfel ar dura prea mult pe o singură mașină.