出版社:科学出版社
年代:2011
定价:59.0
本书讨论了网络计算系统中的基础设施软件--中间件。本书提供了一种如何应用自适应通信环境ACE和能够运行多种硬件平台和操作系统的开发源框架,来开发和优化复杂分布系统的实际解决方案,指导软件专业人员如何开发高效、可移植和灵活的并发网络应用系统程序。全书分为三部分,内容包括网络应用面临的挑战,面向对象的中间件解决方案,自适应通信环境ACE工具包,面向对象的网络编程技术和面向并发对象的网络编程等。
第0章 设计面临的挑战、中间件 解决方案和ACE 1
0.1 网络应用面临的挑战 1
0.2 网络应用的设计空间 4
0.3 面向对象的中间件解决方案 6
0.3.1 面向对象中间件的各个层面 7
0.3.2 宿主基础中间件的好处 9
0.4 ACE工具包概览 11
0.4.1 ACE OS适配层 12
0.4.2 ACE的C++包装器外观层 12
0.4.3 ACE的框架层 13
0.4.4 ACE网络服务组件层 14
0.5 示例:网络日志服务 15
0.6 小结 17
第1部分 面向对象网络编程 19
第1章 通信的设计空间 20
1.1 无连接和面向连接的协议对比 20
1.2 同步和异步的消息交换对比 23
1.3 消息传递与共享内存的对比 25
1.4 小结 27
第2章 Socket API概述 29
2.1 操作系统IPC机制概览 29
2.2 Socket API 30
2.3 Socket API的局限性 33
2.3.1 容易出错的API 33
2.3.2 过于复杂的API 37
2.3.3 不可移植的和非形式统一的API 39
2.4 小结 39
第3章 ACE的Socket包装器外观 41
3.1 概述 41
3.2 ACE_Addr类和ACE_INET_Addr类 45
3.3 ACE_IPC_SAP类 48
3.4 ACE_SOCK类 50
3.5 ACE_SOCK_Connector类 51
3.6 ACE_SOCK_IO类和ACE_SOCK_Stream类 56
3.7 ACE_SOCK_Acceptor类 60
3.8 小结 64
第4章 实现网络日志服务 66
4.1 概述 66
4.2 ACE_Message_Block类 67
4.3 ACE_InputCDR类和ACE_OutputCDR类 71
4.4 最初版本的日志服务器 75
4.4.1 Logging_Server基类 77
4.4.2 Logging_Handler类 82
4.4.3 Iterative_Logging_Server类 87
4.5 客户端应用 91
4.6 小结 96
第2部分 并发式面向对象网络编程 97
第5章 并发设计空间 98
5.1 循环式、并发式和反应式服务器 99
5.2 进程和线程的对比 104
5.3 进程/线程的产生策略 107
5.4 用户、核心和混合线程模型 109
5.5 分时和实时调度类 114
5.6 基于任务的和基于消息的架构对比 115
5.7 小结 117
第6章 操作系统并发机制概览 118
6.1 同步事件多路分离 118
6.2 多进程机制 120
6.3 多线程机制 122
6.4 同步机制 123
6.4.1 互斥体锁 125
6.4.2 读/写锁 125
6.4.3 信号量锁 126
6.4.4 条件变量 126
6.5 OS并发机制的局限性 127
6.6 小结 129
第7章 ACE的同步事件多路分离 包装器外观 131
7.1 概述 131
7.2 ACE_Handle_Set类 133
7.3 ACE_Handle_Set_Iterator类 139
7.4 ACE::select()方法 143
7.5 小结 149
第8章 ACE的进程包装器外观 151
8.1 概述 151
8.2 ACE_Process类 153
8.3 ACE_Process_Options类 157
8.4 ACE_Process_Manager类 162
8.5 小结 175
第9章 ACE的线程包装器外观 176
9.1 概述 176
9.2 ACE_Thread_Manager类 178
9.3 ACE_Sched_Params类 189
9.4 ACE_TSS类 193
9.5 小结 197
第10章 ACE的同步包装器外观 198
10.1 概述 198
10.2 ACE_Guard类 201
10.3 ACE的互斥体类 204
10.4 ACE的读/写锁类 210
10.5 ACE的信号量类 214
10.6 ACE的条件变量类 222
10.7 小结 226
附录A ACE C++包装器外观的设计原则 227
A.1 概述 227
A.2 使用包装器外观来增强类型安全 228
A.2.1 设计强制执行正确用法的C++类 228
A.2.2 允许类型安全的受控违反 230
A.3 常见用例的简化 231
A.3.1 把多个函数整合到单个方法中 231
A.3.2 把函数整合到一个统一的包装器外观下 233
A.3.3 重排序参数并提供默认值 234
A.3.4 显式地关联内聚对象 237
A.4 使用层次结构来增强设计的清晰度和 可扩展性 238
A.4.1 使用层次结构来代替一维的API 239
A.4.2 使用C++继承来代替伪继承 240
A.5 尽可能地隐藏平台的差异性 240
A.5.1 只要有所受益就允许源代码构建 241
A.5.2 模拟缺失的功能 242
A.5.3 通过参数化类型来处理变异性 244
A.6 为提高效率进行优化 247
A.6.1 设计高效的包装器外观 247
A.6.2 内联性能关键的方法 248
A.6.3 避免使用系统级工具包中的异常处理 248
A.7 小结 249
附录B ACE的过去、现在和将来 250
B.1 ACE的演变 250
B.1.1 初始有形的渴望 250
B.1.2 转折点 251
B.1.3 跨越鸿沟 253
B.1.4 中间件标准 254
B.1.5 开源的影响 256
B.2 未来之路 257
B.3 结束语 259
术语表 260
参考文献 281
本书提供了一种应用ACE和能够运行于多种硬件平台和操作系统的开发源框架,来开发和优化复杂分布式系统的实际解决方案,指导软件开发人员开发高效、可移植和灵活的并发式网络应用。书中通过一个贯穿全文的案例——网络日志服务,具体演示了ACE在并发式面向对象网络编程中的应用,说明了ACE所拥有的优势。ACE软件和书中描述的所有示例应用程序都是开源的,可从http://www.riverace.com站点上下载。
书籍详细信息 | |||
书名 | C++网络编程站内查询相似图书 | ||
9787030327994 如需购买下载《C++网络编程》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN | |||
出版地 | 北京 | 出版单位 | 科学出版社 |
版次 | 1版 | 印次 | 1 |
定价(元) | 59.0 | 语种 | 简体中文 |
尺寸 | 26 × 19 | 装帧 | 平装 |
页数 | 304 | 印数 |
(美) 休斯顿 (Huston,S.D.) , (美) 施密特 (Schmidt,D.C.) , 编著
(美) 施米特 (Schmidt,D.C.) , (美) 休斯顿 (Huston,S.D.) , 著
(美) 施密特 (Schmidt,D.C.) , (美) 霍斯顿 (Huston,S.D.) , 著
唐文超, 编著
梁伟, 编著
(美) 索尔特, (美) 凯乐普, 著
(加) 萨特 (Sutter,H.) , (罗) 亚历山德雷斯库 (Alexandrescu,A.) , 著
(美) 格莱戈尔 (Gregoire,M.) , (美) 凯乐普 (Kleper,S.J.) , 著
(美) 萨特 (Sutter,H.) , 著