Saturday, September 22, 2007

Dust Off Those Patterns Books

With the growing popularity of Event-Driven Architectures (EDA) and Complex Event Processing (CEP), patterns such as the blackboard and observer patterns will become important again (not that they ever really ceased being important).

The blackboard pattern is used in systems that deal with problems that don't have a deterministic approach to reaching a solution, mainly AI systems. The pattern consists of a common space (the blackboard) where data is posted to be shared. Independent knowledge agents listen for data of interest from other agents and post partial solutions to the blackboard for consumption by other agents. The data posted to the blackboard represent the current state of the system. Control agents monitor the state of processing and determine when a solution is sufficient and processing can stop. The blackboard pattern was made popular when it was described in Buschman et al's book on software architecture patterns. A lot of EDA's today are implemented using messaging systems. The blackboard pattern can be applied to such architectures--the messaging bus becomes the blackboard and the knowledge and control agents are publishers and subscribers to the bus.

The observer pattern is a very simple pattern that's often used in GUI applications as part of an MVC framework. The pattern consists of a subject that may emit events and observers that are interested in those events. The observers register themselves with the subject for events that they are interested in and when those events occur, the subject notifies the registered observers. The observer pattern is the basis from which EDA's are built. This pattern is documented and described in many places but most people probably learned or read about it from the Gang of Four's design patterns book.

, ,

No comments: