Active message

An Active message (in computing) is a messaging object capable of performing processing on its own. It is a lightweight messaging protocol used to optimize network communications with an emphasis on reducing latency by removing software overheads associated with buffering and providing applications with direct user-level access to the network hardware.[1] This contrasts with traditional computer-based messaging systems in which messages are passive entities with no processing power.[2]

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 of a userspace handler to be executed upon message arrival, with the contents of the message passed as an argument to the handler. Because the address of the handler must be known when composing the message, this mechanism is restricted to the SPMD programming model.

Other variations of active messages carry the actual code itself, not a pointer to the code. The message typically carries some data. On arrival at the receiving end, more data is acquired, and the computation in the active message is performed, making use of data in the message as well as data in the receiving node. This form of active messaging is not restricted to SPMD, although originator and receiver must share some notions as to what data can be accessed at the receiving node.

Integration, usage for micro-services, orchestration, ESB architecture

A higher level implementation for active messages is also named Swarm communication in the SwarmESB project. The basic model of the active messages is extend with new concepts and Java Script is used to express the code of the active messages.

References

  1. "Active Messages - 2 Specification"
  2. "The operational semantics of an active message system", ACM Portal. Accessed July 20, 2009

Sources and external links