1 分布式系统与中间件 1
1.1 分布式系统的演讲 1
1.1.1 集中控制式系统 1
1.1.2 分布式系统 2
1.2 中间件 4
1.2.1 中间件的概念 4
1.2.2 中间件的分类 5
2 CORBA的组成和工作方式 15
2.1 基本概念 15
2.1.1 对象参考模型 15
2.1.2 CORBA的基本构件 16
2.1.3 对象的引用 17
2.1.4 客户和服务器 18
2.1.5 接口定义语言 18
2.1.6 CORBA对象请求接口的结构 20
2.2 CORBA的基本组成 21
2.2.1 ORB核心的作用 21
2.2.2 客户端码根 23
2.2.3 服务器端框架 24
2.2.4 动态调用接口 25
2.2.5 动态框架接口 25
2.2.6 接口库 26
2.2.7 实现库 26
2.2.8 ORB接口 26
2.2.9 对象适配器 27
2.3 CORBA的工作方式 27
2.3.1 静态调用方式 27
2.3.2 动态调用方式 29
2.4 ORB接口 30
2.4.1 ORB初始化 30
2.4.2 获得初始的对象引用 31
2.4.3 ORB中的接口 32
2.4.4 获得对象引用的几种方法 36
3 接口定义语言 38
3.1 IDL的语法 38
3.1.1 常量 38
3.1.2 基本数据类型 38
3.1.3 使用typedef定义新的类型 41
3.1.4 构造类型 41
3.1.5 模板类型 43
3.1.6 本地类型 45
3.1.7 模块 45
3.1.8 接口 46
3.1.9 异常 48
3.1.10 操作 49
3.1.11 属性 50
3.1.12 值类型 50
3.2 IDL的例子 52
4 IDL语言映射及CORBA编程示例 53
4.1 IDL语言的C++映射 53
4.1.1 常量映射 53
4.1.2 基本数据类型映射 53
4.1.3 构造和模板类型映射 60
4.1.4 typedef映射 69
4.1.5 Any类型映射 69
4.1.6 模块映射 71
4.1.7 接口映射 72
4.1.8 参数规则传递小结 76
4.2 IDL语言的Java映射 79
4.3 表态调用方式下的BOA编程示例 79
4.3.1 CORBA编程的步骤 79
4.3.2 建立IDL接口文件 80
4.3.3 编译IDL接口文件 81
4.3.4 编写服务器端代码 81
4.3.5 编写客户端代码 84
4.3.6 运行 84
4.4 BOA编程示例的变化方案 86
4.4.1 继承和托管 86
4.4.2 服务器启动方式 87
4.4.3 关闭调试信息 87
4.4.4 超时 89
4.4.5 使用命名服务 91
5 可移植对象适配器 97
5.1 基本对象适配器存在的问题 97
5.2 POA的抽象模型和体系结构 100
5.2.1 POA支持的抽象模型 100
5.2.2 POA的体系结构 101
5.3 POA接口 102
5.3.1 创建POA和结束POA 102
5.3.2 策略创建操作 103
5.3.3 属性 104
5.3.4 仆从管理器操作 104
5.3.5 缺省仆从操作 104
5.3.6 对象激活与去激活 105
5.3.7 创建引用的操作 105
5.3.8 标识映射操作 105
5.4 POA管理器 106
5.5 适配器激活器 108
5.6 仆从管理器 108
5.6.1 仆从激活器 110
5.6.2 仆从定位器 111
5.7 对象引用与对象激活状态 112
5.8 POA策略 113
5.9 POA编程 115
5.9.1 使用代码生成工具建立CORBA应用 115
5.9.2 编写基于POA的CORBA应用 119
6 动态调用和接口库 137
6.1 概述 137
6.1.1 动态调用的步骤 137
6.1.2 动态调用接口 138
6.1.3 接口库 141
6.1.4 动态调用的流程实例 143
6.2 动态程序调用 144
6.2.1 获得Request对象的两种方式 144
6.2.2 创建参数列表的三种方式 145
6.2.3 发动调用的三种方式 148
6.3 动态框架 150
6.3.1 伪对象ServerRequest 150
6.3.2 调用的顺序 151
6.3.3 动态实现例程 153
6.4 接口库 154
6.4.1 接口库的特点 154
6.4.2 接口库对象 155
6.4.3 接口库接口的使用 164
6.4.4 类型的描述者TypeCode 164
6.4.5 万能类型Any 168
6.4.6 DynAny 170
7 CORBA的通信模型 177
7.1 对象引用的传递与解释 177
7.1.1 域和桥接 177
7.1.2 互操作对象引用的定义 179
7.2 通用ORB互通协议 181
7.2.1 GIOP的三个要素 181
7.2.2 公共数据表示传送语法 181
7.3 GIOP消息 183
7.3.1 GIOP消息头 184
7.3.2 Request消息 186
7.3.3 Response消息 189
7.3.4 CancelRequest消息 190
7.3.5 LocateRequest消息 191
7.3.6 LocateReply消息 192
7.3.7 CloseConnection消息 194
7.3.8 MessageError消息 194
7.3.9 Fragment消息 194
7.4 ORB互通协议 195
7.4.1 互联网ORB互通协议 196
7.4.2 DCE通用ORB互通协议(DCE-CIOP) 197
8 CORBA的服务 201
8.1 命名服务 201
8.1.1 基本概念 201
8.1.2 命名环境接口 203
8.1.3 迭代器接口中的操作 205
8.1.4 名字库 206
8.2 CORBA事件服务 207
8.2.1 事件服务的概略描述 207
8.2.2 无类型消息 210
8.2.3 消息通信的全过程 214
8.2.4 有类型消息 216
8.3 CORBA通知服务 219
8.3.1 概述 219
8.3.2 过滤机制 222
8.3.3 服务质量 225
8.3.4 事件类型信息的处理方式 228
8.4 对象交易服务 229
8.4.1 基本概念 229
8.4.2 交易服务的描述 237
8.4.3 交易者联盟 243
8.5 CORBA对象事务服务 254
8.5.1 基本概念 254
8.5.2 CORBA的事务服务模型和事务环境 258
8.5.3 CORBA事务服务中的接口 262
8.5.4 简要的归纳 269
9 CORBA技术在电信领域中的应用(一) 272
9.1 TMN基础 272
9.1.1 TMN的概念和目标 272
9.1.2 TMN的管理功能 273
9.1.3 体系结构 274
9.1.4 Q3接口 277
9.1.5 TMN的管理业务 281
9.2 JIDM定义 282
9.2.1 静态翻译部分 283
9.2.2 交互翻译部分 288
9.3 JIDM实现(OSI部分) 301
9.3.1 概述 301
9.3.2 纯CORBA环境下JIDM的实现 301
9.3.3 利用JIDM实现关口 309
9.3.4 JIDM的指导意义 311
10 CORBA技术在电信领域中的应用(二) 313
10.1 智能网和7号公共信道信令的相关概念 313
10.1.1 智能网业务及物理体系结构 313
10.1.2 7号公共信道信令系统 317
10.2 IN/CORBA互操作 324
10.2.1 TC/CORBA互操作的两种类型 324
10.2.2 互操作的构架 325
10.2.3 互操作接口 327
10.3 规范翻译 329
10.3.1 信息对象类的映射 330
10.3.2 规范翻译生成的其他接口 332
10.4 交互翻译 332
10.5 智能网中对话流程示意 338
10.5.1 基于CORBA智能网的SCP发起对话 338
10.5.2 基于传统智能网的SSP发起对话 339
10.6 SCCP ORB互通协议 342
10.6.1 SIOP消息的寻址 342
10.6.2 SIOP IOR描述体的构成 343
附录 348
附录1 伪对象的C++映射 348
附录2 IDL语言的Java映射 361
附录3 最小CORBA(Minimum CORBA) 392