[发明专利]一种支持软件动态更新的服务构件架构方法有效
| 申请号: | 201310290619.6 | 申请日: | 2013-07-11 |
| 公开(公告)号: | CN103500084A | 公开(公告)日: | 2014-01-08 |
| 发明(设计)人: | 吕建;马晓星;曹春 | 申请(专利权)人: | 南京大学 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 南京知识律师事务所 32207 | 代理人: | 张苏沛 |
| 地址: | 210023 江苏省南京市*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 支持 软件 动态 更新 服务 构件 架构 方法 | ||
技术领域
本发明涉及一种支持软件动态更新的服务构件架构技术,属于软件维护技术领域。
背景技术
基于构件的软件开发CBSD(Component-Based Software Development)技术被认为是提高软件开发效率和质量的有效途径,并获得广泛的关注与应用,产生了诸多构件模型和构件框架。但随着Internet/WWW逐步演化为开放的计算平台,源于传统静态环境的CBSD难以充分应对开放网络环境下用户需求和软件平台的动态、多变性。
应对需求和环境变更的一个有效途径是允许运行中的构件系统能够动态地更新。主流的构件模型和构件框架对动态更新支持薄弱,而学术界研究所假设的模型过于简化难以实际应用。为此,本发明扩展了服务构件架构SCA(Service Component Architecture),使其能完整的支持高效、一致的构件动态更新。
发明内容
本发明所要解决的技术问题是在不中断系统正常运行的需求下,提供一种支持构件动态更新的方法,使得能够支持高效、一致的构件动态更新。
本发明所述的一种支持软件动态更新的服务构件架构方法,包含如下特征:
步骤1、为分布式事务定义具体的事务状态、事务状态跳转语义以及事务状态传递等,以抽象的描述构件业务逻辑在运行时刻的进展情况,从而可以根据当前构件上的事务上下文判断构件是否达到可更新的安全状态;
步骤2、当事务依赖信息和状态发生改变时,通知事务管理器进行处理;
步骤3、定义构件生命周期器,支持完整的构件更新过程,它包括了更新所需的构件状态、构件状态跳转语义;
步骤4、当目标构件收到更新请求,通知构件生命周期管理器;
步骤5、更新完成,返回更新结果。
上述步骤1具体包括:
步骤1-1、将分布式事务区分为根事务和本地事务;
步骤1-2、对于根事务,当根构件接收到来自外界客户端的业务逻辑请求时,一旦该请求被允许在根构件上运行,则该事务进入Initiated状态;当根事务一旦开始执行,该事务即进入RootTxStarted状态;在根构件恰好准备第一次调用远程构件之前,该事务即被标记为FirstRequest,其含义为根构件将要第一次发生远程调用;根事务可能需要向远程构件发起远程事务请求,一旦该请求发送出去,根事务即转入RemoteTxStarted状态,用于标识当前构件正在等待一个远程事务结束的过程中;一旦根事务正在等待的一个远程事务结束返回,根事务即转入RemoteTxEnded状态,用于标识根事务刚结束了一次远程调用;根事务发起的远程事务结束返回则意味着构件过去曾使用过某个远程构件,即该事务对构件的动态依赖关系发生了变化,事务进入DependenceChanged,在该状态下,如果该构件后面还会发起其他远程调用时,则该事务的后续状态会转为RemoteTxStarted,否则该事务等待进入Ended状态;当根事务结束时,它便转入Ended状态;
步骤1-3、对于本地事务,当一个构件被其他构件要求在本地发起一个子事务时,一旦该子事务被允许在本地发起,该本地事务即进入Initiated状态;当构件上的本地子事务一旦开始执行,该事务即被标记为LocalTxStarted状态;本地事务可能需要向远程构件发起远程事务请求,一旦该请求发送出去,本地事务即转入RemoteTxStarted状态,用于标识当前构件正在等待一个远程事务结束的过程中;一旦本地事务正在等待的一个远程事务结束返回,该事务即转入RemoteTxEnded状态,用于标识事务刚结束了一次远程调用;本地事务发起的远程事务结束返回则意味着构件过去曾使用过某个远程构件,即该事务对构件的动态依赖关系发生了变化,事务进入DependenceChanged,在该状态下,如果该构件后面还会发起其他远程调用时,则该事务的后续状态会转为RemoteTxStarted,否则该事务等待进入Ended状态;当本地事务结束时,它便转入Ended状态;本地事务进入Ended状态,则意味着执行结束返回,该状态将会触发父事务进入RemoteTxEnded状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310290619.6/2.html,转载请声明来源钻瓜专利网。





