开源、开放战略:SpringSource 宣言

工程 | Rod Johnson | 2008 年 5 月 28 日 | ...

作为一家开源软件提供商,我们认为我们也应该对我们的战略持开放态度。我们想分享我们是如何走到今天的,我们将走向何方,以及为什么这段旅程对 Spring、Spring 用户和 SpringSource 都有好处。

我们的历史

Spring 的故事始于 2001 年,当时我开始从事框架代码的开发,并于 2002 年与 Expert One-on-One J2EE Design and Development 一起发布了 30,000 行代码。我的目标是帮助其他人避免自 1999 年以来在完成 J2EE 项目时遇到的陷阱。

很快就发现,其他人喜欢那些代码中的想法 — 例如依赖注入和 Spring 数据访问抽象 — 并从中受益。我受到了读者的联系,他们要求我发布代码,并希望贡献力量。

我很快就看到了开源的一些重要好处。

  • 大多数用户免费获得他们所需的功能
  •     	<li> It develops a strong community, which contributes to making the software better </li>
    
         	<li>Open source is inherently anti-bureaucratic </li>
         	<li>Open source can underpin a business model with lower sales and marketing costs than a traditional enterprise software company---meaning better value for customers. </li>
         	<li>Open source projects (and, hence, open source companies) can attract developers worldwide, rather than in any one geographical area. This represents a huge pool of talent that isn't available to traditional software vendors.</li>
    

真实价值,真实成本

这些好处固然很棒,但它们并不能对抗物理学和经济学的规律。

任何软件的开发都不是凭空而来的。在 Spring 的早期,我们聚集了一批杰出的开发者。这对于他们个人来说付出了巨大的代价,这种状态无法永远持续下去。我花了大约 18 个月的时间离开工作岗位,专注于 Spring 和其背后的理念。这影响了我家庭的财务稳定:我们甚至需要从抵押贷款中提取一笔可观的金额。Juergen Hoeller 很幸运有一位理解 Spring 在构建其软件产品时能带来潜在节省效益的老板。然而,他很快就需要转为兼职工作——相应地牺牲了薪水——以维持他对 Spring 的承诺。正是 Juergen 和我这种长期、密集、专注的努力,造就了今天的 Spring。其他核心开发者,如 Colin Sampaleanu 和 Thomas Risberg,则通过牺牲自己的个人时间以及与家人朋友相处的时间,能够做出断断续续的贡献。这种情况不足以支撑关键的企业基础设施。

从长远来看,所有软件的开发都需要投资。不仅仅是编写代码的投资:还有长期维护的投资。

我们于 2004 年创立了 SpringSource(当时名为 Interface21),以支持这项投资。

次年,我们得以聘请了第一位备受瞩目的人才,他帮助提升了团队的实力和思想领导力——Adrian Colyer:IBM 高级技术骨干,AspectJ 项目的负责人。这是一个重要的里程碑。我们首次能够让那些原本无法参与 Spring 工作的人得以贡献力量。

起初,我们的业务基于咨询和培训。但很明显,这些业务无法支撑用户社区所期望的投资水平,也无法实现我们作为技术人员所热切追求的愿景。我们的增长受到限制;我们许多最优秀的人员花费了大量时间和精力提供服务,几乎没有时间编写软件;而且我们担心,由于被迫要求员工大量的差旅和加班,我们会让他们精疲力尽。

当 Spring 2.0 发布时,比原计划晚了好几个月,我们意识到当时的商业模式只是一个起点,而不是终点。同样在 2006 年,随着 Spring 产品组合的扩展以及我们对 OSGi 和 Spring 模型潜力的探索,我们的愿景也随之扩展,展现了基于 Spring 的服务器平台的变革潜力。

我们决定在 2007 年筹集资金来实现这一愿景,并实现我们从服务型企业向能够持续创造高质量软件的软件公司的转型。

效果非常显著。我们得以招募更多明星开发者加入团队,让他们能够为开源做出更多贡献。我们能够将现有员工中的有才华的产品开发者集中起来,用于增强和扩展 Spring 产品组合。我们能够确保 AspectJ 在 IBM 减少投资后的未来发展。

近几个月来我们开源发布的记录不言而喻。

    <ul>
