Intercambio de mensajes

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 4 de diciembre de 2016; las comprobaciones requieren 3 ediciones .

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.

Resumen

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 ).

Influencia en otros modelos de programación

POO

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.

Otros modelos

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.

Notas

  1. Alan Kay, prototipos vs clases fue: Re: Sun's HotSpot, 10 de octubre de 1998 . Consultado el 31 de octubre de 2008. Archivado desde el original el 16 de febrero de 2021.

Enlaces