CN102722396B - 一种组件加载方法及系统 - Google Patents
一种组件加载方法及系统 Download PDFInfo
- Publication number
- CN102722396B CN102722396B CN201210191887.8A CN201210191887A CN102722396B CN 102722396 B CN102722396 B CN 102722396B CN 201210191887 A CN201210191887 A CN 201210191887A CN 102722396 B CN102722396 B CN 102722396B
- Authority
- CN
- China
- Prior art keywords
- assembly
- file
- loaded
- armory
- description document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种组件加载方法及系统,应用于预先创建的资源仓库,所述资源仓库包括至少一个待加载组件、与所述待加载组件相对应的组件信息文件和资源仓库描述文件;所述方法包括获取所述资源仓库中的资源仓库描述文件;依据所述资源仓库描述文件中的待加载组件地址信息,获取待加载组件的组件信息文件;若获取到的组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求,将与所述组件名称相对应的待加载组件在物联网中间件中启动。
Description
技术领域
本申请涉及OSGi技术领域,特别涉及一种组件加载方法及系统。
背景技术
随着物联网信息技术产业的发展,面向OSGi框架的物联网中间件发展迅速,它能够对下屏蔽多样化的硬件阅读设备,对上支持物联网应用的部署及运行。为增加物联网中间件的功能,通常采用将实现特定功能的组件加载至物联网中间件中。
目前,加载组件至物联网中间件,通常采用将组件代码编译入物联网中间件代码的方法,实现在物联网中间件中启动被加载组件,实现被加载组件的功能,但这种组件加载方案较为繁琐,缺乏灵活性,且当需要在运行中的物联网中间件中加载组件时,需要停止物联网中间件的运行,重新编译待加载的组件与物联网中间件的组合代码,实现组件加载,由此导致物联网中间件的运行效率较低。
发明内容
本申请所要解决的技术问题是提供一种组件加载方法及系统,用以解决现有技术中采用将组件代价编译入物联网中间件代码的方法较为繁琐,缺乏灵活性,且当需要在运行中的物联网中间件中加载组件时,需要停止物联网中间件的运行,重新编译待加载的组件与物联网中间件的组合代码,导致物联网中间件的运行效率较低的技术问题。
为解决上述技术问题,本发明提供的一种组件加载方法,在执行所述方法前,创建资源仓库,所述资源仓库包括至少一个待加载组件、与所述待加载组件相对应的组件信息文件和资源仓库描述文件;
所述方法包括:
获取所述资源仓库中的资源仓库描述文件;
依据所述资源仓库描述文件中的待加载组件地址信息,获取待加载组件的组件信息文件;
若获取到的组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求,将与所述组件名称相对应的待加载组件在物联网中间件中启动。
上述方法,优选地,所述创建资源仓库包括:
将所述待加载组件置入预设的第一文件夹内,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件;
依据所述第一文件夹内的待加载组件,生成与所述第一文件夹相关联的资源仓库描述文件;
在预设第二文件夹下创建第三文件夹,并将所述第一文件夹及与所述资源仓库描述文件置于所述第三文件夹内。
上述方法,优选地,所述将所述待加载组件置入预设的第一文件夹内包括:
采用DOS命令进入预设的第一文件夹的目录,输入命令java-jarbindex.jar所述第一文件夹的名称/所述待加载组件的名称。
上述方法,优选地,所述获取所述资源仓库中的资源仓库描述文件包括:
在OSGi命令控制台上输入获取命令:loadApp+所述资源仓库中待加载组件所在文件夹的上级文件夹名称;
执行所述获取命令获取所述资源仓库描述文件。
上述方法,优选地,所述获取所述资源仓库中的资源仓库描述文件包括:
在所述资源仓库中创建加载配置文件;
将所述资源仓库中待加载组件的名称写入所述加载配置文件中;
执行所述加载配置文件获取所述资源仓库描述文件;
其中:
若所述资源仓库中包括多个待加载组件时,所述加载配置文件中每个待加载组件的组件名称字符串居左,且占据一行。
本申请还提供了一种组件加载系统,包括资源仓库创建单元、描述文件获取单元、信息文件获取单元、组件加载启动单元,其中:
所述资源仓库创建单元,用于创建资源仓库,所述资源仓库包括至少一个待加载组件和与所述待加载组件相对应的组件信息文件;
所述描述文件获取单元,用于获取所述资源仓库中的资源仓库描述文件;
所述信息文件获取单元,用于依据所述资源仓库描述文件中的待加载组件地址信息,获取待加载组件的组件信息文件;
所述组件加载启动单元,用于若获取的组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求,将与所述组件名称相对应的待加载组件在物联网中间件中启动。
上述系统,优选地,所述资源仓库创建单元包括第一创建子单元、第二创建子单元和第三创建子单元,其中:
所述第一创建子单元,用于将所述待加载组件置入预设的第一文件夹内,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件;
所述第二创建子单元,用于依据所述第一文件夹内的待加载组件,生成与所述第一文件夹相关联的资源仓库描述文件;
所述第三创建子单元,用于在预设第二文件夹下创建第三文件夹,并将所述第一文件夹及与所述资源仓库描述文件置于所述第三文件夹内。
上述系统,优选地:
所述第一创建子单元,具体用于采用DOS命令进入预设的第一文件夹的目录,输入命令java-jar bindex.jar所述第一文件夹的名称/所述待加载组件的名称,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件。
上述系统,优选地,所述描述文件获取单元包括第一获取子单元;
所述第一获取子单元,用于在OSGi命令控制台上输入获取命令:loadApp+所述资源仓库中待加载组件所在文件夹的上级文件夹名称,执行所述获取命令获取所述资源仓库描述文件。
上述系统,优选地,所述描述文件获取单元包括第二获取子单元;
所述第二获取子单元,用于在所述资源仓库中创建加载配置文件,将所述资源仓库中待加载组件的名称写入所述加载配置文件中,并执行所述加载配置文件获取所述资源仓库描述文件;
其中:
若所述资源仓库中包括多个待加载组件时,所述加载配置文件中每个待加载组件的组件名称字符串居左,且占据一行。
由上述方案可知,本申请提供的一种组件加载方法及系统,通过预先创建包括至少一个待加载组件的资源仓库,在物联网中间件需要加载组件时,获取资源仓库中资源仓库描述文件,进而获取待加载组件的组件信息文件,当该组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求时,将该待加载组件在物联网中间件中启动,由此实现组件在物联网中间件中的加载,避免了现有技术中将组件代价编译入物联网中间件代码的方法较为繁琐,缺乏灵活性,且当需要在运行中的物联网中间件中加载组件时,需要停止物联网中间件的运行,重新编译待加载的组件与物联网中间件的组合代码,导致物联网中间件的运行效率较低的技术问题。
进一步的,本申请提供的一种组件加载方法及系统,通过在OSGi命令控制台上输入loadApp+资源仓库中待加载组件所在文件夹的上级文件夹名称的获取命令,获取资源仓库描述文件进而获取待加载组件的组件信息文件,实现将单一待加载组件加载至物联网中间件中;或通过在资源仓库中创建加载配置文件,在加载配置文件中写入待加载组件的组件名称字符串,执行该加载配置文件获取资源仓库描述文件进而获取待加载组件的组件信息文件,实现单一或多个待加载组件加载至物联网中间件中。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种组件加载方法实施例一的流程图;
图2为本申请提供的一种组件加载方法实施例二的部分流程图;
图3为本申请提供的一种组件加载方法实施例三的部分流程图;
图4为本申请提供的一种组件加载方法实施例三的另一部分流程图;
图5为本申请提供的一种组件加载系统实施例一的结构示意图;
图6为本申请提供的一种组件加载系统实施例二的结构示意图;
图7为本申请提供的一种组件加载系统实施例三的结构示意图;
图8为本申请提供的一种组件加载系统实施例三的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,其示出了本申请提供的一种组件加载方法实施例一的流程图,在执行所述方法前,创建资源仓库,所述资源仓库包括至少一个待加载组件、与所述待加载组件相对应的组件信息文件和资源仓库描述文件,所述方法可以包括以下步骤:
步骤101:获取所述资源仓库中的资源仓库描述文件。
其中,所述创建资源仓库,所述资源仓库包括至少一个待加载组件、与所述待加载组件相对应的组件信息文件和资源仓库描述文件中,优选地,利用面向OSGi框架的资源仓库管理服务OBR协议创建资源仓库。
需要说明的是,所述OBR协议的全称为OSGi Bundle Repository,它是中基于RFC-0112协议,面向OSGi框架的资源仓库管理服务协议。所述RFC-0112协议定义了资源仓库描述文件(XML文件)的格式,支持本地仓库和网络仓库两种形式。在本申请中,物联网中间件选择使用OBR协议创建资源仓库,实现组件加载服务,能够快捷简便地访问、管理资源仓库。
其中,优选地,所述资源仓库中包括两个及两个以上待加载组件、与每个待加载组件相对应的组件信息文件及与该资源仓库中待加载组件相关联的资源仓库描述文件。所述待加载组件的格式均为jar包格式,例如:*.jar,而所述资源仓库描述文件为XML文件格式,例如:repository.xml。
需要说明的是,本申请方法实施例实现组件加载时,预先创建资源仓库,该资源仓库中包括待加载组件、待加载组件的组件信息文件及资源仓库描述文件,在物联网中间件需要进行组件加载时,再执行所述方法。即在每次需要进行组件加载时,该资源仓库无需再次创建。
其中,在物联网中间件需要组件加载时,接收物联网中间件对组件的加载请求信息,获取所述资源仓库中的资源仓库描述文件。
步骤102:依据所述资源仓库描述文件中的待加载组件地址信息,获取待加载组件的组件信息文件。
其中,在获取到所述资源仓库描述文件之后,依据所述资源仓库描述文件中的待加载组件地址信息,即URL信息,获取所述资源仓库中的待加载组件的组件信息文件。
步骤103:判断获取到的组件信息文件中的组件名称、组件版本和组件内容是否同时满足物联网中间件对组件的加载请求,如果是,执行步骤104。
其中,在获取到所述组件信息文件之后,对所述组件信息文件中包含的组件名称、组件版本和组件内容进行解析。
其中,在所述组件名称、组件版本和组件内容无法同时满足物联网中间件对组件的加载请求时,返回执行所述步骤102,重新获取待加载组件的组件信息文件,并解析所述组件信息文件包含的组件名称、组件版本和组件内容(该待加载组件的导出包内容),直至所述组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求,执行步骤104。
优选地,在所述资源仓库中设置OBR仓库管理员,在获取到所述资源仓库描述文件之后,将获取的资源仓库描述文件发送至该OBR仓库管理员,由该OBR仓库管理员根据所述获取的资源仓库描述文件中的待加载组件的地址信息获取所述资源仓库中一个或多个的待加载组件的组件信息文件,并解析该组件信息文件中的组件名称、组件版本和组件内容,判断所述组件名称、组件版本和组件内容是否同时满足所述物联网中间件对组件的加载请求,如果是,执行步骤104,否则,可以返回执行所述步骤102,重新获取一个或多个待加载组件的组件信息文件。
例如:设置资源仓库的OBR仓库管理员RepositoryAdmin;在获取到资源仓库描述文件repository.xml之后,为OBR仓库管理员提供获取到的资源仓库描述文件repository.xml,具体的,所述资源仓库描述文件中的待加载组件地址信息即URL信息;OBR仓库管理员根据repository.xml中的URL信息获取与该URL地址信息对应的一个或多个的待加载组件的组件信息文件,并解析所述组件信息文件中的组件名称、组件版本和组件内容;若所有的Requirement(即组件名称、组件版本和组件内容)均同时满足所述物联网中间件对组件的加载请求,则执行步骤104;如果所有的Requirement(如组件名称、组件版本和组件内容等)无法同时满足所述物联网中间件对组件的加载请求,即所述组件名称、组件版本和组件内容等的内容无法分别与物联网中间件中需要加载的组件名称、组件版本、组件内容等相对应,则执行步骤102重新获取所述资源参考中待加载组件的组件信息文件,解析重新获取到的组件信息文件中的组件名称、组件版本和组件内容,直到所有的Requirement都满足,执行步骤104。
步骤104:将与所述组件名称相对应的待加载组件在物联网中间件中启动。
优选地,上述判断所述组件信息文件中的组件名称、组件版本和组件内容是否满足物联网中间件对组件的加载请求功能可以通过物联网中间件中的解析器实现,在该解析器解析到组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求,由该解析器将与满足所述物联网中间件对组件的加载请求的待加载组件部署至物联网中间件中,并启动。
由上述方案可知,本申请提供的一种组件加载方法实施例一,通过预先创建包括至少一个待加载组件的资源仓库,在物联网中间件需要加载组件时,获取资源仓库中资源仓库描述文件,进而获取待加载组件的组件信息文件,当该组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求时,将该待加载组件在物联网中间件中启动,由此实现组件在物联网中间件中的加载,避免了现有技术中将组件代价编译入物联网中间件代码的方法较为繁琐,缺乏灵活性,且当需要在运行中的物联网中间件中加载组件时,需要停止物联网中间件的运行,重新编译待加载的组件与物联网中间件的组合代码,导致物联网中间件的运行效率较低的技术问题。
参考图2,其示出了本申请提供的一种组件加载方法实施例二的部分流程图,所述创建资源仓库具体可以包括以下步骤:
步骤201:将待加载组件置入预设的第一文件夹内,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件。
其中,优选地,所述将所述待加载组件置入预设的第一文件夹内包括:
采用DOS命令进入预设的第一文件夹的目录,输入命令java-jarbindex.jar所述第一文件夹的名称/所述待加载组件的名称。
例如:创建第一文件夹plugins文件夹,采用DOC命令进入plugins文件夹所在目录,输入命令java-jar bindex.jar plugins/*.jar,所述*.jar为待加载组件的名称;在plugins文件夹下生成*jar对应的待加载组件的组件信息文件repository.xml。
步骤202:依据所述第一文件夹内的待加载组件,生成与所述第一文件夹相关联的资源仓库描述文件。
其中,所述资源仓库只包括一个资源仓库描述文件,其记载有所述资源仓库中所有待加载组件的组件地址信息即URL信息,该资源仓库描述文件作为元信息描述文件与置有待加载组件的第一文件夹呈平等对应关系,即在磁盘存储中处于同一级文件夹内。
步骤203:在预设第二文件夹下创建第三文件夹,并将所述第一文件夹及所述资源仓库描述文件置于所述第三文件夹内。
其中,所述第二文件夹作为指定文件夹,相当于所述资源仓库,为其命名,例如:applications,而所述第三文件夹的命名可以为TEST,上述将所述第一文件夹及所述资源仓库描述文件置于所述第三文件夹内具体为:将所述步骤201中创建的plugins文件夹拷贝至所述TEST文件夹内,而所述资源仓库描述文件在所述TEST文件夹内生成。
由上述方案可知,本申请方法实施例二采用bindex.jar工具实现待加载组件写入所述第一文件夹内,并创建组件信息文件,相对于现有技术中手工编写待加载组件的XML文件,从而实现资源仓库的创建,节省了大量系统资源消耗及成本。
参考图3,其示出了本申请提供的一种组件加载方法实施例三的部分流程图,优选地,所述步骤101可以包括以下步骤:
步骤301:在OSGi命令控制台上输入获取命令:loadApp+所述资源仓库中待加载组件所在文件夹的上级文件夹名称。
其中,所述loadApp命令为OSGi命令控制台的一种命令方式。
例如:在OSGi命令控制台上输入:loadApp(命令方式)+TEST(本申请方法实施例一中所述资源仓库中待加载组件所在文件夹的上级文件夹名称,即本申请方法实施例二中第三文件夹名称)。
步骤302:执行所述获取命令获取所述资源仓库描述文件。
其中,在所述步骤301输入所述获取命令之后,执行所述获取命令,即运行所述获取命令,得到待加载组件所在文件夹的上级文件夹内的XML文件格式的文件,即与待加载组件所在文件夹平行设置的资源仓库描述文件。
参考图4,其示出了本申请提供的一种组件加载方法实施例三的另一部分流程图,优选地,所述步骤101可以包括以下步骤:
步骤401:在所述资源仓库中创建加载配置文件。
其中,所述加载配置文件在所述资源仓库中所述待加载组件所在目录的顶级文件夹内创建。例如,在本申请方法实施例二中的第二文件夹applications中创建加载配置文件default.ini。
步骤402:将所述资源仓库中待加载组件的名称写入所述加载配置文件中;
其中:
若所述资源仓库中包括多个待加载组件时,所述加载配置文件中每个待加载组件的组件名称字符串居左,且占据一行。
其中,若所述资源仓库中待加载组件为单个时,可以直接将该待加载组件的组件名称写入所述加载配置文件,而所述资源仓库中包括多个待加载组件时,即在需要批量加载组件时,可以通过如图4所示的方法实现,即在所述创建的加载配置文件中写入待加载组件的组件名称,而多个待加载组件各自对应的组件名称在写入所述加载配置文件时,需要保证多个组件名称字符串居左,且,每个组件名称字符串各自占据一行。
步骤403:执行所述加载配置文件获取所述资源仓库描述文件。
其中,在将加载配置文件配置完成之后,执行所述加载配置文件,即运行所述加载配置文件得到所述资源仓库描述文件,即所述第三文件夹内的资源仓库描述文件。
由上述方案可知,本申请提供的一种组件加载方法实施例三,通过在OSGi命令控制台上输入loadApp+资源仓库中待加载组件所在文件夹的上级文件夹名称的获取命令,获取资源仓库描述文件进而获取待加载组件的组件信息文件,实现将单一待加载组件加载至物联网中间件中;或通过在资源仓库中创建加载配置文件,在加载配置文件中写入待加载组件的组件名称字符串,执行该加载配置文件获取资源仓库描述文件进而获取待加载组件的组件信息文件,实现单一或多个待加载组件加载至物联网中间件中。
参考图5,其示出了本申请提供的一种组件加载系统实施例一的结构示意图,所述系统包括资源仓库创建单元501、描述文件获取单元502、信息文件获取单元503、组件加载启动单元504,其中:
所述资源仓库创建单元501,用于创建资源仓库,所述资源仓库包括至少一个待加载组件和与所述待加载组件相对应的组件信息文件。
其中,优选地,所述资源仓库创建单元501,具体用于利用面向OSGi框架的资源仓库管理服务OBR协议创建资源仓库。
需要说明的是,所述OBR协议的全称为OSGi Bundle Repository,它是中基于RFC-0112协议,面向OSGi框架的资源仓库管理服务协议。所述RFC-0112协议定义了资源仓库描述文件(XML文件)的格式,支持本地仓库和网络仓库两种形式。在本申请中,物联网中间件选择使用OBR协议创建资源仓库,实现组件加载服务,能够快捷简便地访问、管理资源仓库。
其中,优选地,所述资源仓库中包括两个及两个以上待加载组件、与每个待加载组件相对应的组件信息文件及与该资源仓库中待加载组件相关联的资源仓库描述文件。所述待加载组件的格式均为jar包格式,例如:*.jar,而所述资源仓库描述文件为XML文件格式,例如:repository.xml。
需要说明的是,本申请系统实施例实现组件加载时,预先创建资源仓库,该资源仓库中包括待加载组件、待加载组件的组件信息文件及资源仓库描述文件,在物联网中间件需要进行组件加载时,再运行所述系统。即在每次需要进行组件加载时,该资源仓库无需再次创建。
所述描述文件获取单元502,用于获取所述资源仓库中的资源仓库描述文件。
其中,在物联网中间件需要组件加载时,接收物联网中间件对组件的加载请求信息,触发所述描述文件获取单元502获取所述资源仓库中的资源仓库描述文件。
所述信息文件获取单元503,用于依据所述资源仓库描述文件中的待加载组件地址信息,获取待加载组件的组件信息文件。
其中,在获取到所述资源仓库描述文件之后,所述信息文件获取单元503依据所述资源仓库描述文件中的待加载组件地址信息,即URL信息,获取所述资源仓库中的待加载组件的组件信息文件。
所述组件加载启动单元504,用于若获取的组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求,将与所述组件名称相对应的待加载组件在物联网中间件中启动。
由上述可知,本申请提供的一种组件加载系统实施例一,通过创建包括至少一个待加载组件的资源仓库,在物联网中间件需要加载组件时,获取资源仓库中的资源仓库描述文件,进而获取待加载组件的组件信息文件,并对组件信息文件进行解析,当该组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求时,将该待加载组件在物联网中间件中启动,由此实现组件在物联网中间件中的加载,避免了现有技术中将组件代价编译入物联网中间件代码的方法较为繁琐,缺乏灵活性,且当需要在运行中的物联网中间件中加载组件时,需要停止物联网中间件的运行,重新编译待加载的组件与物联网中间件的组合代码,导致物联网中间件的运行效率较低的技术问题。
参考图6,其示出了本申请提供的一种组件加载系统实施例二的结构示意图,其中,所述资源仓库创建单元501包括第一创建子单元511、第二创建子单元512和第三创建子单元513,其中:
所述第一创建子单元511,用于将所述待加载组件置入预设的第一文件夹内,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件。
其中,优选地,所述第一创建子单元511,具体用于采用DOS命令进入预设的第一文件夹的目录,输入命令java-jar bindex.jar所述第一文件夹的名称/所述待加载组件的名称,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件。
例如:创建第一文件夹plugins文件夹,采用DOC命令进入plugins文件夹所在目录,输入命令java-jar bindex.jar plugins/*.jar,所述*.jar为待加载组件的名称;在plugins文件夹下生成*.jar对应的待加载组件的组件信息文件repository.xml。
所述第二创建子单元512,用于依据所述第一文件夹内的待加载组件,生成与所述第一文件夹相关联的资源仓库描述文件。
其中,所述资源仓库只包括一个资源仓库描述文件,其记载有所述资源仓库中所有待加载组件的组件地址信息即URL信息,该资源仓库描述文件作为元信息描述文件与置有待加载组件的第一文件夹呈平等对应关系,即在磁盘存储中处于同一级文件夹内。
所述第三创建子单元513,用于在预设第二文件夹下创建第三文件夹,并将所述第一文件夹及与所述资源仓库描述文件置于所述第三文件夹内。
其中,所述第二文件夹作为指定文件夹,相当于所述资源仓库,为其命名,例如:applications,而所述第三文件夹的命名可以为TEST,上述将所述第一文件夹及所述资源仓库描述文件置于所述第三文件夹内具体为:将所述创建的plugins文件夹拷贝至所述TEST文件夹内,而所述资源仓库描述文件在所述TEST文件夹内生成。
由上述方案可知,本申请系统实施例二采用bindex.jar工具实现待加载组件写入所述第一文件夹内,并创建组件信息文件,相对于现有技术中手工编写待加载组件的XML文件,从而实现资源仓库的创建,节省了大量系统资源消耗及成本。
参考图7,其示出了本申请提供的一种组件加载系统实施例三的结构示意图,优选地,所述描述文件获取单元502包括第一获取子单元521;
所述第一获取子单元521,用于在OSGi命令控制台上输入获取命令:loadApp+所述资源仓库中待加载组件所在文件夹的上级文件夹名称,执行所述获取命令获取所述资源仓库描述文件。
其中,其中,所述loadApp命令为OSGi命令控制台的一种命令方式。
例如:在OSGi命令控制台上输入:loadApp(命令方式)+TEST(本申请方法实施例一中所述资源仓库中待加载组件所在文件夹的上级文件夹名称,即本申请方法实施例二中第三文件夹名称)。
需要说明的是,在所述第一获取子单元521输入所述获取命令之后,执行所述获取命令,即运行所述获取命令,得到待加载组件所在文件夹的上级文件夹内的XML文件格式的文件,即与待加载组件所在文件夹平行设置的资源仓库描述文件。
参考图8,其示出了本申请提供的一种组件加载方法实施例三的另一结构示意图,优选地,所述描述文件获取单元502包括第二获取子单元522;
所述第二获取子单元522,用于在所述资源仓库中创建加载配置文件,将所述资源仓库中待加载组件的名称写入所述加载配置文件中,并执行所述加载配置文件获取所述资源仓库描述文件;
其中:
若所述资源仓库中包括多个待加载组件时,所述加载配置文件中每个待加载组件的组件名称字符串居左,且占据一行。
其中,所述加载配置文件在所述资源仓库中所述待加载组件所在目录的顶级文件夹内创建。例如,在本申请方法实施例二中的第二文件夹applications中创建加载配置文件default.ini。
需要说明的是,若所述资源仓库中待加载组件为单个时,可以直接将该待加载组件的组件名称写入所述加载配置文件,而所述资源仓库中包括多个待加载组件时,即在需要批量加载组件时,可以通过如图7所示的系统实现,即在所述创建的加载配置文件中写入待加载组件的组件名称,而多个待加载组件各自对应的组件名称在写入所述加载配置文件时,需要保证多个组件名称字符串居左,且,每个组件名称字符串各自占据一行。
由所述第二获取子单元522执行所述加载配置文件,即运行所述加载配置文件得到所述资源仓库描述文件,即所述第三文件夹内的资源仓库描述文件。
由上述方案可知,本申请提供的一种组件加载系统实施例三,通过在OSGi命令控制台上输入loadApp+资源仓库中待加载组件所在文件夹的上级文件夹名称的获取命令,获取资源仓库描述文件进而获取待加载组件的组件信息文件,实现将单一待加载组件加载至物联网中间件中;或通过在资源仓库中创建加载配置文件,在加载配置文件中写入待加载组件的组件名称字符串,执行该加载配置文件获取资源仓库描述文件进而获取待加载组件的组件信息文件,实现单一或多个待加载组件加载至物联网中间件中。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种组件加载方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (6)
1.一种组件加载方法,其特征在于,在执行所述方法前,创建资源仓库,所述资源仓库包括至少一个待加载组件、与所述待加载组件相对应的组件信息文件和资源仓库描述文件;
所述方法包括:
获取所述资源仓库中的资源仓库描述文件;
依据所述资源仓库描述文件中的待加载组件地址信息,获取待加载组件的组件信息文件;
若获取到的组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求,将与所述组件名称相对应的待加载组件在物联网中间件中启动;
其中,所述创建资源仓库包括:
将所述待加载组件置入预设的第一文件夹内,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件;
依据所述第一文件夹内的待加载组件,生成与所述第一文件夹相关联的资源仓库描述文件;
在预设第二文件夹下创建第三文件夹,并将所述第一文件夹及与所述资源仓库描述文件置于所述第三文件夹内;
其中,所述将所述待加载组件置入预设的第一文件夹内包括:
采用DOS命令进入预设的第一文件夹的目录,输入命令java-jarbindex.jar所述第一文件夹的名称/所述待加载组件的名称;所述java-jarbindex.jar所述第一文件夹的名称/所述待加载组件的名称是用于在所述第一文件夹下生成所述待加载组件对应的待加载组件的组件信息文件的命令。
2.根据权利要求1所述的方法,其特征在于,所述获取所述资源仓库中的资源仓库描述文件包括:
在OSGi命令控制台上输入获取命令:loadApp+所述资源仓库中待加载组件所在文件夹的上级文件夹名称;所述loadApp为OSGi命令控制台的一种命令方式;
执行所述获取命令获取所述资源仓库描述文件。
3.根据权利要求1所述的方法,其特征在于,所述获取所述资源仓库中的资源仓库描述文件包括:
在所述资源仓库中创建加载配置文件;
将所述资源仓库中待加载组件的名称写入所述加载配置文件中;
执行所述加载配置文件获取所述资源仓库描述文件;
其中:
若所述资源仓库中包括多个待加载组件时,所述加载配置文件中每个待加载组件的组件名称字符串居左,且占据一行。
4.一种组件加载系统,其特征在于,包括资源仓库创建单元、描述文件获取单元、信息文件获取单元、组件加载启动单元,其中:
所述资源仓库创建单元,用于创建资源仓库,所述资源仓库包括至少一个待加载组件和与所述待加载组件相对应的组件信息文件;
所述描述文件获取单元,用于获取所述资源仓库中的资源仓库描述文件;
所述信息文件获取单元,用于依据所述资源仓库描述文件中的待加载组件地址信息,获取待加载组件的组件信息文件;
所述组件加载启动单元,用于若获取的组件信息文件中的组件名称、组件版本和组件内容同时满足物联网中间件对组件的加载请求,将与所述组件名称相对应的待加载组件在物联网中间件中启动;
其中,所述资源仓库创建单元包括第一创建子单元、第二创建子单元和第三创建子单元,其中:
所述第一创建子单元,用于将所述待加载组件置入预设的第一文件夹内,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件;
所述第二创建子单元,用于依据所述第一文件夹内的待加载组件,生成与所述第一文件夹相关联的资源仓库描述文件;
所述第三创建子单元,用于在预设第二文件夹下创建第三文件夹,并将所述第一文件夹及与所述资源仓库描述文件置于所述第三文件夹内;
其中,所述第一创建子单元,具体用于采用DOS命令进入预设的第一文件夹的目录,输入命令java-jar bindex.jar所述第一文件夹的名称/所述待加载组件的名称,并在所述第一文件夹内生成与所述待加载组件相对应的组件信息文件;所述java-jar bindex.jar所述第一文件夹的名称/所述待加载组件的名称是用于在所述第一文件夹下生成所述待加载组件对应的待加载组件的组件信息文件的命令。
5.根据权利要求4所述的系统,其特征在于,所述描述文件获取单元包括第一获取子单元;
所述第一获取子单元,用于在OSGi命令控制台上输入获取命令:loadApp+所述资源仓库中待加载组件所在文件夹的上级文件夹名称,所述loadApp为OSGi命令控制台的一种命令方式;执行所述获取命令获取所述资源仓库描述文件。
6.根据权利要求4所述的系统,其特征在于,所述描述文件获取单元包括第二获取子单元;
所述第二获取子单元,用于在所述资源仓库中创建加载配置文件,将所述资源仓库中待加载组件的名称写入所述加载配置文件中,并执行所述加载配置文件获取所述资源仓库描述文件;
其中:
若所述资源仓库中包括多个待加载组件时,所述加载配置文件中每个待加载组件的组件名称字符串居左,且占据一行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210191887.8A CN102722396B (zh) | 2012-06-11 | 2012-06-11 | 一种组件加载方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210191887.8A CN102722396B (zh) | 2012-06-11 | 2012-06-11 | 一种组件加载方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102722396A CN102722396A (zh) | 2012-10-10 |
CN102722396B true CN102722396B (zh) | 2015-05-20 |
Family
ID=46948175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210191887.8A Active CN102722396B (zh) | 2012-06-11 | 2012-06-11 | 一种组件加载方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102722396B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107222527B (zh) * | 2017-05-16 | 2020-05-05 | 浙江工业大学 | 一种通过配置文件控制物联网设备分模式运行的方法 |
CN110750259B (zh) * | 2018-07-23 | 2024-04-05 | 三六零科技集团有限公司 | 构件的处理方法和装置 |
CN110750293A (zh) * | 2018-07-23 | 2020-02-04 | 北京奇虎科技有限公司 | 构件仓库的实现方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889048A (zh) * | 2006-08-03 | 2007-01-03 | 华为技术有限公司 | 组件的实现方法以及系统 |
CN101266542A (zh) * | 2008-02-01 | 2008-09-17 | 中国建设银行股份有限公司 | 一种在容器中装载组件的方法及装置 |
CN101634945A (zh) * | 2009-08-20 | 2010-01-27 | 华南理工大学 | 构件动态感知模型及其在RFID中间件Web表示层的应用 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495621B2 (en) * | 2009-06-15 | 2013-07-23 | Microsoft Corporation | Catalog-based software component management |
-
2012
- 2012-06-11 CN CN201210191887.8A patent/CN102722396B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889048A (zh) * | 2006-08-03 | 2007-01-03 | 华为技术有限公司 | 组件的实现方法以及系统 |
CN101266542A (zh) * | 2008-02-01 | 2008-09-17 | 中国建设银行股份有限公司 | 一种在容器中装载组件的方法及装置 |
CN101634945A (zh) * | 2009-08-20 | 2010-01-27 | 华南理工大学 | 构件动态感知模型及其在RFID中间件Web表示层的应用 |
Also Published As
Publication number | Publication date |
---|---|
CN102722396A (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064663B (zh) | 浏览器插件的生成、发布、加载和更新方法以及系统 | |
CN102436373B (zh) | 企业分布式应用系统中实现资源加载及资源热更新的方法 | |
JP2019032883A (ja) | ウェブアプリケーションを実施する方法、装置、サーバ、及びシステム | |
CN105159788B (zh) | 一种Android应用间动态共享资源的方法及系统 | |
US20080046882A1 (en) | Deploying j2ee web applications in an osgi environment | |
CN106339237B (zh) | 针对JavaEE领域WEB应用的插件加载框架及方法 | |
CN103838573A (zh) | 应用程序生成方法及装置 | |
CN106294113B (zh) | 一种基于可编程式测试服务的创建方法及装置 | |
WO2009043037A4 (en) | Network operating system | |
CN110874236A (zh) | 一种跨平台应用装置、终端及存储介质 | |
US20100313197A1 (en) | System and method for operating domain profile using database in core framework for sdr mobile terminals | |
CN102761628B (zh) | 泛域名识别、处理装置及方法 | |
CN102591724A (zh) | 消息交互方法及装置 | |
US20110258620A1 (en) | Method and Apparatus for Making a BPM Application Available to Multiple Tenants | |
CN105068802B (zh) | 一种跨设备运行的Web应用软件实现系统和方法 | |
CN102722396B (zh) | 一种组件加载方法及系统 | |
CN104636122A (zh) | 一种能力组件的共享方法和设备 | |
CN104699547B (zh) | JavaEE应用类加载冲突分析方法和装置 | |
CN103309985A (zh) | 针对服务注册中心的业务服务注册与发布方法及其系统 | |
CN103699635A (zh) | 信息处理方法和装置 | |
EP2897053B1 (en) | Device management method and apparatus | |
CN105487874A (zh) | 移动终端中HTML5 web应用与原生应用统一管理方法 | |
EP2216962B1 (en) | A method for deploying and managing the sip servlet application and the osgi service platform thereof | |
CN106502757A (zh) | 一种插件管理方法及装置 | |
Merzky et al. | Application level interoperability between clouds and grids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |