2009年1月21日 星期三

What is Google App Engine?

Google App Engine可以讓你的網路應用程式在Google的硬體上跑。
換句話說,用Google App Engine開發網路應用程式,不需要煩惱買Server,維護Server,網路頻寬等等的問題,只需要將程式Upload到Google即可讓你的User使用。

Google還提供一個免費的Domain Name (appspot.com),當然也可以使用自己的Domain,程式還選擇式開放給全世界或只限制給組織內的某些成員。

App Engine 不需要任何成本。只要Sing Up一個免費的帳號,然後即可開發並publish你的系統,這中間沒有人和的費用以及應盡的義務或限制。

一個免費的帳號提供以下的服務
  • 使用500MB的實體儲存空間
  • 一定足夠的CPU
  • 流量為5百萬次瀏覽/每月

聽起來很不錯,不過,Google也透露將來應該會收費才對!

The Application Environment
Google App Engine的執行環境有以下的特性

  • 實體資料儲存體(類似DB)提供查詢、排序和transactions
  • 自動作load balancing
  • 權限控管以及email的API使用Google的帳戶
  • 開發環境可以完全模擬Google App Engine

Google App Engine applications 開發與執行皆使用Python語言(使用standard library)。
目前Google App Engine applications 只支援 Python,未來應該會支援更多
語言。

The Sandbox
沙箱概念在此不敘述(請見http://en.wikipedia.org/wiki/Sandbox_(computer_security)),總之以此APP環境下的程式有以下的先天性限制:

  • 應用程式只能操作其他Server提供出來的URL或API或Emai等Services,不能操作其他電腦內的資料。其他電腦也只能透過特殊的Port及Http(or Https)協定與應用程式連結。
  • 應用程式不能寫檔到Local System。應用程式可以讀檔,但只能讀已經上傳的檔案。
  • 程式必須使用App Engine datastore來儲存所有類型的資料。
  • 程式碼的執行時機只會出現在Web 提出Request後,並在Response前,不會有response後才執行的程式(感覺有點廢話~@@)