迈向开放 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 社区所有即将到来的活动。

查看全部