Actor Model And Process Calculi Article Index for
Actor Model
Articles about
Actor Model And Process Calculi
Website Links For
Actor
 

Information About

Actor Model And Process Calculi




There are many similarities between the two approaches, but also several differences (some philosophical, some technical):
  • There is only one Actor Model (although it has numerous formal systems for design, analysis, verification, modeling, ''etc.''); there are numerous Process Calculi , developed for reasoning about a variety of different kinds of concurrent systems at various levels of detail (including calculi that incorporate time, stochastic transitions, or constructs specific to application areas such as security analysis).

  • The Actor model was inspired by the laws of Physics and depends on them for its fundamental axioms, ''i.e.'' Physical Law s (see Actor Model Theory ); the process calculi were originally inspired by Algebra .

  • Processes in the process calculi are anonymous, and communicate by sending messages either through named Channels (synchronous or asynchronous), or via Ambients (which can also be used to model channel-like communications ). In contrast, actors in the Actor model possess an identity, and communicate by sending messages to the mailing addresses of other actors (this style of communication can also be used to model channel-like communications — see below).


The publications on the Actor model and on the process calculi have a fair number of cross references, acknowledgments, and citations (see Actor Model And Process Calculi History ). Sometimes there are researchers who work in one of these communities who are unaware of research in the other community. This is unfortunate.


HOW DO CHANNELS WORK?

Indirect communication using channels (''e.g.'' Gilles Kahn and David MacQueen {Link without Title} ) has been an important issue for communication in parallel and concurrent computation affecting both semantics and performance. Some process calculi differ from the Actor model in their use of channels as opposed to direct communication.


ISSUES WITH SYNCHRONOUS CHANNELS

Synchronous channels have the property that a sender putting a message in the channel must wait for a receiver to get the message out of the channel before the sender can proceed.


Simple synchronous channels


A synchronous channel can be modeled by an Actor that receives put and get communications. The following is the behavior of an Actor for a simple synchronous channel:
  • Each put communication has a message and an address to which an acknowledgment is sent when the message is gotten by a get communication from the channel in FIFO order.

  • Each get communication has an address to which the gotten message is sent.



Synchronous channels in process calculi


However, simple synchronous channels do not suffice for process calculi such as Communicating Sequential Processes (CSP) 1978 and 1985 because use of the ''guarded choice'' (after Dijkstra) command (called the ''alternative'' comannd in CSP). In a guarded choice command multiple offers (called guards) can be made concurrently on multiple channels to put and get messages; however at most one of the guards can be chosen for each execution of the guarded choice command. Because only one guard can be chosen, a guarded choice command in general effectively requires a kind of Two-phase Commit Protocol or perhaps even a Three-phase Commit Protocol if Time-outs are allowed in guards (as in Occam 3 [1992]).

Consider the following program written in CSP 1978 :
  "guard" class="copylinks" target="_blank">&nbsp&rarr&nbsp Z!go() Zguard
  "guard" class="copylinks" target="_blank">&nbsp&rarr&nbsp Z!go() Zguard
  "]" class="copylinks" target="_blank">Bids2b &nbsp&rarr&nbsp process1!b