邁向開放 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 開發者但還沒有嘗試過,現在就是時候了。它簡直就是構建高質量 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 幫助你構建一個完整的應用程式。幾分鐘內,你就可以建立一個真實的應用程式(包括資料訪問),並在雲端執行。透過 Roo 雙向同步與 STS 的整合,你可以向實體新增一個新欄位,看到 Roo 更改 GWT 腳手架應用,在 GPE 的 DevMode 中按下重新整理,切換回瀏覽器,看到包括資料庫更改在內的整個應用程式在 2-3 秒的重新整理時間後即可使用,無需伺服器重啟。

可移植性

Spring 的一個核心價值始終在於它能夠讓開發者編寫業務邏輯,這些邏輯不僅更簡單,而且與部署環境乾淨地解耦。在 Spring 的早期,這使得開發者能夠編寫可在不同伺服器(如 WebSphere 或 Tomcat)之間移植的應用程式,避免了(並享受優於)特定於環境的 API(如 EJB 或 JTA)。如今,部署環境的選擇包括傳統資料中心和雲之間的選擇。Spring 的可移植性正成為 Java 開發者走向雲計算的最重要推動力。

今天,Spring 的可移植性是實現我們開放 PaaS 願景的關鍵:正如 VMware 首席技術官 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 是開源的,與部署環境無關,因此這種整合將惠及所有 Spring 使用者,無論他們是否打算將應用程式部署到 Google App Engine。憑藉對領域模型的瞭解,Spring Roo 與 GWT 是天作之合。透過今天的整合,Spring Roo 可以生成和雙向同步 GWT 介面,使開發者在整個應用程式生命週期中大大提高生產力;並支援從 Roo shell 中輕鬆部署到 App Engine。

我們還透過 STS 擴充套件安裝機制添加了 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 社群所有即將到來的活動。

檢視全部