第1章 为什么使用服务总线 1
1.1 我们现在面临的问题 1
1.1.1 点到点集成 1
1.1.2 紧耦合 3
1.1.3 轻配置重编码 4
1.2 早期的ESB 4
1.3 现代解决方案 4
1.3.1 松耦合 4
1.3.2 位置透明 5
1.3.3 服务中介 5
1.3.4 Schema转换 5
1.3.5 服务聚合 6
1.3.6 负载均衡 6
1.3.7 强制安全性 6
1.3.8 监控 6
1.3.9 配置与编码 6
1.4 进入AquaLogic?Service Bus 7
1.4.1 松耦合 7
1.4.2 位置透明 7
1.4.3 服务中介 7
1.4.4 Schema转换 7
1.4.5 服务聚合 8
1.4.6 负载均衡 8
1.4.7 强制安全性 8
1.4.8 监控 8
1.4.9 配置与编码 8
1.5 这会不会把我绑在BEA的技术上? 9
1.6 为何购买Enterprise Service Bus? 9
1.7 总结 10
第2章 软件安装与配置 11
2.1 安装软件 12
2.1.1 配置WebLogic Workshop 12
2.1.2 Workshop快速导航 13
2.2 创建Service Bus域 14
2.3 在Eclipse中配置Ant 15
2.4 为AquaLogic Server配置Workshop 16
2.5 导入示例代码 18
2.6 总结 19
第3章 Hello World服务 20
3.1 创建和部署Web Service 20
3.1.1 @WebService 24
3.1.2 @SoapBinding 25
3.1.3 @WLHttpTransport 26
3.1.4 @WebMethod 26
3.2 创建一个POJO测试客户端 29
3.2.1 在ALSB创建一个HelloWorld项目 33
3.2.2 创建WSDL 35
3.3 业务服务和代理服务 36
3.3.1 创建业务服务 37
3.3.2 创建代理服务 39
3.3.3 关于配置变更的快速笔记 42
3.3.4 测试代理服务 43
3.4 总结 46
第4章 消息流基础 47
4.1 消息流概述 47
4.1.1 管道对节点 48
4.1.2 分支节点 49
4.1.3 路由节点 50
4.1.4 操作 50
4.2 Goodbye World! 51
4.2.1 到底发生了什么事情? 55
4.2.2 隐藏的设计缺陷 57
4.3 总结 60
第5章 WSDL速成 61
5.1 命名空间(Namespaces) 63
5.1.1 默认的命名空间 65
5.1.2 目标命名空间 66
5.2 〈types〉 67
5.2.1 本地数据类型 67
5.2.2 自定义数据类型 68
5.2.3 minOccurs与maxOccurs 69
5.2.4 导入XML Schemas 69
5.3 〈message〉 70
5.4 〈portType〉 70
5.5 〈binding〉 70
5.6 〈service〉 71
5.7 〈port〉 71
5.8 WSDL最佳实践 72
5.8.1 Element与Types 72
5.8.2 依赖性陷阱 73
5.8.3 基于文档与RPC对比 76
5.9 针对WSDL和Schema的故障分析 78
5.10 根据Schema可视化文档 81
5.10.1 ElementFormDefault属性 82
5.10.2 attributeFormDefault属性 85
5.11 总结 86
第6章 消息流 87
6.1 场景1:用户请求一个产品目录 87
6.2 场景2:用户订购一个产品 100
6.3 总结 105
第7章 高级消息主题 106
7.1 同步调用 106
7.2 异步调用 108
7.2.1 配置WebLogic Server 108
7.2.2 异步业务服务 109
7.3 服务类型与传输协议 113
7.3.1 SOAP with WSDL 114
7.3.2 SOAP Without WSDL 114
7.3.3 XML with WSDL 116
7.3.4 XML Without WSDL 119
7.3.5 消息传递类型 119
7.3.6 传输类型服务:EJB 143
7.3.7 POJO 149
7.3.8 带附件的SOAP 152
7.4 总结 156
第8章 报告与监控 157
8.1 监控 157
8.1.1 多变的服务 158
8.2 报告 169
8.2.1 查看报告信息 170
8.2.2 清除报告信息 172
8.2.3 报告提供者 173
8.3 总结 174
第9章 安全模型与服务总线 175
9.1 安全范式在SOA下的挑战 175
9.1.1 传输级安全 176
9.1.2 消息级安全 177
9.1.3 动态、定制、基于标记的安全 177
9.2 ALSB安全模型 178
9.2.1 ALSB的入站安全性 178
9.2.2 ALSB中的身份传递 179
9.2.3 SSL认证 180
9.2.4 数字签名与加密 180
9.3 应用ALSB安全 181
9.4 建议 182
9.5 总结 183
第10章 服务前景规划 184
10.1 SOA坐标系统 184
10.1.1 软件抽象尺度 184
10.1.2 服务域尺度 188
10.1.3 坐标系统 189
10.2 SOA地图化 191
10.2.1 自顶向下方式 191
10.2.2 自底向上方式 192
10.2.3 SOA映射测试1 193
10.2.4 SOA映射测试2 194
10.2.5 服务地图的尺度 195
10.2.6 服务加工 196
10.3 架构变换 196
10.4 通信法则与模式 201
10.4.1 通信法则Ⅰ 201
10.4.2 通信法则Ⅱ 201
10.4.3 通信法则Ⅲ 201
10.4.4 通信模式Ⅰ:重力流 201
10.4.5 通信模式Ⅱ:直接使用企业服务 203
10.4.6 通信模式Ⅲ:间接使用企业服务 203
10.4.7 通信模式Ⅳ:在一个域内的应用间通信 204
10.5 追求性能 205
10.6 总结 206
第11章 服务版本化 208
11.1 什么是服务 208
11.2 面向服务 211
11.3 什么是版本化 212
11.4 是版本化服务还是版本化操作? 213
11.4.1 操作版本化 214
11.4.2 服务版本化 216
11.5 现实约束 218
11.6 如果没有版本问题,会如何? 219
11.7 IT的未来 223
11.8 总结 224
第12章 管理、操作与经营 225
12.1 团队开发支持 225
12.1.1 变更中心 225
12.1.2 冲突管理 225
12.1.3 撤销和重做 226
12.1.4 如何解决冲突 226
12.2 系统管理 227
12.3 操作设置 228
12.4 配置访问控制 228
12.5 部署 229
12.5.1 自动部署基础 231
12.5.2 高级自动技术 237
12.6 ALSB集群 238
12.6.1 创建集群 240
12.6.2 节点管理器 241
12.6.3 控制被管理服务器 242
12.6.4 部署到集群 243
12.6.5 位置透明与ALSB 244
12.7 总结 248
第13章 自定义传输 249
13.1 自定义传输概述 249
13.1.1 为什么要自定义传输? 250
13.1.2 自定义传输如何适合ALSB 251
13.1.3 自定义传输中的组件 252
13.2 Socket传输示例 253
13.2.1 Socket传输能力 253
13.2.2 构建与安装传输示例 254
13.2.3 使用Socket传输例程 257
13.3 构建自定义传输 261
13.3.1 Transport SDK接口概述 261
13.3.2 任务概述 263
13.3.3 传输提供者的配置XML文件 263
13.3.4 传输提供者Schema 265
13.3.5 实现传输提供者的用户接口类 268
13.3.6 使用自定义传输来部署服务端点 275
13.3.7 实现传输提供者运行类 279
13.3.8 注册传输提供者 296
13.4 总结 297
第14章 如何 298
14.1 安全 298
14.2 管理 300
14.3 消息与协议 305
14.4 XML,XQuery和XSLT 311
14.5 其他问题 312
14.6 总结 314
附录A AquaLogic?Service Bus操作 315