Articulo de referencia

Active message

In computing , an active message is a messaging object capable of performing processing on its own. This contrasts with traditional computer-based messaging systems in which mes...

In computing, an active message is a messaging object capable of performing processing on its own. This contrasts with traditional computer-based messaging systems in which messages are passive entities with no processing power.[1]

For example, an active message may send not only the data "5" but also the function that determines what to do with that 5 (such as multiply it by 2).

Active messages can be used to optimize network communications, such as reducing latency by removing software overheads associated with buffering and providing applications with direct user-level access to the network hardware.[2][3]

Distributed memory programming

Active messages are communications primitive for exploiting the full performance and flexibility of modern computer interconnects. They are often classified as one of the three main types of distributed memory programming, the other two being data parallel and message passing. The view is that Active Messages are actually a lower-level mechanism that can be used to implement data parallel or message passing efficiently.

The basic idea is that each message has a header containing the address or index of a userspace handler to be executed upon message arrival, with the contents of the message passed as an argument to the handler. Early active message systems passed the actual remote code address across the network, however this approach required the initiator to know the address of the remote handler function when composing a message, which can be quite limiting even within the context of a SPMD programming model (and generally relies upon address space uniformity which is absent in many modern systems). Newer active message interfaces require the client to register a table with the software at initialization time that maps an integer index to the local address of a handler function; in these systems the sender of an active message provides an index into the remote handler table, and upon arrival of the active message the table is used to map this index to the handler address that is invoked to handle the message. [4]

Otras variantes de mensajes activos transportan el código en sí, no un puntero al código. El mensaje suele contener datos. Al llegar al receptor, se adquieren más datos y se realiza el cálculo del mensaje activo, utilizando tanto los datos del mensaje como los del nodo receptor. Esta forma de mensajería activa no se limita a SPMD , aunque el emisor y el receptor deben compartir ciertas nociones sobre qué datos pueden accederse en el nodo receptor.

Integración, uso para microservicios, orquestación, arquitectura ESB

En el proyecto SwarmESB, una implementación de nivel superior para mensajes activos también se denomina comunicación de enjambre . El modelo básico de mensajes activos se amplía con nuevos conceptos y se utiliza JavaScript para expresar el código de dichos mensajes.

Véase también

Referencias

  1. "La semántica operacional de un sistema de mensajería activo" , Portal ACM. Consultado el 20 de julio de 2009.
  2. Thorsten von Eicken, David E. Culler, Seth Copen Goldstein, Klaus Erik Schauser, " Mensajes activos: un mecanismo para la comunicación y computación integradas ", Actas del 19º simposio internacional anual sobre arquitectura de computadoras (ISCA'92), mayo de 1992, ACM.
  3. Alan M. Mainwaring y David E. Culler, "Active Message Applications Programming Interface and Communication Subsystem Organization" (Especificación AM-2), Departamento de EECS, Universidad de California, Berkeley, Informe técnico n.º UCB/CSD-96-918 , octubre de 1996.
  4. Dan Bonachea y Paul H. Hargrove. "Especificación GASNet, v1.8.1" . Informe técnico del Laboratorio Nacional Lawrence Berkeley LBNL-2001064 , agosto de 2017.
  • https://web.archive.org/web/20070610055547/http://www.tc.cornell.edu/Services/Education/Topics/Parallel/Distributed/%2B6.3%2BActive%2BMessages.htm
  • https://github.com/salboaie/SwarmESB/
  • GASNet : una capa de middleware de comunicaciones que incluye mensajes activos y acceso remoto a memoria (RMA), implementada sobre una amplia variedad de hardware de red.
  • AMUDP - Mensajes activos (AM-2) sobre UDP (un componente estándar de la pila de protocolos TCP/IP )
  • AMMPI - Mensajes activos (AM-2) sobre MPI