Active Object
From Wikipedia, the free encyclopedia
This article is about a multi-threading technique. For the lockstep protocol variant, see Active objects.
The Active Object design pattern decouples method execution from method invocation that reside in their own thread of control.[1] The goal is to introduce concurrency, by using asynchronous method invocation and a scheduler for handling requests.[2]
The pattern consists of six elements[3]:
- a proxy, which provides an interface towards clients with publicly accessible methods
- an interface which defines the method request on an active object
- a list of pending requests from clients
- a scheduler, which decides which request to execute next
- the implementation of the active object method.
- a callback or variable for the client to receive the result.
[edit] References
- ^ D, Schmidt; M., Rohnert, H., Buschmann, F. (2000). Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects. John Wiley & Sons. ISBN 0-471-60695-2.
- ^ Bass, L., Clements, P., Kazman, R. Software Architecture in Practice. Addison Wesley, 2003
- ^ Lavender, R. Greg; Schmidt, Douglas C.. Active Object (PDF). Retrieved on 2007-02-02.