企业分布式应用系统中实现资源加载及资源热更新的方法技术方案

技术编号:7309388 阅读:193 留言:0更新日期:2012-05-03 03:06
本发明专利技术涉及一种企业分布式应用系统中实现资源加载以及资源热更新的方法,该方法包括开发期实现资源解析器接口和拦截器接口并配置格式定义的操作、运行期对资源加载配置文件解析的操作、运行期模块资源加载的操作以及运行期热更新线程监听的操作。采用本发明专利技术的方法能使资源的解析和热更新工作更为简单高效,增加新的资源类型时,无需修改核心代码,系统运行效率更高,性能稳定可靠,并降低了开发维护的成本,增强了系统可移植性和可扩展性,使用户专注于业务逻辑的处理,还能够快速适应业务需求和技术的变化,支撑建立高度模块化又高度整合的软件系统,其适用范围较为广泛,为企业应用中对资源的管理打下了坚实的基础。

【技术实现步骤摘要】

本专利技术涉及计算机应用
,特别涉及计算机企业应用系统
,具体是指一种企业分布式应用系统中实现资源加载以及资源热更新的方法。
技术介绍
目前,在企业级应用开发领域,其架构主要是按照面向服务体系架构 (Service-Oriented Architecture,S0A)或者按,照 J2EE架构(Java 2Platform Enterprise Edition)实现的,在功能开发时,通常将应用划分为多个功能模块,每个功能模块完成特定的功能。在模块功能实现的过程中,不可避免地要涉及到与各种资源,在功能代码实现中需要对资源进行解析加工,把各种资源转换化为机器能识别的形式。应用中的每个模块相对独立,包含了实现模块功能需要的所有资源,模块之间通过模块间的依赖关系可以使用依赖模块中的资源,实现资源的重用。模块中的资源通常包括页面展现资源、服务描述资源、业务逻辑资源、模块配置以及模块元数据资源等,为了管理的方便,每个模块的资源通常部署在单独的压缩包或者目录中。在运行期,系统加载模块中资源时首先对模块资源的存储形式如压缩包(zip、jar)、文件目录、资源存储库等进行分析,对压缩包等类型的模块进行解压缩,对通过存储库存取资源的模块从存储库中下载模块对应的资源至本地系统中,然后系统针对不同的资源分别进行处理。在处理资源时,针对不同类型的资源文件分别提供不同的资源查找逻辑和加载逻辑,对于模块中不同类型的资源将有可能进行重复遍历和搜索,由此造成效率的降低以及功能代码的重复,同时如果新增对某一类资源的处理,则需要重新编写与其资源相对应的查找以及加载逻辑。在资源的热更新处理方面,每一类资源单独启动针对此资源的监听线程进行处理,不同类型的资源使用不同的资源变更通知机制,缺乏统一的热更新通知和管理机制,同时大量启动线程也浪费了大量的系统资源。随着应用系统的不断扩大,系统中包含的资源也越来越多,格式也越来越复杂,通常为了编码实现的方便,系统中已提供了对已有资源类型的支持,资源处理与应用逻辑采取的是紧耦合的方式,应用功能开发完成后,如果新增对一种资源类型的支持,需要修改其核心业务代码,这都将使测试人员和维护人员的工作量急剧增加。随着现有技术中,在多系统分工合作日益地紧密,如何方便的提供针对不同资源类型的加载、热更新支持成为该
中尤为迫切需要解决的问题。
技术实现思路
本专利技术的目的是克服了上述现有技术中的缺点,提供一种使资源的解析以及热更新工作变更为简单、高效,增加新的资源类型时,无需修改核心代码,从而使资源的处理以及解析过程更加直观,提高了开发的效率,系统运行效率较高,性能稳定可靠,开发维护成本较低,系统可移植性和可扩展性更强,且快速适应业务需求的变化和技术变化的企业分布式应用系统中实现资源加载以及资源热更新的方法为了实现上述的目的,本专利技术的企业分布式应用系统中实现资源加载以及资源热更新的方法具体包括开发期实现资源解析器接口和拦截器接口并配置格式定义的操作、运行期对资源加载配置文件解析的操作、运行期模块资源加载的操作以及运行期热更新线程监听的操作;其中,所述的开发期实现资源解析器接口和拦截器接口并配置格式定义的操作, 包括以下步骤(11)新建资源解析扩展包;(12)编写实现资源解析器接口的实现类;(13)编写实现资源拦截器接口的实现类;(14)配置资源解析器、拦截器与资源的映射规则;(15)将资源解析器扩展包部署到运行环境中;所述的运行期对资源加载配置文件解析的操作,包括以下步骤(21)提供支持资源解析器扩展的接口类,以供扩展;(22)提供支持资源拦截器扩展的接口类,以供扩展;(23)加载定义的资源解析器、拦截器与资源映射规则配置文件;(24)根据对配置文件的解析形成资源与解析器的映射列表;(25)根据对配置文件的解析形成资源与拦截器的映射列表;(26)对资源与解析器的映射列表按优先级进行排序;所述的运行期模块资源加载的操作,包括以下步骤(31)遍历模块下所有资源,并缓存;(32)对资源按资源解析器的配置进行资源的分类;(33)执行资源解析前的拦截器;(34)针对分类资源调用不同的资源解析器进行资源解析;(35)判断资源解析器是否支持懒加载;(36)缓存资源解析后的模型;(37)执行资源解析后的拦截器;所述的运行期热更新线程监听的操作,包括以下步骤(41)资源热更新线程的编写;(42)设置热更新线程的扫描间隔;(43)遍历模块对应的目录,查找变更的资源;(44)对变更资源按资源解析器的配置进行资源的分类;(45)执行变更资源解析前的拦截器;(46)针对分类变更资源调用不同的资源解析器进行资源解析;(47)判断变更资源解析器是否支持懒加载;(48)变更缓存中资源解析的模型;(49)执行变更资源解析后的拦截器。该企业分布式应用系统中实现资源加载以及资源热更新的方法中,所述的步骤 (11)具体为新建页面流资源解析扩展包,其包括以下步骤(Ila)通过开发环境的“文件”菜单中新建子菜单,选择新建页面流资源解析扩展包;(lib)输入页面流资源解析扩展包的名称,系统创建相应的目录结构;(Ilc)生成页面流资源解析扩展包的资源树,包括配置、接口等结点。所述的步骤(1 具体为编写实现页面流资源解析器接口的实现类,其包括以下步骤(12a)新建 Java Class,实现资源加载的接口 IResourceLoader ;(12b)实现资源加载的接口中的loadResource资源加载方法,对资源进行解析, 转换为资源的内存模型;(12c)对新增资源进行解析处理;(12d)对修改资源进行解析处理;(12e)对删除资源进行解析处理;(12f)设置资源是否支持懒加载,本页面流资源支持懒加载。所述的步骤(1 具体为编写实现页面流资源拦截器接口的实现类,其包括以下步骤(13a)新建 Java Class,实现资源拦截器的接口 IResourceHandler ;(13b)实现资源拦截器的接口中的doBefore前执行、doAfter后执行、 doException异常执行方法,对资源解析前后进行拦截;(13c)对资源解析前拦截器处理;(13d)对资源解析后拦截器处理;(13e)对资源解析出错后拦截器处理。所述的步骤(14)具体为配置页面流资源解析器、拦截器与资源的映射规则,其包括以下步骤(14a)在资源解析扩展包扩展包中资源树下的“配置”结点下新建资源处理器配置文件 ResourceProcessor. xml ;(14b)在文件中配置资源处理的解析器、拦截器以及优先级。所述的步骤(1 具体为页面流资源解析器扩展包部署到运行环境中,其包括以下步骤(15a)在资源解析扩展包资源树上选择“部署”菜单;(15b)资源解析对应扩展包下的资源按目录结构部署到运行环境中。该企业分布式应用系统中实现资源加载以及资源热更新的方法中,所述的步骤 (21)具体包括以下步骤(21a)定义资源解析器操作的接口类^esourceLoader,供用户扩展,接口中包括对新增、修改、删除资源的处理以及设置解析器是否支持懒加载;(21b)提供根据资源类型获取资源解析器的工厂类ResourceLoaderfactory。所述的步骤0 具体包括以下步骤(22a)定义资源拦截器操本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王锋
申请(专利权)人:上海普元信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术