顯而易見(jiàn)的是,,制造業(yè)自動(dòng)化領(lǐng)域許多參與者的崛起,以及工廠越來(lái)越多地采用工業(yè)物聯(lián)網(wǎng)和自動(dòng)化解決方案,,為開源軟件的應(yīng)用提供了合適的環(huán)境,。無(wú)論制造商的操作技術(shù)和管理要求如何,開源軟件都是一種增值解決方案,,因?yàn)樗哂卸ㄖ苹?、高適應(yīng)彈性、可擴(kuò)展性,、可訪問(wèn)性,、成本效益和質(zhì)量等優(yōu)勢(shì)。
定制化
軟件開發(fā)人員通過(guò)使用開源代碼為本身特定應(yīng)用軟件的創(chuàng)建提供核心代碼,,在此基礎(chǔ)上再建立特定的特性,,并允許用戶訪問(wèn)它并根據(jù)需要進(jìn)行更改。與將用戶鎖定的封閉系統(tǒng)不同,,開源允許他們調(diào)整和修改代碼以滿足特定的需求或應(yīng)用,。這中附加編碼方式可對(duì)定制化不加限制,從而使社群(即用戶的集合)能夠在軟件集成階段添加有益的特性,,例如用于用戶測(cè)試的特性或?yàn)闄C(jī)器找到最佳解決方案的特性,。定制在數(shù)據(jù)和流程可視化方面也很有價(jià)值,用戶可以開發(fā)最能描述其操作的儀表板和視覺(jué)效果,。如果采用合適的傳感器為特定機(jī)器提供實(shí)時(shí)狀態(tài)監(jiān)測(cè)數(shù)據(jù),,就可以定制采集和處理特定參數(shù)數(shù)據(jù)或計(jì)算特定值的軟件代碼。
適應(yīng)彈性
由于可快速對(duì)源代碼進(jìn)行修改,,開源軟件對(duì)變化的適應(yīng)性表現(xiàn)得很有彈性,。快速添加或刪除功能以及適應(yīng)網(wǎng)絡(luò)環(huán)境或特定應(yīng)用的能力,,可能使新開發(fā)的程序不穩(wěn)定,,但通過(guò)接觸不同的環(huán)境和應(yīng)用,開源代碼也可以變得更強(qiáng),,得以應(yīng)對(duì)網(wǎng)絡(luò)安全威脅,。由于有如此多的編碼人員或程序員進(jìn)行測(cè)試和增強(qiáng),,實(shí)現(xiàn)開源代碼的風(fēng)險(xiǎn)(例如在網(wǎng)絡(luò)安全方面)并不一定比封閉代碼來(lái)得高。在采用開源軟件開發(fā)自己的定制軟件時(shí),,實(shí)現(xiàn)者可以借鑒適用于其他閉源軟件的相同規(guī)則,,不過(guò)實(shí)現(xiàn)者必須了解代碼的源代碼,并避免使用不知名的源代碼,,因?yàn)檫@些源代碼可能會(huì)帶著不良的意圖修改代碼,。總的來(lái)說(shuō),,開源代碼具有彈性,、適應(yīng)性和敏捷性,能夠適應(yīng)給定的新環(huán)境,。
可伸縮性
開放源碼的附加組件和定制功能也允許代碼具有高度的可伸縮性,。這種可伸縮的實(shí)現(xiàn)在兩個(gè)維度上進(jìn)行,即采用時(shí)間軸和基于應(yīng)用的實(shí)現(xiàn),。為了保證用戶愿意接受,,并滿足操作和應(yīng)用的要求,這兩者都不可或缺,。關(guān)于采用時(shí)間軸,,可伸縮性允許修改軟件和代碼以滿足用戶的期望。開源代碼能夠?qū)崿F(xiàn)用戶測(cè)試和反饋的特性,。最終的解決方案將包括多次迭代,,以滿足用戶的需求和實(shí)現(xiàn)運(yùn)行預(yù)期。另一方面,,基于不同的應(yīng)用,,代碼程序也可以根據(jù)控制目的或要求加以變化和伸縮。例如控制不同的機(jī)器,,或同一類型的機(jī)器但運(yùn)用環(huán)境或場(chǎng)景不盡相同,,或者為特定用途添加/刪除某些功能特性等等。如果有三臺(tái)相同的機(jī)器(A,、B和C),,它們處于不同的環(huán)境中:A在零下2度的環(huán)境下工作,B在室溫下,,C處于不停的洗沖中,。那么狀態(tài)監(jiān)控軟件要為每個(gè)場(chǎng)景定義可接受的參數(shù),避免錯(cuò)誤觸發(fā)的誤報(bào)警,。為此可以調(diào)整基本代碼,,以滿足不同應(yīng)用的特定功能。
可訪問(wèn)性
一般來(lái)說(shuō),在線上可以找到性價(jià)比高的開源代碼,。還有一些額外的資源,比如免費(fèi)的編碼教程,,也不需要任何許可,。此外,當(dāng)程序員更新開源代碼時(shí),,他們必須讓新版本共享,,以便再次可用,并確保代碼是可訪問(wèn)的和最新的,。
成本效益和質(zhì)量
使用社群開源代碼大大降低了獨(dú)自構(gòu)建應(yīng)用程序的開發(fā),、集成和測(cè)試諸階段的成本。同時(shí)還減少了實(shí)施的時(shí)間,,有利滿足項(xiàng)目的進(jìn)度或產(chǎn)品上市的時(shí)間,。本質(zhì)上說(shuō),開源軟件應(yīng)該是受信任的源代碼,,是由眾多編碼人員和用戶創(chuàng)建的高質(zhì)量,、可靠的代碼。
開源的安全和權(quán)限管理系統(tǒng)
與其他操作系統(tǒng)相比,,開源Linux的一個(gè)優(yōu)點(diǎn)是權(quán)限管理和安全性,。為了授予定制的存取權(quán)限,Linux提供了一種非常細(xì)粒度的,、可獨(dú)立調(diào)整的權(quán)限管理,,嚴(yán)格的權(quán)限分配以及對(duì)用戶和組的管理。例如,,允許保護(hù)配置文件和控制設(shè)置,,防止未經(jīng)授權(quán)的訪問(wèn)或無(wú)意的更改。這樣,,機(jī)器操作員就不能通過(guò)所分配的適當(dāng)權(quán)限來(lái)對(duì)工藝參數(shù)進(jìn)行任何更改,。嚴(yán)格的權(quán)限管理可以保護(hù)操作系統(tǒng)免受網(wǎng)絡(luò)攻擊,在日益網(wǎng)絡(luò)化的控制系統(tǒng)中,,安全問(wèn)題尤為重要,。許多商用的基于工業(yè)PC的控制器使用Windows作為操作系統(tǒng),其效果是必須定期安裝安全刷新,。特別是在生產(chǎn)環(huán)境中,,安全刷新意味著中斷,并可能導(dǎo)致不希望的副作用,。然而,,在基于Linux的內(nèi)核中,有一些經(jīng)過(guò)特殊加固的“設(shè)計(jì)安全”內(nèi)核。操作系統(tǒng)通過(guò)簡(jiǎn)化獲得額外的安全性:只保留所設(shè)定任務(wù)執(zhí)行必要的代碼,??赡軐?dǎo)致額外攻擊載體的不必要軟件一開始就沒(méi)有安裝在系統(tǒng)上。還有一個(gè)優(yōu)勢(shì)是在開源庫(kù)和自由程序中出現(xiàn)了新的安全漏洞,,由于開放性,,相應(yīng)的補(bǔ)丁可以很快地從社群中導(dǎo)入。與此相反依賴于制造商的安全補(bǔ)丁,,這可能需要很長(zhǎng)時(shí)間,。
運(yùn)用開源軟件必須注意的問(wèn)題
集成商和最終用戶從相關(guān)的開源網(wǎng)站借用免費(fèi)代碼用于他們的項(xiàng)目,為了確保它運(yùn)行良好,,使用安全,,首先需要對(duì)它進(jìn)行審慎的審查。審查應(yīng)該從對(duì)許可證的評(píng)估開始,,要確定這是否是一個(gè)在商業(yè)上友好的開源軟件許可證,,能否合法使用。還要確定是否允許修改代碼,。開源不一定意味著必須修改它,,但一定能看到和運(yùn)用代碼。
除了檢查許可證,,還要考慮安全性,。最好從使用活躍用戶社群支持和維護(hù)的開源應(yīng)用程序和庫(kù)開始。用戶越多越好,,因?yàn)楦嗟难劬ふ衣┒床⑻岢鲂迯?fù)方案,,不僅會(huì)持續(xù)改進(jìn)軟件,而且有助于讓社群領(lǐng)先于惡意行為者,。每個(gè)社群都有自己的特點(diǎn),,如果想要加入的社群中有熟悉的人更好,可以了解更多的情況,。還要搞清誰(shuí)是代碼的發(fā)布者,。一般來(lái)講愿意把自己的名字與所做的工作公開的人不太可能做任何惡意的事情。
任何好的審查過(guò)程還必須包括性能測(cè)試,。從開源社群獲得一些代碼時(shí),,接下去的工作就是確保這些代碼可以為我所用,并且始終應(yīng)該對(duì)所部署或修改的任何內(nèi)容進(jìn)行嚴(yán)格的測(cè)試,。
審查開源軟件的另一個(gè)重要方面是考慮其在產(chǎn)品生命周期內(nèi)的成本和收益,。與自行開發(fā)的軟件相比,在整個(gè)產(chǎn)品生命周期內(nèi)操作和維護(hù)開源軟件的能力變得更重要,,也更具有挑戰(zhàn)性,。
出于這個(gè)原因,,應(yīng)該開發(fā)自己的內(nèi)部標(biāo)準(zhǔn)和指導(dǎo)方針,以審查任何考慮納入其產(chǎn)品的開源代碼,。在軟件評(píng)估階段,,從多個(gè)角度檢查軟件,比如它在該領(lǐng)域的記錄,、產(chǎn)品質(zhì)量,、與類似軟件的比較、提供長(zhǎng)期維護(hù)的能力以及許可證的結(jié)構(gòu)等,。
在使用開放源碼時(shí),仍然必須遵守許可條件,,并在必要時(shí)澄清許可條件,。所以每個(gè)開源軟件的使用者必須讓自己的程序基于開放源代碼。還要考慮封閉的源代碼是否可以供自己使用,,這些程序是否可以商業(yè)發(fā)行等問(wèn)題,。
原則上,在公司內(nèi)部使用各種開源許可證,,如GPL(GNU General Public License)或BSD(Berkeley Software Distribution)時(shí),,它們之間的差別很小。但是,,如果開源軟件被進(jìn)一步開發(fā)并發(fā)布,,就應(yīng)該注意許可條件。這里開源程序區(qū)分了“有版權(quán)Copyleft”和“無(wú)版權(quán)Non-Copyleft”的許可類型,。如果制造商使用基于copyleft許可的開放源代碼,,就像眾所周知的GPL一樣,那么修改后的代碼也必須按照原始許可再次發(fā)布給社群,。這是為了防止用戶或制造商分發(fā)修改了使用條款的修改后的源代碼,。因此,在其解決方案中使用帶有copyleft許可證的開源軟件的自動(dòng)化解決方案提供商必須仔細(xì)檢查除了許可文本之外,,是否必須提供編輯過(guò)的源代碼,。例如,某些copyleft許可要求開放源碼軟件的每個(gè)編輯版本都不受限制地發(fā)布,。但是也有中度的copyleft變體,,只在特定條件下才要求發(fā)布源代碼。它與包括BSD許可的軟件的非copyleft許可證類型不同,,不要求發(fā)布修訂后的代碼,。因此,用戶可以根據(jù)自己的需求進(jìn)一步使用BSD許可開發(fā)軟件,,并獲得專有許可,。作為一種選擇這樣就可以開發(fā)商業(yè)產(chǎn)品,源代碼不需要公開??傊?,開源軟件使用的合規(guī)性是一個(gè)必須嚴(yán)肅遵守的文問(wèn)題。
來(lái)源:彭瑜 數(shù)字化企業(yè)