840 likes | 1.5k Views
Google App Engine 簡介. Introducing GAE. 教材. 湯秉翰 著 (2013) , 雲端網頁程式設計- Google App Engine 應用實作 ( 第二版 ) , 博碩文化, ISBN 978-986-201-824-8 ( 書號 PG31356) 鍾葉青、鍾武君 著 (2013) , 雲端計算, 東華書局, ISBN 9789861579030 ( 書號 CL009)
E N D
Google App Engine 簡介 Introducing GAE
教材 湯秉翰 著(2013), 雲端網頁程式設計-Google App Engine應用實作(第二版), 博碩文化, ISBN 978-986-201-824-8 (書號 PG31356) 鍾葉青、鍾武君 著(2013), 雲端計算, 東華書局, ISBN 9789861579030 (書號 CL009) 許清榮、林奇暻、買大誠 著(2012), 掌握Hadoop翱翔雲端-Windoop應用實作指南, 博碩文化, ISBN 978-986-201-673-2 (書號 PG21241) 鍾葉青、李冠憬、許慶賢、賴冠州 著(2011), 雲端程式設計: 入門與應用實務, 東華書局, ISBN 9789861578125 (書號 CL008)
What is GAE? • GAE-雲端應用程式服務引擎 • 在 Google 所設計的架構下開發應用程式 • 2004年釋出Beta版,支援Python語言 • 2009年起支援Java語言 • GAE/J 或 GAE for Java
GAE 的特色 • 在Google的Infrastructure中執行App • Google File System、Datastore • Scalability、Reliability、… • 免費 • 需求量增大而不敷使用的時候,可選擇付費加購運算資源 • 使用者專心於網頁系統的開發 • 豐富的資源:透過Google API存取各種服務
GAE 的架構 • Frontend(前台/前端) • App Server(應用伺服器) • Backend(後台/後端)
Frontend GAE 的雲端服務單位 接收瀏覽器發出的請求(Request) 負載平衡(Load Balancing)處理 接收 Request 之後,將 Request 導向 App Server 進行處理 Frontend Instances 實例(或單位)越多或越高等級的前端單位可承受更高的外部請求
App Server • 接收前端單位傳來的請求 • 依使用者開發的應用程式執行工作 • 開發人員可以在應用程式中呼叫 Datastore 雲端資料庫 • 能使用 GAE 提供的 API 服務 • 圖檔處理、URLfetch、工作佇列、帳號等
後端服務 API 提供 URL 擷取、郵件傳送、影像處理、排程工作與 Google Accounts 等服務
儲存 Static Files 靜態檔案 Datastore 資料庫 Memcache 記憶體快取
Static Files 靜態檔案 包括 CSS Files、Image Files、Javascript Files 等 不需經過應用程式伺服器處理的檔案 由前端單位直接取得,可加快讀取與處理速度 在 appengine-web.xml 應用程式設定檔中訂定
Datastore 資料庫 • 透過 JDO(Java Data Objects)與 JPA(Java Persistence API)存取 • 不是關聯式資料庫 • BigTable架構 • NoSQL • 沒有 Join、Count • 支援物件一對一(one-to-one)、一對多(one-to-many)與多對多(many-to-many)的關係 • 確保交易(Transaction)
Memcache 記憶體快取 利用記憶體的快取特性設計應用程式 對於經常需要存取的資料,可把從Datastore 讀取到的資料放置在記憶體中 當應用程式接收使用者查詢時,先檢查memcache 中是否有符合的資料
JAVA 語言開發 • 支援 Java 7 • Java 5 與 Java 6 已經過時,改用 Java 7 • 在 GAE 可使用 Java 標準版本(Java SE) • 支援 Servlet 標準 • 使用 JSP • 使用 JavaMail API 或 Google 所提供的 Mail 服務 • 以 JDO 與 JPA 標準存取 Datastore 資料庫
JAVA 語言開發 Java 版本
管理 • 的管理者可使用網頁介面登入管理網頁 • https://console.developers.google.com • 包括前端單位、日誌、排程、Datastore、應用程式設定、權限、收費原則以及制定付費配額與預算等功能 • 極高的擴充能力 • Google 在 GAE 提供了一定額度的免費資源 • 付費功能提供「Budget」預算上限的設定 • Google 不定期公布其付費策略,因此實際付費資訊還是要以 GAE 官網公布為主
開發環境介紹與建置 • 以 Java 開發 Google 雲端服務所需的軟體 • Java Software Development Kit (SDK) • Eclipse 整合開發環境軟體(IDE) • Google 外掛開發工具 • Google Chrome 瀏覽器
32 與 64 位元系統 • 安裝開發環境的軟體時,可選擇 32 或 64 位元的版本,原則是 JDK 與 Eclipse 的版本應該互相搭配 • 32 位元版 JDK + 32 位元版 Eclipse • 64 位元版 JDK + 64 位元版 Eclipse • 若電腦作業系統為 64 位元,仍然可以安裝 32 位元的版本
下載 JDK • 網址: • http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#JDK7
安裝 JDK • 安裝完成後會在C:\Program Files\Java\目錄中產生兩個目錄,一個是JDK,另一個是JRE:
Eclipse • Eclipse 是目前最熱門的 Java 整合開發工具 • 2001年,IBM 將由 Object Technologies International 公司收購而來的 IDE 以 CPL 自由軟體授權方式捐出來 • 成立 eclipse.org 負責開發與推廣的工作
取得 Eclipse • 網址: • http://www.eclipse.org/downloads/ • 下載 Eclipse IDE for Java EE Developers
取得Eclipse(續) • 點擊最近的映射站台(台灣的網站)下載連結:
Eclipse 的預設編碼 • 將預設編碼改為 UTF-8! • 在中文 Windows 中使用 Eclipse 時,其預設的編碼為 MS950(同BIG5)
安裝 Google 外掛 • 外掛更新網址「update site」 • 網址使用HTTP(或HTTPS) • Google Plugin for Eclipse • Eclipse 4.3 (Kepler) • https://dl.google.com/eclipse/plugin/4.3 • Eclipse 3.8/4.2 (Juno) • https://dl.google.com/eclipse/plugin/4.2 • Eclipse 3.7 (Indigo) • https://dl.google.com/eclipse/plugin/3.7
線上安裝 Google Plugin for Eclipse 點 擊 功 能 表「Help/Install New Software」
安裝 Google Chrome 瀏覽器 • 開發 GWT 與 GAE 時使用 Chrome 為瀏覽器,提供較佳的除錯能力 • 下載網址 https://www.google.com/chrome
申請 GAE 帳號 • 至 https://appengine.google.com/ 申請 • 申請程序 • 參考國網中心 Google App Engine 推廣的說明 • 用 Gmail 的帳號申請最方便 • 手機驗證 • 手機號碼的格式以加號「+」開始,接著輸入國際碼,如「886」代表台灣,再輸入手機號碼,手機號碼不需要第一個零,如「+886 912345678」即為正確的格式 • 手機收到驗證簡訊後,將驗證碼(Account Code)填在網頁中,再按下「Send」按鈕
申請 GAE 帳號 • 按下「Create Application」按鈕,進入手機驗證頁面
以 GWT 編譯專案GWT Compile Project • GWT • Google Web Toolkit • Google 為網頁元件設計提供的一套類別庫 • 讓 Java 開發人員不需要再去深究HTML與JavaScript技術即能快速開發出網頁系統。 • GWT 的類別編譯後轉換為 JavaScript 程式碼。
加入 Speed Tracer 功能 Profile Using Speed Tracer Speed Tracer 可產出網頁被存取時使用的時間與資源效能圖表。 協助分析效能瓶頸 找尋問題,解決問題
建立一個全新的 GAE 專案 • 專案名稱: guestbook • 套件名稱: com.guestbook • 對話框的下方有一個範例程式的預設勾選的項目(Sample Code) • 為這個 GAE 專案產生一組 GWT 範例程式 • 保持其勾選狀態
專案目錄架構 • 專案建立完成後,展開左方專案視窗內的guestbook專案,觀察其目錄架構
專案內重要的目錄 • src目錄: • Java 原始碼與模組設定檔 • test 目錄: • 測試程式類別 • war 目錄: • 網頁相關檔案,包括 HTML、CSS、JSP、JavaScript 與圖檔 • 存放未來佈署至 GAE 時所需檔案
執行專案 • 在 guestbook 專案上按滑鼠右鍵,點擊「DebugAs」下的「Web Application」 • 以網頁應用程式的方式執行 • GWT 編譯 • 啟動開發專用伺服器 • 在 View 視窗區出現「Development Mode」 • 顯示一個測試用URL網址 • 以 Google Chrome 開啟這個 URL