CN101459690B - 一种无线公共对象请求代理结构应用中的容错方法 - Google Patents
一种无线公共对象请求代理结构应用中的容错方法 Download PDFInfo
- Publication number
- CN101459690B CN101459690B CN2008102097862A CN200810209786A CN101459690B CN 101459690 B CN101459690 B CN 101459690B CN 2008102097862 A CN2008102097862 A CN 2008102097862A CN 200810209786 A CN200810209786 A CN 200810209786A CN 101459690 B CN101459690 B CN 101459690B
- Authority
- CN
- China
- Prior art keywords
- portable terminal
- request broker
- fault
- bridge
- object request
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明提供的是一种无线公共对象请求代理结构应用中的容错方法。在访问桥对象请求代理层的协助下实现创建移动终端对象副本;利用访问桥对象请求代理层的访问桥日志记录机制31记录存储移动终端对象状态检查点和移动终端对象消息事件;在访问桥对象请求代理层的协助下实现移动终端对象故障的检测;在访问桥对象请求代理层的协助下实现移动终端故障对象的删除;在访问桥对象请求代理层的协助下实现移动终端故障对象的恢复。本发明充分利用了现有CORBA 3.0.3规范中的CORBA容错基础设施和机制,扩展了无线CORBA中访问桥的ORB层,能与现有的CORBA 3.0.3规范和无线CORBA 1.2规范无缝接合,以满足无线公共对象请求代理结构应用在可靠和实时性方面的要求。
Description
(一)技术领域
本发明涉及的是一种面向服务分布式领域中应用层中间件的容错方法,更具体地说,是一种无线公共对象请求代理结构应用中的容错方法,用于面向对象的无线分布式系统。
(二)背景技术
CORBA技术作为解决分布式异构环境下应用系统互联和互操作的标准目前已经被众多的厂家和用户所接受。由于CORBA独立于网络协议、独立于编程语言、独立于软硬件平台,极大简化了分布式应用的开发,为越来越多的分布式系统所采纳,特别是在大型分布式异构软件系统的领域(电信、金融和监控系统中),CORBA正得到越来越广泛的重视和应用。OMG组织于2004年公布了最新的公用对象请求代理程序结构的技术规范CORBA 3.0.3版。CORBA的底层结构是基于面向对象模型的,由OMG接口描述语言(OMG Interface DefinitionLanguage,OMG IDL)、对象请求代理(Object Request Broker,ORB)和IIOP标准协议(Internet Inter-ORB Protocol,也称网络ORB交换协议)三个关键模块组成。为了支持运行在移动终端上的对象服务,OMG组织(Object ManagementGroup)于2005年公布了无线公共对象请求代理结构规范(Telecom WirelessCORBA specification),使CORBA技术日臻完善。
无线CORBA规范的整体结构如图1所示,系统包括宿主域2(HomeDomain)、访问域3(Visited Domain)和终端域4(Terminal Domain)三个不同的域。访问域包含一系列的静态主机5(Static Host),访问域内部的通信都是有线连接方式,每个访问域还拥有一个或多个访问桥6(Access Bridge,AB),为一批移动终端7提供ORB访问。通过连接的访问桥6移动终端服务和请求对象可以与外界其它主机通信。一个终端域4由一个驻留了ORB的移动终端7组成,每个移动终端7拥有一个终端桥8,终端桥8和访问桥6为终端域4与访问域3之间的通信接口,终端桥8能够在移动过程保持其无线网络连接,通过终端桥8与当地访问桥6间的无线连接,移动终端7上的服务和请求对象可以与外界其它主机对象通信。宿主定位代理9(Home Location Agent,HLA)位于宿主域2中,负责跟踪移动终端7当前的位置信息,即记录与各移动终端7无线连接的访问桥6。它除了提供查询和更新终端位置的操作外也提供了从本地域中获取初始化服务列表和解析初始化服务的操作。
访问桥6是GIOP隧道10网络一侧的节点,它具有将GIOP消息打包传输给终端桥8和解包从终端桥8传输过来的GIOP消息的能力。同时,访问桥6还提供了从访问域中获取初始化服务列表和解析初始化服务的操作。此外,访问桥也可以提供对移动终端的事件通知。
移动终端7是GIOP隧道10网络另一侧的节点,它的终端桥8具有将GIOP消息打包传输给访问桥6和解包从访问桥6传输过来的GIOP消息的能力。终端桥8同时也可以提供一个移动事件通道,该通道用于传输有关移动终端连接丢失和连接切换(handoffs)的通知消息。
GIOP隧道10是逻辑上用于终端桥8和访问桥6之间传输信息的通道。一般意义上的GIOP隧道协议(GTP,GIOP Tunneling Protocol)不仅定义了如何传输GIOP消息,还定义了用于建立、释放和重新建立GIOP隧道所要用到的必要控制消息。GIOP隧道协议是一种抽象的、独立于传输的协议。
CORBA框架虽然极大的简化了普通分布式应用的开发,却并没有直接简化分布式可靠应用的开发。随着CORBA在关键技术领域应用程度的加深,为满足许多分布式应用对高可靠的要求,基于对象实体的冗余OMG组织给出了容错CORBA规范(Fault Tolerant CORBA specification)以增强分布式应用的容错能力。容错是提供可靠性和可用性的关键机制,使得系统在部分对象失效发生时仍然能够继续正确执行。CORBA规范中的容错系统可以被分解成多个容错域,但一个对象组中的所有成员及其成员所在的主机必须包含在同一容错域中。每一个容错域由一个管理者管理,而不同的容错域中的对象可以彼此调用。这样,同一容错域中的对象处于相对一致和稳定的环境中,不同容错域中对象运行环境相对差别较大。可以针对单个容错域的抽象容错应用相同的QOS属性,规定容错系统的运行特性。
容错CORBA规范为容错应用的支持定义了CORBA标准,使CORBA客户能够从诸如冗余拷贝的管理,失败屏蔽及日志与恢复等细节中脱离出来,减轻容错应用设计者和实现者的负担,并且容错CORBA通过对容错系统通用属性的总结和提炼,定义了一组相应的容错接口,构造出一系列容错基础设施(FaultTolerant Infrastructure),为需要容错的服务器应用提供了一系列接口以实现容错管理,通过容错域复制管理器、域故障检测器、域故障通知器及消息处理机制等模块的协同工作完成对象组的复制管理、失效管理以及日志和恢复管理,为尽可能多的容错应用屏蔽容错管理细节,以允许构建最大范围的容错应用系统。这样,开发者就可以利用容错基础设施提供“通用”平台灵活定制自己想要的容错应用。在构建了容错应用之后,为了让客户能更好地享受到容错服务带来的好处,容错CORBA规范了对标准CORBA的扩展,即一组底层的基本容错机制(Basic FaultTolerant Mechanism),包括对象组引用的引入和CORBA容错语义的扩展。
为了实现CORBA对象容错,容错CORBA应用中的对象被创建多个副本,分布在不同的主机上,构成一个对象组,组中的每个副本被称作组的成员。一个对象组被客户应用当作独立的逻辑实体看待,为客户提供统一的寻址标识--对象组引用IOGR。对象组引用是一个包含了组中所有成员的寻址消息的对象引用,对象组引用也是对象引用IOR,但实现了一定的扩展,客户根据对象组引用请求对象服务。虽然请求的是一组对象副本,但在应用层的客户看来请求的是单一对象,对象副本冗余对于客户应用完全透明。同一对象组的成员一定驻留在不同的主机上,不同对象组的成员可能驻留在同一主机上。
每个对象组都有一组相关的容错属性,其缺省值由所属容错域设定。对象组的容错属性包括Replicationstyle,MembershipStyle,ConsistencyStyle,FaultMonitoringStyle,FaultMonitoringGranularity,InitNumReplica,MinNumReplica,Factories,FaultMonitoringInterval,CheckpointInterval,其中Replicationstyle表示对象组的复制类型,MembershipStyle表示对象组的成员类型,ConsistencyStyle表示对象组的一致性类型,FaultMonitoringStyle表示对象组的故障检测类型,FaultMonitoringGranularity表示对象组的故障检测粒度,InitNumReplica表示对象组初始化时创建对象副本的数目,MinNumReplica表示对象组的最小对象副本数目,Factories表示创建服务对象的工厂对象位置,FaultMonitoringInterval表示对象组的故障检测周期,CheckpointInterval表示对象组成员的检查点周期。容错属性的引入可以满足客户根据不同的要求对容错域进行灵活的定制。
CORBA 3.0.3中的容错CORBA规范框架如图2所示。位于服务主机H2和H3上的互为副本的服务对象S1和S2正在为客户主机H1上的客户对象C提供服务,服务对象S1和S2由ORB容错域复制管理器21的通用对象工厂13分别调用服务主机H2和服务主机H3上的对象工厂16生成。S1和S2所构成的容错对象组及相关属性可以通过ORB容错域复制管理器21的对象组管理器12和属性管理器13接口进行管理,客户对象C通过S1和S2所在对象组的对象组引用进行服务请求。在服务对象S1和S2运行期间,服务主机H2和H3上的日志记录机制17分别周期性地记录服务对象S1和S2的状态信息和相关消息日志。在服务对象S1和S2运行期间,服务主机H2和H3上的故障检测器19根据对象组的属性,分别定期检测服务对象S1和S2运行是否出错。当检测到服务对象发生故障时,服务主机上故障检测器19会及时通知ORB容错域的域故障检测器15,由域故障检测器15进一步通知ORB容错域的域故障通知器14,最后在ORB容错域复制管理器21的安排下,通过服务主机上的对象恢复机制20恢复故障服务对象。
OMG组织发布的CORBA 3.0.3中,容错CORBA规范仅是为有线的CORBA而设计,目前发布的无线CORBA 1.2规范没有给出相应容错规范方面的扩展。在无线CORBA应用中,无线链路带宽低、移动终端存储空间有限与易于丢失、移动终端可移动性、电池能量有限等特性导致移动终端经常从网络中断开,使得为有线网络CORBA开发的容错方法不能完全适用于新兴的无线CORBA应用。
与本发明申请相关的报道有:1、Object Management Group.The CommonObject Request Broker:Architecture and specification,2.6.1 edition.OMG Documentformal Version 3.0.3/04-03-12,March 2004技术规范CORBA 3.0.3版,里面的容错CORBA规范仅是为有线的CORBA而设计。2、Object Management Group.Telecom wireless CORBA.OMG Document formal Version 1.2/05-05-02,May 2005.OMG组织于2005年公布的无线CORBA规范,里面没有相关无线CORBA的容错规范扩展。3、Chen Xinyu,John,C.S.Lui.Message Logging and Recovery inWireless CORBA Using Access Bridge.该文献利用的是进程检查点的技术,没有利用CORBA面向对象服务框架,与CORBA面向对象服务容错框架不能无缝结合。
(三)发明内容
本发明的目的在于提供一种能与现有的CORBA 3.0.3规范和无线CORBA
1.2规范无缝接合,能满足无线公共对象请求代理结构应用在可靠和实时性方面的要求的一种无线公共对象请求代理结构应用中的容错方法。
本发明的目的是这样实现的:
本发明的一种技术方案是:整个无线CORBA容错框架包括移动终端上的对象工厂16、移动终端上的故障检测器19、移动终端对象请求代理层的对象恢复机制20、移动终端对象请求代理层的日志记录机制17、访问桥对象请求代理层的日志记录机制31、访问桥对象请求代理层的对象恢复机制32、原CORBA 3.0.3容错框架中对象请求代理层的容错域复制管理器21、原无线CORBA 1.2框架中的访问桥6、终端桥8及对象请求代理层的消息处理机制18;其中移动终端上的对象工厂16和移动终端上的故障检测器19由移动终端的对象请求代理层连接调用;移动终端对象请求代理层的对象恢复机制20和移动终端对象请求代理层的日志记录机制17位于移动终端对象请求代理层;访问桥对象请求代理层的日志记录机制31和访问桥对象请求代理层的对象恢复机制32位于访问桥对象请求代理层;
其容错机制包括:
(1)在访问桥对象请求代理层的协助下实现创建移动终端对象副本;
(2)利用访问桥对象请求代理层的访问桥日志记录机制31记录存储移动终端对象状态检查点和移动终端对象消息事件;
(3)在访问桥对象请求代理层的协助下实现移动终端对象故障的检测;
(4)在访问桥对象请求代理层的协助下实现故障移动终端对象的恢复。
该技术方案还可以包括:
1、所述在访问桥对象请求代理层的协助下实现创建移动终端对象副本具体实现是:复制管理器21把创建移动终端对象请求发送到访问桥,由访问桥对象请求代理层将此请求转发给移动终端,移动终端利用自身的对象工厂16按照相应的参数和初始化要求创建出移动终端对象,完成移动终端对象副本的创建。
2、所述利用访问桥对象请求代理层的访问桥日志记录机制31记录存储移动终端对象状态检查点具体实现是:根据属性管理器11中容错对象组的检查点周期参数,移动终端日志记录机制17周期性地调用Checkpointable接口中的get_state()或get_update()操作获得移动终端对象状态信息,移动终端对象状态信息被传输给访问桥对象请求代理层的日志记录机制31,由访问桥日志记录机制31将移动终端对象状态信息存储到可靠存储器。
3、所述利用访问桥上对象请求代理层的访问桥日志记录机制31记录存储移动终端对象消息事件具体是:在向移动终端转发GIOP消息前,访问桥对象请求代理层的日志记录机制31首先存储该GIOP消息为日志,即访问桥6转发的每个GIOP消息,都会被访问桥日志记录机制31按照所属对象分类顺次记录存储。
4、所述在访问桥对象请求代理层的协助下实现移动终端对象故障检测的具体实现是:各移动终端的故障检测器19会根据各对象组的容错属性,定期调用is_alive()方法检测移动终端对象的运行状态,当调用is_alive()方法无应答时,则判定移动终端对象运行过程发生故障;移动终端故障检测器19检测到某一移动终端对象发生故障后,立即将此故障消息发送给访问桥6,由访问桥对象请求代理层转发此故障报告给容错域的域故障检测器15,容错域的域故障检测器15进一步将故障消息报告转交给域故障通知器14,最后由域故障通知器14通知容错域复制管理器21;容错域的域故障检测器15通过定期调用is_alive()方法检测移动终端的服务器故障,如移动终端断电故障;得到移动终端对象或服务器故障通知后,容错域的复制管理器21会决定是否把客户请求切换到其它移动终端对象副本上、是否有必要对移动终端故障对象进行恢复。
5、所述在访问桥对象请求代理层的协助下实现移动终端故障对象的恢复具体实现是:如果需恢复发生故障的移动终端对象,复制管理器21向移动终端发送恢复对象请求,访问桥对象请求代理层接收到恢复请求后,通过访问桥日志记录机制31获取移动终端对象恢复所需的状态信息,并传送恢复请求与状态信息给移动终端的对象恢复机制32,移动终端对象恢复机制20调用故障set_state操作回滚移动终端对象状态,并在访问桥日志记录机制31的协助下重放相关的GIOP消息日志,将移动终端对象恢复到故障前的状态;移动终端对象恢复过程中产生的重复消息由访问桥对象请求代理层的消息处理机制18识别并屏蔽。
本发明的一种技术方案是:整个无线CORBA容错框架包括移动终端上的对象工厂16、移动终端上的故障检测器19、移动终端对象请求代理层的对象恢复机制20、移动终端对象请求代理层的日志记录机制17、访问桥对象请求代理层的日志记录机制31、访问桥对象请求代理层的对象恢复机制32、原CORBA 3.0.3容错框架中对象请求代理层的容错域复制管理器21、原无线CORBA 1.2框架中的访问桥6、终端桥8及对象请求代理层的消息处理机制18;其中移动终端上的对象工厂16和移动终端上的故障检测器19由移动终端的对象请求代理层连接调用;移动终端对象请求代理层的对象恢复机制20和移动终端对象请求代理层的日志记录机制17位于移动终端对象请求代理层;访问桥对象请求代理层的日志记录机制31和访问桥对象请求代理层的对象恢复机制32位于访问桥对象请求代理层;
其容错机制包括:
(1)在访问桥对象请求代理层的协助下实现创建移动终端对象副本;
(2)利用访问桥对象请求代理层的访问桥日志记录机制31记录存储移动终端对象状态检查点和移动终端对象消息事件;
(3)在访问桥对象请求代理层的协助下实现移动终端对象故障的检测;
(4)在访问桥对象请求代理层的协助下实现故障移动终端对象的删除。
该技术方案还可以包括:
1、所述在访问桥对象请求代理层的协助下实现创建移动终端对象副本具体实现是:复制管理器21把创建移动终端对象请求发送到访问桥,由访问桥对象请求代理层将此请求转发给移动终端,移动终端利用自身的对象工厂16按照相应的参数和初始化要求创建出移动终端对象,完成移动终端对象副本的创建。
2、所述利用访问桥对象请求代理层的访问桥日志记录机制31记录存储移动终端对象状态检查点具体实现是:根据属性管理器11中容错对象组的检查点周期参数,移动终端日志记录机制17周期性地调用Checkpointable接口中的get_state()或get_update()操作获得移动终端对象状态信息,移动终端对象状态信息被传输给访问桥对象请求代理层的日志记录机制31,由访问桥日志记录机制31将移动终端对象状态信息存储到可靠存储器。
3、所述利用访问桥上对象请求代理层的访问桥日志记录机制31记录存储移动终端对象消息事件具体是:在向移动终端转发GIOP消息前,访问桥对象请求代理层的日志记录机制31首先存储该GIOP消息为日志,即访问桥6转发的每个GIOP消息,都会被访问桥日志记录机制31按照所属对象分类顺次记录存储;
所述在访问桥对象请求代理层的协助下实现移动终端对象故障检测的具体实现是:各移动终端的故障检测器19会根据各对象组的容错属性,定期调用is_alive()方法检测移动终端对象的运行状态,当调用is_alive()方法无应答时,则判定移动终端对象运行过程发生故障;移动终端故障检测器19检测到某移动终端对象发生故障后,立即将此故障消息发送给访问桥6,由访问桥对象请求代理层转发此故障报告给容错域的域故障检测器15,容错域的域故障检测器15进一步将故障消息报告转交给域故障通知器14,最后由域故障通知器14通知容错域复制管理器21;容错域的域故障检测器15通过定期调用is_alive()方法检测移动终端的服务器故障,如移动终端断电故障;得到移动终端对象或服务器故障通知后,容错域的复制管理器21会决定是否把客户请求切换到其它移动终端对象副本上、是否从容错对象组移除该故障移动终端对象;
所述在访问桥对象请求代理层的协助下实现移动终端故障对象删除的具体实现是:如果需移除发生故障的移动终端对象,复制管理器21向移动终端发送移除移动终端对象请求,访问桥对象请求代理层接收到移除移动终端对象请求后,转发请求给移动终端的对象工厂16,移动终端对象工厂16调用相应的操作删除故障移动终端对象。
本发明无线CORBA应用容错方法,充分利用了现有CORBA 3.0.3规范中的CORBA容错基础设施和机制,扩展了无线CORBA中访问桥的ORB层,结合目前有线容错CORBA规范中基于对象实体冗余的基本容错机制,利用访问桥节点记录存储移动终端的对象状态和消息日志,给出了无线CORBA应用的容错方法,其能与现有的CORBA 3.0.3规范和无线CORBA 1.2规范无缝接合,以满足无线公共对象请求代理结构应用在可靠和实时性方面的要求。扩展无线公共对象请求代理结构中访问桥的对象请求代理(ORB)层,在访问桥的对象请求代理层中加入访问桥日志记录机制和访问桥对象恢复机制。扩展了对象请求代理层的访问桥与CORBA 3.0.3中容错CORBA规范的容错基础设施协作为无线CORBA服务对象提供容错方法。本发明的无线CORBA容错机制中,将访问桥与移动终端问的网络中断当作移动终端服务器故障来处理。
本发明的具有以下优点:
扩展的无线CORBA容错方法能与现有CORBA规范和无线CORBA规范进行无缝接合,而不影响原有CORBA应用程序的运行与服务提供,具有良好的向上兼容性;
由于移动终端与整个CORBA系统的通信是由与其连接的访问桥接入,每个移动终端接收或发送的消息都要经过访问桥的转发,因此利用访问桥日志记录机制记录存储移动终端GIOP消息方式具有较小的开销和较高的可靠性,并能保证日志记录的同步;
使用访问桥日志记录机制存储服务对象状态检查点更加可靠安全,在移动终端对象需要恢复时,访问桥对象恢复机制可以及时协助其进行恢复;
当出现移动终端硬件故障和断电的情况下,依然可以保证客户请求切换到其它服务器,为客户提供容错透明的可靠服务。
(四)附图说明
图1无线CORBA系统框架;
图2CORBA 3.0.3规范中的系统容错框架;
图3无线CORBA的容错框架;
图4无线CORBA容错框架中主/被动式容错方式下创建服务对象;
图5无线CORBA容错框架中主动式容错方式下客户请求消息日志的记录;
图6无线CORBA容错框架中主动式容错方式下服务对象检查点的创建;
图7无线CORBA容错框架中主/被动式容错方式下服务对象故障的检测;
图8无线CORBA容错框架中主动式容错方式下故障服务对象S1的恢复;
图9无线CORBA容错框架中被动式容错方式下客户请求消息日志的记录;
图10无线CORBA容错框架中被动式容错方式下服务对象检查点的创建;
图11无线CORBA容错框架中被动式容错方式下故障服务对象S1的恢复及服务的切换;
图12无线CORBA容错框架中主/被动式容错方式下服务器故障检测;
图13无线CORBA容错框架中主动式容错方式下创建新的服务对象替代故障对象。
(五)具体实施方式
下面结合附图举例对本发明做更详细地描述:
本发明的附图中的图号的含义为:附图中标号的意义:2表示宿主域、3表示访问域、4表示终端域、5表示静态主机、6表示访问桥、7表示移动终端、8表示终端桥、9表示宿主定位代理、10表示GIOP隧道、11表示ORB容错域复制管理器中的属性管理器、12表示ORB容错域复制管理器中的对象组管理器、13表示ORB容错域复制管理器中的通用对象工厂、14表示ORB容错域的域故障检测器、15表示ORB容错域的域故障通知器、16表示服务主机上的对象工厂、17表示服务主机ORB层的日志记录机制、18表示服务主机ORB层的消息处理机制、19表示服务主机上的故障检测器、20表示服务主机ORB层的对象恢复机制、21表示ORB容错域复制管理器、22表示客户主机、23表示客户主机的客户对象、24表示静态服务主机H1、25表示静态服务主机H2、26表示主机上的服务对象S1、27表示主机上的服务对象S2、28表示移动终端主机上的服务对象S3、31表示访问桥ORB层的访问桥日志记录机制、32表示访问桥ORB层的访问桥对象恢复机制、33表示访问桥ORB层的消息处理机制、41表示create_object()请求、42表示客户对象请求消息、43表示日志记录机制的get_stat()e或get_update()请求、44表示故障检测器的is_alive()请求、45表示对象恢复机制的set_state()请求、46表示对象恢复机制的set_update()请求。
具体实施方式1:
无线CORBA主动式冗余容错方式。
具体来说,复制管理器把设置了属性的创建对象请求create_object()41发送到访问桥A1和A2,由访问桥A1和A2分别将此请求转发给相应的移动终端T1和T2,按照相应的参数和初始化要求移动终端T1和T2分别利用自身的对象工厂16创建出对象S1和S2,完成容错对象组的创建,如图4所示。
利用对象组引用,客户对象的消息被同时发往互为备份的服务对象S1和S2,在向移动终端对象S1和S2转发GIOP消息42前,访问桥A1和A2的日志记录机制31分别存储该GIOP消息42为日志,然后分别向目的移动终端对象S1和S2转发此消息,如图5所示。S1和S2的回复消息由ORB层消息处理机制18裁减为不重复的消息,提供给客户对象C。
根据容错对象组的检查点周期参数,移动终端T1和T2的日志记录机制17分别周期性地调用对象S1和S2 Checkpointable接口中的get_state()或get_update()43操作获取对象状态信息,并将得到的对象状态信息传输给访问桥日志记录机制31,访问桥A1和A2的日志记录机制31将对象S1和S2状态信息分别存储在各自的可靠存储器上,如图6所示。
移动终端T1和T2的故障检测器19根据对象组属性,定期地调用对象的is_alive()方法检测对象S1和S2的运行状态,当调用对象的is_alive()请求44无应答时,则判定对象运行发生故障。某一时刻t1,移动终端T1的故障检测器检测到对象S1发生故障,经过访问桥A1的转发,移动终端T1的故障检测器将故障消息报告对象组所在容错域的域故障检测器15,对象组所在容错域的域故障检测器将故障消息提交给域故障通知器14,如图7所示。复制管理器21在得到域故障通知器的故障通知后,将客户请求切换到移动终端T2的服务对象S2,同时为了维持容错对象组中对象副本的数目,向访问桥A1发送恢复对象S1的恢复请求。
访问桥A1接收到恢复对象S1的恢复请求后,访问桥对象恢复机制32通过访问桥日志记录机制31获取对象S1恢复所需的状态信息,并转发恢复请求与状态信息给移动终端T1,移动终端T1的对象恢复机制20调用对象S1的set_state()45操作卷回对象状态,并在访问桥日志记录机制31的协助下重放相关的GIOP消息日志,如图8所示。对象S1恢复到与其它对象组成员一致的状态,作为客户对象C的服务对象继续运行。
具体实施方式2
无线CORBA被动式冗余容错方式。
具体来说,复制管理器把设置了属性的创建对象请求create_object()41发送到访问桥A1和A2,由访问桥A1和A2分别将此请求转发给相应的移动终端T1和T2,按照相应的参数和初始化要求移动终端T1和T2分别利用自身的对象工厂16创建出对象S1和S2,完成容错对象组的创建,其中S1为主服务对象,处理来自客户的对象请求,如图4所示。
利用对象组引用,客户对象GIOP消息42被同时发往容错对象组的主服务对象S1和非主服务对象S2,在向移动终端对象S1转发GIOP消息42前,访问桥A1的日志记录机制31存储该GIOP消息为日志,然后向目的移动终端对象S1转发此消息;访问桥A2的日志记录机制31存储收到的GIOP消息为日志,但不需要向移动终端对象S2转发此消息,如图9所示。
根据容错对象组的检查点周期参数,移动终端T1日志记录机制17周期性地调用对象Checkpointable接口中的get_state()或get_update()43操作获取对象S1状态信息,并将得到的对象状态信息传输给访问桥A1,访问桥日志记录机制31将对象状态信息存储在访问桥A1的可靠存储器后,根据对象组的容错方式更新备份服务对象S2的状态信息,如图10所示。
移动终端T1和T2的故障检测器19根据对象组属性,定期地调用对象的is_alive()方法检测对象的运行状态,当调用对象的is_alive()请求44无应答时,则判定对象运行过程发生故障。某一时刻t1,移动终端T1的故障检测器19检测到对象S1发生故障,经过访问桥A1的转发,移动终端T1的故障检测器将故障消息报告对象组所在容错域的域故障检测器15,对象组所在容错域的域故障检测器将此故障消息提交给域故障通知器14,如图7所示。复制管理器21在得到域故障通知器14的故障通知后,将客户请求切换到移动终端T2的服务对象S2,同时向访问桥A1发送恢复对象S1的恢复请求。
访问桥A2接收到服务对象S2切换为主服务对象的请求后,访问桥对象恢复机制32通过访问桥日志记录机制31获取对象S2需要的状态更新日志,并转发切换请求与状态日志给移动终端T2,移动终端T2的对象恢复机制调用对象S2的set_update操作46更新对象S2,对象S2更新完毕后,作为客户对象C的主服务对象继续运行,如图11所示。
访问桥A1接收到恢复对象S1的恢复请求后,访问桥对象恢复机制32通过访问桥日志记录机制31获取对象S1恢复所需的状态信息,并转发恢复请求与状态信息给移动终端T1,移动终端T1的对象恢复机制20调用对象S1的set_state()45操作卷回对象状态,并在访问桥日志记录机制31的协助下重放相关的GIOP消息日志,如图11所示。对象S1恢复到与其它对象组成员一致的状态,作为客户对象C的非主服务对象继续运行。
具体实施方式3
主动式冗余方式下移动终端不可恢复性故障容错。
具体来说,复制管理器把设置了属性的创建对象请求create_object()41发送到访问桥A1和A2,由访问桥A1和A2分别将此请求转发给相应的移动终端T1和T2,按照相应的参数和初始化要求移动终端T1和T2分别利用自身的对象工厂16创建出对象S1和S2,完成容错对象组的创建,如图4所示。
利用对象组引用,客户对象的消息被同时发往互为备份的服务对象S1和S2,在向移动终端对象S1和S2转发GIOP消息42前,访问桥A1和A2的日志记录机制31分别存储该GIOP消息42为日志,然后分别向目的移动终端对象S1和S2转发此消息,如图5所示。S1和S2的回复消息由ORB层消息处理机制18裁减为不重复的消息,提供给客户对象C。
根据容错对象组的检查点周期参数,移动终端T1和T2的日志记录机制17分别周期性地调用对象S1和S2 Checkpointable接口中的get_state()或get_update()43操作获取对象状态信息,并将新得到的对象状态信息传输给访问桥日志记录机制31,访问桥A1和A2的日志记录机制31将对象S1和S2状态信息分别存储在各自的可靠存储器上,如图6所示。
移动终端T1和T2的故障检测器19根据对象组属性,定期地调用对象的is_alive()方法检测对象S1和S2的运行状态,当调用对象的is_alive()请求44无应答时,则判定对象运行过程发生故障。某一时刻t1,对象组所在容错域的域故障检测器15检测到对象S1终端无应答,容错域的域故障检测器15将故障消息提交给域故障通知器14,如图12所示。复制管理器21在得到域故障通知器14的故障通知后,将客户请求切换到服务对象S2,把服务对象S1从容错对象组中移除,同时为了维持容错对象组的对象副本数目,向移动终端T3发送创建服务对象S3的请求。
访问桥A3接收到接收到创建服务对象S3请求后,访问桥对象恢复机制32通过访问桥日志记录机制31获取创建对象S3所需的状态信息,并转发此请求与状态信息给移动终端T3,移动终端T3先利用终端对象工厂16创建服务对象S3,并在访问桥对象恢复机制32和访问桥日志记录机制31的协助下更新对象S3,如图13所示。对象S3与其它对象组成员状态达到一致后,作为客户对象C的服务对象继续运行。
Claims (10)
1.一种无线公共对象请求代理结构应用中的容错方法,其特征是:
整个无线CORBA容错框架包括移动终端上的对象工厂(16)、移动终端上的故障检测器(19)、移动终端对象请求代理层的对象恢复机制(20)、移动终端对象请求代理层的日志记录机制(17)、访问桥对象请求代理层的日志记录机制(31)、访问桥对象请求代理层的对象恢复机制(32)、原CORBA 3.0.3容错框架中对象请求代理层的容错域复制管理器(21)、原无线CORBA 1.2框架中的访问桥(6)、终端桥(8)及对象请求代理层的消息处理机制(18);其中移动终端上的对象工厂(16)和移动终端上的故障检测器(19)由移动终端的对象请求代理层连接调用;移动终端对象请求代理层的对象恢复机制(20)和移动终端对象请求代理层的日志记录机制(17)位于移动终端对象请求代理层;访问桥对象请求代理层的日志记录机制(31)和访问桥对象请求代理层的对象恢复机制(32)位于访问桥对象请求代理层;
其容错机制包括:
(1)在访问桥对象请求代理层的协助下实现创建移动终端对象副本;
(2)利用访问桥对象请求代理层的访问桥日志记录机制(31)记录存储移动终端对象状态检查点和移动终端对象消息事件;
(3)在访问桥对象请求代理层的协助下实现移动终端对象故障的检测;
(4)在访问桥对象请求代理层的协助下实现故障移动终端对象的恢复。
2.根据权利要求1所述的一种无线公共对象请求代理结构应用中的容错方法,其特征是:所述在访问桥对象请求代理层的协助下实现创建移动终端对象副本具体实现是:复制管理器(21)把创建移动终端对象请求发送到访问桥,由访问桥对象请求代理层将此请求转发给移动终端,移动终端利用自身的对象工厂(16)按照相应的参数和初始化要求创建出移动终端对象,完成移动终端对象副本的创建。
3.根据权利要求2所述的一种无线公共对象请求代理结构应用中的容错方法,其特征是:所述利用访问桥对象请求代理层的访问桥日志记录机制(31)记录存储移动终端对象状态检查点具体实现是:根据属性管理器(11)中容错对象组的检查点周期参数,移动终端日志记录机制(17)周期性地调用Checkpointable()接口中的get_state()或get_update()操作获得移动终端对象状态信息,移动终端对象状态信息被传输给访问桥对象请求代理层的日志记录机制(31),由访问桥日志记录机制(31)将移动终端对象状态信息存储到可靠存储器。
4.根据权利要求3所述的一种无线公共对象请求代理结构应用中的容错方法,其特征是:所述利用访问桥上对象请求代理层的访问桥日志记录机制(31)记录存储移动终端对象消息事件具体是:在向移动终端转发GIOP消息前,访问桥对象请求代理层的日志记录机制(31)首先存储该GIOP消息为日志,即访问桥(6)转发的每个GIOP消息,都会被访问桥日志记录机制(31)按照所属对象分类顺次记录存储。
5.根据权利要求4所述的一种无线公共对象请求代理结构应用中的容错方法,其特征是:所述在访问桥对象请求代理层的协助下实现移动终端对象故障检测的具体实现是:各移动终端的故障检测器(19)会根据各对象组的容错属性,定期调用is_alive()方法检测移动终端对象的运行状态,当调用is_alive()方法无应答时,则判定移动终端对象运行过程发生故障;移动终端故障检测器(19)检测到某一移动终端对象发生故障后,立即将此故障消息发送给访问桥(6),由访问桥对象请求代理层转发此故障报告给容错域的域故障检测器(15),容错域的域故障检测器(15)进一步将故障消息报告转交给域故障通知器(14),最后由域故障通知器(14)通知容错域复制管理器(21);容错域的域故障检测器(15)通过定期调用is_alive()方法检测移动终端的服务器故障;得到移动终端对象或服务器故障通知后,容错域的复制管理器(21)会决定是否把客户请求切换到其它移动终端对象副本上、是否有必要对故障移动终端对象进行恢复。
6.根据权利要求5所述的一种无线公共对象请求代理结构应用中的容错方法,其特征是:所述在访问桥对象请求代理层的协助下实现故障移动终端对象的恢复具体实现是:如果需恢复发生故障的移动终端对象,复制管理器(21)向移动终端发送恢复对象请求,访问桥对象请求代理层接收到恢复请求后,通过访问桥日志记录机制(31)获取移动终端对象恢复所需的状态信息,并传送恢复请求与状态信息给移动终端的对象恢复机制(32),移动终端对象恢复机制(20)调用set_state()操作回滚移动终端对象状态,并在访问桥日志记录机制(31)的协助下重放相关的GIOP消息日志,将移动终端对象恢复到故障前的状态;移动终端对象恢复过程中产生的重复消息由访问桥对象请求代理层的消息处理机制(18)识别并屏蔽。
7.一种无线公共对象请求代理结构应用中的容错方法,其特征是:
整个无线CORBA容错框架包括移动终端上的对象工厂(16)、移动终端上的故障检测器(19)、移动终端对象请求代理层的对象恢复机制(20)、移动终端对象请求代理层的日志记录机制(17)、访问桥对象请求代理层的日志记录机制(31)、访问桥对象请求代理层的对象恢复机制(32)、原CORBA 3.0.3容错框架中对象请求代理层的容错域复制管理器(21)、原无线CORBA 1.2框架中的访问桥(6)、终端桥(8)及对象请求代理层的消息处理机制(18);其中移动终端上的对象工厂(16)和移动终端上的故障检测器(19)由移动终端的对象请求代理层连接调用;移动终端对象请求代理层的对象恢复机制(20)和移动终端对象请求代理层的日志记录机制(17)位于移动终端对象请求代理层;访问桥对象请求代理层的日志记录机制(31)和访问桥对象请求代理层的对象恢复机制(32)位于访问桥对象请求代理层;
其容错机制包括:
(1)在访问桥对象请求代理层的协助下实现创建移动终端对象副本;
(2)利用访问桥对象请求代理层的访问桥日志记录机制(31)记录存储移动终端对象状态检查点和移动终端对象消息事件;
(3)在访问桥对象请求代理层的协助下实现移动终端对象故障的检测;
(4)在访问桥对象请求代理层的协助下实现故障移动终端对象的删除。
8.根据权利要求7所述的一种无线公共对象请求代理结构应用中的容错方法,其特征是:所述在访问桥对象请求代理层的协助下实现创建移动终端对象副本具体实现是:复制管理器(21)把创建移动终端对象请求发送到访问桥,由访问桥对象请求代理层将此请求转发给移动终端,移动终端利用自身的对象工厂(16)按照相应的参数和初始化要求创建出移动终端对象,完成移动终端对象副本的创建。
9.根据权利要求8所述的一种无线公共对象请求代理结构应用中的容错方法,其特征是:所述利用访问桥对象请求代理层的访问桥日志记录机制(31)记录存储移动终端对象状态检查点具体实现是:根据属性管理器(11)中容错对象组的检查点周期参数,移动终端日志记录机制(17)周期性地调用Checkpointable()接口中的get_state()或get_update()操作获得移动终端对象状态信息,移动终端对象状态信息被传输给访问桥对象请求代理层的日志记录机制(31),由访问桥日志记录机制(31)将移动终端对象状态信息存储到可靠存储器。
10.根据权利要求9所述的一种无线公共对象请求代理结构应用中的容错方法,其特征是:所述利用访问桥上对象请求代理层的访问桥日志记录机制(31)记录存储移动终端对象消息事件具体是:在向移动终端转发GIOP消息前,访问桥对象请求代理层的日志记录机制(31)首先存储该GIOP消息为日志,即访问桥(6)转发的每个GIOP消息,都会被访问桥日志记录机制(31)按照所属对象分类顺次记录存储;
所述在访问桥对象请求代理层的协助下实现移动终端对象故障检测的具体实现是:各移动终端的故障检测器(19)会根据各对象组的容错属性,定期调用is_alive()方法检测移动终端对象的运行状态,当调用is_alive()方法无应答时,则判定移动终端对象运行过程发生故障;移动终端故障检测器(19)检测到某移动终端对象发生故障后,立即将此故障消息发送给访问桥(6),由访问桥对象请求代理层转发此故障报告给容错域的域故障检测器(15),容错域的域故障检测器(15)进一步将故障消息报告转交给域故障通知器(14),最后由域故障通知器(14)通知容错域复制管理器(21);容错域的域故障检测器(15)通过定期调用is_alive()方法检测移动终端的服务器故障;得到移动终端对象或服务器故障通知后,容错域的复制管理器(21)会决定是否把客户请求切换到其它移动终端对象副本上、是否从容错对象组移除该故障移动终端对象;
所述在访问桥对象请求代理层的协助下实现故障移动终端对象删除的具体实现是:如果需移除发生故障的移动终端对象,复制管理器(21)向移动终端发送移除移动终端对象请求,访问桥对象请求代理层接收到移除移动终端对象请求后,转发请求给移动终端的对象工厂(16),移动终端对象工厂(16)调用相应的操作删除故障移动终端对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102097862A CN101459690B (zh) | 2008-12-25 | 2008-12-25 | 一种无线公共对象请求代理结构应用中的容错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102097862A CN101459690B (zh) | 2008-12-25 | 2008-12-25 | 一种无线公共对象请求代理结构应用中的容错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101459690A CN101459690A (zh) | 2009-06-17 |
CN101459690B true CN101459690B (zh) | 2012-05-09 |
Family
ID=40770314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102097862A Expired - Fee Related CN101459690B (zh) | 2008-12-25 | 2008-12-25 | 一种无线公共对象请求代理结构应用中的容错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101459690B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9223611B2 (en) | 2010-12-28 | 2015-12-29 | Microsoft Technology Licensing, Llc | Storing and resuming application runtime state |
CN102508764B (zh) * | 2011-11-04 | 2014-06-11 | 哈尔滨工程大学 | 一种容错移动计算系统记录节点事件日志的方法 |
CN103024733B (zh) * | 2012-11-28 | 2018-06-01 | 沈阳工业大学 | 基于混沌容错控制的手机保密通信系统 |
CA2969210C (en) * | 2014-12-01 | 2024-02-20 | Informatica Llc | Method, apparatus, and comuter-readable medium for processing a message by a message broker system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728697A (zh) * | 2004-07-31 | 2006-02-01 | 西门子(中国)有限公司 | 一种公共对象请求代理结构应用中的容错性方法 |
-
2008
- 2008-12-25 CN CN2008102097862A patent/CN101459690B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728697A (zh) * | 2004-07-31 | 2006-02-01 | 西门子(中国)有限公司 | 一种公共对象请求代理结构应用中的容错性方法 |
Non-Patent Citations (1)
Title |
---|
牛明博.基于分布式对象封装的集成SMS报警控制系统模型研究.《计算机应用研究》.2008, * |
Also Published As
Publication number | Publication date |
---|---|
CN101459690A (zh) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9483369B2 (en) | Method and apparatus for failover detection and recovery using gratuitous address resolution messages | |
KR100658913B1 (ko) | 광범위한 클러스터들에서의 노드 장애에 대비하여 원격액세스가능 자원들을 계속적으로 모니터링하는 확장 방법 | |
US7539744B2 (en) | Network operating system for maintaining redundant master control blade management information | |
CN101207517B (zh) | 一种分布式企业服务总线节点可靠性维护方法 | |
CN103647849A (zh) | 一种业务迁移方法、装置和一种容灾系统 | |
CN106850260A (zh) | 一种虚拟化资源管理平台的部署方法和装置 | |
CN101902361B (zh) | 容灾业务系统及容灾方法 | |
CN102231681A (zh) | 一种高可用集群计算机系统及其故障处理方法 | |
CN101459690B (zh) | 一种无线公共对象请求代理结构应用中的容错方法 | |
CN111800484B (zh) | 机动边缘信息服务系统的服务抗毁接替方法 | |
US20120036169A1 (en) | Object identifier and common registry to support asynchronous checkpointing with audits | |
CN114116912A (zh) | 一种基于Keepalived实现数据库高可用的方法 | |
Mitrović et al. | Improving fault-tolerance of distributed multi-agent systems with mobile network-management agents | |
CN102487332B (zh) | 故障处理方法、装置和系统 | |
CN111488395B (zh) | 双节点高可用的分布式存储系统 | |
Cai et al. | Utility-driven proactive management of availability in enterprise-scale information flows | |
CN1482773B (zh) | 可容错的传输控制协议的实现方法 | |
CN111309515A (zh) | 一种容灾控制方法、装置及系统 | |
Singh et al. | Using host criticalities for fault tolerance in mobile agent systems | |
CN100563233C (zh) | 一种公共对象请求代理结构应用中的容错性方法 | |
Domaschka et al. | SORRIR: A resilient self-organizing middleware for IoT applications [position paper] | |
US6137774A (en) | System and method for dispatching commands to switching elements within a communications network | |
JP6856574B2 (ja) | サービス継続システムおよびサービス継続方法 | |
CN101453354A (zh) | 一种基于atca架构的高可用性系统 | |
Ozeer et al. | F3ARIoT: A framework for autonomic resilience of IoT applications in the Fog |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120509 Termination date: 20171225 |
|
CF01 | Termination of patent right due to non-payment of annual fee |