CN101894031A - 普适服务的动态更新方法及其更新系统 - Google Patents
普适服务的动态更新方法及其更新系统 Download PDFInfo
- Publication number
- CN101894031A CN101894031A CN 201010214501 CN201010214501A CN101894031A CN 101894031 A CN101894031 A CN 101894031A CN 201010214501 CN201010214501 CN 201010214501 CN 201010214501 A CN201010214501 A CN 201010214501A CN 101894031 A CN101894031 A CN 101894031A
- Authority
- CN
- China
- Prior art keywords
- redaction
- module
- information
- links
- current version
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种计算机应用技术领域的普适服务的动态更新方法及其更新系统,系统包括:新版本输入模块、兼容性检测模块、更新模块和接口模块,其中:所述的兼容性检测模块包括:依赖类型检测子模块、接口类型检测子模块和实现类型检测子模块,所述的新版本输入模块包括:下载子模块、接收子模块和存储子模块,所述的更新模块包括:中介子模块、状态转换子模块和更新管理子模块。本发明降低了普适服务更新的时间,整个更新过程所耗费的时间不超过20ms,使更新的准确率提高到了95%以上,满足了更新的实时性要求。
Description
技术领域
本发明涉及的是一种计算机应用技术领域的方法及其系统,具体是一种普适服务的动态更新方法及其更新系统。
背景技术
为了满足持续变化的用户需求,面向普适服务应用技术要求普适服务在其运行期间进行更新和升级,以便实时纠正应用软件的错误、增强计算机运行的功能及适应运行时环境的变化等。更为重要的是,在一些任务关键型应用领域,例如,电信金融行业系统、空中交通控制系统、实时嵌入式系统等,由于具有比较高的可靠性需求,计算机运行的更新必须在运行时完成,但是不能干扰客户端的使用,更不能中断整个系统的运行。一般可采用动态更新技术来解决这类问题。
动态更新技术是指计算机在运行期间,由于系统外界或者系统内部的需求变化,引发对实时应用进行动态更新以满足新的需求,而同时无需停止整个运行系统,它包括对程序代码的动态更新和对系统运行环境的综合分析等。因此,针对面向普适服务应用的动态更新,首先需要分析面向普适服务应用的框架。在该框架当中,普适服务的接口和实现是分离的;并且普适服务之间的协作是通过间接的方式,即服务的依赖性。如果一个服务依赖于另一个服务,那么实际上该服务是通过被调用服务的接口来调用服务的。这样的框架便于动态地替换服务构件,例如,原有的服务构件A被新的服务A′所替换。
虽然动态地替换服务构件可以满足计算机运行的更新和升级,但是该方法却造成当前正在运行的服务构件状态的丢失;另外,它还要求先关闭所有相依赖的服务构件,然后再重起被替换的服务构件,整个过程需要耗费大量的时间,明显影响了系统的性能。特别地,在实时应用系统当中,对时间要求比较高,该方法往往是不可接受的。
动态更新还要求更新的过程是透明的,既不能干扰系统的行为逻辑,也不能造成服务的中断;在更新过程中,还要处理服务的状态转换。因此,需要扩展面向服务应用的框架来支持动态服务更新。同时,在更新之前,需要检查服务的新版本是否与旧版本相兼容。如果新版本与旧版本不兼容,那么更新之后,系统就有可能出现运行出错;否则,系统就会持续地、正常地运行。
经对现有技术文献的检索发现,Robert Bialek等人在The 24th InternationalConference on Distributed Computing Systems Workshops上所发表的A Framework forEvolutionary,Dynamically Updatable,Component-Based Systems(支持可演化的、可动态更新的、基于构件系统的一种框架),提出了一种基于构件分布式应用的动态更新框架(DUCS),该框架支持应用系统动态地替换构件、构件状态转换和修改构件的接口,以适应软件应用环境的变化。但是,在普适环境下,实现动态地替换构件,需要先关闭相依赖的其他构件,然后再重起被替换的构件,使得普适服务的更新过程耗费大量的时间,明显影响了面向普适服务应用的性能;另一方面,DUCS框架缺乏对更新构件的新旧版本兼容性检测,使得普适服务的更新准确率降低。因此,在动态性和异构性极强、网络连接不稳定性高和实时性强的普适环境下,普适服务的动态更新比传统的基于构件分布式应用环境更高的更新时间和准确率要求,因而,解决面向普适服务应用的动态更新是当前面临技术问题。
发明内容
本发明的目的在于克服现有技术的上述不足,提出了一种普适服务的动态更新方法及其更新系统。本发明用于普适环境下对实时性要求较高的关键应用(如实时监控的嵌入式系统),通过兼容性检测和中介技术,降低了普适服务更新所耗费的时间,且提高了普适服务更新的准确率。
本发明是通过以下技术方案实现的:
本发明涉及的普适服务的动态更新方法,包括以下步骤:
第一步,下载和接收普适服务的新版本,并将该新版本加载到内存中。
第二步,对新版本进行兼容性检测,当新版本与当前版本兼容时,执行第三步;否则,停止更新。
所述的兼容性检测,包括以下步骤:
1)当新版本的服务实现类型包括服务接口类型时,执行2);否则,新版本与当前版本不兼容;
2)当新版本的服务接口类型包括当前版本的服务接口类型时,执行3);否则,新版本与当前版本不兼容;
3)当当前版本的依赖性类型包括新版本的依赖性类型时,新版本与当前版本兼容;否则,新版本与当前版本不兼容。
第三步,当前版本阻塞新的服务调用请求,并完成正在运行的服务调用请求。
第四步,将当前版本的服务状态信息转移到新版本,且当新版本正常运行后,将外界的服务调用请求指向新版本。
第五步,当前版本停止运行并退出,新版本继续响应新的服务调用请求,更新过程结束。
本发明涉及如上述的普适服务的动态更新方法的更新系统,包括:新版本输入模块、兼容性检测模块、更新模块和接口模块,其中:新版本输入模块与新版本相连传输新版本信息,新版本输入模块与更新模块相连传输新版本的状态信息,兼容性检测模块与新版本输入模块相连传输新版本信息,兼容性检测模块与更新模块相连传输新版本和当前版本的兼容信息,更新模块与接口模块相连传输服务调用请求信息和服务调用请求响应信息,更新模块与当前版本相连传输响应服务调用请求信息和当前版本退出信息。
所述的兼容性检测模块包括:依赖类型检测子模块、接口类型检测子模块和实现类型检测子模块,其中:实现类型检测子模块与新版本输入模块相连传输新版本信息,接口类型检测子模块与实现类型检测子模块相连传输新版本实现类型信息,依赖类型检测子模块与接口类型检测子模块相连传输新版本接口类型信息,依赖类型检测子模块与更新模块相连传输新版本依赖类型信息。
所述的新版本输入模块包括:下载子模块、接收子模块和存储子模块,其中:下载子模块与新版本相连传输新版本信息,下载子模块与接收子模块相连传输新版本信息,存储子模块与接收子模块相连传输新版本信息,存储子模块与更新模块相连传输新版本准备就绪的信息,存储子模块与兼容性检测模块相连传输新版本信息。
所述的更新模块包括:中介子模块、状态转换子模块和更新管理子模块,其中:中介子模块与接口模块相连传输服务调用请求信息和服务调用请求响应信息,中介子模块与新版本输入模块相连传输新版本信息,中介子模块与当前版本相连传输当前版本信息,中介子模块与更新管理子模块相连传输更新信息,更新管理子模块与新版本输入模块相连传输新版本信息,更新管理子模块与当前版本相连传输当前版本信息,更新管理子模块与状态转换子模块相连传输更新信息,状态转换子模块与新版本输入模块相连传输新版本信息,状态转换子模块与当前版本相连传输当前版本信息,更新管理子模块与兼容性检测模块相连传输新版本和当前版本的兼容信息。
与现有的技术相比,本发明具有如下有益效果:
(1)通用性和可实现性。该框架中的更新管理子模块、中介子模块和状态转换子模块都是独立于整体应用的执行,而不会干扰该应用的行为语义,它们是支持动态更新的共同特征,具有通用性。
(2)实时性和轻量级。普适服务新版本是通过独立的线程来下载的,这样耗用较小的CUP资源,是轻量级的,特别适用在资源比较贫瘠的设备上的动态更新;在动态服务更新过程中,无需关闭与要更新服务相依赖的其他服务构件,而且新服务的启动可以并发执行,整个更新过程所耗费的时间不超过20ms,满足了实时系统中实时性的要求。
(3)可信性和易扩展性。本发明的特点之一就是采用形式化方法来详细分析动态普适服务更新的过程,并且验证了整个框架的属性;另外,还利用类型检查方法来判断普适服务新旧版本是否兼容,以确保更新完成之后,不会出现系统运行出错,使更新的准确率提高到95%以上。
附图说明
图1是实施例中兼容性检测的流程示意图;
图2是本发明的系统组成连接示意图。
具体实施方式
下面结合附图对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
本实施例将基于开放式服务平台OSGi(Open Service Gateway initiative,开放服务网关平台)实现的。
本实施例涉及的普适服务的动态更新方法,包括以下步骤:
第一步,下载和接收普适服务的新版本,并将该新版本加载到内存中。
第二步,对新版本进行兼容性检测,当新版本与当前版本兼容时,执行第三步;否则,停止更新。
如图1所示,所述的兼容性检测,包括以下步骤:
1)当新版本的服务实现类型包括服务接口类型时,执行2);否则,违背服务规范的类型约束,新版本与当前版本不兼容;
2)当新版本的服务接口类型包括当前版本的服务接口类型时,执行3);否则,违背服务接口增量修改的约束,新版本与当前版本不兼容;
3)当当前版本的依赖性类型包括新版本的依赖性类型时,新版本与当前版本兼容;否则,违背服务依赖性的类型约束,新版本与当前版本不兼容。
所述的服务接口类型包括:服务接口中的方法名、方法中的参数列表和方法返回值的数据类型。
所述的依赖性类型是服务所依赖的其它服务的类型的集合,当所依赖的其它服务的类型改变或者是所依赖的其它服务的个数变化时,则该服务的依赖性类型也发生变化。
第三步,当前版本阻塞新的服务调用请求,并完成正在运行的服务调用请求。
第四步,将当前版本的服务状态信息转移到新版本,且当新版本正常运行后,将外界的服务调用请求指向新版本。
第五步,当前版本停止运行并退出,新版本继续响应新的服务调用请求,更新过程结束。
如图2所示,本实施例还涉及如上所述的普适服务的动态更新方法的更新系统,包括:新版本输入模块、兼容性检测模块、更新模块和接口模块,其中:新版本输入模块与新版本相连传输新版本信息,新版本输入模块与更新模块相连传输新版本的状态信息,兼容性检测模块与新版本输入模块相连传输新版本信息,兼容性检测模块与更新模块相连传输新版本和当前版本的兼容信息,更新模块与接口模块相连传输服务调用请求信息和服务调用请求响应信息,更新模块与当前版本相连传输响应服务调用请求信息和当前版本退出信息。
所述的兼容性检测模块包括:依赖类型检测子模块、接口类型检测子模块和实现类型检测子模块,其中:实现类型检测子模块与新版本输入模块相连传输新版本信息,接口类型检测子模块与实现类型检测子模块相连传输新版本实现类型信息,依赖类型检测子模块与接口类型检测子模块相连传输新版本接口类型信息,依赖类型检测子模块与更新模块相连传输新版本依赖类型信息。
所述的新版本输入模块包括:下载子模块、接收子模块和存储子模块,其中:下载子模块与新版本相连传输新版本信息,下载子模块与接收子模块相连传输新版本信息,存储子模块与接收子模块相连传输新版本信息,存储子模块与更新模块相连传输新版本准备就绪的信息,存储子模块与兼容性检测模块相连传输新版本信息。
所述的更新模块包括:中介子模块、状态转换子模块和更新管理子模块,其中:中介子模块与接口模块相连传输服务调用请求信息和服务调用请求响应信息,中介子模块与新版本输入模块相连传输新版本信息,中介子模块与当前版本相连传输当前版本信息,中介子模块与更新管理子模块相连传输更新信息,更新管理子模块与新版本输入模块相连传输新版本信息,更新管理子模块与当前版本相连传输当前版本信息,更新管理子模块与状态转换子模块相连传输更新信息,状态转换子模块与新版本输入模块相连传输新版本信息,状态转换子模块与当前版本相连传输当前版本信息,更新管理子模块与兼容性检测模块相连传输新版本和当前版本的兼容信息。
所述的更新管理子模块是支持动态服务更新的核心部件,当普适服务需要更新时,它通过发出更新通知的方式来协调其它模块的执行顺序,本实施例中通过线程的方法实现,从而有利于减低损耗CPU额外资源,且有利于更新管理子模块的独立性和并发性。
所述的中介子模块的作用类似于代理,它是介于接口模块与当前版本或者是新版本之间,当更新子模块向它传输更新信息时,它将引用由当前版本直接指向新版本,故采用中介子模块提高了更新的效率和实现了对于服务调用者的透明性,即服务调用者无需关心服务是否被动态更新了。
所述的状态转换子模块保存当前版本的服务状态和初始化新版本的服务状态,所述的服务状态包括服务对象的属性值等。
本实施例中服务调用请求不是直接由当前版本响应,而是经由中介子模块的引用指向当前版本,从而满足动态更新的实时性;对新版本进行了兼容性检测,有利于确保系统正常运行,同时将更新的准确率提高到95%以上;当新版本运行正常后,中介子模块将它的引用由当前版本直接指向新版本,从而使新旧版本替换的时间不超过100μs,本实施例整个更新过程所耗费的时间不超过20ms,满足了实时系统中实时性的要求。
Claims (6)
1.一种普适服务的动态更新方法,其特征在于,包括以下步骤:
第一步,下载和接收普适服务的新版本,并将该新版本加载到内存中;
第二步,对新版本进行兼容性检测,当新版本与当前版本兼容时,执行第三步;否则,停止更新;
第三步,当前版本阻塞新的服务调用请求,并完成正在运行的服务调用请求;
第四步,将当前版本的服务状态信息转移到新版本,且当新版本正常运行后,将外界的服务调用请求指向新版本;
第五步,当前版本停止运行并退出,新版本继续响应新的服务调用请求,更新过程结束。
2.根据权利要求1所述的普适服务的动态更新方法,其特征是,所述的兼容性检测,包括以下步骤:
1)当新版本的服务实现类型包括服务接口类型时,执行2);否则,新版本与当前版本不兼容;
2)当新版本的服务接口类型包括当前版本的服务接口类型时,执行3);否则,新版本与当前版本不兼容;
3)当当前版本的依赖性类型包括新版本的依赖性类型时,新版本与当前版本兼容;否则,新版本与当前版本不兼容。
3.一种根据权利要求1所述的普适服务的动态更新方法的更新系统,其特征在于,包括:新版本输入模块、兼容性检测模块、更新模块和接口模块,其中:新版本输入模块与新版本相连传输新版本信息,新版本输入模块与更新模块相连传输新版本的状态信息,兼容性检测模块与新版本输入模块相连传输新版本信息,兼容性检测模块与更新模块相连传输新版本和当前版本的兼容信息,更新模块与接口模块相连传输服务调用请求信息和服务调用请求响应信息,更新模块与当前版本相连传输响应服务调用请求信息和当前版本退出信息。
4.根据权利要求3所述的普适服务的动态更新系统,其特征是,所述的兼容性检测模块包括:依赖类型检测子模块、接口类型检测子模块和实现类型检测子模块,其中:实现类型检测子模块与新版本输入模块相连传输新版本信息,接口类型检测子模块与实现类型检测子模块相连传输新版本实现类型信息,依赖类型检测子模块与接口类型检测子模块相连传输新版本接口类型信息,依赖类型检测子模块与更新模块相连传输新版本依赖类型信息。
5.根据权利要求3所述的普适服务的动态更新系统,其特征是,所述的新版本输入模块包括:下载子模块、接收子模块和存储子模块,其中:下载子模块与新版本相连传输新版本信息,下载子模块与接收子模块相连传输新版本信息,存储子模块与接收子模块相连传输新版本信息,存储子模块与更新模块相连传输新版本准备就绪的信息,存储子模块与兼容性检测模块相连传输新版本信息。
6.根据权利要求3所述的普适服务的动态更新系统,其特征是,所述的更新模块包括:中介子模块、状态转换子模块和更新管理子模块,其中:中介子模块与接口模块相连传输服务调用请求信息和服务调用请求响应信息,中介子模块与新版本输入模块相连传输新版本信息,中介子模块与当前版本相连传输当前版本信息,中介子模块与更新管理子模块相连传输更新信息,更新管理子模块与新版本输入模块相连传输新版本信息,更新管理子模块与当前版本相连传输当前版本信息,更新管理子模块与状态转换子模块相连传输更新信息,状态转换子模块与新版本输入模块相连传输新版本信息,状态转换子模块与当前版本相连传输当前版本信息,更新管理子模块与兼容性检测模块相连传输新版本和当前版本的兼容信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010214501 CN101894031A (zh) | 2010-06-30 | 2010-06-30 | 普适服务的动态更新方法及其更新系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010214501 CN101894031A (zh) | 2010-06-30 | 2010-06-30 | 普适服务的动态更新方法及其更新系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101894031A true CN101894031A (zh) | 2010-11-24 |
Family
ID=43103229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010214501 Pending CN101894031A (zh) | 2010-06-30 | 2010-06-30 | 普适服务的动态更新方法及其更新系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101894031A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778026A (zh) * | 2012-10-24 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 对象调用方法和装置 |
CN106775864A (zh) * | 2016-12-13 | 2017-05-31 | 济南浪潮高新科技投资发展有限公司 | 一种基于Autofac支持按需加载的服务管理器的实现方法 |
CN112905231A (zh) * | 2021-02-04 | 2021-06-04 | 浪潮电子信息产业股份有限公司 | 一种业务系统重构方法、系统及相关装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1821958A (zh) * | 2005-02-14 | 2006-08-23 | 三星电机株式会社 | 在普适计算环境中重构应用程序的方法及系统 |
-
2010
- 2010-06-30 CN CN 201010214501 patent/CN101894031A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1821958A (zh) * | 2005-02-14 | 2006-08-23 | 三星电机株式会社 | 在普适计算环境中重构应用程序的方法及系统 |
Non-Patent Citations (2)
Title |
---|
《In Proceedings of the 2nd International Workshop on Unanticipated Software Evolution》 20030914 Gavin Bierman等 Formalizing Dynamic Software Updating 全文 1-6 , * |
《Proceedings of the 10th European software engineering conference》 20050905 Junrong Shen等 Towards a Unified Formal Model for Supporting Mechanisms of Dynamic Componet Update 第3.1节,第3.7节 1-6 , * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778026A (zh) * | 2012-10-24 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 对象调用方法和装置 |
CN103778026B (zh) * | 2012-10-24 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 对象调用方法和装置 |
CN106775864A (zh) * | 2016-12-13 | 2017-05-31 | 济南浪潮高新科技投资发展有限公司 | 一种基于Autofac支持按需加载的服务管理器的实现方法 |
CN106775864B (zh) * | 2016-12-13 | 2020-04-17 | 浪潮通用软件有限公司 | 一种基于Autofac支持按需加载的服务管理器的实现方法 |
CN112905231A (zh) * | 2021-02-04 | 2021-06-04 | 浪潮电子信息产业股份有限公司 | 一种业务系统重构方法、系统及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101192937B (zh) | 一种可热部署的方法及其系统 | |
CN101408899B (zh) | 一种网站多数据源切换方法和装置 | |
US8225308B2 (en) | Managing software lifecycle | |
CN101169733B (zh) | 用于提供基于策略的操作系统服务的方法和系统 | |
CN102754073B (zh) | 用于虚拟化的扩展点声明性注册的方法和系统 | |
US20080222617A1 (en) | Server side application integration framework | |
CN102541558B (zh) | 在基于Android内核的电视系统中集成Android应用系统的方法 | |
US7836357B2 (en) | Error handling process | |
CN101286212A (zh) | 业务流程执行方法、业务流程引擎及其部署方法 | |
US8924947B2 (en) | Direct deployment of static content | |
CN105404530B (zh) | 一种实现简易部署和使用私有云的系统及方法 | |
CN101521600B (zh) | 一种网关设备中业务控制方法和网关设备 | |
CN102158490A (zh) | 基于OSGi的服务转换方法和装置 | |
CN101894031A (zh) | 普适服务的动态更新方法及其更新系统 | |
CN103197951A (zh) | 一种搭建应用运行环境的方法及装置 | |
CN102226888B (zh) | 框架加载方法及设备 | |
CN101236510B (zh) | 一种ejb集群的失败恢复处理方法及系统 | |
CN110599112B (zh) | 一种网络页面开发、维护方法和装置 | |
WO2008029974A1 (en) | Application framework system for distribution and migration of application | |
CN101478837B (zh) | 移动终端的java应用平台及其扩展方法 | |
CN110389791B (zh) | 组件调度方法、装置、设备及存储介质 | |
CN103064676A (zh) | 一种对开放服务网关中组件的控制方法 | |
CN114035786A (zh) | 一种基于依赖的微前端兼容迁移方法及系统 | |
CN106843851A (zh) | 基于ActiveMQ异构类加载器反序列化的实现方法及装置 | |
CN102469118B (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101124 |