第1章 概述 1
1.1 为什么需要应用服务器 2
1.1.1 面临的问题 2
1.1.2 操作系统与数据库管理系统 3
1.2 诞生基础 4
1.2.1 中间件 4
1.2.2 网络软件总体结构 5
1.3 相关概念 9
1.3.1 应用与应用系统 9
1.3.2 构件与构件模型 10
1.3.3 互操作与数据交换 11
1.3.4 服务与公共服务 12
1.3.5 软件体系结构 13
1.4.1 位置 14
1.4 应用服务器 14
1.4.2 功能 15
1.4.3 结构 16
1.5 应用服务器的现状与未来 17
1.6 关于本书 18
1.7 小结 22
阅读资源推荐 22
第2章 软件互操作 25
2.1 背景 26
2.1.1 TCP/IP 26
2.1.2 基于TCP/IP的通信过程 27
2.1.3 软件互操作 31
2.2.1 工作原理 32
2.2 远程过程调用 32
2.2.2 编排/还原/分派 35
2.2.3 基于RPC的开发过程 37
2.3 对象请求代理 44
2.3.1 公共对象请求代理结构 45
2.3.2 基于ORB的互操作过程 46
2.4 互操作体系结构 47
2.5 应用服务器对互操作的支持 50
2.6 小结 51
阅读资源推荐 51
第3章 互操作协议 53
3.1 互操作协议要素 54
3.2 通用对象请求代理间协议 56
3.2.2 消息格式 57
3.2.1 公共数据表示 57
3.2.3 协议映射 63
3.2.4 引用表示 63
3.3 简单对象访问协议 64
3.3.1 数据表示 65
3.3.2 消息格式 65
3.3.3 协议映射 67
3.4 互操作协议之间的关系 69
3.4.1 协议之间的不同 69
3.4.2 协议之间的映射 70
3.5 小结 70
阅读资源推荐 70
第4章 互操作接口定义语言 71
4.1.1 接口 72
4.1 概念 72
4.1.2 接口定义 73
4.1.3 接口定义语言 75
4.2 OMG的接口定义语言 75
4.2.1 IDL规范 76
4.2.2 IDL文件示例 82
4.2.3 IDL向具体语言的映射 83
4.2.4 接口与IIOP消息 84
4.3 Web服务描述语言 87
4.3.1 WSDL元素 87
4.3.2 WSDL文件示例 88
4.3.3 WSDL与SOAP消息 91
4.4 不同语言的比较 92
阅读资源推荐 93
4.5 小结 93
第5章 软件构件 95
5.1 背景 96
5.2 概念 97
5.2.1 构件 98
5.2.2 构件规约 101
5.2.3 构件实现 102
5.2.4 构件模型 104
5.2.5 构件运行环境 105
5.2.6 构件种类 106
5.2.7 基于构件的软件开发 107
5.3 COM 108
5.3.1 COM构件 109
5.3.2 构件规约 110
5.3.3 构件实现 114
5.3.4 COM构件种类 116
5.3.5 COM构件运行环境 116
5.4 EJB 117
5.4.1 EJB构件 117
5.4.2 构件规约 118
5.4.3 构件实现 119
5.4.4 EJB构件种类 120
5.4.5 EJB构件运行环境 122
5.5 不同构件模型的比较 123
5.6 应用服务器对构件的支持 124
5.7 小结 125
阅读资源推荐 125
第6章 构件合约 127
6.1 构件合约 128
6.1.1 构件提供的接口 128
6.1.2 构件依赖的资源 130
6.1.3 构件的可定制属性 130
6.2 EJB构件的合约 131
6.2.1 EJB构件的类型接口 131
6.2.2 EJB构件的实例接口 135
6.2.3 EJB构件的声明 139
6.3 构件访问 143
6.4 小结 148
阅读资源推荐 148
第7章 构件运行环境 149
7.1 概述 150
7.1.2 构件容器 151
7.1.1 构件上下文 151
7.1.3 构件约束 152
7.2 构件容器的功能 153
7.2.1 实例池 153
7.2.2 冻化/活化 153
7.2.3 生命周期管理 154
7.3 容器与实现体的合作 155
7.3.1 构件实现体向容器提供的方法 155
7.3.2 容器向构件实现体提供的方法 158
7.3.3 构件实现体与构件接口 161
7.4 会话构件实例的管理 163
7.4.1 无态构件实例的管理 164
7.4.2 有态构件实例的管理 166
7.5 实体构件实例的管理 169
7.5.1 BMP实体构件实例的管理 170
7.5.2 CMP实体构件实例的管理 173
7.5.3 BMP与CMP实体构件代码比较 175
7.6 小结 179
阅读资源推荐 180
第8章 软件公共服务 181
8.1 背景 182
8.2 概念 185
8.2.1 公共服务 185
8.2.2 公共服务与构件 186
8.2.3 公共服务与构件容器 186
8.2.4 公共服务的接口 186
8.2.5 公共服务的使用方式 187
8.3 OMA中的公共服务 188
8.2.6 公共服务的实现 188
8.3.1 公共服务设计原则 189
8.3.2 公共服务规范 189
8.3.3 OMA的调用式使用方式 192
8.4 J2EE中的公共服务 192
8.4.1 J2EE中的公共服务接口 192
8.4.2 J2EE的声明式使用方式 193
8.5 应用系统组装 193
8.5.1 什么是组装 193
8.5.2 基于EJB构件的组装 195
8.6 小结 201
阅读资源推荐 201
第9章 查找服务 203
9.1 应用系统的分布性 204
9.2 命名服务 206
9.2.1 实体的名字 206
9.2.2 命名服务的基本实现 210
9.2.3 命名上下文 210
9.2.4 解析名字 211
9.2.5 OMA的命名服务 211
9.3 目录服务 213
9.3.1 基本实现 213
9.3.2 LDAP 214
9.4 合约服务 215
9.5 JNDI 218
9.5.1 JNDI体系结构 218
9.5.2 查找的声明 221
阅读资源推荐 223
9.6 小结 223
第10章 事务服务 225
10.1 应用系统的可靠性 226
10.1.1 什么是可靠性 226
10.1.2 状态错误 226
10.1.3 事务 229
10.2 事务技术 232
10.2.1 单机环境中的事务 232
10.2.2 网络环境中的事务 234
10.2.3 X/Open的DTP模型 236
10.3 OMA的事务服务 237
10.4 J2EE的事务服务 240
10.4.1 事务服务模型 240
10.4.2 事务服务接口 243
10.4.3 事务性声明 246
10.5 小结 251
阅读资源推荐 251
第11章 安全服务 253
11.1 应用系统的安全性 254
11.2 安全技术与安全体系 256
11.2.1 加密 256
11.2.2 认证 260
11.2.3 访问控制 262
11.2.4 审计 264
11.2.5 安全体系 264
11.3.1 公钥基础设施 265
11.3.2 IP层安全 265
11.3 安全基础设施 265
11.3.3 传输层安全 267
11.3.4 Java安全体系 268
11.4 Java认证与授权服务 273
11.4.1 认证 274
11.4.2 授权 276
11.5 J2EE的安全服务 277
11.5.1 安全服务模型 278
11.5.2 安全服务接口 278
11.5.3 安全性声明 282
11.6 小结 288
阅读资源推荐 288
第12章 应用服务器实例 289
12.1 设计目标 290
12.2 系统结构 291
12.2.1 总体结构 291
12.2.2 应用 292
12.2.3 构件容器 293
12.2.4 命名服务 294
12.2.5 事务服务 295
12.2.6 安全服务 295
12.2.7 信服务 296
12.2.8 系统监控 297
12.3 PKUAS的启动过程 298
参考文献 301
附录A 缩略语索引 305
附录B 术语索引 309