一种基于Bundle依赖关系的自动搜索安装系统及方法

文档序号:9235317阅读:291来源:国知局
一种基于Bundle依赖关系的自动搜索安装系统及方法
【技术领域】
[0001]本发明涉及Bundle依赖的自动搜索和安装领域,具体来讲是一种基于Bundle依赖关系的自动搜索安装系统及方法。
【背景技术】
[0002]OSGi (Open Service Gateway Initiative,面向 Java 的动态模型系统)是一种面向服务的架构,为Bundle (插件应用程序)提供了标准环境,Bundle对外提供的是插件式服务,Bundle之间相互独立运行。
[0003]Bundle在智能路由器上有一定规模的应用,智能路由器作为智能家居控制中心和网络中心,需要安装很多配套Bundle来提供丰富多彩的服务。某个Bundle服务的启动和激活,可能依赖于另一个或几个Bundle启动提供基础服务,这种关系称之为Bundle依赖。
[0004]OSGi是Bundle运行的平台,支持有依赖关系的Bundle无序地安装和启动。但是,如果安装Bundle时,被依赖的Bundle不存在,当前Bundle将一直无法激活;这种情况经常会出现,需要技术人员登录到设备上定位问题,再手动安装缺失的Bundle,这样的Bundle安装方式浪费人力时间,效率较低。

【发明内容】

