架构简介

翻译自:https://tianpan.co/notes/145-introduction-to-architecture

体系结构是软件系统的形状。将其视为实体建筑物的全景。

  • 范例是砖头。
  • 设计原则是房间。
  • 组件是建筑物。

它们一起用于特定目的,例如医院用于治愈患者,而学校则用于教育学生。

 

为什么我们需要架构? 

行为与结构 

每个软件系统为利益相关者提供两种不同的价值:行为和结构。软件开发人员有责任确保这两个价值都很高。

凭借其工作描述,软件架构师将更多的精力放在系统的结构上,而不是功能和特点上。

 

最终目标 - 节省每个功能的人力资源成本 

架构服务于软件系统的整个生命周期,以使其易于理解,开发,测试,部署和操作。目标是使每个业务用例的人力资源成本最小化。

马克·理查兹(Mark Richards)撰写的O'Reilly著作《软件体系结构模式》是对这五个基本体系结构的简单而有效的介绍。

1.分层架构 

分层体系结构是采用中最常见的,在开发人员中众所周知,因此是应用程序的实际标准。如果您不知道使用哪种架构,请使用它。

 

例子

  • TCP / IP模型:应用程序层>传输层>互联网层>网络访问层
  • Facebook TAO:Web层>缓存层(追随者+领导者)>数据库层

利弊

  • 优点
    • 使用方便
    • 责任分离
    • 可测性
  • 缺点
    • 单片
      • 难以调整,扩展或更新。您必须对所有图层进行更改。

 

2.事件驱动架构 

状态更改将向系统发出事件。所有组件都通过事件相互通信。

 

一个简单的项目可以将调解器,事件队列和通道结合在一起。然后我们得到一个简化的架构:

 

例子

  • QT:信号和插槽
  • 支付基础架构:银行网关通常具有很高的延迟,因此它们在架构设计中采用了异步技术。

 

3.微内核架构(又名插件架构) 

该软件的职责分为一个“核心”和多个“插件”。核心包含最低限度的功能。插件彼此独立,并实现共享接口以实现不同的目标。

 

例子

  • Visual Studio Code,Eclipse
  • MINIX操作系统

 

4.微服务架构 

大型系统与多个微服务解耦,每个微服务都是一个单独部署的单元,它们通过RPC相互通信。

 

例子

 

5.基于空间的架构 

该模式的名称来自“元组空间”,即“分布式共享内存”,没有数据库或同步数据库访问,因此没有数据库瓶颈,所有处理单元共享内存中的复制应用程序数据。弹性启动和关闭。

 

示例:请参阅Wikipedia

  • 最常被Java用户采用:例如JavaSpaces

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值