Data-centered Style(以数据为中心的体系结构风格)

Perview-Taxonomy of Style

在这里插入图片描述

一、以数据为中心的体系结构风格

1、以数据为中心的体系结构风格-常用案例

1.1 注册表(Windows Registry)

  注册表中存在着系统的所有硬件和软件配置信息,如启动信息、用户、BIOS、各类硬件、网络、INI文件、驱动程序、应用程序等;
  注册表信息影响或控制系统/应用/软件的行为。应用软件安装/运行/卸载时对其进行添加/修改/删除信息,以达到改变系统功能和控制软件运行的目的。
在这里插入图片描述
注册表的结构:
  (1)硬件/软件系统的配置信息均被各自保存在一个配置文件中(*.ini)
  (2)这些配置文件散落在系统的各个角落,很难对其进行维护
  (3)引入注册表的思想,将所有.ini文件集中起来,形成共享仓库,为系统运行起到集中的资源配置管理和控制调度的作用。
注册表结构图:
在这里插入图片描述

1.2 剪贴板

剪贴板
一个用来进行短时间的数据存储并在文档/应用之间进行数据传递和交换的软件程序
  1、用来存储待传递和交换信息的公共区域(形成共享仓库)
  2、不同的应用程序通过该区域交换格式化的信息
  3、访问剪贴板的方式: Copy & paste
剪贴板结构图:
在这里插入图片描述

2、以数据为中心的体系结构风格-定义

以数据为中心的体系结构风格涉及一种共享数据源的信息传递方式

二、仓库体系结构风格

1、基本概念

仓库是存储和维护数据的中心场所
仓库体系结构风格有两个十分不同的组件
(1)、中心数据结构
   1、表示当前数据的状态
   2、一组对中心数据进行操作的独立构件
在这里插入图片描述
(2)连接件
  仓库与独立构件之间的交互

仓库体系结构风格存在两种交互机制
(1)数据库方式:输入流中的事务类型触发需要执行的过程
(2)黑板结构:中心数据结构的当前状态触发并选择需要执行的过程

2、运用场合

此模型适用于核心问题是建立、增强和维护复杂的中心信息体
典型应用场合:
  数据处理(data processing),主要是由从常规数据库构建业务决策系统的需求所驱动的。
  软件开发环境(Software Development Environment),主要是由代表和操纵程序与设计的需求所驱动。
  数据库
在这里插入图片描述

3、应用实例

1、传统编译器结构: 批处理/管道 -过滤器
在这里插入图片描述
   很多信息在编译过程中可能会被多个阶段的编译程序所使用。例如: .源程序中使用的名字、每个名字的各种属性信息(类型、作用域、分配存储信息等),将这类信息提取出来,形成共享的符号表(Symbol Table)。
传统带符号表的编译器结构:

在这里插入图片描述
  随着程序开发语言的发展,源代码中的算法与表示变得越来越复杂,编译过程中的中间结果的表示变得越来越重要,出现了带符号表与语法树(parse tree)的编译器。
在这里插入图片描述
由于随着开发语言的不断发展,编译过程变得越来越困难,所以近些年形成了仓库形式的编译结构:
在这里插入图片描述
基于仓库风格的软件的软件研发环境:
在这里插入图片描述

三、黑板体系结构风格

1、黑板体系结构风格的思想

   相信很多人都玩过拼图的游戏,那么你还记得你自己是如何完成的呢?是先拼最外围的拼块呢?还是先拼那些图中特征性最显眼的拼块?或者是先拼你第一眼看到的拼块,然后完成它?我想这些拼图方式都帮助你们完成了拼图游戏,那么对于拼图游戏能抽象出自己的算法吗?从而实现拼图的简单化?我想这一类问题很难找到没有直接的算法去解决这些问题,也找不到确定的求解策略(先做什么?后做什么?),可能还需要多方面的知识进行协作来进行解决这个问题。比如我们经常看到的 自然语言处理、语音处理、模式识别、图像处理这些技术都是采用了这一思想。那么如何解决此类问题呢?便是黑板体系结构风格。将一个大问题分解为若干个子问题,然后每个子问题的解决需要不同的问题表达方式和求解模型,分别设计求解程序。

