邁向開放 PaaS 的躍進

工程 | Rod Johnson | 2010年5月19日 | ...

幾週前,我在推特上說,令人難以置信的是,SpringSource 在 VMware 內的執行速度比作為一家新創公司更快。今天,我們要宣布另一個令人興奮的發展來證實這一點。

繼我們與 SaaS 領導者 salesforce.com 建立 VMforce 合作關係後,今天我們宣布 VMware 與 Google 之間的合作,其核心是 Spring 程式設計模型和 SpringSource IDE 以及 RAD 工具。今天的聲明使 Spring 成為 Google App Engine 的首選程式設計模型。這是對 Spring 作為 Java 最佳且最可移植程式設計模型的巨大認可,並為 Spring 開發人員開闢了新的部署機會。在今天Google I/O 主題演講中的演示展示了 SpringSource 和 Google 工程師之間數月合作的成果,其中大部分使 Spring 開發人員受益,無論他們希望在哪裡部署他們的應用程式。重點包括:Spring 和 Google Web Toolkit (GWT) 之間的創新、緊密整合,提供以驚人的速度構建豐富應用程式的能力;輕鬆將 Spring 應用程式定向到 App Engine 的能力;Spring InsightGoogle Speed Tracer 之間引人注目的整合,以提供從瀏覽器到資料庫的 Spring 應用程式效能的深入了解;以及所有這些與 SpringSource Tool Suite 的緊密整合,以提供完善、高效的體驗。

目標

在深入研究技術之前,我想反思一下目標。此聲明突出了 Spring 的兩個核心價值觀,它們將繼續指導我們前進:生產力可移植性

生產力

Spring 的採用歸功於它能夠顯著且可衡量地提高 Java 生產力。SpringSource 繼續大力投資於提高生產力,今天的聲明重點介紹了一些好處,以 SpringSource 產品組合中的兩顆寶石的形式:SpringSource Tool Suite (STS) 和 Spring Roo。總之,它們為 Java 開發人員提供了最佳的生產力體驗,並且很高興看到 Google 認識到這一點。
  • STS—我們的免費 Eclipse 發行版—是開發 Spring 應用程式的最佳環境。我們的目標在這裡很宏偉:單一下載將提供您構建具有最佳生產力的 Java 應用程式所需的一切。
  • Spring Roo 是一個 Spring 專案,可幫助您以比您想像的更快速度構建 Spring 應用程式。您可能已經聽說過 Roo—如果您是 Java 開發人員並且還沒有嘗試過,那麼現在就是時候了。簡而言之,Spring Roo 是一個互動式、往返程式碼產生器,可確保您只需編寫真正增加價值的 Java 程式碼行,而 Roo 負責創建和維護建置指令碼的繁瑣工作;持久性映射;引導配置;JavaBean 方法;toString() 方法等。與典型的程式碼產生器不同,Roo 適用於想要編寫程式碼的開發人員—確保他們只需要編寫正確的程式碼。其往返支援擴展到 UI 層,根據使用者程式碼的變更更新受管理的工件。

雖然我們尊重 Spring 社群中的許多人希望從細粒度層面的選擇中受益的事實,但我們堅信 Spring Roo 等武斷工具的生產力優勢將變得越來越重要。(雖然 Roo 針對希望用 Java 編寫程式碼的開發人員,但 Grails 迎合了希望用 Groovy 程式設計的人。這裡需要注意的是,Grails 和 Groovy 社群已經證明了他們的技術在 Google App Engine 上的價值。)

生產力也與整合有關:使一切協同工作。透過 SpringSource/Google 合作,您將能夠下載 STS,使用簡單的對話方塊建立新的 Spring Roo 專案,並使用 Roo shell 幫助您構建完整的應用程式。在幾分鐘內,您可以建立一個真實的應用程式(包括資料存取),並使其在雲端中運行。透過與 STS 整合的 Roo 往返,您可以將一個新欄位新增到您的實體,看到 Roo 變更 GWT scaffold 應用程式,在 GPE 的 DevMode 中按下「重新整理」,切換回您的瀏覽器,並看到整個應用程式(包括資料庫變更)在 2-3 秒的重新整理時間後即可使用,而無需重新啟動伺服器。

可移植性

Spring 的一個核心價值觀一直是它能夠使開發人員編寫不僅更簡單,而且與其部署環境完全分離的業務邏輯。在 Spring 的早期,這使開發人員能夠編寫在不同伺服器(例如 WebSphere 或 Tomcat)之間可移植的應用程式,從而避免(並享受優於)環境特定 API(例如 EJB 或 JTA)。今天,部署環境之間的選擇包括傳統資料中心和雲端之間的選擇。Spring 可移植性正在成為 Java 開發人員轉向雲端運算的最重要推動者。

