架构
- 硬件的架构,包括:硬件模块、连接关系
- 共性:构件、连接件、物理分布、约束、性能
- 软件架构也是这样,包括:
- 构件:各个模块,函数、对象、模式等
- 连接件:将它们组合起来形成完整的软件系统
- 物理分布(拓扑结构)
- 约束
- 性能
软件架构
软件架构的目标
-
关注这些:
- 划分软件为各个模块
- 规范模块的构成
- 如何组织成完整的系统
- 保证系统的质量要求
-
目标:
建立一个一致的系统及其视图集,并表达为最终用户和软件设计者需要的结构形式,支持用户和设计者之间的交流与理解。
-
两方面:
- 外向目标:建立满足最终用户要求的系统需求
- 内向目标:满足系统设计者需要以及易于系统实现、维护和扩展的系统构件构成
软件架构作用
- 交流
- 可传递、可服用
- 关键决策的体现??折衷
- 性能与安全性
- 可维护性与可靠性
- 当前开发费用和未来开发代价
演化
面向过程的分析与设计 -> 面向对象分析设计 -> 基于构件的软件开发 -> 面向服务的计算
- 1960 。。。
- 1970
- 1980
- 1990
- 2000 系统 = 服务 + 服务总线
- 当今 系统= 服务集群 + 中间件
软件中间件
定义
是一组程序,应用于分布式系统各应用之中,为系统屏蔽底层通讯和提供公共服务
注意
- 中间件是软件
- 中间件在应用软件和系统软件之间
- 中间件是一类软件,不是一种
- 中间件不是开发工具,而是包含开发、管理、部署
作用
-
屏蔽异构性
- 关于异构性:计算机的软硬件差异,包括硬件(CPU和指令集、硬件结构、 驱动程序等),操作系统(不同OS的API和开发环境)、数据库(不同的存储和访问格式)等
-
实现互操作(因为异构性,使得软件在不同平台之间移植比较困难)
-
共性凝练和复用
意义
分类
-
应用服务类中间件:为应用系统提供综合计算环境和平台支撑
例如:
- 对象请求代理(ORB)中间件
- 事务监控交易中间件
- Java应用服务器中间件
-
应用集成类:提供不同网络应用之间的消息通信、服务集成、数据集成
例如:
- 消息中间件
- 企业集成EAI
- 企业服务总线
-
业务架构类(上面的好像是底层共性的特征抽象到的中间件,但也可以将业务共性抽象)
- 。。。
软件架构与中间件设计过程
构件
广义:具有某种功能的可服用的软件结构单元,例如函数、子程序;对象、类
严格:构件是可部署单元,有规范的接口规约和显式的语境依赖
构件 -> 结构化软件
评论区