歡迎您光臨本站 註冊首頁

Google App Engine for Java: 第 1 部分:運轉起來!

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  
Google App Engine 曾經一度是 Python 開發人員 的專利。那是一段黑暗的歲月。Google Inc. 在 2009 年 4 月向 Java™ 開發人員開放了其雲計算平台。在這個共分三部分的系列文章中,Java 技術作家兼培訓師 Rick Hightower 將帶領您了解這個可靠、健壯、有趣的平台,並將它用於基於 Java 的開發。在本文中,您將了解到為什麼 Google App Engine for Java 將成為您構建高度可伸縮的殺手級應用程序的開發平台,然後開始使用 Google Plugin for Eclipse 構建兩個示例應用程序:一個基於 Google Web Toolkit (GWT),另一個基於 Java Servlet API。您將了解到 Google App Engine for Java 帶來的巨大改變,包括從頭構建應用程序以及將它部署到高達 5 百萬個視圖。(這僅僅是免費版提供的功能)。

頭腦里出現的想法就好像是被蚊蟲叮了一樣:您需要抓痒痒,這樣做才感覺舒服一些。作為軟體開發人員,我們花了大量時間來為各種應用程序捕捉想法。很有趣,不是嗎?困難的部分在於想出如何使一個軟體產品獲得成功。需要構想出一些東西並隨後 實現它。考慮其他的問題(即沒有被抓過的癢處)只會讓人灰心。

許多應用程序從未獲得進展的一個原因就是無法滿足對基礎設施的需求。一個得到良好維護的基礎設施常常需要一個由系統管理員、DBA 和網路工程師組成的團隊,到目前為止,這一直是企業獲得成功的主因。即使僱用第三方來託管您的應用程序也絕不簡單:如果應用程序大受歡迎並且突然之間獲得很高的點擊率,會發生什麼?所謂的 Slashdot 效應 可以幫助獲得一個好的想法,僅僅因為很難預測載入峰值。

雲計算空間

您是否希望隨時獲取最新的雲計算消息?是否想得到雲計算相關的技術知識?developerWorks 雲計算空間就是這樣一個雲計算信息資源的門戶,在這裡您可以了解來自 IBM 和業界其他媒體的最新信息,並且得到如何在雲環境中使用 IBM 軟體的入門知識。

IBM 在 Amazon EC2 雲計算環境中提供了 DB2、Informix、Lotus、WebSphere 等方面的 AMI 鏡像資源。您只需按使用量支付少量費用,就可以使用到雲上的數據、門戶、Web 內容管理、情景應用等服務。歡迎您隨時訪問 雲計算空間,獲取更多信息。

但是,眾所周知,事物是不斷變化的。Web 服務的基礎在不斷演變,如今它為我們帶來了許多新方式,通過雲計算和強大的平台即服務/PAAS 更輕鬆地構建、部署和發布應用程序。現在,在編寫下一個 Twitter 並將其部署到雲平台上時,它將不斷擴展。哇,感覺很棒!

在這份共分三部分的系列文章中,您將了解到為什麼雲計算/PAAS 對於軟體開發來說是如此重要的一個演變,同時開始使用一種令人振奮的新平台進行 Java 開發:Google App Engine for Java,目前可以使用它的預覽版。我將首先對 App Engine for Java 進行概述,包括它所提供的應用程序服務的類型。之後將直接查看第一個應用程序示例(共兩個),它使用 App Engine for Java Google Plugin for Eclipse。第一個應用程序示例將利用 App Engine for Java 對 Java Servlet API 的支持,第二個示例將利用對 GWT 的支持。在 第 2 部分 中,您將利用 App Engine for Java 對 servlets 和 GWT 提供的支持創建一個小型的聯繫人管理應用程序。在第 3 部分中,將使用自己構建的應用程序來利用 App Engine for Java 的基於 Java 的持久性支持,這種支持的基礎是 Java Data Objects (JDO) 和 Java Persistence API (JPA)。

好的,不說廢話了:讓我們開始吧!

關於 Google App Engine for Java

Google(同時也是一些搜索引擎的創建者)於 2008 年 4 月首度發布了 Google App Engine。令許多 Java 開發人員失望的是,初始版完全只服務於 Python 程序員 — 那些認為應該大塊使用空白的人!(我曾經撰寫過一本有關 Python 的書,因此我想我應該知道)。Google 響應了用戶的普遍要求,於 2009 年 4 月發布了 Google App Engine for Java。

Google App Engine for Java 為企業 Java 開發提供了一個端到端解決方案:一個易於使用的基於瀏覽器的 Ajax GUI、Eclipse 工具支持以及後端的 Google App Engine。易於使用和工具支持是 Google App Engine for Java 優於其他雲計算解決方案的兩大優勢。

App Engine for Java 中的應用程序開發意味著使用 Google 的資源存儲和檢索 Java 對象。數據存儲的基礎是 BigTable,但是使用的是 JDO 和 JPA 介面,這些介面允許您編寫沒有直接綁定到 BigTable 的代碼。事實上,Google 為許多 API 提供了基於標準的支持,這樣就可以編寫沒有全部綁定到 App Engine for Java 的代碼。

