软件架构风格整理(5 仓库风格 6复制风格) .

1 仓库风格

在仓库风格中。有两种不同的构件:中央数据结构说明当前状态.独立构件在中央数据存贮上执行.仓库与外构件问的相互作用在系统中会有大的变化

若输入流中某类时间触发进程执行的选择.则仓库是一传统型数据库;另一方面.若中央数据结构的当前状态触发进程执行的选择.则仓库是一黑板系统

1.1 数据库系统

数据库架构是库风格最常见的形式。构件主要有两大类,一个是中央共享数据源,保存当前系统的数据状态;另一个是多个独立处理元素,处理元素对数据元素进行操作。

1.2 超文本系统

早期的静态网页是比较典型的超文本系统.

1.3 黑板系统

黑板架构包括知识源、黑板和控制3个部分。知识源包括若干独立计算的不同单元,提供解决问题的知识,知识源响应黑板上的变化,也只修改黑板。黑板是一个全局数据库,包含解域的全部状态,是知识源互相作用的唯一媒介。知识源响应是通过黑板状态的变化来控制。

黑板通常应用在对于解决问题没有确定性算法的系统中,例如信号处理、问题规划及编译器优化等软件系统的设计中。

软件专家模块,称作知识源[knowledge sources (KSs)]。就像在黑板上工作的人类专家那样,每个知识源提供应用程序所需要的具体的专家知识。

黑板[blackboard],一个共享知识库,包含了问题、部分解决方案、建议和已经贡献的信息。黑板可以被认为是一个动态的“库”,里面是其他知识源最近“发表”的对当前问题的贡献。

控制机制[control shell],控制系统中问题解决的活动流。正如狂热的人类专家得有一个主持人来防止他们乱抢粉笔,知识源(KSs)也需要一种机制来保证以一种最有效和连贯的方式来工作。控制机制(control shell)正是提供这一功能。

应用

1) 数据库

2) 信号处理

3) 松耦合代理数据共享存取

4) 带有全局数据库的批处理系统

5) 编程开发环境

6) 编译器等

2 复制风格

2.1 复制仓库(Replicated RepositoryRR

基于复制仓库风格的系统通过利用多个进程提供相同的服务,来改善数据的可访问

性(accessibility of data)和服务的可伸缩性(scalability of service)。这些分散的服务器交互为客户端制造出只有一个集中的服务的“幻觉”。主要的例子包括诸如XMS.这样的分布式文件系统和CVS[www.cyclic.com]这样的远程版本控制系统。

RR风格的主要优点在于改善了用户可觉察的性能,实现途径是通过减少处理正常请求

的延迟,并在主服务器故障或有意的线下漫游(intentional roaming off the network)时支持离线操作(disconnected operation)。在这里,简单性是不确定的,因为RR风格允许不关心网络(network-unaware)的组件能够透明地操作本地的复制数据,这补偿了复制所导致的复杂性。维护一致性是RR风格的主要关注点。

2.2 缓存(Cache

复制仓库风格的一种变体是缓存风格:复制个别请求的结果,以便可以被后面的请求重

用。这种形式的复制最常出现在潜在的数据集远远超出单个客户端的容量的情况下,例如在

WWW中,或者在不必完全访问仓库的地方。可以执行延迟复制(lazy replication):当复制一个请求的尚未缓存的响应数据时,根据引用的局部性(locality of reference)和兴趣的趋同性(commonality of interest),将有用的数据项复制到缓存中以备稍后重用。还可以执行执行主动复制(active replication):基于预测到的请求来预先获取可缓存的数据项。

与复制仓库风格相比,缓存风格对于用户可觉察性能的改善较少,因为没有命中缓存的请求会更多,只有近期被访问过的数据才能被离线操作使用。另一方面,缓存风格实现起来

要容易得多,不需要复制仓库风格那么多的处理和存储,而且由于只有当数据被请求时才会

传输数据,因此缓存风格更加高效。缓存风格当与客户-无状态-服务器风格(client- stateless sserver style)结合后就成为了一种基于网络的架构风格
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值