具有备份恢复功能的OTS设计与实现

具有备份恢复功能的OTS设计与实现摘要:提出一种对象事务服务器备份恢复模型,并结合CORBA的OTS标准实现了一个具有恢复管理功能的CORBA对象事务服务器。结果表明,该事务服务器除了具有OMG规范规定的功能外,还具有事务数据在线备份及意外失败后恢复的功能。关键词:分布式计算;公共对象请求代理体系结构;对象事务服务;备份与恢复;事务;两阶段提交协议中图分类号:TP311文献标志码:A文章编号:1001-3695(2007)12-0220-03CORBA是由对象管理组所提出的一种规范[1]。OMG的COSS标准[2]定义了大约16种公共对象服务。这些服务是CORBA为使用和维护对象系统而提供的基本服务集合。它们独立于应用领域,是分布式对象程序使用的接口。OTS[3]是OMG组织推出的一种COSS服务,它保证了企业应用中事务性操作的原子性和持久性,对构建高可靠性应用,特别是要求并发访问共享数据的分布式应用起着关键作用。在事务服务器处理事务的过程中,可能会因为断电等故障而导致事务服务器的崩溃。为了维护数据的一致性,就应该有一种完善的机制保证事务的重新启动和恢复。文献[4~6]实现了几种不同特点的事务服务器,但是实现的事务服务器没有考虑恢复功能;文献[7]讨论了分布式事务处理中的事务失败恢复,但是没有给出具体的实现。本文提出了一种事务服务器意外失败恢复模型,并且结合OTS规范在Orbas[8]的ORB上实现了一个具有恢复管理功能的事务服务器。1总体设计如图1所示,org.omg.CosTransactions包中是OTS各接口的POA框架类和码根类。Orbas.OTS中的类均继承自该包的POA框架类。Orbas.OTS包还要调用org.omg.CORBA包和orb内核子系统。Orbas.TransRecovery包是备份恢复管理模块,事务服务器在进行事务处理的过程中须与该模块联系进行事务数据的动态备份;同样,当事务服务器失败后重启时,备份恢复模块主导整个事务服务器的恢复过程,在此过程要频繁地与OTS模块交换信息。2OTS模块的设计与实现2.1OTS接口定义图2描述了OTS接口:Current接口中定义了控制和管理事务的操作,可以开始和结束一个事务,通过Current可以获得当前事务的相关信息。TransactionFactory接口中定义了两个操作,即create和recreate。前者可以生成一个新的顶层事务;后者可以生成一个PropagationContext,定义已存在事务的新代表,并返回一个Control对象。Control接口允许一个程序显式地管理或者隐式地传播一个事务上下文。该接口定义了两种操作,即get_terminator和get_coordinator。前者返回一个Terminator对象,该对象支持结束事务的操作;后者返回一个Coordinator对象,以支持相关资源参与到事务所需要的操作。Terminator接口提供提交和回退事务的操作。一般由事务的发起者调用这些操作。Coordinator接口提供一个分布式对象参与到事务所需要的操作。这些参与者既可以是可恢复对象,又可以是可恢复对象的代理。RecoveryCoordinator提供了可恢复对象恢复自身的接口。Resource接口是资源接口,可恢复服务器继承此接口,以参与两阶段提交协议。Synchronization接口是继承自TransactionalObject接口,因此它是个特殊的事务对象,它的某些数据依赖资源对象。如果一个事务对象的数据本身虽然不是资源,但是它需要在资源中改变数据时得到通知,这时,该事务对象可以实现Synchronization接口,并将自己注册在Coordinator上。这样在两阶段协议开始或者结束时,分别调用Synchronization中的before_completion和after_completion操作进行相应的处理。2.2OTS实现OTS静态类图如图3所示。CurrentImpl是事务型应用程序和OTS交互的桥梁。它提供了事务服务中常用的API,是对事务进行直接管理的基础。它包括发起和终止一个事务,获得当前的事务状态,获得与设置事务的上下文、设置事务的超时、挂起和恢复一个事务等。TransactionFactoryImpl用于创建ControlImpl,这样就构建起整个事务处理的上下文。ControlImpl在其构造函数中根据传入的time_out等各个参数创建CoordinatorImpl和TerminatorImpl。CoordinatorImpl用来登记资源和同步对象,用两个向量分别存储注册到该Coordinator的资源和同步对象。TerminatorImpl是两阶段提交协议的具体执行者。当事务...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?