今天,Spring 可移植性是實現我們對開放 PaaS 的願景的關鍵:正如 VMware CTO Steve Herrod 所描述的那樣,“專注於一個特別重要的選擇……即您部署和運行應用程式的位置。”很高興看到 VMware 擁抱 Spring 成功的核心價值觀。也很高興看到 Google 分享對可移植性的承諾。

技術概觀

我已經提到了 Spring Roo 和 STS 的作用。其他關鍵技術要素包括 GWT 和 SpringSource 以及 Google 效能分析工具。稍後,參與此項工作的我們的工程師將以更詳細的技術細節涵蓋具體細節—並且新的Roo 1.1.0.M1 和 STS 2.3.3.M1 版本將允許您自行探索—但這是一個快速指南,告訴您會發生什麼。

GWT

Google Web Toolkit 是一種功能強大的技術,用於開發豐富的網路應用程式,使用現代技術(例如 AJAX 和 HTML5)在電腦和非傳統用戶端(例如智慧型手機)上創造最引人注目的最終使用者體驗。隨著 UI 需求的變更以及非傳統用戶端變得越來越重要,GWT 勢必將對 Java 開發人員越來越重要。

今天,我們展示了 Spring、Spring Roo 和 GWT 之間的深度整合—這是 SpringSource 和 Google 工程師之間數月合作的成果,並回答了 Spring 社群中最常見的要求之一。這種整合使 GWT 應用程式比以往任何時候都更容易開發,並為 Spring 開發人員提供了一個引人注目的新 UI 選擇。GWT 是開源的並且獨立於部署環境,因此無論他們是否打算將其應用程式定位到 Google App Engine,此整合都將使所有 Spring 使用者受益。憑藉其對網域模型的了解,Spring Roo 與 GWT 天作之合。透過今天的整合,Spring Roo 可以產生和往返 GWT 介面,使開發人員在整個應用程式生命週期中更有效率;並支援從 Roo shell 輕鬆部署到 App Engine。

我們還透過 STS Extension Install 機制新增了輕鬆安裝 Google Plugins for Eclipse (GPE) 的功能。GPE 支援 GWT 的工具,包括 DevMode 和部署到 App Engine。

Spring Insight/Google Speed Tracer

Spring Insight 是一種技術,可讓開發人員深入了解其應用程式的效能,而無需編寫任何特殊程式碼或進行任何設定。Insight 使用高效的 AspectJ 檢測及其對 Spring Framework 的了解(因此,能夠理解應用程式結構)來顯示有關應用程式效能的詳細資訊,包括時間花在哪裡。Insight 在 SpringSource tc Server 中可用。(tc Server Developer Edition 是免費的,並且包含在 STS 中。

Google Speed Tracer 作為 Chrome 擴充功能提供,可顯示您的應用程式中時間花在哪裡。這包括由 JavaScript 解析和執行、版面配置、CSS 呈現、DOM 事件處理、資源載入等引起的問題。

今天,我們展示了這兩種技術之間的整合。這使 Speed Tracer 使用者能夠看到無縫插入到其 Speed Tracer 畫面中的 Insight 追蹤,並向下鑽研到特定的伺服器端操作,例如 JDBC 查詢。Speed Tracer 和 Insight 的組合是前所未有的,而且功能強大。這是第一次可以協調瀏覽器和後端伺服器,從整體角度準確顯示請求所做的工作。

這一切意味著什麼

短短幾週的時間真是天壤之別!在VMforce 和今天的聲明發布之前,Java 開發人員缺乏可以輕鬆部署其應用程式的 PaaS 目標。這是一個重要的差距,有可能對 Java 的長期未來構成危險。我很高興 VMware/SpringSource 正在引領填補這一差距的潮流。

今天的聲明對於 Spring 開發人員來說是個好消息。Spring 技能從未如此有價值;Spring 生態系統的影響力持續增長;Spring 的核心價值觀繼續指導其發展;並且 Spring 的位置是發展 Java 社群並引領其進入雲端運算。無論您是想在現有的資料中心、私有 Java 雲端還是公有雲端中部署 Java 應用程式,Spring 都是最佳的程式設計模型。我很興奮,希望您也一樣。

取得 Spring 電子報

透過 Spring 電子報保持連線

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔。

了解更多

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

檢視全部