O que é uma mensagem ativa?
Uma mensagem ativa (AM) é um tipo de comunicação entre processos usada na computação, na qual a sub-rotina ou função de um programa de computador pode ser executada por um computador completamente diferente daquele em que reside. Esse tipo de mensagem é de um formato tão fundamental que permite uma maior utilização da largura de banda da rede nos protocolos padrão da Internet (IP). Também é considerado um sistema de passagem de mensagens assíncronas, pois é acionado imediatamente, em vez de esperar um momento específico para sincronizar com o programa.
Com o modelo de comunicação de mensagens ativo, grande parte do trabalho ocorre no nível do hardware em que o hardware interage com os drivers do sistema operacional. Como esse nível mais baixo é normalmente reservado para os negócios do sistema operacional, as mensagens são construídas de forma que possam levar instruções para acessar uma sequência de funções de usuário de nível superior. Dentro do cabeçalho de uma AM está o endereço do que é chamado de manipulador. O manipulador é uma instrução especial no nível do usuário que permite que o corpo da mensagem seja processado por uma computação em execução no processador. O corpo de uma mensagem ativa, então, é o argumento da função ou os dados nos quais a computação precisa atuar.
Dada a natureza essencial da construção de uma mensagem ativa, ela é capaz de passar por protocolos de comunicação de rede IP existentes. A principal diferença, no entanto, é que ele é acionado instantaneamente no recebimento, em vez de exigir um método de entrega, envio, confirmação de recebimento e entrega em várias fases. Dessa forma, uma mensagem ativa considera a rede simplesmente um canal aberto para travessia. Suas únicas limitações são as da rede física, onde a distância entre os nós pode levar em consideração a latência da mensagem.
A maneira como um sistema de mensagens ativo funciona é por um remetente que enche a rede com mensagens. Não há buffer no lado receptor, cuja única resposta a uma AM é interromper brevemente seu cálculo para o manipulador da mensagem, capturar a mensagem da rede e continuar seus negócios. O único momento em que o buffer da mensagem ocorre é no final do remetente, em que as mensagens são retidas com base em se a rede está atingindo seus limites. Um método de pesquisa mantém abas na rede para que o sistema saiba quando injetar mais mensagens. Assim, as mensagens ativas permitem a sobreposição contínua de mensagens enviadas com os cálculos que ocorrem em máquinas remotas, além de mantê-las todas coordenadas.
Embora o método de mensagem ativa possa ser de natureza simples, ele enfrenta alguns problemas com relação à implementação. Embora tenham uma construção tão primitiva, os drivers de interface projetados com freqüência são necessários para lidar com as mensagens de um sistema de computador. As mensagens ativas também foram projetadas para operar entre nós de computador que estão executando o mesmo programa. Dessa forma, as instruções enviadas e recebidas são específicas para o programa que já está sendo executado no computador de destino.
Devido à sua natureza, as mensagens ativas encontraram uso extensivo em ambientes de computação paralela, como aplicativos de processo único e dados múltiplos (SPMD). Esses programas são executados em grandes redes de sistemas de computadores, onde as mensagens ativas são usadas para passar instruções e dados entre as máquinas. Esses sistemas distribuídos usam o método para processar com eficiência grandes quantidades de dados que, de outra forma, levariam muito tempo em uma única máquina.