




已阅读5页,还剩64页未读, 继续免费阅读
(计算机科学与技术专业论文)虚拟计算环境的迁移技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院硕士学位论文 摘要 随着i n t e m e t 平台的快速发展与广泛应用,网络上汇聚着大量的信息内容、计 算能力、存储空间、网络带宽等资源。尽管人们不断在资源利用和资源共享上取 得进步,但是资源利用率仍然不够理想。如何合理的使用i n t e r n e t 上的资源是虚拟 计算环境的一个重要的研究课题。在研究如何有效使用资源这问题中负载均衡 和容错是两种非常重要的机制:一个分布式应用程序必须能够根据各个节点上的 负载信息,调整给各个任务分配的资源来提高应用程序的整体效率;当某个节点 在程序运行过程中失效时,如果能将该节点上的任务转移到其他节点上继续处理, 则可避免整个应用程序的失败。这两种情况都需要任务在节点间的迁移能力。迁 移技术能够提高分布式应用程序的性能,灵活性和可靠性。 本文提出了虚拟计算环境的迁移机制。在虚拟计算环境中,程序的执行过程 是角色实例间的交互作用、执行过程,程序的迁移通过角色实例的迁移进行。本 文介绍了虚拟计算环境和基于虚拟计算环境的程序设计语言o w l e t 。通过对进程迁 移、移动代理、事件服务、分布式事务等分布式技术进行对比,分析了迁移技术 必须考虑的各个方面。在研究了多种迁移技术和移动代理系统的基础上,采用移 动代理的方式实现虚拟计算环境中角色实例的迁移。 角色实例的迁移方法分为两个层次,角色容器层和事件层。本文首先定义了 在各个层次中迁移算法必须满足的事务性质,然后提出了符合这些事务性质的迁 移算法。在角色容器中,按照关注点分离的这一思想提出了将保存角色实例交互 状态的代码和保存角色实例业务逻辑状态的代码相分离这个方法,简化了迁移机 制的设计难度,部分解决了迁移算法固有的遗留依赖性问题。在事件层次中我们 提出了r e s u b s c r i b e 算法来解决事件服务系统中路由重定向问题。在迁移策略上, 该迁移机制允许通过配茕资源q o s 参数的方式进行迁移,也允许用户程序调用接 口进行迁移。实验表明本文提出的迁移算法能够有效的提高虚拟计算环境程序的 运行效率,而且算法本身是高效可扩展的。 主题词:分布式计算,虚拟计算环境,迁移,事件,移动代理 第i 页 国防科学技术大学研究生院硕士学位论文 a b s t p a c t w i t ht h er a p i dd e v e l o p m e n ta n dw i d e l ys p r e a do ft h ei n t e m e t ,t h e r ea r ep l e n t yo f r e s o u r c e ss u c ha si n f o r m a t i o nc o n t e n t c o m p u t i n gp o w e r , s t o r a g ec a p a c i t ya n dn e t w o r k b a n d w i d t ho nt h ei n t e r n e t a l t h o u g ht h eu t i l i z a t i o na n ds h a r i n go fr e s o u r c e sa r e c o n s t a n t l yi m p r o v i n g ,t h e ys t i l lc a n n o tm a t c ht h ed e m a n d h o wt oe f f e c t i v e l yu t i l i z e r e s o u r c e so nt h ei n t e r n e ti sak e yr e s e a r c hi s s u eo ft h ei n t e r n e t b a s e dv i r t u a lc o m p u t i n g e n v i r o n m e n t ( i v c e ) l o a d - b a l a n c i n ga n df a u l t - t o l e r a n c ea r et w oi m p o r t a n ti s s u e so f r e s o u r c eu t i l i z a t i o n ad i s t r i b u t e da p p l i c a t i o nm u s tb ea b l et oa d a p tt ot h ew o r k l o a do f e a c hn o d ew h e ns c h e d u l i n gt a s k st oa c h i e v eb e t t e rp e r f o r m a n c e w h e ns o m en o d ef a i l s d u r i n gap r o g r a me x e c u t i o n , i ft h es o f t w a r es y s t e mc a nm i g r a t et h et a s kr u n n i n go nt h e f a i l e dn o d et oa n o t h e rn o d et h e nt h ef a i l u r eo f t h ew h o l ep r o g r a mw i l lb ep r e v e n t e d t h e a b o v et w os i t u a t i o n sb o t hn e e dm i g r a t i o nt e c h n i q u e s m i g r a t i o nc a ni m p r o v et h e p e r f o r m a n c e ,r e l i a b i l i t y ,f l e x i b i l i t yo fd i s t r i b u t ea p p l i c a t i o n s i nt h i sp a p e r ,w ep r o p o s et h em i g r a t i o nm e c h a n i s mo ft h ei v c ep l a t f o r m i nt h e i v c ep l a t f o r m , ar u n n i n gi n s t a n c eo fd i s t r i b u t e da p p l i c a t i o ni sc o n s t r u c t e db y e n a c t m e n to fs e v e r a lr o l ei n s t a n c e s t h em i g r a t i o no fi v c ep r o c e s si sa c h i e v e db y m i g r a t i o no fi t sr o l ei n s t a n c e s a f t e ri n t r o d u c i n gt h ei v c ep l a t f o r ma n dt h eo w l e t p r o g r a m m i n gl a n g u a g e ,w em a k ec o m p a r i s o n sb e t w e e np r o c e s sm i g r a t i o n , m o b i l ea g e n t , e v e n ts e r v i c e ,a n dd i s t r i b u t e dt r a n s a c t i o n , a n dt h e na n a l y z es o m ei m p o r t a n ta s p e c t so f m i g r a t i o nt e c h n i q u e s b a s eo nt h ei n v e s t i g a t i o no fv a r i o u sk i n d so ft h em i g r a t i o n t e c h n i q u e sa n dm o b i l ea g e n ts y s t e m s ,w ee m p l o ym o b i l ea g e n t sa st h eb u i l d i n gb l o c k s o f t h em i g r a t i o no f r o l ei n s t a n c e so f t h ei v c e t h em i g r a t i o nm e c h a n i s mo fr o l ei n s t a n c e sc o n s i s t so ft w ol a y e r s :t h er o l e c o n t a i n e rl a y e ra n dt h ee v e n ts e r v i c el a y e r f i r s t ,w ed e f i n et h et r a n s a c t i o np r o p e r t i e so f m i g r a t i o ni ne a c hl a y e r a n dt h e nap r o t o c o lw h i c hs a t i s f i e dt h ea c i dp r o p e r t i e si s p r o p o s e d i nt h er o l ec o n t a i n e rl a y e r ,w es e p a r a t et h em i g r a t i o no fc o m m u n i c a t i o ns t a t e a n db u s i n e s ss t a t eo fr o l ei n s t a n c e st os i m p l i f yt h ed e v e l o p m e n to ft h em o b i l i t yp r o t o c o l a n dp a r t i a l l ys o l v e dt h ep r o b l e mo fr e s i d u a ld e p e n d e n c y i nt h ee v e n ts e r v i c el a y e ra p r o t o c o lc a l l e d ”r e s u b s c r i b e ”i sp r o p o s e dt oh a n d l et h er o u t i n gr e c o n f i g u r a t i o n p r o b l e mo fe v e n t b a s e ds y s t e mm o b i l i t y t h em i g r a t i o nm e c h a n i s ma l l o w su s e r st o s p e c i f yq o sp a r a m e t e r so fm i g r a t i o nc r i t e r i o na n dp r o g r a mi n t e r f a c e sa r ep r o v i d e dt o e n a b l eu s e r - c o n t r o l l e dm i g r a t i o n s t l 砣e x p e r i m e n t ss h o wt h a tt h ep r o p o s e dm o b i l i t y p r o t o c o li se f f i c i e n ta n ds c a l a b l e ,t h u st h e yc a nb eu s e dt oa c h i e v eb e t t e rp e r f o r m a n c e 旬ra p p l i c a t i o n so nt h ei v c ep l a t f o r m k e yw o r d s :d i s t r i b u t e dc o m p u t i n g ,i v c e ,m i g r a t i o n ,e v e n t 。m o b i l ea g e n t 第i i 页 国防科学技术大学研究生院硕七学位论文 图目录 图2 1 虚拟计算环境体系结构5 图2 2o w l e t 语言运行时7 图2 3 对象迁移一1 2 图2 4 进程迁移示例1 2 图2 5d a g e n t 体系结构图1 4 图2 6a g l e t 迁移过程示例一1 5 图2 7h e r m e s 事件发布建立过程1 9 图2 8f e r r y 事件服务系统2 0 图2 92 p c 中协调者的状态机2 4 图2 1 02 p c 中参与者的状态机2 4 图3 1 代理网络3 1 图3 2 迁移总流程图3 2 图3 3 角色实例状态转换图:3 3 图3 4o w l e t 运行时类图3 6 图3 5o w l e t 事件模型3 7 图3 6 聊天室会话树3 8 图3 7 角色实例保存算法3 9 图3 8 角色实例恢复算法3 9 图3 9p e m 事件服务的发布订阅4 1 图3 1 0 事件迁移过程示例4 2 图4 1o w l e t 运行时的修改4 5 图4 2o w l e t 事件服务的修改4 6 图4 3 迁移策略配置示例4 7 图4 4 虚拟内存体系结构4 9 图4 5 虚拟内存服务的迁移过程5 0 图5 1 读取文件实验结果对比5 4 图5 2 会话负载图5 4 图5 3 网络拓扑一5 5 图5 4 发布者负载图一5 5 图5 5 客户端负载图5 6 第1 v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他入已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目:虚赵i 土簋叠埴鲍迁壁技盛班塞 学位论文作者戥型址 日期 山p 驴年,上月) 矿日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留,使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩e ;p 或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目:虐挞进篡墅墟的适整技苤堑塞 学位论文作者始趔_日期劫9 歹年月彤日 作者指导教师签名:二芝扯日期:口7 年f 二月2 7 日 国防科学技术大学研究生院硕十学位论文 第一章绪论 1 1 研究背景 随着i n t e m e t 平台的快速发展与广泛应用,在开放、动态环境下,实现灵活、 可信、协同的信息资源( 包括计算资源、数据资源、软件资源、服务资源等) 共享和 利用,已经成为信息化社会的重大需求【1 1 1 2 1 。目前网络上汇聚着大量的资源,尽管 人们不断在资源利用和资源共享上取得进步,但是资源利用率仍然不够理想,大 量资源没有合理的使用【1 1 。如何合理的使用i n t e r a c t 上的资源是一个重要的研究课 题。 互联网资源具有“成长性 ,“自治性”,“多样性”三个相互联系的自然 特性f l l 。成长性是指相对于传统的计算机系统,被管理资源边界不再是明确的,互 联网资源规模是不断增长的,各个资源之间的关系是不断变化的,资源特征信息 不断的变化。自治性是指互联网上的资源具有局部自治的特性,比如i n t e m e t 上有 不同的公司提供服务器资源,这些资源都是由各自的公司管理的,有着不同的管 理策略,全局化的资源控制不再适用。多样性即异构性,就是指i n t e m e t 上的资源 的特性是多样的,存在广泛的差异性,这使得无法使用统一的资源描述来对资源 进行管理【3 1 1 4 1 。互联网资源的“成长性、自治性和多样性等自然特性使得资源的 管理和使用方式发生重大变化。p 2 p t 5 】【7 】,网科2 1 ,w e b s e r v i c e 7 】【8 】【9 1 【1 0 j 这几类技术 都通过分布式的方式来利用资源,但是对于聚合互联网异构和不断成长的资源来 说,这几个方法都是不够的。 针对如何有效利用i n t e m e t 上资源这一科学问题,虚拟计算环境( 简称 i v c e ) 1 】【3 】【4 】提出了新颖的概念和方法利用资源。虚拟计算环境是指建立在开发的互 联网基础设施之上,以网络资源的按需聚合与自主协同为核心机制,为终端用户 或应用系统提供和谐,可信,透明的一体化服务环境,实现有效资源共享和便捷 合作工作。虚拟计算环境的目标之一就是将大量成长和自治的资源按照一定的方 式加以聚合和综合利用,有效地进行资源发布、发现和组织、为终端用户或应用 系统提供和谐、安全、透明的一体化服务的环境【l 】。其中资源聚合对实现虚拟计算 环境至关重要。通过在一个协同环境中的无缝资源整合。实现对资源的透明和一 体化访问,并随着用户需求的变化,按照功能正确性指标、性能指标、安全性指 标、可靠性指标等综合指标进行静态调整和动态演化,以尽可能地提高用户满意 度【2 】。 迁移是一种有效的资源利用方法。迁移【1 2 1 1 3 】是指将一个程序的执行过程从一 第1 页 国防科学技术大学研究生院硕士学位论文 个节点转移到另外一个节点上。迁移能够提高资源的利用率。例如在资源聚合过 程中,由于不同资源节点的处理能力差异都很大,如果没有合适有效的负载分配 与调度算法,很容易导致节点负载不均衡,使得部分节点负载超过处理能力,而 部分节点负载远远低于处理能力。由此可能带来系统不稳定,服务质量降低等一 系列问题。采用迁移技术或资源池技术【l l j 可以实现负载均衡。如果进程由负载较 重的机器上转移到负载较轻的机器上去,就可以提升系统的整体性能【1 4 】。另外如 果两个节点之间存在着大量的数据通信量,传输的大量数据可能会挤垮网络,处 理数据的地点距离数据越近,所需要的带宽就越少,迁移能够降低网络带宽使用。 类似的将服务器部分代码从服务器端迁移到客户端,也有助于提高客户端的响应 速度。迁移还有助于提高系统的灵活性,例如传统的构建分布式应用程序的方法 是将应用程序分为不同部分,预先确定每一个部分应该在何处执行。如果代码可 以在不同机器之间移动,就可以动态的配置分布式系统【1 5 1 。在分布式程序中由于 不同节点管理域的不同,部分节点可能由于各种原因不能继续提供资源,将该节 点上运行的进程迁移到其他节点上,可以让应用程序照常进行而不中断服务。 支持虚拟计算环境的迁移不仅能够处理传统迁移技术能够处理的负载均衡、 节点主动退出、降低网络带宽、提高程序灵活性等问题,还能解决面向a g e n t 程序 设计中角色实例的迁移问题。如何设计开发虚拟计算环境下的迁移技术以提高分 布式程序的效率,可靠性和灵活性是本文要解决的问题。 1 2 本文贡献 ( 1 ) 提出了i v c e 迁移必须满足的事务性质。迁移过程必须满足原子性,一致 性,隔离性,持久性这四个性质。 ( 2 ) 设计并实现了满足事务性质的i v c e 的迁移机制。迁移算法分为角色容器 层和事件服务层。在角色容器层提出了一种新型的移动代理技术,将保存交互状 态的代码和保存业务逻辑状态的代码相分离,部分解决了遗留依赖问题。事件服 务层提出了基于d h t 覆盖网的事件服务重定向算法r e s u b s e r i b e ,效率较高。 ( 3 ) 利用迁移机制来实现了自主元素的动态负载均衡,从而提高了虚拟计算环 境分布式应用程序的性能。通过实验证明本文的迁移机制是高效和可扩展的。 1 3 论文结构 本文主要研究如何实现虚拟计算环境的迁移。在本文中对虚拟计算环境和基 于虚拟计算环境的程序设计语言o w l e t 进行较为详细的介绍。并将本文实现的迁移 技术和进程迁移,移动代理,事件服务等分布式技术进行了对比。对迁移技术各 第2 页 国防科学技术大学研究生院硕士学位论文 种问题进行了分析,详细描述了迁移技术的设计和实现,最后通过实验证明本文 提出的迁移技术能够有效提高分布式应用程序的性能,迁移算法本身是高效和可 扩展的。本论文的其他章节安排如下: 第二章:研究讨论了各种分布式技术。介绍了虚拟计算环境,事件服务,迁 移,移动代理,分布式事务,o w l e t 程序设计语言等分布式技术。 第三章:研究讨论了设计迁移过程的各种问题,提出了迁移必须满足的事务 性质,最后设计了满足事务性质的迁移方法。 第四章:介绍了迁移机制的实现。 第五章:通过实验证明了迁移机制能够提高i v c e 部分程序的性能,迁移机制 本身是高效和可扩展的。 第六章:总结了本文工作,指出本文工作的优缺点和下一步工作。 第3 页 国防科学技术大学研究生院硕士学位论文 第二章分布式计算技术 这一章中,先简要介绍了本文工作所基于的背景:虚拟计算环境( i v c e ) ,然后 分别介绍了基于虚拟计算环境的o w l e t 程序设计语言、迁移技术、移动代理、事件 服务,分布式事务技术等分布式技术,讨论了本文工作和其他工作的不同。 2 1 1 概念框架 2 1 虚拟计算环境 虚拟计算环境( i v c e ) 是针对i n t e m e t 的“自主性”、“动态性、“多样性 这三个挑战提出的i n t e r n e t 模型。i v c e 提出了三个核心概念以体现资源的自主性、 动态性、多样性,从而支持资源的聚合、协同,实现资源的有限共享、利用【l l 。 i v c e 使用自主元素作为基础的资源管理单位,自主元素是具有自主行为能力 的资源管理者。自主元素是资源的抽象载体或“虚拟化”单元,也是对虚拟计算 环境下各种异构和多样化资源的抽象表示,它能够通过灵活的封装屏蔽各类资源 的异构性,是虚拟计算环境中的基本资源管理单位。自主元素与互联网上资源之 间具有一对多或多对一的关系,即一个自主元素可能对多个资源进行抽象和封装, 并被赋予环境动态感知、自主行为决策和协同等能力。一个资源也可能被封装成 为多个自主元素【1 6 l f l 9 】。自主元素是由资源感知部件,行为驱动引擎和执行部件构 成的。资源感知部件让自主元素能够感知外部环境和被管理的资源的状态。行为 驱动引擎根据自主元素内部状态以及资源感知部件获取的外部环境信息做成行为 决策。执行部件根据行为决策作为相应的行为,这个行为可以改变外部环境和自 主元素本身。自主元素是对互联网资源的虚拟化和自主化【l l 。 i v c e 使用“虚拟共同体面向任务需求,根据局部的信息聚合资源。由于资 源的成长性,难以获得全部资源的状态,i v c e 聚合资源只针对特定目标具有共同 利益需求的自主元素【i 】。虚拟共同体【i 】是指一组具有共同兴趣和目标,并且遵从 一定的原则的自主元素的集合。在虚拟共同体内部,各个自主元素可能有不同的 角色。比如在网络监管应用中,有的元素担任的任务分配者角色,有的元素担任 爬虫角色。在网格内存应用中,有的元素担任内存提供者( p r o v i d e r ) 角色,有的元 素担任内存消费者( c o n s u m e r ) 角色。一个自主元素可以加入多个虚拟共同体。虚拟 共同体的范围是动态的,自主元素可以动态的加入和退出。 角色是对一类具有相同结构和行为特征的自主元素的抽象表示【。一个角色 ( r o l e ) 封装了属性、方法、行为和环境。角色( r o l e ) 与自主元素( a g e n t ) 二者之间是 第4 页 国防科学技术大学研究生院硕士学位论文 实例化和动态绑定相结合的关系。一个角色可以实例化生成个或者多个自主元 素,一个自主元素在其生命周期中可以绑定一个或者多个角色所定义的行为规约 【j 7 1 。动态绑定机制有助于适应i n t e m e t 资源的动态性和不确定性。它可以根据环境 的变化动态地加入一个r o l e 从而获得该r o l e 所定义的行为规约;或者退出一个 r o l e 从而失去该r o l e 所定义的行为规约。它也可以将它所绑定的行为规约置于非 活跃状态,或者将非活跃状态的行为规约置于活跃状态。自主元素与r o l e 之间的 动态绑定关系可以通过诸如“j o i n q u i t 等一组操作来完成l l 6 】【1 9 】。 i v c e 采用“虚拟执行体 作为基本的运行管理单位。虚拟执行体,是指协同 承担同一任务的相关自主元素,为完成该任务而形成的状态空间的总和。从建模 的角度上看,虚拟执行体是对网络资源协同过程的抽象。通过虚拟执行体可以获 得面向该任务的所有自主元素及其交互状态等管理信息。在虚拟计算环境中,一 个分布式应用程序的进程是由虚拟执行体进行封装的,一个虚拟执行体是由分布 在不同节点上的自主元素的相同虚拟共同体内的角色实例构成的。本文研究的迁 移技术是角色实例级别的。对角色实例进行迁移有助于虚拟执行体对资源运行进 行更好的管理和维护。有助于虚拟计算环境的资源有效共享利用。 2 1 2 体系结构 图2 1 虚拟计算环境体系结构1 虚拟计算环境的体系结构如图2 1 ,资源层是i n t e m e t 上的各种资源。资源虚 拟层对各类资源进行虚拟化和抽象,用自主元素的方式对资源进行封装,管理。 聚合层负责组织和管理i v c e 中自主元素,将自主元素聚集到虚拟共同体中。自主 协同层根据任务需求生成相应的虚拟执行体,绑定相关的自主元完成任务。可信 保证体系为i v c e 环境提供安全性、可依赖性以及协同行为可信性的保证。编程开 第5 页 国防科学技术大学研究生院硕七学位论文 发环境主要为i v c e 的开发提供程序设计语言设施和相应的开发行环境,包括: o w l e t 程序设计语言、o w l e t 编辑器、编译器等。本文的工作位于i v c e 的聚合层 和编程开发环境。 2 2o w l e t 程序设计语言 o w l e t 2 0 】【2 1 1 1 2 2 1 是面对虚拟计算环境的分布性、动态性、成长性、自组织性、自 适应性和异构性等特点,针对实现网络资源的广泛共享、有效聚合、充分释放等 目标提出的一个面向交互过程的程序设计语言。o w l e t 基于事件发布订阅机制描 述节点之间的交互。这一节简要介绍o w l e t 语言和o w l e t 语言的运行时。 2 2 1o w l e t 语言简介 o w l e t 是一个基于i v c e 平台的语言,由作者所在小组联合开发的。o w l e t 提 供合适的抽象机制,从而充分利用虚拟计算环境的能力而不加大程序设计的复杂 性,形成一种透明的虚拟计算环境,使得资源分配和调度、数据迁移、同步、错 误处理和负载平衡等等对用户透明,能较为准确简便地描述应用问题和资源需求, 使软件系统能够适应异构动态变化的环境,保证虚拟计算系统的可靠性,使用户 能够便捷有效地开发和使用系统。 o w l e t 基于内容发布订阅通信机制,利用发布订阅机制进行交互描述。在o w l e t 中将i n t e m e t 抽象为一个不同的自主元素相互作用的环境。自主元素用来封装 i n t e m e t 上资源的动态性和自主性,o w l e t 将自主元素当作分布式程序中代表了某 类资源的节点。自主元素是资源的抽象载体或“虚拟化 单元,也是对虚拟计算 环境下各种异构和多样化资源的抽象表示,它能够通过灵活的封装屏蔽各类资源 的异构性,是虚拟计算环境中的基本资源管理单位。自主元素可以动态的加入或 者离开其它角色或者共同体加入一个角色时,可以获取关于该角色的所有的规则, 状态,组件,就是可以动态的下载语义,离开一个角色时,去除了所下载的各种 规则,状态。各个自主元素都加入了某种或多种角色。角色用于描述自主元素在 同一个应用( 虚拟共同体) 中的交互过程。角色被用来维持资源的相对稳定视图,以 实现资源的按需聚合。角色之间的交互是采用分布式事件规则进行描述的,通过 这些角色之间相互交互实现资源聚合协议。 在o w l e t 语言中一个分布式应用是用一个虚拟共同体c o m m u n i t y 来描述的。 在一个c o m m u n i t y 中各个不同的节点进行交互,以共同完成一个分布式应用。在 o w l e t 语言中采用角色来描述分布式系统中节点的交互模式。角色是对一类具有相 同结构和行为特征的自主元素的抽象表示。一个角色( r o l e ) 封装了属性、方法、行 第6 页 国防科学技术大学研究生院硕士学位论文 为和环境。规则是由事件来触发的,并且有可能触发新的事件。可以较好的描述 i n t e m e t 资源之间的动态性,自适应性。在每个角色中,o w l * t 采用会话作为状态 变量和规则的共同作用域。 o w l e t 将设计分布式系统的关注点分为资源聚合逻辑和业务逻辑。通过角色之 甸的协作来组织和利用资源实现资源聚合逻辑,资源聚合逻辑是采用o w l e t 语言描 述的,每个角色中都有若干描述交互的规则,若某些事件到达自主元素之后,若 它和某些规则匹配,则执行规则所制定的操作。由于互联网的动态性,不同a g e n t 可能表现出不同的特征,而他们所加入的角色是不变的,一个虚拟共同体 c o m m u n i t y 内角色之间的交互是不变的,即资源的组织和坍作是不变的,这就构 成了一个相对稳定的资源视图。而业务逻辑是采用其他编程手段描述的,比如用 o w l e t 描述一个分布式内存系统,可以用o w l e t 描述各个节点之问的内存寻找和蒈 换过程而用本地的c 语言描述共享内存的使用。不管底层的业务逻辑足如何使 用的,o w l e t 描述的资源聚合逻辑叩如何查找和分配内存的交互过程是不变的。 2 2 2o w l e t 语言运行时 r o ec o n t a i n e r j o i n a d a p t i n g ,r u l ee n g i n e c o n v e r s a t i o n c o m p o n e n ti n t e r f a c i n g p o o l l n 窖s e r v i c e p r o v i s i o n i n g i s c h e d u l i n 口 e v e n ts e r c e e v e n tp u h i s h s u b s c n b e o v e r t a y c o n s i s t e n tr o u t i n g :c h o r d f i s s i o n e r a n s p o r t e n d t o - e n dc o m m u n i c a t o n ;t c p u d p ,r n t p 圉2 2 0 w l e t 语言运行时 o w l e t 的语占运行时分为四个层次如图2 2 第一层是传输层,使用的技术是 t c p u d p 或者h n p 协议,负责消息的传送。第二层是覆盖网层,采用分布式哈 希( d h n 技术例如c h o r d ,陆s 如i l e 等来构建。第三层是服务层分为2 个部分,资 源池服务和事件服务层次。资源池负责让一定规模的相似资源协同为用户提供服 务。在n c e 平台中以资源池取代以往用户所使用的孤立的资源,由一定规模的相 似资源协同为用户提供服务,使得在完全自治的资源环境中仍可为用户提供较高 第7 页 国防科学技术大学研究生院硕十学位论文 的服务质量【l 。资源池技术是一种静态的资源利用技术,即资源池无法处理资源 随着时间变化而负载变化的情况。事件层负责事件的发布和订阅,即向角色容器 层提供消息通信机制。第四层是角色容器层,负责自主元素的加入、推出,规则 触发、响应,组件调用等功能。 当一个自主元素( a g e n t ) 力l l 入一个虚拟共同体中担任某种角色时,流程如下 ( 1 ) 自主元素首先根据加入的虚拟共同体的x m l 描述文件,从中获取虚拟共同 体该角色的实现代码地址,下载代码。 ( 2 ) 从配置文件中获取事件服务的配置,若事件服务是集中的方式就连接上事 件服务器。若事件服务是分布式的,就根据配置文件中的d h t 配置信息加入由该 d h t 为基础的事件服务中。 ( 3 ) 自主元素根据角色的代码进行初始化,首先先创建一个新的该角色的实 例,在该角色实例中创建一个根会话。该会话的令牌( t o k e n ) 为。 ( 4 ) 在根会话中对o w l e t 语言描述的规则,根据规则的触发条件生成一个订阅, 在事件服务中发布该订阅。 当一个自主元素加入一个角色之后,它和其他自主元素进行交互,流程如下。 ( 1 ) 每个自主元素在加入一个角色之后,会自动触发该角色的s t a r t ( ) 规则,这 个规则中可以描述一些该角色的特定初始化语句。 ( 2 ) 自主元素加入角色之后,根会话中的每个规则都已经处于激活状态,相应 的订阅都已经发布到事件服务中,若有其他节点发布了符合订阅的事件,事件服 务会将事件传递给该角色实例。 ( 3 ) 该角色实例接收到该事件后,会采用根据规则的触发条件,判断该事件触 发了哪条规则,进而激发相应的动作。 ( 4 ) 若事件触发的动作中包含了创建新的会话,那么在该新会话创建过程中, 将激活该子会话中的规则,并向事件服务订阅能够激活该规则的事件。 2 2 3o w l e t 语言中的迁移机制 o w l e t 程序设计语言中已经提供了最基本的代码迁移机制,通过i o i n q u i t 的方 式就可以实现自主元素角色代码的迁移。 自主元素可以通过j o i n 动态的加入或者离开其它角色或者共同体加入一个角 色时,可以获取关于该角色的所有的规则,状态,组件,就是可以动态的下载语 义,离开一个角色时,去除了所下载的各种规则,状态。o w l e t 程序设计语言还预 设了a c t i v a t e d e a c t i v a t e 语句,用于支持自主元素角色实例的暂停和继续执行。资源 池技术按照用户需求从自主元素中选择出一定规模的满足用户服务需求的节点 第8 页 国防科学技术大学研究生院硕士学位论文 集,建立资源池,以资源池的形式为用户提供服务。 原有o w l e t 提供i o i n q u i t ,a c t i v a t e d e a c t i v a t e 以及资源池这些机制用于描述和解 决资源的动态性,但是这些方法存在着不足。比如要采取o w l e t 语言实现负载均衡 策略,用i o i n q u i t 机制必须将角色实例停止,降低程序效率,a c t i v a t e d e a c t i v a t e 机 制只能用于暂时降低本地资源的负载,但是本地负载还是存在。并且i o i n q u i t , a c t i v a t e d e a c t i v a t e 这些机制不能处理角色实例的迁移。比如用o w l e t 描述教师上课 应用,如果担任教师的人出差了,按照原有的机制有两种方法:让教师这个角色 d e a c t i v a t e 暂停上课,出差回来之后再a c t i v a t e 继续上课,这个方法课程必须被暂停; 第二种方法是让这个人q u i t 教师这个角色,让别的人i o i n 这个角色,这个方法的 缺点是必须手工描述上课进度的保存和恢复过程。而采用m i g r a t e 机制可以很好的 描述这个应用,比原有机制更加自然。并且运行时原有的资源池机制只能用于静 态的负载均衡,不能动态实现资源的有效利用。为了进一步提高分布式程序的效 率,提高o w l e t 程序的灵活性,必须对o w l e t 语言的迁移机制进行改进。 2 3 1 迁移的目的 2 3 迁移 传统上,迁移指的是进程迁移,整个进程在执行过程中被从一台机器搬到另 一台机器上去。将正在运行的进程迁移到另外一台机器上是一个非常复杂、开销 很大的任务。这样做的基本思想是如果将部分进程从负载较重的机器上迁移到负 载较轻的机器上去,就可以提高整个系统的性能【h 1 1 1 5 l 。迁移技术能够提高系统吞 吐量,实现负载均衡。 在许多分布式系统中,对计算能力的优化不如通信量的减少重要。比如一个 客户月艮务器系统,其中由服务器来管理一个巨型的数据库,如果客户端要执行大 量的数据密集操作,在保证程序安全性的情况下,最好将客户端的一部分代码迁 移到距离服务器近的地方,否则大量的数据会阻塞网络。这里进行迁移的目的是 降低带宽使用量,让处理数据的地点距离数据所在地越近越好【1 4 】。比如爬虫的应 用,一个爬虫程序迁移到距离所要抓取网站更近的地方能够有效的降低带宽需求, 提高网页读取效率。 除了提高性能外,迁移还能提高系统的灵活性,传统的分布式应用程序都是 静态配置程序的各个部分的分布情况。如果代码可以在不同机器之间迁移,就可 以动态的配置系统。比如j a v aa p p l e t 就是通过客户下载代码在浏览器执行的方法, 进行网络交互的。这样就提高了用户端的响应速度。 第9 页 国防科学技术大学研究生院硕十学位论文 2 3 2 检查点 迁移系统的共同点是他们都使用了些检查点( c h e c k p o i n t ) 机制f 1 6 】【1 7 】来实现在 两台宿主( h o s t ) 之间程序状态的一致性。检查点是程序的所有状态的一个快照 ( s n a p s h o t ) 。一个进程p 在t c 时刻的检查点c 是致的当且仅当所有在t c 时刻前p 的输入e 在c 中已经记录下来,而所有的在t 时刻之后的输入在c 中没有记录。检 查点是在源节点记录生成的,然后被传输给目标节点,最后在目标节点读取检查 点恢复进程的执行。 按照迁移的粒度,检查点可以有不同的级别,一个进程级别的检查点可能无 法保存一个进程的所有相关状态,而一个操作系统级别的检查点能够保存本地所 有的多个互不相关的进程状态,但是无法保存所有的分布式状态。能够保存所有 程序相关状态的检查点相对于只保存应用相关状态的检查点需要更多的存储空 间。检查点机制运用很广泛,例如休眠是检查点机制的一个应用,这是将操作系 统的运行状态检查点保存到持久性存储介质上。笔记本电脑上的b i o s 和操作系统 部分也支持检查点机制,比如“挂起到硬盘”操作使得用户可以在挂起之后继续 原来的工作。虽然目前高级迁移系统没有得到广泛的应用,一些简单迁移却随处 可见,比如将一个虚拟机的镜像复制到另外一台物理机器上,从服务器上下载一 个i a v aa p p l e t ,和服务器断开连接之后,可以继续运行这个a p p l e t 。这些过程需要 显式的关闭,保存和恢复,它们都是弱化的迁移方式。 2 3 3 迁移的透明 迁移系统需要的一个非常重要的性质是透明性【1 4 】【1 5 】。即迁移过程是否对用户 透明? 对被迁移的对象透明? 对与之交互的进程透明? 迁移过程中是否需要明显 的保存进程外部状态? 分布式系统的重要目标之一就是将它的进程和资源实际在 多台计算机上分布这样一个事实隐藏起来。如果一个分布式系统更能够在用户和 应用程序面前呈现为单个计算机系统,这样的分布式系统称为透明的。分布式系 统的透明性有访问透明,位置透明,迁移透明,重定位透明,复制透明,并发透 明,故障透明,持久性透明等【1 4 】【1 5 l 。迁移透明性是指分布式系统中的资源移动不 会影响该资源的访问方式,就可以说这种分布式系统就能提供迁移透明性。实现 迁移透明性能够提高分布式系统的可靠性,透明性。 2 3 4 迁移的分类 在这一节中,讨论了不同的迁移系统,从细粒度的对象级别迁移和程序语言 第1 0 页 国防科学技术大学研究生院硕士学位论文 级别迁移,到操作系统支持的进程迁移,最后到粒度最大的虚拟机的迁移。迁移 按照迁移的粒度和透明性可以分为数据和对象级别迁移,进程迁移,虚拟机迁移 等。为了更好的理解代码迁移的不同模型,我们采用文献【1 4 】【”j 提出的框架结构来 理解一个进程。在该框架中,进程包含3 段,代码段( c o d es e g m e n t ) 部分包含构成 正在运行的程序的所有指令。资源段( r e s o u r c es e g m e n t ) 包含指向进程需要的外部资 源的指针,这些外部资源包含文件,打印机,设备,其他进程等。最后是执行段,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高校招生面试准备手册及模拟题
- 2025年医学生考研复习策略及备考经验
- 2025年电子信息工程专业模拟题集及解析
- 2025年特岗教师招聘考试物理学科考前冲刺攻略
- 2025年会计助理求职面试预测题与技巧解析集
- 2025年信息技术员招聘模拟题物资储备仓库管理篇
- 2025年特岗教师招聘考试初中英语写作模拟题及答案详解
- 2025年销售代表面试宝典与预测题集
- 2025年工业自动化工程师中级面试准备要点与题库
- 2025年村级污水处理项目专员面试宝典与模拟题解析
- 2024年样板注塑机转让合同范本
- 施工现场安全技术交底全集
- 医院耗材供货服务方案
- 丹江口事业单位笔试真题2024
- 云南大学附属中学数学2023-2024学年七年级上学期开学分班考试数学试题
- 2024年施工承包合同电子版(5篇)
- GB/T 3648-2024钨铁
- ISO28000:2022供应链安全管理体系
- 自来水厂处理工艺流程图
- 食品安全基础
- ICU综合征的治疗和护理
评论
0/150
提交评论