常见架构风格及其优缺点

news/2024/12/12 11:30:02/文章来源:https://www.cnblogs.com/vizzini/p/18602088

常见风格分类

  1. 数据流风格:批处理和管道/过滤器。
  2. 调用/返回风格:主程序/子程序、层次结构和C/S。
  3. 面向对象风格。
  4. 独立部件风格:进程通信和事件驱动。
  5. 虚拟机风格:解释器和基于规则的系统。
  6. 数据共享风格:数据库系统和黑板系统。

管道/过滤器风格

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

  • 简单性。
  • 支持复用。
  • 系统具有可扩展性和可进化型。
  • 系统并发性(每个过滤器可以独立运行,不同子任务可以并行执行,提高效率)。
  • 便于系统分析。
    缺点:
  • 系统处理工程是批处理方式。
  • 不适合用来设计交互式应用系统。
  • 由于没有通用的数据传输标准,因此每个过滤器都需要解析输入数据和合成数据。
  • 难以进行错误处理。

面向对象风格

在面向对象体系结构中,软件工程的模块化、信息隐藏、抽象和重用原则得到了充分的体现。在这种体系结构中,数据表示和相关原语操作都被封装在抽象数据类型中。在这种风格中,对象是构件,也成为抽象数据类型的实例。对象与对象之间,通过函数调用和过程调用来进行交互。
优点:

  • 一个对象对外隐藏了自己的详细信息
  • 对象将数据和操作封装在一起
  • 继承和封装方法为对象服用提供了技术支持
    缺点:
  • 如果一个对象要调用另一个对象,则必须知道它的标识和名称
  • 会产生连锁反应

事件驱动风格

事件驱动就是在当前系统的基础之上,根据事件声明和发展状况来驱动整个应用程序运行。
事件驱动体系结构的基本思想是:系统对外部的行为表现可以通过它对事件的处理来实现。在这种体系结构中,构件不再直接调用过程,而是声明事件。系统其他构件的过程可以在这些事件中进行注册。当触发一个事件的时候,系统会自动调用这个事件中注册的所有过程。因此,触发一个事件会引起其他构件的过程调用。
优点:

  • 事件声明者不需要知道哪些构件会响应事
  • 提高了软件复用能力
  • 便于系统升级
    缺点:
  • 构件放弃了对计算的控制权,完全由系统来决定
  • 存在数据·传输问题

层次风格

在分层风格中,系统将划分为一个层次结构。
每一层都具有高度的内聚性,包含抽象程度一致的各种构件,支持信息隐藏。
分层有助于将复杂系统划分为独立的模块,从而简化程序的设计和实现。
通过分解,可以将系统功能划分为一些具有明确定义的层,较高层是面对特定问题,较低层具有一般性。
每层都为上层提供服务,同时又利用了下层的逻辑功能。在分层体系结构中,每一层只对相邻层可见。层次之间的连接件是协议和过程调用。用以实现各层之间的交互。
优点:

  • 设计者可以将系统分解为一个增量的步骤序列从而完成复杂的业务逻辑。
  • 每一层之多和相邻的上下两层进行交互。
  • 只要给相邻层提供相同的接口。
    缺点:
  • 并非所有系统都能够按照层次来进行划分。
  • 很难找到一种合适和正确的层次划分方法。
  • 在传输数据是,需要经过多个层次。
  • 多层结构难以调试。

C2风格

C2结构是一个层次网络,包括构件和连接件两种软件元素。构件和连接键都是包含顶部和底部的软件元素。构件和构件之间只能通过连接件进行连接,而连接件之间则可以直接进行连接。构件的顶部、底部分别与连接件的底部、顶部连接,连接件的顶部、底部也分别与连接件的底部、顶部连接。(类似总线的东西)
在C2体系结构中,构件之间的所有通信必须使用消息传递机制来实现。构件之间所有传递的信息可以分为两种,一种是向上层构件发出服务请求的请求消息,另一种是向下层构件发出指示状态变化的通知消息。连接件负责消息的过滤、路由、广播、通信和相关处理。
优点:

  • 可以使用任何编程语言来开发构件,构件重用和替换比较容易实现
  • 具有一定的扩展能力,可以有多种不同粒度的构件
  • 构件不需要共享地址空间,避免了共享全局变量所造成的复杂关系
  • 具有良好的适应性
  • 在C2体系结构中,可以使用多个工具集和多种媒体类型,能够动态地更新系统的框架结构
    缺点:
  • 构件和构件之间不允许直接相连
  • 与某一个连接件相关联的构件和连接件的数目没有限制

