开源,开放战略:SpringSource 宣言

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

作为一家开源软件提供商,我们认为我们的战略也应该公开透明。我们希望分享我们如何走到今天,我们的未来方向,以及这段旅程为何对 Spring、对 Spring 用户和对 SpringSource 都有益。

我们的历史

Spring 的故事始于 2001 年,那时我开始着手编写我在 2002 年出版的《J2EE 设计与开发专家级建议(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 产品组合。在 IBM 减少投资后,我们得以确保 AspectJ 的未来。

我们过去几个月的开源发布记录说明了一切

    <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 团队已从一个项目团队发展成为一家公司,我们的业务模式也从服务型企业转变为一家具有卓越服务能力的软件公司。在整个转型过程中,我们始终坚持我们的核心价值观。特别是:
  • 我们始终专注于技术领先和卓越。
  • 我们的目标不是提供“跟风”的解决方案,而是推动技术发展。
  • 我们提供务实的技术解决方案。软件的价值体现在其在现实世界中带来的成果。
  • 我们相信,开源业务的长期成功需要对开源做出重要贡献。
  • 我们为我们的正直感到自豪。我们对社区、用户和客户诚实守信。
  • 我们努力为客户提供最大价值。
  • 我们尊重我们的用户、客户、合作伙伴和竞争对手。
  • 我们珍视我们的社区,并努力维护其最佳利益。

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

  • 我们不会重复发明轮子。在可能的情况下,我们将使用现有项目,如果我们认为这些项目对我们的用户很重要,我们就会参与其中,就像对待 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™ 所做的工作。

    假设我们在 ASL 下发布 SpringSource 应用平台。我们可以预见到这些供应商很快就会与我们竞争,而且他们很可能会对其使用这项技术的客户收费。这不仅不公平,还会削弱我们对产品投入的能力——最终损害整个社区。

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

    未来展望

    我们的目标是基于 Spring 项目和 Spring 理念创建一个完整的 Java 技术栈。迄今为止,无论我们涉足哪个领域,我们都让事情变得更简单、更好、更快。我们将涉足更多领域。有人担心我们的精力会被分散,但事实证明(例如最近的 Spring 产品组合发布),我们正在加速前进。在过去的 6 个月里,我们以比以往更快的速度发布了更多的开源项目。我们正在以与产品底层开发相同的模块化方式扩展我们的努力。我们的产品策略本质上是反对单体架构的,随着组织的成长,这得到了很好的体现。

    多年来,我们创造了伟大的技术。今天,我们创造的比以往任何时候都多。我们很自豪能够帮助推动企业级 Java 从 EJB 1.x 和 2.x 的困境,转型到使用 POJO 的敏捷开发。我们已经为企业客户创造了数十亿美元的价值,未来我们将创造更多。

    我们很高兴能继续书写传奇,提供更多更好的基础设施。企业级 Java 社区需要一家专注于提供最佳解决方案的公司。我们曾用 Spring 重塑了企业级 Java,现在 SpringSource 应用平台又为企业级 Java 开启了新的篇章。在我们挑战现状的同时,也请您向我们发起挑战。

    订阅 Spring 新闻邮件

    通过 Spring 新闻邮件保持联系

    订阅

    领先一步

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

    了解更多

    获得支持

    Tanzu Spring 通过一项简单的订阅,为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

    了解更多

    近期活动

    查看 Spring 社区所有即将到来的活动。

    查看全部