Changes between Version 1 and Version 2 of zsjheng/GoogleAppEngine/1.Introduction_To_GAE


Ignore:
Timestamp:
Nov 11, 2008, 10:53:23 PM (16 years ago)
Author:
zsjheng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • zsjheng/GoogleAppEngine/1.Introduction_To_GAE

    v1 v2  
     1.......未完待續先存檔........
     2
     3
     4
    15'''1. Google App Engine介紹'''
    26
    3   * Web應用程式
    4   * Google App Engine簡介
     7'''* Web應用程式'''
     8
     9'''什麼是Web應用程式'''
     10
     11什麼是一個Web應用程式 (Web Application)? 簡單地說就是一個提供特定服務能夠讓使用者經由internet或者intranet透過瀏覽器來讀取、互動的應用程式。 更明確地來說,開發人員利用瀏覽器所支援的語言(例如. HTML, Java Script, Java, PHP等等)來開發的一個應用程式,且能夠透過瀏覽器來產生執行結果,即可稱之為一個Web應用程式。(參考:wikipedia)
     12
     13傳統的Web網頁能夠提供使用者瀏覽大量的文字或者圖片資料。然而隨著越來越多的網頁技術推陳出新,以及Web 2.0時代的來臨,Web網頁所扮演的資訊提供者(provider)已經不足以滿足使用者的需求;使用者需要的是能夠與其『互動』的網頁而不僅僅只是靜態的網頁呈現,因此,越來越多開發人員投入Web應用程式開發的領域,不管是底層架構(framework)的設計、後端網頁程式設計甚至到了前端互動技術(例如. AJAX, Asynchronous JavaScript and XML);一個能夠針對由上到下(Top-Down)提供完整解決方案的Web應用平台對於開發人員來說,能夠提高。
     14
     15'''建置、發表一個Web應用程式'''
     16
     17該如何建置一個Web應用程式並發表在internet或者intranet上供其他使用者使用呢? 首先我們必須要先建置一個網路伺服器來提供服務。 首先當然是得先準備伺服器的硬體及所需之網路設備,此外電源供應也是一個大問題。 準備好硬體設備、插入插座打開電源後下一步就是安裝作業系統了;目前的各種作業系統諸如Microsoft的Windows server系列、SUN Solaris、各種Linux發行套件甚至是Apple的MAC OS都能夠來當作網路伺服器提供服務。
     18
     19接下來為了能夠讓其他使用者搜尋到自己所提供的Web應用程式之服務,就得申請IP位置以及網域名稱對應到自己的伺服器,接下來就是選擇合用的Web伺服器了。 目前最普遍的Web伺服器就是Apache Web伺服器,此外由Microsoft所提供支援的IIS (Internet Information Service)也是一種選擇;若是想要利用Microsoft的ASP/ASP.NET來開發Web應用程式,則使用後者能帶來最大的支援度,然而則須考量使用Microsoft系統可能涉及的版權及付費問題。 而若以Open source的Apache
     20
     21當然還有更快的方式且更安全、穩定的方式來建置Web伺服器的執行環境,那就是透過目前許多虛擬伺服器提供者所提供的虛擬主機環境。 這些提供者能夠提供非常完整的且全日的安全機制來保護使用者的Web應用程式內容不會遭到惡意使用者的入侵、修改、竊取,甚至有額外的電源備援機制來支持開發者的Web應用程式提供24*7不停機的持續性服務;此外高速的網路頻寬、高運算效能的CPU和大容量的記憶體及硬碟空間,再加上作業系統及網路伺服器的合法使用權和即時更新,讓開發人員無後顧之憂地專注於自己所開發的Web應用程式上。
     22
     23天下沒有白吃的午餐,想要享用這樣安全、快速、穩定的開發、執行、服務環境以及完善的支援,您也需要更多的小朋友來支援您! 如果只是想要測試一個小小的Web應用程式的功能也得付出這麼大的成本嗎? 難道沒有又便宜又穩定,且支援度高的Web應用程式開發環境供開發人員來開發、部署自己開發的Web應用程式?且又有免費的資料庫資源能夠來存取並搜尋呢?
     24
     25
     26
     27
     28'''* Google App Engine簡介'''
     29
     30Google App Engine是什麼?
     31
     32承上章,Google App Engine想要提供使用者的,就是這樣一個.....
     33
     34目前支援,其他不同語言的執行環境則需等Google釋出支援.App Engine的Python執行環境包含了Python語言的直譯器  Python標準函式庫  以及 App Engine的函式庫以及API  以及對於Web server layer的一個標準介面(a standard interface to the web server layer).
     35
     36Google App Engine是什麼呢?簡單地說就是一個提供開發人員建置及架設Web應用程式網站的平台。透過Google App Engine這樣的一個平台,開發人員能夠專注於開發自己的Web應用程式而無須耗費心力於平台的建置與管理,更無須花費任何金錢即可享有由Google提供的雲端運算環境所帶來的強大運算資源、大量儲存空間以及高速頻寬。目前Google App Engine平台對於每一個Web應用程式的免付費使用限制為:每個Web應用程式可使用500MB儲存空間、每一個月每個Web應用程式5百萬個頁面瀏覽數(目前國內的許多熱門網站也鮮少能夠突破這個瀏覽數量,所以可以不必擔心瀏覽數上限的問題)及每天2億個CPU clock cycle運算。
     37 
     38由於Google App Engine於2008年四月才由Google釋出,所以目前仍然在Beta的階段;Google也提供了免費測試帳號供有興趣的開發人員申請可以在Google App Engine平台上建置、部署自己的Web應用程式。即使沒辦法連上網路或者沒有申請到測試用的帳號也沒關係,只要安裝好Python以及Google App Engine執行環境,開發人員也能在自己的電腦上編譯程式碼並以 http://localhost:8080/ 來檢視自己撰寫的Web應用程式執行結果(當然若是使用到需要Google App Engine提供的服務則可能無法使用)
     39
     40
     41
     42
     43
    544      * Google App Engine帶來的好處
    645      * Google平台簡介
    7   * 建置開發環境
    8   * Hello World!
     46
     47'''Django'''
     48
     49Django為一種以Python程式語言為基礎的Web應用程式基礎架構,發音為/ˈdʒæŋgoː/。
     50
     51'''GFS'''
     52
     53'''BigTable'''
     54
     55
     56'''* 建置開發環境'''
     57
     58'''於Linux平台建置Python執行環境'''
     59
     60在Linux上(在此以Ubuntu 8.04 LTS版本為例),一般的套件版本都已經在作業系統安裝時就已預先安裝Python的執行環境。可開啟終端器輸入
     61 
     62  #python -V
     63 
     64來檢視目前系統所安裝的python版本。若是沒有安裝或者版本較2.5.2來得舊,建議都請安裝2.5.2以上的版本!
     65在Ubuntu上可利用apt-get來安裝
     66 
     67  #sudo apt-get install python
     68 
     69'''於Windows平台建置Python執行環境'''
     70
     71在Microsoft Windows上安裝就簡單得多了,只要下載到目前最新版本的安裝程式,按照以下步驟下一步、下一步就能夠完成安裝。
     72
     73
     74
     75
     76'''* Hello World!'''
     77
     78
     79Google App Engine也是Web應用程式的一種.
     80
     81安裝完Python以及Google App Engine的執行環境之後,我們先來寫一個簡單的Hello World Web應用程式,在本機上執行體驗一下Google App Engine的執行結果,並了解如何編譯、執行Google App Engine的程式碼。
     82 
     83首先先在Google App Enigne的安裝目錄(預設為google_appengine)下先新增一個文字檔取名為 hello.py,接著編輯hello.py加入以下幾行字*並存檔。
     84
     85{{{
     86 print 'Content-Type: text/plain'
     87  print ' '
     88  print 'Hello, world!'
     89}}}
     90
     91*hello.py範例程式節錄自Google App Engine。基本上只要 print 'Hello, world!' 這段程式碼即可正常執行,第一行的 print 'Content-Type: text/plain' 用意僅在metadata的宣告,不加入亦可正常執行。
     92 
     93接下來我們再新增一個文字檔取名為app.yaml,這是一個設定檔且檔案名稱是固定的,請不要隨意更換名稱避免造成無法編譯的錯誤。當我們下指令編譯hello.py或者任何一個我們要開發的Google App Engine Web應用程式時,Google App Engine都會先讀取這個檔案內容來取得相關的資訊:應用程式名稱、應用程式版本編號、執行環境、API版本編號以及handler程式檔案目錄等等。
     94 
     95接下來我們先在app.yaml這個檔加入以下的內容。
     96
     97{{{
     98 application: helloworld
     99  version: 1
     100  runtime: python
     101  api_version: 1
     102
     103  handlers:
     104  - url: /.*
     105    script: helloworld.py
     106}}}
     107
     108首先application就是指我們所開發的Google App Engine Web應用程式名稱,這裡先暫定為helloworld;因為application名稱必須和上載到Google Appspot網站上的Web應用程式帳號名稱一致才行,否則會有錯誤的情形發生,不過目前我們僅先在本機測試,因此將會把這個問題留到後面章節來討論。version則是指這個應用程式的版本;runtime則是指我們用來開發這個Google Ap Engine Web應用程式的所使用的執行環境,預設當然就是Google目前唯一使用的Python語言;api_version則是。