首页 > 其他分享 >十一、软件架构风格

十一、软件架构风格

时间:2024-10-27 17:19:18浏览次数:6  
标签:十一 连接件 构件 管道 风格 软件架构 过滤器 体系结构

        软件架构风格,也叫软件体系结构风格,是描述某一特定应用领域中系统组织方式的惯用模式,一个体系结构定义一个词汇表和一组约束。体系结构反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个子模块和子系统有效地组织成一个完整的系统。

一、数据流体系风格

1、批处理体系结构风格

        在批处理风格的架构中,每个处理步骤是一个单独的程序,每一步必须在前一步结束后才能开始,并且数据必须是完整的,以整体的方式传递。它的基本构件是独立的应用程序,连接件是某种类型的媒介。连接件定义了相应的数据流图,表达拓扑结构。

2、管道-过滤器体系结构风格

        当数据源源不断地产生,系统就需要对这些数据进行若干处理(分析、计算、转换等)。现有的解决方案是把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入。每个处理步骤由一个过滤器(Filter) 实现,处理步骤之间的数据传输由管道(Pipe) 负责。每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中。管道-过滤器风格的基本构件是过滤器,连接件是数据流传输管道。

管道过滤器有两部分组成:过滤器、管道。

  • 过滤器:是其中的核心构件,负责业务的处理。它从用户或上游管道获得输入数据,进行数据的变换和增量计算,处理完成后,通过下游管道传递给另一个过滤器。过滤器是独立的实体,不能与其他的过滤器共享数据,而且一个过滤器不知道它上游和下游其他过滤器信息
  • 管道:一种数据传输途径。典型的有Unix/Linux操作系统的管道文件,消息队列。保证数据先进先出,单向进出。

3、相同点

  • 由一系列构件或者组件按序拼接,上一阶段输出为下一阶段输入,组件间只通过数据传递交互;
  • 具备高内聚低耦合、可复用、高吞吐、隐蔽性强的特点

4、不同点:

  • 批处理的数据必须是完整的;管道-过滤的数据是增量的。
  • 批处理需要完成前序任务,再进行后续任务;管道-过滤是不断输入的数据流方式。

二、调用/返回体系结构风格

1、主程序/子程序风格

        主程序/子程序风格一般采用单线程控制,把问题划分为若干处理步骤,构件即为主程序和子程序。子程序通常可合成为模块。过程调用作为交互机制,即充当连接件。调用关系具有层次性,其语义逻辑表现为子程序的正确性取决于它调用的子程序的正确性。

        构件即为主程序和子程序;过程调用作为交互机制,充当连接件

2、面向对象体系结构风格

        抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面向对象系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。

        这种风格的构件是对象,连接件即对象间交互的方式。

3、层次型体系结构风格

        层次系统组成一个层次结构,每一层为上层提供服务,并作为下层的客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层接口只对相邻的层可见。这样的系统中构件在层上实现了虚拟机。连接件由通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,这同样为软件重用提供了强大的支持。

4、客户端/服务端体系结构风格

  • 两层C/S体系结构

组成部分:数据库服务器、客户应用程序和网络

服务器(后台)负责处理数据,客户机(前台)完成与用户的交互任务,即胖客户家,瘦服务器。

  • 三层C/S体系结构

应用功能分为:表示层、功能层、数据层,即瘦客户机,胖服务器。

表示层是应用的用户接口部分,通常使用图形用户界面;

功能层是应用的主体,实现具体的业务处理逻辑;

数据层是数据库管理系统。

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

1、仓库体系结构

        仓库(Repository) 是存储和维护数据的中心场所。在仓库风格中,有两种不同的构件:中央数据结构(说明当前数据的状态)和一组对中央数据进行操作的独立构件。连接件即为仓库与独立构件之间的交互

2、黑板体系结构风格

        黑板体系结构风格适用于解决复杂的非结构化的问题,能在求解过程中综合运用多种不同知识源,使得问题的表达、组织和求解变得比较容易。黑板系统是一种问题求解模型,是组织推理步骤、控制状态数据和问题求解之领域知识的概念框架。它将问题的解空间组织成一个或多个应用相关的分级结构。分级结构的每一层信息由一个唯一的词汇来描述,它代表了问题的部分解。领域相关的知识被分成独立的知识模块,它将某一层次中的信息转换成同层或相邻层的信息。各种应用通过不同知识表达方法、推理框架和控制机制的组合来实现。影响黑板系统设计的最大因素是应用问题本身的特性,但是支撑应用程序的黑板体系结构有许多相似的特征和构件。

        比如信号处理,问题规划,语音识别,编译器优化等。

四、虚拟机体系结构风格

1、解释器体系结构风格

        一个解释器通常包括完成解释工作的解释引擎,一个包含将被解释的代码的存储区,一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行进度的数据结构。

        解释器可以仿真硬件的执行过程和一些关键应用,通常被用来弥合程序语义与硬件语义之间的差异。其缺点是执行效率较低。

