携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情
软件架构风格概述
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式
定义一个系统家族,即一个体系结构定义一个词汇表和一组约束
词汇表中包含一些构件和连接件类型
约束指出系统是如何将这些构件和连接件组合起来的
体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完成的系统
数据流风格
所有数据按照流的形式在执行过程中前进,不存在结构的反复和重构,在流动过程中,数据经过序列间的数据处理组件进行处理,然后将处理结果向后传送,最后进行输出
批处理
批处理风格的每一步都是独立的,并且每一步是顺序执行的。只有当前一步处理完,后一步处理才能开始。数据必须是完整的,以整体的方式传递。如日志分析、计费程序等。
管道过滤器
每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通常对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。如传统的编译器、UNIx管道等。
| 批处理 | 管道过滤器 |
|---|---|
| 整体数据传送 | 增量 |
| 构件粒度大 | 构件粒度小 |
| 延迟高、实时性差 | 实时性好 |
| 无并发 | 可并发 |
调用返回风格
主程序子程序
这种风格一般采用单线程控制,把问题划分为若干处理步骤,为主程序的正确性取决于它调用的子程序的正确性。如开发语言。
面向对象
数据的表示和它们的响应操作被封装起来,对象的行为体现在其接受和请求的动作中。对象具有封装性,一个对象的改变不会影响其他对象。如面向对象开发语言
层次
每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的层。在层次结构中,修改某一层,最多影响相邻的上下两层。如TCP/IP协议,B/S、C/S、MVC等。
独立构件风格
进程通信
进程间消息传递的方式可以使点对点、异步或同步方式,以及远程过程(方法)调用等。
事件驱动
当某个时间被触发时,系统自动调用在这个事件中注册的所有过程。一个时间的触发就导致了另一个模块中的过程调用。这是一种隐式调用的方式,优点是为软件复用提供了强大的支持,为构件的维护和演化带来了方便,缺点是构件放弃了对系统计算机的控制。如断点调试、新闻、公众号等订阅信息
虚拟机风格
解释器
解释器通常包括一个完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行进度的数据结构。缺点是执行效率低。如JVM
基于规则的系统
基于规则的系统包括规则集、规则解释器、规则/数据选择器和工作内存。一般用在人工智能领域和DSS中
仓库(数据共享)风格
数据库系统
构件分为中央共享数据源、独立处理单元。构件控制中央共享数据。如IDE集成开发环境
黑板
黑板系统包括知识源、黑板和控制三个部分。知识源包括若干独立计算的不同单元,提供解决问题的知识。知识源响应黑板的变化,也只修改黑板;黑板是一个全局数据库,包含问题域解空间的全部状态,是知识源相互作用的唯一媒介;知识源响应是通过黑板状态的变化来控制的。黑板系统通常应用在对于解决问题没有确定性算法的软件中。如语音识别,信号处理
监视器的作用
时刻监视黑板状态变化
对黑板上信息的当前状态进行判断和评价
当黑板的状态满足了知识源的执行条件时,该知识源被控制器触发并进行计算,然后将结果更新到黑板上。这种更新又导致其他只是源参与计算并更新黑板,知道找到问题为止
超文本系统
静态网页
闭环(过程)控制
闭环(过程)控制是将过程输出的指定属性维护在一个特定的参考值(设定值),将事物处理看成输入、加工、输出、反馈、在输入的一个持续的过程模型。
闭环控制是根据控制对象输出反馈来进行矫正的控制方式,它是在测量出实际与计划发生偏差时,按额定或标准来进行纠正的
C2风格
C2体系结构风格可以概括为通过连接件绑定在一起按照一组规则运作的并行构件网络
C2风格中的系统组织规则如下。
(1)系统中的构件和连接件都有一个顶部和一个底部
(2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部。而构件与构件之间的直接连接是不允许的。
(3)一个连接件可以和任意数目的其他构件和连接件连接。
(4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部
二层及三层C/S架构风格
二层C/S结构为单一服务器且以局域网为中心,所有难以扩展至大型企业广域网或Internet
三层C/S结构将应用功能分成表示层、功能层和数据层三个部分。
表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。
功能层相当于应用的本体,他是将具体的业务处理逻辑编入程序中。而处理所需的数据则要从表示出或数据层取的。
数据层就是数据库管理系统,负责管理对数据库数据的读写。
B/S架构风格
浏览器/服务器(Browser/Server,B/S)
三层应用结构的一种实现方式
特点:
(1)该架构风格主要利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通过浏览器就能实现了原来需要复杂的专门软件才能实现的强大功能,并节约了开发成本
(2)在该模式的计算机应用系统中,应用(程序)在一定程度上具有几种特征
(3)基于B/S架构的软件,系统安装、修改和维护全在服务器端解决。