[导读]想知道如何设计大型企业级的系统吗?在开始主要的代码开发之前,我们必须选择一种合适的体系架构,它将为我们提供所需的功能和质量属性。因此,在将它们应用到我们的设计之前,应该先了解不同的体系结构。- 什么是架构模式 -根据维基百科,架构模式是在给定上下文中解决软件架构中常见问题...
想知道如何设计大型企业级的系统吗?在开始主要的代码开发之前,我们必须选择一种合适的体系架构,它将为我们提供所需的功能和质量属性。因此,在将它们应用到我们的设计之前,应该先了解不同的体系结构。
- 什么是架构模式 -根据维基百科,架构模式是在给定上下文中解决软件架构中常见问题的通用、可重用的解决方案。架构模式类似于软件设计模式,但范围更广。
在本文中,我会简单介绍下列10种常见的架构模式,及其用途、优势和劣势。- 分层模式 -该模式可用于构建可分解为子任务组的程序,其中每个都处于特定的抽象级别。每一次都向更高层提供服务。
一般信息系统中最常见的4层划分如下:- Presentation layer 表示层(也就是UI层)
- Application layer 应用层(也就是服务层)
- Business logic layer 业务逻辑层(也就是领域层)
- Data access layer 数据访问层(也就是数据持久层)
应用
- 客户端-服务器模式 -该模式由两部分组成:一个服务端和多个客户端,服务器向多个客户端提供服务。客户端向服务器发起请求,服务器向这些客户端提供相关服务,之后,服务器继续侦听客户端的请求。应用
- 主从模式 -该模式也分为两块:主模块和从模块。主模块在相同的从模块之间分配工作,并根据从模块返回的结构来计算最终的结果。应用- 在数据库复制中,主数据库被视作权威数据源,而从数据库与其保持同步
- 连接到计算机系统总线上的外围设备(主驱动器和从驱动器)
- 管道过滤模式 -此模式可用于构建产生和处理数据流的系统。每个处理步骤都包含在一个过滤器组件中,要处理的数据通过管道传递。这些管道可用于缓冲或者同步。应用
- 编译器。依次使用不同的过滤器执行词法分析、解析、语法分析和代码生成
- 生物信息学中的工作流程
- Broker模式 -此模式是使用解耦的组件构建分布式系统,这些组件可以通过远程服务调用实现交互。代理组件负责协调组件之间的通信。
服务器将它们的功能(服务和特征等)发布到代理,客户端向代理请求服务,然后代理根据其注册表将客户端请求转发给合适的服务。应用
- 消息代理软件,如 Apache ActiveMQ, Apache Kafka, RabbitMQ 和 JBoss Messaging.
- P2P模式 -在此模式中,每个独立的组件被称为对等点(或对等端,peer)。对等端既可以充当客户端(向其它对等端请求服务),又可以充当服务器(向其它对等方提供服务)。同一个对等端可能既是客户端,又是服务器,并且可以动态改变其角色。应用
- 文件共享网络,如Gnutella 和 G2
- 多媒体协议,如P2PTV 和 PDTP
- 基于加密货币的产品,如比特币和区块链
- 事物总线模式 -该模式主要处理组件,有4个重要的组件:事件源、事件侦听器、通道和事件总线。事件源将消息发送到事件总线上的特定通道,侦听器会订阅特定的频道。当消息发送到频道中后,订阅该频道的侦听器会收到该消息的通知。应用
- MVC模式 -该模式将交互式应用分为三个部分,- 模型——包含核心功能和数据
- 视图——向用户显示信息(可以定义多个视图)
- 控制器——处理用户的输入
这样做是为了将数据的内部表示与用户输入和向用户展示的形式分离开来,这样可以解耦组件,同时也可以进行高效的代码重用。应用
- 主流编程语言的互联网应用架构
- 网络框架,如Django 和 Rails.
- 黑板模式 -此模式对于尚无确定性解决方案的问题很有用,黑板模式由三部分组成:- 黑板—— 一个结构化的全局内存,包含解决方案领域的对象
- 知识源——具有自身含义的专业模块
- 控制组件——选择、配置和执行模块
所有组件都可以访问黑板,组件可能会产生要添加到黑板中的新数据对象,组件在黑板上寻找特定类型的数据,并且可以通过与现有知识源进行模式匹配来找到这些数据。应用
- 解释器模式 -此模式通常用于设计组件来解释使用专用语言写出的程序,它主要指定如何估算程序行,即以特定语言编写的语句或表达式。基本思想是为每种语言符号都设计一个类。应用
- 架构模式对比 -模式
| 优点
| 缺点
|
| 分层模式 | 一个底层服务可以被不同的高层服务使用; 分层结果更容易进行标准化,因为可以清晰地定义每个层级 层级内的修改不会影响其它层 | 不是普适性的架构; 某些场景下,需要跳过其中一些分层 |
| CS模式 | 容易对系列服务进行建模,供客户端请求 | 请求通常是在服务器的不同线程中进行响应的; 因为不同客户端有不同形式,进程间通信会造成很大负载 |
| 主从模式 | 准确性——服务的执行委托给了不同的从模块 | 从模块是独立的:没有共享状态; 主从模块间的通信延迟可能是一个问题,尤其在实时系统中。 |
| 管道过滤器模式 | 支持并发处理,其中输入、输出由数据流组成时,过滤器在接收到数据时即开始计算; 容易添加过滤器,系统很容易扩展; 过滤器可重用,可以通过重新组合已有的过滤器来创建不同的管道流。 | 整体效率受最慢的过滤程序限制; 从一个过滤器传递到另一个时,存在数据转换的负载 |
| 代理模式 | 允许对象进行动态的修改、增、删、重定位,对开发者来说内容分发是透明的 | 需要对服务描述进行标准化 |
| P2P模式 | 支持去中心化运算; 对任意节点的失败都有高度稳定性; 在资源和计算能力方面具有高度可伸缩性 | 无法保证服务质量,因为节点之间是自愿合作的; 很难保证安全; 性能取决于节点的数量 |
| 事件总线模式 | 很容易向系统好加入新的发布者、订阅者和连接; 对于高度分布式应用很有效 | 伸缩性可能是个难题,因为所有的信息传输都要通过相同的时间总线 |
| MVC模式 | 对同一模型很容易构建多个视图,在运行时可以任意连接或断开 | 增加了复杂性,用户操作可能导致很多不必要的更新 |
| 黑板模式 | 容易添加新应用; 很容易扩展数据空间中的结构 | 修改数据空间的结构很难,因为所有的应用都会被影响; 可能需要同步机制和访问控制 |
| 解释器模式 | 可能支持高度动态化行为; 有利于终端用户的可编程性; 增强了灵活性,因为替换一个解释程序很容易 | 因为解释型语言通常比编译型语言要慢,因此性能可能是一个问题 |
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。
关键字:
驱动电源
在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。
关键字:
工业电机
驱动电源
LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...
关键字:
驱动电源
照明系统
散热
根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。
关键字:
LED
设计
驱动电源
电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...
关键字:
电动汽车
新能源
驱动电源
在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...
关键字:
发光二极管
驱动电源
LED
LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。
关键字:
LED
驱动电源
功率因数校正
在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...
关键字:
LED照明技术
电磁干扰
驱动电源
开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源
关键字:
LED
驱动电源
开关电源
LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。
关键字:
LED
隧道灯
驱动电源
LED驱动电源在LED照明系统中扮演着至关重要的角色。由于LED具有节能、环保、长寿命等优点,使得LED照明在各个领域得到广泛应用。然而,LED的电流、电压特性需要特定的驱动电源才能正常工作。本文将介绍常用的LED驱动电...
关键字:
LED驱动电源
led照明
LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电源转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。
关键字:
LED
驱动电源
高压工频交流
种种迹象都在表明,半导体行业或已提前进入寒冬时期,越来越多的厂商开始扛不住了……
关键字:
LED
半导体
驱动电源
崧盛股份9日发布投资者关系活动记录表,就植物照明发展趋势、行业壁垒等问题进行分享。植物照明未来市场需求广阔崧盛股份指出,植物照明将会走向长期产业领域。主要原因有三:第一,LED植物照明赋能终端种植更具有经济价值。由于LE...
关键字:
崧盛股份
驱动电源
在当今高度发展的技术中,电子产品的升级越来越快,LED灯技术也在不断发展,这使我们的城市变得丰富多彩。 LED驱动电源将电源转换为特定的电压和电流,以驱动LED发光。通常情况下:LED驱动电源的输入包括高压工频交流电(即...
关键字:
LED
驱动电源
高压直流
人类社会的进步离不开社会上各行各业的努力,各种各样的电子产品的更新换代离不开我们的设计者的努力,其实很多人并不会去了解电子产品的组成,比如LED电源。
关键字:
LED
驱动电源
低压直流
随着科学技术的发展,LED技术也在不断发展,为我们的生活带来各种便利,为我们提供各种各样生活信息,造福着我们人类。LED驱动电源实际上是一种电源,但是它是一种特定的电源,用于驱动LED发射带有电压或电流的光。 因此,LE...
关键字:
LED
驱动电源
电流
LED灯作为一种新型节能和无污染光源,由于其特有的发光照明特性,在现代照明应用中发挥着革命性的作用。作为 LED 照明产业链中最为核心的部件之一,LED 驱动电源的驱动控制技术所存在的可靠性低、成本高等典型问题一直制约着...
关键字:
多路
LED
驱动电源
随着社会的快速发展,LED技术也在飞速发展,为我们的城市的灯光焕发光彩,让我们的生活越来越有趣,那么你知道LED需要LED驱动电源吗?那么你知道什么是LED驱动电源吗?
关键字:
LED
开关电源
驱动电源
早前有新闻称,Cree在2018年开始宣布转型高科技半导体领域,并一边逐渐脱离照明与LED相关业务,一边持续投资半导体。在今日,Cree宣布与SMART Global Holdings, Inc.达成最终协议,拟将LED...
关键字:
cree
led照明