App Engine for Java 依賴以下標準 Java API:

  • java.net.URL,檢索服務(通過使用 HTTP 和 HTTPS 協議與其他主機通信)
  • JavaMail,發送郵件消息
  • 一個通向 Memcache 的 JCache (JSR 107) 介面,提供快速、臨時的分散式存儲,用於緩存查詢和計算
在 WebSphere/DB2 上部署 App Engine for Java

在 App Engine for Java 發布時,來自 Google 和 IBM® 的代表在 DB2®/WebSphere® 上部署了相同的樣例應用程序。IBM 致力於為 Tivoli® LDAP 和 DB2 提供低級別的 Google API 支持,這樣針對 App Engine for Java 構建的應用程序也可以運行在 IBM WebSphere/DB2 堆棧上。

此外,App Engine for Java 為以下應用程序服務提供了支持:

  • 用戶身份驗證和授權
  • CRON
  • 數據導入/導出
  • 訪問防火牆數據

對於將數據從其他來源移動到您的 App Engine for Java 應用程序,數據導入/導出十分重要。這也不需要綁定到 App Engine for Java。Google 的 CRON 支持基於對某個調度的內部 URL 命中率,從而使它成為不需要綁定 App Engine for Java 的出色服務。用戶身份驗證和授權機制是 特定於 App Engine for Java 的,但是您可以編寫一個 ServletFilter、aspect 或 Spring Security 插件,以便最小化這種緊密耦合。

創建 App Engine for Java 應用程序

如果您已經閱讀了前面的內容,那麼已經準備好開始構建第一個 App Engine for Java 應用程序。首先需要 安裝 Google Plugin for Eclipse for App Engine for Java;安裝之後,您就有了好的起點。

打開 Eclipse IDE,您將看到在 Eclipse IDE 中,Printer 按鈕旁邊出現了三個新按鈕:一個 G 顯示在藍色小球中,另一個 G 顯示在紅色工具箱中,還有一個 App Engine for Java 迷你噴氣式飛機,如圖 1 所示:


圖 1. Eclipse IDE 中的新按鈕

下面列出了這些按鈕的功能:

  • 藍色小球讓您能夠訪問 App Engine for Java 項目創建嚮導。
  • 紅色工具箱讓您編譯一個 GWT 項目。
  • 迷你噴氣式飛機圖標讓您能夠部署一個 App Engine 項目。

您將使用項目創建嚮導創建兩個新項目:一個基於 servlets,另一個使用 GWT 構建。將使用工具箱功能編譯 GWT 項目。當您準備好部署 App Engine 項目時,將啟動迷你噴氣式分機,激活項目。

首先創建一個 App Engine for Java 項目。第一步,單擊藍色小球以訪問項目創建嚮導。然後使用名稱為 gaej.example 的包創建名為 SimpleServletApp 的應用程序,如圖 2 所示:


圖 2. 開始一個新項目

注意,對於這第一個簡單示例,沒有選擇 GWT 支持。完成了這一步后,項目創建嚮導將創建一個簡單的基於 servlet 的應用程序,提供了一個 Hello World 類型的 servlet。圖 3 展示了這個項目的屏幕截圖。


圖 3. SimpleServletApp 項目

注意,這個新的基於 servlet 的項目自動包含了 JAR 文件:

  • datanucleus-*.jar:用於使用標準 JDO 或低級 DataNucleus API訪問 App Engine for Java 資料庫
  • appengine-api-sdk.1.2.0.jar:用於使用非標準 App Engine for Java 應用程序服務,比如 App Engine for Java Security
  • geronimo-*.jar:用於使用標準 Java API,比如 Java Transaction Management API (JTA) 和 JPA
  • jdo2-api-2.3-SNAPSHOT.jar:用於使用 JDO API

在本系列 第 2 部分 中,您將了解到如何使用 App Engine for Java 的持久化 API 和 App Engine for Java 的一些應用程序服務。

還需注意用於為 Google App Engine 配置運行時容器的文件,名為 appengine.xml。在本例中,appengine.xml 用於配置 logging.properties 文件,以使用 App Engine for Java 完成登錄。

App Engine for Java servlet 應用程序初探

在項目創建嚮導中完成所有配置后,App Engine for Java 將向您顯示一個 Hello World 風格的 servlet 應用程序的骨架。查看代碼並看看如何使用 App Engine for Java Eclipse 工具運行應用程序。該應用程序的主要入口點為 SimpleServletAppServlet,如清單 1 所示:


清單 1. SimpleServletAppServlet
				    package gaej.example;    import java.io.IOException;  import javax.servlet.http.*;    @SuppressWarnings("serial")  public class SimpleServletAppServlet extends HttpServlet {      public void doGet(HttpServletRequest req, HttpServletResponse resp)              throws IOException {          resp.setContentType("text/plain");          resp.getWriter().println("Hello, world");      }  }  


[火星人 ] Google App Engine for Java: 第 1 部分:運轉起來!已經有321次圍觀

http://coctec.com/docs/linux/show-post-68759.html