內容簡介
雲計算是一個新興的術語,很多技術還處在起步階段。雲計算涉及的範圍非常廣,包括分散式計算、並行計算、效用計算等。
本書從分散式系統的角度出發,系統地對雲計算進行全面介紹,既有分散式系統和雲計算系統的理論分析和核心技術闡述,又有對各大IT公司的雲計算軟體產品的使用方法的介紹和比較分析。本書作者隊伍強大,有海內外一流高校的教授和研究學者,也有IT公司的雲計算技術的開發和管理人員。
本書可以作為高年級本科生、研究生的教材,也可供雲計算的套用開發人員、行業專業人士以及相關學科的研究者作參考。
圖書目錄
第1章 緒論 /1
1.1 分散式計算與分散式系統 /1
1.1.1 分散式計算簡介 /1
1.1.2 分散式系統的實例 /2
1.1.3 分散式系統的目標 /4
1.2 雲計算 /5
1.2.1 簡介 /5
1.2.2 雲計算的優點和缺點 /7
1.3 本書概要 /10
1.4 小結 /12
習題 /12第一篇 分散式系統第2章 分散式系統入門 /15
2.1 分散式系統的定義 /15
2.1.1 分散式與集中式 /15
2.1.2 分散式與計算機網路 /16
2.1.3 分散式系統層次結構 /17
2.1.4 分散式系統分類 /18
2.2 分散式系統中的軟硬體 /19
2.2.1 硬體 /19
2.2.2 軟體 /20
2.3 分布系統中的主要特徵 /21
2.3.1 容錯性 /21
2.3.2 安全性 /22
2.4 小結 /23
習題 /23第3章 客戶-伺服器端架構 /25
3.1 客戶-伺服器模式的基本概念和優點 /25
3.1.1 客戶-伺服器模式的基本概念 /25
3.1.2 客戶-伺服器模式優點 /26
3.2 客戶-伺服器端架構和體系結構 /26
3.2.1 面向連線服務與無連線服務 /26
3.2.2 應用程式的層次結構 /27
3.2.3 客戶-伺服器模型體系結構 /29
3.3 客戶-伺服器模型的進程通信 /32
3.3.1 進程通信中客戶-伺服器模型的
實現方法 /32
3.3.2 客戶-伺服器模型的進程
通信協定 /34
3.4 客戶-伺服器端模型的變種 /37
3.4.1 移動代碼 /37
3.4.2 移動代理 /38
3.4.3 網路計算機 /39
3.4.4 瘦客戶 /40
3.4.5 移動設備和自組網路 /40
3.5 小結 /41
習題 /42第4章 分散式對象 /43
4.1 分散式對象基本模型 /43
4.1.1 遠程對象 /43
4.1.2 分散式共享對象 /45
4.2 遠程過程調用 /45
4.2.1 RPC基本操作 /46
4.2.2 參數傳遞 /47
4.3 分散式計算環境的遠程對象調用 /49
4.3.1 遠程對象調用 /49
4.3.2 分散式計算環境 /52
4.3.3 分散式計算環境的遠程對象調用
方式 /53
4.4 Java 遠程方法調用 /54
4.5 小結 /56
習題 /57第5章 公共對象請求代理體系結構 /58
5.1 CORBA基本概述 /58
5.1.1 CORBA RMI概述 /59
5.1.2 CORBA體系結構 /60
5.1.3 CORBA接口定義語言 /62
5.1.4 CORBA遠程對象引用 /66
5.2 CORBA的基本服務 /67
5.2.1 CORBA命名服務 /68
5.2.2 CORBA事件服務 /70
5.2.3 CORBA通知服務 /72
5.3 容錯性和安全性 /73
5.3.1 容錯性 /73
5.3.2 安全性 /75
5.4 Java IDL語言 /77
5.4.1 Java IDL映射 /78
5.4.2 Java CORBA編程實現 /82
5.5 小結 /85
習題 /85第二篇 雲計算技術第6章 分散式雲計算概述 /89
6.1 雲計算入門 /89
6.1.1 雲計算的定義 /89
6.1.2 雲計算的發展歷史 /90
6.1.3 雲計算的優缺點 /92
6.2 雲服務 /93
6.2.1 使用雲平台的理由 /93
6.2.2 雲平台的服務類型 /94
6.2.3 雲平台服務的安全性 /95
6.2.4 雲平台服務的供應商 /95
6.2.5 雲平台服務的優勢和
面臨的挑戰 /98
6.3 雲計算比較 /99
6.3.1 集群計算和雲計算 /99
6.3.2 格線計算和雲計算 /101
6.3.3 效用計算和雲計算 /103
6.3.4 並行計算、分布計算和雲計算 /104
6.4 小結 /105
習題 /106第7章 Google公司的三大技術 /107
7.1 Google檔案系統 /107
7.1.1 前言 /107
7.1.2 設計概要 /108
7.1.3 系統互動 /112
7.1.4 主控伺服器操作 /113
7.1.5 容錯和檢測 /114
7.2 Bigtable技術 /115
7.2.1 Bigtable簡介 /115
7.2.2 Bigtable數據模型 /116
7.2.3 API /117
7.2.4 Bigtable所依賴的框架 /118
7.2.5 Bigtable實現的關鍵 /119
7.2.6 Bigtable性能最佳化方案 /122
7.2.7 Bigtable套用實例 /125
7.2.8 經驗總結 /127
7.3 MapReduce技術 /128
7.3.1 前言 /128
7.3.2 編程模型 /129
7.3.3 實例 /129
7.3.4 輸入輸出類型 /129
7.3.5 更多實例 /130
7.3.6 執行概述 /130
7.4 小結 /132
習題 /132第8章 Yahoo!公司的雲平台技術 /134
8.1 什麼是PNUTS--靈活通用的表
存儲平台 /134
8.1.1 前言 /134
8.1.2 PNUTS概述 /135
8.1.3 PNUTS的設計和功能 /136
8.1.4 PNUTS的系統結構 /136
8.1.5 PNUTS的數據存儲和檢索 /137
8.1.6 副本和一致性 /138
8.1.7 其他資料庫系統功能 /140
8.1.8 資料庫服務 /141
8.2 Pig系統簡述 /141
8.2.1 Pig的定義 /141
8.2.2 Pig簡介 /141
8.3 ZooKeeper系統簡述 /142
8.3.1 什麼是ZooKeeper /142
8.3.2 ZooKeeper項目介紹 /142
8.4 小結 /143
習題 /143第9章 Aneka雲平台技術 /144
9.1 Aneka雲平台 /144
9.2 Aneka的架構 /144
9.3 面向市場的雲架構 /146
9.4 Aneka: 從企業格線到面向市場的雲計算 /148
9.4.1 Aneka雲中面向市場的資源
定價和分配 /148
9.4.2 性能評估 /150
9.4.3 高性能計算工作負載 /150
9.5 小結 /154
習題 /154第10章 Greenplum資料庫技術 /155
10.1 什麼是Greenplum /155
10.2 Greenplum 分析資料庫 /155
10.3 Greenplum資料庫的體系結構 /156
10.3.1 無共享大規模並行處理
體系結構 /156
10.3.2 Greenplum的分段單元服務 /157
10.3.3 數據分布和並行掃描 /157
10.3.4 容錯能力和先進的複製技術 /158
10.3.5 全局並行查詢最佳化技術 /159
10.3.6 gNet軟體互聯 /159
10.3.7 並行數據流引擎 /160
10.3.8 統一的分析處理 /161
10.3.9 基於標準,建立在開源PostgreSQL
資料庫系統之上 /161
10.4 Greenplum的關鍵特性和優點 /161
10.5 小結 /162
習題 /162第11章 Amazon公司的Dynamo技術 /163
11.1 Dynamo初步介紹 /163
11.2 Dynamo的背景資料 /164
11.2.1 系統的假設和需求 /164
11.2.2 服務層協定 /165
11.2.3 設計考慮因素 /166
11.3 Dynamo系統體系結構 /167
11.3.1 系統接口 /168
11.3.2 分割算法 /168
11.3.3 複製 /169
11.3.4 數據版本 /170
11.3.5 Dynamo中的get()和put()
的操作 /172
11.3.6 臨時性故障處理 /172
11.3.7 處理永久的錯誤: 同步複製 /173
11.3.8 成員關係和故障檢測 /173
11.3.9 增加/刪除存儲結點 /174
11.4 小結 /175
習題 /175第12章 IBM公司的雲計算技術 /176
12.1 IBM公司的雲計算概述 /176
12.2 雲風暴 /177
12.3 智慧型商業服務 /178
12.4 智慧地球計畫 /178
12.5 Z系統 /179
12.6 虛擬化的動態基礎架構技術 /180
12.6.1 虛擬化 /181
12.6.2 虛擬化的雲計算技術 /182
12.6.3 實現虛擬化策略的關鍵
解決方案 /183
12.7 小結 /186
習題 /186第三篇 分散式雲計算的程式開發第13章 基於Hadoop系統的開發 /189
13.1 Hadoop系統概述 /189
13.1.1 Hadoop系統由來 /189
13.1.2 Apache Hadoop項目 /190
13.1.3 Hadoop的優勢 /191
13.2 Hadoop分散式檔案系統 /191
13.2.1 HDFS體系結構 /192
13.2.2 檔案系統的命名空間 /193
13.2.3 HDFS數據複製 /193
13.3 MapReduce編程 /194
13.3.1 MapReduce概述 /194
13.3.2 MapReduce核心 /198
13.3.3 任務執行和執行環境 /200
13.3.4 作業的提交與監控 /203
13.3.5 作業的輸入輸出 /203
13.3.6 MapReduce特性 /205
13.4 編程實例 /208
13.5 小結 /211
習題 /212第14章 基於HBase系統的開發 /213
14.1 HBase介紹 /213
14.2 HBase數據模型 /213
14.2.1 概念視圖 /214
14.2.2 物理視圖 /214
14.2.3 子表: 域 /215
14.3 HBase體系結構和功能 /216
14.3.1 HBase Master /216
14.3.2 HRegion Server /217
14.3.3 HBase Client /217
14.4 HBase編程 /218
14.5 小結 /219
習題 /220第15章 基於Google App Engine系統的開發 /221
15.1 Google App Engine簡介 /221
15.1.1 Google App Engine基本
功能 /221
15.1.2 Google App Engine環境
配置 /223
15.1.3 Google App Engine資源
配額 /225
15.2 如何使用Google App Engine /225
15.2.1 Google App Engine Java SDK
使用 /226
15.2.2 Google App Engine Python SDK
使用 /240
15.3 基於Google App Engine的應用程式
開發實例 /246
15.4 小結 /251
習題 /251第16章 基於Windows Azure系統的開發 /253
16.1 微軟公司的雲計算概述 /253
16.1.1 微軟公司的雲計算戰略 /253
16.1.2 微軟公司的動態雲計算解決
方案 /254
16.2 Windows Azure平台簡介 /257
16.2.1 Windows Azure /258
16.2.2 SQL Azure /261
16.2.3 .NET 服務 /263
16.3 Windows Azure服務使用 /265
16.3.1 Windows Azure環境配置 /266
16.3.2 開發GuestBook應用程式 /266
16.3.3 發布GuestBook應用程式 /277
16.4 小結 /279
習題 /280附錄A Hadoop MapReduce線上測試平台 /281技術名詞索引 /288參考文獻 /294後記 /304