每个求解程序具有某一特定领域的知识, 可解决某一方面的问题;
这些程序是相互独立的,之间不存在相互调用,也不存在可事先确定的操作顺序;
根据问题求解过程中的状态来动态决定各个专门]程序之间的操作顺序,它们之间通过协同工作共同完成整个问
题的求解;
专门的控制程序负责根据问题求解的状态来调用最恰当的求解程序,从而形成一种随机性的执行次序。

在这里插入图片描述

2、黑板体系结构风格-基本结构

黑板结构:中心数据结构的当前状态触发并选择需要执行的过程

在这里插入图片描述
黑板系统基本结构
在这里插入图片描述
Blackboard data structure 黑板数据结构
  全局数据库,用来存储数据,传递信息,包括解域的全部状态
  解决问题过程中的状态的状态数据,以层次形式组织起来
  知识源对黑板进行修改,逐渐找到问题的解
  各知识源之间的通讯和交互只通过黑板进行

3、基于黑板数据结构的拼图游戏

  根据拼图的思想总结,我们可以将整个拼图过程总结为四个层次,然后分别进行处理或者解决,最终得到一个完整的拼图。
在这里插入图片描述
Knowledge sources知识源
  知识源是描述某个独立领域问题的知识及其处理方法的知识库其分别存放且相互独立的,他们通过黑板进行通讯,合作求出问题的解,通常知识源具有“条件-动作”的形式。当条件满足时,知识源被触发,其动作部分增加或修改黑板上得内容。
  1、待解决的问题被分为若干个子问题,每个子问题由一个独立的知识源加以计算。
  2、知识源包含独立的领域知识。
  3、知识源执行计算后会更新黑板里的数据状态。
  4、多个知识源之间只能通过黑板交换知识
  5、通过对黑板的读写操作来完成交换。

在这里插入图片描述
Control控制器
  1、时刻监视黑板状态变化
  2、对黑板上信息的当前状态进行判断和评价
  3、当黑板的状态满足了知识源的执行条件时,该知识源被控制器触发并进行计算,然后将结果更新到黑板上
  4、这种更新又导致其他知识源参与计算并更新黑板,直到找到问题解为止
在这里插入图片描述
Control控制器的作用
 (1)黑板模型求解问题的推理机构,由监督程序和调度程序组成。
 (2)监督程序根据黑板的状态变化激活相关知识源
 (3)调度程序选择最合适的知识源来执行,用执行结果修改黑板状态。
 (4)用来控制和协调所有的知识源,使其协同的解决问题;
 (5)了解各个知识源的能力,实时决策解决问题的步骤;
在这里插入图片描述

4、实例应用

人工智能(Artificial Intelligence, AI)领域
典型应用领域:
  自然语言处理、语音处理、模式识别、图像处理等;
HEARSAY-Ii应用实例
在这里插入图片描述
在这里插入图片描述
HEARSAY-II Structure
黑板结构是一个六至八层的层次结构,每一层都抽象了与之相邻.的较低一层的信息。黑板元素代
表了关于语音解释的假设。
控制构件作为黑板的监控程序和调度程序;调度程序负责监控黑板和计算的优先次序。
知识源代表整个问题求解中的独立的子任务,比如分割原始信号、识别音素、产生候选词、假定语法片断、提供语义解释。每个知识源被组织成条件部分和动作部分,条件部分规定什么
时候知识源可用,动作部分负责处理相关的黑板元素并产生新的元素

在这里插入图片描述
上一篇:Call/Return Style (调用/返回风格)
下一篇:Virtual Machine Software Architecture Style(虚拟机风格)

  • 9
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值