插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的
应用程序接口编写出来的程序。其只能运行在程序规定的
系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的
函数库或者数据。很多软件都有插件,插件有无数种。例如在IE中,安装相关的插件后,WEB浏览器能够直接调用
插件程序,用于处理特定类型的文件。
发展历史
插件的出现可以追溯到1970年代中期,当EDT
文本编辑器在Univac90/60系列
大型机上运行UnisysVS/9操作系统的时候,其提供了一项功能就是编辑器可以运行一个程序,并允许这个程序进入编辑器的缓冲,允许
外部程序染指内存中,正在编辑的任务。
插件程序使得编辑器在
缓冲区上进行文本编辑,而这个缓冲是编辑器和插件所共同享用的。Waterloo
Fortran编译器使用这些特性使得
Fortran程序的内部编译可以用EDT编辑。
个人电脑上第一个带有插件的应用软件,也许是
苹果电脑上的
HyperCard和QuarkXPress,两者都是1987年发行的。
机制和原理
应用软件提供使插件能够应用的各项服务,其中包括提供加载方式,使插件可以加载到
应用程序和
网络传输协议中,从而和插件进行
数据交换。插件必须依赖于应用程序才能发挥自身功能,仅靠插件是无法正常运行的。相反地,应用程序并不需要依赖插件就可以运行,这样一来,插件就可以加载到应用程序上并且动态更新而不会对应用程序造成任何改变。
简单来说插件技术是能通过在软件的设计和研发过程中把软件的需求和功能进行划分,使程序分为两个主要部分
主程序和插件。把基础的功能要求设计在主程序中,另外,主程序还提供与插件的接口,使相应的插件能够按一定的规则进行数据交换,从而实现一些功能;而插件则是一个个实现部分功能的组件,这样通过增减插件或修改插件内部功能来调整软件的功能,由于插件是对独立的部分,可以独立进行编辑。从而实现软件功能的扩展和不断改进。
公开
应用程序接口提供一个标准的界面,允许其他人编写插件和应用程序互动。一个稳定的应用程序接口会允许 其他插件正常运行即使其最初的版本有所变动,也会支持插件延长老旧的应用程序的使用寿命。
Adobe Photoshop 和
After Effects的插件应用程序接口逐渐成为标准,并且被一些和它们竞争的应用程序部分采纳。另外一些象这样的应用程序接口包括Audio Units和VST。
就好比一个网络转换器也许会运载一个未被占用但不标准的端口来容纳各种任选的
物理层连接器。而游戏和某些应用程序经常使用插件的
体系结构来允许最初的发行者和第三方发行者增加功能性。
生产厂家可以用插件来产生卖方锁定,就是通过
选择限制更新这个选项使得厂商签署的买方才可以更新使用其产品。
IBM的Micro Channel Architecture,从技术上来会说,比Industry Standard Architecture更为先进,可以给IBM的
个人电脑添加组成,但是因为很难给第三方的装置设备获取证明而未能大面积推广。
微软的Flight Simulator系列比较著名就是因为它可以下载aircraft附件。
插件种类
在各
用户软件领域所应用的插件技术大致可分为以下3种类型:(1)
文本插件:类似批处理命令的简单插件。(2)脚本插件:使用一种特殊的
脚本语言来实现的插件。(3)程序插件:利用已有的程序
开发环境来制作插件。
插件举例
网站插件
网站插件是指网站为了增加某种功能而增加的
程序文件。通常论坛程序上如phpwind,应用在
SNS网站,如uchome等。
IE浏览器常见的插件例如:
Flash插件、
RealPlayer插件、MMS插件、
MIDI五线谱插件、
ActiveX插件等。网站插件通常分为两类:
功能增强
此类通常在原有网站功能的基础上增加系统功能,以实现其他的效果,如Google Sitemaps For
Z-Blog,就是为zblog系统增加Google sitemaps功能,方便Google收录,此类插件较多,而对于不同的
网站系统,有严格的插件书写要求。也有系统默认带的插件,如phpwind 的银行插件,广告插件,邀请注册插件等。
娱乐性质
此类插件主要是为了增强网站黏合度,换句话说就是留住访客。如
开心网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) 灵活多变的软件
开发方式。可以根据资源的实际情况来调整开发的方式,资源充足可以开发所有的插件,资源不充足可以选择开发部分插件,也可以请第三方的厂商开发,用户也可以根据自己的需要进行开发。