CN101008901A - 实现应用系统动态升级的方法及系统 - Google Patents

实现应用系统动态升级的方法及系统 Download PDF

Info

Publication number
CN101008901A
CN101008901A CN 200710003146 CN200710003146A CN101008901A CN 101008901 A CN101008901 A CN 101008901A CN 200710003146 CN200710003146 CN 200710003146 CN 200710003146 A CN200710003146 A CN 200710003146A CN 101008901 A CN101008901 A CN 101008901A
Authority
CN
China
Prior art keywords
assembly
business module
module
classloader
component
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.)
Granted
Application number
CN 200710003146
Other languages
English (en)
Other versions
CN100442233C (zh
Inventor
钟麟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2007100031461A priority Critical patent/CN100442233C/zh
Publication of CN101008901A publication Critical patent/CN101008901A/zh
Application granted granted Critical
Publication of CN100442233C publication Critical patent/CN100442233C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种实现应用系统动态升级的方法及系统,其中所述方法,包括:加载解析新增业务模块,读取新增业务模块的模块描述信息,并为所述新增业务模块构建独立的类加载器;从所述类加载器中获取所述新增业务模块的组件信息,构建组件、装配组件、以及适配组件。本发明实施例,在JAVA环境下,通过构建前端控制器、组件管理器、和类空间,为每个新增业务模块创建独立的类加载器,解决了同样标识的类可以存在多个不同版本的问题,因而也就可以构建出不同版本的组件,完成应用系统的平滑升级。

Description

实现应用系统动态升级的方法及系统
技术领域
本发明涉及通信技术领域,尤其涉及一种在JAVA环境下实现应用系统动态升级的方法及装置。
背景技术
在JAVA环境下,有些应用系统,例如企业级应用系统、电信级应用系统,系统需求变化频繁,通常都需要7×24小时不间断服务。在进行系统升级时,通常都要停止正在运行的系统,使在此期间使用该系统的用户被中断。
为了改进上述不足,现有技术中,采用负载分担的方式来进行系统升级,具体如下。
如图1所示,为每个服务器,例如服务器1、服务器2、服务器3部署相同的应用系统,并在客户端,例如客户端1、客户端2、客户端3和各服务器之间增设前置机,服务器通过前置机对客户端提供服务,客户端的用户请求被前置机分发到不同的服务器上;
系统升级时,要每台服务器单独升级,例如,要首先对服务器1进行升级,那么,要等到服务器1接收用户请求较少时进行:
将客户端发送来的用户请求转发到服务器2、服务器3上,然后停止服务器1正在运行的系统,进行系统更新、调试,待该服务器升级完毕后,再将服务器1连接到前置机上,对外提供服务;
采用相同方法对其它服务器,服务器2、服务器3进行系统升级。至此,系统升级完毕。
上述技术方案存在如下技术缺陷:
1、不能进行动态升级:系统升级时需要等到服务器接收到用户请求较少时进行,这对于7×24小时全天运行的系统来说,很难找到合适的时机;
2、升级时间长:一方面系统升级要寻找合适的时机,需要较长的等待时间;另外一方面,升级时系统的启动停止需要较长的时间,升级步骤多,需要人工多次干预,耗时也较长。如果需要升级的服务器很多,那么在指定的时间内很难完成对所有服务器的系统升级。
发明内容
为此,本发明实施例提供了一种实现应用系统动态升级的方法及系统,使应用系统能够动态升级。
于是,本发明实施例提供了一种实现应用系统动态升级的方法,包括:
加载解析新增业务模块,读取新增业务模块的模块描述信息,并为所述新增业务模块构建独立的类加载器;
从所述类加载器中获取所述新增业务模块的组件信息,构建组件、装配组件、以及适配组件。
本发明实施例还提供了一种在JAVA环境下实现应用系统动态升级的系统,包括:
前端控制器,用于与客户端交换信息、以及用于向组件管理器发送查询组件信息;
组件管理器,用于对组件进行管理,构建组件,装配组件,并能够根据前端控制器发送的查询组件信息选取所需的组件,并将选取的结果返回给前端控制器;
类空间,用于加载解析新增业务模块,读取所述新增业务模块的模块描述信息,为所述新增业务模块构建独立的类加载器;
类空间为要加载的新增业务模块构建独立的类加载器,并通知组件管理器有新增业务模块被加载,组件管理器获取所述类加载器中的组件信息,构建组件、装配组件、及适配组件。
本发明实施例,在JAVA环境下,通过构建前端控制器、组件管理器、和类空间,为每个新增业务模块创建独立的类加载器,解决了同样标识的类可以存在多个不同版本的问题,因而也就可以构建出不同版本的组件,完成应用系统的平滑升级。
附图说明
图1为现有技术中采用负载分担方式对应用系统进行升级的示意图;
图2为本发明实施例所述模块管理引擎结构示意图;
图3为本发明实施例按照图2所述构建的模块管理引擎而实现应用系统动态升级方法流程图;
图4为本发明实施例所述实现应用系统动态升级的系统结构示意图;
图5为图4所述本发明实施例中组件管理器结构示意图;
图6为图4所述本发明实施例中类空间结构示意图。
具体实施方式
下面,结合附图对本发明实施例进行详细描述。
在JAVA环境下,实现应用系统动态升级的方法,包括:
加载解析新增业务模块,读取该新增业务模块的模块描述信息,并为所述新增业务模块构建独立的类加载器;
通过所述类加载器获取所述新增业务模块的组件信息,构建组件、装配组件、以及适配组件。
所述新增业务模块的模块描述信息,为系统动态升级所需要的模块描述信息,包括:
1)标识信息,是全局唯一的能够标识新增业务模块的信息,该信息用以标识某一新增业务模块,新增业务模块有多个版本时,就对应多个不同的标识信息;
2)版本信息,用于标识新增业务模块的版本;
3)文件导出信息,该信息描述了新增业务模块能够提供给其他的业务模块、并被其他业务模块调用的文件信息;
其中,文件导出信息可以采用JAVA中import的语法描述方式,描述新增业务模块能够提供的被其他业务模块调用的文件信息;
文件导出信息可以加上版本信息,也可以没有版本信息的描述,缺省为采用本模块的版本信息;
4)文件导入信息,该信息描述了新增业务模块需要其他业务模块提供文件的文件信息,也就是说,该信息描述了新增业务模块需要调用其他业务模块文件的文件信息;
其中,文件导入信息可以采用JAVA中import语法的方式,描述需要调用的文件信息;
文件导入信息可以加上版本信息,也可以没有版本信息的描述,缺省为任何版本的文件均满足条件;
5)组件信息,包括组件声明信息和组件依赖关系信息,其中,组件声明信息,描述了新增业务模块需要构建组件时所需要的信息,该信息包括组件的类名、组件的属性描述、组件配置信息、以及组件生命周期描述信息;
组件依赖关系信息,描述了需要协同某组件工作的其他组件的标识信息、版本信息、以及当依赖的某个组件有多个版本存在时的决策信息;
其中,新增业务模块的文件导出信息和文件导入信息是类空间创建类加载器所必备的信息。
其中,应用系统适配完组件后,还包括:
应用系统查询组件;
选取应用系统所需的组件;
并调用所述组件。
其中,读取所述新增业务模块的模块描述信息时,记录所述模块描述信息的文件导出信息;
检查已经创建了独立类加载器的业务模块,判断所述新增业务模块的文件导出信息是否符合所述已经创建了独立类加载器业务模块的文件导入信息,如果符合,则将所述新增业务模块的导出文件与所述已经创建了独立类加载器业务模块其类加载器所引用的文件进行比较,判断文件版本的高低,如果所述新增业务模块中的导出文件版本高,则更新所述已经创建了独立类加载器业务模块所对应的类加载器,让该类加载器指向所述新增业务模块的导出文件,所述新增业务模块的文件导出信息包括,导出文件的唯一标识信息、以及导出文件的版本信息。
其中,所述为新增业务模块构建独立的类加载器,包括:
读取所述新增业务模块中的模块描述信息,判断应用系统中记录的文件导入信息是否满足模块描述信息中定义的文件导入条件,若不满足,则将所述新增业务模块置于待解析状态,等待所述条件满足;若满足,则记录所述新增业务模块的文件导入信息,并将该模块置于成功解析状态,所述文件导入条件,包括:导入文件的唯一标识信息、以及导入文件的版本信息;
应用系统根据所述新增业务模块的模块描述信息、以及记录的该新增业务模块导入文件所需的其他业务模块导出的文件信息,为所述新增业务模块构建独立的类加载器。
其中,所述获取新增业务模块的组件信息,包括:
获取所述新增业务模块创建的类加载器;
从该类加载器中获取所述新增业务模块的组件信息。
根据获取的组件信息,构建组件,同时检测该组件的组件依赖关系是否满足,若满足,则装配该组件,若不满足,则将该组件置于待装配状态。
装配完成所述组件后,重新检测系统中处于待装配状态的组件,若所述新装配完成的组件满足所述待装配状态组件的装配需求,则装配所述待装配状态的组件。
所述适配组件,包括:
判断所述新装配完成的组件是否在已经装配完成组件的组件依赖关系策略中获胜,如果获胜,则把获胜组件的组件依赖关系指定到所述新装配的组件上。
所述选取应用系统所需的组件,包括:获取所述适配完成的组件列表;
若所述组件列表中只有一个符合对象,则选取该对象为所需的组件,若组件列表中有多个符合对象,则调用组件版本控制策略,依据该组件版本控制策略选取所需的组件。
由上面描述的系统动态升级的方法,我们可以构建一模块管理引擎,以便于我们简单、直观地对本发明实施例所述实现应用系统动态升级的方法进行描述。
如图2所示,构建的模块管理引擎,包括:
前端控制器21、组件管理器22和类空间23;
前端控制器21,用于接收客户端传输过来的组件调用服务请求,向组件管理器22发送请求,从组件管理器22中调用组件,并把处理结果返回给该组件的请求者;
组件管理器22,主要用于管理和查询组件,例如,管理组件A、组件B、组件B1、C、C1、C2、D、E、F,其中,每个组件都有自己的生命周期、组件的依赖关系。组件管理器中维护了两种组件列表:一种是正常组件列表,用于放置适配完成的组件,即,这些组件的组件依赖关系中定义的依赖组件都存在于正常组件列表中,这些组件能够被前端控制器调用、对外提供服务;另一种是非正常组件列表,用于放置处于待装配状态的组件,这些组件的组件依赖关系定义的依赖组件在正常组件列表中不能都找到,不能够被前端控制器调用、不能够对外提供服务;
所述的两种组件列表,都可能维持了同一组件的多个版本的实现,组件的版本信息由组件所在的业务模块版本信息决定;当前端控制器向组件管理器请求调用组件时,组件管理器根据接收到的前端控制器调用组件请求信息以及组件选择的版本控制策略,从组件管理器的正常组件列表中查找所需的组件,并把处理结果返回给前端控制器;
类空间23,主要用于管理部署在模块管理引擎中的业务模块,例如,管理业务模块1、业务模块2、业务模块3,在类空间中,可以维持有类空间公共区间,用以维持和引用各个业务模块中定义的文件导出信息;
类空间,其主要功能有两个:
1)加载解析新增业务模块,解析新增业务模块中的配置文件和类文件,在本实施例中,配置文件描述了新增业务模块动态更新升级所需要的模块描述信息;
2)创建类加载器,类空间为每个新增业务模块创建一个独立的类加载器,并管理类加载器的生命周期;
在应用系统动态升级过程中,由于新版本和旧版本同时存在,于是,本发明实施例分别为新旧版本创建独立的类加载器;
下面,依照上述构建的模块管理引擎,并结合图3,阐述应用系统动态升级时的流程,具体步骤如下:
新增业务模块被部署到模块管理引擎中后,类空间加载解析该新增业务模块,为读取新增业务模块的模块描述信息和创建类加载器作好准备;
类空间读取该新增业务模块中的模块描述信息;在类空间公共区间中记录该业务模块的模块描述信息中的文件导出信息;
类空间读取该新增业务模块的模块描述信息,并记录该模块的文件导出信息。同时类空间根据读取的模块描述信息中的文件导入信息检测类空间是否有记录有该模块所需要导入的文件,若有,再进一步检测该导入文件信息中描述的文件版本信息是否匹配,例如,定义匹配区间是版本信息大于等于1.0,那么落入该区间范围的文件版本信息就是匹配的,若匹配,则将该模块置为成功解析状态;若类空间中没有记录该模块所需的导入文件、或者文件版本不匹配,则类空间将该新增业务模块置于待解析状态,等待所需要的信息都满足后再执行解析;
遍历所有待解析的业务模块,检查类空间中记录的文件导出信息是否能够满足所述待解析业务模块的文件导入条件,如满足,则将所述业务模块置于成功解析状态,并分别给每个业务模块构建独立的类加载器;
其中,给所述置于成功解析状态的业务模块构建独立的类加载器和给所述新增业务模块构建独立的类加载器没有先后顺序;
在分别给所述置于成功解析状态的业务模块和所述新增业务模块构建独立的类加载器后,类空间检查已经创建了独立类加载器的业务模块,判断所述新增业务模块的文件导出信息是否符合所述已经创建了独立类加载器业务模块的文件导入信息,如果符合,则将所述新增业务模块的导出文件与所述已经创建了独立类加载器业务模块其类加载器所引用的文件进行比较,判断文件版本的高低,如果所述新增业务模块中的导出文件版本高,则更新所述已经创建了独立类加载器业务模块所对应的类加载器,让该类加载器指向所述新增业务模块的导出文件;
在本发明实施例中,类空间也可以定期或者随时检测处于解析状态的业务模块;
类空间根据新增业务模块中包含的模块描述信息、以及类空间记录的该新增业务模块导入文件所需的其他业务模块导出的文件信息,为所述新增业务模块构建独立的类加载器;
创建完所述新增业务模块的类加载器后,类空间通知组件管理器有新增业务模块被加载;
组件管理器接收到类空间的通知后,从类空间中获取该新创建的类加载器,并从该类加载器中获取所述新增业务模块的组件信息;
组件管理器根据所述组件信息中定义的组件依赖关系,遍历组件管理器中的正常组件列表,检测该组件的组件依赖关系是否都能满足,若满足,则组件管理器构建组件,并装配该组件,即,将该装配的组件放置到正常组件列表中,若不满足,则组件管理器将该组件置于待装配状态,将该组件放置到非正常组件列表中;
组件管理器构建了所述组件后,正常组件列表被更新。此时,当有新的组件置入正常组件列表后,组件管理器就会遍历非正常组件列表,检测当前正常组件列表中的组件是否满足处于待装配组件的组件依赖关系,如有,则继续装配该组件,装配完成后把该组件从非正常组件列表转入正常组件列表;
其中,组件管理器也可以定期或者随时检测非正常组件列表;
装配完组件后,还要重新适配组件,即,组件管理器检查正常工作的组件,判断新装配完成的组件是否在正常工作组件的组件依赖关系策略中获胜,如果获胜,把该组件的组件依赖关系指向到新装配的组件上;
至此,应用系统动态升级过程结束,组件管理器的正常组件列表中,同时存在着多个新旧版本的组件。
下面,结合图3,详细描述应用系统如何使用组件。
前端控制器接收到客户端发送来的组件调用请求后,发送组件查询信息给组件管理器,以获取或者调用被请求的组件;
组件管理器接收到前端控制器的组件查询信息后,从组件管理器的正常组件列表中获取满足查询信息的组件;
若满足查询信息的组件只有一个,则组件管理器可以不调用任何决策,直接将该组件返回给前端控制器;
若满足查询信息的组件中有多个,则需要判断其版本是否符合要求,若满足查询信息分组件对象是相同组件的多个版本,则组件管理器根据预先定义的组件版本选择策略来选取所需的组件,若满足查询信息分组件对象都符合组件版本选择策略,则组件管理器选择版本高的组件为所需的组件;
组件管理器选择出所需的组件后,将所述组件返回给前端控制器;
前端控制器调用所述组件;并将所述组件返回给客户端。
本发明实施例还提供了一种在JAVA环境下实现应用系统动态升级的系统40,包括:
前端控制器21,用于与客户端交换信息、以及用于向组件管理器发送查询组件信息;
组件管理器22,用于对组件进行管理,构建组件,装配组件,并能够根据前端控制器发送的查询组件信息选取所需的组件,并把处理结果返回给前端控制器;
类空间23,用于加载解析新增业务模块,读取所述新增业务模块的模块描述信息,为所述新增业务模块构建独立的类加载器;
当应用系统动态升级时,类空间为要加载的新增业务模块构建独立的类加载器,并通知组件管理器有新增业务模块被加载,组件管理器获取类空间中所述新增业务模块的组件信息,构建组件、装配组件、及适配组件。
如图5所示,组件管理器22,包括:
类加载器获取单元221,用于接收到类空间有业务模块被加载的通知后,获取类空间创建的类加载器、以及类加载器上的组件信息;
构建组件单元222,用于根据类加载器获取单元221获取的组件信息构建组件;
检测判断单元223,用于检测新构建的组件其所需要的依赖关系是否满足,若满足,则指向装配组件单元224;组件装配完成后,用于判断所述新装配完成的组件是否在已经装配完成的组件的依赖关系策略中获胜;
装配组件单元224,用于根据检测判断单元的结果,装配组件;
适配组件单元225,用于根据检测判断单元223在组件装配完成后的判断的结果,把获胜组件的依赖关系指定到所述新装配的组件上,把适配完成的组件放置到正常组件列表226中;
正常组件列表226,管理适配完成的组件。
所述组件管理器22,还包括:
非正常组件列表227,用于管理处于待装配状态的组件;
非正常组件列表检测单元228,用于装配完成新组件后,重新检测系统中处于依赖关系没有满足而处于待装配状态的组件,若所述新装配完成的组件满足所述待装配状态组件的装配需求,则指向装配组件单元224。
类空间23,包括:
加载解析单元231,用于加载解析新增业务模块;
读取单元232,用于读取所述新增业务模块中的模块描述信息;
构建类加载器单元233,用于根据所述模块描述信息,构建独立的类加载器。
类空间23,还包括:
记录单元234,当读取单元读取所述新增业务模块的模块描述信息时,记录所述新增业务模块的文件导出信息;
待解析业务模块检测单元235,用于遍历所有待解析的业务模块,检查类空间中记录的文件导出信息是否能够满足所述待解析业务模块的文件导入条件,如满足,则将所述业务模块置于成功解析状态,并指向构建类加载器单元,以为每个业务模块构建独立的类加载器;
已创建类加载器业务模块检测单元236,用于检查已经创建了独立类加载器的业务模块,判断所述新增业务模块的文件导出信息是否符合所述已经创建了独立类加载器业务模块的文件导入信息,如果符合,则将所述新增业务模块的导出文件与所述已经创建了独立类加载器业务模块其类加载器所引用的文件进行比较,判断文件版本的高低,如果所述新增业务模块中的导出文件版本高,则更新所述已经创建了独立类加载器业务模块所对应的类加载器,让该类加载器指向所述新增业务模块的导出文件。
综上所述,本发明实施例,在JAVA环境下,通过构建了前端控制器、组件管理器、和类空间,完成应用系统的平滑升级,通过创建独立的类加载器,解决了同样标识的类可以存在多个不同版本的问题,因而也就可以构建出不同版本的组件,解决了现有技术中应用系统升级前后新旧版本不能同时存在的问题,实现了多个版本的新增业务模块能够被同时部署、安装和运行;
又由于系统能够动态升级,一方面不需要寻找特定的升级时间而带来的等待,另外一方面减少了系统停止和启动的时间,减少了人工干预的次数,进而降低了系统升级时耗。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1、一种实现应用系统动态升级的方法,其特征在于,包括:
加载解析新增业务模块,读取新增业务模块的模块描述信息,并为所述新增业务模块构建独立的类加载器;
从所述类加载器中获取所述新增业务模块的组件信息,构建组件、装配组件、以及适配组件。
2、根据权利要求1所述的方法,其特征在于,应用系统适配完组件后,还包括:
应用系统查询组件;
选取应用系统所需的组件;
并调用所述组件。
3、根据权利要求1所述的方法,其特征在于,所述读取新增业务模块的模块描述信息,包括记录所述模块描述信息中的文件导出信息。
4、根据权利要求3所述的方法,其特征在于,记录所述模块描述信息中的文件导出信息后,遍历所有待解析的业务模块,检查类空间中记录的文件导出信息是否能够满足所述待解析业务模块的文件导入条件,如满足,则将所述业务模块置于成功解析状态,并分别给所述置于成功解析状态的业务模块构建独立的类加载器。
5、根据权利要求4所述的方法,其特征在于,分别给所述置于成功解析状态的业务模块和所述新增业务模块构建独立的类加载器后,检查所述已经创建了独立类加载器的业务模块,判断所述新增业务模块的模块描述信息中的文件导出信息是否符合所述已经创建了独立类加载器业务模块的文件导入信息,如果符合,则将所述新增业务模块的导出文件与所述已经创建了独立类加载器业务模块其类加载器所引用的文件进行比较,判断文件版本的高低,如果所述新增业务模块中的导出文件版本高,则更新所述已经创建了独立类加载器业务模块所对应的类加载器,让该类加载器指向所述新增业务模块的导出文件。
6、根据权利要求1所述的方法,其特征在于,所述为新增业务模块构建独立的类加载器为:
读取所述新增业务模块的模块描述信息,判断应用系统中记录的文件导入信息是否满足模块描述信息中定义的文件导入条件,若不满足,则将所述新增业务模块置于待解析状态;若满足,则记录所述新增业务模块的文件导入信息,并将该模块置于成功解析状态;
应用系统根据所述新增业务模块的模块描述信息、以及记录的该新增业务模块导入文件所需的其他业务模块导出的文件信息,为所述新增业务模块构建独立的类加载器。
7、根据权利要求1所述的方法,其特征在于,所述构建组件,包括:根据获取的所述新增业务模块的组件信息,构建组件,同时检测该组件的组件依赖关系是否满足,若满足,则装配该组件,若不满足,则将该组件置于待装配状态。
8、根据权利要求所述7所述的方法,其特征在于,装配完成所述组件后,重新检测系统中处于待装配状态的组件,若所述新装配完成的组件满足所述待构建状态组件的装配需求,则装配所述待装配状态的组件。
9、根据权利要求1所述的方法,其特征在于,所述适配组件为:
判断已经装配完成的组件是否在已经装配完成组件的组件依赖关系策略中获胜,如果获胜,则把获胜组件的组件依赖关系指向到所述新装配的组件上。
10、根据权利要求2所述的方法,其特征在于,所述选取应用系统所需的组件为:
获取所述适配完成的组件列表;
若所述组件列表中只有一个符合对象,则选取该对象为所需的组件,若组件列表中有多个符合对象,则调用组件版本控制策略,依据该组件版本控制策略选取所需的组件。
11、一种在JAVA环境下实现应用系统动态升级的系统,其特征在于,包括:
前端控制器,用于与客户端交换信息、以及用于向组件管理器发送查询组件信息;
组件管理器,用于对组件进行管理,构建组件,装配组件,并能够根据前端控制器发送的查询组件信息选取所需的组件,并将选取的结果返回给前端控制器;
类空间,用于加载解析新增业务模块,读取所述新增业务模块的模块描述信息,为所述新增业务模块构建独立的类加载器;
类空间为要加载的新增业务模块构建独立的类加载器,并通知组件管理器有新增业务模块被加载,组件管理器获取所述类加载器中的组件信息,构建组件、装配组件、及适配组件。
12、根据权利要求11所述的系统,其特征在于,所述组件管理器包括:
类加载器获取单元,用于在接收到类空间有业务模块被加载的通知后,获取类空间创建的类加载器、以及类加载器上的组件信息;
构建组件单元,用于根据类加载器获取单元获取的组件信息构建组件;
检测判断单元,用于检测新构建的组件其所需要的组件依赖关系是否满足,若满足,则指向装配组件单元;在组件装配完成后,用于判断所述新装配完成的组件是否在已经装配完成组件的组件依赖关系策略中获胜;
装配组件单元,用于根据检测判断单元的结果,把待装配组件的组件依赖关系指向到所依赖的组件;
适配组件单元,用于根据检测判断单元的结果,把获胜组件的组件依赖关系指向到所述新装配的组件上,把适配完成的组件放置到正常组件列表中;
正常组件列表,管理适配完成的组件。
13、根据权利要求12所述的系统,其特征在于,所述组件管理器还包括:
非正常组件列表,用于管理处于待装配状态的组件;
非正常组件列表检测单元,用于装配完成新组件后,重新检测系统中处于待装配状态的组件,若所述新装配完成的组件满足所述待装配状态组件的装配需求,则指向装配组件单元。
14、根据权利要求11所述的系统,其特征在于,所述类空间包括:
加载解析单元,用于加载解析新增业务模块;
读取单元,用于读取所述新增业务模块中的模块描述信息;
构建类加载器单元,用于根据所述模块描述信息,构建独立的类加载器。
15、根据权利要求14所述的系统,其特征在于,所述类空间还包括:
记录单元,当读取单元读取所述新增业务模块的模块描述信息时,记录所述新增业务模块的文件导出信息;
待解析业务模块检测单元,用于遍历所有待解析的业务模块,检查类空间中记录的文件导出信息是否能够满足所述待解析业务模块的文件导入条件,如满足,则将所述业务模块置于成功解析状态,并指向构建类加载器单元,以为每个业务模块构建独立的类加载器;
已创建类加载器业务模块检测单元,用于检查已经创建了独立类加载器的业务模块,判断所述新增业务模块的文件导出信息是否符合所述已经创建了独立类加载器业务模块的文件导入信息,如果符合,则将所述新增业务模块的导出文件与所述已经创建了独立类加载器业务模块其类加载器所引用的文件进行比较,判断文件版本的高低,如果所述新增业务模块中的导出文件版本高,则更新所述已经创建了独立类加载器业务模块所对应的类加载器,让该类加载器指向所述新增业务模块的导出文件。
CNB2007100031461A 2007-01-31 2007-01-31 实现应用系统动态升级的方法及系统 Expired - Fee Related CN100442233C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100031461A CN100442233C (zh) 2007-01-31 2007-01-31 实现应用系统动态升级的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100031461A CN100442233C (zh) 2007-01-31 2007-01-31 实现应用系统动态升级的方法及系统

