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

    檢視所有