0%

软件构件与中间件

分布式软件

特点

  • 运行在网络环境中,多个节点通过网络连接
  • 每个节点由处理机硬件、OS和通信软件组成

优势

  • 改进程序的性能

基本概念

  • CS架构

  • 二层结构

    • 结构

      • Database Server(数据层)

        • 持久数据存储
        • 存储过程
      • Client

        • GUI
        • 业务逻辑
    • 缺陷

      • 客户端负担重
      • 客户端移植性差
      • 系统可维护性差
      • 数据安全性差
  • 三层结构

    • 结构

      • Database Server(数据层)

        • 持久数据存储
        • 存储过程
      • 中间层应用程序

        • 业务逻辑代码
        • 中间层可以包括所有与存储和GUI无关的处理
      • Client

        • GUI
    • 优势

      • 减轻客户端负担
      • 提高客户端可移植性
      • 提高系统可维护性
      • 增强数据安全性
      • 更好的性能与可伸缩性

软件构件(分布式对象)

定义

  • 相对独立,可以被重用的软件实体

与一般对象异同

    • 封装、继承
    • 要求更好的插入性
    • 关注不同进程中对象的相互调用
    • 访问异构(跨语言)对象
    • 只暴露共用接口

特点

  • 严格定义的可插入单元,可大可小

  • 不一定基于对象

  • 封装

    • 构件的实现语言未知

    • 构件的物理位置未知

      • 相同进程、不同进程、不同物理机

升级

  • 内部变化,暴露的接口不变

相关概念

  • Interface

    • 定义分布式对象的能力
  • Data type

    • 能再分布式对象间传递的数据类型
  • Marshaling & Unmarshaling

    • json
    • java bean
  • Object Handle

    • 在编程语言中引用分布式对象的实例
  • Object Creation

    • 常见机制是工厂
  • Object Invocation

  • Object Destruction

中间件

产生

  • 原因

    • 分布式软件的挑战

      • 互操作
      • 数据交换
      • 分布性
      • 可行性
  • 本质

    • 抽取共性,屏蔽底层复杂性
  • 栗子

    • PC

      • Hardware

      • Software

        • 共性

          • 计算机资源管理
        • 分离

          • OS
          • 其它
    • PC

      • Hardware

      • OS

      • App

        • 共性

          • 数据管理
        • 分离

          • DBMS
          • 其它

位置

  • 应用

  • 中间件

    • 为分布式应用、web应用提供支持
  • OS

分类

  • 按功能

    • 数据访问中间件
    • 远程过程调用中间件
    • 消息中间件
    • 事务中间件
    • 构件中间件
  • 集成中间件

    • CORBA

      COMMON OBJECT REQUEST BROKER ARCHITECRUE

    • J2EE

    • .NET

作用

  • (通过构件容器)提供构件运行环境

    • 管理构件
  • 互操作机制

    • 作用

      • 提供高层通信协议

        • Remote procedure call
        • Java Remote Messaging Protocol
        • Remote Method Invocation
      • Marshaling & Unmarshaling

    • 分层

      • 数据层

        • Telephony

          • Telephony
      • 中间层

      • 客户层

    • 操作对象

      • 中间层应用构件与数据库
      • 客户层构件与中间层应用构件
      • 中间层应用构件之间
      • 中间层构件与公共服务构件
  • 公共服务

    • 命名服务
    • 事务服务
    • 安全服务
    • 持久性服务
    • 消息服务
    • 分布式垃圾回收服务
    • 资源管理服务

Stub/Skeleton结构(桩–服务器框架)

  • 客户端程序

  • STUB

  • 通信总线

  • SKELETON

  • 服务程序