Blackboard Pattern

Sun 19 December 2010
  • 手艺 tags:
  • pattern published: true comments: true

昨天很虔诚地在图书馆把POSA第四卷里所有的Pattern Languages都抄了一遍。恰好遇到Modeling部分的第9个Pattern, Blackboard,没有感性认识。今天简单地搜索了一下。

POSA上指出Blackboard模式用于解决尚没有绝对解决方案的问题,将几个子系统的知识组合起来提供一个近似的解决方案。在解决这类问题的过程中,几个子系统相互独立,Blackboard作为中央控制对子系统进行控制和反馈。在这个系统中有三个角色:

  • Control Shell: 系统对外的控制接口
  • Blackboard: 中央的知识管理,接受Specialist运算的反馈,对Specialist进行调度
  • Specialist: 具有专业知识的子系统,负责独立的运算

这里有一个描述Blackboard模式的代码例子: http://www.andypatterns.com/index.php/blog/blackboard_architectural_pattern/

参考:
http://www.vico.org/pages/PatronsDisseny/Pattern%20Blackboard/
http://en.wikipedia.org/wiki/Blackboard_system
http://chat.carleton.ca/~narthorn/project/patterns/BlackboardPattern-display.html