一种资源动态升级方法及系统的制作方法

文档序号:7701368阅读:75来源:国知局
专利名称:一种资源动态升级方法及系统的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源动态升级方法及系统。
背景技术
开放服务网关发起者(OSGI, Open Service Gateway Initiative)服务平台是一个开放并且提供统一接口标准的插件体系框架,亦称为Java语言的动态模块系统,为模块化应用的开发定义了一个基础架构。基于这个基础架构,服务提供商、程序开发人员、软件提供商、服务网管运营商和设备提供商能够协调地联合起来开发、部署以及管理向用户提供的各种服务。运行在OSGI服务平台基础上的系统由多个模块组成。OSGI服务平台提供了模块的生命周期管理,规范了模块之间的相互依赖相互访问,模块之间采用面向服务的方式进 行功能调用。同时通过对模块的有效隔离,实现了模块的动态加载和动态卸载。OSGI为动态扩充、修改系统功能和改变系统行为提供了支撑,在OSGI服务平台上可以部署许多OSGI的组件,即模块化的单元,称为插件,插件以标准zip压缩包的形式部署,由manifest文件,java类以及一个或多个资源组成。manifest文件定义了插件必须的描述信息,用于安装激活插件,同时还声明了资源之间的依赖关系,Java类能够支持动态加载,通过版本号进行匹配筛选,使用面向服务的体系结构(SOA, Service Oriented Architecture),支持服务动态调用,通过服务属性,比如优先级(ranking)进行匹配筛选。本发明的发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷对于资源缺少标准的定义和统一的管理机制,插件的资源只能包含在插件内部使用,无法发布到运行在OSGI服务平台基础上的整个系统中,降低了资源的升级效率,另外由于资源只能在插件内部使用,当该资源在使用时不能支持动态升级。