仓库风格

在这种风格中,有两种不同类型的软件元素:一种是中央数据单元,也成为资源库,用于表示系统的当前状态;另一种是相互依赖的构件组,这些构件可以对中央数据单元实施操作。中央数据单元和构件之间可以进行信息交换,这是数据共享体系结构的技术实现基础
根据所使用的控制策略不同,数据共享体系结构可以分为两种类型,一种是传统的数据库,另一种是黑板。

  • 如果由输入流中的事件来驱动系统进行信息处理,把执行结构存储到中央数据单元,则这个系统就是数据库应用系统。
  • 如果由中央数据单元的当前状态来驱动系统运行,则这个系统就是黑板应用系统。
    黑板是数据共享体系结构的一个特例,用以解决状态冲突并处理可能存在的不确定性知识源。黑板常用于信号处理,如语音和模式识别,同时在自然语言处理领域中也有广泛的应用,如机器翻译和句法分析。
    优点:
  • 便于多客户共享大量数据,而不必关心数据是何时产生的、由谁提供的及通过何种途径来提供
  • 便于将构件作为知识源添加到系统中来
    缺点:
  • 对共享数据结构,不同知识源要达成一致
  • 需要同步机制和加锁机制来保证数据的完整性和一致性,增大了系统设计的复杂度

C/S 风格

优点:

  • 客户机构件和服务器构件分别运行在不同的计算机上,有利于分布式数据的组织和处理。
  • 构件之间的位置是相互透明的,客户机程序和服务器程序都不必考虑对方的实际存储位置。
  • 客户机侧重数据的显示和分析,服务器则注重数据的管理。
  • 构件之间是彼此独立和充分隔离的。
  • 将大规模的业务逻辑分布到多个通过网络连接的低成本的计算机,降低了系统的整体开销。
    缺点:
  • 开发成本较高。
  • 在开发C/S结构系统时,大部分工作都都集中在客户机程序的设计上,增加了设计的复杂度。
  • 信息内容和形式单一。
  • 如果对C/S体系结构的系统进行升级,开发人员需要到现场来更新客户机程序,同时需要对运行环境进行重新配置,增加了维护费用。
  • 两层C/S结构采用了单一的服务器,同时以局域网为中心,因此难以扩展到Intranet和Internet。
  • 数据安全性不高。

B/S 风格

B/S结构是三层C/S体系结构的一种实现方式,主要包括浏览器,Web服务器和数据库服务器。B/S结构主要利用不断成熟的WWW技术,结合浏览器的多脚本语言,采用通用浏览器来实现原来需要复杂的专用软件才能实现的强大功能,节约了开发成本。
B/S体系结构的核心是Web服务器,可以将应用程序以网页的形式存放在Web服务器上。
当用户运行某个应用程序时,只需要在可以断的浏览器中输入响应的 URL,向 Web 服务器提出 HTTP 请求。
当Web 服务器接收 HTTP 请求之后,会调用相关的应用程序(Servlets),同时向数据库服务器发送数据操作请求。
数据库服务器对数据操作请求进行响应,将结果返回给Web服务器的应用程序。
Web服务器应用程序执行业务处理逻辑,利用 HTML 来封装操作结果,通过浏览器呈现给用户。在B/S结构中,数据请求、王爷生成、数据库访问和应用程序执行全部由Web 服务器来完成。
优点:

  • 客户端只需要安装浏览器,操作简单。
  • 运用HTTP标准协议和统一客户端软件,能够实现跨平台通信。
  • 开发成本比较低,只需要维护Web服务器程序和中心数据库。
    缺点:
  • 个性化程度比较低,所有客户端程序的功能都是一样的。
  • 客户端数据处理能力比较差。
  • 在B/S结构的系统中,数据提交一般以页面为单位,动态交互性不强,不利于在线事务处理。
  • B/S体系结构的可扩展性比较差,系统安全性难以保障。
  • B/S结构的应用系统查询中心数据库,其速度要远低于C/S体系结构。

MVC 风格

优点:

  • 多个视图与一个模型相对应
  • 具有良好的移植性。
  • 系统被分割为三个独立的部分,当功能发生变化时,改变其中的一个部分就能够满足要求。
    缺点:
  • 增加了系统设计和运行复杂性。
  • 视图与控制器连接过于紧密,妨碍两者的独立复用。
  • 视图访问模型的效率比较低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/851294.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

