它基于一种很直观的概念,就是一群人为了解决一个问题,在黑板前聚集,
每个人都可以发表自己的意见,然后在黑板上写下自己的看法,当然你也可以基于别人记录在黑板上的看法,
来发表和更新自己的看法,在这样不断的意见交换,看法更新的过程中,越来越趋向于对于问题的最终解答。
一开始的黑板模式就是这样一个由多个子系统来共同协作的人工智能解决方案。
定义
基于上面的描述,我们可以看到黑板有几个功能:
- 记录:每个人可以写下自己的看法。
- 更新:调整已有的看法。
- 删除:删除对于过时的,或者错误的看法。
- 读取:黑板上的内容谁都能自由阅读。
所以从本质上来说,黑板就是这样一个共享数据的结构,它对于多个系统间通信是很有帮助的。
它提供一种数据传递的方式,有助于系统的封装和解耦合。
对于各个子系统而言,只需要把自己的运算的结果数据记录在黑板上,至于这个数据谁会去用,并不需要关心。
反过来也是一样,对于自己的运算时需要用到的数据,可以从黑板上去获取,至于这个数据是谁提供的,也不需要关心。
只要这个数据在黑板上,就够可以认为是合法数据,这就提供的了一种灵活性,各个子系统的设计也会相对独立。
对于各个子系统而言,只需要把自己的运算的结果数据记录在黑板上,至于这个数据谁会去用,并不需要关心。
反过来也是一样,对于自己的运算时需要用到的数据,可以从黑板上去获取,至于这个数据是谁提供的,也不需要关心。
只要这个数据在黑板上,就够可以认为是合法数据,这就提供的了一种灵活性,各个子系统的设计也会相对独立。
黑板属于一种 formular and decentralized framework, solve problem that lack specific algrithom or pre-defined module ,在 blackboard上面 sharing information,partible solution,最后得到 collective solution 。
黑板属于一种规范化且去中心化的框架,用于解决缺乏特定算法或预定义模块的问题,在黑板上共享信息,形成局部解决方案,最终得出整体解决方案
一、定义
黑板模式是一种常用的架构模式,应用中的多种不同数据处理逻辑相互影响和协同来完成数据分析处理。黑板模式允许多个消息读写者同时存在,消息的生产者和消费者完全分开。这就像一个黑板,任何一个教授(消息的生产者)都可以在其上书写消息,任何一个学生(消息的消费者)都可以从黑板上读取消息,两者在空间和时间上可以解耦,并且互不干扰。这种模式对于没有确定解决方案策略的问题是有用的。
二、模式组成
黑板模式由3个主要组成部分组成。
(1)知识源:包含独立的、与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的交互只通过黑板来完成。
(2)黑板数据结构:按照与应用程序相关的层次来组织并解决问题的数据,知识源通过不断地改变黑板数据来解决问题。
(3)控制组件;完全由黑板的状态驱动,黑板状态的改变决定了需要使用的特定知识。
黑板模式一般不会对架构产生什么影响,但它通常会要求有一个清晰的消息结构。黑板模式一般都会提供一系列的过滤器,以便消息的消费者不再接触到与自己无关的消息。在实际开发中,黑板模式常见的有两种实现方式:
(一)数据库作为黑板
利用数据库充当黑板,生产者更新数据信息,不同的消费者共享数据库中信息,这是最常见的实现方式。该方式在技术上容易实现,开发量较少,熟悉度较高。缺点是在大量消息和高频率访问的情况下,性能会受到一定影响。在该模式下,消息的读取是通过消费者主动“拉取”,因此该模式也叫做“拉模式”。
(二)以语音识别为例:
语音识别黑板里边就是语言包 ;语言包就是知识源,控制机构就是管理语言包的,当你说一句话,不知道是什么语言,所以时非确定性的问题,控制机构把你说的话对应的语言包给你看,这就是黑板模式的流程
所有的组件都可以访问黑板。组件可以生成添加到黑板上的新数据对象。组件在黑板上查找特定类型的数据,并通过与现有知识源的模式匹配来查找这些数据。
三、模式实现
(一)利用数据库
利用数据库充当黑板,不同的应用共享数据库中信息,并且可以更新数据信息。这也是最常见的实现方式。
(二)利用发布—订阅模式
这种实现方式通常采用消息队列作为黑板,队列工作在主题模式(Topic),专家作为队列的订阅者,同时可以向队列发送消息,消息会被发送至所有订阅者。以上过程实现了专家间的信息交流。
四、影响黑板系统的因素
影响黑板系统设计的最大因素是引用问题本身的特性,但是支撑应用程序的黑板体系结构有许多相似的特征和构件。对于特定应用问题,黑板系统可通过选取各种黑板、知识源和控制模块的构件来设计;也可以利用预先制定的黑板体系结构的编程环境。
五、应用实例
黑板系统的典型应用是信号处理领域,如网络信息检索、电子商务、自动控制、商业管理智能决策、语音和模式识别、智能控制领域等
实际应用
在实际应用中常见的实现模式有:
A 利用数据库
利用数据库充当黑板,不同的应用共享数据库中信息,并且可以更新数据信息。这也是最常见的实现方式。
特点:
1 便于实现信息的查询,筛选和统计,这方面关系数据库提供了SQL 92的强大支持。
2 不能用于较高实时性要求的环境,这种实现是工作在“拉模式”下的,并且高频率的访问数据库会导致严重的系统性能问题。
B 利用发布—订阅模式
这种实现方式通常采用消息队列作为黑板,队列工作在主题模式(Topic),专家作为队列的订阅者,同时可以向队列发送消息,消息会被发送至所有订阅者。以上过程实现了专家间的信息交流。
黑板风格被广泛应用于信号处理、问题规划、编译器优化等软件系统的设计中。下面介绍几个具体的案例:
3.语音识别系统
语音识别系统是一种典型的采用黑板风格的应用。在语音识别系统中,多个处理元素可以并行地对语音信号进行预处理、特征提取、模式匹配等操作。这些操作的结果都会存储在黑板中,供后续的处理使用。这种设计方式大大提高了系统的并发性能和处理能力。
4.问题规划系统
问题规划系统是一种智能辅助系统,用于帮助用户进行问题的规划和决策。在问题规划系统中,多个处理元素可以并行地对问题进行解析、推理、优化等操作。这些操作的结果都会存储在黑板中,供后续的处理使用。这种设计方式大大提高了系统的灵活性和可扩展性。
5.数据库作为黑板. 利用数据库充当黑板,生产者更新数据,不同的消费则共享数据库中的信息, 这是最常见的实现方式. 该方式在技术上容易实现, 开发量较少,熟悉度较高. 缺点是在大量消息和高频率访问的情况下, 性能会受到一定影响. 在该模式下, 消息的读取是通过消费者主动"拉取", 因此该模式也叫做"拉模式".
消息队列作为黑板. 以消息队列作为黑板, 通过订阅-发布模型即可实现黑板模式. 这也是黑板模式被淡忘的一个重要原因: 消息队列已经非常普及了. 在该模式下, 消费者接收到的消息是被主动推送过来的, 因此该模式也叫做"推模式".
特点:
1、可以有效应用于实时性要求较高的系统,这种实现工作在“推模式”下。
2、难于实现信息的统计分析,不像实现方式一那样可以通过SQL支持,这些工作必须开发者自己完成。
六、优缺点分析
优点:可用于非确定性问题求解,启发式解决过程,可维护性,可重用
缺点:不能确保期望结果,效率低下,回退,不支持并行,共享空间的访问需要同步
七、总结
本文深入分析了黑板风格的原理、特点和适用场景,并探讨了其优缺点以及实际应用案例。黑板风格是一种分布式的问题求解架构,通过设置一个共享的工作内存,即“黑板”,使得多个处理元素可以独立地访问和修改黑板上的数据,从而实现信息的交流和共享。黑板风格具有可扩展性、并行性和灵活性等优点,但同时也存在数据一致性难以保证和数据过载等问题。通过实际应用案例可以看出,黑板风格被广泛应用于信号处理、问题规划、编译器优化等软件系统的设计中。未来,随着技术的不断发展,黑板风格将在更多的领域得到应用和发展。
标签:架构,队列,数据库,模式,黑板,架构师,数据,消息 From: https://blog.csdn.net/sadfasdfsafadsa/article/details/144539248