Wat is een actief bericht?
Een actief bericht (AM) is een soort interprocescommunicatie die wordt gebruikt in de computer, waarbij de subroutine of functie van een computerprogramma kan worden uitgevoerd door een compleet andere computer dan waar deze zich bevindt. Dit type bericht is van een zo fundamenteel formaat dat het een groter gebruik van netwerkbandbreedte mogelijk maakt via standaard internetprotocollen (IP). Het wordt ook beschouwd als een asynchroon systeem voor het doorgeven van berichten, omdat het onmiddellijk wordt uitgevoerd in plaats van te wachten op een bepaald moment om te synchroniseren met het programma.
Met het actieve berichtencommunicatiemodel gebeurt veel van het werk op hardwareniveau waarbij de hardware interageert met de stuurprogramma's van het besturingssysteem. Omdat dit lagere niveau normaal gesproken is gereserveerd voor het bedrijf van het besturingssysteem, zijn de berichten zodanig geconstrueerd dat ze instructies kunnen uitvoeren voor toegang tot een reeks gebruikersfuncties op het hoogste niveau. In de kop van een AM staat het adres van wat een handler wordt genoemd. De handler is een speciale instructie op gebruikersniveau waarmee de berichttekst kan worden verwerkt door een berekening die door de processor loopt. De kern van een actief bericht is dus het argument van de functie of de gegevens waarop de berekening moet reageren.
Gezien de essentiële aard van de constructie van een actief bericht, kan het bestaande IP-netwerkcommunicatieprotocollen doorgeven. Het primaire verschil is echter dat er onmiddellijk na ontvangst op wordt gereageerd, in tegenstelling tot het vereisen van een meerfasige, verzend-, bevestig ontvangst-, leveringsmethode. Op deze manier beschouwt een actief bericht het netwerk als een open pijp voor doorkruisen. De enige beperkingen zijn die van het fysieke netwerk, waarbij de afstand tussen knooppunten de latentie van berichten kan beïnvloeden.
De manier waarop een actief berichtensysteem werkt, is door een afzender die het netwerk met berichten vult. Er is geen buffering aan de ontvangende kant, wiens enige reactie op een AM is om de berekening voor de afhandelaar van het bericht kort te onderbreken, het bericht van het netwerk te pakken en door te gaan met zijn activiteiten. De enige keer dat berichten worden gebufferd, bevindt zich aan het einde van de afzender, waar berichten worden vastgehouden op basis van of het netwerk zijn limieten bereikt. Een polling-methode houdt het netwerk in de gaten, zodat het systeem weet wanneer het meer berichten moet injecteren. Actieve berichten zorgen daarbij voor de voortdurende overlap van berichten die worden verzonden met de berekeningen die plaatsvinden op externe machines, en houden ze allemaal gecoördineerd.
Hoewel de actieve berichtmethode eenvoudig van aard kan zijn, heeft deze een aantal problemen met de implementatie. Hoewel ze zo'n primitieve constructie hebben, zijn vaak speciaal ontworpen interface-stuurprogramma's vereist om de berichten voor een computersysteem te verwerken. De actieve berichten zijn ook ontworpen voor gebruik tussen computerknooppunten die allemaal hetzelfde programma uitvoeren. Op deze manier zijn de verzonden en ontvangen instructies specifiek voor het programma dat al op de doelcomputer wordt uitgevoerd.
Vanwege hun aard zijn actieve berichten uitgebreid gebruikt in parallelle computeromgevingen, zoals SPMD-toepassingen (single process, multiple data). Deze programma's draaien op grote netwerken van computersystemen waar actieve berichten worden gebruikt voor het doorgeven van instructies en gegevens tussen de machines. Dergelijke gedistribueerde systemen maken gebruik van de methode om op een efficiënte manier enorme hoeveelheden gegevens te verwerken die anders te lang op een enkele machine zouden duren.