《C++网络编程 卷1 运用ACE和模式消除复杂性》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)Douglas C. Schmidt,(美)Stephen D. Huston著;于春景译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121041510
  • 页数:303 页
图书介绍:ACE(ADAPTIVE Communication Environment)是用于构建高性能网络化应用和下一代中间件的开放源码工具包,已在世界各地的许多项目中得到了广泛应用。本书是《C++网络编程》(卷2)的前篇,由ACE的创始人Douglas C. Schmidt及主要开发者之一Stephen D. Huston撰写而成,其内容涵盖了ACE中的各主要框架的基础概念、模式及使用规则。本书将向你描述这些框架的设计,以及它们可怎样帮助你克服较低级的本地操作系统API与较高级的分布式计算中间件的各种局限,高效地开发出高质量、可移植的C++网络化应用。本书是继受到了高度赞誉的POSA2(Pattern-OrientedSoftware Architecture: Patterns for Concurrent and Networked Objects)之后,Douglas C. Schmidt撰写的又一著作,通过学习本书,你将能更深入地了解和掌握适用于网络化应用开发的各种设计模式。

第0章 设计课题、中间件方案、ACE 1

0.1 网络应用面临的挑战 1

0.2 网络应用的设计空间 5

0.3 面向对象中间件方案 7

0.4 ACE工具包概览 12

0.5 示例:一个网络日志服务程序 17

0.6 小结 19

第1篇 面向对象网络编程 21

第1章 通信设计空间 23

1.1 无连接协议与面向连接协议 23

1.2 同步及异步消息交换 26

1.3 消息传递与共享内存 28

1.4 小结 31

第2章 Socket API概述 33

2.1 操作系统IPC机制概述 33

2.2 Socket API 34

2.3 Socket API的局限性 37

2.4 小结 43

第3章 ACE Socket Wrapper Facade 45

3.1 概述 45

3.2 ACE_Addr类和ACE_INET_Addr类 49

3.3 ACE_IPC_SAP类 52

3.4 ACE_SOCK类 54

3.5 ACE_SOCK_Connector类 56

3.6 ACE_SOCK_IO类和ACE_SOCK_Stream类 60

3.7 ACE_SOCK_Acceptor类 64

3.8 小结 68

第4章 网络日志服务程序的实现 71

4.1 概述 71

4.2 ACE_Message_Block类 72

4.3 ACE_InputCDR类和ACE_OutputCDR类 76

4.4 日志服务器的初始版本 80

4.5 客户程序 95

4.6 小结 99

第2篇 并发式面向对象网络编程 101

第5章 并发设计空间 103

5.1 循环、并发及反应式服务器 103

5.2 进程与线程 109

5.3 进程/线程创建策略 112

5.4 用户、核心及混合线程模型 114

5.5 分时及实时调度级别 119

5.6 “基于任务”与“基于消息”的体系 121

5.7 小结 123

第6章 操作系统并发机制概述 125

6.1 同步事件多路分离 125

6.2 多进程机制 127

6.3 多线程机制 129

6.4 同步机制 130

6.5 OS并发机制的局限性 135

6.6 小结 137

第7章 ACE同步事件多路分离Wrapper Facade 139

7.1 概述 139

7.2 ACE_Handle_Set类 141

7.3 ACE_Handle_Set_Iterator类 147

7.4 ACE::select()方法 151

7.5 小结 157

第8章 ACE进程Wrapper Facade 159

8.1 概述 159

8.2 ACE_Process类 161

8.3 ACE_Process_Options类 165

8.4 ACE_Process_Manager类 169

8.5 小结 182

第9章 ACE线程Wrapper Facade 185

9.1 概述 185

9.2 ACE_Thread_Manager类 187

9.3 ACE_Sched_Params类 198

9.4 ACE_TSS类 201

9.5 小结 205

第10章 ACE同步Wrapper Facade 207

10.1 概述 207

10.2 ACE_Guard类 209

10.3 ACE互斥体类 212

10.4 ACE Readers/Writer Lock类 218

10.5 ACE信号量类 222

10.6 ACE条件变量类 229

10.7 小结 233

附录A ACE C++Wrapper Facade的设计原则 235

A.1 概述 235

A.2 通过Wrapper Facade增强类型安全性 236

A.3 简化常见情形 238

A.4 通过继承结构提高设计的清晰性和可扩充性 246

A.5 尽可能地隐藏平台间的差异 248

A.6 针对效率实施优化 255

A.7 小结 257

附录B ACE的过去、现在和将来 259

B.1 ACE的演变 259

B.2 未来之路 267

B.3 结束语 268

术语表 269

参考文献 285

索引 293

图0.1 独立应用体系 2

图0.2 一个普通的网络应用环境 3

图0.3 网络应用的设计空间 6

图0.4 应用环境下的面向对象中间件层次 8

图0.5 ACE的层次化体系结构 13

图0.6 网络日志服务的参与者 18

图1.1 可选的连接多路复用策略 25

图1.2 同步及异步消息交换策略 26

图1.3 消息传递与共享内存 29

图2.1 Socket空间分类图 42

图3.1 ACE面向连接的Socket类关系图 47

图3.2 ACE Socket Wrapper Facade分类图 48

图3.3 ACE Socket Wrapper Facade中的角色 49

图3.4 ACE_Addr和ACE_INET_Addr类图 51

图3.5 ACE_IPC_SAP和ACE_SOCK类图 54

图3.6 ACE_SOCK_Connector类图 57

图3.7 ACE_SOCK_Stream和ACE_SOCK_IO类图 62

图3.8 ACE_SOCK_Acceptor类图 65

图4.1 ACE_Message_Block类图 73

图4.2 两种ACE_Message_Block 75

图4.3 ACE_InputCDR和ACE_OutputCDR类图 79

图4.4 日志服务器示例类 81

图4.5 日志记录信息的消息块链 90

图5.1 循环式/反应式服务器与并发式服务器 104

图5.2 多进程与多线程 109

图5.3 线程池“急式创建”策略 113

图5.4 “一个请求一个线程”式的“随需创建”策略 113

图5.5 N:1与1:1线程模型 115

图5.6 N:M混合线程模型 117

图5.7 “基于任务”与“基于消息”的并发体系 122

图7.1 ACE_Handle_Set和ACE_Handle_Set_Iterator类图 140

图7.2 反应式日志服务器的结构 153

图8.1 ACE进程管理类关系图 160

图8.2 ACE_Process类图 163

图8.3 ACE_Process_Options类图 167

图8.4 ACE_Process_Manager类图 170

图8.5 多进程日志服务器的结构 171

图8.6 主进程/工作者进程的创建顺序(POSIX) 174

图8.7 主进程/工作者进程的创建顺序(Win32) 174

图9.1 ACE Thread_Manager类图 189

图9.2 “一个连接一个线程”日志服务器的结构 192

图9.3 ACE_Sched_Params类图 200

图9.4 ACE_TSS类图 203

图10.1 ACE_LOCK*伪类 209

图10.2 ACE_Guard系列类图 210

图10.3 ACE_Condition_Thread_Mutex类图 230

图10.4 ACE_Recursive_Thread_Mutex类图 231

图A.1 SocketAPI中的函数 247

图A.2 ACE IPC地址的继承结构 248

图B.1 基于ACE且符合标准的中间件 264