資源描述:
《開(kāi)源技術(shù)與開(kāi)源軟件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第九章開(kāi)源技術(shù)與開(kāi)源軟件IT服務(wù)科學(xué)與工程本章內(nèi)容開(kāi)源軟件與自由軟件開(kāi)源技術(shù)開(kāi)源軟件許可協(xié)議開(kāi)源技術(shù)與開(kāi)源軟件開(kāi)源軟件與自由軟件開(kāi)源軟件簡(jiǎn)單來(lái)說(shuō),“開(kāi)源軟件”就是源代碼開(kāi)放的軟件。1999年,EricS.Raymond在自由軟件的范疇下提出了開(kāi)源軟件的概念,并出版了《大教堂和集市》一書(shū),這是開(kāi)源軟件發(fā)展的標(biāo)志事件。著名開(kāi)源項(xiàng)目網(wǎng)站SourceForge在1999年還只有數(shù)百個(gè)開(kāi)源項(xiàng)目,到2008年初,其開(kāi)源項(xiàng)目數(shù)已經(jīng)超過(guò)17萬(wàn)個(gè),幾乎覆蓋軟件應(yīng)用的所有領(lǐng)域。開(kāi)源軟件的意義對(duì)普通用戶來(lái)說(shuō)開(kāi)不開(kāi)源其實(shí)意義不
2、是很大,他們更在乎收不收費(fèi)由于開(kāi)源軟件大多都是免費(fèi)下載的,所以一提起開(kāi)源軟件,很多人的第一反應(yīng)就是免費(fèi)軟件。對(duì)于商業(yè)用戶來(lái)說(shuō)可以減少開(kāi)發(fā)周期,因?yàn)樵创a開(kāi)放了,只需要稍做修改就可以嵌入到產(chǎn)品中去;可以降低成本;但免費(fèi)午餐不一定就不好吃(也有些開(kāi)源軟件需要收費(fèi),但價(jià)格都比較低廉)。開(kāi)源軟件成功的原因開(kāi)源社區(qū)的協(xié)同模式改變和顛覆了軟件業(yè)的工作方式,可以創(chuàng)造出高質(zhì)量的軟件產(chǎn)品。商業(yè)模式得到了驗(yàn)證:RedHat、MySQL、Asterisk都是非常成功的開(kāi)源公司。真正釋放了軟件開(kāi)發(fā)人員的創(chuàng)造力和生產(chǎn)力:全世界有
3、上百萬(wàn)的程序員在參與開(kāi)源軟件的產(chǎn)品開(kāi)發(fā)。國(guó)際軟件巨頭也紛紛加入開(kāi)源陣營(yíng):IBM投資10億美元支持Linux,Sun也斥巨資收購(gòu)MySQL…自由軟件自由軟件是指用戶運(yùn)行、拷貝、研究、改進(jìn)軟件的自由,更準(zhǔn)確地說(shuō),是指三種層次的自由:研究程序運(yùn)行機(jī)制,并根據(jù)你自己的需要修改它的自由;重新分發(fā)拷貝,以使其他人能夠共享軟件的自由;改進(jìn)程序,為使他人受益而散發(fā)它的自由。自由軟件的精神領(lǐng)袖查德·斯托曼他被人稱為‘最后的真正黑客’,他認(rèn)為一個(gè)好的軟件,便該自由自在的讓人取用,而不應(yīng)該拿來(lái)做為相互傾軋、剝削的工具。他起草
4、了GNU通用公共許可證來(lái)保障自由軟件的自由,并創(chuàng)辦了自由軟件基金會(huì)來(lái)貫徹他的理念。開(kāi)源軟件vs自由軟件嚴(yán)格地說(shuō)來(lái),開(kāi)源軟件與自由軟件是兩個(gè)不同的概念,只要符合開(kāi)源軟件定義的軟件就能被稱為開(kāi)放源代碼軟件。自由軟件是一個(gè)比開(kāi)源軟件更嚴(yán)格的概念,因此所有自由軟件都是開(kāi)放源代碼的,但不是所有的開(kāi)源軟件都能被稱為“自由”。但在現(xiàn)實(shí)上,絕大多數(shù)開(kāi)源軟件也都符合自由軟件的定義。開(kāi)源軟件的優(yōu)勢(shì)較低的成本大多數(shù)開(kāi)源軟件是免費(fèi)下載的,軟件公司并不靠出售軟件來(lái)取得利潤(rùn)軟件后期的維護(hù)和支持是需要付費(fèi)的開(kāi)源帶來(lái)的可靠性、耐久性和
5、安全性任何人都可以對(duì)代碼進(jìn)行檢察并發(fā)現(xiàn)其中的安全隱患,任何人都可以修改代碼中的問(wèn)題,使用者不需要等待軟件提供商對(duì)軟件bug進(jìn)行修正成熟的、并且通過(guò)長(zhǎng)時(shí)間同級(jí)評(píng)審的開(kāi)源軟件是非??煽康拈_(kāi)放標(biāo)準(zhǔn)和擺脫供應(yīng)商依賴開(kāi)放標(biāo)準(zhǔn)的用戶,不論是個(gè)人還是政府,都擁有在不同的軟件、平臺(tái)和供應(yīng)商之中選擇的靈活性和自由私有的、保密的標(biāo)準(zhǔn)使得用戶只能使用一個(gè)供應(yīng)商的軟件,并且因?yàn)樗麄兊臄?shù)據(jù)都存儲(chǔ)為私有格式,轉(zhuǎn)換代價(jià)高昂而在此后繼續(xù)受供應(yīng)商的擺布開(kāi)源軟件面臨的挑戰(zhàn)知識(shí)產(chǎn)權(quán)問(wèn)題對(duì)自由/開(kāi)源軟件性質(zhì)和特征的界定對(duì)開(kāi)源軟件各類知識(shí)產(chǎn)權(quán)保
6、護(hù)法律規(guī)定的強(qiáng)度和范圍的理解對(duì)各種開(kāi)源許可協(xié)議的內(nèi)容或條款以及其解釋的認(rèn)知對(duì)自由軟件運(yùn)動(dòng)發(fā)展中迄今尚存的一些爭(zhēng)議問(wèn)題或在法律上出現(xiàn)的灰色地帶在執(zhí)行中的處置等管理和維護(hù)問(wèn)題與使用商業(yè)軟件相比,使用開(kāi)源軟件往往會(huì)帶來(lái)一些潛在的成本使用開(kāi)源軟件的學(xué)習(xí)曲線比較長(zhǎng)管理方面的成本也會(huì)增加,因?yàn)槭褂瞄_(kāi)源軟件要求系統(tǒng)管理人員具有多種技能:熟悉命令行接口、精通腳本語(yǔ)言、能夠編寫設(shè)備驅(qū)動(dòng)程序等等沒(méi)有完善的技術(shù)支持,即使有也需要額外的費(fèi)用開(kāi)源技術(shù)與開(kāi)源軟件開(kāi)源技術(shù)WEB框架目前流行的Web框架不再僅是一個(gè)MVC實(shí)現(xiàn),而是幾乎
7、可以滿足日常工作中的大多數(shù)需求的“一站式”框架,上至表現(xiàn)層,下至持久層,涉及了企業(yè)級(jí)應(yīng)用中的方方面面。這些“一站式”框架可以很方便地同其他框架進(jìn)行整合,比如Struts、Spring與Hibernate的組合就很不錯(cuò)。目前使用頻率比較高的WEB框架:Struts、WebWork、Spring和Seam。編程語(yǔ)言靜態(tài)語(yǔ)言:數(shù)據(jù)類型在編譯期間檢查,也就是說(shuō)在寫程序時(shí)要聲明所有變量的數(shù)據(jù)類型,如C、C++、C#和Java等。優(yōu)點(diǎn)在于結(jié)構(gòu)規(guī)范、便于調(diào)試、類型安全缺點(diǎn)是為此需要寫更多類型相關(guān)的代碼,最終導(dǎo)致代碼不
8、便于閱讀。動(dòng)態(tài)語(yǔ)言:在運(yùn)行期間才去做數(shù)據(jù)類型檢查的語(yǔ)言,也就是說(shuō),在用動(dòng)態(tài)語(yǔ)言編程時(shí),不需要給任何變量指定數(shù)據(jù)類型,如Python、Ruby和Groovy等。優(yōu)點(diǎn)是方便閱讀,不需要寫非常多的類型相關(guān)的代碼缺點(diǎn)是不方便調(diào)試,當(dāng)命名不規(guī)范時(shí)會(huì)造成對(duì)代碼的理解困難等。AJAX框架AJAX是一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。使用XHTML+CSS來(lái)表示信息;使用JavaScript操作DOM進(jìn)行動(dòng)態(tài)顯示及交互;使用XML和XSLT進(jìn)行數(shù)據(jù)交換及