Publications (2)

Publication Number Publication Date
CN101008901A true CN101008901A (zh) 2007-08-01
CN100442233C CN100442233C (zh) 2008-12-10

Family

ID=38697345

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100031461A Expired - Fee Related CN100442233C (zh) 2007-01-31 2007-01-31 实现应用系统动态升级的方法及系统

Country Status (1)

Country Link
CN (1) CN100442233C (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102026233A (zh) * 2010-12-03 2011-04-20 中兴通讯股份有限公司 电信设备版本兼容方法及装置
CN101771762B (zh) * 2009-01-06 2012-03-21 北京邮电大学 业务系统中业务动态加载系统及方法
WO2012083613A1 (zh) * 2010-12-20 2012-06-28 中兴通讯股份有限公司 一种用户自定义的性能指标多版本升级的方法及装置
CN102567006A (zh) * 2010-12-31 2012-07-11 中国移动通信集团黑龙江有限公司 应用业务的扩展方法、装置及系统
CN104137086A (zh) * 2012-02-20 2014-11-05 三菱电机株式会社 信息系统管理装置、信息系统管理方法以及程序
CN105302586A (zh) * 2014-06-24 2016-02-03 中兴通讯股份有限公司 软件升级处理方法、装置、终端及服务器
CN106293763A (zh) * 2016-08-19 2017-01-04 广州唯品会信息科技有限公司 应用组件版本的管理方法及装置
CN103793248B (zh) * 2014-01-23 2017-02-01 北京奇虎科技有限公司 一种应用程序升级的方法及装置
CN108769260A (zh) * 2018-06-29 2018-11-06 郑州云海信息技术有限公司 一种集群升级过程中事件处理方法及其装置
CN108880834A (zh) * 2017-05-08 2018-11-23 中兴通讯股份有限公司 一种业务性能查询方法、装置及系统
CN109634636A (zh) * 2018-12-17 2019-04-16 百度在线网络技术(北京)有限公司 应用处理方法、装置、设备和介质
CN110209427A (zh) * 2018-02-28 2019-09-06 阿里巴巴集团控股有限公司 应用系统及其启动方法、电子设备、存储介质
CN110221878A (zh) * 2019-06-17 2019-09-10 北京金山安全软件有限公司 一种游戏服务的更新方法、装置、电子设备及存储介质
CN110659045A (zh) * 2019-08-30 2020-01-07 电子科技大学 一种软件化雷达实时动态更新系统
CN111475220A (zh) * 2019-01-23 2020-07-31 阿里巴巴集团控股有限公司 冷启动方法、装置、电子设备及计算机存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745386B1 (en) * 2000-03-09 2004-06-01 Sun Microsystems, Inc. System and method for preloading classes in a data processing device that does not have a virtual memory manager
CN100377556C (zh) * 2004-01-01 2008-03-26 浙江大学 通信协议的构件化实现方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771762B (zh) * 2009-01-06 2012-03-21 北京邮电大学 业务系统中业务动态加载系统及方法
CN102026233A (zh) * 2010-12-03 2011-04-20 中兴通讯股份有限公司 电信设备版本兼容方法及装置
WO2012083613A1 (zh) * 2010-12-20 2012-06-28 中兴通讯股份有限公司 一种用户自定义的性能指标多版本升级的方法及装置
CN102567006A (zh) * 2010-12-31 2012-07-11 中国移动通信集团黑龙江有限公司 应用业务的扩展方法、装置及系统
CN102567006B (zh) * 2010-12-31 2015-07-01 中国移动通信集团黑龙江有限公司 应用业务的扩展方法、装置及系统
CN104137086A (zh) * 2012-02-20 2014-11-05 三菱电机株式会社 信息系统管理装置、信息系统管理方法以及程序
CN103793248B (zh) * 2014-01-23 2017-02-01 北京奇虎科技有限公司 一种应用程序升级的方法及装置
CN105302586A (zh) * 2014-06-24 2016-02-03 中兴通讯股份有限公司 软件升级处理方法、装置、终端及服务器
CN106293763A (zh) * 2016-08-19 2017-01-04 广州唯品会信息科技有限公司 应用组件版本的管理方法及装置
CN106293763B (zh) * 2016-08-19 2019-10-22 广州品唯软件有限公司 应用组件版本的管理方法及装置
CN108880834A (zh) * 2017-05-08 2018-11-23 中兴通讯股份有限公司 一种业务性能查询方法、装置及系统
CN108880834B (zh) * 2017-05-08 2023-05-26 中兴通讯股份有限公司 一种业务性能查询方法、装置及系统
CN110209427A (zh) * 2018-02-28 2019-09-06 阿里巴巴集团控股有限公司 应用系统及其启动方法、电子设备、存储介质
CN110209427B (zh) * 2018-02-28 2022-07-15 阿里巴巴集团控股有限公司 应用系统及其启动方法、电子设备、存储介质
CN108769260A (zh) * 2018-06-29 2018-11-06 郑州云海信息技术有限公司 一种集群升级过程中事件处理方法及其装置
CN109634636A (zh) * 2018-12-17 2019-04-16 百度在线网络技术(北京)有限公司 应用处理方法、装置、设备和介质
CN109634636B (zh) * 2018-12-17 2022-05-17 百度在线网络技术(北京)有限公司 应用处理方法、装置、设备和介质
CN111475220A (zh) * 2019-01-23 2020-07-31 阿里巴巴集团控股有限公司 冷启动方法、装置、电子设备及计算机存储介质
CN111475220B (zh) * 2019-01-23 2023-04-25 阿里巴巴集团控股有限公司 冷启动方法、装置、电子设备及计算机存储介质
CN110221878A (zh) * 2019-06-17 2019-09-10 北京金山安全软件有限公司 一种游戏服务的更新方法、装置、电子设备及存储介质
CN110659045A (zh) * 2019-08-30 2020-01-07 电子科技大学 一种软件化雷达实时动态更新系统
CN110659045B (zh) * 2019-08-30 2022-03-15 电子科技大学 一种软件化雷达实时动态更新系统

Also Published As

Publication number Publication date
CN100442233C (zh) 2008-12-10

Similar Documents

Publication Publication Date Title
CN100442233C (zh) 实现应用系统动态升级的方法及系统
CN1407441B (zh) 自动管理计算机服务和可编程器件的系统和方法
CN102655532B (zh) 分布式异构虚拟资源集成管理方法及系统
US8392907B2 (en) Communication terminal
US8018322B2 (en) Graphical interface for RFID edge server
CN100487689C (zh) 用于环球网服务结构中的包容器选择器及其选择方法
CN103298016A (zh) 移动终端的测试系统
CN1934538B (zh) 用于多代理系统的异常管理方案
CN110134455A (zh) 一种应用管理系统及方法
CN109271170A (zh) 一种分布式系统部署方法、系统、电子设备及存储介质
CN100511274C (zh) 批量作业集中管理和调度的系统及方法
CN101895872A (zh) 一种移动终端应用程序便捷下载方法
CN101778013B (zh) 网站测试系统及方法
CN102360308A (zh) 组件的分布式部署系统和方法
US20020091805A1 (en) Method and system for dynamically purposing a computing device
US20070208832A1 (en) RFID edge server allowing configuration updates without restart
CN102377817A (zh) 连接管理系统以及用于链接连接管理服务器的方法
CN1776552A (zh) 识别设备软件和设备驱动程序间功能不一致的系统和方法
CN103403742A (zh) 用于多服务器预订系统上的集中预订上下文管理的方法和系统
US20070233823A1 (en) Metadata-based configuration of RFID readers
CN101925878A (zh) 客户机/服务器计算环境中部署非后向兼容服务器版本的方法和系统
US8373545B2 (en) EPC provisioning system using business rules
US20080201474A1 (en) Computer system
CN102007756B (zh) 用于数据处理环境中的动态供应的方法和装置
CN105528205A (zh) 更新控制方法和更新控制系统

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081210

Termination date: 20150131

EXPY Termination of patent right or utility model