人們經常說開源沒有創新
而是模仿
這肯定是專有軟件行業希望你相信的
看一看目前企業中使用的一些最著名的開源項目中的活動
讓你不由得不同意
例如盡管開源數據庫令人難以置信地廣泛用於各類關鍵任務應用但不管是MySQL還是PostgreSQL實際上沒有做任何IBMMicrosoftOracle和Sybase多年來沒做過的事情同樣生產力套件是一個給人留下深刻印象的社區驅動的開發的例子但它惟一的真正目的是創建免費的基於標准的Microsoft Office的克隆甚至Linux自己也是作為免費軟件改寫Unix的嘗試
但是所有這些都不能否定開源開辟了一條屬於自己的新路而非只是跟在別人後面的事實Apache Web服務器就是最好的例子Apache自年誕生國家超級計算應用中心的httpd後就一直是用戶的首選Web服務器據網站與服務器監測機構Netcraft說目前%的Internet網站使用Apache而使用Microsoft IIS(Internet信息服務器)的網站只有%
然而正如Microsoft的Internet Explorer所證明的流行程度並不是惟一衡量性能的指標Apache常常是安裝在大多數Linux服務器上的缺省Web服務器而它的成功並不只是由於人們熟悉它或缺少競爭對手更確切地說它具有穩定性高性能一流的安全紀錄以及使它具有比商用競爭對手更多功能的各種特性與擴展程序Apache實際上開辟了Web服務器軟件市場並處於領先地位年後IIS無疑將以這種或那種形式存在於市場上但Apache仍將是領先產品進一步拓展Web服務器的功能
這類協作創新的例子在IT領域中比比皆是在軟件業中無數的開發商個人和公司在試驗開源方式理由之一是因為社區驅動的開發使軟件產品能夠有機地發展正如Eric S Raymond在其開創性的著作《大教堂與集市》中所說的:每一個軟件傑作都開始於滿足某個開發人員的個人需要當一群開發員以開源方式協作時每一位開發員都有著獨特的個人需要其結果是軟件不斷擴展填補專有產品沒有涉及的這些功能領域
開源賦予Java生命
開源社區開發的工具鞏固了Java在開發人員市場中的領先地位
毫無疑問開源使Java得到了巨大的實惠Java語言和平台賴以發展的JCP(Java社區進程)似乎在以蝸牛的速度前進委員會的審查和批准是個緩慢且需深思熟慮的過程Java畢竟是領先企業應用平台因此它應當緩慢演進哪怕需求十分緊迫為解決一些問題而造成另一些問題從來不是一種好的解決辦法
然而與其相對的開源社區卻一直在飛速前進推出大量的重要創新目前企業Java基本工具全部是開源產品:Ant(用於開發應用程序)Hibernate(用於將數據保存在硬盤上)JUnit(用於設備測試)和Maven(用於繼續的集成)更不用說得到高度重視的Eclipse和NetBeans開發環境和PMD源代碼驗證程序了
Java開發人員還從幾種開源框架中受益如JSF(JavaServer Faces)Spring和Struts再有就是眾多的容器(container):Apache TomcatGeronimoJettyJonas和Resin更不要說很多用於嵌入式應用的小容器了開源是Java世界想像力和生產力的巨大源泉
在這兩股河流——JCP與開源——之間站著大企業Java技術提供商:BEAIBM和Sun Microsystems他們都是一只腳站在開源工具河流中另一只腳站在非開源工具河流中雖然很多IBM工具是專有的但它一直是Java和開源社區的主要貢獻者BEA最近非常積極地實施其混合戰略積極支持開源產品此外BEA還向多個開源項目捐獻代碼和程序
Sun有點特立獨行狂熱的開源支持者一直逼迫Sun開放Java源代碼希望加速這種平台中的創新但Sun卻行動緩慢這樣做是有一定道理的:開放Java代碼可能會將Java分裂為不同的版本從而減少Java引以為榮的可移植性但開源社區一直尖銳地攻擊Sun的這種立場
鑒於Sun對開源的長期貢獻這就將它置於一種奇怪的境地Sun仍是惟一一家開放其操作系統和全部生產力套件源代碼的公司實際上它開放了很多Java技術的源代碼因此Sun在月份舉行的LinuxWorld上透露——也許有點勉強——除推出一個供開發人員跟蹤其進展的社區網站外它打算開放Java庫和Java虛擬機
從長期看向開源發展的這股強大的力量能使Java受益嗎?除了其緩慢的開發進展外Java的一部分成功歸功於Sun所起到的管家作用通過開放Java源代碼剝奪Sun的這一角色可能導致Java平台的大大加強也可能最終傷害它
Linux讓設備受益
嵌入式系統開發商從開源操作系統中受益
Linux的傳統根據地在於服務器和工作站而它正在這之外的非常小的設備上取得成功對於嵌入式系統開發人員來說Linux優於專有操作系統的優勢除了低成本外還在於其靈活性和開放性
消費電子產品市場對新技術有著永不滿足的需求但是使用來自Microsoft和Symbian等公司的專有嵌入式平台的開發人員必須受限於某一廠商提供的設備驅動程序和對最新硬件的支持然而他們的開源社區同行常常在技術剛一推出時就開始修補它們他們開發的代碼也許很糙但開發過程很快這反過來可以使他們更快地制造出原型產品更早地上市以取得市場先機
Linux還使開發復雜的嵌入式應用變得更容易用於嵌入式設備的傳統RTOS(實時操作系統)是在單處理器線程中運行單個任務的單用途平台嵌入式Linux類似於它的重量級表兄是設計用於運行多個應用的通用操作系統這種通用性幫助開發人員滿足客戶日益復雜的基礎需求此外沒有復雜的專有許可條款為開發人員提供了定制各個層次應用的自由他們可以選擇他們需要的部件而忽視另一些
廠商之間的競爭對於顧客肯定是件好事在嵌入式Linux市場上MontaVista和Wind River等頂級廠商不僅與專有操作系統廠商競爭而且還相互競爭此外一些設備制造商還選擇單干獨立於操作系統廠商生產自己風格的嵌入式Linux然而Linux是開源操作系統每一種變種都成為由開發人員客戶和合作伙伴構成的大生態系統的一部分都在為這個更大的整體做貢獻
這種競爭式協作仍給其他公司留出了利用額外的工具擴大Linux基礎的空間例如Trolltech提供的Qtopia:一種迅速開發嵌入式Linux應用和用戶界面的全面的環境核心Qtopia技術可依據Gnu GPL(通用公共許可證)使用從而為開發人員在Qtopia代碼上帶來了在Linux內核上所享受到的同樣的可見性同樣Nokia發布了自己的開源應用平台Maemo該平台可以在Nokia Internet Tablet等嵌入式設備上找到
這些工具為開發人員帶來了額外的優勢:熟悉性Qtopia是基於Trolltech歷史悠久的桌面Linux系統Qt工具包的;Maemo基於來自Gnome項目的類似技術其結果不同於專有操作系統應用開發人員可以利用自己已有的技能為嵌入式操作系統開發軟件
這些優勢意味著陣營越來越龐大的Linux驅動的設備從Sharp PDA到TiVo機頂盒從Linksys無線路由器到Motorola手機越來越多的公司將寶押在Linux上把它作為在快速發展的高度競爭的設備市場中取得成功的跳板
開源社區推動腳本采用
現代腳本語言在開放上取得成功
腳本語言有時叫做動態語言變得非常流行其中一個原因是它們能讓開發人員利用比較小的代碼完成很多工作這種高相對價值源於將更多的工作交給編譯器和運行時間環境(如按變量值得到變量類型)去做的新方法——除了完成經常執行活動的特殊捷徑外
包括PerlPHP和Python在內的腳本語言還有另一個共同點:它們幾乎統統都是開源語言在很多地方開源與非開源之間的不同之處可能並不重要但開源似乎在腳本語言中至關重要奇怪的是這點並不是由於開源在修補漏洞中的靈活性的原因而是由於其創建社區的能力
比較兩種幾乎同時問世的腳本語言Ruby和NetRexx的命運是看到開源重要性的生動例子NetRexx是由IBM設計部分基於其成功的大型機腳本工具Rexx的它以解釋方式運行也可以編譯為Java字節代碼作為一種語言NetRexx具有很高的生產力並易於學習掌握提供大量的優雅的結構由於它可編譯為Java字節代碼從NetRexx中可以訪問所有的Java庫此外它享受著Java虛擬機的優秀性能
另一方面Ruby是純解釋語言它沒有虛擬機因此運行速度慢這種語言有它自己的優點但主要優勢來自采用部分起源於Perl縮略語法不直觀的句法成分NetRexx與Ruby還有另一個重要的共同之處:它們都是免費提供的
那麼這兩種語言中哪一個更成功呢?是快速典雅的NetRexx還是不直觀速度慢的Ruby呢?事實可能與你所料的正相反今天的Ruby躊躇滿志而NetRexx卻瀕臨死亡
關鍵原因在於Ruby是開源而NetRexx不是結果是Ruby能夠建立一個活躍的開發員社區——特別在它的誕生地日本它已經流行了年Ruby在David Heinemeier Hansson編寫Web應用框架Ruby on Rails之前一直在積累發展動力Rails是Ruby的殺手應用它是設計典雅的典范保證了Ruby發揮持久的作用同時盡管NetRexx有著巨大的價值卻蹒跚而行無人理睬如果IBM開放了NetRexx源代碼腳本技術今天可能是一番完全不同的景象
僅憑開源本身肯定不能保證一種語言取得成功實際上現在有很多沒有成功希望的開源語言盡管開源並不是成功的充分條件但卻是必要條件缺少它就是缺少Microsoft創建社區的資源
大開放意味著更安全
專家們依靠得到源代碼來減少威脅和防止漏洞利用
幾乎每一家安全專用設備廠商都有理由使用開源工具而這與許可證沒有什麼關系其中的絕大多數設備——從垃圾郵件與間諜件過濾器網絡掃描器到入侵檢測與防御系統——不僅建立在像Linux或FreeBSD這樣的開源平台上而且還積極利用其他開源產品來完成任務
在各種平台上最流行的網絡端口掃描器和操作系統特征識別應用是Nmap作為開源工具的Nmap提供一種迅速准確確定任何給定IP地址或子網上的開放端口的方法;它還可以通過分析IP包的構建方式確定設備所使用的操作系統
另一個例子是開源安全漏洞掃描程序NessusNessus可以利用Nmap掃描主機但比Nmap走得更遠:它嘗試在目標系統上觸發潛在的漏洞來驗證系統的完整性可供Nessus使用的插件數量達到了數千種並且隨著發現的漏洞而不斷增加——這要再一次感謝開放源代碼易於使用的事實
廣泛使用的IDS(入侵檢測系統)Snort也很有名它同Nessus一樣作為商用軟件包提供但開源版仍很吃香其他開源工具如OpenSSH和OpenSSL是應用在各個方面的行業標准在幾十種平台上被數千種不同產品所使用
最後還有操作系統層本身雖然沒有一種OS是真正安全的但Windows平台上提供的安全工具由於基礎操作系統詳細記錄的安全問題而令人懷疑基於LinuxFreeBSDNetBSD或OpenBSD的產品則具有更好的安全紀錄(OpenBSD聲稱在年多的時間裡在缺省安裝環境中只發現了一個遠程漏洞)
對於缺少經驗的人來說開源的概念似乎與高度的安全性相悖人們普遍的想法是公布源代碼會讓黑客和病毒編寫者更加容易地利用代碼中的漏洞你只需看一看世界最堅定的專有軟件廠商之一Microsoft就會明白事實正好相反
商業產品可能有一支十幾人組成的QA(質量保證)團隊但大多數重要的開源項目——那些由社區支持的開源項目——實際上擁有由成千上萬人組成的QA團隊其中的很多人對代碼有著深入的了解因為他們一直在為項目貢獻代碼這只會使產品更加安全因為補丁要經過比商業環境多得多的眼睛的審查隱患迅速暴露因此很多安全專業人員認為開源代碼比專有代碼更安全而這種印象最終將滲透到整個行業
Snort入侵檢測
協作開辟多媒體新邊疆
無專利的音視頻技術降低進入門檻刺激創新
人們很容易認為開源與多媒體是相互排斥的對免費桌面Linux版本(如Ubuntu)的常見批評是它們缺少對播放多媒體的支持但是不要責怪這些版本的包裝者們經過很多年時間多媒體周圍包裹上了大量專利這些專利覆蓋播放和編碼的各個方面甚至MP格式也受到與免費軟件許可證要求相沖突的專利的限制
但是獨立的開發人員並沒有忽略多媒體很多開源項目不僅設法繞過已有技術的限制而且還改進它們例如Ogg Vorbis是一種開源有損耗音頻壓縮技術同MP一樣它不保留數據的每一比特而是重現與原始信號聽起來差不多的信號不過Vorbis利用高級心理聲學模型在同樣的壓縮水平上提供比MP更好的音質此外它不存在專利限制完全是免專利費的
在視頻方面只要看看BBC Research贊助的Dirac項目就行了雖然仍處於試驗階段但Dirac采用子波壓縮—— 一種理論上應當比當前方法提供更高質量視頻的高級數字技術BBC擁有Dirac代碼的一些專利但它向任何希望使用它們的人授予永久的免費許可同樣On Technologies將永久的許可證授予其VP壓縮編解碼器這種編解碼器已經成為另一個開源項目Theora的基礎
盡管開源多媒體技術開發進展迅速但采用它們則是另一回事Vorbis是一種具有超群性能的成熟的編解碼器但沒有幾家設備制造商支持它盡管它不需要許可費造成這一局面的問題是內容硬件制造商將支持內容提供商提供的格式而這越來越多地意味著支持DRM(數字版權管理)的格式不幸的是不管是AppleMicrosoftSony還是其他公司專有DRM實際上使技術提供商成為整個多媒體棧的看門人這也是開源能夠解答的一個問題
Sun贊助的Open Media Commons是一次通過整個開源社區參與開發DRM技術的嘗試其核心是Sun想方設法確保不與任何已有DRM專利沖突的開源代碼人們希望一種完全開放的DRM方案將使顧客可以在來自不同廠商的大量互操作的軟件和設備上以認可的方式使用受DRM限制的內容
所有這些項目的共同主題是合作與協作這將加快數字音頻和視頻的采用速度正如它推動技術向前發展那樣未來之路屬於開源專利限制和專有代碼長期以來一直阻礙多媒體發展
避開專有消息技術
開源電子郵件和協作服務器用靈活性滿足未來的需要
開源工具和電子郵件都有著悠久的歷史EximPostfix和Sendmail郵件服務器得到廣泛的應用更不用說從Mozilla Thunderbird到Pine的各種開源郵件客戶程序了但是電子郵件並不是企業消息技術的最高目標對於像群組日程安排共享地址簿和IM集成等高級特性企業客戶通常有兩種選擇:IBM的Lotus Notes和Microsoft Exchange這種情況已開始改變盡管這兩個企業消息技術巨頭在可預見的未來可能仍占據統治地位但眾多的替代產品已經出現尤其是針對中小企業的產品其中很多都來自開源世界
OpenXchange也許是這類項目中最雄心勃勃的一個它在開源軟件包中重現傳統群件服務器的功能OpenXchange集成多種開源工具包括Apache Web服務器Tomcat Java小服務程序引擎和PostgreSQL數據庫等通過一個基於Web的GUI提供全面的電子郵件日程表和協作功能商用添加件使OpenXchange可以與Microsoft Outlook和Palm手持機互操作
然而其他開源消息服務器將互操作性又向前發展了一步例如Zimbra利用AJAX(異步JavaScript和XML)技術將消息與外部數據源相集成此外Zimbra是從一開始就是作為一種由組件構成的互操作系統來設計的其中的很多組件以Web服務示人第三方開發商可以連接在這些組件的API上直接訪問Zimbra日程表項地址簿和電子郵件
由於Zimbra是開源軟件因此開發商不必躲避專有陷阱他們可以直插代碼核心直接集成自己的軟件開源消息系統也不強迫使用老通信接口OpenXchange和Zimbra利用包括WebDAVLDAPiCal和HTTP在內的開放標准套件代替專有Microsoft Exchange協議
這種實現消息技術的開放方式意義重大由於公司對作為基本業務工具的電子郵件的依賴程度非常高因此至關重要的企業數據最終保存在電子郵件服務器上當這些服務器基於專有軟件時公司在電子郵件的存儲恢復搜索歸檔備份集成和管理上受一家廠商的支配基於開放協議和開放代碼的消息系統能保證客戶在需要時訪問數據此外活躍的開發社區將日益使這些系統能夠不僅在價格和可用性上而且還在特性上能與專有廠商競爭
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19610.html