架构模式之黑板模式

1、定义数据库

黑板模式是一种经常使用的架构模式,应用中的多种不一样数据处理逻辑相互影响和协同来完成数据分析处理。黑板模式容许多个消息读写者同时存在,消息的生产者和消费者彻底分开。这就像一个黑板,任何一个教授(消息的生产者)均可以在其上书写消息,任何一个学生(消息的消费者)均可以从黑板上读取消息,二者在空间和时间上能够解耦,而且互不干扰。这种模式对于没有肯定解决方案策略的问题是有用的。编程

2、模式组成网络

黑板模式由3个主要组成部分组成。数据结构

(1)知识源:包含独立的、与应用程序相关的知识,知识源之间不直接进行通信,它们之间的交互只经过黑板来完成。架构

(2)黑板数据结构:按照与应用程序相关的层次来组织并解决问题的数据,知识源经过不断地改变黑板数据来解决问题。性能

(3)控制组件;彻底由黑板的状态驱动,黑板状态的改变决定了须要使用的特定知识。spa

黑板模式通常不会对架构产生什么影响,但它一般会要求有一个清晰的消息结构。黑板模式通常都会提供一系列的过滤器,以便消息的消费者再也不接触到与本身无关的消息。在实际开发中,黑板模式常见的有两种实现方式:设计

(一)数据库做为黑板对象

利用数据库充当黑板,生产者更新数据信息,不一样的消费者共享数据库中信息,这是最多见的实现方式。该方式在技术上容易实现,开发量较少,熟悉度较高。缺点是在大量消息和高频率访问的状况下,性能会受到必定影响。在该模式下,消息的读取是经过消费者主动“拉取”,所以该模式也叫作“拉模式”。队列

(二)以语音识别为例:

语音识别黑板里边就是语言包 ;语言包就是知识源,控制机构就是管理语言包的,当你说一句话,不知道是什么语言,因此时非肯定性的问题,控制机构把你说的话对应的语言包给你看,这就是黑板模式的流程

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

3、模式实现

(一)利用数据库

利用数据库充当黑板,不一样的应用共享数据库中信息,而且能够更新数据信息。这也是最多见的实现方式。

(二)利用发布—订阅模式

这种实现方式一般采用消息队列做为黑板,队列工做在主题模式(Topic),专家做为队列的订阅者,同时能够向队列发送消息,消息会被发送至全部订阅者。以上过程实现了专家间的信息交流。

4、影响黑板系统的因素

影响黑板系统设计的最大因素是引用问题自己的特性,可是支撑应用程序的黑板体系结构有许多类似的特征和构件。对于特定应用问题,黑板系统可经过选取各类黑板、知识源和控制模块的构件来设计;也能够利用预先制定的黑板体系结构的编程环境。

5、应用实例

黑板系统的典型应用是信号处理领域,如网络信息检索、电子商务、自动控制、商业管理智能决策、语音和模式识别、智能控制领域等

实际应用

在实际应用中常见的实现模式有:

A 利用数据库

利用数据库充当黑板,不一样的应用共享数据库中信息,而且能够更新数据信息。这也是最多见的实现方式。

特色:

1 便于实现信息的查询,筛选和统计,这方面关系数据库提供了SQL 92的强大支持。

2 不能用于较高实时性要求的环境,这种实现是工做在“拉模式”下的,而且高频率的访问数据库会致使严重的系统性能问题。

B 利用发布—订阅模式

这种实现方式一般采用消息队列做为黑板,队列工做在主题模式(Topic),专家做为队列的订阅者,同时能够向队列发送消息,消息会被发送至全部订阅者。以上过程实现了专家间的信息交流。

特色:

一、能够有效应用于实时性要求较高的系统,这种实现工做在“推模式”下。

二、难于实现信息的统计分析,不像实现方式一那样能够经过SQL支持,这些工做必须开发者本身完成。

6、优缺点分析

优势:可用于非肯定性问题求解,启发式解决过程,可维护性,可重用

缺点:不能确保指望结果,效率低下,回退,不支持并行,共享空间的访问须要同步

相关文章
相关标签/搜索