丁沂
摘? ?要:文章討論了復雜的網(wǎng)絡概念以及利用開源軟件(OSS)數(shù)據(jù)構建的社會網(wǎng)絡,對Berlios,GNU和SourceForge這3種不同開放源碼軟件的社會網(wǎng)絡進行了初探。很多研究者已經(jīng)在此類網(wǎng)絡快照或合并視圖上進行了大量研究,尤其是SourceForge,歸結于其社區(qū)規(guī)模的龐大。SourceForge網(wǎng)絡因具有在不同時間點的度分布、連通性、中心性和無標度等特性,被進行過大量的研究。然而,很少有人研究網(wǎng)絡生長,即如何建立網(wǎng)絡,尤其是指標是如何隨時間演變的。
關鍵詞:復雜網(wǎng)絡;開發(fā)者網(wǎng)絡;項目網(wǎng)絡;網(wǎng)絡分析
1? ? CVS數(shù)據(jù)
開源軟件(Open Source Software,OSS)網(wǎng)絡定義:開發(fā)者和項目是網(wǎng)絡中的節(jié)點。如果一個開發(fā)者在一個項目上工作,那么在開發(fā)者和項目之間就存在一條邊,被分成開發(fā)者和項目兩部分。同性質(zhì)節(jié)點之間是沒有邊的,是一個二分網(wǎng)絡,可以輕易地轉換為開發(fā)者網(wǎng)絡或項目網(wǎng)絡??梢詮拈_源社區(qū)的開發(fā)源代碼配置管理工具(Concurrent Version System,CVS)集中提取開發(fā)者、小組和時間戳等相關信息;時間戳是開發(fā)者最早和最新提交到特定項目的時間。有了這些信息,構建開發(fā)者網(wǎng)絡時,雖然兩個開發(fā)者在同一個項目上工作,但只有在同一時間且同一項目上工作時才能建立連接,即其時間窗口重疊。
2? ? 相關研究
Jin等[1]分析了SourceForge社區(qū)中關于開發(fā)者和項目網(wǎng)絡的許多方面,包括SourceForge開發(fā)者網(wǎng)絡隨時間推移演化的情況,并驗證了網(wǎng)絡的無標度特性。還使用了模塊化等指標研究SourceForge開發(fā)者網(wǎng)絡的社區(qū)結構,從而找到了最大的開發(fā)者社區(qū)以及其中的開發(fā)者。Gao基于長達一年半的開源社區(qū)數(shù)據(jù),檢驗了SourceForge開發(fā)者網(wǎng)絡的直徑、聚類系數(shù)、中心度等指標[2]。劉建強等[3]用社會網(wǎng)絡分析方法分析CVS數(shù)據(jù),利用Apache,Gnome和KDE不同歷史時期的數(shù)據(jù),計算了網(wǎng)絡的各種度量,如度分布、模塊的聚類系數(shù),加權聚類系數(shù)和各模塊的連接度等指標,并發(fā)現(xiàn)了項目模塊網(wǎng)絡和開發(fā)者網(wǎng)絡表現(xiàn)出小世界效應。
3? ? 網(wǎng)絡分析
3.1? SourceForge開發(fā)者網(wǎng)絡
在SourceForge上,84 636個用戶至少有過一次CVS數(shù)據(jù)提交行為。其中,58 647個開發(fā)者至少連接到一個其他開發(fā)者(這些開發(fā)者沒有一個人單獨進行一個項目的開發(fā)工作),占總開發(fā)者人數(shù)的69.29%。彼此連接的開發(fā)者,最大的連接社團包含21 372個用戶,占總人數(shù)的36.44%,其中,30.23%的開發(fā)者至少有過一次有效的提交行為。圖1形象地展示了SourceForge開發(fā)者網(wǎng)絡隨機抽樣的結果,其開發(fā)者網(wǎng)絡是從利用開發(fā)者—項目關系2/3的數(shù)據(jù)提取出來構建的。該網(wǎng)絡中有40 206個節(jié)點,其中最大的連接組件包含5 132個節(jié)點,其中有許多開發(fā)者社區(qū),但沒有關鍵的核心節(jié)點,并且存在很多開發(fā)者的“環(huán)”,朝著網(wǎng)絡的外圍發(fā)展?!碍h(huán)”中的開發(fā)者在網(wǎng)絡中起到非常重要的作用,如果沒有,網(wǎng)絡可能就會斷開。
3.2? GNU開發(fā)者和項目網(wǎng)絡
在革奴計劃(GNU is Not Unix,GNU)開發(fā)者網(wǎng)絡中,3 986個開發(fā)者至少提交過一個CVS,其中3 122個開發(fā)者至少跟一個其他開發(fā)者相連接,占78.32%。在這些連接中,最大的連接組件包含1 821個開發(fā)者,占58.32%,或者說45.62%的開發(fā)者至少有過一次提交,該網(wǎng)絡可視化的結果如圖2所示,其中,項目是由唯一一個被排除在外的開發(fā)者開發(fā)的數(shù)據(jù)。另外,在GNU的項目網(wǎng)絡中,項目之間彼此連接,并呈現(xiàn)出一個較大的集群,主要原因是大多數(shù)GNU項目的生存時間都很長,不斷有新的項目托管到GNU上,并且很多開發(fā)者都把畢生的精力投入到GNU的多個開發(fā)項目上。
3.3? Berlios開發(fā)者和項目網(wǎng)絡
在Berlios項目中,至少1 612個開發(fā)者有過一個CVS提交記錄,其中,有1 125個用戶至少和一個其他開發(fā)者相連(只有一個開發(fā)者的項目排除在外),占70.35%。其中,最大的連接組件僅包含100個用戶,占8.98%,即6.32%開發(fā)者至少提交過一次。Berlios項目網(wǎng)絡基本上沒有連接,不過網(wǎng)絡里面有一些有趣的社區(qū)。
4? ? 重復網(wǎng)絡連接
在SourceForge開發(fā)者網(wǎng)絡中,有386 690條開發(fā)者之間的連邊,其中10 491條是重復的,占2.65%。然而,在GNU中,47 656個開發(fā)者節(jié)點對中,有4 762對是重復的,接近10%。對于Berlios,3 412個開發(fā)者關系中有96個是重復的,占2.51%,與SourceForge相當。開發(fā)者網(wǎng)絡中重復網(wǎng)絡連接現(xiàn)象還沒有得到廣泛的研究,據(jù)推測,Savannah富有成效的開發(fā)者關系表明其中的項目很可能是成功的,也可能表明薩凡納的典型項目比SourceForge或Berlios的典型項目更成功。重復的網(wǎng)絡連接現(xiàn)象暗含著開發(fā)者之間的合作更加緊密,相應的開發(fā)平臺和項目更容易獲得成功,然而事實并非如此。
5? ? 社區(qū)
Berlios并不是一個流行的全球化開發(fā)者社區(qū)。盡管許多開發(fā)者與其他人開發(fā)者有聯(lián)系,但開發(fā)者網(wǎng)絡并沒有呈現(xiàn)出小世界效應。SourceForge是一個很大的開發(fā)者社區(qū),在連接方面比Berlios更好。在SourceForge中,大約有1/4的開發(fā)者在最大的開發(fā)社區(qū)中,另外,在GNU中有將近一半的開發(fā)者在最大的開發(fā)者社區(qū)中。
6? ? 結語
本文給出了3個不同的OSS平臺上項目和開發(fā)者網(wǎng)絡的初步統(tǒng)計分析,分析、揭示了網(wǎng)絡演化的趨勢,并為OSS平臺上的一些現(xiàn)象提供了重要的見解。軟件版本控制日志為建立和研究網(wǎng)絡提供了一個很好的資源。
[參考文獻]
[1]JIN X,GREGORY M.Exploration of the open source software community[D].Notre Dame:University of Notre Dame,2004.
[2]任卓明,邵鳳,劉建國,等.基于度與集聚系數(shù)的網(wǎng)絡節(jié)點重要性度量方法研究[J].物理學報,2013(12):56-58.
[3]劉建強,蘭巨龍,鄔江興.基于節(jié)點疏遠方法的網(wǎng)絡節(jié)點重要性評價[J].計算機工程與科學,2011(3):13-17.