Message driven computing and its relationship to actors

  • Authors:
  • T. W. Christopher

  • Affiliations:
  • Illinois Institute of Technology, Chicago

  • Venue:
  • OOPSLA/ECOOP '88 Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

We define Message Driven Computation as a style of computing with two characteristics: 1) Messages, not sequential processes, convey both control and data. Indeed, there are no sequential processes unless they are programmed explicitly in terms of messages. 2) Computation is invoked by the presence of a collection of messages at the same location. MDC may be viewed as a generalization of Actors [AGHA86].MDC - Message Driven ComputingMDC is based on message passing to named locations at which both data storage and computation is performed.Messages are sent to labeled message queues called portals. A locus is a named collection of portals.Messages are not sent or received by processes; rather, a collection of messages at a locus that match a pattern will trigger the execution of a procedure. These pattern-invoked procedures are called behaviors. The execution of a behavior can send further messages.There are two kinds of patterns currently provided for triggering behaviors. 1) A specified number of messages at each of several specified portals at the same locus can trigger a behavior. 2) A message arriving at a specified portal of a locus can trigger a behavior if that locus has no other messages at any of its portals. The contents of the messages are not examined in either pattern match.A locus is named by an arbitrary tuple of information. The first component is required to be a symbol, an internally generated value used somewhat like a pointer. All loci whose names begin with the same symbol are typically considered to be components of the same distributed object. Moreover, a garbage collector can collect all loci whose names cannot be generated again because no active computation has access to their initial symbol.A locus will occupy one node of a multi-computer. The node number may be calculated from the locus name by a user specified formula or by hashing if no other method is specified. A locus is created when a message arrives at it and vanishes when no further messages are present or the garbage collector discovers it can no longer be active.Similarly, portals are created at loci when messages arrive at them. A portal name is constructed out of a locus name and a portal label.