內容介紹
《雲端代碼:Google App Engine編程指南》介紹了如何將應用程式構建為服務,如何使用App Engine管理持久化數據,如何構建可在用戶瀏覽器上運行的、動態的、可互動的用戶界面。如何管理Web套用的安全性,如何用App Engine與雲端運行的其他服務互動。《雲端代碼:Google App Engine編程指南》中闡述了雲套用的內涵,剖析了其與傳統套用的區別,並通過使用Python與Java對一個簡單的套用進行不斷的深入開發,揭示出App Engine的各方面特性,從而使讀者順利掌握構建雲端應用程式的秘訣。
作者介紹
Mark Chu-Carroll谷歌軟體工程師,從事軟體開發將近20年。業餘時,他還負責開發和管理Scientopia.org,並在該網站上發表數學部落格Good Math/Bad Math,其部落格地址http://scientopia.org/blogs/goodmath。
作品目錄
目 錄第一部分 Google App Engine入門
第1章 簡介2
1.1 什麼是雲計算2
1.1.1 雲的概念2
1.1.2 雲與開發者3
1.1.3 雲計算與客戶/伺服器計算4
1.1.4 何時用雲開發5
1.2 雲計算編程系統6
1.3 致謝8
第2章 入門9
2.1 設定Google App Engine賬戶9
2.2 設定開發環境10
2.3 開始App Engine中的Python編程13
2.4 監視應用程式18
2.5 參考文獻和資源20
第二部分 用Python進行Google App Engine編程
第3章 第一個真正的雲應用程式22
3.1 基本的聊天應用程式22
3.2 HTTP基礎25
3.3 聊天應用程式到HTTP的映射28
3.4 參考文獻和資源33
第4章 雲中的數據管理34
4.1 聊天軟體為何不工作?34
4.2 聊天軟體的持久性改造36
4.2.1 創建和存儲持久性對象37
4.2.2 取回持久性對象39
4.2.3 使用GQL查詢改進聊天軟體39
4.2.4 添加計數限制視圖40
4.2.5 添加時間限制視圖41
4.3 參考文獻和資源42
第5章 Google App Engine的登錄認證服務43
5.1 users服務簡介43
5.2 users服務44
5.2.1 用戶對象和當前用戶44
5.2.2 用戶登錄44
5.3 整合users服務到聊天軟體中45
第6章 代碼組織:分離用戶界面和邏輯47
6.1 模板入門47
6.1.1 為什麼學習另一種語言48
6.1.2 模板基礎:採用模板顯示聊天軟體48
6.2 用模板創建相關視圖51
6.2.1 模板繼承52
6.2.2 使用模板定製聊天視圖54
6.3 多聊天室55
6.3.1 更新多聊天室的邏輯55
6.3.2 構建多聊天室的登錄頁面56
6.3.3 聊天頁面模板56
6.4 參考文獻和資源59
第7章 增強用戶界面的美觀性:模板和CSS60
7.1 CSS簡介60
7.2 使用CSS為文本添加樣式61
7.3 使用CSS的頁面布局65
7.3.1 用div元素描述文檔結構66
7.3.2 基於流的布局67
7.4 使用流布局構建我們的界面72
7.5 在App Engine應用程式中包含CSS檔案75
7.6 參考文獻和資源76
第8章 進行互動77
8.1 互動式網路服務:基礎知識77
8.2 模型?視圖?控制器設計模式79
8.3 與伺服器不中斷地互動81
8.3.1 模型:聊天室的請求處理程式83
8.3.2 控制器:客戶端的JavaScript程式84
8.3.3 聊天視圖86
8.4 參考文獻和資源87
第三部分 用Java進行Google App Engine編程
第9章 Google App Engine和Java90
9.1 GWT簡介91
9.2 Java和GWT入門92
9.2.1 GWT應用程式的結構93
9.2.2 在GWT中設定用戶界面94
9.3 GWT中的遠程過程調用98
9.3.1 GWT中的客戶端RPC99
9.3.2 GWT中的伺服器端RPC101
9.4 使用GWT進行測試和部署102
第10章 管理伺服器端數據103
10.1 Java中的數據持久性103
10.2 在GWT中存儲持久性對象106
10.3 在GWT中取回持久性對象109
10.4 將客戶端和伺服器粘合在一起111
10.5 參考文獻和資源112
第11章 用Java構建用戶界面113
11.1 為什麼使用GWT113
11.2 使用部件構建GWT用戶界面114
11.3 激活用戶界面:處理事件119
11.4 激活用戶界面:更新顯示123
11.5 GWT結束語125
11.6 參考文獻和資源125
第12章 構建Java應用程式的伺服器端126
12.1 填補空白:支持聊天室功能126
12.1.1 實現ChatRoom類127
12.1.2 持久性的類和GWT127
12.1.3 伺服器端的ChatRoom方法129
12.2 適當的互動式設計:增量式設計130
12.2.1 增量式更新的數據對象131
12.2.2 增量式的聊天室界面132
12.2.3 解決時間難題133
12.2.4 實現伺服器端的方法134
12.3 更新客戶端136
12.4 聊天室管理137
12.5 運行和部署聊天應用程式139
12.6 伺服器端結束語140
第四部分 高級Google App Engine編程
第13章 高級數據倉庫:特性類型142
13.1 構建檔案系統服務142
13.2 淺嘗檔案系統建模145
13.2.1 數據倉庫關鍵字和引用150
13.2.2 實現檔案系統的其餘部分154
13.2.3 用GET實現檔案獲取155
13.2.4 用PUT實現檔案存儲157
13.3 特性類型引用158
13.3.1 原始特性類型158
13.3.2 複雜特性類型159
13.4 特性類型結束語160
第14章 高級數據倉庫:特性類型161
14.1 數據倉庫中的索引和查詢161
14.1.1 揭開數據倉庫的面紗161
14.1.2 自動生成的索引163
14.1.3 創建自定義索引163
14.1.4 Java中的索引165
14.2 更靈活的模型165
14.3 事務、關鍵字和實體組167
14.4 策略和一致性模型168
14.5 漸進式取回170
第15章 GoogleApp Engine服務172
15.1 快速訪問重要內容:Memcache服務172
15.1.1 在Python中使用Memcache173
15.1.2 在Java中使用Memcache174
15.1.3 應該快取何種內容175
15.1.4 快取訪問模式176
15.2 訪問其他內容:URL Fetch服務176
15.3 與人溝通:Mail和Chat服務177
15.3.1 傳送聊天訊息177
15.3.2 接收即時訊息178
15.3.3 在Python中處理聊天訊息179
15.3.4 在Java中接收聊天訊息179
15.4 傳送和接收電子郵件180
15.4.1 傳送郵件180
15.4.2 接收郵件181
15.5 服務結束語183
第16章 雲中的伺服器計算184
16.1 用App Engine Cron調度作業184
16.1.1 Cron調度器185
16.1.2 實現Cron請求處理程式186
16.2 用任務佇列動態運行作業188
16.2.1 任務188
16.2.2 創建任務189
16.2.3 使用多任務佇列191
16.3 伺服器計算結束語192
第17章 App Engine服務的安全性193
17.1 什麼是安全性193
17.2 基本的安全性193
17.2.1 添加聊天室的管理功能194
17.2.2 實現聊天角色195
17.3 高級安全性199
17.3.1 直接攻擊200
17.3.2 跨站點腳本201
17.3.3 竊聽攻擊202
17.3.4 拒絕服務攻擊202
17.5 參考文獻和資源203
17.4 小結204
第18章 管理App Engine部署205
18.1 監視205
18.2 小探數據倉庫207
18.3 日誌和調試208
18.4 管理應用程式210
18.5 支付用戶所使用的資源211
第19章 結束語212
19.1 雲的概念212
19.2 Google App Engine的概念213
19.3 路在何方214
19.4 參考文獻和資源215