From Actors to Active Objects
The concept of autonomous software objects communicating by message passing dates back to the late 1970s, when Carl Hewitt and colleagues developed the notion of an actor [2]. In the 1980s, actors were all the rage within the distributed artificial intelligence community, much as agents are today. In the 1990s, methodologies like ROOM [3], adapted actors for real-time computing. More recently, the UML specification has introduced the concept of an active object that is essentially synonymous with the notion of an actor [4]. Active objects in the UML specification are the roots of threads of control in multitasking systems and engage one another asynchronously via events. The UML specification further proposes the UML variant of statecharts, with which to model the behavior of event-driven active objects.In QP, I use the UML term "active object," rather than the more compact "actor," to avoid confusion with the other meaning of the term "actor" that the UML specification uses in the context of use cases.