首页> 中国专利> 普适服务动态更新中服务对象状态转移系统及其方法

普适服务动态更新中服务对象状态转移系统及其方法

摘要

一种计算机应用技术领域的普适服务动态更新中服务对象状态转移系统及其方法,该系统包括:对象代理管理模块和对象状态转换模块,其中:对象代理管理模块包括:普适环境监听子模块、服务对象代理管理子模块和服务对象引用查询接口子模块,对象状态转换模块包括:对象状态提取子模块、对象状态注入子模块和对象状态转移执行子模块;该方法包括:服务注册监听、触发更新事件、提取旧服务对象源状态、注入目的状态到新服务对象。本发明占用的时间和空间小,性能高,且能解决包括普通成员、数组、列表、哈希表在内的一切状态形式的状态转移问题,因此本发明的适应性很广。

著录项

  • 公开/公告号CN101739297A

    专利类型发明专利

  • 公开/公告日2010-06-16

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN201010300513.6

  • 发明设计人 黄林鹏;沈飞;杜思奇;

    申请日2010-01-21

  • 分类号G06F9/46(20060101);

  • 代理机构31201 上海交达专利事务所;

  • 代理人王锡麟;王桂忠

  • 地址 200240 上海市上海市闵行区东川路800号

  • 入库时间 2023-12-18 00:27:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-09

    未缴年费专利权终止 IPC(主分类):G06F9/46 授权公告日:20121003 终止日期:20150121 申请日:20100121

    专利权的终止

  • 2012-10-03

    授权

    授权

  • 2010-09-01

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20100121

    实质审查的生效

  • 2010-06-16

    公开

    公开

说明书

技术领域

本发明涉及的是一种计算机应用技术领域的系统及其方法,具体是一种普适服务动态更新中服务对象状态转移系统及其方法。

背景技术

随着计算机应用的不断扩大,人们意识到计算机将深入人们的生活,充满生活的各个角落,并以人们任意希望的形式存在。于是普适计算的概念诞生了。普适计算将软件的功能拆分成一个个服务,并可以部署在不同的地方。这些服务可以在不同的环境下独立开发和编译,并通过合适的组装方式来搭建实际的应用系统,由此使服务得以重用和共享,其使用寿命也不再像传统代码模块一样受限于某个应用程序。由于生存周期的延长,普适服务在其服役期间将可能需要得到更新,以便改进实现、提供新的功能、纠正设计错误及适应运行时环境的变化等。更为重要的是,在一些任务关键型应用领域,诸如金融数据处理系统、空中交通控制系统、航天探测器控制软件、网格和自治计算系统等,由于具有比较高的可用性需求,软件组件的更新必须在运行时完成而不导致系统的中断,也就是需要进行动态更新。动态更新将用服务运行时服务的新版本来取代旧版本,而服务的运行时实例是通过某些服务对象来实现的。因此,普适服务动态更新将被具体化为普适服务对象的动态更新。

通常,普适环境中的服务会以组件的形式被封装,普适服务和普适服务之间会存在各种各样的依赖关系,旧版本的普适服务对象的状态很可能依然需要被其它的普适服务所引用,因此在把旧版本的普适服务对象从普适环境中移出之前,为了保证更新前后系统状态的一致性,必须将旧版本普适服务对象的状态转移到新版本的普适服务对象上。

经对现有技术文献的检索发现,Alessandro Orso等人在2002年的《18th IEEEInternational Conference on Software Maintenance(第18届IEEE国际软件维护会议)》论文集第649页撰文“A Technique for Dynamic Updating of Java Software(一种动态更新Java软件的技术)”,该文详细阐述了一种基于代理模式进行软件动态更新时转移服务对象状态的方法和实现Java软件动态更新系统DUSC(Dynamic Updating through Swapping ofClasses,通过交换类的动态更新系统)。该方法通过将软件运行时的每个对象的接口、执行以及状态分离的方法,解决了服务对象的状态迁移问题,该DUSC系统通过实现上述提到的基于代理模式进行软件动态更新时转移服务对象状态的方法对Java软件进行动态更新。但是该技术需要为系统中的每个对象都生成3个额外的辅助对象,生成这些对象需要计算机投入大量的运算时间和内存空间,因此该方法大幅增加了软件的时间和空间消耗,可用性较低,与未使用该动态更新方法相比较,运行时间平均要提高1.13%,内存使用平均要提高6.36%。

发明内容

本发明针对现有技术存在的上述不足,提供了一种普适服务动态更新中服务对象状态转移系统及其方法,使得在软件动态更新转移组件服务对象状态时,可以大大减少额外的软件时间和空间消耗,具有较高可用性。

本发明是通过以下技术方案实现的:

本发明涉及的普适服务动态更新中服务对象状态转移系统,包括:对象代理管理模块和对象状态转换模块,其中:对象代理管理模块与对象状态转换模块相连传输服务对象的引用信息。

所述的对象代理管理模块监听普适环境中服务的注册和请求事件,并向对象状态转换模块提供其所需的服务对象的引用信息,该模块包括:普适环境监听子模块、服务对象代理管理子模块和服务对象引用查询接口子模块,其中:普适环境监听子模块和服务对象代理管理子模块相连传输服务对象的注册和请求信息,服务对象代理管理子模块和服务对象引用查询接口子模块相连传输实际的服务对象执行请求信息,服务对象引用查询接口子模块与对象状态转换模块相连传输服务对象的引用信息。

所述的对象状态转换模块负责在服务对象状态转移时,从旧版本的普适服务对象中提取状态,并将其注入到新版本的普适服务对象中,该模块包括:对象状态提取子模块、对象状态注入子模块和对象状态转移执行子模块,其中:对象状态提取子模块和对象状态注入子模块分别与对象代理管理模块相连传输服务对象的引用信息,对象状态提取子模块和对象状态转移执行子模块相连传输源服务对象状态的路径和服务对象状态信息,对象状态注入子模块与对象状态转移执行子模块相连传输目标服务对象状态的路径和服务对象状态信息。

本发明涉及的上述普适服务动态更新中服务对象状态转移系统的转移方法,包括以下步骤:

步骤一,服务注册监听:当普适环境中有新的组件服务对象被注册时,对象代理管理模块将为该普适服务对象生成一个代理对象,并将代理对象的引用返回给普适服务的使用者。

步骤二,触发更新事件:当普适服务的管理员对普适服务进行更新时,触发一个更新事件,该更新事件包括:新版本的普适服务和状态转移规则。

所述的状态转移规则是新旧版本普适服务对象之间的状态对应规则。

步骤三,提取旧服务对象源状态:当普适服务动态更新开始执行时,对象状态转换模块根据状态转换规则,从旧版本中的普适服务对象中将普适服务对象的源状态提取出来。

所述的提取是利用状态转移规则中对象路径所描述的源状态位置。

步骤四,注入目的状态到新服务对象:对象状态转换模块根据状态转换规则,将旧版本服务对象的源状态注入到新版本的普适服务对象的目标位置中。

所述的目标位置是通过新版本普适服务对象的状态路径描述的。

步骤五,依次重复步骤三和步骤四,实现普适服务动态更新中所有服务对象状态的转移。

与现有技术相比,本发明的有益效果是:

1)占用的时间和空间小,性能高:由于使用了对象路径描述了普适服务对象的状态位置,因此可以从普适服务对象出发获取及注入所有的状态,且只需对普适服务对象建立代理对象,而无需对其他的对象建立代理对象,使得普适服务在注册时所需执行的预处理工作大大减少;因为在普适环境中,普适服务对象的数量仅占所有对象中的很小一部分,从而使生成这些代理对象需要投入的运算时间和内存空间大大减小,性能较高。

2)适应性广:能解决包括普通成员、数组、列表、哈希表在内的一切状态形式的状态转移问题,因此本发明的适应性很广。

附图说明

图1是本发明系统组成框图;

图2为实施例中新旧版本普适服务对象状态图。

具体实施方式

以下结合附图对本发明的实施例进一步描述:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例

如图1所示,本实施涉及的普适服务动态更新中服务对象状态转移系统,包括:对象代理管理模块和对象状态转换模块,其中:对象代理管理模块与对象状态转换模块相连传输服务对象信息。

所述的对象代理管理模块的作用是:监听普适环境中服务的注册和请求事件,并为新注册的普适服务对象生成代理对象,代理对象将持有被注册的普适服务对象的引用,所有对该普适服务对象的服务调用也将通过对象代理管理模块执行,对象代理管理模块向对象状态转换模块提供其所需的服务对象的引用信息。该对象代理管理模块包括:普适环境监听子模块、服务对象代理管理子模块和服务对象引用查询接口子模块,其中:普适环境监听子模块和服务对象代理管理子模块相连传输服务对象的注册和请求信息,普适环境监听子模块将侦听得到的注册事件传输给服务对象代理管理子模块后,服务对象代理管理子模块会为新注册的服务对象生成代理对象,而普适环境监听子模块将侦听得到的请求事件传输给服务对象代理管理子模块后,服务对象代理管理子模块会根据请求的代理对象调用代理对象所指向的实际服务对象执行请求;服务对象代理管理子模块和服务对象引用查询接口子模块相连传输实际的服务对象的引用信息,当对象状态转换模块希望从服务对象引用查询接口子模块获取某个服务对象的引用信息时,服务对象引用查询接口子模块从服务对象代理管理子模块收集引用信息。

