陆伟霞
(湖南交通工程学院,湖南 衡阳 421009)
当今信息技术的快速发展,一方面是计算机、手机等信息设备性能不断提升,芯片处理能力不断加强,设备普及率越来越高,另一方面是应用软件更新发展迅速,与社会生活需求紧密贴合。插件技术作为计算机平台下的一个重要技术,也得到了长足发展,应用场景和使用频率不断提升。计算机通过使用不同的插件,扩展了计算机的应用范围,能帮助专业软件提高信息安全,降低软件故障的概率,提升人们的使用感,基于这些优点,插件技术在近几十年间,得到了广泛应用和发展。
计算机使用的插件技术,本质上来说其实是程序的一种类型,是在相应计算机程序接口的标准下,帮助计算机应用软件实现应用功能。一般情况下,计算机的应用软件程序,通过规范标准的接口,与插件进行对接并处理信息,这也是计算机应用软件扩展的形式[1]。插件技术的出现,最早可以追溯到20世纪70年代,当时插件只是一个编辑器上运行的一个程序,帮助编辑室进行缓冲,使得编辑器能够在缓冲区内,进行文本的编辑。人们为了提高应用软件的扩展性,使得软件更加专业化和标准化,形成完整的系列,开始将插件技术融入其中,这样既可以利用插件的可扩展性提高软件维护效率,也有利于后期软件的更新,延长软件的使用寿命,还可以根据用户的特殊需求,进行针对性的发展和扩展,提高用户使用便捷性。例如普通大众在使用计算机应用程序时,时常会遇到提示“XXX.DLL文件丢失”的提示,这就说明计算机的系统文件中,某个插件缺失了,软件无法正常使用。
插件的接口是实现应用软件功能不可缺少的重要部分,系统通过接口实现将外部数据进行抽象化处理,达到内部系统与外部信息进行有效沟通的保障[2]。一般情况下,插件的接口主要承担外部信息与内部处理语言直接的转换、翻译作用,这是一种间接性的处理手段,这样的方式与直连沟通方式相比,会给系统产生额外的运行和处理负担。插件的接口根据应用的不同分为两种,一种是计算机内部硬件之间连接的硬件接口,另一种是计算机系统中,软件组件之间的软接口。
插件的动态链接库主要是由代码组成,其中包含的代码和数据库,提供给一个或多个计算机程序使用,这并不需要执行系统文件。这样一种方式,可以让应用软件快速地调取不属于自身的代码函数[3]。例如,在Linux系统中,采用动态链接库的异步事件驱动模型,让更多的业务内容,按照动态链接库的形式进行加载,可以让应用程序扩展更加方便,兼容性更好,并且确保系统主程序的逻辑不改变,使用非常方便。动态链接库根据使用方式不同分为动态库和静态库,静态库是指在每个程序进行链接的时候,将链接库在目标程序中进行一次拷贝,当目标程序生成的时候,程序可以脱离链接库文件单独运行,因为生成的程序中已经包含了该库的内容,动态库则正好相反。
计算机插件的类型有多种,有应用在浏览器上的插件、应用在图像上的插件、应用在多媒体上的插件、应用在源代码上的插件等。插件已经广泛运用到各种应用环境当中,普通电脑用户经常接触到的插件有IE插件、Photoshop插件、Flash插件、MediaPlayer插件等。通常,插件可分为3类。
在计算机应用软件开发中,使用最为广泛的就是类似命令插件。类似命令插件与其他插件的不同在于,这个插件的自由度相对比较低,导致这型插件的在实际使用过程中,会导致应用软件的运行速度和效率,出现一定程度的下降,并且使用起来并不方便[4]。虽然类似命令插件存在这样的弊病,但是它也存在一个优势,就是这型插件使用十分方便,对程序人员的使用要求较低,特别适合一些刚刚接触软件制作的人员使用,能够有效降低应用软件程序的开发时间。类似命令插件的运行,主要是依靠程序员按照要求,输入相应的命令数据,使得插件根据输入命令的意义来进行执行相应的操作。例如,使用Go语言编写的lazygit插件,运用gocui库,利用Git命令行,在图形界面上进行操作。
脚本语言(Scripting language)属于计算机编程语言,目的是将我们人类所要表达的信息,转换为计算机系统能够识别的命令程序,将复杂的事物信息,转换为简单的字符信息方式。所以,脚本语言会比一般接触到的其他系统编程语言要相对简单,如C语言、C++语言、Java等。除此之外,脚本语言还有一些特殊的特种,比如交班语言的语法结构相对比较简单,人们学习和使用的门槛较低,在程序开发上执行效能较高。脚本语言的种类有工作控制语言和shell、GUI脚本(有时也称“宏语言”)、应用程序定制的脚本语言、Web编程脚本、可嵌入式脚本等等。人们为了消除使用类似命令插件会带来的问题和不足,就采用脚本语言来进行插件编辑,通过这样的方式,首先要对使用的脚本语言进行一些特殊的编制,这个过程相对比较专业和复杂,插件的内核部分,需要专业的软件开发商进行操作。脚本语言插件的优点有不少,主要的优点是这型插件的制作,除了内核程序外,不再需要其他工具,只要插件本身就能够实现所需要的功能。所以,现在大家普遍使用的办公软件,大多是采用这种脚本语言插件技术。
例如Skript,这款插件是由Njol开发的一种,仅适用于Minecraft(Java)服务器的编程语言。服务器管理人员在使用这款插件时能够不使用Java语言的前提下,简单的对Minecraft进行管理,这主要是依靠触发器、条件和效果3个部分,当触发器触发,所有条件均满足,效果就会被触发。Skript也可以用来做自定义命令,将触发器改写成有特殊意义的执行命令。
在当今应用软件开发中,使用最为广泛的插件是程序环境插件,这型插件的主要有点是技术自由度高,软件开发者利用这型插件,能够充分发挥开发者的自我想法,开发出功能强大的软件,程序环境插件相比与命令插件和脚本插件,技术更为复杂,各种接口之间的协调性要求更高,一般这样的插件很难由个人独立完成[5]。在程序环境插件的使用中,程序员必须在应用程序中,建立多个自定义的接口,插件通过这些接口与外部程序链接,相互获取并处理信息。这种程序环境插件就是我们常说的计算机应用软件上面的插件。
聚合式插件的在程序设计和程序编写方面的工作比较复杂,对程序员的计算机知识和专业知识水平要求较高,这个和脚本式插件相类似,所以这型插件的开发,通常是由计算机转专业编程人员负责编写程序。采用聚合式插件的主要目的是为了优化链接端口,使计算机能够灵活、高效地使用插件接口,提高应用软件使用效率。
在计算机系统中使用插件技术,能够使计算机的主程序通过插件接口快速地接收数据,并进行数据处理,处理结果再由插件接口反馈给使用程序。由于各个插件之间,都能独立满足计算机系统提出的需要,并依靠插件程序自身的处理能力,帮助计算机系统和应用程序提高运行效率,快速反馈用户信息,提高用户感知率。
要让计算机系统上安装的应用软件充分发挥功能,使用合理的插件必不可少,因为通过插件与应用软件相结合,能够在系统不同的层面下,充分发挥功能,并且确保相互不会干扰,保障计算机系统和应用程序提高运行效率,使用户在应用层面感知良好,并且能够帮助应用软件实现更专业、更高效的目标,这是未来计算机系统的发展趋势。由于计算机系统是持续开发并不断进行迭代更新的,所以使用的插件也要保持持续的更新,来满足新程序及功能的要求。
由于插件主要作为计算机系统的辅助应用,划分出计算机主系统与子系统,提供计算机系统的管理效率和信息处理效率。在计算机系统运行过程中,插件通过独立运行的接口,与插件外面系统进行交互,通过调整接口处理流程,能够扩大计算机的信息处理能力,满足用户日益提高的信息处理需求。
一般在计算机系统中,对插件技术的调用过程通常分为多个步骤,首先在计算机系统开机后,插件系统会接收到调用命令,此时所有插件会逐一开始试运行,而系统自带插件模块搜索功能,可以快速搜索相应的插件并获取相应的匹配信息、文本资料。如果系统内的插件系统在搜索过程中未能找到相应的数据信息,通常会将这些数据以非法数据进行有效处理,确保能够加强对计算机系统的保护功能,而对于那些已经通过验证且合法的数据信息,在插件系统管理平台上可以正常运行,此时用户可以结合自身需求选择适宜的插件,将其安装于计算机系统中,有利于形成完整的插件体系。用户在人机交互界面中选择相应的插件、运行插件时,插件管理系统会自动定位插件,及时加载插件数据信息,在软件启动、应用中调用相应的插件。由此可见,在计算机系统中,对于插件的添加、删除均要在插件管理系统的帮助下完成插件技术调用过程。为了提高对计算机系统的安全保护效果,通常需要将插件管理系统安装在系统适宜的位置中,比如安装在配置文件以及注册表中,如此一来在计算机系统运行当中,通过插件管理系统的应用,在加载、运行插件数据时进行控制,记录检测相应的数据信息。计算机程度在启动过程中有可能会出现插件自启动现象,这种现象出现的主要原因在于计算机系统触及插件接口元素,此时可以直接调用主函数信息,从而发挥插件所具备的各种功能。
插件在实际使用中,与普通用户接触最多的有两种,一个是动态链接库“DLL”,另一种是组件对象模型“COM”。
目前,计算机系统普遍使用的是微软的Windows操作系统,在这个操作系统中就有着许多个动态链接库DLL,这些插件为系统中的各种程序提供支撑,有些程序还包括多个不同功能的模块,而这些模块也在相应的动态链接库DLL中并发及分发。Windows操作系统使用DLL,有助于代码实现模块化,提高内存的使用效率,减少占用磁盘空间,让操作系统和应用程序运行速度更快。例如,控制日历信息,就是Windows系统文件中的ActiveX控件(.ocx)文件;系统中控制面板里的每个操作项目,是由Windows系统文件中的控制面板(.cpl)文件负责;负责控制硬件设备的驱动程序,就是设备驱动程序(.drv)文件负责。
由于组件对象模型COM提供了相对统一的接口,可以帮助不同软件使用同一个交互方式,便于各组件之间相互交流。所以,COM是Windows开发中的基础技术,程序开发者可以使用不同的编程语言(如C++和.NETFramework中的编程语言)来创建COM库。COM接口主要源自IUnknown接口,这种接口由3种函数成员组成,即QueryInterface,AddRef和Release。例如,当用户点击屏幕上的按键之后,按键会将客户端的接收器对象调用IButtonSink::OnClick,Button控件定义输出接口。对于处理信息的客户端,需要有一个信息输出的接口,将这个接口连接到控制键上。之后,点击这个控制键时,控制键会将信息转给需要的客户端进行处理。同时,COM还有一些特殊用途的接口,就像IAdviseSink可能由对象用来通知客户端数据,并查看对象中的更改。
计算机系统内的插件,作为一个特殊的系统组织,有着多种优势特点,对计算机应用程序的开发、扩展、更新、使用等方面,都有着重要的意义。应用软件开发商基于插件技术,可以开发出更加专业、更加标准、更加体系化的产品,通过不同类型、不同系列插件之间的相互组合使用,可以快速地开发出原型系统,以此来满足不同用户的使用需求,这样既延长了应用软件的使用寿命,又扩展了应用软件的使用范围,节省了资金成本和时间成本,有效减少了资源浪费。所以,现代电脑工作者必须加强对插件技术的研发和创新,以保证其在计算机软件中的作用,从而促进我国电脑产业的平稳、可持续发展。