2、规则体系结构风格

基于规则的系统包括规则集、规则解释器、规则/数据选择器及工作内存。

五、独立构件体系结构风格

1、进程通信体系结构风格

构件之间通过独立的进程来实现消息传递

2、事件系统体系结构风格

        事件驱动系统风格是基于事件的隐式调用风格,构件不直接调用一个过程,而是触发或广播一个或多个事件。后续执行过程会被注册在一个或多个事件,当对应的事件被触发或者广播时,系统会自动调用该事件中注册的过程,执行相应的模块功能。

标签:十一,连接件,构件,管道,风格,软件架构,过滤器,体系结构
From: https://blog.csdn.net/xiayinggudeng/article/details/143173524

相关文章

  • Java程序设计(四十一):基于Java的厨具购物系统的实现与数据分析
    目录引言1.系统架构1.1系统架构图2.主要功能模块2.1管理员功能2.2用户功能2.3商家功能3.技术选型3.1后端技术3.2前端技术4.数据库设计4.1数据库表4.2数据库关系5.系统实现5.1项目结构5.2后端实现5.2.1启动类5.2.2用户控制器5.2.3用户服务......
  • 论软件架构设计及应用
    摘要:2022年5月,我公司承接了某知名地产集团的楼宇供销存管理系统的项目开发,该项目为集团管理重点楼宇管理系统。建设该项目的目的是帮助集团管理各个区域楼栋楼栋规划数量、销售数量、库存数量等管理工作。我作为系统架构师主要负责整个系统的架构设计工作,在本系统开发设计过......
  • 京淘自动助手,自动完成京东和淘宝的双十一活动任务
    功能介绍:这是一款基于auojs4.1制作打包的自动化脚本,无需root即可使用,仅支持安卓端。它可以自动完成某东和某宝的双十一活动任务,但一定要给予无障碍和悬浮窗权限。至于安全问题大家也无需担心,这款软件与李跳跳的原理是一样的,不会涉及信息安全问题。相比其他一些同类型软......
  • 京淘自动助手,自动完成京东和淘宝的双十一活动任务
    功能介绍:这是一款基于auojs4.1制作打包的自动化脚本,无需root即可使用,仅支持安卓端。它可以自动完成某东和某宝的双十一活动任务,但一定要给予无障碍和悬浮窗权限。至于安全问题大家也无需担心,这款软件与李跳跳的原理是一样的,不会涉及信息安全问题。相比其他一些同类型软......
  • 双十一数码好物大赏:双十一必买的五款高性能好物分享!
    随着双十一购物节的到来,无数消费者都跃跃欲试,准备迎接一年一度的大型促销活动。在这个特殊的时间,数码产品因其出色的性能和多样的功能而备受关注。为了帮助大家更好地选择适合自己的数码产品,我们特别整理了今年双十一不容错过的五款高性能数码好物。这些产品不仅在技术上具......
  • 实战篇:(二十一)Java 开发指南:避免 18个常见错误,提升你的编码效率
    实战篇:(二十一)Java开发指南:避免18个常见错误,提升你的编码效率Java作为一门成熟的编程语言,拥有丰富的生态系统与广泛的应用。然而,即使是经验丰富的开发者,也时常会在日常开发中犯一些常见的错误。这些错误不仅会影响代码的可读性,还可能造成性能问题甚至难以调试的Bug。本......
  • C#学习笔记(十一)
    C#学习笔记(十一)第八章垃圾回收机制GC与类的静态方法一、垃圾回收机制GC1.对象如何被销毁的二、类的静态方法1.静态方法的使用2.为什么会报错2.1静态方法定义中的报错2.2方法使用中的报错3.什么情况下用静态第八章垃圾回收机制GC与类的静态方法一、垃圾......
  • 第十一章 TypeScript模块和命名空间的介绍和使用
    文章目录一、模块1.导出基础导出重新导出导出重命名2.导入基础导入导入重命名3.默认导出4.模块化兼容exports=import=require('')编译结果二、命名空间1.例子2.命名空间3.引入命名空间三、模块和命名空间一、模块JavaScript在ES2015中引入了模块......
  • 火山引擎数据飞轮线上研讨会即将开启,助力消费品牌双十一造爆款
    随着双十一的临近,各大品牌方的备战工作已进入紧张而有序的倒计时阶段。这场持续十多年的电商大促,对消费者来说是购物狂欢节,对各大品牌方来说,则是更是品牌实力与策略的比拼。面对日益激烈的市场竞争,如何更好地撬动增长红利,成为摆在每个品牌面前的重大课题。 在众多热门消费品牌......
  • 虚拟机风格
    虚拟机风格是一种构建系统架构的方法,旨在创建一个抽象的运行环境,以便在其上运行和解释特定的程序语言或规则集。这种架构风格增加了系统的灵活性,允许用户在一个统一的虚拟环境中执行不同的代码、应用程序或规则,避免直接依赖底层硬件或系统。它通常用于复杂系统中,实现抽象层......