為了發(fā)展開源軟件,提高其市場(chǎng)競(jìng)爭(zhēng)力,必須堅(jiān)持走開源軟件獨(dú)特的創(chuàng)新之路。
兩種共生技術(shù)
人們常常陷于一個(gè)思維誤區(qū):“開源軟件是由全球志愿者集體開發(fā)的,遵循開源許可協(xié)議,其全部源代碼是開放的,任何人均可自由獲得”,而“全部源代碼的開放也表示其全部技術(shù)是公開的。”他們不明白,開源軟件不能再停留在其早期的自由的“理想王國(guó)”里,僅供“黑客”、“玩家”們當(dāng)“玩藝”;開源軟件要取得持續(xù)發(fā)展,必須探索并形成自己的商業(yè)模式,惟有具備商業(yè)模式的開源軟件才是成熟的,才能處理好如下矛盾,即:既不違反開源許可協(xié)議,公開全部源代碼;又能不公開自己的專有技術(shù),保守自己的商業(yè)秘密。事實(shí)上,具有商業(yè)模式的開源軟件,其技術(shù)創(chuàng)新并不完全表現(xiàn)于開放的源代碼之中,它還表現(xiàn)在與源代碼無(wú)關(guān)的工程化實(shí)現(xiàn)技術(shù)(即專有技術(shù)和商業(yè)秘密)之中。這就是說,開源軟件的全部技術(shù)是由:以開放源代碼所表征的公開化技術(shù),與不公開的工程化技術(shù)兩部分組成;或者說由這兩部分技術(shù)組成開源軟件的共生技術(shù)。所謂工程化技術(shù),是在開源軟件已完成了其公開技術(shù)(即全部源代碼或全部技術(shù)性能)的開發(fā)過程的基礎(chǔ)上,服務(wù)于產(chǎn)品化或商業(yè)應(yīng)用,尚需解決的后續(xù)技術(shù),它主要關(guān)注于:改善操作穩(wěn)定性,優(yōu)化計(jì)算效率,增強(qiáng)靈活擴(kuò)展性,提高產(chǎn)品質(zhì)量,催化產(chǎn)品成熟度。工程化技術(shù)是一種實(shí)現(xiàn)技術(shù)、優(yōu)化技術(shù)、隱性技術(shù),主要表現(xiàn)為技術(shù)訣竅(Know-How)或熟練技巧(Skill)、工程經(jīng)驗(yàn)、系統(tǒng)底層技術(shù)的把握等隱性知識(shí)方面。
開源軟件的工程化技術(shù)主要由兩部分構(gòu)成:(1)在開發(fā)過程中,有些與設(shè)計(jì)思想、原理、實(shí)現(xiàn)機(jī)制(包括算法)有關(guān)的隱性設(shè)計(jì)技術(shù);與各軟件模塊之間的協(xié)同、耦合、調(diào)用等相互依賴關(guān)系有關(guān)的實(shí)現(xiàn)技術(shù)(包括實(shí)現(xiàn)細(xì)節(jié));開源企業(yè)(服務(wù)商)的“內(nèi)核分支”發(fā)行版的源代碼與由Linus Torvalds負(fù)責(zé)開發(fā)和監(jiān)護(hù)的官方(Official)“內(nèi)核主線”版本的源代碼之間偏差程度的把握能力。IT評(píng)論家Matt Asay指出,人們可以得到Red Hat公司企業(yè)級(jí)Linux發(fā)行版的全部源代碼,但它直接交付用戶使用的二進(jìn)制版本(即所謂“ready to go”版本)并不是這些源代碼編譯的結(jié)果,其中存在著一些差異(關(guān)鍵要把握差異的程度),這就是商業(yè)秘密。(2)在產(chǎn)品化或應(yīng)用過程中,為增強(qiáng)開源軟件的增值效應(yīng),對(duì)各軟件模塊進(jìn)行包裝/配置/集成,以及剖析并改進(jìn)相應(yīng)的軟件系統(tǒng)(Profile)所涉及的隱性技術(shù)。
舉國(guó)外開源軟件“Ubuntu”的例子來分析:Ubuntu作為L(zhǎng)inux386個(gè)發(fā)行版之一(有桌面版,也有服務(wù)器版)是非常優(yōu)秀的。發(fā)展迅猛,受人歡迎,其開發(fā)創(chuàng)新機(jī)制確有過人之處。Ubuntu為何發(fā)展如此之快,干得如此出色呢?我認(rèn)為其中一個(gè)重要原因是Ubuntu利用了國(guó)際上最大的非盈利的開源社區(qū)Debian的人才和資源。所以有人說“Ubuntu是基于Debian開發(fā)的版本”,“Ubuntu是Debian的副產(chǎn)品”,確是如此。但Ubuntu認(rèn)為“Debian的過于寬廣龐雜”,它在Debian資源上進(jìn)行剪裁、移植和再創(chuàng)新,達(dá)到“少而精”的目的。現(xiàn)在隨著Ubuntu的發(fā)展,它并不想與Debian兼容,也不愿參加Debian的聯(lián)合體。
最近Ubuntu自己認(rèn)承:Ubuntu的發(fā)布版在產(chǎn)品穩(wěn)定性等性能方面尚有待于改進(jìn),它還未通過用戶認(rèn)證。這使我聯(lián)想到Ubuntu的開發(fā)創(chuàng)新機(jī)制可能還存在一些問題,他們中不少人具有“崇尚自由開放,摒棄封閉專權(quán)的理想主義”,因此他們“集體開發(fā)”開放技術(shù)的能力可能有余,而“自主開發(fā)”工程化技術(shù)的能力可能不足。
很多執(zhí)行雙授權(quán)許可協(xié)議模式的開源軟件,在其層次結(jié)構(gòu)(Stack)中可能嵌入某個(gè)層次的閉源軟件,或可能附加某些閉源的組件模塊,這些閉源軟件實(shí)際上就是私權(quán)軟件,其中全部技術(shù)(不光是工程化技術(shù))都是不公開的,并將完全依賴于自主開發(fā)創(chuàng)新。
雙重創(chuàng)新模式
與一般企業(yè)的私權(quán)軟件創(chuàng)新模式不同,開源軟件首先采用由志愿者進(jìn)行“集體開發(fā)”、“合作創(chuàng)新”的新模式,這種創(chuàng)新模式實(shí)行“源代碼開放”、“技術(shù)公開”;但是僅靠這種模式還不足以開發(fā)出開源軟件的全部共生技術(shù)(即不能開發(fā)不公開的工程化技術(shù)),也不足以向市場(chǎng)推出優(yōu)質(zhì)高效、操作穩(wěn)定、技術(shù)更趨成熟、競(jìng)爭(zhēng)力更強(qiáng)的開源軟件產(chǎn)品。實(shí)際上,開源軟件針對(duì)開發(fā)工程化技術(shù),還需要另一種:“自主開發(fā)”、“自主創(chuàng)新”、“具有自主知識(shí)產(chǎn)權(quán)”的創(chuàng)新模式來跟進(jìn)和補(bǔ)充。開源軟件的雙重創(chuàng)新模式,即“集體開發(fā)”、“合作創(chuàng)新”與“自主開發(fā)”、“自主創(chuàng)新”兩種模式是互補(bǔ)的、互相銜接的、不可分割的;也可看作開源軟件開發(fā)創(chuàng)新過程的兩個(gè)階段。
近年來國(guó)內(nèi)企業(yè)開發(fā)并向市場(chǎng)推出一批開源軟件產(chǎn)品,取得了長(zhǎng)足進(jìn)步;但某些企業(yè)還沿襲舊的封閉的開發(fā)模式和機(jī)制,他們?cè)凇吧鐓^(qū)版”上進(jìn)行剪裁、移植或者進(jìn)行簡(jiǎn)單修改,屬于自主開發(fā)創(chuàng)新的成果還不多,他們基本上還處于學(xué)習(xí)、模仿階段。國(guó)際開源社區(qū)曾多次反映,國(guó)人在開源軟件“集體開發(fā)”、“合作創(chuàng)新”活動(dòng)中,向社區(qū)提交自己修改、創(chuàng)新的源程序代碼行(到被吸納)尚屬鳳毛麟角,以致有人認(rèn)為:國(guó)人尚未能大量進(jìn)入這個(gè)開發(fā)創(chuàng)新模式的核心圈之內(nèi),而且從這個(gè)衡量開發(fā)創(chuàng)新人員資質(zhì)水準(zhǔn)的統(tǒng)計(jì)數(shù)據(jù)來看,國(guó)人尚有差距。
兩種開發(fā)機(jī)制
為了加快中國(guó)開源軟件的發(fā)展,需要建立開源社區(qū),形成社區(qū)開發(fā)和企業(yè)開發(fā)兩種互相支持、互為補(bǔ)充的開發(fā)機(jī)制,社區(qū)開發(fā)主要是創(chuàng)新,企業(yè)主要開發(fā)工程化技術(shù),促使產(chǎn)品更加穩(wěn)定、優(yōu)化。
在開源社區(qū),具有“集體開發(fā)”、“合作創(chuàng)新”、“技術(shù)公開”特征的創(chuàng)新體系,是建立在自由開放的互聯(lián)網(wǎng)平臺(tái)上的,很多創(chuàng)意通常自下而上來自底層志愿者。在這個(gè)創(chuàng)新體系中,能夠廣泛吸收全球廣大志愿者的智慧,經(jīng)常產(chǎn)生大量思維碰撞,并往往撞出不少耀眼的思想火花,經(jīng)常迸發(fā)出創(chuàng)新點(diǎn)子,在技術(shù)上有所突破,但也常常伴隨著不夠系統(tǒng)、不夠穩(wěn)定、不夠成熟的現(xiàn)象。開源社區(qū)的創(chuàng)新活動(dòng)需要有開源領(lǐng)袖(或大師)以及一批核心骨干的支撐,他們?cè)谏鐓^(qū)負(fù)責(zé)對(duì)志愿者提交的軟件包,進(jìn)一步作“選包、打包、集成、測(cè)試”循環(huán)的創(chuàng)新活動(dòng)并實(shí)施資源管理。在開源社區(qū)創(chuàng)新體系之外,還需一個(gè)后續(xù)的企業(yè)創(chuàng)新體系與之互為補(bǔ)充,企業(yè)創(chuàng)新體系具有“自主開發(fā)”、“自主創(chuàng)新”、“自主知識(shí)產(chǎn)權(quán)”(技術(shù)不公開)的特征,它是建立在企業(yè)內(nèi)部開發(fā)部門或企業(yè)局域網(wǎng)平臺(tái)上的,其創(chuàng)新的任務(wù)是向市場(chǎng)推出滿足用戶需求的產(chǎn)品,計(jì)劃通常自上而下,開發(fā)者是企業(yè)專業(yè)技術(shù)隊(duì)伍,企業(yè)的創(chuàng)新活動(dòng)需要有經(jīng)驗(yàn)豐富的資深人士(包括系統(tǒng)架構(gòu)師)及一批核心骨干的支撐(最好具有參與社區(qū)開發(fā)創(chuàng)新的經(jīng)歷并與之保持良好的互動(dòng)接口)。他們?cè)诶瞄_源社區(qū)創(chuàng)新成果的基礎(chǔ)上,重點(diǎn)做工程化、產(chǎn)品化、系統(tǒng)化、完善化、穩(wěn)定性和性能優(yōu)化的創(chuàng)新工作,在攻克工程化技術(shù)方面進(jìn)行自主創(chuàng)新。
產(chǎn)品平臺(tái)和生態(tài)系統(tǒng)
對(duì)于開源軟件,孤立地開發(fā)或推出一個(gè)產(chǎn)品(發(fā)行版)是不夠的,必須形成圍繞該產(chǎn)品平臺(tái)的生態(tài)系統(tǒng),即要把大量軟件(特別是應(yīng)用軟件)移植到這個(gè)產(chǎn)品平臺(tái)上來;該產(chǎn)品要能預(yù)裝到一些必要的硬件體系結(jié)構(gòu)中去;要能與眾多外圍設(shè)備匹配銜接。而移植、預(yù)裝、匹配是需要做大量測(cè)試、修改以及“再開發(fā)”工作的,涉及成百上千個(gè)企業(yè)協(xié)同工作,需耗費(fèi)大量人力、物力、財(cái)力和時(shí)間。為做到這一點(diǎn),首先必須開發(fā)出在全球能進(jìn)入“主流”的產(chǎn)品,否則要吸引全球廣大企業(yè)、社區(qū)的支持,共同來營(yíng)造一個(gè)生態(tài)系統(tǒng)是不可能的。當(dāng)然在營(yíng)造生態(tài)系統(tǒng)過程中,不能用純技術(shù)觀點(diǎn)來看待這個(gè)問題,在爭(zhēng)取廣大企業(yè)、社區(qū)支持時(shí),特別要爭(zhēng)取擁有豐富資源和影響力的跨國(guó)公司的支持,為此我們要做好協(xié)調(diào)工作。
還必須指出,“分散的低水平重復(fù)”很難使開發(fā)出來的開源軟件在全球能夠占居“主流產(chǎn)品”的地位,為此加強(qiáng)國(guó)內(nèi)聯(lián)合、國(guó)際合作是十分重要的。
開源架構(gòu)和開源產(chǎn)品鏈
開源軟件的LAMP架構(gòu)(即L-Linux操作系統(tǒng),A-Apache開源服務(wù)器或其他開源中間件,M-MySQL或Postgre開源數(shù)據(jù)庫(kù),P-PHP或Perl、Python腳本語(yǔ)言)具有簡(jiǎn)易性、低成本和執(zhí)行靈活性等特點(diǎn),當(dāng)“在線交易進(jìn)程(OLTP)”在LAMP架構(gòu)的解決方案中取得成功,有力地推動(dòng)了這個(gè)架構(gòu)的發(fā)展。LAMP架構(gòu)的崛起,與IBM、SUN主導(dǎo)的J2EE架構(gòu)(Java編程語(yǔ)言)和微軟主導(dǎo)的.Net架構(gòu)(C#編程語(yǔ)言)形成了三角鼎立的競(jìng)爭(zhēng)態(tài)勢(shì)。
針對(duì)各種信息化應(yīng)用解決方案,在開源軟件LAMP架構(gòu)上形成的開源產(chǎn)品鏈,需進(jìn)行集成、測(cè)試、優(yōu)化的開發(fā)創(chuàng)新活動(dòng);從實(shí)際需求出發(fā),有時(shí)我們也要推出開源和閉源產(chǎn)品混生的產(chǎn)品鏈,而在推出這樣的產(chǎn)品鏈之前也需要進(jìn)行相應(yīng)的開發(fā)創(chuàng)新活動(dòng)。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com