[0005]针对现有技术中存在的缺陷,本发明的目的在于提供一种基于依赖关系的自动搜索安装系统及方法,实现了智能路由器Bundle文件安装的自动化,解决了基于Bundle依赖关系的自动搜索和安装,节省人力及时间,提高效率。
[0006]为达到以上目的,本发明采取一种基于Bundle依赖关系的自动搜索安装系统,包括Bundle资源服务器和智能路由器,Bundle资源服务器包括资源发布平台、信息模块、检索模块和下载模块,资源发布平台用于厂商发布资源Bundle信息及Bundle文件,信息模块用于存储Bundle资源信息表,检索模块用于从信息模块中检索出匹配的Bundle信息,并附带Bundle文件存储路径,下载模块用于对智能路由器提供下载服务;所述智能路由器包括下载插件、文件安装插件、依赖检查插件和源接口插件,源接口插件用于接收Bundle资源服务器的Bundle消息,或向Bundle资源服务器发送检索请求;下载插件用于将指定Bundle文件下载到智能路由器的特定目录;文件安装插件用于发现新Bundle文件自动安装,并向依赖检查插件发起检查请求;依赖检查插件用于检查当前Bundle信息,向源接口插件提供检索的Bundle信息。
[0007]在上述技术方案的基础上,资源发布平台发布的资源Bundle信息包括Bundle名称、版本号、厂商。
[0008]在上述技术方案的基础上,Bundle资源信息表的表项包括Bundle名称、版本号、厂商和文件存储路径,Bundle文件名称按照“名称.版本号.厂商”格式重新组合,并存储到Bundle资源服务器的分类目录中。
[0009]在上述技术方案的基础上,检索模块依据指定的Bundle名称、版本号,从信息模块中检索出匹配的Bundle信息,版本号未指定时选择最高版本,并附带Bundle文件的存储路径返回消息。
[0010]在上述技术方案的基础上,源接口插件向所述检索模块发起包括Bundle名称、版本号的检索请求,或者被动接受检索模块下发的包括Bundle名称和存储路径的消息。
[0011]在上述技术方案的基础上,下载插件根据源接口插件提供的Bundle名称和存储路径,与依赖检查插件通信,将被依赖的Bundle文件下载到智能路由器中的特定目录。
[0012]本发明还提供一种基于Bundle依赖关系的自动搜索安装方法,包括步骤:
[0013]S1.厂商登陆资源发布平台,填写Bundle信息并上传Bundle文件;信息模块不断更新Bundle资源信息表;
[0014]S2.用户由资源发布平台选择某个Bundle后,向源接口插件发送下载请求,如果OSGi框架中该Bundle已经安装,则流程结束,否则将Bundle文件存储路径发给下载插件;
[0015]S3.下载插件通过下载模块由信息模块中检索到该Bundle文件并下载,再通过文件安装插件将其下载到智能路由器中的特定目录;
[0016]S4.文件安装插件周期性地轮询特定目录,发现新Bundle文件后自动安装,再向依赖检查插件发起Bundle依赖的检查请求,依赖检查插件在OSGi框架中已安装依赖的Bundle情况下,通过源接口插件向检索模块发送检索请求,检索模块将匹配Bundle文件的存储路径通过源接口插件返给下载插件,转入S3。
[0017]在上述技术方案的基础上,SI中,Bundle信息包括Bundle名称、版本号和厂商信息,信息模块收到新发布的Bundle信息后,按照“名称.版本号.厂商”格式重新组合,存储到Bundle资源服务器的分类目录中,随后立即更新Bundle资源信息表。
[0018]在上述技术方案的基础上,S4中,文件安装插件从OSGi框架中获取当前Bundle信息,包括被依赖Bundle的名称和版本号,检查OSGi框架中是否已安装被依赖的Bundle文件,若是,向检索模块发送检所请求,若否,结束。
[0019]在上述技术方案的基础上,S4中,检索模块接受源接口插件发出的包括被Bundle名称和版本号的检索请求,从Bundle资源信息表中检所匹配的Bundle文件,未提供版本号时选择最大版本号;有匹配的Bundle文件时返回成功,并附带该Bundle文件的存储路径,否则返回失败。
[0020]本发明的有益效果在于=Bundle资源服务器部署在互联网中,可以方便的发布Bundle资源。用户通过智能路由器从Bundle资源服务器中选择Bundle文件,通过源接口插件、下载插件和文件安装插件自动完成下载和安装;并且在安装Bundle文件时,依赖检查插件自动检查要安装Bundle所依赖的Bundle文件是否讯在,如果不存在,自动从Bundle资源服务器中检索、下载和安装被依赖的Bundle文件,避免了人工操作,节省人力和时间,提尚运彳丁效率。
【附图说明】
[0021]图1为本发明基于依赖关系的自动搜索安装系统示意图;
[0022]图2为本发明实施例基于依赖关系的自动搜索安装方法的流程图。
[0023]附图标记:
[0024]Bundle资源服务器1,资源发布平台11,信息模块12,下载模块13,检索模块14 ;
[0025]智能路由器2,源接口插件21,依赖检查插件22,下载插件23,文件安装插件24。
【具体实施方式】
[0026]以下结合附图及实施例对本发明作进一步详细说明。
[0027]如图1所示,本发明基于Bundle依赖关系的自动搜索安装系统,包括Bundle资源服务器I和智能路由器2,Bundle资源服务器I包括资源发布平台11、信息模块12、下载模块13和检索模块14 ;智能路由器2包括源接口插件21、依赖检查插件22、下载插件23和文件安装插件24。
[0028]资源发布平台11提供上架服务,用于厂商发布资源Bundle信息及Bundle文件,Bundle信息包括Bundle名称、版本号、厂商。
[0029]信息模块12用于存储Bundle资源信息表,厂商发布Bundle信息完成后,立即刷新Bundle资源信息表,Bundle资源信息表的表项包括Bundle名称、版本号、厂商和文件存储路径,Bundle文件名称按照“名称.版本号.厂商”格式重新组合,并存储到Bundle资源服务器的分类目录中,为了快速地检索文件,分类目录按照字母和数字的字典顺序构建。
[0030]检索模块14用于接受智能路由器2中源接口插件21发出的检所请求,并依据指定的Bundle名称、版本号,从信息模块12的Bundle资源信息表中检索出匹配的Bundle文件(即被依赖的Bundle文件),如果请求未提供版本号时选择最大版本号,有匹配的Bundle文件时返回成功,并携带Bundle文件的存储路径;若是Bundle资源信息表中没有匹配的Bundle文件,则返回失败。
[0031]下载模块13用于接受智能路由器2中下载插件23发出的FTP(File TransferProtocol,文件传输协议)下载请求,请求信息中包括检索到的文件存储路径,并提供FTP服务完成Bundle文件下载。
[0032]所述源接口插件21用于接收依赖检索插件22发出的检索请求,请求信息包括Bundle名称和版本号,不要求版本号时可不填写,并向Bundle资源服务器I中的检索模块14发送检索请求,接受Bundle资源服务器I返回信息。或者源接口插件21接收来Bundle自资源服务器I中检索模块14的Bundle消息,Bundle消息包括Bundle名称、版本号和存储路径。
[0033]下载插件23用于接收源接口插件21发出的Bun
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1