- 首先,當然要會寫 Java,還有要懂得 JavaEE 在 web 的兩大主角,Servlet 與 JSP,如果不想用這麼原始的方式,還要學會 Spring MVC 或者 Struts 之類的 web framework。
- 現在應該不會有任何一個 web app 沒用到資料庫,所以還需要 JDBC,或者較好用但複雜的 Hibernate,以及一個真正的 database server,最常用的當然是 mysql 了。
- 程式寫完之後,我們需要一個可以執行程式的地方,那就是 web container(或 web server),一般都是用 Tomcat。
- 再來就是一台真正的機器,用來執行 Tomcat。
- 最後就是對外網路與網域名稱。
前三點要用力學習(也許花點錢),後兩點剛開始要花點小錢買機器、買網路和租網域名稱,但若「不幸」網站廣受歡迎之後,流量大增造成網路頻寬塞車與資料庫效能瓶頸,這時候就得花大錢了。
但是,如果可以將網路應用程式( web app)安裝在 Google 的機器上,使用 Google 網路頻寬與資料庫,那是不是想都不敢想的事?更神奇的的是,要付多少錢才能這麼做?Google 說:不用,一毛錢也不用!
那就是 Google App Engine!
為了搶食現正火紅的雲端大餅,Google 推出了 Google App Engine,簡稱 GAE,在剛推出時,GAE 僅支援 Python,後來才支援 Java。
Google App Engine 到底是什麼?依照 Google 的簡短描述:
在 Google 的基礎架構上執行您的網路應用程式。
建置容易、維護簡單、擴充方便。
在這裡我只看到兩個關鍵字:「基礎架構」與「擴充方便」,也就是說,你只要負責寫程式,機器、頻寬、資料庫都交給 Google 幫你搞定。
你可以使用自己的網域名稱,也可以使用 Google 免費提供的。
真的免費嗎?可以說幾乎是,除非你的網站的真的做起來了(每個月500百萬的網頁瀏覽數),Google 提供一定額度的免費空間,只要不超過這個額度就是免費,即使超過免費的額度,可以啟用計費功能,並可以設定每日預算上限,甚至可以設定每個資源存取的預算分配,Google 只會針對超過的部份收費,費率也是相當便宜。
GAE 提供了一個創意的試煉場所,讓測試創意的成本降到最低,只要你有新想法,只要寫出來,不用額外花任何錢,就可以對外開放進行測試,成功當然很好,失敗了也沒什麼損失。
GAE 不只讓你站在 Google 的硬體肩膀上往上跳,還讓你更上一層,免費使用 Google 的軟體資源:
- 使用 Google 帳號作為你的帳號管理基礎,不用另行開發一套帳號功能。
- 使用 Gmail 作為 Email 服務。
- 使用 Google 超強的網路資源擷取功能來抓別人家的網頁。
- 將不需要存放到資料庫中的資料存放到記憶體中的 Memcache,使用高效能的 key-value 存取。
- 基本的影像操作功能。
- 支援 Server 端常見的 cron 排程管理需求,讓你可以在指定的時間或固定的時間間隔執行背景程式。
完美的 GAE當然有些限制:
- 不能寫入檔案系統,但可以讀取檔案,僅限於開發者上傳的檔案。
- 網路應用程式必須在 30 秒內完成 request 處理回傳 response。
- 目前僅支援 Java 5 與 Java 6。
- 對於資料庫的使用,僅支援 Java Data Object(JDO) 與 Java Persistence API(JPA),且只能使用 GAE 提供的資料庫。
- GAE 的資料存放區不同於傳統的關聯式資料庫,所以有些 sql 功能是無法使用的。
- 每次查詢,最多只能回傳1000筆資料。
沒有留言:
張貼留言