软件架构种类
按照不同角色的关注角度,软件架构大致可分为三种类型:
- 逻辑架构:既软件系统当中的各个元件之间所存在的关系。例如外部接口、软件界面、业务功能模块、数据库等
- 物理架构:既软件元件部署在硬件系统中的位置。例如软件采用分布式系统的物理架构,软件全部的元件都是属于物理设备。
- 系统架构:一般会涉及到两个方面的内容,其一是业务架构,其二是软件架构。业务架构描述了业务领域主要的业务模块及其组织结构;而软件架构是一种设计思想,类似软件系统的蓝图,是对软件结构组成的规划和各模块或子系统的职责设定。
五种常用的软件架构

分层架构
分层架构是最基础的软件架构,也被称为标准架构。
在分层架构中,软件系统被抽象划分为若干个自下而上、顺序排列的水平层,而且各层都有清晰的角色定义和明确的任务分工,相邻的两个层之间的通信是通过接口实现的。软件收到用户输入的请求或命令后,将依次、逐层处理,不会跨越过其中任何一层。【原创段落】

事件驱动架构
事件驱动架构就是通过事件进行通讯的软件架构。
这种架构的特别之处在于,它定义了一套设计和实现应用的方法,使用变量函数来表示某个程序的多种逻辑状态。当这些数值发生变化时,即可视为产生了一个独特的事件,并可以此作为驱动系统运作并处理问题的关键因子。
事件驱动架构是分布式的异步架构,优势有二:一是软件更容易部署且扩展性好。二是事件异步处理,软件不容易产生堵塞,系统性能更稳定、可靠。

微核架构
微核架构也被称为"插件架构"。
在这种软件架构中,软件的核心程序通常会非常小,仅能支持软件完成启动和执行这些基本功能,而软件的业务逻辑和数据处理功能均由核心程序以外的各种插件来实现。【原创段落】
微核架构强调功能模块的独立性,规避插件间相互依赖的问题,系统的可延伸性更高,可定制性更强。但同时也暴露出了两方面的问题:开发复杂和扩展性差。【原创段落】
其一,内核的核心程序设计要满足未来所有插件的公共需求,这导致核心程序的实现变得非常复杂。其二,“微核”通常是一个独立单元,要与其它应用程序耦合,这就意味着微核架构的软件系统不易做成分布式部署。【原创段落】

微服务架构
微服务架构是服务导向架构的升级版本。
在此架构中,功能被分解到各个服务当中,且每个服务即为一个独立且离散的部署单元,这样大大降低了系统的耦合性,也称为“解耦”。各服务之间是通过远程通信协议联系,比如 REST 协议、SOAP 协议等。

云架构
云架构的最大亮点就是它强调扩展性,因此它也被称为“最容易扩展的架构”,擅长应对软件系统的高并发。【原创段落】
在云架构中,软件的业务处理能力被封装成一个个“业务处理单元”,数据复制到内存中变成“内存数据单元”。这样,“业务处理单元”和“内存数据单元”就可以随访问量的增长而增加。
理论上而言,如不考虑服务器和带宽资源投入的成本,这种架构可以无限地进行水平和垂直扩展,使系统的响应速度无限趋近于“零延迟”。这种高度灵活的扩展性,更适合解决超大型互联网平台高流量、高并发的瓶颈问题。【原创段落】
欢迎加入亚马逊云科技培训中心
欢迎加入亚马逊云科技培训中心
-
快速上手训练营
-
账单设置与查看
-
动手实操
-
快速上手训练营
-
第一课:亚马逊云科技简介
本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。
亚马逊云科技技术讲师:李锦鸿第二课:存储与数据库服务
您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。
亚马逊云科技资深技术讲师:周一川第三课:安全、身份和访问管理
在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。
亚马逊云科技技术讲师:马仲凯 -
账单设置与查看
-
-
动手实操
-
联系我们
联系我们
.4ab599395215697c34eea7e92d1bb891e55e4cfb.png)