发明内容
本发明实施例提供了一种资源动态升级方法及系统,使得客户端能够实现资源的动态升级,提闻资源的升级效率。本发明实施例提供的资源动态升级方法,包括资源获取模块接收客户端发送的资源获取请求信息,其中,资源获取请求信息中包含有客户端需要获取的资源的类型和标识;资源获取模块从资源库中获取和资源获取请求信息中资源的类型和标识都相同的资源对象,其中,资源库中保存有资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,资源对象携带有类型和标识;资源获取模块将获取到的资源对象发送给客户端。本发明实施例提供的资源动态升级系统,包括 资源获取模块和资源库,其中,资源获取模块,用于接收客户端发送的资源获取请求信息,资源获取请求信息中包含有客户端需要获取的资源的类型和标识;从资源库中获取和资源获取请求信息中资源的类型和标识都相同的资源对象;将获取到的资源对象发送给客户端;资源库,用于保存资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,资源对象携带有类型和标识。从以上技术方案可以看出,本发明实施例具有以下优点在本发明实施例中,当客户端请求获取资源时,资源获取模块能够从资源库中获取和资源获取请求信息中的类型和标识都相同的资源对象,最后将获取到的资源对象发送给客户端,由于资源获取模块是从资源库中获取资源对象,而资源库中保存的是资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,因此资源获取模块发送给客户端的资源对象是资源处理模块为OSGI服务平台中动态部署的插件生成的,客户端能够自动获得OSGI服务平台中动态部署的资源,能够实现资源的动态升级,提高资源的升级效 率。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。图I为本发明实施例提供的一种资源动态升级方法的示意图;图2为本发明实施例提供的另一种资源动态升级方法的示意图;图3为本发明实施例提供的一种资源动态升级系统的示意图;图4为本发明实施例提供的一种资源处理模块的示意图;图5为本发明实施例提供的一种资源获取模块的示意图。
具体实施例方式本发明实施例提供了一种资源动态升级方法及系统,使得客户端能够实现资源的动态升级,提闻资源的升级效率。为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供的资源动态升级方法,参见图1,具体步骤可以包括101、资源获取模块接收客户端发送的资源获取请求信息,资源获取请求信息中包含有客户端需要获取的资源的类型和标识;在OSGI服务平台中,当客户端(client)需要获取资源时向本发明实施例中的资源获取模块发送资源获取请求信息,该资源获取请求信息中包含有该客户端需要获取的资源的类型和标识,资源获取模块提供和客户端交互的接口,通过接口获取到客户端需要获取的资源的类型和标识。102、资源获取模块从资源库中获取和该资源获取请求信息中资源的类型和标识都相同的资源对象;
资源获取模块接收到客户端发送的资源获取请求信息后,从资源库中获取和该资源获取请求信息中资源的类型和标识都相同的资源对象,其中,资源库中保存有资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,资源对象携带有类型和标识,本发明实施例中是从资源库中获取资源对象,这和现有技术中从插件中获取资源对象是不同的,由于资源库中保存有资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,故资源获取模块就可以通过统一的接口从统一的资源库中获取到和资源获取请求信息中资源的类型和标识都相同的资源对象,可以实现资源的动态升级。在一种实际的应用场景下,资源获取模块可以为根据不同类型的资源分别预置不同的筛选策略,即对于类型相同的资源可以预置同一筛选策略,按照该预置的筛选策略在资源库中筛选,以筛选出和资源获取请求信息中资源的类型和标识都相同的资源对象,具体的筛选策略可以为按照资源的优先级进行筛选,即筛选出优先级最高、类型和标识都和资源获取请求信息中资源相同的资源对象,具体的筛选策略还可以为按照资源创建的时间进行筛选等,在具体的实现上可以有多种实现方式此处不作限定。103、资源获取模块将获取到的资源对象发送给客户端。
资源获取模块在获取到符合资源获取请求信息中资源的条件的资源对象后,通过资源获取模块提供的接口将获取到的资源对象发送给客户端,则客户端可以自动获得OSGI服务平台中动态部署的资源,使得客户端能够实现资源的动态升级。在102中,当资源获取模块按照预置的筛选策略对和资源获取请求信息中资源的类型和标识都相同的资源对象进行筛选后,在本步骤中,可以具体为资源获取模块将筛选出的资源对象发送给客户端。在本发明实施例中,当客户端请求获取资源时,资源获取模块能够从资源库中获取和资源获取请求信息中的类型和标识都相同的资源对象,最后将获取到的资源对象发送给客户端,由于资源获取模块是从资源库中获取资源对象,而资源库中保存的是资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,因此资源获取模块发送给客户端的资源对象是资源处理模块为OSGI服务平台中动态部署的插件生成的,客户端能够自动获得OSGI服务平台中动态部署的资源,能够实现资源的动态升级,提高资源的升级效率。下面将以另一实施例介绍本发明实施例中的资源动态升级方法,如图2所示201、资源处理模块从OSGI服务平台中动态部署的插件中获取该插件的资源;在本发明实施例中,资源处理模块从OSGI服务平台中动态部署的插件中获取该插件的资源,在一种实际应用场景中可以为,当一个插件在运行的OSGI服务平台中动态部署时,资源处理模块可以监听OSGI服务平台中的加载事件和卸载事件,从插件中获取插件对象和资源描述对象,其中,插件对象为插件的描述信息,插件对象可以用来描述插件的名称、版本号等,资源描述对象为插件中的资源的类型描述信息和资源内容,在插件中可以根据资源的类型不同设置不同的资源描述对象,资源内容为文件流对象。202、资源处理模块解析该插件的资源,并为该插件的每个资源生成携带有类型和标识的资源对象;在本发明实施例中,资源处理模块解析插件的资源生成携带有类型和标识的资源对象可以有多种实现方法,可选的一种为,资源处理模块需要为该插件中每种不同类型的资源定义与不同类型的资源对应的资源解析器,从该插件的每个资源描述对象开始,调用和该类型的资源对应的资源解析器解析每个资源描述对象中的所有资源,并为每个资源生成携带有类型和标识的资源对象,这是一个循环的过程,需要将该插件中的所有资源描述对象都按照该解析方法循环执行后才完成对该插件的解析过程,在实际应用中,可以将该插件的所有资源描述对象组成一个资源描述对象列表,每次在解析完一个资源描述对象后就判断该资源描述对象列表中是否还存在没有被解析的资源描述对象,若所有的资源描述对象都已经被解析,则结束对该插件的解析过程,当然可以理解的是,在对一个资源描述对象中的资源进行解析时,也可以生成一个资源对象列表,用于判断该资源描述对象中的所有资源是否已经被解析,此处不再赘述。另外,需要说明的是,本发明实施例中是以资源处理模块对一个插件的解析过程为例进行说明的,若有多个插件运行在OSGI服务平台中则可以根据不同的插件分别执行对各个插件的解析过程,此处不作限定。需要说明的是,一种可选地方式是,当该插件中的所有资源都生成资源对象以后,资源处理模块通过调用资源对象的初始化方法将生成的资源对象初始化,对于有的资源比如外部文件或数据库链接,需要进行初始化,以形成有效的资源对象才能够被使用,而对于有的资源比如简单的配置文件则不需要进行初始化。在实际应用场景中,将资源对象初始 化,这也是一个循环的过程,直到完成将所有的资源对象初始化后结束初始化过程。203、资源处理模块将资源对象存储到资源库中,其中,资源库用于保存携带有类型和标识的资源对象;资源处理模块将初始化后的资源对象存储到资源库具体可以有多种存储的方式,一种具体的应用场景可以是按照资源的类型将资源对象分别存储到资源库中,以便资源获取模块可以按照资源的类型来获取,另一种具体的应用场景可以是按照资源的创建时间将资源对象分别存储到资源库中,另一种具体的应用场景可以是资源获取模块将按照预置的筛选策略的筛选出的资源对象进行缓存,并监听资源对象的变化情况,当资源对象有变化时,设置资源对象为失效,或重新获取资源对象,资源获取模块可以将常用类型的资源如配置信息缓存到资源缓存器,在需要获取该配置信息时可以直接从资源缓存器中获取即可,而不需要到资源库中获取,可以进一步提供资源的使用效率。204、资源获取模块接收客户端发送的资源获取请求信息,资源获取请求信息中包含有客户端需要获取的资源的类型和标识;在OSGI服务平台中,当客户端需要获取资源时向本发明实施例中的资源获取模块发送资源获取请求信息,该资源获取请求信息中包含有该客户端需要获取的资源的类型和标识,资源获取模块提供和客户端交互的接口,通过接口获取到客户端需要获取的资源的类型和标识。205、资源获取模块从资源库中获取和该资源获取请求信息中资源的类型和标识都相同的资源对象;资源获取模块接收到客户端发送的资源获取请求信息后,从资源库中获取和该资源获取请求信息中资源的类型和标识都相同的资源对象,其中,资源库中保存有资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,资源对象携带有类型和标识。在一种实际的应用场景下,资源获取模块可以为根据不同类型的资源分别预置不同的筛选策略,即对于类型相同的资源可以预置同一筛选策略,按照该预置的筛选策略在资源库中筛选,以筛选出和资源获取请求信息中资源的类型和标识都相同的资源对象,具体的筛选策略可以为按照资源的优先级进行筛选,即筛选出优先级最高、类型和标识都和资源获取请求信息中资源相同的资源对象,具体的筛选策略还可以为按照资源创建的时间进行筛选等,在具体的实现上可以有多种实现方式此处不作限定。206、资源获取模块将获取到的资源对象发送给客户端。资源获取模块在获取到符合资源获取请求信息中资源的条件的资源对象后,通过资源获取模块提供的接口将获取到的资源对象发送给客户端,则客户端可以自动获得OSGI服务平台中动态部署的资源,使得客户端能够实现资源的动态升级。在205中,当资源获取模块按照预置的筛选策略对和资源获取请求信息中资源的类型和标识都相同的资源对象进行筛选后,在本步骤中,可以具体为资源获取模块将筛选出的资源对象发送给客户端。
在本发明实施例中,当客户端请求获取资源时,资源获取模块能够从资源库中获取和资源获取请求信息中的类型和标识都相同的资源对象,最后将获取到的资源对象发送给客户端,由于资源获取模块是从资源库中获取资源对象,而资源库中保存的是资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,因此资源获取模块发送给客户端的资源对象是资源处理模块为OSGI服务平台中动态部署的插件生成的,客户端能够自动获得OSGI服务平台中动态部署的资源,能够实现资源的动态升级,提高资源的升级效率。以上实施例介绍了本发明实施例中的资源动态升级方法,接下来介绍使用该资源动态升级方法的资源动态升级系统,请参照如下实施例。请参阅图3,本发明实施例提供的资源动态升级系统300包括资源获取模块301和资源库302,其中,资源获取模块301,用于接收客户端发送的资源获取请求信息,其中,资源获取请求信息中包含有客户端需要获取的资源的类型和标识;从资源库302中获取和资源获取请求信息中资源的类型和标识都相同的资源对象;将获取到的资源对象发送给客户端;资源库302,用于保存资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,其中资源对象携带有类型和标识,本发明实施例中资源库302将资源处理模块对插件进行处理后的结果资源对象都存储起来,以便资源获取模块能够根据客户端的需要动态获取。另一种可选的方式是,本发明实施例中的资源动态升级系统还包括插件303和资源处理模块304,其中,插件303中包含有插件对象和资源描述对象,插件对象为插件的描述信息,插件对象可以用来描述插件的名称、版本号等,资源描述对象为插件中的资源的类型描述信息和资源内容,在插件中可以根据资源的类型不同设置不同的资源描述对象,资源内容为文件流对象。在实际应用中,资源动态升级系统300中包含的插件各个不作限定,可以包含一个插件,或者多个插件,图3中仅示出了一个插件的情况。资源处理模块304,用于从OSGI服务平台中动态部署的插件中获取插件的资源;解析该插件303的资源,并为插件303的每个资源生成携带有类型和标识的资源对象;将生成的资源对象存储到资源库302中。
以上实施例只介绍了各模块单元的功能,具体各模块单元之间的执行过程可参见如上介绍的方法实施例,此处不再赘述。在本发明实施例中,当客户端请求获取资源时,资源获取模块301能够从资源库302中获取和资源获取请求信息中的类型和标识都相同的资源对象,最后将获取到的资源对象发送给客户端,由于资源获取模块301从资源库302中获取资源对象,而资源库中保存的是资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,因此资源获取模块301发送给客户端的资源对象是资源处理模块为OSGI服务平台中动态部署的插件生成的,客户端能够自动获得OSGI服务平台中动态部署的资源,能够实现资源的动态升级,提高资源的升级效率。在实际的应用场景中,各模块单元根据实际的场景还可包括不同的子模块单元,接下来将给予说明,
如图4所示,资源处理模块304包括生命周期管理器3041,资源解析管理器3042,资源解析器3043,资源存储管理器3044,其中,生命周期管理器3041,用于监听OSGI服务平台中的加载事件和卸载事件,从OSGI服务平台中动态部署的插件中获取插件对象和资源描述对象;还用于调用每个资源对象的初始化方法将资源对象初始化;资源解析管理器3042,用于按照资源类型的不同分别调用不同的资源解析器3043 ;资源解析器3043,用于根据生命周期管理器3041获取的插件对象和资源描述对象解析资源描述对象中的资源,并为资源描述对象中的每个资源生成资源对象,资源解析器3043提供标准的接口,接口包含有解析函数,图4中仅画出了一个资源解析器,但在实际应用中资源处理模块304中可以包括多个资源解析器,分别用于解析类型不同的资源,此处不作限定。资源存储管理器3044,用于将资源对象存储到资源库中。如图5所示,资源获取模块301包括资源筛选管理器3011和资源筛选器3012,其中,资源筛选管理器3011,用于接收客户端发送的资源获取请求信息,根据资源获取请求信息中包含的客户端需要获取的资源的类型和标识分别调用不同的资源筛选器3012 ;还用于将筛选出的资源对象发送给客户端;资源筛选器3012,用于按照预置的筛选策略对和资源获取请求信息中资源的类型和标识都相同的资源对象进行筛选;资源筛选器3012提供标准的接口,实现资源的筛选算法,图5中仅画出了一个资源筛选器,但在实际应用中资源获取模块301中可以包括多个资源筛选器,分别用于按照不同的筛选算法筛选资源,此处不作限定。在另一种应用场景下,资源获取模块301还可以包括资源缓存器(图5中未示出),用于将按照预置的筛选策略的筛选出的资源对象进行缓存,并监听资源对象的变化情况,当资源对象有变化时,设置资源对象为失效,或重新获取资源对象。在本发明实施例中,资源处理模块304将插件303中的资源进行解析,并生成资源对象,然后将生成的资源对象初始化后存储到资源库302中,当客户端请求获取资源时,资源获取模块301能够从资源库302中获取和资源获取请求信息中的类型和标识都相同的资源对象,最后将获取到的资源对象发送给客户端,由于资源获取模块301是从资源库302中获取资源对象,而资源库中保存的是资源处理模块304为OSGI服务平台中动态部署的插件生成的资源对象,因此资源获取模块301发送给客户端的资源对象是资源处理模块304为OSGI服务平台中动态部署的插件生成的,客户端能够自动获得OSGI服务平台中动态部署的资源,能够实现了资源的动态升级,提高资源的升级效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明所提供的一种资源动态升级方法及系统进行了详细介绍,对于本领 域的一般技术人员,依据本发明实施例的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种资源动态升级方法,其特征在于,包括 资源获取模块接收客户端发送的资源获取请求信息,所述资源获取请求信息中包含有所述客户端需要获取的资源的类型和标识; 资源获取模块从所述资源库中获取和所述资源获取请求信息中资源的类型和标识都相同的资源对象,所述资源库中保存有资源处理模块为开放服务网关发起者OSGI服务平台中动态部署的插件生成的资源对象,所述资源对象携带有类型和标识; 资源获取模块将获取到的资源对象发送给所述客户端。
2.根据权利要求I所述的资源动态升级方法,其特征在于,所述资源获取模块接收客户端发送的资源获取请求信息之前还包括 资源处理模块从所述OSGI服务平台中动态部署的插件中获取所述插件的资源;资源处理模块解析所述插件的资源,并为所述插件的每个资源生成携带有类型和标识的资源对象; 资源处理模块将所述资源对象存储到资源库中,所述资源库用于保存携带有类型和标识的资源对象。
3.根据权利要求2所述的资源动态升级方法,其特征在于,所述资源处理模块为插件的每个资源生成资源对象之后包括 资源处理模块通过调用所述资源对象的初始化方法将所述资源对象初始化; 所述资源处理模块将所述资源对象存储到资源库中具体包括 资源处理模块将初始化后的资源对象存储到资源库中。
4.根据权利要求2所述的资源动态升级方法,其特征在于,所述资源处理模块从所述OSGI服务平台中动态部署的插件中获取所述插件的资源包括 资源处理模块监听所述OSGI服务平台中的加载事件和卸载事件,从所述OSGI服务平台中动态部署的插件中获取插件对象和资源描述对象,所述插件对象为插件的描述信息,所述资源描述对象为插件中的资源的类型描述信息和资源内容。
5.根据权利要求4所述的资源动态升级方法,其特征在于,所述资源处理模块解析所述插件的资源,并为所述插件的每个资源生成资源对象包括 资源处理模块解析每个资源描述对象中的资源,并为所述资源描述对象中的每个资源生成资源对象。
6.根据权利要求I所述的资源动态升级方法,其特征在于,所述资源获取模块从所述资源库中获取和所述资源获取请求信息中资源的类型和标识都相同的资源对象包括 资源获取模块按照预置的筛选策略对和所述资源获取请求信息中资源的类型和标识都相同的资源对象进行筛选; 所述资源获取模块将获取到的资源对象发送给所述客户端具体包括 资源获取模块将筛选出的资源对象发送给所述客户端。
7.一种资源动态升级系统,其特征在于,包括资源获取模块和资源库,其中, 所述资源获取模块,用于接收客户端发送的资源获取请求信息,所述资源获取请求信息中包含有所述客户端需要获取的资源的类型和标识;从所述资源库中获取和所述资源获取请求信息中资源的类型和标识都相同的资源对象;将获取到的资源对象发送给所述客户端;所述资源库,用于保存资源处理模块为OSGI服务平台中动态部署的插件生成的资源对象,所述资源对象携带有类型和标识。
8.根据权利要求7所述的资源动态升级系统,其特征在于,所述资源动态升级系统还包括插件和资源处理模块,其中, 所述资源处理模块,用于从开放服务网关发起者OSGI服务平台中动态部署的插件中获取所述插件的资源;解析所述插件的资源,并为所述插件的每个资源生成携带有类型和标识的资源对象;将所述资源对象存储到资源库中。
9.根据权利要求8所述的资源动态升级系统,其特征在于,所述资源处理模块包括 生命周期管理器,用于监听所述OSGI服务平台中的加载事件和卸载事件,从所述OSGI服务平台中动态部署的插件中获取插件对象和资源描述对象,所述插件对象为插件的描述信息,所述资源描述对象为插件中的资源的类型描述信息和资源内容; 资源解析管理器,用于按照资源类型的不同分别调用不同的资源解析器; 资源解析器,用于根据生命周期管理器获取的插件对象和资源描述对象解析资源描述对象中的资源,并为资源描述对象中的每个资源生成资源对象; 资源存储管理器,用于将所述资源对象存储到资源库中。
10.根据权利要求8所述的资源动态升级系统,其特征在于,所述资源获取模块包括 资源筛选管理器,用于接收客户端发送的资源获取请求信息,根据所述资源获取请求信息中包含的客户端需要获取的资源的类型分别调用不同的资源筛选器; 资源筛选器,用于按照预置的筛选策略对和所述资源获取请求信息中资源的类型和标识都相同的资源对象进行筛选; 所述资源筛选管理器,还用于将筛选出的资源对象发送给所述客户端。
全文摘要
本发明实施例公开了一种资源动态升级方法及系统,使得客户端能够实现资源的动态升级,提高资源的升级效率。本发明实施例方法包括资源获取模块接收客户端发送的资源获取请求信息,所述资源获取请求信息中包含有所述客户端需要获取的资源的类型和标识;资源获取模块从所述资源库中获取和所述资源获取请求信息中资源的类型和标识都相同的资源对象,所述资源库中保存有资源处理模块为开放服务网关发起者OSGI服务平台中动态部署的插件生成的资源对象,所述资源对象携带有类型和标识;资源获取模块将获取到的资源对象发送给所述客户端。
文档编号H04L29/06GK102843342SQ201110169469
公开日2012年12月26日 申请日期2011年6月22日 优先权日2011年6月22日
发明者王云 申请人:华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1