精华内容
下载资源
问答
  • 10个常见软件体系结构模式

    万次阅读 2018-05-07 14:06:04
    根据维基百科,架构模式是在特定环境下软件体系结构常见问题通用可重用解决方案。架构模式类似于软件设计模式,但具有更广范围。在本文中,我将简要地解释以下10种常见架构模式及其用法,优缺点。分层模式...

    有没有想过如何设计大型企业级系统? 在开始主要软件开发之前,我们必须选择一个合适的架构来为我们提供所需的功能和质量属性。 因此,在将它们应用于我们的设计之前,我们应该了解不同的体系结构。

    什么是建筑模式?

    根据维基百科,

    架构模式是在特定环境下软件体系结构中常见问题的通用可重用解决方案。架构模式类似于软件设计模式,但具有更广的范围。

    在本文中,我将简要地解释以下10种常见架构模式及其用法,优缺点。

    1. 分层模式
    2. 客户端 - 服务器模式
    3. 主从模式
    4. 管道过滤器模式
    5. 经纪人模式
    6. 点对点模式
    7. 事件总线模式
    8. 模型 - 视图 - 控制器模式
    9. 黑板模式
    10. 解释器模式

    1.分层模式

    这种模式可以用来构建可以分解为子任务组的程序,每个子任务都处于特定的抽象层次。 每层为下一个更高层提供服务。

    一般信息系统最常见的4层如下。

    • 表示层 (也称为UI层 )
    • 应用程序层 (也称为服务层 )
    • 业务逻辑层 (也称为域层 )
    • 数据访问层 (也称为持久层 )

    用法

    • 一般桌面应用程序
    • 电子商务Web应用程序。
    分层模式

    2.客户端 - 服务器模式

    这种模式由两方组成; 一个服务器和多个客户端 。 服务器组件将向多个客户端组件提供服务。 客户端向服务器请求服务,服务器向这些客户端提供相关服务。 此外,服务器继续侦听客户端请求。

    用法

    • 在线应用程序,如电子邮件,文件共享和银行业务
    客户端 - 服务器模式

    3.主从模式

    这种模式由两方组成; 主人奴隶 。 主组件将工作分配给相同的从组件,并根据从组件返回的结果计算最终结果。

    用法

    • 在数据库复制中,主数据库被视为权威来源,并且从属数据库与其同步。
    • 在计算机系统中连接到总线的外设(主从驱动器)。
    主从模式

    4.管道过滤器模式

    这种模式可以用来构造产生和处理数据流的系统。 每个处理步骤都包含在一个过滤器组件中。 要处理的数据通过管道传递。 这些管道可用于缓冲或同步目的。

    用法

    • 编译器。 连续的过滤器执行词法分析,解析,语义分析和代码生成。
    • 生物信息学工作流程。
    管道过滤器模式

    5.经纪人模式

    这种模式用于构建具有解耦组件的分布式系统。 这些组件可以通过远程服务调用相互交互。 代理组件负责协调组件之间的通信。

    服务器将其功能(服务和特性)发布给代理。 客户向经纪人请求服务,然后经纪人将客户重定向到其注册中心的适当服务。

    用法

    经纪人模式

    6.点对点模式

    在这种模式中,单个组件被称为同级 。 同事可能既作为客户端 ,向其他同行请求服务,又作为服务器向其他同行提供服务。 对等体可以充当客户端或服务器或两者兼而有之,并且可以随着时间动态地改变其角色。

    用法

    点对点模式

    7.事件总线模式

    这种模式主要处理事件,并有四个主要组成部分; 事件源 , 事件监听器 , 通道事件总线 。 信息源将消息发布到事件总线上的特定频道。 听众订阅特定频道。 听众会收到发布到他们之前订阅的频道的消息。

    用法

    • Android开发
    • 通知服务
    事件总线模式

    8.模型 - 视图 - 控制器模式

    这种模式也称为MVC模式,将交互式应用程序分为三部分,

    1. 模型 - 包含核心功能和数据
    2. 视图 - 将信息显示给用户(可以定义多个视图)
    3. 控制器 - 处理来自用户的输入

    这样做是为了将信息的内部表示与信息呈现给用户并从用户接受的方式分开。 它将组件分离并允许有效的代码重用。

    用法

    • 主要编程语言的万维网应用程序体系结构。
    • Web框架,如DjangoRails 。
    模型 - 视图 - 控制器模式

    9.黑板模式

    这种模式对于没有确定性解决策略的问题是有用的。 黑板图案由3个主要组件组成。

    • 黑板 - 包含来自解决方案空间的对象的结构化全局内存
    • 知识源 - 具有自己表示的专用模块
    • 控制组件 - 选择,配置和执行模块。

    所有组件都可以访问黑板。 组件可能产生添加到黑板的新数据对象。 组件在黑板上查找特定类型的数据,并可能通过与现有知识源的模式匹配找到这些数据。

    用法

    • 语音识别
    • 车辆识别和跟踪
    • 蛋白质结构鉴定
    • 声纳信号解释。
    黑板模式

    10.解释器模式

    此模式用于设计解释用专用语言编写的程序的组件。 它主要指定如何评估程序行,称为用特定语言编写的句子或表达式。 基本思想是为语言的每个符号设置一个类。

    用法

    • 数据库查询语言,如SQL。
    • 用于描述通信协议的语言。
    解释器模式

    建筑模式的比较

    下面的表格总结了每种架构模式的优缺点。

    建筑模式的比较

    希望你发现这篇文章有用。

    原文:https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013

    展开全文
  • 常见软件体系结构

    2021-03-25 15:18:17
    软件体系结构设计一个中心问题是能否重用软件体系结构模式,不同体系结构本质区别是重用方式不同。M.shaw等人给出了一些体系结构风格: 分层模式 客户端 - 服务器模式 主从模式 管道过滤器模式 经纪人模式 点对...

    概述

    体系结构可以看成一组原则。你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。软件体系结构设计的一个中心问题是能否重用软件体系结构模式,不同体系结构的本质区别是重用方式不同。M.shaw等人给出了一些体系结构风格:

    • 分层模式
    • 客户端 - 服务器模式
    • 主从模式
    • 管道过滤器模式
    • 经纪人模式
    • 点对点模式
    • 事件总线模式
    • 模型 - 视图 - 控制器模式
    • 黑板模式
    • 解释器模式
    • 面向对象

    分别陈述

    管道过滤模式

    主要包括过滤器和管道两种元素。在这种结构中,构件被称为过滤器,负责对数据进行加工处理。每个过滤器都有一组输入端口和输出端口,从输入端口接收数据,经过内部加工处理之后,传送到输出端口上。数据通过相邻过滤器之间的连接件进行传输,连接件可以看作输入数据流和输出数据流之间的通路,这就是管道。
    原理图:在这里插入图片描述
    优点:

    • 简单性。
    • 支持复用。
    • 系统具有可扩展性和可进化型。
    • 系统并发性(每个过滤器可以独立运行,不同子任务可以并行执行,提高效率)。
    • 便于系统分析。

    缺点:

    • 系统处理工程是批处理方式。
    • 不适合用来设计交互式应用系统。
    • 由于没有通用的数据传输标准,因此每个过滤器都需要解析输入数据和合成数据。
    • 难以进行错误处理。

    传统的编译器就是管道/过滤器体系结构风格的一个实例。编译器由词法分析、语法分析、语义分析、中间代码生成、中间代码优化和目标代码生成几个模块组成,一个模块的输出是另一个模块的输入。

    展开全文
  • 面向模式的软件体系结构,卷2,详细介绍并发网络服务器 C 语言常见问题集 转载于:https://www.cnblogs.com/unixshell/p/3825490.html

    面向模式的软件体系结构,卷2,详细介绍并发网络服务器

    C 语言常见问题集

    转载于:https://www.cnblogs.com/unixshell/p/3825490.html

    展开全文
  • 本资源可以作为《软件设计模式体系结构》的复习使用,包含几种常见的设计模式的样例及其代码,需要的朋友可以下载哦!
  • 中间件是Web服务、...四位作者强强联手,撰写了各自擅长的模式部分,旨在为读者讲解常见的设计问题、驱动因素、成功的解决方案以及使用效果。 本书面向专业的软件开发人员,帮助他们以全新的视角进行软件架构设计。
  • •CS(Client/Server,客服机/服务器)结构,C/S结构在技术上很成熟,它主要特点是交互性强、具有安全存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数业务逻辑和UI展示,又...

    黄色标注部分重点注意

    CS结构

           •CS(Client/Server,客服机/服务器)结构,C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任务分配到Client 和Server两端,降低了系统的通讯开销。C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用

    BS结构

           •BS(Browser/server,浏览器/服务器)结构,BS是伴随着Internet技术的兴起,对C/S架构的改进,为了区别于传统的C/S 模式,特意称为B/S模式。在这种结构下,通过W3浏览器来进入工作界面,极少部分事务逻辑在前端(Browser)实现,它的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,难以实现传统模式下的特殊功能要求。它是瘦客户端,对大量的数据输入以及报表的应答等都需要通过浏览器与服务器进行交互,通信开销大,而且对于实现复杂的应用构造有较大的困难

    CS结构与BS结构比较

    B/S软件体系结构 C/S软件体系结构
    硬件条件 广域网,不必是专门的网络环境,只要是能接入Internet的用户即可 局域网,专门的小范围网络硬件环境,用户固定,用户数量有限
    系统维护 客户端零维护,易于实现系统的无缝升级 升级和维护难,成本高
    软件重用性 多重结构,各构件相互独立,可重用性比较好 单一结构,软件整体性较强,各部分间的耦合性强,可重用性较差
    平台相关性 客户端和服务端是平台无关的 客服端和服务端是平台相关的,多是Windows平台
    完全性 面对不可知的用户群,对信息安全的控制能力相对较弱 面对相对固定的用户群,对信息安全的控制能力强

    小结:CS响应速度快,安全性强,一般应用于局域网中,但是开发维护成本高;BS可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。所以有些单位日常办公应用BS,在实际生产中使用CS结构

    有问题可以在评论指正,欢迎讨论,谢谢大家!!

    展开全文
  • 第1章 软件体系结构的相关概念 软件体系结构 软件体系 = 构件 + 连接件 + 约束 构件:是某种功能可复用结构单元 连接件:是构件之间建立和维护行为关联与信息传递途径,连接需要两方面支持:连接发生和...
  • 常见软件体系结构模式及其特点软件体系结构设计方法软件体系结构评审方法(ATAM) 软件体系结构概念及ABC 软件体系结构概念 某个软件或计算机系统的软件体系结构是该系统的一个或多个结构,它们由软件元素、这些...
  • 软件体系结构

    万次阅读 2018-12-18 20:37:41
    原文作者:Petter Liu ... 架构风格是一组原则。你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。... 常见的软件体系结构风格涉及: 设计词汇表是什么?或者构件和连接器的类型是什么? 可容许...
  • 就像生活中常见的转接头,转接头可以帮助我们将一种接口转换为另一种完全不同的接口。那么这个转接头就是适配器。 适配器分为两种: 类适配器 对象适配器 类适配器类图: 可以看出,类适配器模式需要语言支持多...
  • 链表是很常见一种数据结构,责任链模式的结构其实和链表相差无几,唯一区别就是责任链模式中所有对象都有一个共同父类(或接口): 在责任链模式中,N个 Handler 子类都处理同一个请求,只不过具体职责有所...
  • 目录 1、软件框架 2、模式和框架 ...4、常见设计模式 ...5、常见JAVA框架 ...面向某领域(包括业务领域,如ERP,和计算领域,...可以说,软件框架是领域分析结果的软件化,是领域内最终应用系统的模板。随着软件规模的扩
  • 整理自网络   10种常见的软件架构模式 有没有想过要设计多大的企业规模系统?在主要的软件开发开始...架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。架构模式与...
  • 系统软件开发系列文章之一:IA-32体系结构CPU保护模式常见误区   (20100603随笔版,不保证完全学术严谨)   立志于成为系统程序员同学们,或者尝试操作系统开发程序员们,在阅读IA-32体系结构(以下...
  • 想知道如何设计大型企业级的系统吗?...在本文中,我会简单介绍下列10种常见的架构模式,及其用途、优势和劣势。 分层模式模式可用于构建可分解为子任务组的程序,其中每个都处于特定的抽象级别。每一次都向更高层
  • 有没有想过要设计多大的企业规模系统?在主要的软件开发开始之前,我们必须选择一个合适的体系结构,它将为我们提供所需的功能和质量属性。因此,在将它们应用到我们的设计之前,我们应该了解不同的体系...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 398
精华内容 159
关键字:

常见的软件体系结构模式