¿Qué es un mensaje activo?
Un mensaje activo (AM) es un tipo de comunicación entre procesos que se usa en informática, mediante la cual la subrutina o función de un programa de computadora puede ser ejecutada por una computadora completamente diferente de donde reside. Este tipo de mensaje tiene un formato tan fundamental que permite una mayor utilización del ancho de banda de la red a través de los protocolos estándar de Internet (IP). También se considera un sistema de paso de mensajes asíncrono, ya que se actúa inmediatamente en lugar de esperar un momento particular para sincronizarse con el programa.
Con el modelo de comunicación de mensajería activa, gran parte del trabajo se realiza a nivel de hardware donde el hardware interactúa con los controladores del sistema operativo. Dado que este nivel inferior está normalmente reservado para el negocio del sistema operativo, los mensajes se construyen de tal manera que pueden llevar instrucciones para acceder a una secuencia de funciones de usuario de nivel superior. Dentro del encabezado de un AM está la dirección de lo que se conoce como controlador. El controlador es una instrucción especial a nivel de usuario que permite que el cuerpo del mensaje sea procesado por un cálculo que se ejecuta a través del procesador. El cuerpo de un mensaje activo, entonces, es el argumento de la función, o los datos sobre los cuales el cálculo necesita actuar.
Dada la naturaleza esencial de la construcción de un mensaje activo, es capaz de pasar por encima de los protocolos de comunicación de red IP existentes. Sin embargo, la principal diferencia es que se actúa instantáneamente en el momento de la recepción, en lugar de requerir un método de entrega, envío, acuse de recibo y múltiples fases. De esta manera, un mensaje activo considera que la red es simplemente una tubería abierta para el recorrido. Sus únicas limitaciones son las de la red física, donde la distancia entre los nodos puede tener en cuenta la latencia del mensaje.
La forma en que funciona un sistema de mensajes activo es mediante un remitente que llena la red con mensajes. No hay almacenamiento intermedio en el extremo receptor, cuya única respuesta a un AM es interrumpir brevemente su cálculo para el manejador del mensaje, tomar el mensaje de la red y continuar con su negocio. El único momento en que se produce el almacenamiento en búfer de mensajes es en el extremo del remitente, donde los mensajes se retienen en función de si la red está llegando a sus límites. Un método de sondeo mantiene pestañas en la red para que el sistema sepa cuándo inyectar más mensajes. De este modo, los mensajes activos permiten la superposición continua de mensajes enviados con los cálculos que ocurren en máquinas remotas, así como mantenerlos todos coordinados.
Si bien el método de mensaje activo puede ser de naturaleza simple, enfrenta algunos problemas con respecto a la implementación. Aunque son de una construcción tan primitiva, a menudo se requieren controladores de interfaz diseñados a medida para manejar los mensajes de un sistema informático. Los mensajes activos también están diseñados para operar entre nodos de computadora que ejecutan el mismo programa. De esta manera, las instrucciones enviadas y recibidas son específicas del programa que ya se está ejecutando en la computadora de destino.
Debido a su naturaleza, los mensajes activos han encontrado un amplio uso en entornos informáticos paralelos, como aplicaciones de proceso único, datos múltiples (SPMD). Estos programas se ejecutan en grandes redes de sistemas informáticos donde se utilizan mensajes activos para pasar instrucciones y datos entre las máquinas. Dichos sistemas distribuidos hacen uso del método para procesar eficientemente cantidades masivas de datos que de otro modo tomarían demasiado tiempo en una sola máquina.