
分布式软件
特点
- 运行在网络环境中,多个节点通过网络连接
- 每个节点由处理机硬件、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
服务程序
