概念
- 软件构件是一种组装单元,有规范接口和显示语境依赖
- 某系统中有价值、可以独立并替换的一个部分
- 一个独立发布的功能部分,可以通过接口访问
flowchart LR A[三大构件标准] --> B[CORBA] A --> C[J2EE EJB] A --> D[DNA 2000] C --> C1[会话Bean:实现业务逻辑] C --> C2[实体Bean:实现O/R映射] C --> C3[消息驱动Bean:处理并发与异步访问]
构件模块对象对比
模块
结构化开发产物
对象
- 一个实例单元,具有唯一的标志
- 可能具有状态,外部可见
- 封装了自己的状态和行为
构件
- 独立部署单元
- 作为第三方的组装单元
- 没有外部状态
构件复用
检索与提取构件 —> 理解与评估构件 —> 修改构件 —> 组装构件
检索与提取构件
- 基于关键字检索,关键字展开,特点:树状图或回路图结构
- 刻面检索法,特点:利用 Facet 描述构件。分多个刻面:应用领域、使用环境
- 超文本检索法,特点:按人类思维方式找说明文档
理解与评价构件
构件开发遵循公共标准
- 构件的功能与行为
- 相关领域知识
- 可适应的约束性条件
- 可预见的修改
修改构件
组装构件
- 基于功能的组装技术
- 基于数据的组装技术
- 面向对象的组装技术
构件分类
- 独立而成熟的构件,如:数据库管理系统操作系统
- 有限的构件,会产生资源冲突、覆盖等影响。如:基础库
- 适应性构件,对不兼容、资源进行处理。如:ActiveX
- 装配构件
- 可修改构件
中间件
概念
是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同技术之间共享资源
优点
- 简化结构
- 屏蔽差异
- 利于复用
面向需求
集中于业务逻辑本身
业务的分隔和包容性
按照不同业务进行功能划分,体现为不同的接口或交互模式
设计与实现隔离
交互全由接口进行
隔离复杂的系统资源
架构一个重要功能:将系统资源与应用构件隔离
符合标准的交互模型
实现标准协议
软件复用
中间件提供了构件封装、交互规则
| 中间件分类 | 特点 |
|---|---|
| 通信处理 | 可靠高效实时的跨平台传输,eLink,MQ |
| 事务处理 | 事务分发,负载均衡,Tuexdo |
| 数据存取 | 为虚拟缓冲存取 |
| Web | 负载均衡,缓存、安全 |
| 安全 | 加密、认证 |
| 跨平台 | CORBA |
CORBA(公共对象请求代理系统结构)(代理模式)
flowchart LR subgraph 客服端 A[对象引用] B[请求调用] C[桩/存根] D[客户机ORB] end subgraph 服务端 E[CORBA对象] F[伺服对象] G[对象适配器POA] H[框架 IDL] I[服务器ORB] end A <--逻辑连接-->E B <--实际请求-->F
伺服对象:CORBA 对象的真正实现,负责完成客户端请求 对象适配器:对实现者提供接口,使用 ORB 内部功能 对象请求代理:解释调用并负责查找实现该请求对象,将参数传给对象,并调用方法返回结果。