• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
2
ICLTECHNICALJOURNAL 
12.25.2008 

第 
12
期電腦 
與 
訊 
GoogleAppEngine
AnIntroductiontoCloudComputingServicePlatform-GoogleAppEngine
張銘峰許閔雄陳桂慧
Ming-FengChang,Min-HsiungHsu,Kuei-HuiChen
中文摘要 
Googl
在 
2004 
購 
Picasa 
充 
Blogger 
的功能,更在 
2006 
以 
16.
億美元的天價併購 
YouTube 
,與其花大錢併購市場上熱門的網路服務,不如開放自家的雲端運算服務平台吸引各家 好手前來開發下一個熱門的網路服務,在這樣的前提之下, 
Googl
開發並開放了 
GoogleAppEngine 
平台。在這篇文章中,我們將對 
GoogleAppEngine 
所提供的功能與支援的開發工具做簡單的介紹。 文中並將對搭建 
GoogleAppEngine 
背後的雲端運算服務平台所包含的技術做進一步的說明。 
Abstract
GoogleboughtPicasatoextendthefunctionofGoogleBloggerin2004.Andthenitspent1.65billiondollarstobuyYouTubein2006.Googlenowwouldratherreleasetheirowncloudcomputingserviceplatformtoappealtodeveloperstobuildthenextpopularnetworkservice,thanspendhugemoneytobuypopularnetworkservicesonthemarket.ThatsthereasonwhyGoogleAppEngineisreleased.ThispaperpresentsabriefintroductiontothefunctionandsupporteddevelopmenttoolsofGoogleAppEngine.Inaddition,thekeytechnologiesofthecloudcomputingserviceplatformofGoogleAppEnginearealsointroducedinthispaper.
詞 
(KeyWords)
Googl
雲端運算服務平台 
GAE(GoogleAppEngine)
雲端運算 
(CloudComputing)Googl
檔案系統 
(GoogleFileSystem)
1.前言 
今年 
Google2008 
台北程式開發日的重頭 戲之一,就是 
Googl
來台推廣他們的雲端運算 服務平台 
GAE(GoogleAppEngine
。藉由這個 平台所提供的免費服務,開發者不用再去管理 龐大的伺服器電力網路頻寬等等的問題, 只要專心發展網站並上傳至 
GA
即可;換句話 , 
Googl
就是打算提供一個強大的免費虛擬 主機,這對網站開發者來說是個福音,但對虛 擬主機商來說卻是個惡耗。對 
Googl
來說也有 它的利益考量,一旦開發者成功的在 
GA
台 上建立了熱門的服務網站,吸引龐大網路流量 , 
Googl
就可以坐收超過流量的費用以及 廣告費。但對開發者來說,服務網站無法離開 這個平台,因為帳號管理都是使用 
GoogleAccoun
,雖然軟體可以複製,但是卻無法帶走 龐大的使用者。 
 
ICLTECHNICALJOURNAL 
12.25.2008 

第 
12
腦 
與 
訊 
2
Googl
為了推廣雲端運算服務平台 
GA
, 與 
IB
進行一項研究計畫,將投資建立兩個大 型的資料中心,配置在 
個大學包括卡內基 美隆大學、麻省理工學院 
(MassachusettsInstituteofTechnology
、史丹佛大學 
(StanfordUniversity
、華盛頓大學 
(UniversityofWashington) 
、馬里蘭大學 
(UniversityofMaryland) 
與加州大學柏克萊分校 
(UniversityofCaliforniaatBerkeley) 
。同時, 
Googl
台 大、交大和北京清華合作推動雲端運算 
(Cloudcomputing) 
課程,教授下列課程: 
(1
可開發雲 端運算應用的開原碼 
Java 
軟體框架 
Hadoop 
; 
(2
由 
Googl
提供,可在平行運算系統上進行 
100T
以上巨資料處理的軟體框架 
MapReduc
及 
(3
其專屬的檔案系統 
GoogleFileSystem 
等技術。 
Googl
提供全球大量的服務與儲存空間, 而且持續不斷成長中,在 
GA
推出後,勢必加 速這成長。是什麼樣的架構使得 
Googl
提 供這麼大量而穩定的服務與空間, 
GoogleFellowJeffDean 
在 
2008 
年 
月 
Yaho
所舉辦的 
Data-IntensiveComputingSymposium 
開 
Googl
的神秘面紗,解釋如何用 
GoogleFileSystem 
、 
Bigtabl
與 
MapReduc
三大核心技術 來處理大量的資訊,使得 
Googl
即使只是用大 量的平價伺服器、處理器、硬碟、 
憶 
, 
能 
穩定提供服務。 
GA
亦 
是 
透 
過這三大核心技術,來提供使 用者大量而穩定的服務, 
文 
在 
章 
將 
介 紹 
GA
前 
所提供的功 
能 
發 
方 
, 
著 
在 的 
節 
中 
紹 
GA
背 
後的雲端運算服務平 包 
含 
的這三大技術,在 
第 
三 
章 
中 
紹 
GoogleFileSystem 
功 
能 
與 
設 
計架構,在 
四 章 
說 
明 
MapReduc
, 
第五章則簡介 
BigTabl
的 
設 
, 
最 
一 
章 
為 
論 
。 
. 
GA
平台所提供的功能與限制 
GA
台 
讓 
We
應用程式開發者用 
單 
的 
方 
式 
署 
其所開發的網路應用程式,以使用 
Googl
所提供的雲端運算服務資 
源 
,並提供 
直 譯 
式 
言 
料 
庫 
發 
測試輔助 
工 
具 
, 
讓 
者 
便 
的建立與 
護 
網站,同時 
著 
網 站流量的成長,硬體 
能 
與頻寬的問題也可 
透 
過 
付 
的 
方 
式 
取 
得 
GA
上 
外 
資 
源 
不 
需 
要 
變 
動原來的網站 
設 
。 
章 
將 
序 
說 
明 
GA
平台的開發與 
執 
行 
境 
及 
前 
供 功 
能 
與 
制 
[1
。 
2.1GA
開發與執行環境 
前 
GA
只 
援 
使用 
Pytho
言 
, 
此 
平台所提供的 
執 
行 
境 
包 
含特別版 
的 
Pytho
直 譯 
、 
準 
的 
Python 
函 
式 
庫 
、 
GA
特 
的 
函 
式 
庫 
與 
API
以及為網 
頁 
器 
層 
所提供的 
介 
面。其中有 
六 
項 
函 
式 
庫 
功 
能 
因 
安 
全 
性 
題 
閉 
分 
別 
為 
(1)networkin
組 
; 
(2
入 
檔案系統功 
能 
; 
(3
將 
cPickl
更 
為 
pickl
組 
; 
(4)marshal 
組 
; 
(5)im
、 
ftpli
、 
selec
、 
socket 
等 
組 
及 
(6)tempfil
組 
。 
Googl
供 
GA
軟體開發工 
具 
(SDK
開 下 
載 
,用以開發 
GA
上的應用程式,其中 包 
裝 
在 
本 
電 
腦 
的 
webserver 
以 
模 
擬 有 
GA
平台上的服務,並 
援 
有 
GA
提 的 
AP
和 
libraries 
, 
讓 
開發者在 
本 
電 
腦 
上 行 
模 
與 
試 
可 
透 
過 
SD
所 
附 
的上傳工 
具 
程式,將程式與檔案上傳至 
GA
平台上。 
本 
的 
模 
擬 
WebServe
提供以下的功 
能 
: 
查 
impor
的 
組 
是 
否 
合 
乎 
GA
要 
求 
、 
模 
擬 
Appcaching 
行為、 
模 
擬 
datastore 
功 
能 
、 
模 
擬 
GoogleAccount
登 
出的動作、 
模 
擬 
URLfetch 
以 及 
模 
擬 
mailservice 
等,但不 
模 
擬 
GA
有 
關 
存 
容 
與 
timeout 
的 
查 
。 
GA
供 
種 
等 
級 
日 
誌 
功 
能方便除錯 
分 
別 
為 
debug 
、 
info 
、 
warning 
、 
erro
和 
critica
,並可使用 
adminconsol
或 
以 
令 
下 
載 
日 
誌 
。 
GA
擇 
將 
些 
程式碼長時間的 
放 
在 
記 憶 
體 
裡 
以 
避 
免 
浪 
費時間重複 
入 
這 
些 
式 這 
些 
程式碼分 
別 
為 
importedmodules 
與 
含 
有 
main(
函 
的 
handlerscript
中 
handlerscrip
是由使用者定 
義 
,用來處理 
特 
定 
webreques
的 
 
2
ICLTECHNICALJOURNAL 
12.25.2008 

第 
12
期電腦 
與 
訊 
組 
。運用這個 
Appcache 
的 
搭 
使用 
globalvariabl
加 
快 
應用程式的 
執 
速 
度 
。 
開發者開發 
完 
, 
模 
與 
試 
傳 至 
GA
網站上後,即可對 
外 
提供服務。為提 
高 
開發者上傳程式與檔案的 
率 
, 
GA
平台利用 
版本控制 
機 
制 
, 
未經修改 
的檔案將不 
會 
上 而 
本 
機 
除 
案 
則 
在伺服器上 
先給予刪 除 
的 
籤 
,而不是 
正 
行 
除 
, 
讓 
開發者得 有 
率 
的 
新 
。 
GA
由 
多 
個 
webserver
所 
組 
成,在收 
到 
webreques
, 
GA
會根據當前 
統 
況 
, 分配一個 
webserver 
並 
設 
檔 
相 
應 的 
handlerscrip
理 
該 
request 
由 
於 
GA
有 在 
handlerscript 
束 
時 
才 
料 
送 
在 
handler 
前 
,無法傳 
送 
資料至使用 者 
覽 
因 
此 
Streaming 
關 
功 
能 
法 
援 
。 
另 外 
, 
GA
援 
Accept-Encoding 
與 
User-Agent 
兩 個 
數 
傳 
縮 
的 
response 
給 
使用者端。 
2.2GA
能 
作為一個 
we
應用程式平台, 
GA
除 
提 供強大的硬體 
能 
,與龐大的網路頻寬資 
源 
之 
外 
, 
亦 
供 
種 
功 
介 
, 
讓 
開發者可 
整 
合 
目 前 
Googl
的其他技術與服務,以進行開發。 
簡 介 
: 
 
Datastor
功 
能 
GA
提供強大的分 
散 
式儲存機 
制 
datastor
, 
尋 
引 
擎 
與 
transaction
的 
特 色 
,如同分 
散 
的 
webserver 
以 
著 
站 流量成長而 
增 
加,使得網站的儲存空間, 
隨 著 
應用程式的資料 
多 
而成長。 
讓 
開發者可 心 
致 
力 
於 
網站的程式開發,無 
須 
再 
受 
體 與頻寬的 
制 
。 
為了資料 
庫 
的 
性 
, 
datastore 
並 
採 
用 
連 
料 
庫 
。 
Datastor
以 
entit
為 
單 位 
進行儲存與 
操 
作,同時提供 
transactio
為 
位 
的 
操 
, 
若 
transactio
有 其中一個 
操 
作 
敗 
, 
整 
個 
transactio
都 
回 溯 
,並提供兩 
種查詢介 
面 
QueryObjectInterfac
和 
GQLinterfac
中 
GQ
為 
Googl
定 
義 
的 
SQL-likelanguag
。 
Datastor
的 
Quer
功 
能 
所提供的可 
述 查詢條件 
為 
entit
的 
類 
、 
entitypropert
值 
的 
比較條件 
和 
查詢結果 
的 
排序條件 
。 
每 
一 個 
執 
的 
quer
都 
生 
個 
inde
放 
在 
index.yam
。 
datastore 
執 
行 
詢 
的 
驟 
如 , 
先 
使用 
entit
的 
類 
、 
filterpropertie
、 
filteroperators 
和 
sortorders 
這 
四 
個 
件 
進 行 
quer
, 
著 
在 
index.yam
中 
第 
個 
index 
開 
始逐條比 
對 
到 
檔 
或 
一 
已 
不 
符 
合 
filte
的 
件 
。 
 
Image
功 
能 
這 
部 
功 
自 
PythonImageLibrary 
, 
援 
案 
格 
包 
含 
JPE
、 
PN
、 
GIF( 
包 
態 
動 
態 
、 
BM
、 
TIFF 
、 
IC
; 
共 
有 
種 
功 
能 
包 
維 
原 
放 
大 
小 
、 
轉 
、 
水 
對 
調 
、 
直 
對 
調 
、 
剪 
、 
色 
與 對 
比度最佳化 
。 
 
Mai
功 
能 
GA
上的應用程式可利用 
GA
供 之 
件 
, 
送 
電 
件 
並 
援 
傳 
夾 
檔,但不提供收 
信 
功 
能 
。 
件 
傳 
送 
只 有系統管理者和一 
般 
使者 
入 
, 
許 
提供服務。 
件 
應用程式 
介 
面 
(mailAPI
供 兩 
方 
式來使用 
件 
傳 
送 
, 
叫 
mail.send_mail(
函 
式與使用 
EmailMessage 
類 別 
。 
 
Memcache 
功 
能 
Cache 
功 
採 
用 
key-valuecache 
的 
形 
式,用來儲存 
暫 
時的資料 
或 
將 
datastore 
中 料 
到 
cache 
以 
取 
得 
快 
存 
取 
速 
度 
,並提供 
cache 
料 
expiretim
的 
設 
。 
 
URLFetch 
功 
能 
援 
使用 
HTTP 
與 
HTTP
存 
取 
網路上的 主機,但有以下的 
制 
: 
(1
只 
能 
存 
取 
ports80(HTTP) 
與 
port443(HTTPS
; 
(2)urlfetch.fetch() 
函 
同 
步 
運作,即 
函 
式 
會被凍結 
, 
到 
收 
遠 
端伺服器傳 
回 
的 
果 
; 
(3
使用 
HTTP
, 
目前版本 
法 
遠 
端的伺服 ; 
(4
多 
只 
許 
HTTPredirect
次 
可 
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...