开源、开放战略:SpringSource宣言

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

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

我们的历史

Spring的故事始于2001年,当时我开始编写30,000行框架代码,并在2002年与《Expert One-on-One J2EE Design and Development》一书一起发布。我的目标是帮助其他人避免我在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团队已从一个项目团队发展成为一家公司,我们的商业模式也已从服务型企业转变为一家拥有出色服务能力的软件公司。在整个转型过程中,我们始终坚持我们的核心价值观。特别是
  • 我们一直专注于技术领导力和卓越性。
  • 我们的目标不是提供平庸的解决方案,而是推动技术的进步。
  • 我们提供务实的技术解决方案。软件的价值仅与其在现实世界中带来的结果成正比。
  • 我们相信,开源业务的长期成功需要对开源做出重大贡献。
  • 我们为我们的诚信感到自豪。我们对我们的社区、用户和客户诚实。
  • 我们努力为客户提供最大的价值。
  • 我们尊重我们的用户、客户、合作伙伴和竞争对手。
  • 我们重视我们的社区,并努力为其最佳利益而行动。

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

  • 我们不会重新发明一个好的轮子。我们将尽可能地使用现有的项目,如果我们认为它们对我们的用户很重要,就会参与其中,例如AspectJ、Tomcat和Equinox。我们是前两个项目的最大贡献者。为此,您将看到我们更多地参与Apache和Eclipse社区。我们的目标是成为领先的企业级Java开源提供商,因此我们很自然地会在重要开源项目背后的社区中发挥积极作用。
  • 当没有好的解决方案存在时,我们创建新的项目。Spring Batch就是一个很好的例子——它将Spring强大的功能、简洁性和一致性带到了Java基础设施中一个长期被忽视的领域。

这些价值观的强大力量帮助我们的公司度过了快速增长的时期。它也是我们与Covalent(一家我们在2008年1月收购的长期存在的开源公司)整合成功的关键因素。这两个组织具有相似的文化,使得员工的融合变得自然。它还有助于我们继续吸引优秀的技术和商业人才。

我们(以及)的软件

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

    SpringSource Application Platform基于Spring产品组合和其他Apache和EPL软件的完整应用程序服务器产品。

         <li>
    

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

    我们的商业战略

    我们重新定义了企业级Java,采用了Spring。我们的使命是继续提供技术领导力和解决方案,将企业级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 Application Platform,这引发了广泛的讨论。我想借此机会解释我们的许可策略,以及为什么我们认为它是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 Application Platform。这是一个全栈产品,与Oracle/BEA(WebLogic、OC4J)、IBM(WebSphere)和Red Hat(JBoss)的产品竞争。所有这些供应商都认识到他们也需要一个成熟的基于OSGi的运行时环境。我们在这一领域拥有强大的技术领先优势。所有这三家公司都需要完成我们在SpringSource Application Platform的dm-Kernel™上所做的艰巨工作。

    假设我们将SpringSource Application Platform在ASL下发布。我们可以预料这些供应商很快就会与我们竞争,并且他们可能会向使用该技术的客户收取费用。这不仅不公平,而且还会降低我们对产品的投资能力,最终损害整个社区的利益。

    因此,我们选择了一种许可证,这意味着最终用户可以免费受益于我们的工作,但竞争对手不能用我们自己的代码与我们竞争。

    下一步是什么?

    我们的目标是创建一个完整的Java栈,基于Spring项目和Spring理念。无论我们走到哪里,我们都让事情变得更容易、更好和更快。我们将去更多的地方。有些人对我们的努力可能会被稀释表示担忧,但证据(例如,最近的Spring产品组合版本)证明我们正在加速发展。在过去的6个月里,我们发布的开源软件比以往任何时候都多,速度也更快。我们正在以与产品开发基础相同的模块化方式扩展我们的工作。我们的产品战略本质上是反单体的,随着组织的增长,这一点得到了很好的体现。

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

    我们很高兴继续这个故事,并提供更多、更好的基础设施。企业Java社区需要一家专注于提供最佳解决方案的公司。我们曾经用Spring重新定义了企业Java,而SpringSource Application Platform为企业Java带来了新的篇章。在我们挑战现状的同时,也请您向我们提出挑战。

    获取Spring通讯

    与Spring通讯保持联系

    订阅

    领先一步

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

    了解更多

    获取支持

    Tanzu Spring在一个简单的订阅中提供OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

    了解更多

    即将举行的活动

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

    查看全部