Archive for November, 2009

Actor Model

November 29, 2009

Today’s article describes the Actor Model.

The Actor Model is one part methodology, one part framework for building parallel, distributed systems.  Each “Actor” is an agent which does its own thing, and communicates with neighbouring Actors.  Both object-oriented programming and peer-to-peer networks share many of the concepts and constraints of Actor model systems.

From one of the early papers on the Actor Model (“Viewing Control Structures as Patterns of Passing Messages”, Carl Hewitt, 1976):

The actor metaphor for problem solving is a large human scientific society: each actor is a scientist.  Each has his her own duties, specialties, and contracts.  Control is decentralized among the actors.  Communication is highly stylized and formal using messages that are sent to individual actors.

To me the most startling and interesting concept of the Actor model is that communications are carried out between Actors A and B by creating a “messenger” – itself an actor! – and sending the messenger to actor B.

In object oriented programming, this would be a bit like calling a method with the ability to decide what parameters to pass after the method has started executing.  This would be a hardcore drug for dependency injection’ists!

Hewitt’s 1976 paper is seminal:

However I do think there is better reading on the topic, and Gul Agha’s articles in particular is a much more enjoyable read:

There is also a great little collection of links on the “E programming language” website:

Happy reading!