插件扩展装置和插件扩展方法

文档序号:6380660阅读:192来源:国知局
专利名称:插件扩展装置和插件扩展方法
技术领域
本发明涉及应用开发技术领域,具体而言,涉及一种插件扩展装置和一种插件扩 展方法。
背景技术
OSGi (Open Service Gateway Initiative)技术是由 OSGi Alliance 组织制定的一个基于Java语言的服务规范-OSGi服务平台(Service Platform)。在基于OSGi的应用开发中,对于插件的扩展技术方面,最知名的是eclipse的扩展机制。
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开 发,目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。Eclipse的本 身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较佳的灵活性。许多软件开 发商以Eclipse为框架开发自己的IDE。在进行插件扩展时,只需要根据eclipse的扩展定 义实现一个扩展,然后添加一个引导文件,当eclipse启动的时候就会把扩展加载进来,就 能够实现自定义eclipse的插件开发。
但eclipse的扩展机制仍存在一些问题每次进行扩展时,都需要对系统进行重 启后才能够实现;同时,eslipse的扩展机制并不是总那么靠谱,比如在加载配置文件的过 程中,有时会出现无法加载的情况。
因此,需要一种新的插件扩展技术,可以在不重启系统的状态下,实现对插件的动 态扩展;并且由于不需要使用引导文件,使得扩展过程更加稳定。发明内容
本发明正是基于上述问题,提出了一种新的插件扩展技术,可以在不重启系统的 状态下,实现对插件的动态扩展;并且由于不需要使用引导文件,使得扩展过程更加稳定。
有鉴于此,本发明提出了 一种插件扩展装置,包括接口创建单元,用于在基于 OSGi的应用开发平台中,创建至少一个静态扩展服务接口 ;扩展点定义单元,用于定义扩 展点;扩展控制单元,用于调用所述静态扩展服务接口,并基于所述扩展点实现插件的扩 展。
在该技术方案中,通过创建静态扩展服务接口,从而实现对插件的扩展,充分利用 OSGi的插件隔离思想优势,在不需要对系统重启的前提下实现对插件的动态扩展。同时,由 于不需要使用引导文件,因而扩展的实现过程更为稳定。
在上述技术方案中,优选地,所述扩展点定义单元定义所述扩展点的步骤包括定 义所述扩展点的命名空间和名字,以及定义对所述插件的扩展方法。
在该技术方案中,根据用户需要扩展的插件,定义对应的扩展方法来进行处理。具 体地,可以为不同的插件预定义对应的处理方法,从而在定义扩展点时,选用需要的处理方法。
在上述技术方案中,优选地,所述扩展控制单元包括扩展定义子单元,用于为所述插件的扩展定义与所述扩展点相同的命名空间和名字,并指定扩展所述插件时所需的资 源;以及资源加载子单元,用于按照定义的扩展方法,加载扩展所述插件时所需的资源。
在该技术方案中,通过采用相同的命名空间和名字,在扩展点与扩展之间实现关 联;并按照定义扩展点时定义的扩展方法,实现对插件的扩展。
在上述技术方案中,优选地,所述扩展控制单元还用于在需要移除所述插件时, 停止对所述静态扩展服务接口的调用,并删除扩展的插件及相应的扩展点。
在该技术方案中,在实现对插件的动态扩展之后,若希望移除该插件,则由于扩展 过程是通过调用上述技术方案中的静态扩展服务接口实现的,因而可以直接停止调用该接 口,并通过删除对应的扩展和扩展点,从而实现对该插件的动态删除,同样不需要对系统进 行重启,最终实现对插件的热插拔。
在上述技术方案中,优选地,所述扩展点定义单元还用于在定义所述扩展点时, 定义对所述插件的删除方法,以由所述扩展控制单元用于删除所述插件及相应的扩展点。
在该技术方案中,根据不同类型的插件,在扩展之前,定义对应的删除方法。具体 地,可以根据插件的不同类型,预定义对应的删除方法,从而在实际使用时,根据需要选用 相应的方法。
根据本发明的又一方面,还提出了一种插件扩展方法,包括步骤202,在基于 OSGi的应用开发平台中,创建至少一个静态扩展服务接口 ;步骤204,定义扩展点;步骤 206,调用所述静态扩展服务接口,并基于所述扩展点实现插件的扩展。
在该技术方案中,通过创建静态扩展服务接口,从而实现对插件的扩展,充分利用 OSGi的插件隔离思想优势,在不需要对系统重启的前提下实现对插件的动态扩展。同时,由 于不需要使用引导文件,因而扩展的实现过程更为稳定。
在上述技术方案中,优选地,定义所述扩展点的步骤包括定义所述扩展点的命名 空间和名字,以及定义对所述插件的扩展方法。
在该技术方案中,根据用户需要扩展的插件,定义对应的扩展方法来进行处理。具 体地,可以为不同的插件预定义对应的处理方法,从而在定义扩展点时,选用需要的处理方法。
在上述技术方案中,优选地,所述实现所述插件的扩展的步骤包括为所述插件的 扩展定义与所述扩展点相同的命名空间和名字,并指定扩展所述插件时所需的资源;以及 按照定义的扩展方法,加载扩展所述插件时所需的资源。
在该技术方案中,通过采用相同的命名空间和名字,在扩展点与扩展之间实现关 联;并按照定义扩展点时定义的扩展方法,实现对插件的扩展。
在上述技术方案中,优选地,还包括在需要移除所述插件时,停止对所述静态扩 展服务接口的调用,并删除扩展的插件及相应的扩展点。
在该技术方案中,在实现对插件的动态扩展之后,若希望移除该插件,则由于扩展 过程是通过调用上述技术方案中的静态扩展服务接口实现的,因而可以直接停止调用该接 口,并通过删除对应的扩展和扩展点,从而实现对该插件的动态删除,同样不需要对系统进 行重启,最终实现对插件的热插拔。
在上述技术方案中,优选地,还包括在定义所述扩展点时,定义对所述插件的删 除方法,以用于删除所述插件及相应的扩展点。
在该技术方案中,根据不同类型的插件,在扩展之前,定义对应的删除方法。具体 地,可以根据插件的不同类型,预定义对应的删除方法,从而在实际使用时,根据需要选用 相应的方法。
通过以上技术方案,可以在不重启系统的状态下,实现对插件的动态扩展;并且由 于不需要使用引导文件,使得扩展过程更加稳定。


