(计算机应用技术专业论文)基于corba的容错流程控制系统设计与实现.pdf_第1页
(计算机应用技术专业论文)基于corba的容错流程控制系统设计与实现.pdf_第2页
(计算机应用技术专业论文)基于corba的容错流程控制系统设计与实现.pdf_第3页
(计算机应用技术专业论文)基于corba的容错流程控制系统设计与实现.pdf_第4页
(计算机应用技术专业论文)基于corba的容错流程控制系统设计与实现.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机应用技术专业论文)基于corba的容错流程控制系统设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着计算机网络的不断发展以及计算机硬件价格的下降,将计算任务分布到多个物理主 机上处理,以提高任务计算速度和降低任务运算成本已经成为一个趋势。在分布式环境中, 发布订阅( p u b l i s h s u b s c r i b e ) 模式是实现动态、多对多通信的一种通信网络结构,在通信 实体之间建立松耦合关系,广泛应用于构建信息消息驱动的复杂分布式应用系统。然而, 复杂应用系统中业务逻辑往往有一套严格执行流程,现有的发布订阅模式忽视信息消息在 业务逻辑中的语义,缺乏流程控制功能,应用逻辑由各个发布订阅组件单独判断,导致系 统缺乏对流程全局控制。针对这个问题,本论文结合消息语义,引入消息过滤机制,提出具 有流程控制功能的发布订阅结构,实现系统对应用逻辑的全局可控。进一步,为提高系统 可靠性,利用主动复制容错技术,提出容错的具有流程控制功能的发布订阅模式,通过在 现有平台中引入容错流程控制服务器加以实现。 对于采用主动复制容错技术构建的容错系统,当有组成员失败时,为不降低系统容错能 力,需要有新的复制服务器加入组,新成员只有获得与当前组成员一致状态后才能正确执行 后继请求。现有对新成员加入容错组的研究集中于成员加入过程组视图一致性的维护,忽视 新成员与现有成员间同步状态数据的研究,实验表明新成员状态同步过程可能产生普通成员 对协调者存活状态误判:协调者失效后同步重定向;同步数据较大时,客户端响应的延迟抖 动较大等问题。本文提出c o r d i n a t o ro n c e 与c o r d i n a t o rm u l t i p l e 两种同步模式解决上述问 题并给出新成员状态同步算法与同步重定向算法,说明其正确性并通过仿真实验说明算法的 性能。 本论文的主要贡献有:( 1 ) 提出容错的具有流程控制功能的发布订阅模式。( 2 ) 研究 新成员加入组时状态同步问题,提出c o r d i n a t o r _ o n c e 同步模式与c o r d i n a t o r _ m u l t i p l e 同步模式加以解决,给出新成员状态同步算法与同步重定向算法并做优化,分析算法正确性。 ( 3 ) 设计实现g 峪系统状态同步模块,提供应用编程接口。( 4 ) 基于c o r b a 规范设计并 实现了容错非容错流程控制系统。 关键词:订阅发布流程控制容错状态同步 i i i a b s t r ac t w i t ht h ep r e s e n t l ya v a i l a b l ec o m p u t e rn e t w o r kt e c h n o l o g ya n dt h eh a r d w a r e ,t h e r ei saw a y t od i s t r i b u t e d l yd e p l o yc o m p l e xc o m p u t i n gt a s k so nm a n yp h y s i c a lh o s t si no r d e rt oi m p r o v e c o m p u t i n gp e r f o r m a n c e s u c h as y s t e mi sc a l l e da sd i s t r i b u t e dc o m p u t i n gs y s t e m ( d c s ) p u b l i s h e r s u b s c r i b e rm o d ei sat y p i c a lc o m m u n i c a t i o ns t r u c t u r ew h i c hc a r lp r o v i d el o o s ec o u p l e d r e l a t i o n s h i pa m o n gc o m m u n i c a t i o ne n t i t i e sa n di sw i d e l yu s e dt ob u i l dc o m p l e xd c sb a s e do n m e s s a g e g e n e r a l l y , t h e r ea r es t r i c te x e c u t i o ns e q u e n c e so fm e s s a g e sg u i d e db yb u s i n e s sl o g i ct o r e a l i z et h ef u n c t i o ni nc o m p l i c a t e dd c s ,h o w e v e r , c u r r e n tp u b l i s h e r s u b s c r i b e rm o d ec a r l t s u p p o r tt h ec o n t r o lo fe x e c u t i o ns e q u e n c e sb e c a u s eo fo v e r l o o k i n gm e s s a g es e m a n t i c si nb u s i n e s s l o g i ca n dt h el e g i t a lo fe x e c u t i o ns e q u e n c ei sg u a r a n t e e db ya p p l i c a t i o nc o m p o n e n t sd e p l o y e di n s y s t e m s t h i sp a p e rp r o p o s e san o v a lp u b l i s h e r s u b s c r i b e rm o d ec o m b i n i n gw i t ht h em e c h a n i s m o fm e s s a g ef i t e rw h i c hc h e c kt h es e m a t i cl e g a l i t yo fe a c hm e s s a g et oa c h i e v ec o n t r o l l a b l eo ft h e a p p l i c a t i o np r o c e s si nd c s f o rf a u l t t o l e r a n ts y s t e mb a s e do na c t i v er e p l i c a t i o nt e c h n i q u e ,n e wr e p l i c as e r v e rs h o u l db e s t a r t u pw h e ns o m em e m b e r si nt h ef a u l t - t o l e r a n tg r o u ph a v ec r a s h e dt ok e e pt h ef a u l t - t o l e r a n t c a p a b i l i t y o ft h e s y s t e m f u r t h e r m o r e ,n e wr e p l i c a s e r v e r e sh a v et o s y n c h r o n i z e a p p l i c a t i o n - d e p e n d e n td a t ab e f o r ee x e c u t i n gt h ec l i e n t sr e q u i r e m e n t s e x p e r i m e n t si n d i c a t et h a t t h ep r o c e s so fs y n c h r o n i z i n gd a t ab e t w e e nn e wm e m b e r sa n do l dm e m b e r sc a nl e a dt oi s s u eo f b l o c k e d “h e a r tb e a t m e s s a g e s ,s y n c h r o n i z a t i o nr e d i r e c t i o nt on e wc o o r d i n a t o ri nf a c eo ft h ec r a s h o fo l dc o o r d i n a t o r ,j i t t e ro fr e s p o n s e s d e l a yf o rt h ei n c r e a s i n gq u a l i t yo fs y n c h r o n i z ed a t a t h i s t h e s i sp r o p o s e st w os y n c h r o n i z i n gm o d e s ,a n dp u t sf o r w a r dt h ec o r r e s p o n d i n ga l g o r i t h m s t h e v a l i d i t yo ft h ea l g o r i t h m si sd i s c u s s e d t e s tr e s u l t ss h o wt h a tt h ea l g o r i t h m sh e l pt or e d u c et h e m i s j u d g m e n tr a t ea n dh e n c ei m p r o v es y s t e me f f i c i e n c ya n dr o b u s t n e s s t h em a i nc o n t r i b u t i o n so ft h i st h e s i sc a nb es u m m e r i z e da sf o l l o w s :( 1 ) w ep r o p o s ea f a u l t - t o l e r a n tp u b l i s h s u b s c r i b e rm o d ew i t ht h ef u n c t i o no ff l o wc o n t r o l ;( 2 ) w ei n v e s t i g a t et h e a c t i o no fn e wm e m b e r sj o i n i n gaf a u l t - t o l e r a n tg r o u pa n dt h ei s s u eo fo fs y n c h r o n i z i n gd a t a b e t w e e nn e wm e m b e r sa n do l d m e m b e r s c o r d i n a t o r o n c es y n c h r o n i z e m o d ea n d c o r d i n a t o r m u l t i p l es y n c h r o n i z em o d ea r ep u tf o r w a r d ;( 3 ) w ed e s i g n ea n di m p l e m e n tt h e m o d u a lo fs y n c h r o n i z a t i o ni ng m ss y s t e m ;a n d ( 4 ) w ed e s i g n ea n di m p l e m e n tt h ef a u l t - t o l e r a n t f l o wc o n t r o ls y s t e mb a s e do nc o r b as p e c i f i c a t i o n k e y w o r d s :p u b l i s h e r s u b s c r i b e r ;f l o wc o n t r o l ;f a u l tt o l e r a n c e ;s y n c h r o n i z a t i o n i v 论文插图索引 图1c o i m ao r b 的体系结构图。2 图2 主从复制交互模型3 图3 主动复制基本交互模型4 图4 订阅发布平台结构图6 图5 有流程控制功能的发布订阅模型9 图6 具有流程控制功能的订阅发布平台。1 1 图7 改进后流程控制服务器处理消息流程1 2 图8 容错的具有流程控制功能的订阅发布平台1 3 图9 改进具有流程控制功能的容错订阅发布平台1 3 图l o 同步数据量与失败检测器误判率系图。1 7 图1 1c o r d i n a t o ro n c e 同步模式示意图。1 9 图1 2 状态同步前后客户请求响应延迟变化趋势图2 6 图l3 状态同步前后排队请求数变化趋势图2 7 图1 4c o r d i n a t e 同步方式28_multiple 图1 5 分段状态同步前后客户请求响应延迟变化趋势图3 2 图1 6 分段状态同步前后排队请求数变化趋势图3 3 图17 流程控制系统逻辑视图3 5 图l8c h c c k f l o w s e m a t i c 模块逻辑视图3 6 图19r e q u i r e f i o w c t r l 模块内部类关系3 7 图2 0m a t c h s u b s c r i b e l n f o 模块类关系图3 8 图2 1m e s s a g e f i l t e r 子模块类关系图。3 9 图2 2f l o w r u l e m a n a g e r 子模块类关系图4 0 图2 3f l o w s a m p l e r e c o r d 子模块类关系4 1 图2 4s u b r e s u l t b u f 子模块类关系图。4 2 图2 5f l o w s a m p l e d r i v e r 子模块类关系4 3 图2 6r e p l i a c s y n c h o m i z e 子模块类关系图4 4 图2 7 流程控制系统用例图4 5 图2 8 流程头条消息合法性判断顺序图4 5 图2 9 流程中间消息合法性判断顺序图4 6 图3 0c h e c k f l o w s e m a t i c 模块内对流程中间消息合法性判断顺序图4 7 图3lg m s 系统状态同步模块类关系图4 8 图3 2 新成员向协调者注册顺序图。4 8 图3 3 新成员接收并设置同步数据顺序图4 9 图3 4 新成员完组加入顺序图4 9 图3 5 采用两种订阅方式响应延迟图5l 图3 6 客户端容错组两种请求方式响应延迟图5 2 图3 7 组成员个数与请求响应延迟关系图5 3 图3 8 组成员失效与请求响应延迟关系5 4 图3 9 分片发送1 0 0 m 数据时延迟图5 6 图4 0 同步重定向及其改进版测试5 7 v i i 东南大学硕士学位论文 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 研究生签名:? 坠一日 期:舢 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位 论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人 电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论 文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包 括刊登) 授权东南大学研究生院办理。 第一章结论 1 1 引言 第一章绪论 发布订阅( p u b li s h s u b s c r i b e ) 模式是分布式环境中实现动态的、多对多通信的一 种通信网络结构,通信实体之间建立松耦合关系,实现分布式交互实体间空间独立性,时 间独立性与协同独立性,消除实体间直接依赖,大大增强系统的可扩展性,因此广泛用于 构建信息消息驱动的复杂应用系统。另一方面,复杂应用系统为实现业务逻辑往往有一套 严格执行流程,而单纯发布订阅模式往往忽视消息在某业务逻辑中的语义,缺乏流程控制 功能,故每步执行条件仅由的各个发布订阅组件独力判断,这导致系统缺乏对整个流程全 局控制,而每个组件均实现执行条件判断一定程度带来冗余,导致扩展性差。因此,本文 对控制逻辑建模,结合消息语义,引入消息过滤机制,提出具有流程控制功能的发布订阅 结构。并进一步,利用分布计算中的主动复制容错技术提高可靠性,提出容错的具有流程 控制功能的发布订阅结构。 主动复制复制系统中的关键部件,形成一个容错组,容错组中的所有成员都执行客户 请求,最终把执行结果返回给客户。这种方法不仅能够屏蔽多种错误类型,而且有助于提高 系统的运行效率。当有服务器失败后,为不降低系统容错能力,需要有新的复制服务器加 入容错组,这要求新的复制服务器在执行客户请求前与现有组成员同步,获得一致的状态。 现有主动复制研究往往集中于组成员加入过程组视图一致性的维护,忽视构建真实容错系 统应用数据状态同步需求,本文研究了组成员加入容错组过程中状态同步问题,分析不同 同步数据量,特别是同步大数据带来的影响,提出解决方案。 1 2c o r b a 简介 近年来,由于网络规模的不断扩大以及计算机软硬件技术水平的提高,给传统的应用 软件系统的实现方式带来了巨大挑战。首先,在企业级应用中,同一系统中集成来自不同 厂商的硬件设备、操作系统、数据库平台和网络协议等,由此带来的异构性给应用软件的 互操作性、兼容性以及平滑升级能力带来了严重问题。此外,随着基于网络的业务不断增 多,传统的客户b b 务器( c s ) 模式的分布式应用方式越来越显示出在运行效率、系统网 络安全性和系统升级能力等方面的局限性。对象管理组织( o m g ) 提出了公共对象请求代理 体系结构( c o r b a 1 1 ) ,以增强软件系统间的互操作能力,使构造灵活的分布式应用系统成 为可能。 1 2 1o r b 的体系结构图 对象请求代理o r b 是c o r b a 的核心i l 】它负责在对象之间传递消息。o r b 是c o h b a 应 用的基础,不同的公司可以开发出不同的o r b 。但由于大家使用相同的通信协议,因此基 于不同o r b 实现的应用之间可以无缝通信。它提供一种代理机制,使得分布式环境中的对 象可以透明地发出请求和接收响应。基于o r b 机制就可以充分利用分布的、可互操作的对 象构造可互操作的应用。这种优势是明显的,用户可以在不了解实现交互细节的情况下, 东南火学硕士学位论文 建立共享资源的应用。c o r b ao r b 的体系结构如图1 所示。 该体系结构包括: ( 1 ) 对象实现( o b j e c ti m p l e m e n t a t i o n ) 驻留在服务器端的c o r b a 对象,包括 了接口及其具体实现( s e r v a n t ) 。 ( 2 ) 客户( c i i e n t ) 客户端程序。对于客户来说,发起一个远程对象调用应该是 透明的,就像调用一个本地( l o c a l ) 对象操作一样,而o r b 结构中的其他部件提供了对此 透明性的支持。 ( 3 ) o r b 核心( o r bc o r e ) 刈r b 核心为客户与目标对象实现提供一种代理机制, 使得分布式环境中的对象可以透明地发出请求和接收响应,从而简化了分布式编程的细节。 当一个客户发起调用的时候,o r b 核心负责为其找到目标对象实现并激活、发送请求报文 至目标对象端、并传回调用结果给调用的发起者。 图1c o r b a o r b 的体系结构图 ( 4 ) o r b 接口( o r bi n t e r f a c e ) 0 r b 为对象适配器、客户端桩、服务端构架、动 态调用以及客户程序和服务端对象实现程序提供的一些接口。包括将对象引用转化为字符 串,将对象的字符串转化为对象引用,建立和关闭o r b 等通用操作。 ( 5 ) 对象适配器( o b j e c ta d a p t e r ) 它协助o r b 把客户请求分发给对象,更为重 要的是,对象适配器位于o r b 核心与对象之间,它把o r b 与对象实现联系了起来。 ( 6 ) i d l 桩( i d ls t u b s ) 位于客户端,由i d l 编译器编译i d l 文件生成,其功 能类似一个客户代理,帮助客户程序访问o r b 。客户程序无须关心其实现细节,只需将其 与客户端编写程序编译。 ( 7 ) 静态i d l 构架( s t a t i ci d ls k e l e t o n ) 位于服务端,由i d l 编译器编译i d l 文件生成,o a 接受到客户端的请求后会找到构架,之后构架找到服务端的对象实现。服务 器程序无须关心其实现细节,只需将其与服务端编写程序编译。 ( 8 ) 动态调用( d y n a m i ci n v o c a t i o n ) 该接口允许客户直接调用o r b 的底层请 求机制。用户通过d i i 接口可以动态的对目标对象发起调用而不需要i d l 桩的介入。 ( 9 ) 动态构架( d y n a m i cs k e l e t o n ) 这是服务器端与客户端d i 相对应的部件。 d s 允许0 r b 把调用请求直接发给对象实现而不需要知道服务对象的接口信息。对于客户而 言,它并不需要知道对方是采用i d l 静态或者是动态构架。 2 第一章绪论 1 2 2c o r b a 技术的特点 与其他的分布式计算技术相比,c o r b a 技术的主要特点是: ( 1 ) 将面向对象的概念与分布计算相互结合使基于c o r b a 技术开发的分布式应用系统 具有良好封装性和继承性,提高开发效率。 ( 2 ) 在统一接口描述语言i d l 的支持下,客户方程序与服务方程序的完全分离,两者 可独立开发,提高系统可维护性和扩展性。 ( 3 ) c o r b a 系统屏蔽了操作系统与编程语言的异构性,使得基于c o r b a 技术开发 的应用系统可以以多种编程语言实现,运行于不同的操作系统平台,从而为整个分布式环 境中的资源整合以及遗留系统的集成利用提供了良好的解决方案。 1 3 容错技术研究现状 现实中很多关键系统不能出错,一旦出错会产生极大影响,如航空调度系统和武器控 制系统等。通常通过专用硬件与软件的冗余配置实现容错1 2 j 。基于专用可靠硬件( 如内存 校验,冗余存储,冗余电力供应1 3 , 4 1 ) 在提高系统可靠性的同时大大增加了系统费用,而基 于软件的容错机制可降低开销。 软件实现容错多采用复制p l 的方法,即将关键服务软件复制到分布式系统中的一组计 算机节点上运行,形成容错组,当某个( 些) 节点失败时由于其它节点上的服务器能正确 运行,从而屏蔽错误,提高系统可靠性和可用性。主动复制【5 l 和主从复制【5 】是两种典型复 制技术,并由此产生一些变形1 6 1 。主动复制中每个服务器称为服务器复本( 简称复本 r e p l i c a ) 。每个复本起着相同作用,都接收并执行请求。主从复制中只有一个服务器执行请 求,称为主服务器( p r i m a r y ) ,其它称为服务器副本( b a c k u p ) 。主动复制具有客户端请求 响应快和可屏蔽拜占庭1 7j 错误的优点:主从复制占用计算资源较少,因此二者都获得了广 泛应用。 1 3 1 主从复制容错技术 容错组 r - - - - - i 执行请求o 状态更新 1 :客户端请求2 ,3 :状态更新请求4 ,5 :状态更新响应6 :返回客户端结果 图2 主从复制交互模型 如图2 所示,主从复制方式下【们,从容错组中选举出一个服务器作为主服务器,其它 服务器称为服务器副本,只有主服务器接收并执行请求,随后更新服务器副本,当收到服 3 东南人学硕上学位论文 务器副本状态更新相应后,返回给客户端结果。主从复制可分为冷备、暖备和热备三种策 略一j 。冷各方式下,主服务器将状态周期性保存在非易失共享存储器中,服务器副本只有 在主服务器失败情形下才运行以替换原来的主服务器。冷备容错系统在主服务器失败后恢 复慢,且丢失原主服务器最后一次保存状态至失败期间所有执行请求结果和状态。热备方 式1 1 0 j 下,主服务器以任意顺序执行客户请求,主服务器每执行一个请求,状态更新后就同 步更新服务器副本状态,等待所有服务器副本状态更新确认后( 图2 主从复制交互模型中 步骤4 和5 ) 才能返回结果。这导致网络开销大,客户端响应延迟增加。暖备方式下,所 有服务器都接收客户端请求,主服务器执行一定数目请求后才将状态更新到服务器副本上, 当主服务器失败时,客户端不需重发请求,主服务器也不必在执行每一请求后就同步服务 器副本状态,减少网络通信并改善客户端响应时间。 主从复制方式较主动复制,仅主服务器执行客户端请求,节省了计算资源。另一方面, 当主服务器失败时,客户端需检测到其失败。容错组对客户端不透明且主从切换时间较长 主从复制主从切换时间较长i 圳。 1 3 2 主动复制容错技术 容错组 r - - - - - i 执行请求。状态更新 l ,2 ,3 :客户端请求4 。5 ,6 :返回执行结果7 :过滤执行结果给客户端 图3 主动复制基本交互模型 如图3 所示,主动复制方式下,所有复本起相同作用,每个复本都接收并执行请求, 返回执行结果。主动复制技术难点在于维护所有复本状态一致。若服务器是确定的( 当服 务器不失败时,从任意相同初始状态起,以相同顺序执行相同操作,服务器最终状态相同, 并以相同顺序产生相同输出,称服务器是非确定的) 并拥有相同的初始状态,复本状态一 致性问题可以等价为客户端请求全序化问题。客户请求序列全序化是指容错组中如果任意 两个正确成员p 和q ,对于任意消息m l 和n 1 2 ,成员p 接受m 1 在m 2 之前当且仅当成员q 接受m 1 在m 2 之前。现有全序化协议可分为序列发生器定序( 固定序列发生器定序、动 态序列发生器定序) 、发送者定序( 包括基于特权发送者定序和基于通信历史发送者定序) 和目标成员定序( 目标一致定序) 三大类【l 。通常使用的机制有:两阶段机制,离散应答 机制和令牌传递机制等。针对服务器是非确定的情况,d e l 聪。- 4x p a i i 副以及l s a 算法f 1 3 】 采用半主动复制容错方式( 领导者跟随者模型) 解决多线程带来的非确定性,虽然该算法 在很大程度上保持了并发特性,但复本之间的通信导致领导者失败后,系统恢复时间长。 由于每个服务器复本都接收并执行客户,主动复制方式较主从复制,一方面复本失效 恢复时间短,另一方面也浪费系统资源。 4 第一章绪论 1 3 3 失败检测与组通信系统 分布式系统永远会面临节点失败问题。复制技术同样面临复本之间( 或主服务器月臣务 器副本) 相互判定是否失败的问题。失败检测器是分布计算环境下必需的基础构件之一, 对确定分布式系统组成部件是否正确运行至关重要。f i s h e r 等【1 4 j 证明在异步系统中,因为 无法区分服务器运行太慢还是已经失败,即使只有一个服务器失败,分布计算的基本问题 一致性问题也无法解决。c h a n d m 和t o u e 9 1 1 5 1 提出不可靠失败检测器,不可靠失败检测器可 作为增强异步系统计算模型的有效手段,简洁解决一致性问题。然而根据组成员实际运行 环境设计高效失败检测器仍然困难,其难点在于权衡失败检测其超时间隔和误判率。 组通信系统是分布式容错系统的重要部件。主动复制与主从复制,都会形成服务器容 错组,往往要求以容错组为单位进行通信,标准点对点通信通常无法很好满足应用需求。 组通信为一组成员提供更强的通信能力,它通常包括全序多播功能与组成员服务。全序多 播i l6 j 提供给组内成员向组内所有其它成员发送全序化消息的能力。组成员服务维持组成员 退出组和新处理器加入组时,每个成员关于组中其它成员的一致信息。文献 1 7 】分析组成 员退出组行为语义的基础上,针对快速退出语义,提出了解决方法,给出了非空协议和中 继协议。文献【1 8 】结合单个成员加入容错组行为,提出一个容错组以组为单位加入到另一 个容错组的组加入算法保证组视图最终的一致性以及减少所需要网络通信的报文数。现有 针对处理器加入容错组的研究均忽视了真实系统中新成员与容错组原有成员状态同步的需 求,目前尚未见到发表的有关成员加入组过程中应用相关数据同步的讨论。 现己研发出多个组通信系统,较著名的有:最初由c o m e l i 大学开发后来发展商业产品 的i s i s1 1 9 1 ,加州大学s a n t ab a r b a r a 分校开发的t o t e m1 2 0 j 以及d e l t a - 4 2 1j ( e s p r i t 项目) , a m o e b am 2 1 ( f r e e 大学) ,c o n s u l j j ( a r i z o n a 大学) 等。 1 4 相关技术与工作基础 1 4 1 订阅发布平台 东南大学已实现一个订阅,发布机制平台,其结构如图4 所示。平台内部包括信息管 理服务器( 简称信管) ,消息管理服务器( 简称消管) 与节点代理。平台向外部提供应用程 序编程接口,外部应用组件通过上述a p i 与平台( 更具体的说是与节点代理) 交互。 节点代理作为运行在该节点上应用组件的代理与信息消息管理服务器交互,部署应用 组件的节点上需要部署节点代理,通过节点代理,应用组件向信管消管,订阅发布信息 消息。这一方面使信管消管的部署情况对外部应用透明,另一方面通过节点代理管理其上 的所有应用组件便于实现应用组件容错。 信息消息管理服务器主要功能接收来自应用组件对信息消息的订阅发布请求,并根 据请求转发相应信息消息。信息和消息的主要区别是消息体结构比较简单,仅支持简单结 构体,表达的信息量有限,往往是一些控制命令,对消息的处理有定实时行要求:信息 的结构则比较复杂,支持简单结构体,简单结构体序列嵌套结构体,表达的信息量比消息 大的多。对应设备状态信息。信息管理服务器支持条件订阅,即信管接受到信息后要做信 息体字段分析,将满足订阅要求的信息转发给订阅组件,消息管理服务器考虑实时性要求 仅根据消息头完成订阅匹配,不做消息体字段分析。 平台内将部署的信息管理服务器与消息管理服务器划分为多个逻辑域,通过域号标识, 5 东南大学硕上学位论文 通常不同域的信管消管处理不同类信息消息,实现均衡负载。 节点代理通过监听信管消管服务组播报文实现服务发现,建立连接( 用虚线表示) 节 点代理与信息消息管理服务器交互通过c o r b a 调用实现。 应用组件b ( 节点竺! )订阅,发布平台平台 一,一一一一! 一。之:= 二 ”一一” 信息管理服务器信息管理服务器 消息管理服务器 消息管理服务器 容错组 容错组 容错组 容错组 域号:l域号:1 1 域号:o 域号:2 飞薏一夕7 ( 节点代理 )( 节点代理 ) 1 1 1 :! 带t 蛐,7 。盘黧勰一刷篇篇一、埔搬精谎j 川蒲 ”函:菡一、1 一盘用组件应用组件b 应用组件c 图4 订阅发布平台结构图 如图4 所示,应用组件a 调用n o t i 毋接口发布信息语法结构( n o t i 移s t r u c t i 鹏) ,定义 信息头与体字段语法结构;调用p u s h i n f 0 ( i n f o s t m c t u r c ,1 ) 接口向域l 信管发送具体信息 i n f o s t m c t u 佗。应用组件c 调用s u b s c 曲e ( 订阅字符串”,1 ) 接口向域l 信管订阅信息,当 域1 信管接收到与订阅字符串匹配的信息时,进行转发。消息的订阅发布与信息类似。 为了提高系统健壮性考虑到,平台采用主动复制技术实现容错,如图4 所示将具有相 同服务名的信息管理服务器构成容错组( 消息管理服务器类似) 。具有相同组件名的应用组 件构成应用组件容错组。服务端非容错方式下客户端调用b i n d 接口获得服务端对象引用 并发送c o r b a 请求,服务端容错方式下客户端通过b i n dr 接口获得容错服务端组对象 引用,服务端容错组具体组成员信息对客户端透明,对客户端可见的仅仅是组对象引用, 客户端通过组对象引用实现向容错组每个成员发c o r b a 请求,通过东南大学自主研发的 g m s 脚系统实现失败检测与容错组成员管理。 如上所述,现有平台仅仅根据信息订阅字符串与消息头实现信息,消息的匹配与分发 并不考虑消息在业务逻辑中的语义,忽视对平台中消息语义合法性判断,基于此,本文以 现有平台为基础提出具有流程控制功能的订阅发布结构。 1 4 2g m s f d p s 系统 g m s 脚系统f 2 4 1 是东南大学自主研发的组成员管理系统,主要包括g m s 脚服务 器端和g m s 脚客户端两部分。 g m s - ,:口炉服务器端完成的工作有: ( 1 ) 组成员管理 通过选择容错组内一固定成员为协调者,由协调者完成容错组创建,当有成员加入、 6 第一章绪论 退出组导致组视图变化时,协调者负责维护成员间组视图的一致性并向容错客户端通告。 新成员首先通过身份确认算法确定自身是普通成员后,向协调者注册,完成组加入;协调 者通过失败检测判定普通成员失效后将其从组视图中删除。当普通成员检测到协调者失效 后独立执行协调者重新选举算法重新选举一普通成员担任协调者,通常选择当前容错组内 i p 最小者为新协调者。 ( 2 ) 失败检测 协调者检测所有普通成员是否失败,普通成员仅检测协调者是否失败,普通成员间不 相互检测。协调者周期性多播自身状态通告报文( u d p 报文) ,发送心跳信息( t c p 报文) 和i c m p 报文给普通成员,并检查普通成员是否失败( 依据普通成员发送的周期性心跳信 息( t c p 报文) 和协调者发送i c i v l p 报文的反馈报文) ;普通成员周期性发送心跳信息( t c p 报文) 给协调者,并检查协调者是否已经失败( 依据协调者周期性心跳信息( t c p 报文) , 状态通告报文( u d p 报文和协调者发送的i c m p 报文) 。采用此种方式,当协调者或普通 成员进程失败时,操作系统将迅速通知对端服务器;而协调者或普通成员所在主机崩溃时, 对端服务器根据i c m p 报文,也能较快的判断出。 ( 3 ) 客户端成员管理 管理当前容错服务端的客户端,当组成员变化时,能及时通知各个组成员服务的使用 者作相应处理,。 g m s f d p s 客户器端完成的工作有: ( 1 ) 容错组中协调者存活检测 通过监听服务端协调者的多播信息确定协调者存活,若客户端在一定时间内未监听到 多播信息后判定服务端容错组成员全部失效。 ( 2 ) 组成员变化管理 接收容错服务端协调者关于组视图变化的通知,并做相应处理,例如:更新组对象引 用结构等。 由以上可知,当前g m s - f d p s 系统处理新成员加入容错组时不考虑了新加入成员与现 有组成员间同步应用相关的状态数据的要求,而这在构建真实容错系统时是必须的。本文 对此加以研究并在g m s - f d p s 系统设计实现状态同步模块。 1 5 本论文主要研究内容与贡献 本论文在现有订阅发布机制平台基础上,对控制逻辑建模,结合消息语义,引入消息 过滤机制,提出具有流程控制功能的发布订阅结构。进一步,基于主动复制容错技术提出 容错的具有流程控制功能的发布订阅结构,提高可靠性;研究容错组成员加入容错组过程 中状态同步问题,分析不同同步数据量,特别是同步大数据可能引起失败检测误判,客户 响应延增大,同步过程中协调者失效同步重定向的问题,提出c o r d i n a t o r0 n c e 。 c o r d i n a t o r同步模式及算法并讨论正确性:基于上述两方面研究,设计实现容_multiple 错t p 容错的流程控制服务并对各种失效情况下运行情况进行讨论最后进行测试并分析结 果。 本论文的主要贡献有:( 1 ) 提出容错非容错的具有流程控制功能的发布订阅结构; ( 2 ) 提出并研究新成员加入容错组应用数据状态同步问题,分析不同同步数据量,特别是 同步大数据产生的影响,给出解决方案:( 3 ) 基于g m s 系统,设计实现复本状态同步模 块;( 4 ) 基于c o r b a 设计实现容错非容错流程控制原型系统。 据我们所知,目前没有公开发表的关于以实用容错系统为背景研究成员加入组状态同 7 东南大学硕士学位论文 步的论文。 1 6 论文的组成 本论文的其他组成部分如下:第二章提出并详细描述容错非容错具有流程控制功能的 订阅发布结构:第三章提出复本状态同步模型并给出相关算法;第四章基于前面两章分析 结果给出流程控制系统的设计与实现:第五章对系统进行测试和结果分析,最后为总结和 进一步的工作。 8 第二章流程控制模型研究 第二章流程控制模型研究 2 1 问题描述 目前消息订阅发布模式【2 引,根据消息描述方式的不同,可分为基于主题【2 州、内容和类 型的订阅发布,但都局限于单条消息的描述,忽视消息在应用逻辑上下文中的语义,特别 是多条消息在业务流程中的关联关系,缺乏消息语义合法性检查功能。基于现有发布订阅 模式实现的分布式应用系统完全由各个发布订阅组件单独实现对业务流程的控制,发布 订阅系统本身缺乏全局控制能力且无法屏蔽由于组件故障和人为误操作导致的非法流程。故 本文扩展传统订阅发布模式提出具有流程控制功能的发布订阅模式以解决上述问题。 2 2 具有流程控制功能的订阅,发布模型 具有流程控制功能的订阅发布模型在现有发布,订阅模型基础上,引入流程检测器,流 程检测器依据流程规则库进行消息合法性检查,如图5 所示。流程规则库与具体应用逻辑 相关,由应用程序开发者根据应用逻辑建模后配置。 与现有订阅发布模型不同,当发布,订阅系统收到客户端发送的消息后。首先将该消息 作为流程检测器输入传递给流程检测器,流程检测器依据内部维护当前系统流程信息以及流 程规则库中规则进行消息语义合法性检查,并将检查结果作为输出,若消息符合流程语义则 发布订阅系统将消息正常转发给订阅该消息的客户端,否则过滤。 流程检查模块实现对消息语义合法性检查,其运作过程透明于客户端,在保留现有订阅 发布模型优点的基础上增加了对应用流程的控制能力,同时应用逻辑以流程规则形式存于 规则库中,便于配置,避免写死于客户端程序中,增强系统的可扩展性。 客户端a客户端c 图5 有流程控制功能的发布订阅模型 9 东南大学硕士学位论文 2 3 具有流控功能的非容错订阅,发布系统 2 3 1 流程语义建模 如前所述,订阅发布平台中信息对应设备的状态。消息对应流程的控制命令,应用系 统通过消息驱动流程的演进,因此流程的控制往往映射为对消息语义合法性检查。消息语义 合法性抽象为两方面,一是满足流程中消息问序的关系,二是满足消息所依赖状态信息。简 而言之即满足消息与消息以及消息与信息间应用逻辑依赖关系。 对流程涉及消息间的序关系用有向图1 3 = 并辅以逻辑表达式来刻画。设某流程涉 及的消息为m 1 m k ,消息m i 对应顶点集v 中一顶点v ,为了便于描述,不妨假设m 1 为流程中第一条消息,m i 与v i 一一对应。若发出消息m i 后可以直接发出消息m i 则称消息 m i 为消息m i 的直接前继,消息m i 为消息m i 的直接后继。 定义: e 当且仅当在某合法消息发送序列下,消息m i 为消息m i 的直接前继。 依据此做出流程中消息序关系图,针对图中多直接后继和多直接前继可能产生语义歧义,做 如下约定: 若某节点v i 存在两个直接后继v i l 和v j 2 ,默认节点v i 对应消息发送后,v i l 和v j 2 对应 消息均可发送;若二者仅能有一条消息发送即是异或关系,用m i o 2 补充表示,多个后继 类似。 若某节点v i 存在两个直接前继v j l 和v j 2 ,默认节点v i l 或v i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论