缔冠期刊网

CORBA分布式系统中网络分割协议可行度分析

2022-06-09

  0引言

 

  当今越来越多的应用由于其规模和复杂性,需要在分布式系统中完成,而许多分布式应用都需要系统提供容错机制[1],例如航空交通管制、网上支付应用等,若没有容错措施,系统中任何一个环节的错误都可能造成巨大损失。而分布式系统各节点使用不同的操作平台和不同的通信协议,容错机制在系统不同层次上实现,对于每一个新的操作平台都要重新研究相应的容错机制,这样就大大降低了系统的可扩展性,并极大地增加了开发难度和开发成本。

 

  公共对象请求代理体系结构(CommonObjectRequestBrokerArchitecture,CORBA)[2]是由对象管理组织(ObjectManagementGroup,OMG)提出的基于分布式对象的中间件规范,该规范中的接口定义语言(InterfaceDescriptionLanguage,IDL)描述了客户对象请求和对象执行接口,完整地定义了接口并说明每个操作参数。IDL实现了组件间交互无需考虑操作平台和通信协议的不同。将分布式系统与CORBA结合[3-4],并将容错机制交由CORBA实现能很好地解决上述问题。

 

  容错CORBA(FaultTolerantCORBA,FTCORBA)介绍了一种基于冗余[5]的容错机制,但没有考虑网络分割的情况,当网络出现故障,形成两个或多个相互隔离的子网,各子网对象状态因为不能互通所以不能保持一致,从而大大限制了操作的执行。因此,研究一种新的能够应对网络分割情况的FTCORBA就显得非常必要了。

 

  1体系结构

 

  1.1CORBA体系结构及特性

 

  客户端通过接入对象引用(ObjectReference)、了解对象类型和希望实现的操作来执行请求[6]。客户端可静态(访问特定对象的存根)或动态地建立请求。用动态和静态接口建立请求使用的是相同的请求语法,信息的接收方分辨不出请求是用哪种方式建立的。在执行一些功能时客户端也可直接与ORB交互。

 

  ORB将对象执行(ObjectImplementation)相应的执行代码、传输参数和传输控制信息放入IDL骨架或动态骨架。骨架是与特定的接口和对象适配器相对应的。对象执行可通过静态IDL骨架或动态骨架来接收请求。在处理对象请求或其他情况下,对象执行可能会包含从对象适配器传来的ORB服务。当请求执行完成后,控制和执行结果将会返回给客户端。

 

  客户端和对象执行是如何获悉接口和执行信息的呢,接口定义在OMGIDL或接口库中,这些定义将用于产生客户端存根和对象执行骨架;对象执行信息则是存储在执行库中。

 

  1)创建对象组,实现对象冗余。

 

  a)用户端应用调用resolve_initial_references()函数获取复制管理器引用。

 

  b)用户端应用通过复制管理器里GenericFactory接口,调用create_object()函数提供type_id和the_criteria,然后返回对象组引用和factory_creation_id给复制管理器,其中factory_creation_id用于之后复制管理器调用GenericFactory接口函数delete_object()删除对象组。

 

  c)参数管理器接口为对象组提供设置参数的操作,例如复制类型、成员类型、一致性类型、最小复制数、初始化复制数等。

 

  d)复制管理器调用本地对象库,在合适的位置创建对象组,并且满足InitialNumberReplicas和MinimumNumberReplicas参数值,即对象组的初始对象数和执行过程中对象组包含的最小对象数。

 

  e)复制管理器决定出对象组中的主对象,创建包含容错域对象代表的TAG_FT_GROUP组件,并允许其他组件访问主对象和对象组中各对象的状态版本;然后复制管理器创建对象组引用。

 

  f)对每一个网关,复制管理器建立一个TAG_INTERNET_IOP文件,它包含网关内主机、端口和允许被访问的TAG_FT_GROUP组件;然后复制管理器在TAG_INTERNET_IOP文件中增加对象组地址。

 

  g)复制管理器记录对象组引用。

 

  h)对每一个成员,复制管理器将复制对象成员添加到对象组;根据复制类型激活成员;核对复制类型、故障监测类型和故障监测间隔,然后决定是否初始化该成员的故障监测功能;最后,复制管理器将自己或由它创建的对象登记到故障通知器,用来接收该成员的故障通知。

 

  i)对于COLD_PASSIVE和WARM_PASSIVE复制类型,复制管理器决定对象组的主对象,将TAG_FT_PRIMARY组件包含到该对象的文件中,只有主对象才能执行调用到对象组上的方法。

 

  j)复制管理器将对象组引用返回给应用。

 

  2)故障监测和恢复。

 

  a)复制管理器告知故障监测器开始监测对象。

 

  b)故障监测器定期调用is_alive()函数作用于对象组内的主对象,主对象回复该请求。

 

  c)若主对象出现故障,没有回复is_alive(),监测器等待超时,则向故障通知器报告主对象出现故障,然后故障通知器告知复制管理器主对象出现故障。

 

  d)复制管理器确认对象组包含这个主对象和该对象组的复制类型,并从对象组中移除该主对象,并调用容错组件为对象组指定新的主对象。如果当前对象组的成员少于最小成员数,那复制管理器开始建立新的成员。

 

  e)如果候补对象还没有进入工作状态,那么复制管理器激活该对象。

论文中心更多

期刊百科
期刊投稿 期刊知识 期刊审稿 核心期刊目录 录用通知 期刊版面费 投稿期刊推荐 学术问答
基础教育
小学语文 中学语文 小学数学 中学数学 小学英语 中学英语 物理教学 化学教学 生物教学 政治教学 历史教学 地理教学 科学教学 音乐教学 美术教学 体育教学 信息技术 班主任管理 校长管理 幼教 教育管理 微课教学 作文教学 德育教学 教学设计
医学论文
内科医学 外科医学 预防医学 妇科医学 检测医学 眼科医学 临床医学 药学论文 口腔医学 中西医 中医学 外科 护理 基础医学 急救医学 老年医学 医学实验 儿科医学 神经医学 兽医学 肿瘤医学 综合医学
职业教育
教育学原理 电影文学教育 学前教育 教育学管理 高等教育学 教育技术学 职业技术教育 成人教育学 特殊教育学 教育心理学 家庭教育 教育毕业 中专中职教育 教学设计 国学教育 学术研究 大学教育
药学卫生
社区门诊 医药学 医患关系 医院管理 疾病预防 保健医学 公共卫生 医学教育
文科论文
农业经济 工商管理毕业 会计毕业 行政管理 法律毕业 市场营销 经济毕业 汉语言文学 财务管理 物流管理 人力资源 旅游管理 国际贸易 物业管理 新闻学 企业管理 金融银行 社会科学 食品安全 办公档案 审计学 税务税收学 外国文学 哲学
理科论文
机电毕业 土木工程 计算机毕业 电气毕业 建筑毕业 电子商务 工程毕业 设计毕业 机械制造 汽车毕业 园林毕业 农学毕业 数控毕业 软件技术 水利工程 环境生态 畜牧渔业 化工毕业 科技创新 石油矿藏
论文格式
开题报告 论文题目 摘要关键词 目录提纲 论文致谢 参考文献 附录其他 论文答辩
职业论文
教育论文 经济论文 科技论文 财会论文 管理论文 医学论文 法学论文 文学论文 工业论文 建筑论文 农业论文 水利论文 计算机论文 社科论文 机械论文 生态环境 中西文化

先发表后付款 不成功可退款

权威机构认证 专注期刊10余年 1000余家杂志社长期合作

缔冠期刊网

首页 网站地图 返回顶部
Copyright © 1998- 缔冠期刊网