複製鏈接
請複製以下鏈接發送給好友

插件

鎖定
插件(Plug-in,又稱addin、add-in、addon或add-on,又譯外掛)是一種遵循一定規範的應用程序接口編寫出來的程序。其只能運行在程序規定的系統平台下(可能同時支持多個平台),而不能脱離指定的平台單獨運行。因為插件需要調用原純淨系統提供的函數庫或者數據。很多軟件都有插件,插件有無數種。例如在IE中,安裝相關的插件後,WEB瀏覽器能夠直接調用插件程序,用於處理特定類型的文件。
中文名
插件
外文名
Plug-in
中文別稱
外掛
所屬領域
計算機
釋    義
一種遵循一定規範的應用程序接口編寫出來的程序
起源時間
1970年代中期

插件發展歷史

插件 插件 [1]
插件的出現可以追溯到1970年代中期,當EDT文本編輯器在Univac90/60系列大型機上運行UnisysVS/9操作系統的時候,其提供了一項功能就是編輯器可以運行一個程序,並允許這個程序進入編輯器的緩衝,允許外部程序染指內存中,正在編輯的任務。插件程序使得編輯器在緩衝區上進行文本編輯,而這個緩衝是編輯器和插件所共同享用的。Waterloo Fortran編譯器使用這些特性使得Fortran程序的內部編譯可以用EDT編輯。 [1] 
個人電腦上第一個帶有插件的應用軟件,也許是蘋果電腦上的HyperCard和QuarkXPress,兩者都是1987年發行的。 [1] 

插件機制和原理

應用軟件提供使插件能夠應用的各項服務,其中包括提供加載方式,使插件可以加載到應用程序網絡傳輸協議中,從而和插件進行數據交換。插件必須依賴於應用程序才能發揮自身功能,僅靠插件是無法正常運行的。相反地,應用程序並不需要依賴插件就可以運行,這樣一來,插件就可以加載到應用程序上並且動態更新而不會對應用程序造成任何改變。 [1] 
簡單來説插件技術是能通過在軟件的設計和研發過程中把軟件的需求和功能進行劃分,使程序分為兩個主要部分主程序和插件。把基礎的功能要求設計在主程序中,另外,主程序還提供與插件的接口,使相應的插件能夠按一定的規則進行數據交換,從而實現一些功能;而插件則是一個個實現部分功能的組件,這樣通過增減插件或修改插件內部功能來調整軟件的功能,由於插件是對獨立的部分,可以獨立進行編輯。從而實現軟件功能的擴展和不斷改進。 [2] 
公開應用程序接口提供一個標準的界面,允許其他人編寫插件和應用程序互動。一個穩定的應用程序接口會允許 其他插件正常運行即使其最初的版本有所變動,也會支持插件延長老舊的應用程序的使用壽命。Adobe PhotoshopAfter Effects的插件應用程序接口逐漸成為標準,並且被一些和它們競爭的應用程序部分採納。另外一些象這樣的應用程序接口包括Audio Units和VST。 [1] 
就好比一個網絡轉換器也許會運載一個未被佔用但不標準的端口來容納各種任選的物理層連接器。而遊戲和某些應用程序經常使用插件的體系結構來允許最初的發行者和第三方發行者增加功能性。 [1] 
生產廠家可以用插件來產生賣方鎖定,就是通過選擇限制更新這個選項使得廠商簽署的買方才可以更新使用其產品。IBM的Micro Channel Architecture,從技術上來會説,比Industry Standard Architecture更為先進,可以給IBM的個人電腦添加組成,但是因為很難給第三方的裝置設備獲取證明而未能大面積推廣。微軟的Flight Simulator系列比較著名就是因為它可以下載aircraft附件。 [1] 

插件插件種類

在各用户軟件領域所應用的插件技術大致可分為以下3種類型:(1)文本插件:類似批處理命令的簡單插件。(2)腳本插件:使用一種特殊的腳本語言來實現的插件。(3)程序插件:利用已有的程序開發環境來製作插件。 [2] 

插件插件舉例

插件網站插件

網站插件是指網站為了增加某種功能而增加的程序文件。通常論壇程序上如phpwind,應用在SNS網站,如uchome等。IE瀏覽器常見的插件例如:Flash插件RealPlayer插件、MMS插件、MIDI五線譜插件、ActiveX插件等。網站插件通常分為兩類:
功能增強
此類通常在原有網站功能的基礎上增加系統功能,以實現其他的效果,如Google Sitemaps ForZ-Blog,就是為zblog系統增加Google sitemaps功能,方便Google收錄,此類插件較多,而對於不同的網站系統,有嚴格的插件書寫要求。也有系統默認帶的插件,如phpwind 的銀行插件,廣告插件,邀請註冊插件等。
娛樂性質
此類插件主要是為了增強網站黏合度,換句話説就是留住訪客。如開心網的開心農場插件,搶車位插件等娛樂型插件。此類插件能很大程度上留住訪客,增加網站的流量。另外如"天使寵物for phpwind all"則是BBS上的應用插件,“黑道生涯3.0 插件for discuz!”則是應用於論壇bbs上的娛樂插件。

