关于计算机软件中的插件技术综述

时间:2022-09-29 08:03:09

关于计算机软件中的插件技术综述

摘要:本文主要就计算机软件中的插件技术的概念、应用、类型等方面进行深入的分析与研究。计算机软件中的插件技术是近来十分常见的一种技术,插件结构有助于编写有良好的扩充和定制功能的应用程序,本文就此谈了谈自己的观点和看法,可供参考。

关键词:计算机软件; 插件技术; 功能;

中图分类号:G623.58 文献标识码:A 文章编号:

前言

随着计算机的发展,人类的工作越来越依赖于计算机。软件为计算机的广泛应用提供了方便,软件的发展成为计算机的主要发展方向,然而插件技术的应用给相应软件又带来了机遇,它可以很好地提高软件的应用性及范围的扩展性,他是相关软件能够很好的被人类运用。插件为软件的进一步开发与集成具有很好的理论和实用价值。

一、插件技术的应用分析与研究

计算机软件中的插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即插即用”软件开发。平台 + 插件软件结构是将一个待开发的目标软件分为两部分,一部分为程序的主体或主框架,可定义为平台,另一部分为功能扩展或补充模块,可定义为插件。在进行软件开发之前,是否采用平台 + 插件结构进行软件开发,还要依据具体的软件需求情况进行确定,但一般来讲,使用平台 + 插件结构进行软件设计会给所开发软件增加新的生命力。当确定平台 + 插件的软件结构之后,就要分析哪些部分功能由主体完成,即平台的基本功能,哪些部分功能由插件完成,即需要扩展的插件功能。平台所完成的功能应为一个软件系统的核心和基础,这些基本功能即可为用户使用,也可为插件使用,就是又可以把平台基本功能分为两个部分,内核功能和插件处理功能。平台的内核功能是整个软件的重要功能,一个软件的大部分功能因由内核功能完成。平台的插件处理功能用于扩展平台和管理插件,为插件操纵平台和与插件通信提供标准平台扩展接口。插件所完成的功能是对平台功能的扩展与补充,一般插件完成系列化功能,例如:PHO-TOSHOP 的滤镜插件完成对图形的特殊效果处理,这些功能都有一些共性,可以进行集中管理,并且是可以定义出标准的插件接口。为了实现平台 + 插件结构的软件设计需要定义两个标准接口,一个为由平台所实现的平台扩展接口,一个为插件所实现的插件接口。这里需要说明的是:平台扩展接口完全由平台实现,插件只是调用和使用,插件接口完全由插件实现,平台也只是调用和使用。平台扩展接口实现插件向平台方向的单向通信,插件通过平台扩展接口可获取主框架的各种资源和数据,可包括各种系统句柄,程序内部数据以及内存分配等。插件接口为平台向插件方向的单向通信,平台通过插件接口调用插件所实现的功能,读取插件处理数据等。平台插件处理功能包括插件注册、管理和调用,以及平台扩展接口的功能实现。插件注册为按照某种机制首先在系统中搜索已安装插件,之后将搜索到的插件注册到平台上,并在平台上生成相应的调用机制,这包括菜单选项、工具栏、内部调用等。插件管理完成插件与平台的协调,为各插件在平台上生成管理信息以及进行插件的状态跟踪。插件调用为调用各插件所实现的功能。平台插件处理功能实现的另一部分功能为平台扩展接口的具体实现。开发支持插件功能的应用程序必须解决一个问题:如何在主程序与插件间正确地互相通信。为了在主程序与插件之间能正确地互相通信,应该先制定一套通信标准,这套通信标准就是接口,主程序与插件只能通过制订好的接口进行通信。软件开发中,接口只是定义功能并规定调用功能的形式,而不包含功能的实现。接口实质上是软件模块的调用规范。就开发支持插件功能的应用程序而言,一般来说由主程序的开发者来制订接口,如果希望其他的开发人员能开发相关的插件,只要公开相关接口即可。接口功能一般由插件方实现。因为插件的实现也要调用主程序的功能,所以接口功能也可能由主程序来实现。也就是说,主程序与插件的信息流可能是双向的。接口的调用规范与功能实现互相分离有一个很大的优点:尽管不同的插件开发者对同一个接口的具体实现不同,但是在主程序中对这些插件的调用方式是一样的。如果有主程序实现的接口,在不同的插件中也可以用相同的使用方式调用主程序的功能。这极大的提高了应用程序的灵活性。主程序中,插件管理部分用于管理插件的安装和删除,并将所有安装插件的信息保存到适合的地方,例如保存到注册表或配置文件中。主程序启动时,根据插件的配置信息加载插件模块,然后获得插件的输出函数或输出类的指针并加以保存,如果需要的话,可以向主程序增加界面接口元素,如菜单、工具条按钮等。在主程序中当点击与插件相关联的接口元素时,就会触发插件调用函数,在插件调用函数中使用主函数中所保存的插件信息调用插件中实现的功能。在调用插件输出函数时也可以把主程序中实现的接口传递给插件方。

二、计算机软件中的插件类型分析与研究

1、类似批命令的简单插件。事实上这种插件的自由度非常低。使用这种方法的软件有Win Hacker 等,运行这种插件后,会一步步要求用户进行选择 / 输入,最后根据用户的输入来执行一系列事先定义好的操作。这种插件一般是文本文件。功能比较单一,可扩展性极小。优点是插件做起来非常方便,即使是对程序设计了解不多的人也可以制作。如 WinAmp 的Skin。

2、 使用一种特殊的脚本语言来实现的插件(暂时称为脚本插件)。这种插件比较难写,需要软件开发者自己制作一个程序解释内核。比如微软惹了很多麻烦的宏就是这种类型的。有一套著名的 Office 辅助工具就是完全用 Office内置的 VBScript 写成的。这种方法的优点在于无需使用其它工具来制作插件,软件本身就可以实现,普遍出现于各种办公自动化软件中。

3、利用已有的程序开发环境来制作插件。例如 PhotoShop 等软件使用的方法。使用这种方法的软件在程序主体中建立了多个自定义的接口,使插件能够自由访问程序中的各种资源。这种插件的优势在于自由度极大,可以无限发挥插件开发者的创意,这种插件是狭义范围的插件,也是真正意义上的插件。而这种插件机制的编写相对麻烦,对于插件接口之间的协调比较困难,插件的开发也需要专业的程序员才能进行。

三、结语

插件是一种遵循统一的预定义接口规范编写出来的程序, 应用程序在运行时通过接口规范对插件进行调用,以扩展应用程序的功能。计算机软件中的插件最吸引人的地方当然就是其所实现“运行时(run- time)”功能扩展。这意味着软件开发者可以通过公布插件的预定义接口规范,从而允许第三方的软件开发者通过开发插件对软件的功能进行扩展,而无需对整个程序代码进行重新编译。运行时(run- time)是相对于编译时(assembly- time)而言的。一般来说,软件开发者对软件功能更新时,是在源代码级别进行更新,然后对整个程序进行重新编译,进而应用程序的新版本,这就是编译时(assembly- time)的软件更新。

参考文献

[1]吴亮,杨凌云,尹艳斌.基于插件技术的 GIS 应用框架的研究与实现[J].地球科学-中国地质大学学报,2006

[2]陈方明,陈奇.基于插件思想的可重用软件设计与实现[J].计算机工程与设计,2005

[3]刘兴平,马燕,杜利峰.插件技术研究初探[J].延安大学学报(自然科学版),2006

上一篇:民用建筑钢结构施工技术 下一篇:谈提高公路工程试验检测质量的对策