黑板模式

  黑板模式是一种经常使用的架构模式,应用中的多种不一样数据处理逻辑相互影响和协同来完成数据分析处理。就好像多位不一样的专家在同一黑板上交流思想,每一个专家均可以得到别的专家写在黑板上的信息,同时也能够用本身的分析去更新黑板上的信息,从而影响其它专家。数据库

  

应用场景

黑板模式的应用场景是要解决的任务能够分为多个子任务。解决方案以下图所示:
 

 

优缺点


黑板模式的优势:可用于非肯定性问题求解,启发式解决过程,可维护性,可重用
不足:不能确保指望结果,效率低下,回退,不支持并行,共享空间的访问须要同步
 

实际应用

在实际应用中常见的实现模式有:
A 利用数据库
利用数据库充当黑板,不一样的应用共享数据库中信息,而且能够更新数据信息。这也是最多见的实现方式。
特色:
1 便于实现信息的查询,筛选和统计,这方面关系数据库提供了SQL 92的强大支持。
2 不能用于较高实时性要求的环境,这种实现是工做在“拉模式”下的,而且高频率的访问数据库会致使严重的系统性能问题。
B 利用发布—订阅模式
这种实现方式一般采用消息队列做为黑板,队列工做在主题模式(Topic),专家做为队列的订阅者,同时能够向队列发送消息,消息会被发送至全部订阅者。以上过程实现了专家间的信息交流。
特色:
1 能够有效应用于实时性要求较高的系统,这种实现工做在“推模式”下。
2 难于实现信息的统计分析,不像实现方式一那样能够经过SQL支持,这些工做必须开发者本身完成。
 

典型应用

信号处理领域,数据库,人工智能系统,如网络信息检索、电子商务、自动控制、办公自动化、商业管理智能决策、语音和模式识别、智能控制领域等。

黑板模式由3个主要组成部分组成。网络

  • 黑板——包含来自解决方案空间的对象的结构化全局内存
  • 知识源——专门的模块和它们本身的表示
  • 控制组件——选择、配置和执行模块

全部的组件均可以访问黑板。组件能够生成添加到黑板上的新数据对象。组件在黑板上查找特定类型的数据,并经过与现有知识源的模式匹配来查找这些数据。数据结构

 类图以下:

 

解决方案

黑板架构背后的理念是,一系列独立的程序携手合做,致力于处理同一个数据结构。 
在解决问题的过程当中,系统经过合并、修正或否决部分解来完成工做。每一个部分解都针对一个子问题,是这个子问题的最终解在特定阶段的表现形式。全部的可能解构成解空间,并被组织成多个抽象层级,其中最低层为输入的内部表示,最高层包含系统要解决的整个问题的可能解。 
之因此使用名称“黑板”(blackboard),是由于它让人想起专家们站在黑板前协做解决问题的情形。专家们一般自行决定截下来该由谁来到黑板前,而在这里介绍的模式中,若是有多个程序都能提供帮助,将由调停者(moderator)组件决定这些程序的执行顺序。架构

结构

对系统进行划分,使其包含一个黑板组件、一系列知识源以及一个控制组件。 
黑板为中央数据存储区,解空间中的元素及控制数据都存储在这里。黑板提供了一个接口,让全部知识源都可以对其进行读写。 
每一个知识源都是一个独立的子系统,解决整个问题的特定方面。 
控制组件运行一个监视黑板内容变化的循环,并决定接下来采起什么措施。性能

实现

  1. 定义问题。
  2. 定义问题的解空间。咱们将解分为中间解和顶级解,还将其分为部分解和完整解。顶级解位于最高抽象层级,其余层级的解为中间解。完整解是整个问题的答案,而部分解是部分问题的答案。
  3. 将求解过程分为以下步骤: (1)定义如何将解转换为上一层级的解。(2)描绘如何做出同一抽象层级的推测。(3)详细说明如何从其余层级寻找证据,以证明作出的推测。(4)指出可利用什么样的知识将部分解空间排除在外。
  4. 根据子任务将知识划分为专业知识源。
  5. 定义黑板的词表。
  6. 规范系统的控制机制。
  7. 实现知识源。
相关文章
相关标签/搜索