架构是体现组件中一个系统的基本组织,组件之间的彼此关系与环境关系及指导它们设计和发展的原则。
系统是组织起来完成特定功能或一组功能的组件集,系统用于完成其环境中的一个或多个任务。
系统架构是(System Architecture)是系统的一种整体的高层次的结构表示,是系统的骨架和根基。支撑和连接系统的各个部分,包括组件,连接件,约束规范,及指导这些内容设计与演化的基本原理,他是刻画系统整体抽象结构的一种手段。
软件架构自诞生以来,经历了四个阶段:
1)基础研究阶段(1968-1994年)
模块化开发
模块化开发主要是如何把系统分解成模块,对系统分而治之。
模块化开发的主要问题的模块分解的规则,即系统如何分解成模块。而每一个模块都单独开发和测试,最后再组装成完整的系统。
对一个规约进行分解,以得到系统结构的方法有数据结构设计法,功能分解法,数据流设计和面向对象设计等。将系统分解成模块,应遵循以下规则:
(1)最高模块内聚。就是一个模块内的元素最大程度关联,只实现一种功能的模块的高内聚的,具有三种以上功能的模块是低内聚的。
(2)最低耦合。模块之间的关系尽量弱。
(3)模块大小适中
(4)模块调用链深度不可以太多
(5)接口简单,精练(扇入扇出不能太多),具有信息屏蔽
(6)尽可能复用已有模块
SOA思想
基于标准的方法和技术,通过有效整合和重用现有的应用系统和各种资源实现服务组件化,并基于服务组件实现各种新业务应用的快速组装,帮助企业更好的应对业务的灵活性要求。
2)核心技术和核心体系形成阶段(1995-2000年)
1995年开始,软件架构领域的研究快速发展,方法体系SAAM。多视角软件架构表示方法,软件架构的设计模式,
2000年,IEEE发布软件架构的形式化标准
3)理论体系的完善
4)普及阶段
软件架构常见分类
1)分层架构
常见的四层架构:
(1)表现层
(2)业务层
(3)持久层
(4)数据库
2)事件驱动架构
事件是状态发生改变时,软件发出的通知。
事件驱动架构是通过事件通信进行组织的软件架构
事件队列:接收事件的入口
分发器:把事件分发到不同的业务逻辑单元
事件通道:事件分发器和事件处理器的联系通道
时间处理器:处理业务逻辑,完成后会发出事件
3)微核架构
微核架构又称插件架构,指软件内核比较小,主要功能和业务逻辑都通过插件完成
4)微服务架构
是SOA的升级,每一个服务都是独立的部署单元,这些单元是分布式,互相解耦的,通过远程通信协议(Rest或者SOAP)。
微服务的实现模式:
(1)Restful API:服务提供API
(2)Restful 应用:服务有网络协议或应用协议提供,常见于内部应用
(3)集中消息模式:使用消息代理实现消息队列,负载均衡,统一日志,异常处理。
5)云架构
把数据做出可复制的数据单元,把业务处理能力封装成业务处理单元,通过中间件管理业务处理单元
业务处理单元: 处理业务逻辑
虚拟中间件:负责通信,管理会话,数据复制,分布式部署,处理单元部署