告别混乱:文档管理系统如何重塑团队工作?

在当今数字化飞速发展的时代,团队协作效率成为企业成功的关键因素之一。而一款出色的文档管理系统软件,就如同团队的智慧中枢,默默地为各项工作提供强大的支持。 以一个项目制的营销团队为例,在日常工作中,从项目策划到执行,涉及大量的文档资料。如市场调研报告、创意策划…

信而泰推出POE交换机一站式自动化测试方案

方案背景 传统POE交换机测试工序主要有扫条码,接网线,POE供电测试,流量测试,LED测试,信息核对等,基本都依赖于手工操作,效率偏低,并且LED测试,POE供电测试依赖人工判断是否良品,容易误测。如果再考虑到操作员工变动等因素,培训员工的时间,员工操作方法不统一等情况…

自定义typeHandler将包含经纬度对象插入到mysql的point类型的字段中

自定义typeHandler将包含经纬度对象插入到mysql的point类型的字段中博客:https://www.emanjusaka.top 公众号:emanjusaka的编程栈 下面给出关键部分代码,完整代码请访问原文地址mysql 中的 point 类型在 java 中没有对应的类型匹配,需要我们自定义 typeHandler 去处理。 环…

cortex-m3基础-概览

cortex-m3是一个32位处理器内核:总线(数据、地址)宽度是32位、寄存器位宽是32位;内核结构为哈佛结构,拥有独立的数据总线和指令总线,可以并行进行指令执行和数据访问;简介cortex-m3是一个32位处理器内核:总线(数据、地址)宽度是32位、寄存器位宽是32位;内核结构为哈…

渠道管理智慧:与新华三谈数字化革新与共赢策略

智算智存全能担当 新华三集团作为数字化解决方案领导者,致力于成为客户业务创新、数字化转型值得信赖的合作伙伴。作为紫光集团旗下的核心企业,新华三通过深度布局"云-网-算-存-端"全产业链,不断提升数字化和智能化赋能水平。新华三拥有计算、存储、网络、5G、安全、…

RocksDB 内存超限问题剖析

在使用 RocksDB 存储引擎的过程中,有部分开发者遇到了内存使用超出预期的情况。本文针对这一问题展开了深入分析,并提出了相应的解决方案和优化建议,提升系统性能和稳定性。作者:来自 vivo 互联网服务器团队- Zeng Luobin在使用 RocksDB 存储引擎的过程中,有部分开发者遇到…

20242822《Linux内核原理与分析》第十二周作业

缓冲区溢出漏洞实验 一、实验简介 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。 二、实验准备…

信而泰网络测试仪校准解决方案

一、影响仪表精度的因素 网络测试仪是用于对数据网络及其相关设备性能参数进行测试的仪表,可以模拟网络终端产生流量,进行网络性能测试,对网络状态进行实时监测,分析和统计。数字计量对于精准数据的网络测试仪来说是一剂强心针,它能促进网络测试仪的规范化、数据化、准确化…

京准电钟:计算机网络监控系统搭建NTP校时服务器

京准电钟:计算机网络监控系统搭建NTP校时服务器京准电钟:计算机网络监控系统搭建NTP校时服务器 京准电钟:计算机网络监控系统搭建NTP校时服务器 京准电钟官微——ahjzsz 我们都知道,对于监控设备来说,设备时间的统一和精准,是保障录像文件及日志可靠的关键。 虽然录像机、…

依靠 PROFINet 与 Modbus 协议让西门子 PLC 成功连接 RS485 接口变频器

在工业网络环境中,不同网络协议的沟通不畅是否曾让您倍感困扰?别担心,捷米特JM-RTU-PN 数据通讯模块横空出世,为您化解这一棘手难题!此模块专注于 PROFINet 网络与Modbus 网络间的数据交互,能够巧妙地将 RS485 网络接入西门子 PLC的PROFINet 网络架构之中,并且全面支持多…

广成CAN-485-西门子PLC调试

1,TBOX波特率500K, 2,信号解析

易基因:WGBS揭示Vpr蛋白在HIV-1感染中对CD4+ T细胞DNA甲基化变化的作用|项目文章

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 全球约有3800万HIV-1感染者,每年新增感染者约150万。HIV-1主要攻击CD4+ T细胞,导致其耗竭,最终发展为艾滋病和死亡。尽管抗逆转录病毒治疗有效抑制HIV-1复制,但由于病毒在潜伏感染细胞中的持续存在,这种病…