内容简介
本书将传统的分布式计算与新兴的云计算、大数据等技术综合起来,以应用需求为背景讲解技术原理和应用方法,主要内容包括:传统分布式计算的基本原理和核心技术,云计算的原理、架构、实现技术及安全问题,大数据的分析模型、存储平台、编程技术及电商大数据分析技术等。本书适合作为高等学校计算机专业高年级本科生和研究生教材,也适合作为相关技术人员的参考读物。
目录
前言
第1章 分布式计算概述 1
1.1 分布式计算的概念 1
1.1.1 定义 1
1.1.2 分布式计算的优缺点 1
1.1.3 分布式计算的相关计算形式 2
1.2 分布式系统概述 4
1.2.1 分布式系统的定义 4
1.2.2 经典的分布式系统与项目 4
1.2.3 分布式系统的特征 6
1.3 分布式计算的基础技术 9
1.3.1 进程间通信 9
1.3.2 IPC程序接口原型 10
1.3.3 事件同步 11
1.3.4 死锁和超时 14
1.3.5 事件状态图 15
1.3.6 进程间通信范型的演变 16
习题 17
参考文献 18
第2章 分布式计算范型 19
2.1 消息传递范型 19
2.2 客户/服务器范型 20
2.3 P2P范型 20
2.4 消息系统范型 21
2.5 远程过程调用范型 22
2.6 分布式对象范型 24
2.6.1 远程方法调用 24
2.6.2 对象请求代理 24
2.7 网络服务范型 25
2.8 移动代理范型 26
2.9 云服务范型 26
习题 27
参考文献 27
第3章 Socket编程与客户/服务器应用开发 28
3.1 Socket概述与分类 28
3.2 数据包Socket API 29
3.2.1 无连接数据包Socket API 29
3.2.2 面向连接数据包Socket API 35
3.3 流式Socket API 37
3.4 客户/服务器范型概述与应用开发方法 43
3.4.1 客户/服务器范型概念 43
3.4.2 客户/服务器范型的关键问题 44
3.5 基于三层软件的客户/服务器应用开发方法 45
3.5.1 软件体系结构 45
3.5.2 采用无连接数据包Socket的Daytime客户/服务器应用 45
3.5.3 采用流式Socket的Daytime客户/服务器应用 50
3.6 无连接与面向连接服务器程序的开发 54
3.6.1 无连接Echo客户/服务器 54
3.6.2 面向连接Echo客户/服务器 56
3.7 迭代与并发服务器程序的开发 59
3.8 有状态与无状态服务器程序的开发 62
习题 65
参考文献 69
第4章 RMI范型与应用 70
4.1 分布式对象范型 70
4.1.1 分布式对象范型的概念 70
4.1.2 分布式对象范型的体系结构 71
4.1.3 分布式对象系统 71
4.2 RMI 72
4.2.1 远程过程调用 72
4.2.2 RMI概述 72
4.2.3 Java RMI体系结构 73
4.2.4 stub和skeleton 74
4.2.5 对象注册 74
4.3 RMI基本应用开发 75
4.3.1 远程接口 75
4.3.2 服务器端软件 75
4.3.3 客户端软件 78
4.3.4 RMI应用代码示例 78
4.3.5 RMI应用构建步骤 81
4.3.6 RMI和Socket API的比较 83
4.4 RMI高级应用 83
4.4.1 客户回调 83
4.4.2 stub下载 90
4.4.3 RMI安全管理器 92
习题 95
参考文献 96
第5章 Web原理与应用开发 97
5.1 HTTP协议 97
5.1.1 WWW 97
5.1.2 TCP/IP 97
5.1.3 HTTP协议原理 98
5.2 Web开发技术 101
5.2.1 HTML 101
5.2.2 JavaScript 104
5.2.3 CSS 107
5.2.4 XML 109
5.2.5 动态网页技术 110
5.3 CGI 113
5.3.1 CGI原理 113
5.3.2 Web表单 116
5.4 Web会话 117
5.4.1 Cookie机制 118
5.4.2 Session机制 124
5.5 Applet 128
5.6 Servlet 132
5.7 SSH框架与应用开发 136
5.7.1 SSH 136
5.7.2 Struts 137
5.7.3 Spring 142
5.7.4 Hibernate 143
5.7.5 基于SSH的应用开发
案例 146
习题 156
参考文献 160
第6章 P2P原理与实践 161
6.1 P2P概述 161
6.1.1 P2P的概念 161
6.1.2 P2P的发展历程 162
6.1.3 P2P的技术特点 163
6.1.4 P2P的实践应用 164
6.2 P2P网络的分类 164
6.3 P2P的典型应用系统 168
6.4 P2P编程实践 170
6.5 P2P的研究现状与未来发展 176
6.5.1 P2P的研究现状 176
6.5.2 P2P的未来发展 177
习题 178
参考文献 179
第7章 Web Services 180
7.1 Web Services概述 180
7.1.1 Web Services的背景和概念 180
7.1.2 Web Services的特点 180
7.1.3 Web Services的应用场合 181
7.1.4 Web Services技术架构 182
7.1.5 Web Services工作原理 184
7.1.6 Web Services的开发 184
7.2 XML 186
7.2.1 XML概述 186
7.2.2 XML文档和语法 187
7.2.3 XML命名空间 192
7.2.4 XML模式 194
7.3 基于SOAP的Web Services 200
7.3.1 SOAP概述 201
7.3.2 SOAP消息结构 201
7.3.3 SOAP消息交换模型 205
7.3.4 SOAP应用模式 206
7.3.5 WSDL 208
7.3.6 UDDI 213
7.3.7 开发基于SOAP的Web Services 216
习题 224
参考文献 224
第8章 云计算原理与技术 226
8.1 云计算概述 226
8.1.1 云计算的起源 226
8.1.2 云计算的定义 227
8.1.3 云计算的分类 228
8.1.4 云计算与其他计算形式 231
8.2 云计算关键技术 232
8.2.1 体系结构 232
8.2.2 数据存储 233
8.2.3 计算模型 235
8.2.4 资源调度 237
8.2.5 虚拟化 237
8.3 Google云计算原理 238
8.3.1 GFS 238
8.3.2 MapReduce 238
8.3.3 BigTable 239
8.3.4 Dremel 242
8.4 Amazon云服务 244
8.4.1 Amazon云平台存储架构 244
8.4.2 其他组件 246
8.5 云计算研究与发展方向 250
8.5.1 云资源调度与任务调度 250
8.5.2 云计算能耗管理 253
8.5.3 基于云计算的应用 256
8.5.4 云计算安全 257
习题 259
参考文献 259
第9章 云计算模拟编程实践 263
9.1 CloudSim体系结构和API 263
9.1.1 CloudSim体系结构 263
9.1.2 CloudSim3.0 API 268
9.2 CloudSim环境搭建及程序运行 272
9.2.1 环境配置 272
9.2.2 运行样例程序 272
9.3 CloudSim扩展编程 275
9.3.1 调度策略的扩展 275
9.3.2 仿真核心代码 277
9.3.3 平台重编译 281
9.4 CloudSim编程实践 282
9.4.1 CloudSim任务调度编程 282
9.4.2 CloudSim网络编程 287
9.4.3 CloudSim能耗编程 290
习题 301
参考文献 302
第10章 云存储技术 303
10.1 存储概述 303
10.1.1 存储组网形态 303
10.1.2 RAID 307
10.1.3 磁盘热备 312
10.1.4 快照 313
10.1.5 数据分级存储的概念 314
10.2 云存储的概念与技术原理 314
10.2.1 分布式存储 315
10.2.2 存储虚拟化 321
10.3 云存储产品与系统 323
10.3.1 公有云的云存储产品 323
10.3.2 私有云的云存储产品 325
10.4 对象存储技术 327
10.4.1 对象存储架构 328
10.4.2 传统块存储与对象存储 328
10.4.3 对象 328
10.4.4 对象存储系统的组成 330
10.5 存储技术的发展趋势 331
习题 334
参考文献 334
第11章 大数据技术与实践 335
11.1 大数据概述 335
11.1.1 大数据产生的背景 335
11.1.2 大数据的定义 335
11.1.3 大数据的4V特征 336
11.2 大数据存储平台 336
11.2.1 HDFS 336
11.2.2 HBase 343
11.2.3 Cassandra 353
11.2.4 Redis 360
11.2.5 MongoDB 366
11.3 大数据计算模式 373
11.3.1 PRAM 373
11.3.2 BSP 374
11.3.3 LogP 376
11.3.4 MapReduce 377
11.3.5 Spark 382
11.4 大数据分析处理平台 388
11.4.1 Impala平台 388
11.4.2 HadoopDB平台 390
11.5 大数据存储编程实践 392
11.5.1 HDFS读写程序范例 392
11.5.2 HBase读写程序范例 393
11.6 大数据并行计算编程实践 395
11.6.1 基于MapReduce的程序实例(HDFS) 395
11.6.2 基于MapReduce的程序实例(HBase) 404
11.6.3 基于Spark的程序实例 407
11.6.4 基于Impala的程序实例 410
11.7 大数据研究与发展方向 413
11.7.1 数据的不确定性与数据质量 413
11.7.2 跨领域的数据处理方法的可移植性 413
11.7.3 数据处理的时效性保证——内存计算 413
11.7.4 流式数据的实时处理 415
11.7.5 大数据应用 416
11.7.6 大数据发展趋势 417
习题 418
参考文献 419
第12章 电商大数据分析技术 421
12.1 电商大数据分析需求与方法概述 421
12.1.1 电商大数据的分析与数据推荐需求 421
12.1.2 电商大数据的数据结构和数据推荐评价指标 422
12.1.3 推荐算法和技术简介 423
12.2 基于规则统计模型的大数据分析方法与实现 424
12.2.1 程序运行说明 424
12.2.2 数据整理 424
12.2.3 构建离线评估模型 427
12.2.4 多个模型结果的并集与交集 429
12.2.5 购买即推荐模型 433
12.2.6 前三个月购买,后一个月只有点击 435
12.2.7 最近k天对该品牌有操作,即将此品牌推荐 436
12.2.8 对某商品连续操作n次以上便推荐 438
12.2.9 基于时间权重的模型 439
12.3 基于协同过滤推荐模型的大数据分析方法与实现 442
12.3.1 协同过滤基本原理 442
12.3.2 协同过滤方法的选择 444
12.3.3 用Maven构建Mahout协同过滤项目 445
12.3.4 Mahout单机基于用户协同过滤 450
12.3.5 Mahout单机基于物品相似协同过滤 451
12.3.6 基于Hadoop的Mahout分布式开发 453
12.4 基于逻辑回归模型的大数据分析方法与实现 459
12.4.1 逻辑回归的基本原理 459
12.4.2 逻辑回归的简单实现 460
习题 467
参考文献 467
前言/序言
背景分布式计算从20世纪六七十年代发展到现在,一直是计算机科学技术的理论与应用的热点问题,特别是最近几年,随着互联网、移动互联网、社交网络应用的发展,急需分布式计算的新技术——云计算、大数据,以满足和实现新时代计算机的应用需求。云计算、大数据等新技术本质上是分布式计算的发展和延伸,现有的书籍一般很少把经典的分布式计算与新兴的云计算、大数据等技术综合起来,并以应用需求为背景来剖析这些技术的原理和应用方法,本书正是为了适应这一新的发展趋势和需求而编写的,希望对云计算、大数据等新技术的研究与应用起到一定的作用。 内容规划本书包含传统分布式计算、云计算和大数据三方面的内容,具体内容包括:传统分布式计算的基本原理、核心技术、相关开发技术与方法(Socket、RMI、P2P、Web Services);云计算概述与原理、云计算架构与实现技术(Google、Amazon的云计算技术)、云计算研究现状与发展方向、云计算模拟编程实践、云存储技术、云计算安全问题与技术;大数据的分析计算模型(PRAM、BSP、LogP、MapReduce、Spark内存计算等)、大数据存储平台(Hadoop[HDFS/HBase]、Cassandra、Redis、MongoDB等)、大数据分析处理技术(Impala、Hadoopdb、Spark等)、大数据编程技术及研究现状、电商大数据分析技术等。全书共12章,各章之间的层次关系如下: 教学资源与使用方法本书提供配套的PPT课件和课后习题参考答案,使用本书进行教学的教师可以从华章网站(www.hzbook.com)下载或发送电子邮件至linww@scut.edu.cn或lin_w_w@qq.com向编者索取。 本书可以作为计算机及相关专业高年级本科生和研究生的教材,建议在学习过操作系统、计算机网络、面向对象编程语言之后学习本课程。本书内容可根据不同的教学目的和对象进行选择,例如,对于本科类的分布式计算相关课程,可以选择分布式计算相关章节(第1~7章)重点讲解;对于本科类的云计算相关课程,可以选择分布式计算和云计算相关章节(第1~10章)重点讲解;对于本科类的大数据相关课程,可以选择分布式计算和大数据相关章节(第1~7和11、12章)重点讲解;对于研究生的课程,可以选择云计算和大数据相关章节重点讲解。根据本书的定位,建议每章讲授的最低学时分配如下: 章号
建议重点讲授章节
建议学时第1章
1.1,1.2,1.3.1,1.3.2,1.3.3
2第2章
所有内容
2第3章
3.2,3.5,3.6,3.7
4第4章
4.2,4.3,4.4
4第5章
5.1.3,5.3,5.4,5.7.5
6第6章
6.2,6.4
2第7章
7.1.4,7.1.5,7.2.2,7.3
3第8章
8.1,8.2,8.3,8.4
3第9章
9.1,9.3,9.4
4第10章
10.2,10.4
4第11章
11.2,11.3.4,11.3.5,11.4,11.5,11.6
8第12章
12.2,12.3,12.4
8此外,本书的教学应该有相应的实验课程,建议实验课程学时数不少于理论课程学时数的三分之一。 致谢本书由林伟伟博士负责总体设计、组织编写和内容把关,刘波教授负责全书审校和整体润色。在本书的编写过程中,项目组多位研究生投入大量精力进行程序设计与资料收集、整理工作,他们是张子龙、郭超、徐思尧、李
分布式计算、云计算与大数据 电子书 下载 mobi epub pdf txt