|
|
软件架构与设计-以数据为中心的架构 |
来源:
Tutorials Point 翻译:Alice(火龙果软件) |
401 次浏览 |
6次 |
|
|
在以数据为中心的体系结构中,数据被集中并经常被其他组件访问,这些组件会修改数据。这种风格的主要目的是实现数据的完整性。以数据为中心的体系结构由不同的组件组成,这些组件通过共享数据存储库进行通信。这些组件访问共享数据结构并且相对独立,因为它们仅通过数据存储进行交互。
以数据为中心的架构最著名的例子是数据库架构,其中通用数据库架构是使用数据定义协议创建的,例如,RDBMS
中一组具有字段和数据类型的相关表。
以数据为中心的架构的另一个例子是 Web 架构,它具有通用的数据模式(即 Web 的元结构),并遵循超媒体数据模型和流程,通过使用基于
Web 的共享数据服务进行通信。
组件类型
有两种类型的组件 -
- 中央数据结构或数据存储或数据存储库,负责提供永久数据存储。它表示当前状态。
- 数据访问器或独立组件的集合,这些组件在中央数据存储上运行、执行计算并可能放回结果。
数据访问器之间的交互或通信仅通过数据存储进行。数据是客户之间唯一的沟通方式。控制流程将架构分为两类:
存储库架构风格
在存储库体系结构样式中,数据存储是被动的,数据存储的客户端(软件组件或代理)是主动的,它们控制逻辑流。参与的组件检查数据存储是否有更改。
客户端向系统发送请求以执行操作(例如插入数据)。
计算过程是独立的,由传入的请求触发。
如果事务输入流中的事务类型触发了要执行的进程的选择,则它是传统的数据库或存储库体系结构,或被动存储库。
这种方法广泛用于DBMS、图书馆信息系统、CORBA中的接口存储库、编译器和CASE(计算机辅助软件工程)环境。
优势 -
提供数据完整性、备份和恢复功能。
- 提供代理的可伸缩性和可重用性,因为它们彼此之间没有直接通信。
- 减少软件组件之间瞬态数据的开销。
缺点 -
它更容易出现故障,并且可能会进行数据复制或复制。
- 数据存储的数据结构与其代理之间的高度依赖性。
- 数据结构的变化对客户端的影响很大。
- 数据的演进既困难又昂贵。
- 在网络上移动分布式数据的成本。
Blackboard 架构风格
在 Blackboard Architecture Style 中,数据存储处于活动状态,其客户端处于被动状态。因此,逻辑流由数据存储中的当前数据状态决定。它有一个黑板组件,充当中央数据存储库,内部表示由不同的计算元素构建和操作。
- 许多独立作用于通用数据结构的组件都存储在黑板中。
- 在这种样式中,组件仅通过黑板进行交互。每当数据存储发生更改时,数据存储都会向客户端发出警报。
- 解决方案的当前状态存储在黑板中,处理由黑板的状态触发。
- 当数据发生更改时,系统会向客户端发送称为触发器和数据的通知。
- 这种方法在某些人工智能应用和复杂应用中都有应用,如语音识别、图像识别、安全系统和业务资源管理系统等。
- 如果中央数据结构的当前状态是选择要执行的进程的主要触发因素,则存储库可以是黑板,而此共享数据源是活动代理。
- 与传统数据库系统的主要区别在于,黑板架构中计算元素的调用是由黑板的当前状态触发的,而不是由外部输入触发的。
Blackboard 模型的组成部分
黑板模型通常由三个主要部分组成:
知识源 (KS)
知识源,也称为侦听器或订阅者,是不同且独立的单元。它们解决部分问题并汇总部分结果。知识源之间的交互通过黑板独特地进行。
Blackboard 数据结构
解决问题的状态数据被组织到一个与应用程序相关的层次结构中。知识源对黑板进行更改,以逐步导致问题的解决方案。
控制
控制管理任务并检查工作状态。
优势 -
提供可扩展性,提供易于添加或更新知识源的功能。
- 提供并发性,允许所有知识源并行工作,因为它们彼此独立。
- 支持假设的实验。
- 支持知识源代理的可重用性。
缺点 -
Blackboard 的结构变化可能会对其所有智能体产生重大影响,因为 Blackboard
和知识源之间存在密切的依赖关系。
- 可能很难决定何时终止推理,因为只期望近似解决方案。
- 多个代理的同步问题。
- 系统设计和测试的主要挑战。
|
401 次浏览 |
6次 |
|
|
|
|
|
|