<li> Spring 2.5 </li>
     	<li>Spring.NET 1.1 </li>
     	<li>Spring Security 2.0 </li>
     	<li>Spring Web Flow 2.0</li>
     	<li>Spring Batch 1.0  (co-developed by SpringSource and Accenture) </li>
     	<li>Spring Web Services 1.5 </li>
     	<li>Spring Integration </li>
     	<li>Spring Dynamic Modules 1.0 </li>
     	<li>Spring IDE 2.0</li>
     	<li>AspectJ 1.6</li>

所有这些发布都极大地推动了这些项目的发展,并为用户带来了切实的收益。

我们还为 Apache Tomcat、Apache HTTPD(驱动互联网大部分流量的 Apache Web 服务器)以及其他 Apache 项目,以及 Eclipse 的 Mylyn 项目等其他开源项目做出了重要贡献。

我们的价值观

在过去的 5 年里,Spring 团队从一个项目团队发展成为一家公司,我们的商业模式也从一家服务型企业转变为一家拥有卓越服务能力的软件公司。在整个转型过程中,我们始终坚守核心价值观。特别是:
  • 我们始终专注于技术领导力和卓越。
  • 我们不追求交付“ me-too ”(照搬模仿)的解决方案,而是要推进技术的进步。
  • 我们提供务实的技术解决方案。软件的价值仅在于其在现实世界中交付的成果。
  • 我们相信,在开源业务中实现长期成功需要对开源做出重大贡献。
  • 我们为自己的诚信感到自豪。我们对社区、用户和客户诚实。
  • 我们努力为客户提供最大的价值。
  • 我们尊重我们的用户、客户、合作伙伴和竞争对手。
  • 我们重视我们的社区,并努力以其最佳利益行事。

我们的行为源于这些价值观。例如:

  • 我们不会重新发明已经成熟的轮子。在可能的情况下,我们将使用现有项目,如果我们认为它们对我们的用户很重要,就会参与其中,例如 AspectJ、Tomcat 和 Equinox。我们是前两个项目最活跃的贡献者。为此,您将看到我们更多地参与 Apache 和 Eclipse 社区。我们的目标是成为领先的企业 Java 开源供应商,因此积极参与重要开源项目背后社区的活动对我们来说是顺理成章的。
  • 没有好的解决方案存在时,我们会创建新项目。Spring Batch 是一个很好的例子——将 Spring 的强大、简洁和一致性的价值观带到了 Java 基础设施中一个一直被忽视的领域。

这些价值观的强大力量帮助我们在快速增长时期度过了难关。这也是我们与 Covalent(一家我们于 2008 年 1 月收购的、历史悠久的开源公司)成功整合的关键因素。两家组织拥有相似的文化,使得员工的整合非常顺畅。这也帮助我们继续吸引杰出的技术和商业人才。

我们的(以及您的)软件