图1示出了根据本发明的实施例的插件扩展装置的框图2示出了根据本发明的实施例的插件扩展方法的流程图3示出了根据本发明的实施例的扩展插件的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施 例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开 的具体实施例的限制。
图1示出了根据本发明的实施例的插件扩展装置的框图。
如图1所示,根据本发明的实施例的插件扩展装置100,包括接口创建单元102, 用于在基于OSGi的应用开发平台中,创建至少一个静态扩展服务接口 ;扩展点定义单元 104,用于定义扩展点;扩展控制单元106,用于调用所述静态扩展服务接口,并基于所述扩 展点实现插件的扩展。
在该技术方案中,通过创建静态扩展服务接口,从而实现对插件的扩展,充分利用 OSGi的插件隔离思想优势,在不需要对系统重启的前提下实现对插件的动态扩展。同时,由 于不需要使用引导文件,因而扩展的实现过程更为稳定。
在上述技术方案中,优选地,所述扩展点定义单元104定义所述扩展点的步骤包 括定义所述扩展点的命名空间和名字,以及定义对所述插件的扩展方法。
在该技术方案中,根据用户需要扩展的插件,定义对应的扩展方法来进行处理。具 体地,可以为不同的插件预定义对应的处理方法,从而在定义扩展点时,选用需要的处理方法。
在上述技术方案中,优选地,所述扩展控制单元106包括扩展定义子单元1062, 用于为所述插件的扩展定义与所述扩展点相同的命名空间和名字,并指定扩展所述插件时 所需的资源;以及资源加载子单元1064,用于按照定义的扩展方法,加载扩展所述插件时 所需的资源。
在该技术方案中,通过采用相同的命名空间和名字,在扩展点与扩展之间实现关 联;并按照定义扩展点时定义的扩展方法,实现对插件的扩展。
在上述技术方案中,优选地,所述扩展控制单元106还用于在需要移除所述插件 时,停止对所述静态扩展服务接口的调用,并删除扩展的插件及相应的扩展点。
在该技术方案中,在实现对插件的动态扩展之后,若希望移除该插件,则由于扩展 过程是通过调用上述技术方案中的静态扩展服务接口实现的,因而可以直接停止调用该接 口,并通过删除对应的扩展和扩展点,从而实现对该插件的动态删除,同样不需要对系统进 行重启,最终实现对插件的热插拔。
在上述技术方案中,优选地,所述扩展点定义单元104还用于在定义所述扩展点 时,定义对所述插件的删除方法,以由所述扩展控制单元用于删除所述插件及相应的扩展
在该技术方案中,根据不同类型的插件,在扩展之前,定义对应的删除方法。具体 地,可以根据插件的不同类型,预定义对应的删除方法,从而在实际使用时,根据需要选用 相应的方法。
图2示出了根据本发明的实施例的插件扩展方法的流程图。
如图2所示,根据本发明的实施例的插件扩展方法,包括步骤202,在基于OSGi 的应用开发平台中,创建至少一个静态扩展服务接口 ;步骤204,定义扩展点;步骤206,调 用所述静态扩展服务接口,并基于所述扩展点实现插件的扩展。
在该技术方案中,通过创建静态扩展服务接口,从而实现对插件的扩展,充分利用 OSGi的插件隔离思想优势,在不需要对系统重启的前提下实现对插件的动态扩展。同时,由 于不需要使用引导文件,因而扩展的实现过程更为稳定。
在上述技术方案中,优选地,定义所述扩展点的步骤包括定义所述扩展点的命名 空间和名字,以及定义对所述插件的扩展方法。
在该技术方案中,根据用户需要扩展的插件,定义对应的扩展方法来进行处理。具 体地,可以为不同的插件预定义对应的处理方法,从而在定义扩展点时,选用需要的处理方法。
在上述技术方案中,优选地,所述实现所述插件的扩展的步骤包括为所述插件的 扩展定义与所述扩展点相同的命名空间和名字,并指定扩展所述插件时所需的资源;以及 按照定义的扩展方法,加载扩展所述插件时所需的资源。
在该技术方案中,通过采用相同的命名空间和名字,在扩展点与扩展之间实现关 联;并按照定义扩展点时定义的扩展方法,实现对插件的扩展。
在上述技术方案中,优选地,还包括在需要移除所述插件时,停止对所述静态扩 展服务接口的调用,并删除扩展的插件及相应的扩展点。
在该技术方案中,在实现对插件的动态扩展之后,若希望移除该插件,则由于扩展 过程是通过调用上述技术方案中的静态扩展服务接口实现的,因而可以直接停止调用该接 口,并通过删除对应的扩展和扩展点,从而实现对该插件的动态删除,同样不需要对系统进 行重启,最终实现对插件的热插拔。
在上述技术方案中,优选地,还包括在定义所述扩展点时,定义对所述插件的删 除方法,以用于删除所述插件及相应的扩展点。
在该技术方案中,根据不同类型的插件,在扩展之前,定义对应的删除方法。具体 地,可以根据插件的不同类型,预定义对应的删除方法,从而在实际使用时,根据需要选用 相应的方法。
图3示出了根据本发明的实施例的扩展插件的流程示意图。
如图3所示,在基于本发明的技术方案下,对插件实现热插拔的过程包括
步骤302,定义扩展点。具体地,包括定义命名空间和名字,以及当增加和删除扩展 时的处理方法。可以根据不同的扩展预定义不同的处理方法,然后此时可以根据实际情况 进行选择。用户也可以根据实际情况设置或编辑处理方法。
步骤304,定义扩展。具体地,包括命名空间和名字,这里需要与扩展点定义的命名 空间和名字保持一致,从而在该扩展点上实现对插件的扩展。同时,还需要定义处理该扩展 所需要的资源,以便在对插件进行扩展时,加载对应的资源。
步骤306,添加扩展管理器。扩展管理器主要是维护扩展点和扩展,主要包括添加 和删除扩展、添加和删除扩展点共四个方法。并且当添加扩展的时候,调用相应的扩展点的 “添加”方法,删除扩展的时候调用“删除”方法。
步骤308,发布静态服务。具体地,提供一个静态访问接口(相当于上述的静态扩展 服务接口 )来添加扩展,并且需要把扩展的接口也暴露出来。该静态接口需要提供添加和删 除扩展的两个方法,处理过程则是调用管理器的同名方法,并且执行一些如创建服务、关 闭资源等动作。静态访问接口是事先创建好的,当需要进行插件的扩展时,对该静态访问接 口进行调用即可。静态访问接口的数量可以为多个,每个静态访问接口都是通用接口,可以 用于任意插件的扩展过程。静态访问接口可以支持多插件的调用和扩展。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,比如eclipse 的扩展机制,在使用引导文件进行插件扩展时,有时存在不稳定的情况,并且需要对系统进 行重启后才能够实现插件的扩展或删除操作。因此,本发明提供了一种插件扩展装置和一 种插件扩展方法,可以在不重启系统的状态下,实现对插件的动态扩展;并且由于不需要使 用引导文件,使得扩展过程更加稳定。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种插件扩展装置,其特征在于,包括 接口创建单元,用于在基于OSGi的应用开发平台中,创建至少一个静态扩展服务接Π ; 扩展点定义单元,用于定义扩展点; 扩展控制单元,用于调用所述静态扩展服务接口,并基于所述扩展点实现插件的扩展。
2.根据权利要求1所述的插件扩展装置,其特征在于,所述扩展点定义单元定义所述扩展点的步骤包括 定义所述扩展点的命名空间和名字,以及定义对所述插件的扩展方法。
3.根据权利要求2所述的插件扩展装置,其特征在于,所述扩展控制单元包括 扩展定义子单元,用于为所述插件的扩展定义与所述扩展点相同的命名空间和名字,并指定扩展所述插件时所需的资源;以及 资源加载子单元,用于按照定义的扩展方法,加载扩展所述插件时所需的资源。
4.根据权利要求1至3中任一项所述的插件扩展装置,其特征在于,所述扩展控制单元还用于 在需要移除所述插件时,停止对所述静态扩展服务接口的调用,并删除扩展的插件及相应的扩展点。
5.根据权利要求4所述的插件扩展装置,其特征在于,所述扩展点定义单元还用于 在定义所述扩展点时,定义对所述插件的删除方法,以由所述扩展控制单元用于删除所述插件及相应的扩展点。
6.一种插件扩展方法,其特征在于,包括 步骤202,在基于OSGi的应用开发平台中,创建至少一个静态扩展服务接口 ; 步骤204,定义扩展点; 步骤206,调用所述静态扩展服务接口,并基于所述扩展点实现插件的扩展。
7.根据权利要求6所述的插件扩展方法,其特征在于,定义所述扩展点的步骤包括 定义所述扩展点的命名空间和名字,以及定义对所述插件的扩展方法。
8.根据权利要求7所述的插件扩展方法,其特征在于,所述实现所述插件的扩展的步骤包括 为所述插件的扩展定义与所述扩展点相同的命名空间和名字,并指定扩展所述插件时所需的资源;以及 按照定义的扩展方法,加载扩展所述插件时所需的资源。
9.根据权利要求6至8中任一项所述的插件扩展方法,其特征在于,还包括 在需要移除所述插件时,停止对所述静态扩展服务接口的调用,并删除扩展的插件及相应的扩展点。
10.根据权利要求9所述的插件扩展方法,其特征在于,还包括 在定义所述扩展点时,定义对所述插件的删除方法,以用于删除所述插件及相应的扩展点。
全文摘要
本发明提供了一种插件扩展装置,包括接口创建单元,用于在基于OSGi的应用开发平台中,创建至少一个静态扩展服务接口;扩展点定义单元,用于定义扩展点;扩展控制单元,用于调用所述静态扩展服务接口,并基于所述扩展点实现插件的扩展。本发明还提供了一种插件扩展方法。通过本发明的技术方案,可以在不重启系统的状态下,实现对插件的动态扩展;并且由于不需要使用引导文件,使得扩展过程更加稳定。
文档编号G06F9/445GK103019763SQ201210438308
公开日2013年4月3日 申请日期2012年11月6日 优先权日2012年11月6日
发明者仇大帅, 阳彪 申请人:深圳中兴网信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1