開放原始碼,開放策略: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 Portfolio 的擴展以及我們對 OSGi 和 Spring 模型潛力的探索,我們的願景也得到了擴展,這證明了基於 Spring 的伺服器平台具有變革的潛力。

我們決定在 2007 年籌集資金,以實現這一願景,並彌合我們從服務業務到軟體公司的轉變,該公司可以維持創建高品質軟體。

這樣做的好處是巨大的。我們能夠招募更多明星開發人員加入團隊,並使他們能夠為開源做出更多貢獻。我們能夠將我們現有員工中才華橫溢的產品開發人員集中於增強和擴展 Spring Portfolio。我們能夠在 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 團隊已經從一個專案團隊發展成為一家公司,我們的商業模式也從服務業務轉變為擁有卓越服務能力的軟體公司。在整個轉型過程中,我們始終堅持我們的核心價值觀。特別是
  • 我們一直專注於技術領導和卓越。
  • 我們的目標不是提供 Me-Too 解決方案,而是要推進這門藝術。
  • 我們提供實用的技術解決方案。軟體的價值取決於它在現實世界中實現的結果。
  • 我們相信開源業務的長期成功需要對開源做出重大貢獻。
  • 我們為我們的誠信感到自豪。我們對我們的社群、我們的使用者和客戶誠實。
  • 我們努力為我們的客戶提供最大的價值。
  • 我們尊重我們的使用者、客戶、合作夥伴和競爭對手。
  • 我們重視我們的社群,並努力以其最佳利益行事。

我們的行動源於這些價值觀。例如

  • 我們不會重新發明好的輪子。我們將在可能的情況下使用現有專案,如果我們認為這些專案對我們的使用者很重要,我們會參與其中,例如 AspectJ、Tomcat 和 Equinox。我們是這兩個專案中最活躍的貢獻者。為此,您會看到我們更多地參與 Apache 和 Eclipse 社群。我們的目標是成為領先的企業 Java 開源供應商,因此我們自然會在重要開源專案背後的社群中扮演積極的角色。
  • 如果不存在好的解決方案,我們創建新的專案。 Spring Batch 就是一個很好的例子---將 Spring 的強大、簡潔和一致性價值觀帶到 Java 基礎設施中被忽視的領域。

這些價值觀的力量幫助我們公司度過了快速成長的時期。它也是我們與我們於 2008 年 1 月收購的長期存在的開源公司 Covalent 整合成功的關鍵因素。這兩個組織有著相似的文化,使得員工自然地融合在一起。這也有助於我們繼續吸引傑出的技術和商業人才。

我們的(以及您的)軟體

在 SpringSource,我們開發三種類型的產品,它們是截然不同的
     <ul>
  • 無處不在的程式設計模型和基礎設施。這涵蓋了 Spring Portfolio,以及 AspectJ(我們領導)和 Tomcat(我們是主要貢獻者)。我們希望每個人都能夠使用這些專案。其中許多是事實上的標準。
  •      <li>
    

    SpringSource 應用程式平台一個完整的應用程式伺服器產品,建立在 Spring Portfolio 和其他 Apache 和 EPL 軟體之上。

         <li>
    

    企業增值服務對兩種類型的開源產品的增值服務。我們透過客戶以商業許可證訂閱年度服務來提供這些服務。它們提高了建構 Spring 應用程式的效率(如在 SpringSource Tool Suite 中),或在生產中運行這些產品的運營經驗(如在 SpringSource 應用程式管理套件中)。它們不定義程式設計模型或部署模型,而是增強了使用前兩種類型產品所獲得的體驗。使用者不會被迫購買這些增值服務(不像傳統的軟體許可證);他們可以自己確認它們是否物有所值。

    我們的商業策略

    我們用 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 Portfolio 將維持在 Apache License 授權之下。這涵蓋 Spring Framework、Spring Security、Spring Web Flow 以及 Spring Portfolio 的其他部分。

    我們仍然致力於在我們使用過的地方使用 Apache License (以及 EPL)。然而,並非所有軟體都相同。不同的產品適合不同的授權。今年,SpringSource 推出了幾款重要的新產品,這些產品適合不同的授權方式。

    對我們來說,除了 Apache License 之外的授權有兩個目的:

        <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™ 上所做的那樣,進行大量的開發工作。

    假設我們在 ASL 授權下發布 SpringSource Application Platform。我們可以預期這些供應商很快就會與我們競爭,並且他們很可能會向使用該技術的產品的客戶收費。這不僅不公平,而且會降低我們投資該產品的能力,最終會損害整個社群。

    因此,我們選擇了一種授權,這意味著終端使用者可以自由地從我們的工作中受益,但競爭對手不能用我們自己的程式碼與我們競爭。

    下一步?

    我們的目標是創建一個完整的 Java 堆疊,基於 Spring 專案和 Spring 哲學。到目前為止,無論我們走到哪裡,我們都讓事情變得更容易、更好、更快。我們將會去更多的地方。有些人對我們的努力被稀釋表示擔憂,但證據(例如,最近的 Spring Portfolio 版本)證明我們正在加速。在過去的 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 社群中所有即將舉行的活動。

    查看全部