插件電子元件插件

概念
一種可插入(或拔出)插箱、機架、機櫃的電子組件,用以直接安裝電子元件、器件和機電元件,並通過連接器實現對外電氣連接。它是最基本的電子組件,屬於第二級組裝(見電子組裝級)。
插件結構
①使用一塊印製線路板的單板插件;
②使用兩塊印製線路板形成夾心式或組合式插件;
③在一塊大印製線路板(母板)上立裝若干塊小型印製線路板(子板),稱子母式插件。
在插件結構中,除印製線路板外,根據實際需要還可以安裝框架、小面板、屏蔽罩及把手等結構附件。採用較多的型式是一塊帶印製插頭的印製線路板。插件的連接器一般都是和印製線路板連成一體的印製插頭(或稱邊緣插頭)。但是,為了增加出線能力(即連接器連接點數)、可靠性和可維修性,高性能電子設備已趨向於採用二件式連接器,即有單獨的插頭和插座的連接器。一般連接器只裝在插件的一端,為了增加連接點數,也可在插件的三邊,甚至四邊都裝有連接器。因此,一般連接器已不適用,必須採用無插拔力連接器。插件框架可以採用薄板結構、鋁型材組合結構、鋁合金壓鑄件結構和塑壓件結構。根據屏蔽要求,可以採用全封閉結構,在框架的上部、下部及兩側加屏蔽蓋板,或只加部分蓋板的開式結構。中國和國際電工委員會(IEC)分別在GB3047.2-82和IEC48D(秘書處)12號文件(草案)中規定了插件面板和印製線路板的基本尺寸系列

插件媒體播放器插件

Winamp音頻播放器、foobar2000音頻播放器都支持插件,用來讀取更多的音頻格式、顯示更多的音頻文件信息(例如編碼器信息、專輯封面)。
插件
OpenCorePlugin是一個純插件結構的系統,包括內核在內的所有特性都由插件構成。插件是對系統中靜態結構方面的抽象,滿足某種約束並提供自描述的物理軟件模塊。OSGi中插件叫Bundle,物理上是一個提供自描述文件的Jar文件。插件可以被動態的安裝、激活、去激活與卸載。插件包含多個服務(Service)對象。
插件間的依賴關係包括兩種:
物理依賴,即插件間的Class依賴,例如A插件Import B插件的Class。
邏輯依賴,插件A中的服務依賴插件B中的服務。

插件Flash插件

Flash插件是指安裝於瀏覽器的Flash插件(Adobe® Flash® Player Plugin),使瀏覽器得以播放swf文件。
為增強flash的功能,有的個人和公司開發的可以安裝在flash中的外掛插件(和許多軟件的插件一樣)。可以實現如自動保存,畫特殊符號骨骼動畫等功能。這種插件一般是以mxp結尾的文件,如ik_motion.mxp,line.mxp等等這種插件最顯著的特點是可以播放AVI等多媒體數據,兼容性強。網頁瀏覽或者視頻播放等也用到flash插件。

插件惡意插件

有些插件程序能夠幫助用户更方便瀏覽因特網或調用上網輔助功能,也有部分程序被人稱為廣告軟件Adware)或間諜軟件(Spyware).此類惡意插件程序監視用户的上網行為,並把所記錄的數據報告給插件程序的創建者,以達到投放廣告,盜取遊戲或銀行賬號密碼等非法目的。

插件技術好處

使用插件技術能夠在分析、設計、開發、項目計劃協作生產和產品擴展等很多方面帶來好處:
(1) 結構清晰、易於理解。由於借鑑了硬件總線的結構,而且各個插件之間是相互獨立的,所以結構非常清晰也更容易理解。
(2) 易修改、可維護性強。由於插件與宿主程序之間通過接口聯繫,就像硬件插卡一樣,可以被隨時刪除,插入和修改,所以結構很靈活,容易修改,方便軟件的升級和維護。
(3) 可移植性強、重用力度大。因為插件本身就是由一系列小的功能結構組成,而且通過接口向外部提供自己的服務,所以複用力度更大,移植也更加方便。
(4) 結構容易調整。系統功能的增加或減少,只需相應的增刪插件,而不影響整個體系結構,因此能方便的實現結構調整。:
(5) 插件之間的耦合度較低。由於插件通過與宿主程序通信來實現插件與插件,插件與宿主程序間的通信,所以插件之間的耦合度更低。
(6) 可以在軟件開發的過程中修改應用程序。由於採用了插件的結構,可以在軟件的開發過程中隨時修改插件,也可以在應用程序發行之後,通過補丁包的形式增刪插件,通過這種形式達到修改應用程序的目的。
(7) 靈活多變的軟件開發方式。可以根據資源的實際情況來調整開發的方式,資源充足可以開發所有的插件,資源不充足可以選擇開發部分插件,也可以請第三方的廠商開發,用户也可以根據自己的需要進行開發。
參考資料
  • 1.    插件的定義和分類  .discuz!.2007-8-16[引用日期2012-12-02]
  • 2.    高慧萍,呂俊.插件式開發技術研究與實現[J].計算機工程與設計,2009(16):3805-38073829