在Google App Engine上開發系統(三) - 動手實作系統
主題 |
在Google App Engine上開發系統(三)-動手實作系統 |
介紹 |
此文章將介紹在Google App Engine(GAE)上如何撰寫系統,並使用JSP、Expression Language (EL)、JSP Standard Tag Library (JSTL)與 JavaBean 的組合來達成MVC架構。並以實作一個「影集推薦系統」來介紹在GAE開發系統的過程。 在下一篇文章將會介紹在GAE上,如何使用功能強大的Spring MVC Framework來更進一步改良上述的「影集推薦系統」架構。 |
作者 |
姜志民 |
版本 |
1.0 |
產出日期 |
2016 / 03/ 20 |
1 目的
此文章將介紹在Google App Engine(GAE)上如何撰寫系統,並使用JSP、Expression Language (EL)、JSP Standard Tag Library (JSTL)與 JavaBean 的組合來達成MVC架構。並以實作一個「影集推薦系統」來介紹在GAE開發系統的過程。
在下一篇文章將會介紹在GAE上,如何使用功能強大的Spring MVC Framework來更進一步改良上述的「影集推薦系統」架構。
2 Google Plugin for Eclipse安裝
Eclipse必須安裝Google Plugin for Eclipse,可參考之前發表的「使用GoogleAppEngine來監控系統是否異常」文章。
3 建立Web Application Project專案
A. 先在Google App Engine上建立Project,建立流程步驟可參考之前發表的「使用GoogleAppEngine來監控系統是否異常」文章。
B. 在eclipse中的專案必須選擇Google -> Web Application Project。
4 JSP Standard Tag Library (JSTL)設定與安裝
A. JSTL下載可以到此網址http://tomcat.apache.org/download-taglibs.cgi ,請下載下列的library。
Impl:taglibs-standard-impl-1.2.5.jar
Spec:taglibs-standard-spec-1.2.5.jar
EL:taglibs-standard-jstlel-1.2.5.jar
Compat:taglibs-standard-compat-1.2.5.jar
B. 將JSTL的libaray放置到war-> WEB-INF-> lib下,如下圖所示:
C. 在欲使用的JSP網頁上,貼上下列程式碼既可
5 啟用Sessions功能
A. Google App Engine是分散式架構,所以在分散式架構中每台伺服器要共享Sessions的話,Google的作法是將Sessions儲存到Google Cloud Datastore,這樣每台伺服器需要Sessions時,就會向Google Cloud Datastore查詢 。
B. 啟用方式: war -> WEB-INF -> appengine-web.xml ,在appengine-web.xml中,加入<sessions-enabled>true</sessions-enabled>。
C. 在App Engine管理後台,利用Datastore的查詢功能,可以看到kind為_ah_SESSION的Entity,這是共享Sessions的資料。
6 Source code
完整source code已上傳至Bitbucket ( https://bitbucket.org/min700313/demo )。建立Web Application Project時,會內建產生一些library,但因library檔案過大,不適合上傳至Bitbucket上,所以建議重新建立一個Web Application Project,再將需要的library複製過來。
7 系統效能調校
A. Google App Engine(GAE)提供設定系統所使用效能等級,每個等級都會消耗Instance配額,等級愈高消耗越快,詳細資料可以參考下列網址:
https://cloud.google.com/appengine/docs/java/modules/
https://cloud.google.com/appengine/docs/java/config/appconfig
B. 效能設定檔是放在war->WEB-INF->appengine-web.xml ,如下圖:
C. 目前此範例的效能等級是使用F1,使用的CPU是600 Mhz、Memory是128 MB,設定如下:
8 發佈程式碼到Google App Engine
A. 在專案名稱上按右鍵 -> Properties
B. Google -> App Engine,將ID填入Application ID內
C. 在專案名稱上按右鍵,Google -> Deploy to App Engine,將程式發佈到Google上
9 系統demo
https://system-1252.appspot.com/
帳號:thinkpower
密碼:thinkpower
※系統網頁有使用到HTML5,為了操作正常建議使用最新的 Chrome 瀏覽器。
※為了減少Instance配額的消耗,所以系統效能等級是使用F1,所以系統回應會慢一點,在使用時請稍等一下!!