随着X86服务器的普及使用,以及基于Linux和Windows操作系统在服务器上的主流使用,分布式计算,包括网络计算,和云计算,已经成为企业应用软件的主流模式。分布式应用软件的开发常常需要中间件的支持。基于消息的中间件(MOM)是使用最为广泛的中间件类型之一。如何正确和有效地使用这些中间件不仅影响到开发人员的编程效率,也在很大程度上决定了软件的结构和性能。
何小朝所著的《消息设计与开发(分布式应用开发的核心技术)》深入浅出的介绍了消息中间件的概念、原理和实现机制,并从软件开发人员的角度出发,详细描述了消息设计、消息传输中的数据类型的表示以及消息的发送、接受及其管理方式。本书对于从事分布式应用软件设计和开发的人员具有很好的入门指导作用和编程参考作用。
现阶段的分布式应用开发,包括多层架构、SOA、Web Service、网格甚至云计算等,一般不必从网络通信底层做起,大都基于如CORBA/IIOP、DCOM、RMI、JMS及IBM MQ、TIBCO消息中间件等成熟工具或协议实现,而其核心内容都是消息技术及体系。而绝大多数分布式技术方面的资料要么只是介绍成熟工具和协议的使用方法,要么便是介绍网络通信底层知识,而对介于这两者之间的消息技术的内在原理和详细实现机制,则很少有人真正了解与问津,而这正是《消息设计与开发(分布式应用开发的核心技术)》的重点内容。
何小朝所著的《消息设计与开发(分布式应用开发的核心技术)》详细披露了消息体系的内在原理与实现机制:如何以消息对象形式组织各种复杂数据类型?消息如何从一台机器传送到另一台机器?如何通过消息实现远程过程调用?如何实现跨平台的分布式消息通信?多种类型的消息如何管理?消息队列如何管理?企业级的多任务并发如何控制?如何保证大量的消息与任务都会被及时处理?如何合理利用系统资源?JMS与SOAP的机制有什么区别和联系等,都是本书要讲述的内容。本书紧密结合代码实例,基于面向对象设计与实现方法,旨在通过本书指导可自行设计开发消息体系原型。
第1章 消息技术概论/1
1.1 TCP/IP简介/1
1.1.1 基本知识/1
1.1.2 TCP与UDP/2
1.1.3 TCP/IP套接口编程基础/4
1.2 什么是消息/12
1.3 最原始的消息设计/14
1.3.1 原始消息的设计与实现/14
1.3.2 原始消息设计方法分析/17
1.4 消息技术的内容/19
1.5 消息技术的分类/21
1.5.1 基于传输协议分类/22
1.5.2 基于消息传输格式分类/24
1.6 关于本书内容的说明/25
1.7 消息体系的组成/26
1.8 本书相关术语定义/27
1.9 本章小结/28
第一大类 基于字节流的消息技术/29
第2章 消息表示法/30
2.1 消息表示需求分析/30
2.1.1 需求分析/30
2.1.2 消息表示法的内容/32
2.2 消息的总体结构/32
2.2.1 消息组成要素/32
2.2.2 代码层面消息结构/33
2.2.3 传输层面(流化后)消息结构/35
2.3 消息头/36
2.3.1 消息版本号/36
2.3.2 消息序列号/38
2.3.3 消息延续标志/38
2.3.4 消息数据长度/39
2.4 消息类型块/40
2.4.1 消息响应与功能类型/41
2.4.2 回复消息错误/41
2.4.3 消息远程调用操作类型/43
2.4.4 消息处理标志/43
2.4.5 消息体长度/44
2.4.6 消息类型块的组成标准/45
2.5 消息体/46
2.5.1 消息体构成/46
2.5.2 消息体公共接口定义/49
2.5.3 消息描述信息定义/50
2.5.4 消息本体数据/51
2.5.5 消息列表数据/52
2.5.6 消息创成接口/52
2.5.7 消息流化接口/53
2.6 消息表示的面向对象实现/54
2.6.1 消息头/55
2.6.2 消息类型块/56
2.6.3 消息体/58
2.6.4 消息表示法代码结构/75
2.7 本章小结/76
第3章 消息的流化/77
3.1 什么是流化/77
3.2 流化表示法综述/78
3.2.1 自定义字节流/78
3.2.2 XDR表示法/79
3.2.3 平台无关/83
3.3 消息流化的基本元素/90
3.3.1 流化的基本元素/90
3.3.2 数值型/91
3.3.3 二进制字节流/94
3.4 流化的面向对象实现/95
3.4.1 消息流化的实现过程/96
3.4.2 XDR方法类/96
3.5 本章小结/102
第4章 消息注册/103
4.1 消息注册综述/103
4.1.1 消息注册的目的/103
4.1.2 消息注册的实现/104
4.1.3 消息注册的内容/104
4.2 消息创建接口/105
4.2.1 消息创建接口的用途/105
4.2.2 消息创建接口的面向对象实现/106
4.3 消息操作类型接口/107
4.3.1 消息操作类型接口的用途/107
4.3.2 消息操作类型接口的面向对象实现/108
4.4 回调函数注册/108
4.5 本章小结/109
第5章 单消息的发送与接收/111
5.1 单消息发送与接收的内容/111
5.2 消息发送/112
5.2.1 消息发送触发的假设/112
5.2.2 消息发送预处理/113
5.2.3 消息发送过程/116
5.2.4 消息发送的面向对象实现/117
5.3 消息接收/124
5.3.1 消息接收触发的假设/124
5.3.2 消息接收过程/126
5.3.3 消息接收中的消息回复/127
5.3.4 消息接收的面向对象实现/129
5.4 消息加密与解密/143
5.4.1 消息加解密设计/143
5.4.2 套接口层面的接口调用/144
5.4.3 消息加解密的面向对象实现/146
5.4.4 算法库选择/148
5.5 套接口控制/148
5.5.1 套接口控制的内容/149
5.5.2 发送与接收管理/149
5.5.3 缓冲区管理/157
5.5.4 套接口选择器/162
5.6 UDP消息的发送与接收/162
5.7 本章小结/164
第6章 单连接上的消息管理/165
6.1 TCP连接与消息管理类/165
6.2 消息发送与接收管理/168
6.2.1 连接管理线程/168
6.2.2 消息发送类型/169
6.2.3 消息发送控制/176
6.2.4 发送与接收协调/180
6.3 消息请求处理管理/182
6.4 消息队列管理/183
6.5 消息生命周期管理/185
6.6 本章小结/187
第7章 单连接上的消息请求处理/188
7.1 请求处理的触发/188
7.1.1 原始设计与分析/188
7.1.2 设计改进与请求处理线程/189
7.1.3 TCP连接与请求处理线程/190
7.2 回调函数注册与消息请求管理类/191
7.3 请求处理过程/193
7.3.1 总体流程/193
7.3.2 请求处理中的消息回复/194
7.4 回调函数调用再探/196
7.4.1 原始设计/196
7.4.2 设计改进与用户执行线程/197
7.5 本章小结/198
第8章 多连接下的消息体系管理/199
8.1 多连接消息体系管理综述/199
8.1.1 需求分析/199
8.1.2 原始设计与分析/201
8.1.3 多连接管理设计的内容/202
8.2 连接管理线程池/203
8.2.1 连接管理设计/203
8.2.2 连接管理线程池/204
8.2.3 连接管理的面向对象实现/205
8.3 请求处理线程池/210
8.3.1 请求处理管理/210
8.3.2 请求处理线程池/212
8.3.3 请求处理管理的面向对象实现/213
8.3.4 一个特殊问题的讨论/215
8.4 连接清理线程池/216
8.4.1 连接清理管理/216
8.4.2 连接清理线程池/218
8.4.3 连接清理管理的面向对象实现/219
8.5 套接口选择器(TCP连接管理类选择)/222
8.5.1 套接口选择器设计/222
8.5.2 套接口选择器的面向对象实现/225
8.6 KEEPALIVE管理/232
8.6.1 KeepAlive线程/232
8.6.2 KeepAlive的面向对象实现/233
8.7 多连接管理总体控制/237
8.7.1 主管类/237
8.7.2 多连接管理代码结构/240
8.8 本章小结/241
第9章 消息体系中的本地化/242
9.1 什么是本地化/242
9.2 本地化方法综述/243
9.3 消息体系中的本地化实现/245
9.3.1 设计思路/245
9.3.2 消息体系的本地化实现/245
9.4 本章小结/250
第10章 消息的制造/251
10.1 综述/251
10.2 消息手工制造/252
10.3 消息生成器/253
10.4 消息版本管理/253
10.5 消息克隆(CLONE)/255
10.6 本章小结/257
第二大类 基于XML的消息技术/259
第11章 XML消息表示法/260
11.1 XML消息表示概述/260
11.1.1 XML消息的特点/260
11.1.2 XML消息表示需求分析/261
11.2 XML消息总体结构/261
11.2.1 XML消息表示总体设计/261
11.2.2 XML消息模板与消息注册/263
11.2.3 XML消息实例/267
11.3 XML消息中的各种数据类型/268
11.3.1 整型、浮点型与字符串型/269
11.3.2 对象/270
11.3.3 数组/271
11.4 二进制数据处理/272
11.5 本章小结/273
第12章 XML消息的发送与接收/274
12.1 单连接上的消息发送与接收/274
12.1.1 套接口层的发送与接收/274
12.1.2 消息实例的生成与解析/274
12.2 多连接管理/280
12.3 XML消息的加密、解密/282
12.4 本章小结/283
第13章 XML消息的处理/284
13.1 消息处理模板/284
13.1.1 消息处理模板的概念/284
13.1.2 消息处理模板的初始化/285
13.2 XML消息处理过程/288
13.2.1 总体设计/288
13.2.2 接口匹配/288
13.2.3 参数填充/289
13.2.4 动作执行/291
13.2.5 回复生成与返回/291
13.3 XML消息处理路径/292
13.3.1 数据库或函数/293
13.3.2 本地链接库/293
13.3.3 Web Service/295
13.4 本章小结/296
第14章 高级功能/297
14.1 消息转发/297
14.2 消息链接/298
14.3 大消息处理/299
14.4 本章小结/299
后记/301