開源,開放戰略: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 社群所有即將到來的活動。

    檢視全部