Actor Model of Computation: Scalable Robust Information Systems
Carl Hewitt
This article is dedicated to Alonzo Church and Dana Scott.
The Actor Model is a mathematical theory that treats “Actors” as the universal primitives of digital computation.
Hypothesis:i All physically possible computation can be directly implemented using Actors.
The model has been used both as a framework for a theoretical understanding of concurrency, and as the theoretical basis for several practical implementations of concurrent systems. The advent of massive concurrency through client-cloud computing and many-core computer architectures has galvanized interest in the Actor Model.
Message passing using types is the foundation of system communication: Messages are the unit of communication1 Types enable secure communication with any Actor
When an Actor receives a message, it can concurrently: send messages to (unforgeable) addresses of Actors that it has; create new Actors; designate how to handle the next message it receives.
The Actor Model can be used as a framework for modeling, understanding, and reasoning about, a wide range of concurrent systems. For example: Electronic mail (e-mail) can be modeled as an Actor system. Mail accounts are modeled as Actors and email addresses as Actor addresses. Web Services can be modeled with endpoints modeled as Actor addresses. Objects with locks (e.g. as in Java and C#) can be modeled as Actors. Functional and Logic programs can be implemented using Actors.
Actor technology will see significant application for integrating all kinds of digital information for individuals, groups, and organizations so their information usefully links together.
i This hypothesis is an update to [Church 1936] that all physically computable functions can be implemented using the lambda calculus. It is a consequence of the Actor Model that there are some computations that cannot be implemented in the lambda calculus. 1
Information integration needs to make use of the following information system principles: