Appearance
考点清单
- [x] 构件定义、特性与分类
- [x] 构件组装技术
- [x] EJB 构件模型(会话型/实体型/消息驱动)
- [x] CORBA(伺服对象/POA/ORB/IDL)
- [x] COM 对象重用(包含 vs 聚集)
- [x] 中间件功能(连接通信/事务管理/负载均衡)
- [x] ESB(企业服务总线)与 SOA
- [x] SDN 架构
- [x] 接口标准化
笔记
一、构件基础
软件构件是独立可部署的软件单元,与对象不同,构件可以利用容器管理自身对外的可见状态。
构件核心特性:
| 特性 | 说明 |
|---|---|
| 独立部署单元 | 可单独编译、部署和替换 |
| 第三方组装单元 | 支持通过接口被其他系统复用 |
| 无外部可见状态 | 通过接口交互,内部状态对外透明 |
| 不可拆分 | 作为部署单元是原子单位 |
| 容器管理 | 由容器管理生命周期和状态 |
构件 vs 对象的区别:
- 构件依赖容器管理(对象自主管理)
- 构件强调部署单元(对象强调实例)
- 构件通过接口交互(对象可直接调用)
- 构件不共享类元素(强调独立性)
- 构件实例由容器创建而非自身构造
构件五类(按外部形态):
- 独立而成熟的构件 — 已在实际环境多次检验
- 有限制的构件 — 提供接口,指出使用条件和前提
- 适应性构件 — 进行了包装或接口技术处理,可直接使用
- 装配的构件 — 已装配在不同层次上,可连续使用
- 可修改的构件 — 可进行版本替换,通过重新"包装"或写接口实现替换
二、构件分类与组装
构件分类三大方法:
| 方法 | 特点 |
|---|---|
| 关键字分类法 | 按抽象到具体顺序逐次分解为树形或有向无回路图结构 |
| 刻面分类法 | 利用 Facet 描述构件执行的功能、被操作的数据、应用语境等特征 |
| 超文本方法 | 按人类联想思维方式任意跳转到相关概念或构件的文档 |
构件组装技术:
- 基于功能的构件组装技术
- 基于数据的构件组装技术
- 面向对象的构件组装技术
- ⚠️ "基于实现的构件组装技术" 不是标准分类
构件组装三层次: 集成(Integration)→ 扩展(Extension)→ 演化(Evolution)
三、EJB 构件模型
J2EE 支持五种标准构件模型:Applet、Servlet、JSP、EJB、Application Client
EJB 三种构件类型:
| 类型 | 职责 | 特点 |
|---|---|---|
| 会话型构件(Session Bean) | 负责完成服务端与客户端交互,处理业务逻辑 | 处理业务规则、工作流 |
| 实体型构件(Entity Bean) | 用于数据持久化,简化数据库开发 | 每个实例对应数据库记录(已被 JPA 替代) |
| 消息驱动构件(Message-Driven Bean) | 处理并发和异步访问操作 | 基于 JMS,解耦系统组件 |
四、CORBA
核心组件:
| 组件 | 职责 |
|---|---|
| 伺服对象(Servant) | CORBA 对象的真正实现,负责完成客户端请求 |
| 对象适配器(POA) | 管理伺服对象生命周期,但不实现业务逻辑 |
| 对象请求代理(ORB) | 负责通信路由,不涉及业务实现 |
| 适配器激活器 | 辅助 POA 的扩展组件 |
IDL(接口定义语言):
- IDL 文件包含六种元素:模块、接口、类型、常量、异常、值类型
- 接口描述是 IDL 文件最核心的内容
- 模块定义映射为 Java 的 Package 或 C++ 的 Namespace
五、COM 对象重用
COM 支持两种对象组装形式:
| 形式 | 机制 | 特点 | 类比设计模式 |
|---|---|---|---|
| 包含(Containment) | 外部对象拥有内部对象的唯一引用,转发请求 | 外部完全封装内部 | 装饰器模式 |
| 聚集(Aggregation) | 直接把内部对象的接口引用传给外部对象的客户,不再转发 | 内部对象可独立使用,效率更高 | 组合模式 |
六、中间件
中间件是提供平台和应用之间的通用服务,具有标准的程序接口和协议。
三大核心功能:
| 功能 | 说明 | 典型技术 |
|---|---|---|
| 连接和通信 | 为客户端和服务器提供连接通道,实现协议转换,管理连接生命周期 | MQ、RPC 框架 |
| 交易管理机制 | 保证交易一致性,采用 2PC 等机制 | 事务管理器(Tuxedo) |
| 负载均衡和高可用性 | 故障转移、服务降级熔断 | Nginx、Keepalived、Hystrix |
两种中间件类型对比:
| 类型 | 特点 |
|---|---|
| 消息中间件 | 采用异步处理模式、松耦合关系;消息传递模型:点对点模型和发布-订阅模型 |
| 分布式对象中间件 | 由一组对象提供系统服务,对象间能跨平台通信 |
七、ESB 与 SOA
**ESB(企业服务总线)**是由中间件技术实现并支持 SOA 的一组基础架构。
ESB 核心优势:
- 消除了服务请求者与服务提供者之间的直接链接
- 通过总线架构实现松耦合
- 服务双方只需与总线交互,不需知道对方位置
微服务架构采用去中心化管理,SOA 采用集中式管理(依赖 ESB 进行服务协调)。
八、SDN(软件定义网络)
SDN 标准架构分为三层:
- 应用层 — 承载各类网络应用,通过北向接口与控制层交互
- 控制层 — 集中化的控制器,通过南向接口管理转发层设备
- 转发层 — 数据平面设备,负责实际数据包转发
⚠️ "逻辑层"不是 SDN 标准架构中的定义层级。
九、接口标准化
接口标准化是对接口中消息模式、格式和协议的标准化。
需要使接口得到广泛应用,必须实现接口标准化,核心是:
- 消息模式(Message Patterns)— 定义交互的基本模式
- 消息格式(Message Formats)— 规定数据的组织方式
- 通信协议(Protocols)— 确定传输规则和时序