Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
ACTORS Motivation Develop language for concurrency “Parallel Execution of actions”. Brief History A number of individuals have contributed to the development of the actor model. Actor model was first described by Carl Hewitt (70’s) – The model was object-oriented: every object was a computationally active entity capable of receiving and reacting to messages. The Objects were called Actors. Gul Agha, later develop the actor model and develop a mathematical theory of actors. What are actors ? Actors are independent concurrent objects that interact by sending asynchronous messages; each actor has its mail address and a behavior. An actor can do the following: Send communication to other actors. Create new actors. Define a new behavior for itself, which may be the same or different to its previous behavior. Behavior change Higher level than state change (assignment) The current behavior of an actor will specify its replacement behavior – How it will perform the next incoming message A behavior accepts only one message A causally connected chain of behaviors isomorphic to the queue of messages Mail System Two important facts about mail system in the actor system: Mail arrives in random, non deterministic order (asynchronous). Ensures concurrent execution. The mail delivery is guaranteed. The system guarantees to execute all tasks eventually. Communication Mechanisms Communication is asynchronous, without any guaranteed arrival order. – Message order: if actor A sends a sequence of communications to actor B, then B may not receive them in the same order that A sent them. – It is possible for A to tag each message with a sequence number, so that B may rearrange messages into the correct order. Extending the Actalk framework towards ACTORS ActorBehavior subclass: #AghaActorBehavior setProcess [self acceptNextMessage] fork replace: replacementBehavior aself initializeBehavior: replacementBehavior Example AghaActorBehavior subclass: #AghaCounter instanceVariables: ‘contents’ consultAndReplyTo: replyDestination self replace: (self class contents: contents). replyDestination reply: contents incr self replace: (self class contents: contents + 1) reset self replace: (self class contents: 0) References Agha, Gul, Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986, 144 p. Open Systems Laboratory – http://osl.cs.uiuc.edu/