潘向東,楊建梅,白 樺
(1.北京交通大學(xué)中國產(chǎn)業(yè)安全研究中心博士后科研工作站,北京 100044;2.華南理工大學(xué)工商管理學(xué)院,廣州 510641;3.鶴壁市發(fā)展和改革委員會,河北 鶴壁 458030)
開源社區(qū)雪崩效應(yīng)實證研究:以Sourceforge為例
潘向東1,2,3,楊建梅2,白 樺2
(1.北京交通大學(xué)中國產(chǎn)業(yè)安全研究中心博士后科研工作站,北京 100044;2.華南理工大學(xué)工商管理學(xué)院,廣州 510641;3.鶴壁市發(fā)展和改革委員會,河北 鶴壁 458030)
以SourceForge社區(qū)為例,研究了開源項目開發(fā)過程中的風(fēng)險傳遞和崩塌級聯(lián)反應(yīng),對開源社區(qū)的雪崩效應(yīng)進(jìn)行了實證研究。分析發(fā)現(xiàn),技術(shù)關(guān)聯(lián)與合作關(guān)聯(lián)是開源項目之間風(fēng)險傳遞的兩種主要模式,基于上述關(guān)聯(lián)模式,某個項目的失敗會引發(fā)一定規(guī)模的雪崩級聯(lián)反應(yīng)。針對SourceForge開源社區(qū)的實證研究結(jié)果顯示,雪崩規(guī)模呈冪律分布,最大雪崩規(guī)模僅為18,但規(guī)模持續(xù)變大,這意味著社區(qū)處于創(chuàng)建期到成長期的演化階段。
開源社區(qū);雪崩;級聯(lián)反應(yīng);Sourceforge社區(qū)
開源社區(qū)是一種分布式開發(fā)軟件的新型社會組織形式。在開源社區(qū)中實行“集體開發(fā)、合作創(chuàng)新、對等評估”的開發(fā)機制,被譽為當(dāng)代最先進(jìn)、最具創(chuàng)新能力、最有成效的一種開發(fā)機制和形式。作為一種實踐中已經(jīng)取得成功的新現(xiàn)象,對其進(jìn)行正面研究,提煉成功經(jīng)驗,自然是科研方向的主流。然而,科學(xué)研究不應(yīng)僅僅限于總結(jié)和推廣經(jīng)驗,發(fā)現(xiàn)潛在的風(fēng)險和問題,以便未雨綢繆也是科學(xué)精神之所系。目前在開源現(xiàn)象研究中,很少有人關(guān)注不成功的項目[1],大家對于失敗等負(fù)面研究漠不關(guān)心。事實上,在不同的開源社區(qū),每年都有大量的項目因為各種原因而被遺棄,有關(guān)這種問題的研究對于開源現(xiàn)象的健康發(fā)展具有重大的理論意義和現(xiàn)實意義。
本文針對當(dāng)前開源現(xiàn)象研究的不足,以Sourceforge.net社區(qū)為實證研究對象,著眼其發(fā)展過程中的風(fēng)險因素,重點研究開源項目在開發(fā)過程中遇到挫折時的風(fēng)險傳遞和崩塌級聯(lián)反應(yīng),以期為開源現(xiàn)象的健康發(fā)展提供有價值的建議。
網(wǎng)絡(luò)上發(fā)生的雪崩現(xiàn)象對于網(wǎng)絡(luò)安全而言,是一個重大的威脅,尤其是當(dāng)網(wǎng)絡(luò)的節(jié)點和連邊對于過載敏感的情況下,這種威脅更是突出。美國歷史上曾經(jīng)在1996年夏天發(fā)生過兩次大停電事故,這些事故的發(fā)生往往是由于某個輸電環(huán)節(jié)的故障最終導(dǎo)致了整個電力系統(tǒng)的崩潰,其中,7月2日的事故起因于一座200萬千瓦的發(fā)電廠,而8月10日的事故則起因于一條潮流達(dá)到1 300MW的電線[2-3]。
一些學(xué)者對于網(wǎng)絡(luò)上的雪崩現(xiàn)象進(jìn)行了研究,提出了一系列連鎖故障模型。Motter等[4]引入一個簡單的過載故障級聯(lián)模型,在這個模型里,當(dāng)一小部分點甚至是單個點被移除以后,網(wǎng)絡(luò)上各節(jié)點的負(fù)載重新分配,那些過載的節(jié)點隨即移除并再次引起網(wǎng)絡(luò)剩余節(jié)點的負(fù)載調(diào)整,直至一個全局性大規(guī)模雪崩的出現(xiàn)。Crucitti等[5]的模型沒有考慮過載節(jié)點永久性移除,他們假設(shè)過載節(jié)點之間的通訊效率會出現(xiàn)衰減,并最終導(dǎo)致相當(dāng)數(shù)量的信息或者能量從其它節(jié)點通過,這種情形下,一個節(jié)點的移除將改變節(jié)點之間最佳通訊路徑,進(jìn)而影響到負(fù)載的分布,使得部分節(jié)點出現(xiàn)過載并進(jìn)一步調(diào)整剩余節(jié)點之間的最佳通訊路徑,最終引起系統(tǒng)的大擁塞。Kinney等[6]運用Crucitti等提出的模型,模擬了北美電網(wǎng)發(fā)生的連鎖故障,結(jié)果發(fā)現(xiàn)高負(fù)荷節(jié)點出現(xiàn)故障對于整個電網(wǎng)系統(tǒng)的影響明顯高于隨機節(jié)點發(fā)生故障所帶來的影響。Carreras等[7]認(rèn)為Kinney等的研究過于簡化,他們的模型考慮了電網(wǎng)節(jié)點的最大輸出功率和網(wǎng)絡(luò)連邊可承載的最大電流,研究發(fā)現(xiàn)模擬結(jié)果較好地吻合了上世紀(jì)北美電網(wǎng)大停電事故。
大規(guī)模的連鎖故障不僅僅發(fā)生在電網(wǎng)系統(tǒng),社會、經(jīng)濟以及生物界等各個領(lǐng)域。Bak等[8]運用元胞自動機研究了沙堆模型,模擬大規(guī)模沙崩(雪崩)的形成過程,提出了自組織臨界理論。此后,一些學(xué)者還運用自組織臨界理論研究了森林火災(zāi)[9]、地震[10]、生物演化[11]以及經(jīng)濟領(lǐng)域的市場波動[12]等問題。
開源社區(qū)是一個規(guī)模巨大的自組織系統(tǒng),每天都有新的程序開發(fā)人員參與進(jìn)來,或者老的人員失敗;每天都有新的項目產(chǎn)生,也會有失敗的項目被淘汰。這些失敗人員和失敗項目是否也會引發(fā)開源社區(qū)發(fā)生類似電力系統(tǒng)的連鎖故障或者沙堆的崩塌,甚至驅(qū)使系統(tǒng)自組織演化至臨界狀態(tài)?本文試圖對此進(jìn)行實證研究。
2.1 實證對象選取的考量
本文實證研究選取的對象為Sourceforge.net社區(qū)。由于本文關(guān)注的焦點在于社區(qū)的演化問題,因此相關(guān)的研究數(shù)據(jù)必須能夠跨越較長時段,這就要求在研究對象選取時需要尋找那些有較長發(fā)展歷史的社區(qū),Sourceforge.net社區(qū)正是滿足這種要求的少數(shù)社區(qū)之一。該社區(qū)從1999年創(chuàng)立至今,已經(jīng)擁有32.4萬個開源項目,340萬開發(fā)者,每天的下載次數(shù)達(dá)到了400萬,成為當(dāng)之無愧的開源運動的主陣地。
2.2 實證數(shù)據(jù)及來源
成功的項目會促進(jìn)社區(qū)發(fā)展,相反的,失敗的項目會對社區(qū)發(fā)展形成拖累。本文實證研究的內(nèi)容主要是開源社區(qū)上的雪崩級聯(lián)現(xiàn)象,研究數(shù)據(jù)主要涉及開發(fā)失敗的項目。
本文關(guān)注的失敗項目是那些停止開發(fā)項目,這些項目不發(fā)布新的文件和信息,沒有用戶下載和使用。具體的,當(dāng)一個項目在一年內(nèi)沒有任何新文件發(fā)布時,本文就認(rèn)定其為失敗項目。由此,社區(qū)上的項目將被分為兩類,即活躍項目和失敗項目。
Sourceforge.net上提供了每個項目的基本信息,這些信息包括:項目的注冊日期、最新文件的發(fā)布日期、排名、活躍度、下載量等。其中,最新文件的發(fā)布日期將是判斷項目類別(是否為失敗項目)的直接依據(jù)。根據(jù)項目的最新文件發(fā)布日期整理以后,本文收集到的失敗項目共有52 276個(數(shù)據(jù)采集于2009年7月5日至7月12日)。
3.1 開源社區(qū)上軟件項目的崩塌級聯(lián)現(xiàn)象
在開源社區(qū)上,人員、知識、信息頻繁流動,各個項目之間存在千絲萬縷的聯(lián)系,從而使得社區(qū)成為一個關(guān)聯(lián)網(wǎng)絡(luò)。但是,緊密的連接有時候也可能會帶來負(fù)面影響。當(dāng)一個項目在發(fā)展演化過程中遇到挫折的時候,會對相關(guān)聯(lián)的項目形成沖擊和影響。在系統(tǒng)內(nèi)在的正反饋動力作用下,小的問題也可能會導(dǎo)致一場難以預(yù)料的大風(fēng)暴,從而引發(fā)“漣漪效應(yīng)”[13-14]。本文將這種漣漪效應(yīng)稱為級聯(lián)效應(yīng),將其產(chǎn)生過程看作是雪崩動力過程。
作為大型社區(qū)組織,開源社區(qū)存在關(guān)聯(lián)性和層次性特征,項目(團隊)之間由于長時間的相互作用,逐步形成了亞文化群體。群體內(nèi),成員們通常具有相似的價值觀念、開發(fā)理念[14]。因此,當(dāng)群體成員在受到某種擾動的時候,級聯(lián)效應(yīng)就會在圈子內(nèi)傳播,從而使得系統(tǒng)處于亞穩(wěn)定狀態(tài)[15]。一旦擾動的影響超過某個閾值,系統(tǒng)的亞穩(wěn)定狀態(tài)將會被打破,并由此引發(fā)較大規(guī)模的雪崩過程。
Sourceforge.net上項目的崩塌級聯(lián)現(xiàn)象亦常有發(fā)生,下面的例子就是其中之一。
“Lopica”、“Petra”、“Luxor Contributions”、“XUL”、“Viva”、“Luxor XUL”是SourceForge.net上的6個開源項目,它們的基本情況如表1所示?!癓opica”項目創(chuàng)立于2002年10月,其主要參與人員是vamp201和rosbaldeston兩位程序開發(fā)人員。其中vamp201是項目的管理者,他在掌管該項目的同時還是“Petra”、“Luxor Contributions”、“XUL”、“Viva”、“Luxor XUL”等多個項目的參與者或管理者。
表1 項目基本情況
注:*表示該成員為項目管理者;資料來源:Sourceforge.net。
通過對“Lopica”項目的郵件列表分析,發(fā)現(xiàn)該項目在技術(shù)細(xì)節(jié)上存在一些問題(這些問題源于開發(fā)人員的程序設(shè)計理念或習(xí)慣),所以在歷時一年后該項目于2003年10月停止開發(fā)。受此影響,vamp201獨立開發(fā)的“Luxor Contributions”和參與合作的“Petra”、“XUL”、“Viva”等項目也先后失敗,并由此導(dǎo)致項目“Luxor XUL”最終也難逃失敗厄運。圖1反映了上述項目相繼失敗退出社區(qū)的級聯(lián)過程,從最初的一個項目“擾動”到最終的6個項目失敗,開源社區(qū)經(jīng)歷了一個項目崩塌級聯(lián)的雪崩過程。在這個過程中,程序開發(fā)人員vamp201起到了至關(guān)重要的作用。
3.2 項目崩塌級聯(lián)現(xiàn)象的雪崩動力
本文關(guān)注的是開源社區(qū)上的雪崩動力過程,因此分析的重點在于那些阻礙項目發(fā)展的因素。網(wǎng)上開源社區(qū)一般都會為開發(fā)人員和用戶等提供交流的平臺,通過郵件列表、論壇等,開發(fā)者與開發(fā)者、開發(fā)者與用戶都可以就關(guān)心的問題進(jìn)行討論。通過對這些討論內(nèi)容的分析,可以找到影響項目發(fā)展的各種因素和力量。本文對Sourceforge.net社區(qū)上的項目信息進(jìn)行了分析和研究,運用石川圖法對這些因素進(jìn)行了整理如圖2所示。
?:開發(fā)人員;○:項目;→:級聯(lián)傳遞圖1 項目崩塌級聯(lián)效應(yīng)Fig.1 The avalanche dynamics about collapsed projects
圖2 阻礙項目發(fā)展的因素分析Fig.2 Analysis of factors hindering the development of the project
由圖2可見,影響開源項目發(fā)展的力量可以歸結(jié)為兩類因素:技術(shù)因素和人員合作因素。軟件是一種相互依存度很高的產(chǎn)品,比如,應(yīng)用軟件需要在系統(tǒng)軟件上運行,獨立的軟件需要中間件來進(jìn)行連接,如此形成的軟件網(wǎng)絡(luò)才可以提供有效的功能。因此,從技術(shù)角度看,一個缺乏配套和支持的孤立項目是很難獨自生存和發(fā)展的。由于軟件存在上述緊密關(guān)系,當(dāng)其中任何一個環(huán)節(jié)出現(xiàn)問題的時候,其他相關(guān)軟件都會或多或少地受到影響。一旦這種影響超過了某個閾值,項目就會存在失敗的風(fēng)險。此外,軟件作為一種典型的知識產(chǎn)品,其更新速度很快,當(dāng)新的技術(shù)出現(xiàn)以后,原有的落后技術(shù)就會面臨淘汰的危險。
軟件產(chǎn)品的開發(fā)通常要由多人合作完成,在長期的合作過程中,開發(fā)人員會形成共同的設(shè)計理念、共享的知識體系,會形成相似的開發(fā)技巧和程序編寫習(xí)慣,會形成合作生產(chǎn)的協(xié)同效應(yīng)。當(dāng)外部因素影響到上述合作基礎(chǔ),諸如:團隊成員流失、開發(fā)者動機轉(zhuǎn)移、合作管理失敗或者受到新的設(shè)計理念沖擊,項目開發(fā)就有可能會因此而失敗。事實上,人員合作因素導(dǎo)致的項目失敗常有發(fā)生。由于開發(fā)者意見分歧而出現(xiàn)“分叉”已經(jīng)成為項目發(fā)展的主要障礙之一;開發(fā)人員動機的變換甚至離去對項目發(fā)展構(gòu)成致命打擊[15];合作開發(fā)形成的技術(shù)路徑依賴不僅會在面對新技術(shù)沖擊時表現(xiàn)脆弱,而且還會將這種影響在群體內(nèi)廣泛傳播。
在技術(shù)和人員合作兩類因素的作用下,開源社區(qū)上項目之間的雪崩級聯(lián)關(guān)系主要表現(xiàn)為兩種模式,即技術(shù)關(guān)聯(lián)模式和合作關(guān)聯(lián)模式。
3.3 崩塌級聯(lián)的技術(shù)關(guān)聯(lián)模式
如前所述,軟件項目之間會因為技術(shù)關(guān)聯(lián)而形成一個軟件群體。這個群體通常以某個核心軟件為中心,以配套軟件為輔助,表現(xiàn)出網(wǎng)狀結(jié)構(gòu)。一般地,處于中心位置的項目往往是某個用戶認(rèn)可度高的軟件,其他一些外圍項目則為核心項目提供支持和擴展功能。
eMule是用戶比較熟悉的一個開源項目,俗稱“電騾”。該項目創(chuàng)立于2002年5月13日,起初僅僅是因為一個電腦黑客Merkur對原始的eDonkey2000(電驢)客戶端感到不滿而開發(fā)的項目。但是,項目創(chuàng)立之后迅速吸引了很多優(yōu)秀的開發(fā)人員,取得了巨大的成功。由于eMule是基于GNU通用公共許可證發(fā)布的開源軟件,任何組織和個人都可以在遵守GNUGPL的基礎(chǔ)上下載使用eMule的源代碼,對eMule進(jìn)行修改并發(fā)布,于是便有了很多eMule修改版。其中比較知名的包括:eMule Xtreme,eMule Magic Angel,ScarAngel Mod,NeoMule,這些項目都集中在SourceForge.net社區(qū)。由此,這些軟件項目便形成了以eMule為核心的項目群體(見圖3)。
可以設(shè)想,假如一個新的技術(shù)(項目)出現(xiàn),導(dǎo)致eMule遭到淘汰,那么其他相關(guān)的外圍項目必定也難以獨善其身。由此,便會從一個原發(fā)項目開始,沿著技術(shù)關(guān)聯(lián)網(wǎng)絡(luò)發(fā)生項目的崩塌級聯(lián)現(xiàn)象。直觀地看,這樣的技術(shù)關(guān)聯(lián)性雪崩可能會在局部范圍內(nèi)廣泛傳播,但其涉及深度卻要受到技術(shù)關(guān)聯(lián)縱深程度的影響。
3.4 崩塌級聯(lián)的合作關(guān)聯(lián)模式
在開源社區(qū)上,軟件開發(fā)項目通常由多個程序設(shè)計人員合作完成。在這些開發(fā)者中,有一部分人員參與了多個項目。這樣一來,軟件項目之間就產(chǎn)生了合作關(guān)聯(lián)關(guān)系。圖4a作了適當(dāng)?shù)暮喕?,假設(shè)有兩個項目A,B,它們分別由3個程序設(shè)計人員合作開發(fā)。其中,人員c同時參與項目A和B的開發(fā)工作。
假設(shè)某一時刻,c由于動機缺失,離開了社區(qū),那么這一事件分別會對A,B兩個項目開發(fā)團隊產(chǎn)生沖擊。如果c是兩個項目的主要貢獻(xiàn)人員或者管理者,那么他的離去勢必對兩個項目的開發(fā)工作造成重大影響,甚至直接導(dǎo)致項目失敗。即使c僅僅是普通開發(fā)人員,他的離去也會使得原有的分工體系遭到破壞,其他開發(fā)人員需要承擔(dān)起c離去所造成的“空缺”。這種情況會嚴(yán)重影響項目開發(fā)進(jìn)程,此時如果再遇到競爭對手(項目)的“進(jìn)攻”,失敗淘汰已無懸念。圖4b反映了c的離去對a,b和d,e產(chǎn)生影響,這種影響發(fā)生在項目內(nèi)部,本文稱之為內(nèi)部效應(yīng);在內(nèi)部效應(yīng)作用下,項目A和B均停止了開發(fā)工作,由此便會顯示出本次雪崩過程的級聯(lián)效應(yīng)(A,B兩個項目先后失敗),如圖4c所示。
圖3 eMule的技術(shù)關(guān)聯(lián)網(wǎng)絡(luò)Fig.3 The technical co-relation network of eMule
圖中項目或者開發(fā)人員變?yōu)殛幱凹幢硎臼艿接绊?。圖4 合作關(guān)聯(lián)情形下開發(fā)者離去引發(fā)的級聯(lián)效應(yīng)
項目開發(fā)人員離去顯然會對項目造成影響,但除此之外,團隊協(xié)作出現(xiàn)問題也會導(dǎo)致上述級聯(lián)效應(yīng)。圖5中的項目A和B各擁有3名開發(fā)人員,其中b和c分別參與了A和B的開發(fā)工作。如果b,c在協(xié)作開發(fā)過程中產(chǎn)生矛盾或分歧,那么這種情形將會影響到兩個項目的發(fā)展,其結(jié)果就表現(xiàn)為項目A和B的崩塌級聯(lián),如圖5b。
另外一種由合作關(guān)聯(lián)所引致的級聯(lián)效應(yīng)是源于群體行為模式的解體。人們在長時間的工作和互動過程中,會自發(fā)地形成一定的群體規(guī)范和行為模式[16-17]。在開源社區(qū)上,那些具有共性特征的項目結(jié)成連接緊密的社團結(jié)構(gòu)[18],社團內(nèi)的項目在開發(fā)技術(shù)、設(shè)計理念等方面具有較強的一致性[18-19]。當(dāng)受到外部技術(shù)、開發(fā)模式等因素影響時,就會在社團內(nèi)部形成連鎖反應(yīng)。這種反應(yīng)通常是藉以開發(fā)人員的合作關(guān)系而傳遞,因而也是合作關(guān)聯(lián)所引發(fā)的一種級聯(lián)效應(yīng)。
圖6反應(yīng)了合作關(guān)聯(lián)情形下,當(dāng)群體行為模式(如開發(fā)技術(shù))發(fā)生改變時,項目之間的崩塌級聯(lián)反應(yīng)。在開始階段,開發(fā)人員a改變了自己的開發(fā)技術(shù)(見圖6a),這種改變對項目A內(nèi)部的所有成員形成了沖擊,并最終影響到項目A的開發(fā)質(zhì)量和進(jìn)程(見圖6b)。在這個過程中,開發(fā)者c作為A的成員受到了影響,但他同時又是項目B的成員,因此他將這種影響帶到了項目B團隊,并最終影響到項目B的開發(fā)質(zhì)量和進(jìn)程(見圖6c)。
圖5 合作關(guān)聯(lián)情形下協(xié)作失敗引發(fā)的級聯(lián)效應(yīng)
圖6 合作關(guān)聯(lián)情形下群體模式解體引發(fā)的級聯(lián)效應(yīng)
3.5 崩塌級聯(lián)的混合關(guān)聯(lián)模式
前文分析了開源社區(qū)上崩塌級聯(lián)的技術(shù)關(guān)聯(lián)模式和合作關(guān)聯(lián)模式,分別討論是由于兩者機理不同,但是在現(xiàn)實中,雪崩級聯(lián)在傳播時不會對此加以區(qū)分。因此,本文認(rèn)為開源社區(qū)上的雪崩傳播是基于兩種關(guān)聯(lián)模式的混合。
圖7中,項目A由a,b合作開發(fā),項目B由b,c合作開發(fā),b是兩個項目的共同參與人。項目C由d單獨開發(fā),它與B存在技術(shù)關(guān)聯(lián)(見圖7a)。假設(shè)開發(fā)者b的動機發(fā)生轉(zhuǎn)變,并先后導(dǎo)致了項目A和B停止開發(fā);而C在技術(shù)上要受B影響,因此B的失敗又導(dǎo)致C的淘汰。由此便引發(fā)了A,B,C 3個項目先后淘汰的連鎖反應(yīng)。在這個級聯(lián)反應(yīng)中,A,B級聯(lián)源于合作關(guān)聯(lián),B,C級聯(lián)源于技術(shù)關(guān)聯(lián)。從整體上看,A,B,C級聯(lián)則對應(yīng)于混合關(guān)聯(lián)(見圖7b)。
4.1 雪崩規(guī)模的度量方法
在開源社區(qū)上,關(guān)聯(lián)項目之間存在崩塌級聯(lián)關(guān)系,那么由此導(dǎo)致的雪崩及其規(guī)模如何進(jìn)行度量?我們知道,針對沙堆模型進(jìn)行的實驗,可以通過控制外部沙粒流入沙堆系統(tǒng)的速度,從而清晰地觀測出每次雪崩的規(guī)模[20]。但是在開源社區(qū)上,幾乎每天都在發(fā)生著項目坍塌事件,不可能對每次雪崩都進(jìn)行跟蹤研究。
回到沙堆模型,假如在實驗中只能夠觀測到沙粒的崩塌結(jié)果,而無法獲知其發(fā)生過程,那么應(yīng)該怎樣對數(shù)據(jù)進(jìn)行處理?圖8是沙盤在某個時點的快照,在此時點上有7粒沙子落在沙盤上。根據(jù)BTW模型所作的假設(shè),沙粒的每次脫落都會掉入相鄰點位。因此,相鄰點位的沙粒通常是一次雪崩的結(jié)果。從圖8的情形來看,有可能發(fā)生了4次雪崩,分別是{1,2},{3,4,5},{6},{7},雪崩規(guī)模依次為2,3,1,1。當(dāng)然也有可能是發(fā)生了5次雪崩,分別是{1,2},{3,4},{5},{6},{7},沙粒5是一次獨立雪崩的結(jié)果,其恰好落在了沙粒4的點位上。那么圖8究竟是多少次雪崩的映射結(jié)果?我們考慮,如果沙盤的面積足夠大,那么作為一次獨立雪崩的沙粒5就很難巧合地落在沙粒4的點位上,從而形成偽關(guān)聯(lián)的情況。因此,當(dāng)沙盤面積較大時,就可以用第一種方案,即4次雪崩來近似地反映雪崩結(jié)果。
在開源社區(qū)上,項目數(shù)量極大,兩次獨立的項目失敗事件發(fā)生偽關(guān)聯(lián)的可能性極低,所以本文就近似地將失敗項目的所有關(guān)聯(lián)項目看作是一次雪崩的結(jié)果。
圖7 混合關(guān)聯(lián)情形下的級聯(lián)效應(yīng)
圖8 雪崩規(guī)模度量的沙盤模型
4.2 開源社區(qū)雪崩規(guī)模的度量
按照本文提出的雪崩規(guī)模度量方法,文章對混合關(guān)聯(lián)模式下的雪崩規(guī)模進(jìn)行分析。當(dāng)某個項目失敗后,考察它的混合關(guān)聯(lián)項目,如果關(guān)聯(lián)項目也為失敗狀態(tài),就認(rèn)定他們之間存在傳遞關(guān)系,即它們處于同一個雪崩過程。
基于混合關(guān)聯(lián)網(wǎng)絡(luò),本文對收集的52 276個失敗項目進(jìn)行了分析處理。結(jié)果發(fā)現(xiàn),最大的雪崩規(guī)模為6 477,此次雪崩牽涉到的項目占整個項目數(shù)量的12.39%;規(guī)模為1的雪崩次數(shù)最多,達(dá)到了28 364次。從總體上看,雪崩規(guī)模的分布極不平均。圖9顯示,除最大規(guī)模的雪崩之外,其他雪崩的規(guī)模分布在雙對數(shù)坐標(biāo)軸上呈現(xiàn)為一條直線。
以上分析結(jié)果中,有一個問題需要特別指出。從圖9可以明顯看出,最大的雪崩規(guī)模6 477遠(yuǎn)遠(yuǎn)偏離了規(guī)模分布曲線。事實上,通過直觀的判斷也可以發(fā)現(xiàn),一次雪崩的規(guī)模達(dá)到6 477是不符合客觀實際的。那么是什么原因造成了這種錯誤的出現(xiàn)呢?
本文依然希望可以通過分析沙堆實驗來找到答案。傳統(tǒng)的沙堆實驗進(jìn)行的是縱向數(shù)據(jù)分析,每一次雪崩過程被單獨剝離完整記錄[20]?,F(xiàn)在假如只能通過快照記錄下相隔時點上的雪崩過程,情況就會有所不同。在每個時點上,人們所能觀察到的都是歷史數(shù)據(jù),第n次雪崩和第n+1次雪崩的結(jié)果可能會在同一個區(qū)域發(fā)生重疊,這樣一來觀測數(shù)據(jù)實際上就是多次雪崩過程的總和,從而使得觀測數(shù)據(jù)所反映的雪崩規(guī)模遠(yuǎn)大于真實情形。解決這個問題需要引入時間控制變量,明顯地,一次雪崩過程在相鄰沙粒之間的傳遞必然是在較短時間內(nèi)完成的。如果能夠?qū)ι扯褜嶒炛忻看窝┍肋^程的傳遞時間做出合適的限定,那么對快照這種橫向數(shù)據(jù)進(jìn)行分析,依然可以還原出沙堆雪崩過程的真實情況。
這里對于開源社區(qū)的分析,同樣是采用增加時間限定的方式,對真實的項目雪崩傳遞過程進(jìn)行還原。具體地,選擇何種時間尺度作為限定標(biāo)準(zhǔn),必須充分考慮實際情況。時間過長將會增加噪聲,過短則會將真實的雪崩級聯(lián)過程中斷。因此,在確立限定時長標(biāo)準(zhǔn)的時候,就應(yīng)該盡可能短一些,以有效剔除噪聲。具體地,時長標(biāo)準(zhǔn)只要能夠涵蓋一次雪崩傳遞過程即可。按照這個要求,本文以項目更新周期為時長標(biāo)準(zhǔn)。
本文按照項目排名進(jìn)行了分層隨機抽樣,抽取了40個項目,其中排名在0~1 000之間的項目12項,1 000~10 000之間的項目11項,10 000~100 000之間的項目11項,排名在200 000以后的項目6項。針對隨機抽取的項目,考察了它們的版本控制系統(tǒng)(CVS或者SVN)中有關(guān)文件更新的統(tǒng)計信息——“Total Files Updated”。從樣本數(shù)據(jù)看,絕大多數(shù)項目的更新周期都比較短,在兩個月以內(nèi)有更新的項目占比達(dá)到了81.5%,最長的周期為5個月。故此本文選取6個月(180天)作為限定時長。
增加了時間限定之后,重新對項目進(jìn)行了分析處理。此時,最大的雪崩規(guī)模為18,規(guī)模為1的雪崩次數(shù)則達(dá)到了42 941,占比為82.1%??傮w上,雪崩規(guī)模的分布情況依然滿足冪律(見圖10)。
4.3 雪崩動力模型有效性檢驗
項目雪崩通過合作關(guān)聯(lián)網(wǎng)絡(luò)和技術(shù)關(guān)聯(lián)網(wǎng)絡(luò)傳遞,從而發(fā)生級聯(lián)效應(yīng),只是一種理論分析和假設(shè),它是否與實際相符還需要進(jìn)行有效性檢驗。
如果項目關(guān)聯(lián)關(guān)系確實會引發(fā)雪崩的傳遞,那么真實的項目雪崩規(guī)模相對于隨機崩塌導(dǎo)致的雪崩規(guī)模而言,必然會表現(xiàn)出更強的關(guān)聯(lián)性特征?;谶@樣的假設(shè),本文引入與真實崩塌規(guī)模相同的隨機崩塌事件。本文從152 402個樣本數(shù)據(jù)(項目)中隨機選取52 276個,作為崩塌(失敗)項目。基于混合關(guān)聯(lián)網(wǎng)絡(luò),考察這些隨機選取項目之間存在的關(guān)聯(lián),并作為雪崩規(guī)模的衡量。如果隨機崩塌對應(yīng)的雪崩規(guī)模大于或者接近等于真實發(fā)生的崩塌規(guī)模,那么就意味著本文提出的關(guān)聯(lián)模式并不是引起雪崩傳遞的內(nèi)在機制,即無法通過有效性檢驗。相反,如果隨機崩塌對應(yīng)的雪崩規(guī)模顯著小于真實發(fā)生的崩塌規(guī)模,那么就說明該關(guān)聯(lián)模式確實是引起雪崩傳遞的內(nèi)在機制,有效性檢驗成立。
圖9 混合關(guān)聯(lián)模式下雪崩規(guī)模分布
圖10 混合關(guān)聯(lián)模式下引入時間限定后的雪崩規(guī)模分布
最大雪崩最小雪崩最小雪崩占比平均規(guī)模標(biāo)準(zhǔn)差Real18182.141.120.472Rand16198.001.020.170Rand26197.801.020.175Rand36197.801.020.170Rand44197.901.020.162Rand55197.801.020.172Rand65197.701.020.173Rand74197.701.030.173Rand87197.901.020.172Rand95198.001.020.163Rand106197.801.020.179
本文用計算機仿真程序進(jìn)行了10次隨機模擬,結(jié)果如表2所示。
數(shù)據(jù)顯示,混合關(guān)聯(lián)模式下實證所得的雪崩最大規(guī)模為18,10次仿真中雪崩的最大規(guī)模為7,平均最大規(guī)模為5.4,兩者差異明顯。從雪崩的最小規(guī)模角度看,實證結(jié)果中規(guī)模為1的雪崩占比為82.1%,而隨機仿真對應(yīng)的規(guī)模為1的雪崩占比則高達(dá)97.8%。顯然,隨機仿真的結(jié)果與實證結(jié)果差異較為顯著,因此本文提出的基于混合關(guān)聯(lián)模式的雪崩傳播假設(shè)能夠通過有效性檢驗。
5.1 實證研究方案設(shè)計
有效性檢驗的結(jié)果表明,項目混合關(guān)聯(lián)關(guān)系確實是影響雪崩傳播的重要模式,因此可以基于混合關(guān)聯(lián)網(wǎng)絡(luò)對開源社區(qū)上的雪崩動力行為進(jìn)行實證研究。
對開源社區(qū)上的項目雪崩過程進(jìn)行分析研究,除了要去除干擾數(shù)據(jù)分析的雜聲之外,還要有科學(xué)的方法對結(jié)果進(jìn)行準(zhǔn)確衡量。本文在之前部分已經(jīng)粗略介紹了雪崩過程相關(guān)數(shù)據(jù)的收集整理方法。由于真實環(huán)境下,人們能夠收集的數(shù)據(jù)是一些截面數(shù)據(jù),它們只是真實情況在不同時點上的快照。要對真實雪崩過程進(jìn)行還原,必須對相關(guān)問題進(jìn)行深入理解。
在沙堆實驗中,可以收集到每次雪崩的完整過程,這些獨立的雪崩過程都有一些共同特點[8,20]:1)崩塌傳遞的時空相關(guān)性。這就是說,每次的沙粒崩塌都是在相鄰區(qū)域之間、在相隔時間之內(nèi)傳遞。空間的相關(guān)性是本文選取混合關(guān)聯(lián)模式進(jìn)行雪崩動力模型研究的基礎(chǔ),時間相關(guān)性是本文選取“時間限定”約束有效過濾噪聲的理論基石。2)崩塌傳遞過程的完整性。每一次雪崩過程都有開始、持續(xù)、終結(jié)等幾個完整的階段,這是本文進(jìn)行定量研究的衡量尺度。雪崩的規(guī)模事實上就是從第一個移動的沙粒開始,直至整個崩塌傳遞完成所涉及到的所有沙粒。在開源社區(qū)的雪崩過程分析中,每一次雪崩都由一個失敗項目開始,到最后一個關(guān)聯(lián)項目失敗結(jié)束。在對截面數(shù)據(jù)進(jìn)行分析時,需要注意:截止到研究時點所形成的雪崩規(guī)模未必是真實的雪崩規(guī)模,因為在下個時點雪崩過程可能還會繼續(xù),雪崩規(guī)??赡芤矔S之發(fā)生改變。這就要求我們在對數(shù)據(jù)進(jìn)行處理的時候,需要剔除掉這些尚未終止的雪崩過程。
本文在對Sourceforge.net社區(qū)上的數(shù)據(jù)進(jìn)行實證研究時,以半年(180天)為時間間隔,連續(xù)提取相應(yīng)雪崩過程的截面數(shù)據(jù)。接下來,對這些不同時點上的截面數(shù)據(jù)進(jìn)行比較,進(jìn)而確定有效數(shù)據(jù)。具體的方法是:比較某時點與上個時點的雪崩過程快照數(shù)據(jù),如果某次雪崩結(jié)果在兩個時點上一致,則意味著該次雪崩已經(jīng)終止,或者說該數(shù)據(jù)反映了一個完整的雪崩結(jié)果。
5.2 實證研究結(jié)果分析
表3 雪崩規(guī)模的擬合結(jié)果
通過實證研究發(fā)現(xiàn),開源社區(qū)的雪崩規(guī)模分布具有兩個特點:
1)規(guī)模的分布不均勻。從實證結(jié)果看,雪崩規(guī)模呈現(xiàn)有偏(右偏)分布,其Skewness值為6.48,Kurtosis值為82.37。雪崩規(guī)模的分布接近于冪次函數(shù),結(jié)果如表3所示。
2)社區(qū)演化過程較為穩(wěn)定。為了研究社區(qū)演化的動態(tài)變化規(guī)律,本文以1年為時間單位,研究了雪崩規(guī)模分布的變化情況。由此得到了8組有關(guān)雪崩規(guī)模分布的截面數(shù)據(jù)(見表4)。
表4 雪崩規(guī)模分布的截面數(shù)據(jù)
表5是8組截面數(shù)據(jù)分析的結(jié)果。從表中可以看出,最大雪崩規(guī)模持續(xù)、穩(wěn)定地增長,冪指數(shù)大致上穩(wěn)定在-3.9上下。
表5 雪崩規(guī)模分布的時間演化
5.3 實證研究的發(fā)現(xiàn)與結(jié)論
實證研究的結(jié)果表明,社區(qū)上項目之間基于混合關(guān)聯(lián)關(guān)系,通過級聯(lián)效應(yīng)使得雪崩規(guī)模呈現(xiàn)出冪律分布。但是,最大雪崩規(guī)模僅為18,相對于項目總數(shù)152 402來說是一個非常小的數(shù)字,這意味著社區(qū)系統(tǒng)還遠(yuǎn)未達(dá)到臨界狀態(tài)。1)社區(qū)尚未達(dá)到臨界狀態(tài)。判斷一個SDIDT系統(tǒng)是否達(dá)到自組織臨界狀態(tài),需要看臨界性參數(shù)的數(shù)值[21]。在沙堆系統(tǒng)中,這樣的臨界性參數(shù)是沙堆的斜率,當(dāng)斜率達(dá)到某個數(shù)值時,沙堆系統(tǒng)進(jìn)入自組織臨界狀態(tài)[8]。此時,系統(tǒng)將具有各種尺度的雪崩規(guī)模。鑒于大規(guī)模雪崩與臨界態(tài)伴生的事實,本文主要通過研究雪崩規(guī)模來近似地判斷系統(tǒng)的演化狀態(tài)。前文的實證研究數(shù)據(jù)顯示,在Sourceforge.net社區(qū)上,當(dāng)前發(fā)生的最大雪崩規(guī)模僅為18,僅相當(dāng)于項目總數(shù)152 402的萬分之一,根本算不上是大規(guī)模雪崩。另一方面,從最小雪崩規(guī)模1到最大雪崩規(guī)模18,它們基本上處于一個尺度之下,因此也談不上無尺度問題。據(jù)此,本文認(rèn)為,當(dāng)前Sourceforge.net社區(qū)尚未達(dá)到臨界狀態(tài)。
2)社區(qū)將趨向于臨界態(tài),并且正處于這樣的成長階段。系統(tǒng)在向臨界態(tài)發(fā)展的過程中,存在著不同的階段。借用生命周期的概念,可以將這些階段分為創(chuàng)建期、成長期、成熟期和衰退期[22],這4個階段的劃分可以依據(jù)臨界參數(shù)或者最大雪崩的規(guī)模。在系統(tǒng)的創(chuàng)建期,臨界參數(shù)增長很快,但最大雪崩的規(guī)模相對于總體而言非常之小。隨著系統(tǒng)進(jìn)入成長期,臨界參數(shù)的增長速度放緩,最大雪崩的規(guī)模逐漸變大。到了成熟期以后,臨界參數(shù)穩(wěn)定到臨界值附近,系統(tǒng)進(jìn)入臨界狀態(tài),此時系統(tǒng)中將存在各種大小的雪崩規(guī)模。這種臨界狀態(tài)將會持續(xù)很長一段時間,直到大規(guī)模雪崩的出現(xiàn)足以撼動系統(tǒng)的根基為止,此時系統(tǒng)進(jìn)入了衰退期階段。筆者通過模型仿真研究,發(fā)現(xiàn)社區(qū)可以自發(fā)地向臨界狀態(tài)演化,而實證研究的結(jié)果印證了社區(qū)當(dāng)前正處于創(chuàng)建期到成長期的過渡階段。
對于一個可以自發(fā)達(dá)到臨界狀態(tài)的系統(tǒng)而言,大事件和小事件都是由相同的因素引起的,并沒有特別的“大”因素。如果系統(tǒng)處于臨界狀態(tài),則任何規(guī)模的雪崩都會發(fā)生。這說明大規(guī)模雪崩的出現(xiàn)“純屬偶然”,并無其他的特殊因素,因此是不可預(yù)測的。模擬研究表明,對于這樣的系統(tǒng)如果采取強制的干預(yù)措施,就會適得其反[23]。開源社區(qū)作為一個典型的自組織演化系統(tǒng),其產(chǎn)生和發(fā)展正是源于各種各樣的因素,大的、小的力量共同匯集,推動社區(qū)不斷走向成熟,直至達(dá)到臨界狀態(tài),從而使得社區(qū)展現(xiàn)出豐富多彩的多樣性特征和充滿激情的創(chuàng)造活力。對于這樣的系統(tǒng),人為干涉不遜于拔苗助長,對社區(qū)成長反而有害無益。
[1]Michlmayr M. Quality Improvement in volunteer free and open source software projects: exploring the impact of release management [D]. Cambridge: University of Cambridge, 2007
[2]Carreras B A, Newman D E, Dobson I, et al. Initial evidence for self-organized criticality in electric power system blackouts[C]//Proceedings of the 33rd Annual Hawaii International Conference on System Sciences IEEE. Hawaii, 2000: 6.
[3]Sachtjen M L, Carreras B A, Lynch V E. Disturbances in a power transmission system[J]. Phys Rev E, 2000,61(5):4877.
[4]Motter A E, Lai Y C. Cascade-based attacks on complex networks[J]. Phys Rev E, 2002, 66(6): 065102(R).
[5]Crucitti P, Latora V, Marchiori M. Model for cascading failures in complex networks[J]. Phys Rev E, 2004, 69(4): 045104 (R).
[6]Kinney R, Crucitti P, Albert R, et al. Modeling cascading failures in the north american power grid[J]. The European Physical Journal B-Condensed Matter and Complex Systems, 2005, 46(1): 101-107.
[7]Carreras B A, Lynch V E, Dobson I, et al. Critical points and transitions in an electric power transmission model for cascading failure blackouts[J]. Chaos, 2002, 12(4): 985-994.
[8]Bak P,Tang C,Wiesenfeld K. Self-organized criticality [J]. Phys Rev A, 1988, 38(1):364:374.
[9]Bak P,Chen K,Tang C. A forest-fire model and some thoughts on turbulence[J]. Physics Letters A,1990,147(5-6):297-300.
[10] Olami Z,Feder H J S,Christensen K. Self-organized criticality in a continuous, nonconservative cellular automaton modeling earthquakes[J]. Physical Review Letters,1992,68(8):1244-1247.
[11] Bak P,Sneppen K. Punctuated equilibrium and criticality in a simple model of evolution[J]. Physical Review Letters,71(24): 4083-4086.
[12] Bak P, Chen K, Scheinkman J A, et al. Aggregate fluctuations from independent sectoral shocks: self-organized criticality in a model of production and inventory dynamics[J]. Ricerche Economiche,1993,47(1):3-30.
[13] Jensen C, Scacchi W. Process modeling across the web information infrastructure[J]. Software Process-Improvement and Practice, 2005, 10(3):255-272.
[14] Scacchi W. Free/open source software development: recent research results and methods[J]. Advances in Computers, 2007, 69: 243-295.
[15] Katsamakas E, Georgantzas N C. Open source software development: a systems dynamics model[DB/OL].[2014-01-02].http://www.systerndynamics. org/conferences/2007/proceed/proceed/papers/KATSA472.pdf.
[16] Pan X D, Feng J Y, Yang J M. Research on the evolution of corporate culture based on naming game [C]//2008 ISECS International Colloquium on Computing, Communication, Control, and Management. Guangzhou, 2008, 1: 659-663.
[17] 潘向東,楊建梅. Naming Game 模型的研究進(jìn)展及應(yīng)用[J]. 復(fù)雜系統(tǒng)與復(fù)雜性科學(xué),2009,6(2):87-92. Pan Xiangdong,Yang Jianmei. A survey of the development and application of naming game model[J]. Complex Systems and Complexity Science, 2009, 6(2):87-92.
[18] Xu J,Christley S,Madey G. The open source software community structure [DB/OL].[2014-01-02].http://researchgate.net/publication/237940105_The_Open_Source_Software_Community_Structure.
[19] González-Barahona J M, López L, Robles G. Community structure of modules in the apache project[C]//Proceedings of the 4th Workshop on Open Source Software Engineering. 26th International Conference on Software Engineering. Edinburgh, Scotland, UK, 2004.
[20] Held G A,Solina D H,Solina H, et al. Experimental study of critical-mass fluctuations in an evolving sandpile [J].Physical Review Letters, 1990, 65(9):1120-1123.
[21] Jensen H J. Self-Organized Criticality: Emergent Complex Behavior in Physical and Biological Systems [M]. Cambridge: Cambridge University Press, 1998.
[22] Lattemann C, Stieglitz S. Framework for governance in open source communities[C]//Proceedings of the 38th Annual Hawaii International Conference on System Sciences. IEEE, Hawaii, 2005: 192a.
[23] Malamud B D,Morein G,Turcotte D L. Forest fires: an example of self-organized critical behavior [J]. Science, 1998, 281(5384):1840-1842.
(責(zé)任編輯 李進(jìn))
Empirical Study of Avalanche Dynamics on Open Source Community: the case of Sourceforge.net
PAN Xiangdong1,2,3, YANG Jianmei2, BAI Hua2
(1.Postdoctoral Programme of China Industrial Economic Security Research Center of Beijing Jiaotong University, Beijing 100044, China; 2.School of Business Administration of South China Universityof Technology, Guangzhou 510641, China; 3.Hebi Development and Reform Commission, Hebi 45030, China)
To verify avalanche dynamics of open source community, the paper offers an empirical study on SourceForge.net, which is the largest open source community in the world. It researches risk transfer between projects and the cascading phenomenon, finds there are two kinds of mechanisms, through which to transfer risk and trigger an avalanche, they include technical co-relation and cooperative co-relation. We measure the distribution of the avalanche size on the Sourceforge.net. The results show that the avalanche sizes follow power law distributions and the maximum size is only 18. However, based on the analysis of the dynamic evolution results of the cross section data, we find that the maximum massive avalanche size continues to get bigger, which means that Sourceforge.net is evolving into the growth stage.
open source community; avalanche; cascade; Sourceforge. net
1672-3813(2015)04-0061-10;
10.13306/j.1672-3813.2015.04.009
2014-02-08;
2014-09-18
國家自然科學(xué)基金項目(71273093)
潘向東(1976-),男,河南焦作人,博士,主要研究方向為產(chǎn)業(yè)經(jīng)濟與復(fù)雜系統(tǒng)理論。
楊建梅(1946-),女,陜西富平人,博士,主要研究方向為復(fù)雜系統(tǒng)理論與產(chǎn)業(yè)經(jīng)濟。
N945.25
A