所述的对象状态转换模块的作用是:负责在服务对象状态转移时,从旧版本的普适服务对象中提取状态,并将其注入到新版本的普适服务对象中。由于组件中所有对象都是为注册的普适服务提供支持的,因此普适服务对象的状态就是这些组件中的对象,从普适服务对象出发,通过成员对象的引用链访问到该对象的所有状态。该模块提供了一套基于对象路径的状态描述机制和状态访问方法,使得服务开发人员能通过该状态描述方法访问普适服务的每一个状态,再从旧版本的普适服务对象中获取状态并注入到新版本的普适服务对象中去,完成整个普适服务对象的状态转移工作。该对象状态转换模块包括:对象状态提取子模块、对象状态注入子模块和对象状态转移执行子模块,其中:对象状态提取子模块和对象状态转移执行子模块相连传输源服务对象状态的路径和服务对象状态信息,对象状态转移执行子模块向对象状态提取子模块提供源服务对象状态的路径,对象状态定位子模块根据源服务对象状态的路径,从旧版本的服务对象中将该路径对应的服务对象状态提取出来传递给对象状态转移执行子模块;对象状态注入子模块和对象状态转移执行子模块相连传输目标服务对象状态的路径和服务对象状态信息,对象状态转移执行子模块向对象状态注入子模块提供目标服务对象状态的路径和服务对象状态,对象状态注入子模块向新版本的服务对象中该路径注入该服务对象状态。在状态的提取和注入过程中,对象状态提取子模块和对象状态注入子模块分别与对象代理管理模块的服务对象引用查询接口子模块相连传输服务对象的引用信息。

如图2,本实施例涉及的上述普适服务动态更新中服务对象状态转移系统的转移方法,用于将图2中的旧版本普适服务对象ro的状态转移到新版本普适服务对象rn上去。该普适服务的作用是绘制平面上的一系列点的序列,其状态包括点的数量和点的坐标。在旧版本服务对象中,所有点的x坐标被保存在一个叫x的数组中,所有点的y坐标被保存在一个叫y的数组中,点的数量被保存在一个叫count的变量中;在新版本服务对象中,这些状态的表现形式发生了改变,所有点的坐标被保存在一个叫points的数组中,points数组中的每个元素表示一个点,每个点有2个域,即x和y,其中:x保存点的x坐标,y保存点的y坐标,点的数量依然被保存在一个叫count的变量中,具体包括以下步骤:

步骤一,服务注册监听:当普适环境中有新的组件服务对象被注册时,对象代理管理模块将为该普适服务对象生成一个代理对象,并将代理对象的引用返回给普适服务的使用者。

本实施例中在ro和rn被注册到普适环境中时,对象代理管理模块将为ro生成一个代理对象rop,对象代理管理模块将为rn生成一个代理对象rnp,rop持有ro的引用,rnp持有rn的引用,其它服务者通过rop使用ro提供的服务。

所述的普适服务对象,是指实现了普适服务对普适环境约定的服务接口的对象,它能完成服务接口所指定的任务。

所述的代理对象,是指与指定普适服务对象拥有相同接口的代理对象。

步骤二,触发更新事件:当普适服务的管理员对普适服务进行更新时,触发一个更新事件,该更新事件包括:新版本的普适服务和新旧版本普适服务对象之间的状态转移规则。

本实施例当ro的管理员希望将ro动态更新成rn时,该管理员将触发一个更新事件,并提供一个状态转移规则,该状态转移规则具体为:

ro.count->rn.count

ro.x->rn.points.x

ro.y->rn.points.y

步骤三,提取旧服务对象源状态:当普适服务动态更新开始执行时,对象状态转换模块根据状态转换规则,从旧版本中的普适服务对象中将普适服务对象的源状态提取出来。

所述的提取是利用状态转移规则中对象路径所描述的源状态位置。

本实施例从状态转移规则获取一条规则:ro.count->rn.count,对象状态转换模块通过ro.count这条对象路径,获取ro的状态值。

步骤四,注入目的状态到新服务对象:对象状态转换模块根据状态转换规则,将旧版本服务对象的源状态注入到新版本的普适服务对象的目标位置中。

本实施例通过上述对应规则中的rn.count对象路径,将ro的状态值通过对象状态转换模块定位的目标状态注入rn的目标位置中。

第五步,依次重复第三步和第四步,分别完成ro.x->rn.points.x和ro.y->rn.points.y这两条规则的执行,从而实现普适服务对象的状态转移。

通过测试得知:本实施例与未使用该动态更新方法相比较,运行时间平均仅提高0.12%,内存使用平均仅提高0.23%,性能与Alessandro Orso等人的方法和系统相比有显著提高,并且适应性广,能解决包括普通成员、数组、列表、哈希表在内的一切状态形式的状态转移问题。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号