




已阅读5页,还剩49页未读, 继续免费阅读
(计算机应用技术专业论文)数据传输中长事务任务的调度和分配.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号: u dc : 密级: 编号: 数据传输中长事务任务的调度和分配 t h es c h e d u l i n ga n dd l s t r i b u t l 0 no fl o n gd u r a t l o n t r a n s a c t l o ni nd a t at r a n s m i s s l 0 n 学位授予单位及代码:量壹堡王盔掌! ! q ! 竖2 工程领域名称及代码:盐篡皿延旦撞丕( 塑! ! q 32 研究方向:盐簋也萱能整剑申请学位级别:亟 指导教师- 龚送麴援 研究生:垂塑玉 论文起止时间:2 9 盟1 1 - - 2 必2 _ 摘要 数据传输中长事务任务的调度和分配是一个关键性问题。快速而有效的分配和调 度策略对提高系统并行性、保证实时系统任务的可调度性、保持网络负载平衡、提高 系统的容错性等具有重大意义。 本文在分析了分布式海量数据并行传输平台系统结构和常规的任务调度和分配算 法的基础上,着重讨论了长事务任务的调度和分配算法。首先在原有事务e d f 模型中 引入负载平衡的思想,接着引入优先级和失败处理模式。将t s m 算法和改进的s a g a s 事务处理模型引入其中。开发出算法的模拟程序,并对算法的结果进行了分析,最后 得出结论:在回滚时比原有处理方式更高效、使用较少的系统优先级、处理长事务效 率更快,从而解决了海量数据传输中长事务任务处理的难题。 关键词:海量数据并行长事务分配优先级失败处理 a bs t r a c t t h ea l l o c a t i o na n ds c h e d u l i n go fl o n gd u r a t i o nt r a n s a c t i o ni se s p e c i a l l yi m p o r t a n ti n d a t at r a n s m i s s i o ns e r v i c e s f a s ta n de f f e c t i v ea l l o c a t i o na n ds c h e d u l i n g s t r a t e g yf o r i m p r o v i n gt h es y s t e mo fp a r a l l e l ,r e a l t i m es y s t e mt oe n s u r et h a tt h et a s ko fs c h e d u l i n g , m a i n t a i n i n gt h en e t w o r kl o a db a l a n c i n g ,f a u l t t o l e r a n ts y s t e m st oi m p r o v ea n d s oi so fg r e a t s i g n i f i c a n c e b a s e do nt h ea n a l y s i so fm a s sd a t ad i s t r i b u t e dp a r a l l e lt r a n s m i s s i o ns y s t e ma r c h i t e c t u r e a n dc o m m o np l a t f o r mf o r t h et a s ko fs c h e d u l i n ga n da l l o c a t i o no nt h eb a s i so ft h ea l g o r i t h m , f o c u s e do nt h el o n gd u r a t i o nt r a n s a c t i o no f s c h e d u l i n gm a t t e r sa n dd i s t r i b u t i o no fa l g o r i t h m s i nt h eo r i g i n a ld e a l i n gw i t hg e n e r a la f f a i r so ft h ee d f m o d e l ,i n t r o d u c el o a d b a l a n c i n gi d e a s f i r s t t h e ni m p o r tp r i o r i t ya n df a i l u r em o d e t h ei n t r o d u c t i o no ft s ma l g o r i t h m sa n d i m p r o v e ds a g a sb u s i n e s sm o d e l t h ea l g o r i t h md e v e l o p e das i m u l a t i o np r o g r a m ,a n dt h e r e s u l t so fa l g o r i t h ma n a l y s i s ,c o n c l u d e dt h a tt h ew a yw a sm o r ee f f i c i e n tt h a nt h eo r i g i n a lo n e d u r i n gd e a l i n gw i t hr o l l b a c ka n du s e dl e s s p r i o r i t ys y s t e m ,m o r ee f f i c i e n ts e r v i c e st od e a l w i t hl o n gd u r a t i o nt r a n s a c t i o n s oa st os o l v et h em a s s i v ed a t at r a n s m i s s i o ns e r v i c e si nt h e l o n gt a s ko fd e a l i n gw i t ht h ep r o b l e m 。 k e yw o r d s :m a s s i v ed a t a p a r a l l e l l o n g d u r a t i o nt r a n s a c t i o nd i s t r i b u t i o n p r i o r i t y e r r o rh a n d l i n g 长春理工大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,数据传输中长事务任务的 调度和分配) ) 是本人在指导教师的指导下,独立进行研究工作所取得的 成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集 体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和 集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果 由本人承担。 作者签名:聋擎选趟年三月毕日 长春理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“长春理工大学硕士、博士 学位论文版权使用规定”,同意长春理工大学保留并向国家有关部门或 机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人 授权长春理工大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位 论文。 步伊” r、三2y 毕呷如雄 益锄 1 1 研究的目的和意义 第一章绪论弟一早三百了匕 随着信息化技术的不断发展,特别是在电子商务、电子政务等领域,行业内部和 行业之间的业务数据量呈几何级数递增。在日益增长的数据传输【l j 与数据交换活动中, 数据传输领域面临两大难题数据库之间数据的一致性与数据交换的及时性。系统 内部上下级数据库之间的数据传输与不同系统之间的数据交换已成为信息系统技术发 展的一个瓶颈。 在这个时候中间件应运而生,然而国内外现有的消息中间件( 数据、信息交换软 件) 产品都是基于点对点串行传输技术,发送端和接收端建立相应的发送队列和接收 队列实现数据交换。采用国内外现有技术和产品不能彻底解决我国数据交换领域现有 的实际问题,也无法适应信息技术未来的发展。 分布式海量数据并行传输主要是研究大型网络信息系统中数据信息交换技术,开 发通用的海量数据并行传输中间件软件,实现大型网络系统中异构信息系统之间数据 信息交换、多级网络系统之间数据信息交换,从而解决海量数据的传输问题。 分布式系统提供了巨大的处理能力,然而,为了实现和充分利用这种能力,需要 优良的任务分配和调度方案。快速有效的任务分配和调度是分布式系统中一个关键的 问题,其实质是将任务合理和透明地在处理机之间进行分配,并重新排列任务的执行 顺序,以符合任务依赖关系的要求,使整个系统的任务能在最短的时间内完成,从而 达到系统的综合性能最优。针对这点,我们提出了面向长事务的任务分配和调度的研 究。 长事务是指运行时间很长但又不允许它们保持其他事务所需要的锁的事务。而传 统的事务处理技术主要面向那些处理时间较短( 若干毫秒) 的事务活动,如果用于处 理这些持续时间较长的事务,将会大大影响系统的并发度,降低系统的性能。 为充分利用并行与分布式计算环境中多处理机的并行处理能力,根据不同的数据 约束关系和计算要求,一个任务往往被分解成多个子任务。任务分配与调度就是要将 分解好的若干个子任务指派到处理机群中的各处理机上( 任务分配) ,并根据给定的 子任务问的数据约束关系合理地安排好每个处理机上子任务的执行顺序( 任务调度) 。 一旦有某个子事务没有处理完,就会导致相应的该长事务无法完成,从而回滚率大大 提升,并且存在诸多的冗余操作。现有的长事务任务处理机制在任务之间没有优先级, 某些关键任务不能优先执行,等待时间过长。容错处理方面也存在着过多的弊端:例 如当一个不重要的子事务出现异常时,需要撤销全部己提交的事务;事务在完成补偿 事务后会退出,而不是选择更有效的执行手段;一般模型只支持所有子事务都有相应 的补偿子事务的情况。针对已存在的长事务处理模式进行总结,把一个优化的长事务 处理模式引入到本文中来解决海量数据的传输问题。 1 2 国内外研究现状 s a g a 是提出时间较早并且影响较大的一种长事务模型。该模型的基本思想是:把 一个长事务分解成一系列子事务,每个子事务都是一个普通事务,然后分别执行。长 事务的恢复通过执行补偿事务来实现,在应用语义层消除长事务的更新效果。其缺点 在于,当长事务回滚时,不仅应对其各个子事务本身进行补偿,还应对所有直接和间 接依赖于其子事务的其他各个事务也进行补偿。由于很难事先预测所有依赖于各子事 务的其他事务的集合,因而在补偿时不得不依赖于人工干预才能完成。 为了解决s a g a 模型中的缺点,王俊恒、宋顺林等提出了改进的s a g a s 事务模型。 分别增加了一致点的概念、失败处理模式和补偿子事务不存在的处理功能,这样解决 失败事务的处理问题。 为了提高长事务的原子性和隔离性,便于长事务的回滚,很多长事务处理模型采 用c h e c ko u t c h e c ki n 的并发处理机制。这种机制的缺点在于其正确性标准无法用数学 的形式来表述,同时在解决长事务并发冲突时往往依赖于人工干预,因此对于很多企 业应用系统而言是不适合的。 b e n n e t t 等人提出的l r u o w 模型利用事务的语义知识,将长事务的各个动作推迟 执行,直至最终提交时,才一次性执行。缺点是,在长事务的执行期间,可能由于某 个普通事务的执行,使得长事务最终无法成功,长事务不能及时知道自己已经无法成 功,并且长事务失败的代价远比普通事务更高。如果长事务失败,则执行效率非常低。 k o r t h 等人提出的n t p v 模型将事务的语义知识和多数据版本、嵌套事务等技术 结合起来,形成一种面向长事务的理论模型。由于该模型所提出的正确性标准均是在 不同程度上对可串行化标准的弱化,所以在故障恢复机制上存在着很多困难。 汪锦岭等一种基于强可有序化标准的长事务调度算法1 2 ,该算法将普通事务调度的 强可有序化( s t r o n go r d e r a b i l i t y ) 标准引入长事务的并发处理中,提出一种基于事务语义 知识的长事务并发处理机制。它的特点是利用事务的语义知识来提高长事务的并发度, 在解决并发冲突时不需要人工干预,长事务可以自动回滚,恢复的代价较低,并且不 必依赖于人工干预。 由于并行与分布式系统中任务分配与调度策略所依赖的信息是多种多样的,如系 统网络的拓扑结构、网络连接节点间的通信机制与通信波特率、网络延迟、子任务在 网络中各种机器上的计算时间、子任务之间的数据输入输出逻辑关系及数据流量大小 等等。考虑的因素增多时,任务分配与调度的难度也就越大。 2 1 3 本文的研究内容 本文主要研究内容如下: 1 引入负载平衡理论。首先获取处理机的处理速度,然后采用二次并行策略。第 一次获得处理能力最强的处理机,再分配的时候就会把任务优先分配给处理能力强的 计算机。 2 采用基于e d f 调度策略的端到端实时系统模型。该模型可以实现动态优先级分 配和抢占调度,为后面引进的优先级处理算法提供了有利的基础。 3 引入一种不影响任务集合可调度性的优先级映射算法。在原有e d f 模型的基础 上,加入优先级处理。对某些重要的事务可以优先执行。系统所提供的任务优先级有 限,如果处理大量任务,就会为任务调度带来了障碍。引入该算法,可以在保证任务 集合可调度的前提下,使用更少的优先级。 4 应用改进的s a g a s 事务模型进行容错处理。对失败的子事务,可以采取不同的 处理方式,引入一致点、失败处理模式和补偿事务不存在的处理方法。 1 4 本文组织安排 本文的主要内容是设计与实现长事务任务的调度与分配,选定基于m o b i l i n k 技术 的分布式海量数据并行传输系统作为平台,实现广域网中异构数据库系统之间数据的 信息交换,通过并行数据传输解决海量数据传输的承载能力问题,通过并行算法技术 解决任务的动态分配问题,传输平台实现传输数据库、传输数据灵活配置。论文共分 成六章,各章组织如下: 第一章给出了课题研究的目的、意义、研究现状以及论文的组织结构。 第二章介绍了中间件技术的相关理论和s y b a s e 的m o b i l i n k ,前面介绍了中间件的 概念、特点、分类,着重介绍了消息中间件及其发展现状;接着介绍了m o b i l i n k 的传 输结构、同步过程、同步特性和一些基本术语;最后介绍了s y b a s e 的m o b i l i n k 技术的 传输机制中的同步过程,包括m o b i l i n k 事件、同步过程中的事务、内置自动处理和通 信故障恢复、如何处理上载流和同步失败、参照完整性与同步以及m o b i l i n k 的同步方 式。 第三章介绍任务调度和分配理论及其经典算法,包括负载平衡理论、任务调度和 分配理论、并行任务分配和调度策略以及e d f 模型。 第四章介绍数据传输中长事务任务的调度和分配,包括事务和长事务的介绍、长 事务任务调度和分配算法分析( 两种处理长事务的方法) ,最后提出了自己的长事务 任务调度和分配算法的模型和处理流程。 第五章介绍算法模拟实验和数据分析,包括算法的模拟实验、结果验证和数据分 析。 第六章是结论和展望部分,基于现有工作的不足提出了对未来工作的展望。 4 第二章 中间件技术的相关理论和s y b a s e 的m o b i l i n k 技术介绍 2 1 中间件( m i d d l e w a r e ) 的概念 起步于二十世纪9 0 年代初期的中间件,是一类软件的总称,实现网络互连、应用 之间的互操作,与操作系统和数据库并称为三大基础软件。 中间件i 妯】( m i d d l e 、v a r e ) 是处于操作系统和应用程序之间的软件,也有人认为它应 该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起, 构成一个平台( 包括开发平台和运行平台) ,但在这组中间件中必需要有一个通信中 间件,即中间件= 平台+ 通信,这个定义也限定了只有用于分布式系统中才能称为中间 件,同时还可以把它与支撑软件和实用软件区分开来。 中间件( m i d d l e w a r e ) 是基础软件的一大类,属于可复用软件的范畴。顾名思义,中 间件是处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据 库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的 环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 在众多关于中间件的定义中,比较普遍被接受的是i d c 表述的:中间件是一种独 立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源, 中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 i d c 对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实 现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特 点是其网络通信功能。 2 1 1 中间件的特点 通常意义下,中间件应具有以下的一些特点:满足大量应用的需要;运行于多种 硬件和o s 平台;支持分布式计算,提供跨网络、硬件和o s 平台的透明性的应用或服 务的交互功能;支持标准的协议;支持标准的接口。 程序员通过调用中间件提供的大量a p i ,实现异构环境的通讯,从而屏蔽异构系 统中复杂的操作系统和网络协议。 中间件提供客户机与服务器之间的连接服务,这些服务具有标准的程序接口和协 议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。 由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许 多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为 重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算 机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口 定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的 重大投资。 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同 的技术之间共享资源。中间件软件管理着客户端程序和数据库或者早期应用软件之间 的通讯。 中间件在分布式的客户和服务之间扮演着承上启下的角色,如事务管理、负载均 衡以及基于w e b 的计算等。 利用这些技术有助于减轻应用软件开发者的负担,使他们利用现有的硬件设备、 操作系统、网络、数据库管理系统以及对象模型创建分布式应用软件时更加得心应手。 由于中间件能够保护企业的投资,保证应用软件的相对稳定,实现应用软件的功能扩 展。同时中间件产品在很大程度上简化了一个由不同硬件构成的分布式处理环境的复 杂性,所以它的出现正日益引起用户的关注。 2 1 2 中间件的分类 随着计算机软件技术的发展,中间件技术也已经同渐成熟,并且出现了不同层次、 不同类型的中间件产品。按照i d c 的分类方法,中间件可分为六类:分别是数据访问 中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件等。 1 数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的数 据库实现联接或文件系统实现联接的中间件; 2 远程过程调用中间件:通过这种远程过程调用机制,程序员编写客户方的应用, 需要时可以调用位于远端服务器上的过程。 3 消息中间件:用来屏蔽掉各种平台及协议之间的特性,进行相互通信,实现应 用程序之间的协同; 4 交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的一种 环境平台; 5 对象中间件:在分布、异构的网络计算环境中,可以将各种分布对象有机地结 合在一起,完成系统的快速集成,实现对象重用。 目前国内外有不少厂商都开发出自己的中间件产品,其中有全球最大的独立中间 件厂商b e a 公司,还有像i b m 、o r a c l e 和m i c r o s o f t 、h p 、s u n 等大厂商也早已涉足 电子商务中间件。 当然,i d c 的分类并不能包含目前所有的中间产品,比较流行的还 有: w e b 服务器中间件:浏览器图形用户界面已成为公认规范,然而它的会话能力差、 不能作数据写入、受h t t p 协议的限制等,就必需进行修改和扩充,形成了w e b 服务 器中间件,如s i l v e r s t r e a m 公司的产品,b e a 公司的b e aw e b l o g i c ,东方通公司 的t o n g 、砸b 。 安全中间件:一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且 6 不能使用国外提供的安全措施( 如防火墙、加密、认证等) ,必需用国产的产品。产 生不安全因素是由操作系统引起的,但必需要用中间件去解决,以适应灵活多变的要 求。如东方通公司的t o n gs e c 。 从宏观上看,中间件可以分为3 大类: 1 数据类:用于数据的存取、利用和增值,此类中间件用于构建以数据为中心的 应用。 2 处理类:把分布在网络结点上的各个应用或处理连接在一起,形成一个统一的 分布式应用。 3 分布式构件类:支持构件式应用,未来应用的发展方向,目前竞争激烈。 2 1 3 消息中间件及其发展现状 当前,c o r b a 、d c o m 、r m i 等r p c 中间件技术已广泛应用于各个领域。但是 面对规模和复杂度都越来越高的分布式系统,这些技术也显示出其局限性:1 同步通信: 客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;2 客户和服 务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常运行,如果由于服 务对象崩溃或者网络故障导致客户的请求不可达,客户会接收到异常;3 点对点通信: 客户的一次调用只发送给某个单独的目标对象。 面向消息的中间件( m e s s a g eo r i e n t e dm i d d l e w a r e ,m o m ) 较好的解决了以上问题。 发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时 候再将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无需等待;二 者的生命周期未必相同:发送消息的时候接收者不一定运行,接收消息的时候发送者 也不一定运行;一对多通信:对于一个消息可以有多个接收者。 中间件技术提供了异构环境下通信和互操作功能,为解决异构分布式环境下的负 载平衡问题提供了有力的工具,而且具有很好的柔性和自适应性。消息中间件1 7 弗1 ( m o m ) 是一类特定的中间件,它利用高效可靠的消息传递机制进行平台无关的数据交流,并 基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型, 它可在 分布环境下扩展进程间的通信,并支持多通信协议、语言、应用程序、硬件和软件平 台。它不仅使得应用程序与通信网络分离,而且使应用程序之间可以松散耦合, 增 强了应用的灵活性、可扩展性和网络的独立性。在异构分布式系统中,传统的基于网 络的负载平衡策略和基于操作系统的负载平衡策略都具有较强的处理能力,但缺乏对 实时的用户应用级负载平衡的支持能力和足够的反馈机制。而基于中间件的负载平衡 策略利用中间件技术平衡负载,既能够融合前两者的平衡技术,又可以提供丰富的负 载平衡策略。 随着消息中间件的发展,消息中间件的应用前景会越来越广阔,将会脱离数据传 输的范畴而成为一种新的应用模式;用消息驱动使异步更合理更优化;用消息队列来 7 实现负载均衡机制也是一个很好的理念;目前各种消息队列服务系统都各自用自己的 传输协议,将来的发展趋势会有通用的传输协议。 2 1 4 消息队列介绍 消息队列服务是一种松耦合的分布式应用集成形式。发送者将消息发送给消息服 务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。 在这种模式下,正是m o m 所解决的问题。 消息队列中间件最重要的功能是及时提供可靠的消息通信手段。为了能够完成消 息的可靠传输,一般情况下,使用队列的方式进行消息管理,也就是说,通常在进行 数据传输时,将数据按照用户定义的大小,拆分成若干消息放入消息队列,按照同步 或异步的通信方式发送或者接收消息。 在当前消息系统工程中,出于功能、安全性、可靠性等方面的考虑,大量使用路 由器、交换机、防火墙等网络设备,或使用集群、双机热备份等网络技术,网络结构 日趋复杂。为了能够满足网络使用的要求,中间件产品通常可以采用多种方式进行部 署,做到系统之间构筑一对一、一对多、多对一、多对多的树型网络结构,使系统配 置和管理大为简化,同时也能满足系统数据传输的要求。 消息传输中间件的跨平台能力也是中间件的重要指标。为满足异构平台的数据通 信要求,消息传输均使用标准的i p 包封装,因此中间件产品能做到真正跨平台的数据 通信。此外,消息传输中间件通常都提供丰富的a p i 函数接口,可以支持标准c c h 、 m i c r o s o f tv i s u a lc h 、m i c r o s o f tv i s u a lb a s i c 、b o r l a n dc 、p o w e r z b u i l d e r 、j a v a 等开发 语言,特别是对标准的c c + + 和j a v a 的支持,方便在不同应用平台的应用开发,同时 实际上也增强了消息传输中间件的跨平台能力。 消息队列服务系统即是把消息中间件技术应用于实践中的一种位于平台( 硬件和 操作系统) 和应用之间的服务程序。 消息队列是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信 的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置。其实 现原理是:消息的发送者把自己想要发送的信息放入一个容器q b ( m e s s a g e ) ,然后把它 保存至一个系统公用空间的消息队列( m e s s a g eq u e u e ) 中;本地或者是异地的消息接收 程序再从该队列中取出发给它的消息进行处理。 在消息传递机制中,有两个重要的概念。一个是消息,一个是队列。消息是由通 信的双方所需要传递的信息,它可以是各式各样的媒体,如文本、声音、图象等等。 消息最终的理解方式,为消息传递的双方事先商定,这样做的好处是,一是相当于对 数据进行了简单的加密,二则采用自己定义的格式可以节省通信的传递量。消息可以 含有发送和接收者的标识,这样只有指不定期的用户才能看到只传递给他的信息和返 回是否操作成功的回执。消息也可以含有时间戳,以便于接收方对某些与时间相关的 8 应用进行处理。消息还可以含有到期时间,它表明如果在指定时间内消息还未到达则 作废,这主要应用与时间性关联较为紧密的应用。 消息队列是发送和接收消息的公用存储空间,可以存在于内存中或者是物理文件 中。消息可以以两种方式发送,即快递方式( e x p r e s s ) 和可恢复模式( r e c o v e r a b l e ) ,它们 的区别在于,快递方式为了消息的快速传递,把消息放置内存中,而不放于物理磁盘 上,以获取较高的处理能力:可恢复模式在传送过程的每一步骤中,都把消息写入物 理磁盘中,以得到较好的故障恢复能力。消息队列可以放置在发送方、接收方所在的 机器上,也可以单独放置在另外一台机器上。正是由于消息队列在放置方式上的灵活 性,形成了消息传送机制的可靠性。当保存消息队列的机器发生故障而重新启动以后, 以可恢复模式发送的消息可以恢复到故障发生之前的状态,而以快递方式发送的消息 则丢失。另一方面,采用消息传递机制,发送方不必再担心接收方是否启动、是否发 生故障等非必要因素,只要消息成功发送出去,就可认为处理完成,而实际上对方可 能甚至未曾开机,或者实际完成时可能已经是第二天了。 采用消息队列技术带来的好处是:由于是异步通信,无论是发送方还是接收方都 不用等待对方返回成功消息,就可以执行余下的代码,因而大大地提高了事物处理的 能力;当信息传送过程中,信息发送机制具有一定功能的故障恢复能力;消息传递机 制使得消息通信的双方具有不同的物理平台成为可能。 消息队列分为用户创建队列和系统队列,其中用户队列分为: 1 “公共队列”在整个可传送消息的“消息队列”网络中复制并传输,并且有可能由 网络连接的所有站点访问。 2 “专用队列”不在整个网络中发布。相反,它们仅在所驻留的本地计算机上可用。 专用队列只能由知道队列的完整路径名或标签的应用程序访问。 3 “管理队列”包含确认在给定“消息队列”网络中发送的消息回执的消息。指定希 望m e s s a g e q u e u e 组件使用的管理队列。 4 “响应队列”包含目标应用程序接收到消息时返回给发送应用程序的响应消息。 指定希望m e s s a g e q u e u e 组件使用的响应队列。 系统队列分为: 1 “日记队列”可选地存储发送消息的副本和从队列中移除的消息副本。 2 “死信队列”存储无法传送或已过期的消息的副本。 , 3 “专用系统队列”是一系列存储系统执行消息处理操作所需的管理和通知消息的 专用队列。 2 。2s y b a s e 的m o bilin k 技术概述 m o b i l i n k l 9 , 1 0 1 是一个基于服务器的同步化引擎,它可以通过串行口、t c p i p 、h t t p 、 h o t s y n c 、s c o u t s y n c 或a c t i v e s y n c 连接与远程客户通信。使用像m o b i l i n k 这样的通用 9 同步技术可以极大地削减开发费用,因为m o b i l i n k 能够处理高级的同步操作,比如瞬 象( s n a p s h o t ) 和时间戳同步、主键维持、冲突的检测和解决等。在服务器端,所有的 m o b i l i n k 同步逻辑都是通过使用后台数据库的s q l 的事件处理的( m o b i l i n kj 厦_ 过o d b c 连接数据库,所以事实上支持所有的s q l 数据库) ,通过使用c e r t i c o m 的s s l t l sp l u s 来支持公钥加密功能( 使用椭圆曲线加密系统技术) 。 2 2 1m o b i l i n k 的传输结构 m o b i l i n k 是基于会话的同步系统,它允许在本地的主数据库与多个远程数据库之 间进行双向同步。如图2 1 所示: 图2 1m o b i l i n k 传输结构图 以下对传输结构图中的各个部分进行简要地介绍: 统一数据库:统一数据库是用于存储所有数据的,统一数据库内的数据是主要的 同步对象,远程数据库只是统一数据库内的全部数据或是其中的一部分数据而己。另 外,在统一数据库内也有逻辑存在。如何进行数据可同步,如何解决数据库冲突的问 题等都是以程序的形式存储在统一数据库内。统一数据库可以是a d a p t i v es e r v e r a n y w h e r e ,也可以是使用o d b c 连接的数据库,如可以使用s y b a s ea d a p t i v es e r v e r e n t e r p r i s e ,o r a c l e ,m i c r o s o f ts q ls e r v e r ,i b md b 2 等,但是使用a d a p t i v es e r v e r a n y w h e r e 以外的数据库时,就需要做若干的设定,配置m o b i l i n k 系统表。 o d b c 连接:m o b i l i n k 同步服务器和统一数据库之间的所有通信都通过一个o d b c 连接进行。o d b c 使用同步服务器可以使用多种统一数据库系统。 m o b i l i n k 同步服务器:m o b i l i n k 同步服务器( 简称m o b i l i n k 服务器) 是用于管理 m o b i l i n k 的所有处理程序。统一数据库与远程数据库之间并不能直接进行联机。 m o b i l i n k 服务器就成了这两者的接口,用来作为数据存取的中介,并控制与管理处理 1 0 程序。 n e t w o r k :m o b i l i n k 服务器与远程服务器可以通过各种通讯协议进行通讯,如可以 使用序列联机( a c t i v e s y n c ,h o t s y n c ) 或是t c p f i p ,h t l l p 等协议。 m o b i l i n k 客户端:m o b i l i n k 客户端可分为两种,分别是a d a p t i v es e r v e ra n y w h e r e 和u t r a l i t e 数据库。关于同步处理的逻辑部分,虽然它已经是存储在统一数据库内, 但是在客户端内也需要进行设定。在客户端的设定中,主要包括m o b i l i n k 用户( u s e r ) 、 发布( p u b l i c a t i o n ) 、订阅( s u b s c r i p t i o n ) 。 m o b i l i n k 用户是远程数据库的识别码,在每个远程数据库中各自设定不同的 m o b i l i n k 用户。 发布是远程数据库中用于标识要同步数据的数据库对象,由标识要同步的表和列 的项组成;依据发布的设定,可以上传数据。 订阅是一种数据库对象,它在远程数据库中作为发布和m o b i l i n k 用户之间的链接, 从而使发布所描述的数据实现同步。即用来设定m o b i l i n k 同步服务器的地址。 m o b i l i n k 的同步过程 同步会话是m o b i l i n k 客户端和同步服务器之间的双向数据交换过程。此过程可分 为三个阶段:上传、下载和确认。同步过程如图2 2 所示: 图2 2m o b i l i n k 同步过程示意图 下面对传输过程进行简要地介绍: 1 将远程数据库的数据上传至m o b i l i n k 服务器上。同步是开始于远程客户端的。 具体而言,当m o b i l i n k 客户端开始执行同步时,远程站点上的m o b i l i n k 客户端就会上 载自上次同步成功后对远程数据库所作的更改。于是,m o b i l i n k 同步服务器作为上传 数据的接收方,在接收到这些数据时开始更新主数据库,进行系列数据项的增加、 删除、修改等操作。所有的更改将在一次事务中完成应用。此后,m o b i l i n k 同步服务 器将提交该事务。 2 将m o b i l i n k 同步服务器的数据下载至远程客户端m o b i l i n k 。客户端将自动对下 载流进行处理,删除旧行、插入新行以及更新已更改的行。所有的更改将在远程数据 库中的一个事务中完成应用。此后,m o b i l i n k 同步服务器将提交该事务。 3 有一个可选的下载确定。m o b i l i n k 客户端将一个简短确认消息发送给m o b i l i n k 同步服务器。该消息让同步服务器知道客户端已经接收并处理了所有下载的更改。作 为响应,同步服务器将提交始于第2 步的下载事务。 当m o b i l i n k 远程数据库打开与m o b i l i n k 同步服务器的连接时,同步过程就此开始。 同步期间,远程站点的m o b i l i n k 客户端将上载自上次同步以来对远程数据库所作的更 改。m o b i l i n k 同步服务器在收到这些数据时开始更新主数据库,然后将所有相关的更 改发送回远程站点。 2 2 2m o b i l i n k 的一些基本术语 为了在论文中描述方便,有必要对m o b i l i n k 的一些基本术语做一定的介绍。 1 下载:同步过程的一个阶段,在此阶段数据从统一数据库传送到远程数据库。 2 脚本:编写来处理m o b i l i n k 事件的代码。脚本通过程序控制数据交换,以满足 业务需要。 3 基于会话的同步:一种同步类型,此类型同步实现了数据表在统一数据库和远 程数据库之间保持一致。 4 事务完整性:确保对整个同步系统进行事务维护。要么同步整个事务,要么不 进行任何同步。 5 上载:同步过程的一个阶段,在此阶段数据从远程数据库传送到统一数据库。 6 同步:在多个数据库之间协调数据,使其最终保持数据表示形式一致性的过程。 7 客户端:在m o b i l i n k 上下文中,客户端可以指任何从服务器接收数据源或请求 服务的应用程序、数据库引擎或可执行文件。 8 客户端通信流:客户端可以通过多种通信协议与同步服务器进行通信。 2 2 3m o b i l i n k 的同步特性 s y b a s e 提供的m o b i l i n k 同步服务器实现了各级部门之间进行增量的、可伸缩的、 安全的、双向的信息同步。它支持多种后台数据库、各种通讯协议和各类同步协议。 m o b i l i n k 具有如下特性: 多平台同步 在远程设备和企业系统之间( 包括a d a p t i v es e r v e ra n y w h e r e 、s y b a s ea d a p t i v e 1 2 s e r v e re n t e r p r i s e 、o r a c l e 、m i c r o s o f ts q ls e r v e r 、i b md b 2 ) 可靠的、双向的同步。 支持多种同步和网络协议 包括t c p i p 、h t t p 、p a l mh o t s y n c 、h o t s y n cs e r v e r 和m i c r o s o f ta c t i v e s y n c 以及 各种无线协议。 可选的、强大的、可同步通信的1 2 8 位加密 高可伸缩性,可支持数千个远程数据库 支持水平和垂直的数据子集 高度灵活的用户身份验证逻辑 偶连接 下级部门只需要定期地将数据传送给上级部门,而没有必要在两级部门之间建立 全天候的实时网络连接。但是,一旦建立了网络连接,这些数据仍能可靠地传送到上 级部门。 安全性 数据传输的安全性,包括数据加密与各级用户认证。 2 3s y b a s e 的m o biiin k 技术的传输机制 m o b i l i n k 技术是一种基于发布订阅方式的异步消息中间件技术。主要是以 m o b i l i n k 客户端在建立m o b i l i n k 用户的基础上完成单向的同步发布同步预订,m o b i l i n k 同步服务器只需要处于启动的状态,使m o b i l i n k 客户端通过m o b i l i n k 同步服务器来进 行同步。对于具体的传输机制将在本章的以下部分作为详细地介绍。 2 3 1m o b i l i n k 的同步过程技术概述 同步会话是m o b i l i n k 客户端和同步服务器之间的双向数据交换过程。在此过程中, 客户端必须建立并维护与同步服务器的连接。如果成功,此会话将使远程数据库和统 一数据库保持相互一致的状态。始终由客户端开始进行同步过程。它开始于与m o b i l i n k 同步服务器建立的连接。 同步过程中包括上载和下载两部分。对于数据行的上载,m o b i l i n k 客户端准备并 发送一个上载流,它包含从上次同步后在m o b i l i n k 客户端经过更新、插入或删除的所 有行的列表。类似地,对于数据行的下载,m o b i l i n k 同步服务器准备并发送一个下载 流,它包含插入、更新和删除的列表。 1 上载流 m o b i l i n k 客户端自动跟踪记录在上一次成功同步之后远程数据库中插入、更新和 删除了哪些行。连接一旦建立,m o b i l i n k 客户端将一个列出所有这些更改的列表上载 到同步服务器。 上载流由远程数据库中被修改的各行的新行值和旧行值组成。如果某行被更新或 删除,旧行值是指上次成功同步后的那些值。如果某一行被插入或更新,新行值是指 当前的行值。即使在到达当前状态之前,行已经更改过数次,也不会发送任何中间值。 m o b i l i n k 同步服务器接收上载流并将更改应用于统一数据库中。所有的更改将在 一次事务中完成应用。此后,m o b i l i n k 同步服务器将提交该事务。 2 下载流 m o b i l i n k 同步服务器编译将在m o b i l i n k 客户端插入、更新或删除的一组行。它将 这些行下载到m o b i l i n k 客户端。为了对该列表进行编译,m o b i l i n k 同步服务器将在统 一数据库中打开一个新事务。 m o b i l i n k 客户端接收下载流。当下载流到达时,m o b i l i n k 客户端认为统一数据库 已成功应用所有上载的更改,并将确保这些更改不会再发送到统一数据库中。 接下来,m o b i l i n k 客户端将自动对下载流进行处理,删除旧行、插入新行以及更 新已更改的行。所有的更改将在远程数据库中的一个事务中完成应用。此后,m o b i l i n k 同步服务器将提交该事务。 2 3 2m o b i l i n k 事件 m o b i l i n k 同步是一个事件驱动过程。当m o b i l i n k 客户端开始进行同步时, m o b i l i n k 服务器内部将发生多个同步事件。在发生事件时,m o b i l i n k 将查找与同步事 件匹配的脚本。此脚本包含一些说明,指出您需要服务器完成什么操作。基本顺序是: 事件发生一脚本被激活( 如果有脚本) 。 在发生b e g i n _ c o n n e c t i o n 事件前,m o b i l i n k 等候发出同步请求。在有同步请求发 出时,将触发b e g i n c o n n e c t i o n 事件并启动同步。具体的同步顺序如图2 3 所示: 图2 3m o b i l i n k 同步基本顺序示图 随着同步的进行,m o b i l i n k 再次等待出现对当前脚本版本的同步请求。如果没有 发出请求,则触发e n d c o n n e c t i o n 事件。但是如果接收到另一个对同一脚本版本的同 1 4 步请求,m o b i l i n k 将在同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运营专员考试题库及答案
- 导游考试题库及答案
- 摩尼驾照考试题库及答案
- 标准化合同评审流程及模板生成工具
- 针灸学基础考试题及答案
- 2025年锅炉水处理G3证理论考试笔试试题含答案
- 2025年新疆糖料甜菜种植基地土地流转调整合同协议
- 2025年贵州科级领导干部选拔考试全真模拟试题及答案
- 商务会议组织与活动服务协议合同条款梳理
- 北流二模高考试题及答案
- 2025年江苏高考地理真题(原卷版)
- 学堂在线 生活英语听说 章节测试答案
- 先心病常见病介入封堵治疗讲课件
- 锅炉安装改造维修管理制度
- DB31/T 1377.4-2022实验鸡和鸭第4部分:设施及环境
- 2025邮储银行面试题目及答案
- 他人借车免责协议书
- 企业合规经营及纳税证明书(5篇)
- 城中村改造项目规划设计(仅供参考)
- 公司代经营合同范例
- 2025年推土犁司机职业技能鉴定参考试题库(含答案)
评论
0/150
提交评论