2013年3月26日 星期二

Plug-in與Add-on有何不同?



大多數人把Plug-in稱為插件,而Add-on在國內鮮少看到中譯後的名稱(或許叫作外掛),但事實上,它們在國外所釋出的英文技術文獻上,有明顯含義上的不同。

許多剛涉入資訊圈,或涉入不深的,都會認為沒有甚麼不同,但是實質上卻有很大的不同。兩者通常都是係指在既有的應用程式(Free Software/Open Source)上新增額外功能,而且普遍來看會是第三方所釋出的功能增強,而非原廠。如果是原廠所釋出的功能性增強,普遍會使用Extend、Expansion類似字眼,原有功能修正會稱為Fix、原有功能增強會稱為Patch,而Patch後通常會將軟件版本代碼更新,修正與增強兼而有之的會稱為Update或Pack。

回到正題,玩過Linux或是RHCE應該都能大致理解Plug-in與Add-on的不同,通常前者意味著這項第三方功能"有可能"會更動部分軟體程式碼,或者改變原有程式碼的數據,所以多數的Plug-in無法在應用程式運作的同時進行安裝,而且Plug-in的功能毀損或是程式碼安全性漏洞,會導致原有功能不穩會是停擺,因此Plug-in無法在程式提供服務的同時進行安裝,而且服務通常需要重啟,測試過後不穩可能還要移除,版本不符可能完全無法安裝或是運作。

Add-on意義就不一樣,通常Add-on表示額外附加功能,所以中文譯為外掛並無不妥,通常Add-on不會改動任何既有應用程式的程式碼,只會強化輸出結果或是重新整理、分析、搜尋等,所以User Interface方面的改動,通常都是Add-on;因此,有部分的軟件在新增Add-on的時候,並不需要暫停或中止服務運作就能安裝,服務重啟與否則是要看情況,而且Add-on不穩並不會對原有的應用程式造成任何影響,安全漏洞也不會影響原有功能,Add-on停擺也不會異常中止原有應用程式或功能。

在一些免費軟體中功能又很強大的監控軟體上,Plug-in跟Add-on界線更是清楚,因為他必須要讓網路管理者或是MIS主管單位理解,這項服務會不會中斷或停止,需不需要技術性測試與評估,導入的安全性為何...等等相關議題,所以會明確的區隔兩者的不同,例如:Linux平台上的Nagios軟體就是一例。

附帶一提,遊戲外掛通常是偽Add-on(掩人耳目)而實質的Plug-in(傳輸數據改動),所以不可能不被抓到,只是有沒有心想抓而已。

沒有留言: