预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号(10)申请公布号CNCN103500084103500084A(43)申请公布日2014.01.08(21)申请号201310290619.6(22)申请日2013.07.11(71)申请人南京大学地址210023江苏省南京市栖霞区仙林大道163号南京大学计算机系(72)发明人吕建马晓星曹春(74)专利代理机构南京知识律师事务所32207代理人张苏沛(51)Int.Cl.G06F9/44(2006.01)权权利要求书3页利要求书3页说明书5页说明书5页附图3页附图3页(54)发明名称一种支持软件动态更新的服务构件架构方法(57)摘要本发明公开了一种支持软件动态更新的服务构件架构方法。本发明通过扩展现有的服务构件架构SCA(ServiceComponentArchitecture)规范,增加了支持动态更新的事务模型、构件生命周期模型,最终在SCA的一个开源实现ApacheTuscany上实现支持动态更新的Conup平台,使其能一致、高效地支持构件动态更新。CN103500084ACN103584ACN103500084A权利要求书1/3页1.一种支持软件动态更新的服务构件架构方法,其特征在于:步骤1、为分布式事务定义具体的事务状态、事务状态跳转语义以及事务状态传递等,以抽象的描述构件业务逻辑在运行时刻的进展情况,从而可以根据当前构件上的事务上下文判断构件是否达到可更新的安全状态;步骤2、当事务依赖信息和状态发生改变时,通知事务管理器进行处理;步骤3、定义构件生命周期器,支持完整的构件更新过程,它包括了更新所需的构件状态、构件状态跳转语义;步骤4、当目标构件收到更新请求,通知构件生命周期管理器;步骤5、更新完成,返回更新结果。2.根据权利要求1所述的服务构件架构方法,其特征在于,步骤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状态;步骤1-4、对于事务状态传递,当一个根事务在发起远程子事务时,需要将当前事务标记为RemoteTxStarted状态,将欲发起的子事务标记为Initiated状态并保存该子事务所在的构件,将相关的根事务信息和当前事务信息(即子事务的父事务信息)传递给相应的远程事务;当一个父事务在发起远程事务时,需要将当前事务标记为RemoteTxStarted状态,将欲发起的子事务标记为Initiated状态并保存该子事务所在的构件,将相关的根事务信息以及当前事务信息传递给相应的远