NormanZyq
发布于 2020-03-09 / 360 阅读
0
0

3.9 周一 软件架构与中间件第1章 概述

架构

  1. 硬件的架构,包括:硬件模块、连接关系
  2. 共性:构件、连接件、物理分布、约束、性能
  3. 软件架构也是这样,包括:
    1. 构件:各个模块,函数、对象、模式等
    2. 连接件:将它们组合起来形成完整的软件系统
    3. 物理分布(拓扑结构)
    4. 约束
    5. 性能

软件架构

软件架构的目标

  1. 关注这些:

    1. 划分软件为各个模块
    2. 规范模块的构成
    3. 如何组织成完整的系统
    4. 保证系统的质量要求
  2. 目标:

    建立一个一致的系统及其视图集,并表达为最终用户和软件设计者需要的结构形式,支持用户和设计者之间的交流与理解。

  3. 两方面:

    1. 外向目标:建立满足最终用户要求的系统需求
    2. 内向目标:满足系统设计者需要以及易于系统实现、维护和扩展的系统构件构成

软件架构作用

  1. 交流
  2. 可传递、可服用
  3. 关键决策的体现??折衷
    1. 性能与安全性
    2. 可维护性与可靠性
    3. 当前开发费用和未来开发代价

演化

面向过程的分析与设计 -> 面向对象分析设计 -> 基于构件的软件开发 -> 面向服务的计算

  1. 1960 。。。
  2. 1970
  3. 1980
  4. 1990
  5. 2000 系统 = 服务 + 服务总线
  6. 当今 系统= 服务集群 + 中间件

软件中间件

定义

是一组程序,应用于分布式系统各应用之中,为系统屏蔽底层通讯提供公共服务

注意

  1. 中间件是软件
  2. 中间件在应用软件和系统软件之间
  3. 中间件是一类软件,不是一种
  4. 中间件不是开发工具,而是包含开发、管理、部署

作用

  1. 屏蔽异构性

    • 关于异构性:计算机的软硬件差异,包括硬件(CPU和指令集、硬件结构、 驱动程序等),操作系统(不同OS的API和开发环境)、数据库(不同的存储和访问格式)等
  2. 实现互操作(因为异构性,使得软件在不同平台之间移植比较困难)

  3. 共性凝练和复用

意义

G850KO.png

分类

  • 应用服务类中间件:为应用系统提供综合计算环境和平台支撑

    例如:

    • 对象请求代理(ORB)中间件
    • 事务监控交易中间件
    • Java应用服务器中间件
  • 应用集成类:提供不同网络应用之间的消息通信、服务集成、数据集成

    例如:

    • 消息中间件
    • 企业集成EAI
    • 企业服务总线
  • 业务架构类(上面的好像是底层共性的特征抽象到的中间件,但也可以将业务共性抽象)

    • 。。。

软件架构与中间件设计过程

G85dxK.png

构件

广义:具有某种功能的可服用的软件结构单元,例如函数、子程序;对象、类

严格:构件是可部署单元,有规范的接口规约和显式的语境依赖

构件 -> 结构化软件


评论