La mensajería en informática es uno de los enfoques para implementar la interacción de componentes y sistemas utilizados en computación paralela , programación orientada a objetos , también una de las formas de comunicación entre procesos en sistemas operativos , en sistemas operativos microkernel , el enfoque se utiliza para intercambiar información entre uno de los núcleos y uno o más bloques de ejecución.
Los sistemas de invocación de métodos remotos y acceso a objetos distribuidos como ONC RPC , CORBA , RMI , DCOM , SOAP , .Net_Remoting , QNX Neutrino RTOS , OpenBinder , D-Bus y similares son sistemas de mensajería. El uso generalizado de enfoques de mensajería también es inherente a la informática de alto rendimiento , en particular, la interfaz de paso de mensajes MPI se basa en ella . En la clase de middleware , se destaca un grupo especial: el middleware orientado a mensajes basado en este enfoque.
Los sistemas de mensajería son cerrados porque su abstracción oculta todos los cambios de estado que se pueden utilizar en la implementación del envío de mensajes.
Los lenguajes de programación basados en este modelo suelen definir el paso de mensajes como el envío (normalmente asíncrono, siendo una copia) de un elemento de datos al destinatario final ( actor , proceso , subproceso , socket , etc.). El concepto de mensaje es una versión de alto nivel de los datagramas , excepto que los mensajes pueden ser más grandes que un paquete y pueden hacerse confiables, duraderos, seguros y, si es necesario, pueden estar cubiertos por un mecanismo de transacción .
Los mensajes se utilizan a menudo para la comunicación entre procesos ; otra área común de aplicación son los flujos y canalizaciones , en los que la información se envía como una secuencia de elementos de datos simples (una versión de alto nivel de un canal virtual ).
En términos de algunos lenguajes de programación orientados a objetos, un mensaje es la única forma de transferir el control a un objeto. Si el objeto es "responder" a este mensaje, entonces debe tener un método correspondiente al mensaje dado.
En la programación puramente orientada a objetos, la mensajería solo se implementa mediante llamadas dinámicas.
Enviar el mismo mensaje a un objeto dos veces generalmente hace que el objeto aplique el método dos veces. Los mensajes se llaman igual si sus nombres y argumentos son los mismos.
Los objetos pueden enviar mensajes a otros objetos utilizando sus métodos.
La mensajería da como resultado un enlace extremadamente tardío .
Alan Kay argumenta [1] que el intercambio de mensajes entre objetos es un concepto más importante que los propios objetos, aunque la gente a menudo no entiende esto y presta demasiada atención a los objetos en sí y no lo suficiente a los mensajes que intercambian.
Algunos lenguajes admiten el reenvío (delegación) de llamadas de método de un objeto a otro si no tiene un método para manejar el mensaje, pero "sabe" que otro objeto sí lo tiene.
Comunicación entre procesos | |
---|---|
Métodos | |
Protocolos y estándares seleccionados |