電子書分享應用構建出發,講述了如何在 Google App Engine 平台上構建這個"/> 電子書分享應用構建出發,講述了如何在 Google App Engine 平台上構建這個"/>
「雲計算」基本概念的介紹
IBM 在 Amazon EC2 雲計算環境中提供了 DB2、Informix、Lotus、WebSphere 等方面的 AMI 鏡像資源.您只需按使用量支付少量費用,就可以使用到雲上的數據、門戶、Web 內容管理、情景應用等服務.歡迎您隨時訪問 雲計算空間,獲取更多信息.
根據維基百科上的定義,雲計算是一種動態易擴展,而且通常是通過互聯網提供的虛擬化的資源計算方式, 用戶不需要了解雲內部的細節,也不必具有雲內部的專業知識,或者直接控制基礎設施.雲計算包括基礎設施即服務(IaaS)、平台即服務(PaaS)和軟體即服務(SaaS)以及其它依賴於互聯網滿足客戶計算需求的技術趨勢.雲計算服務通常提供通用的通過瀏覽器訪問的在線商業應用,軟體和數據存儲 href="http://storage.it168.com/" target=_blank>存儲在伺服器 href="http://server.it168.com/" target=_blank>伺服器上.本文的介紹主要在「平台即服務」這個層次上.在這個層次上,Google 所提供的技術即 Google App Engine .
Google 的「雲計算」平台
Google 作為一個搜索引擎,在其發展過程中不斷地追求更高的可伸縮型和性能,逐漸發展出一套以自由技術為基礎的良好的解決方案,其中包括 Google File System、BigTable 以及 Map Reduce 等.基於這些技術,Google 發展出了稱之為 App Engine 的平台,可以允許開發人員在它之上開發應用,同時也利用上了 Google 所提供的基礎設施,在可擴展性等非功能性的需求上獲得好處,從而可以更加集中精力地解決業務的需求.
Google App Engine 最早於 2008 年 4 月發布,最初支持的開發語言是 Python .今年 4 月,Google App Engine 已經宣布了對 Java 語言的支持.下圖是 Google App Engine for Java 支持的概覽.
圖 1. Google App Engine for Java 支持的概覽
在 Web 應用開發上,Google App Engine 支持 JSP 和 Servlet 技術;在數據存儲上,Google App Engine 支持 JDO 和 JPA 兩套機制,開發人員在面向對象的層次考慮數據的持久化,不需要考慮關係資料庫.此外,Google App Engine 還提供一系列常用的服務,例如郵件收發、圖像處理和緩存等.
本文將通過一個簡單的實例來展示如何在 Google App Engine for Java 平台上構建 Web 應用.
準備開發環境
Google App Engine 支持兩種開發方式:基於集成開發工具 Eclipse 和不基於 Eclipse .由於 Eclipse 是廣大 Java 開發人員使用最多的工具,本文將介紹基於 Eclipse 安裝 Google App Engine SDK 並開發部署應用到 Google App Engine 上.下面是簡要的過程:
安裝 JDK 1.5 或者 1.6
App Engine 現在支持 Java 1.5 版本以上的 JDK,可以從 這裡 下載.
安裝 Eclipse 3.3 或者 3.4
下載 3.3 以上版本的 Eclipse 中的一款即可.
安裝 Google App Engine 的 SDK
運行 Eclipse 之後,在 Help > Software Updates 中獲取 Google App Engine 的插件.
圖 2. 安裝 Google App Engine Eclipse 插件
Eclipse 3.3(Europa), 從這裡 下載 安裝.
Eclipse 3.4(Ganymede),從這裡 下載 安裝.
安裝成功之後,就可以構建一個 Google App Engine 的應用了.選擇 File>New>Web Application Project.
圖 3. 新建 Web 項目
輸入項目名稱 Hello World .
圖 4. 輸入項目名稱
運行該應用.
圖 5. 運行
應用運行起來之後,訪問 http://localhost:8080 .
圖 6. 運行結果
將應用部署到 Google App Engine 上
恭喜您,到這裡,你已經構建出了第一個 Google App Engine 上的應用,您可以將它部署到 Google 的 App Engine 平台上了.您需要做的就是申請一個帳號.
到這裡,讀者對 Google App Engine for Java 已經有了直接的印象.下面將通過一個更複雜的例子,講述利用 Google App Engine 中的編程時的核心概念.
用例介紹
一個電子書分享網站,最基礎的需要滿足的功能是允許用戶上傳文件和搜索文件.對於用戶的瀏覽需求,列出最近上傳的文件也是一個基本的需求.用例圖如下圖所示.
圖 7. 用例圖
存儲對象模型
存儲模型是一個應用開發的核心之一,在 Google 的 App Engine 的平台,開發人員看不到資料庫的概念,不需要創建資料庫. Google 的 App Engine 提供了基於 JPA 和 JDO 的兩種技術給開發人員.這裡我們利用 JDO 技術來做數據的存取.下面是電子書分享網站的 JDO 的對象模型.
圖 8. JDO 對象模型
下面針對用戶上傳一個文檔這個用例,講述如何實現這個功能.
構建上傳文件頁面
在工程的 war 目錄下,添加一個新的文件 upload.html,在該文件中包含如下的代碼.
構建文件上傳處理的 servlet
利用 apache 的 commons 的文件上傳的庫,該 servlet 將上傳的內容解析成 File 對象.
圖 9. Servlet 模型
持久化改文件
應為 File 類已經添加了 JDO 需要的註釋,如下.
利用 JDO 的規範提供的 API,可以持久化該對象到 Google 的 App Engine 的存儲設施上.
注意,這裡需要在在項目的 classpath 的 META-INF 目錄下有 jdoconfig.xml,其內容如下.
[火星人 ] Google App Engine Java構建電子書網站已經有464次圍觀