一 架构是什么
架构是什么?
IEEE 1471的定义是“一个系统的组织来实现特定的功能或一组功能组件的集合。术语“系统”包括单个应用程序,传统意义上的系统,子系统,系统系统,产品线,产品系列,整个企业以及其他感兴趣的集合”。
一个系统的诞生是一个软件过程,即将需求转换成实现的过程,是软件的生命周期。而软件生命周期的模型,称之为软件过程模型。如:
对于构件的组织与结构对于架构的描述有架构描述语言(ADL)描述。各种组织开发了不同的ADL,例如UML。常见的ADL元素是连接器,组件和配置。
例如:
架构定义描述组件结构:
架构定义描述行为:
工作、学习中我们经常会碰到“系统架构”“软件架构”这两个词,很多人认为他们是一样的,其实不然!系统=多个组件+子系统。
本文适用人群:
二架构原则与风格
1-架构风格/架构模式是什么?
软件架构风格也称之为软件架构模式(有人认为架构模式与架构风格有区别,其实目的是一致的,一般不分开),是用于组织组件、结构构成的原理,依据结构组织定义了抽象框架。
软件架构模式负责的功能就是:
总而言之,架构风格定义描述了系统,并给定约束和清单列表(component+connector)。
基本上一个软件系统都是基于多种架构风格模式组合而成,而每一种架构风格都是针对不同的系统需求目录而实现的。这些常见的系统架构目录需要包含以下内容:
2-常用架构设计方法有哪些?
通常针对不同的场景区域有不同的架构设计,参考如下:
2-常用架构风格有哪些分类?
而根据企业架构分类分有:
经典架构风格
特点优点:
-使得构件具有良好的隐蔽性、高内聚、低耦合
-运行设计将IO行为看成多个过滤器行为的合成
-支持软件重用
-系统维护简单
-允许对吞吐量、死锁等属性进行分析
-支持并行执行
缺点缺陷:
-进程形成批处理结构,增量式处理数据
-不适合处理交互应用
-数据传输没有通用标准,导致每一个过滤器解析合成数据导致系统性能下降,且导致过滤器复杂。
特点优点:
-对象隐藏其数据、行为表示,操作方便,互不影响
-设计可以将数据存取问题分割成为交互的代理程序集合
缺点缺陷:
-对象更新导致的连锁问题,多次调用导致更新问题
特点优点:
-软件重构方便
-系统迭代、更新方便
缺点缺陷:
-放弃了对系统计算的控制,下游调用的不可控、不确定是否对其他构件的影响,需要增加接口发布版本控制来保证
-数据交互问题,全局性资源调用数据交互不便
-过程依赖于被触发事件的上下文
3-架构设计的整体过程?
主要过程是对系统进行分解成为一个个组件及其交互,以满足非功能、功能性需求。架构设计一般是三部分:硬件架构、软件架构、系统架构,整体过程如下:
大致需要经历以下几个步骤:
Step 1 业务需求及问题的理解及分析
Step 2 确定设计元素和彼此的关系
Step3 评估架构设计
Step4 转换实现架构设计
4-架构设计一般要遵守什么原则?
针对架构设计好坏的标准,我们需要遵守一定的设计原则,这样设计出来的系统架构才能更友好、更优雅,才是好架构。原则一般分两部分:架构原则+设计原则。
架构原则主要是针对宏观的,整体项目的把控原则,为保证项目交付;设计原则是针对软件设计部分的原则,对整体编码程序的把控原则,为保证程序交付。
主要架构原则有:
主要设计原则有:
三 架构模型
1-架构模型种类
传统分类如下:
各有优缺点,集合其优点一哥们Kruchten提出“4+1”视图模型。也就是我们现在常用的架构模型。其模型图如下:
逻辑视图如:
开发视图如:
进程视图如:
物理视图如:
而随着云技术云服务的发展,传统的架构理念已经无法满足我们系统需求。而根据Mark Richards《软件架构模式》最新的架构模型分类为:
3-如何根据实际情况选择适合自己的架构模型?
软件架构的模型涉及到影响系统的质量、性能、可维护性和整体性、安全性等,针对侧重点进行取舍。不考虑常见问题和长期后果可能会使您的系统面临风险,通常采用多样式的组合构成整个系统。
本文由威海网络公司半岛科技转载整理2020.01.14