有什么软件架构属于单体架构_什么是软件架构?

有什么软件架构属于单体架构

什么是软件架构? 在上一篇文章“什么是架构?”中 我们说架构是关于:

  • 结构要素
  • 连接元素

让我们谈谈有关软件系统的这些问题。 在我们的下一篇文章中,我们将讨论
好的和坏的建筑

结构要素

软件中的结构元素是支持系统中其他层的层:

  • 语言库建立在操作系统提供的功能之上
  • 软件产品的功能基于语言库
  • 您正在使用的第3部分库建立在前2层上
  • 您的代码建立在所有先前的层上

因此,您构建的任何程序都至少具有以下结构元素:

在设计良好的系统中,您的代码还将分为特定于要构建的应用程序的层。 理想情况下,每个图层仅取决于其下面的图层,否则您将具有循环引用; 表示存在挑战或存在错误。

连接元素

每个软件系统都具有在不同层之间进行通信的连接元素。 通常,第三方库是共享服务,它们提供核心服务,例如数据结构(XML,JSON等),日志记录,调试和其他服务。

在代码内部,您还将拥有每个层都使用的共享服务,其示意图如下:


其中1、2,…,N层代表代码中的层,而共享服务跨越所有层时将垂直显示。 N层代表系统的UI层,该层的功能取决于其下的所有层。

泛化架构

人们在谈论软件体系结构时,他们不仅在谈论代码的结构。 人们经常在谈论机器和O / S组件。 因此,例如,当人们谈论LAMP体系结构时,他们谈论的是:

  • 操作系统(即Linux)
  • Web服务器-Apache,在Linux上运行
  • 数据库-在Linux上运行的MySql,
  • 代码-使用O / S中的服务在MySql数据库上运行PHP

注意:与上图“ 结构元素”部分中的图一样,PHP层进一步细分。

LAMP体系结构涉及结构元素。 连接元素只是在PHP层内部创建或通常由O / S提供的元素。

因此,当相关时,架构包括:

  • 操作系统
  • 所有支持服务,即Web服务器,数据库等。
  • 您或第三者编写的高级应用程序

通用软件架构

对于软件的结构元素,我们将涉及层次。 这些层可能与O / S相关,例如O / S如何与支持服务(Web服务器,数据库等)通信,或者您的应用程序如何与支持服务和O / S通信。

在您的应用程序中,存在着不同的层交互,其中包括:1)基础层如何基于语言的API和已安装的第三方库构建,以及2)如何分解层以与不同的层进行通信软件的一部分。

任何模型视图控制器(MVC)程序的主要结构元素如下所示:

  • 模型层(又称为业务层)基于第三方API和O / S API构建
  • 视图层又称为GUI层基于第三方GUI API构建
  • 数据层基于数据库API构建

您正在使用的所有API均基于您所使用语言的标准API。

含义

  • 更改语言要求重新考虑其上方的每一层
    • 这意味着如果您更改语言并且必须更改某些第三方API,则还需要更改上面的层
  • 严格的分层意味着您可以更改第三方API,并且仅影响MVC系统的单个层
    • 通常,开发人员会在行与行之间涂上颜色,并且更改第3方库会导致相当多的痛苦,因为发现了层违规
  • 业务层不足会造成问题,因为这是视图/ GUI和数据层之间的主要分隔结构之一。
    • 人们在更改数据库API或数据库时会发现缺乏业务层,并且问题会一直通过GUI传播。

连接元素

连接软件元素用于在系统的结构层之间穿梭数据。 这些连接元素通常在任何地方都可以使用(尽管可以限制为几层)。

易于理解的连接元素是用于调试和日志记录的元素。 这些元素是通用的,例如,调试和日志记录例程可以在所有层中使用,而不必担心层依赖性。

其他连接元素最容易识别,因为它们是在体系结构各层之间共享的例程。 更具体地说,它们是包含在程序多层中的库/模块。

因此,现在我们定义了软件中的结构性和连接性元素,接下来我们描述具有良好架构不良架构的含义。

翻译自: https://www.javacodegeeks.com/2017/01/what-is-software-architecture.html

有什么软件架构属于单体架构

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值