Un mensaje activo (AM) es un tipo de comunicación entre procesos que se utiliza en informática, mediante el cual la subrutina o función de un programa informático puede ser ejecutada por una computadora completamente diferente a donde reside. Este tipo de mensaje tiene un formato tan fundamental que permite una mayor utilización del ancho de banda de la red sobre los protocolos estándar de Internet (IP). También se considera un sistema de paso de mensajes asincrónico, ya que se actúa inmediatamente en lugar de esperar un momento en particular para sincronizar 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 normalmente está 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 que el cálculo necesita actuar.
Dada la naturaleza esencial de la construcción de un mensaje activo, es capaz de pasar por 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 envío de varias fases. De esta manera, un mensaje activo considera la red simplemente como un conducto abierto para atravesar. Sus únicas limitaciones son las de la red física, donde la distancia entre los nodos puede influir en la latencia de los mensajes.
La forma en que funciona un sistema de mensajes activo es mediante un remitente que llena la red con mensajes. No hay almacenamiento en búfer en el extremo receptor, cuya única respuesta a un AM es interrumpir brevemente su cálculo para el controlador del mensaje, tomar el mensaje de la red y continuar con su negocio. La única vez que ocurre 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á alcanzando 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 los mensajes enviados con los cálculos que ocurren en las máquinas remotas, además de mantenerlos todos coordinados.
Si bien el método de mensaje activo puede ser simple por naturaleza, enfrenta algunos problemas con respecto a la implementación. A pesar de que son de 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 están ejecutando el mismo programa. De esta forma, 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 uso extensivo en entornos de computación paralelos, como aplicaciones de un solo proceso, múltiples datos (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 de manera eficiente cantidades masivas de datos que de otro modo tomarían demasiado tiempo en una sola máquina.