在 SpringSource,我们开发三种独立的产品:
     <ul>
  • 无处不在的编程模型和基础设施。 这涵盖了 Spring 产品组合,以及 AspectJ(我们领导)和 Tomcat(我们是主要贡献者)。我们希望每个人都能使用这些项目。其中许多项目已成为事实上的标准。
  •      <li>
    

    SpringSource 应用平台 一个基于 Spring 产品组合和其他 Apache 和 EPL 软件构建的完整应用服务器产品。

         <li>
    

    企业增值服务 对这两类开源产品进行增值。我们通过年度商业许可订阅为客户提供这些服务。它们提高了构建 Spring 应用程序(如 SpringSource Tool Suite)的生产力,或提高了在生产环境中运行这些产品的操作体验(如 SpringSource Application Management Suite)。它们不定义编程模型或部署模型,但可以增强使用前两类产品所能获得的用户体验。用户不必强制购买这些增值服务(与传统的软件许可不同);他们可以自己确认这些服务是否物有所值。

    我们的商业战略

    我们用 Spring 重新定义了企业 Java。我们的使命是继续提供技术领导力,并提供将企业 Java 推向新水平的解决方案。我们正在围绕此构建一家伟大的软件公司。

    目前,企业 Java 领域交付的软件价值与经济活动之间存在着严重的脱节。大部分收入流向了 BEA(Oracle)和 IBM,但他们的客户使用的运行时组件中有很大一部分是开源的,而且企业 Java 中真正重要的创新大多来自其他地方。

    很明显,企业 Java 市场需要新的解决方案,也很明显,市场希望从一家开源公司获得解决方案。我们相信,那家公司将是我们。

    我们通过以下方式盈利:

        <ul>
    <li>Providing world class support and services. This includes dependable 24x7 support, outstanding training and consulting services and indemnification for enterprise customers who are understandably risk-averse. </li>
         	<li>Adding subscription products that deliver value to complement the Spring Portfolio. </li>
         	<li>Selling subscriptions to enterprise editions of our full-stack products. </li>
    

    我们的许可策略

    我们近期发布的采用 GPL v3 许可的 SpringSource 应用平台引发了广泛讨论。我想借此机会解释我们的许可策略,以及为什么我们认为这是 Spring 社区的正确选择。

    首先,让我们完全清楚,解决一个重要问题:

    我们没有改变,也不会改变任何现有项目的许可。 Spring 产品组合将继续在 Apache 许可下提供。这包括 Spring Framework、Spring Security、Spring Web Flow 和 Spring 产品组合的其他部分。

    我们仍然致力于在所有使用 Apache 许可(和 EPL)的地方坚持使用。然而,并非所有软件都一样。不同的产品适合不同的许可。今年,SpringSource 推出了几个重要的、适合不同许可的新产品。

    除了 Apache 许可之外的其他许可,对我们有两个目的:

        <ul>
    <li><em>For additional products available only to our customers</em>. These products satisfy a real need for those customers, and help to sustain the open source software that they and others benefit from. </li>
    
         	<li><em>To ensure that ISVs and OEMs using our new stack products don't get a free ride from software we develop for our community, and that software vendors can't compete with us with our own code</em>. The GPL v3 license used for the SpringSource Application Platform meets this goal, while remaining free to end users or open source usage. 
    

    让我们详细考虑 SpringSource 应用平台相关的第二个目的。这是一个全栈产品,与 Oracle/BEA(WebLogic, OC4J)、IBM(WebSphere)和 Red Hat(JBoss)等公司的产品竞争。所有这些供应商都认识到他们也需要一个成熟的、基于 OSGi 的运行时。我们在该领域拥有巨大的技术领先优势。所有这三家公司都需要完成我们为 SpringSource 应用平台的 dm-Kernel™ 所做的繁重工作。

    假设我们将 SpringSource 应用平台发布在 ASL(Apache 软件许可)下。我们可以预见,这些供应商将很快与我们竞争,并且他们很可能会向客户收取使用我们技术的产品费用。这不仅不公平,而且会削弱我们对该产品的投资能力——最终损害整个社区。

    因此,我们选择了一种许可,它意味着最终用户可以自由地从我们的工作中受益,但竞争对手却无法用我们的代码与我们竞争。

    下一步是什么?

    我们的目标是创建一个完整的 Java 堆栈,基于 Spring 项目和 Spring 理念。无论我们走到哪里,我们都使事情变得更简单、更好、更快。我们将走得更远。有些人对我们努力的稀释表示担忧,但证据(例如,最近的 Spring 产品组合发布)证明我们正在加速。在过去的 6 个月里,我们以前所未有的速度发布了更多的开源软件。我们正在以与底层产品开发相同的模块化方式扩展我们的努力。我们的产品战略本质上是反单体化的,随着组织的成长,这正很好地转化为实践。

    多年来,我们创造了出色的技术。今天,我们创造的成果比以往任何时候都多。我们很自豪能够推动企业 Java 从 EJB 1.x 和 2.x 的糟糕体验转向 POJO 的敏捷开发。我们已经为企业客户带来了数十亿美元的价值,并且将来还会带来更多。

    我们很兴奋能够延续这个故事,并提供更多、更好的基础设施。企业 Java 社区需要一家专注于提供一流解决方案的公司。我们曾经用 Spring 重新定义了企业 Java,现在随着 SpringSource 应用平台的推出,又是一个企业 Java 的新篇章。请在我们挑战现状时挑战我们。

    获取 Spring 新闻通讯

    通过 Spring 新闻通讯保持联系

    订阅

    领先一步

    VMware 提供培训和认证,助您加速进步。

    了解更多

    获得支持

    Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

    了解更多

    即将举行的活动

    查看 Spring 社区所有即将举行的活动。

    查看所有