首页 > 其他分享 >架构师之-黑板架构风格

架构师之-黑板架构风格

时间:2024-12-17 16:57:59浏览次数:13  
标签:架构 队列 数据库 模式 黑板 架构师 数据 消息

它基于一种很直观的概念,就是一群人为了解决一个问题,在黑板前聚集,
每个人都可以发表自己的意见,然后在黑板上写下自己的看法,当然你也可以基于别人记录在黑板上的看法,
来发表和更新自己的看法,在这样不断的意见交换,看法更新的过程中,越来越趋向于对于问题的最终解答。
一开始的黑板模式就是这样一个由多个子系统来共同协作的人工智能解决方案。

定义

基于上面的描述,我们可以看到黑板有几个功能:

  • 记录:每个人可以写下自己的看法。
  • 更新:调整已有的看法。
  • 删除:删除对于过时的,或者错误的看法。
  • 读取:黑板上的内容谁都能自由阅读。

所以从本质上来说,黑板就是这样一个共享数据的结构,它对于多个系统间通信是很有帮助的。
它提供一种数据传递的方式,有助于系统的封装和解耦合。

对于各个子系统而言,只需要把自己的运算的结果数据记录在黑板上,至于这个数据谁会去用,并不需要关心。
反过来也是一样,对于自己的运算时需要用到的数据,可以从黑板上去获取,至于这个数据是谁提供的,也不需要关心。
只要这个数据在黑板上,就够可以认为是合法数据,这就提供的了一种灵活性,各个子系统的设计也会相对独立。

对于各个子系统而言,只需要把自己的运算的结果数据记录在黑板上,至于这个数据谁会去用,并不需要关心。
反过来也是一样,对于自己的运算时需要用到的数据,可以从黑板上去获取,至于这个数据是谁提供的,也不需要关心。
只要这个数据在黑板上,就够可以认为是合法数据,这就提供的了一种灵活性,各个子系统的设计也会相对独立。

黑板属于一种 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

相关文章

  • 关于Windows可信启动架构及其与安全启动共同建立的信任根
    Windows可信启动架构及其与安全启动共同建立的信任根 安全启动基于公钥基础设施(PKI)流程,在允许任何模块执行前,先对其进行严格认证。这些模块广泛包括固件驱动程序、选项ROM、磁盘上的UEFI驱动程序、UEFI应用程序或UEFI引导加载程序。通过执行前的镜像认证机制,安全启动有效降低了......
  • 数据湖技术架构
    数据摄入层数据收集方式批量摄入:这是一种常见的数据摄入方式,适用于将大量的历史数据或周期性产生的数据导入数据湖。例如,企业可以每天、每周或每月将业务系统(如ERP、CRM)中的数据以文件(如CSV、Parquet)或数据库备份的形式批量导入数据湖。这种方式可以利用ETL(抽取、转换、加载......
  • 湖仓一体技术架构
    统一存储层存储系统选型:通常基于分布式文件系统,如HadoopHDFS,具有高可扩展性和容错性,能应对大规模数据存储。也常采用云存储,如AWSS3,提供了按需扩展的存储资源。数据格式支持:支持多种数据格式,结构化数据可采用Parquet、ORC等列存储格式,提升查询性能;半结构化数据以JSON、XML等格......
  • 大数据安全架构
    身份认证与访问控制多因素认证:采用多因素认证机制,如密码、手机验证码、指纹或面部识别等组合,增加用户身份认证的安全性。基于角色的访问控制(RBAC):通过将权限与特定角色关联,根据用户的角色分配相应的访问权限,实现数据的细粒度访问控制。访问审计与跟踪:记录用户的访问行为,包括访......
  • 什么是数据仓库,数据仓库的架构、数据仓库的特点以及数据仓库的应用场景
    定义与概念数据仓库是一个用于存储和管理企业数据的系统,它是面向主题的、集成的、相对稳定的、反映历史变化的数据集合。数据仓库的目的是为企业的决策支持系统(DSS)提供数据支持,帮助企业管理者进行战略决策。例如,一家连锁超市的数据仓库可以围绕销售主题、库存主题、顾客主题等......
  • 什么是数据湖,数据湖的架构、数据湖的特点以及数据湖的应用场景
    定义与概念数据湖是一个存储企业的各种各样原始数据的大型存储库,这些数据包括结构化数据(如关系数据库中的表)、半结构化数据(如XML、JSON文件)和非结构化数据(如文本文件、图像、音频、视频)。数据湖的目的是存储所有数据,而不对数据进行过多的预先处理,保留数据的原始性和完整性,以便......
  • 什么是湖仓一体,湖仓一体的架构、湖仓一体的特点以及湖仓一体的应用场景
    定义与概念湖仓一体(DataLakehouse)是一种将数据湖和数据仓库的优势相结合的新型数据架构。它既具备数据湖的灵活性和可扩展性,能够存储各种类型的原始数据,又拥有数据仓库的数据管理和数据分析能力,像数据仓库一样提供高效的数据处理、数据治理和数据安全保障机制。湖仓一体......
  • 数据仓库的技术架构
    数据源层数据来源多样性:数据仓库的数据源非常广泛,包括企业内部的业务系统(如ERP系统、CRM系统、SCM系统等)、各种数据库(如关系型数据库、非关系型数据库)、文件系统(如日志文件、CSV文件、XML文件等),以及外部数据(如市场调研数据、社交媒体数据等)。这些数据源提供了构建数据仓库所需......
  • 分库分表核心架构设计
    胡弦,视频号2023年度优秀创作者,互联网大厂P8技术专家,SpringCloudAlibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者,资深架构师,技术负责人,极客时间训练营讲师,四维口袋KVP最具价值技术专家,技术领域专家团成员,2021电子工业出版社年度优秀作者,获得2023电......
  • 从架构到API,你真的掌握了Electron的全貌吗?
    本文首发同名微信公众号:前端徐徐大家好,我是徐徐。今天我们来浅析一下Electron的原理。前言Electron的原理是每个开发Electron应用的开发者都需要了解的知识内容,因为知道整个原理全貌后你才能在设计一个应用的时候更加的合理,遇到问题才知道从哪个方面去分析。这篇......