首页  云计算知识 
软件架构

什么是软件架构?

软件架构就是对软件基本结构的一系列抽象描述。
软件系统是由若干代码编写而成,但源代码过于抽象,可读性差。为了说明软件的业务逻辑或功能实现原理,软件设计者使用抽象的图形和文字等形式,阐述软件系统各个组件之间的连接关系和通讯方式,以便所有参与开发、决策和使用的人都能够理解。

新用户享受中国区域 12 个月免费套餐

什么是软件架构
首页  云计算知识 
软件架构
什么是软件架构

什么是软件架构?

软件架构就是对软件基本结构的一系列抽象描述。
软件系统是由若干代码编写而成,但源代码过于抽象,可读性差。为了说明软件的业务逻辑或功能实现原理,软件设计者使用抽象的图形和文字等形式,阐述软件系统各个组件之间的连接关系和通讯方式,以便所有参与开发、决策和使用的人都能够理解。

新用户享受中国区域 12 个月免费套餐

软件架构种类

软件架构种类

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

五种常用的软件架构

五种常用的软件架构

分层架构_五种常用的软件架构

分层架构

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

事件驱动架构_五种常用的软件架构

事件驱动架构

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

微核架构_五种常用的软件架构

微核架构

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

微服务架构_五种常用的软件架构

微服务架构

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

云架构_五种常用的软件架构

云架构

云架构的最大亮点就是它强调扩展性,因此它也被称为“最容易扩展的架构”,擅长应对软件系统的高并发。【原创段落】
在云架构中,软件的业务处理能力被封装成一个个“业务处理单元”,数据复制到内存中变成“内存数据单元”。这样,“业务处理单元”和“内存数据单元”就可以随访问量的增长而增加。
理论上而言,如不考虑服务器和带宽资源投入的成本,这种架构可以无限地进行水平和垂直扩展,使系统的响应速度无限趋近于“零延迟”。这种高度灵活的扩展性,更适合解决超大型互联网平台高流量、高并发的瓶颈问题。【原创段落】

分层架构_五种常用的软件架构

分层架构

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

事件驱动架构_五种常用的软件架构

事件驱动架构

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

微核架构_五种常用的软件架构

微核架构

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

微服务架构_五种常用的软件架构

微服务架构

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

云架构_五种常用的软件架构

云架构

云架构的最大亮点就是它强调扩展性,因此它也被称为“最容易扩展的架构”,擅长应对软件系统的高并发。【原创段落】
在云架构中,软件的业务处理能力被封装成一个个“业务处理单元”,数据复制到内存中变成“内存数据单元”。这样,“业务处理单元”和“内存数据单元”就可以随访问量的增长而增加。
理论上而言,如不考虑服务器和带宽资源投入的成本,这种架构可以无限地进行水平和垂直扩展,使系统的响应速度无限趋近于“零延迟”。这种高度灵活的扩展性,更适合解决超大型互联网平台高流量、高并发的瓶颈问题。【原创段落】

亚马逊云科技软件架构相关产品

亚马逊云科技软件架构相关产品

Amazon CodeDeploy

Amazon CodeDeploy

自动化代码部署

Amazon EC2

Amazon EC2

安全并且可以灵活调整大小的云服务器/云主机容量

Amazon API Gateway

Amazon API Gateway

创建、维护和保护任意规模的 API

Amazon Serverless Application Repository

Amazon Serverless Application Repository

发现、部署、发布和共享无服务器应用程序

准备好免费体验亚马逊云科技相关软件架构产品了吗?
准备好免费体验亚马逊云科技相关软件架构产品了吗?

新用户注册,可免费体验 12 个月

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多
官方开发资源及培训教程

关闭 在线实时聊天

与云计算专家聊天,回答您的问题

在线实时聊天

与云计算专家聊天,回答您的问题

关闭
通过热线与我们联系

1010 0766 由光环新网运营的亚马逊云科技中国(北京)区域
1010 0966 由西云数据运营的亚马逊云科技中国(宁夏)区域

通过热线与我们联系

1010 0766 由光环新网运营的亚马逊云科技中国(北京)区域
1010 0966 由西云数据运营的亚马逊云科技中国(宁夏)区域

关闭 联系销售人员

联系亚马逊云科技专家以了解有关亚马逊云科技的更多信息

联系销售人员

联系亚马逊云科技专家以了解有关亚马逊云科技的更多信息