(通信与信息系统专业论文)基于internet的分布式计算系统的设计与实现.pdf_第1页
(通信与信息系统专业论文)基于internet的分布式计算系统的设计与实现.pdf_第2页
(通信与信息系统专业论文)基于internet的分布式计算系统的设计与实现.pdf_第3页
(通信与信息系统专业论文)基于internet的分布式计算系统的设计与实现.pdf_第4页
(通信与信息系统专业论文)基于internet的分布式计算系统的设计与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(通信与信息系统专业论文)基于internet的分布式计算系统的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 利用网络主机的资源开展分布式计算已经成为一种重要的高性 能计算方式,它提供了更好的性能价格比,更容易解决一些在单台计 算机上难以解决的复杂问题。论文根据当前研究复杂生物计算问题的 需要,提出了一种基于i n t e m e t 的分布式计算系统的解决方案。 论文分析和总结了当前的一些基于i n t e r n e t 的分布式计算系统的 不足,研究了相应的解决方案,在此基础上设计和实现了一个基于 j a v a 的分布式计算系统。该系统基于m a s t e r - w o r k e r 模型,采用三层 体系结构,以j a v aa p p l e t 作为工作机端,参与者只需要一个支持j a v a 的浏览器就可以加入到计算中来;使用w e bs e r v i c e 技术将需要计算 资源的应用发布为计算w e b 服务,从而解决了传统方式下系统计算 资源利用的种种不足;具有易用、容错、安全等特点。 论文对分布式计算系统的设计与实现进行了深入的论述,对于系 统的检查点、容错、任务调度等功能的实现给出了详细的说明,并重 点论述了基于w e bs e r v i c e 技术的资源请求、系统的安全等关键技术。 论文以生物计算中查找d n a 序列中m o t i f s 算法进行测试,运行结果 表明系统基本上了满足了设计的要求,具有较好的实用性。 论文最后对系统实现过程中的研究与开发工作进行了总结,并阐 述了将来进一步对该系统进行扩充与完善的一些工作。 关键词分布式计算,并行计算,m a s t e r - w o r k e r 模型,j a v a ,w e bs e r v i c e , a b s t r a c t d i s t r i b u t e dc o m p u t a t i o nu s i n gs p a r er e s o u r c eo nt h en e t w o r kh a s b e e na l li m p o r t a n tw a yo fh i g h - p e r f o r m a n c ec o m p u t a t i o n p r o v i d i n g b e t t e rp e r f o r m a n c e p r i c er a t i o ,i ti sm o r ec o n v e n i e n tt os o l v ec o m p l e x p r o b l e m st h a nas i n g l ec o m p u t e r t h ep a p e ri n t r o d u c e sa ni n t e r a c t - b a s e d d i s t r i b u t e dc o m p u t a t i o ns y s t e mt om e e tt h ed e m a n do fc o m p l e xp r o b l e m s i nb i o l o g i c a lc o m p u t a t i o n f i r s t l ya n a l y z i n g t h ed r a w b a c k so fs o m e e x i s t i n g d i s t r i b u t e d c o m p u t a t i o ns y s t e m sa n ds t u d y i n gc o r r e s p o n d i n gp r o p o s a l s ,t h ep a p e r t h e nd e s i g n sa n di m p l e m e n t saj a v a - b a s e dd i s t r i b u t e dc o m p u t a t i o n s y s t e m b a s e d 0 1 1t h em a s t e r - w o r k e rm o d e l ,t h es y s t e m a d o p t sa t h r e e l a y e rs t r u c t u r ea n du s e sj a v aa p p l e ta s t h ew o r k e rp r o g r a m t h e p a r t i c i p a t o r sc a nj o i nt h ec o m p u t a t i o no n l y w i t haj a v a - s u p p o r t e db r o w s e r t h ec o m p u t a t i o na p p l i c a t i o nw i l lb ed e p l o y e da s ac o m p u t a t i o nw e b s e r v i c e u s i n gt h i sw a y , i to v e r c o m e st h ei n c o n v e n i e n c e so fc o n v e n t i o n a l c o m p u t a t i o nr e s o u r c eu s a g e i th a st h ec h a r a c t e r i s t i co fe a s yu s e ,f a u l t t o l e r a n c ea n ds e c u r i t y t h ep a p e rd e e p l yd i s c u s s e st h ed e s i g na n di m p l e m e n t a t i o no ft h e d i s t r i b u t e dc o m p u t a t i o ns y s t e m , e x p l a i n i n gt h ei m p l e m e n t a t i o no fk e y f u n c t i o n s ,i n c l u d i n gc h e c k p o i n t ,f a u l t t o l e r a n c ea n dt a s ks c h e d u l i n g t h e k e yt e c h n o l o g i e ss u c ha sw e bs e r v i c ea n ds y s t e ms e c u r i t yh a v eb e e n e m p h a s i z e d i nt h ep a p e r t h ea l g o r i t h mo fm o t i f ss e e k i n gi nd n a s e q u e n c ei su s e df o rt h es y s t e mt e s t t h er e s u l ts h o w st h a tt h es y s t e m m e e t st h ed e s i g nd e m a n da n dh a sg o o dp r a c t i c a b i l i t y i nt h ee n d ,t h ep a p e rs u m su po u rw o r kd u r i n gt h ed e s i g na n d d e v e l o p m e n t ,a n dd i s c u s s e sh o w t oi m p r o v et h es y s t e mi nt h ef u t u r e k e yw o r d sd i s t r i b u t e d c o m p u t a t i n g ,p a r a l l e lc o m p u t i n g , m a s t e r - w o r k e rm o d e l ,j a v a , w e bs e r v i c e 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得中南大学或其他单位的学位或证书而使用过的材料。与我共 同工作的同志对本研究所作的贡献均已在论文中作了明确的说明。 作者签名:i 翌鱼鱼日期:上堡l 年卫月笪日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校有 权保留学位论文,允许学位论文被查阅和借阅;学校可以公布学位论 文的全部或部分内容,可以采用复印、缩印或其它手段保存学位论文; 学校可根据国家或湖南省有关部门规定送交学位论文。 作者签名:亟造蛰导师签名笠盔缒日期:堕年上月受曰 硕士学位论文第一章绪论 第一章绪论 随着i n t e m e t 的迅速发展,通过网络互连的计算机越来越多,而且大部分时 间处于空闲或轻载的状态。利用i n t e m e t 上的大量空闲资源进行分布式计算是解 决大规模计算问题的一种有效方式。本章主要介绍了课题背景、分布式计算环境 的发展,并对论文的主要研究内容和论文的组织进行了说明。 1 1 课题背景 在日常实践和科学研究中,包括天气预报、海洋模型和环流、遗传工程、数 学、生物科学、环境研究和军事等在内的许多领域中都存在着大量的复杂计算问 题,这些复杂计算问题往往需要高性能的超级计算机才能完成,目前世界上最快 的“a s c iw h i t e ”计算机每秒钟能执行1 2 3 万亿次运算【l 】。超强的计算能力使得 此类超级计算成为复杂计算领域的主宰。但超级计算机的造价却让人望而却步, 通常只有一些国家级的部门才有能力配置这样的设备另一方面,随着硬件技术 的发展与网络的普及以及带宽的扩展,越来越多的个人计算机构成了庞大的网 络。这些个人计算机拥有一定的计算能力,而且大部分时间处于空闲或轻载的状 态。据2 0 0 0 年美国i d c 的调查,全世界与i n t e r n e t 连接的计算机超过3 亿台, 每台机器有8 0 0 一9 0 的c p u 资源被闲置而白白浪费掉【2 】。因此,如何有效利用 这些闲置的计算资源,将其整合成高性能的计算网络来满足科学计算的需要成为 一个研究方向。现在利用网络主机的资源( c p u 、存储器资源) 开展分布式计算 已经越来越成为流行的计算方式。它通过将计算工作分摊到多台计算机中,降低 了集中在单台计算机运算的负载及可能的风险。而且对于一些难以在单台计算机 上解决的复杂问题,也只有通过分布式计算才能得到解决,高性能并行分布式 计算饵i g hp e 】r f o r m a n c ep a r a l l e l d i s t r i b u t e dc o m p u t i n g ,h p p d c ) 已经成为计算科学 中的一个热点。 1 9 9 6 年,世界范围的7 0 0 多台工作站和p c 机协同计算发现了第3 5 个素数: 1 9 9 7 年,分布在欧洲的3 5 0 0 台工作站协同工作破解了4 8 位r s a 密码,同年, 使用了约7 8 0 0 0 台计算机破解了5 6 位d e s 密码。 第一个大规模公开利用计算机闲置资源的分布式计算项目是 s e t i h o m e l 3 1 ,该项目自从1 9 9 9 年5 月1 7 日开始正式运行,至2 0 0 4 年5 月已 经积累了近2 0 0 万年的c p u 运行时间,进行了近5 1 0 2 1 次浮点运算,处理超过 1 3 亿个数据单元。该项目目前拥有近5 0 0 万参与者。 i n t e m e t 上这种强大的计算潜力吸引了我们采用分布式计算技术来解决计算 硕士学位论文第一章绪论 生物学上的复杂问题。 计算生物学( c o m p u t a t i o n a lb i o l o g y ) 【4 】【5 1 是- - f - 新兴的领域,主要是研究生物 学应用上具计算复杂度的问题,它吸引了许多计算器科学家、( 分子) 生物学家、 数学家等积极投入研究。生物体基因本身的不确定性导致了在对其进行数学建模 和相应计算研究时的不确定性,其计算量之大远远超过一般计算形式所能及。面 对海量的、呈指数形式快速增长的生物信息数据,除了发展全新的生物信息处理 方法外,还需要建立高性能分布式计算系统来处理大规模数据。 分布式计算在计算生物学中已经得到了广泛的应用,现有的大型分布式项目 中,很多都是生物计算领域的,包括探索蛋白质折叠、聚合以及相关疾病的 f o l d i n g h o m e 6 1 、研究艾滋病的生理原理和相关药物的f i g h t a i d s h o m e l 6 1 ;寻 找抗癌药物的西d o r g ! 司,由蛋白质序列预测蛋白质结构的p r e d i c t o r h o m e 【6 】等 等。目前生物计算中的分布式系统大多是针对专门的问题建立的,我们迫切需要 一个通用的分布式计算系统来解决生物计算中的各种复杂计算问题。 1 2 分布式计算环境的发展 分布式计算的发展经历了一个从局域网走向广域网的过程,为其服务的分布 式计算环境也随之改进。 1 集群计算系统 早期的分布式计算采用的是集群方式,它通过高速网络连接闲置的工作站, 形成一个松散耦合的并行计算环境,协同工作解决复杂的计算阀题。在这种系统 中,参加计算的机器是安全可靠的,通常机器的数量和相关信息是已知的。常用 于集群的软件是基于消息传递的系统,例如m p l ( m e s s a g e - p a s s i n gi n t e r f a c e ) 7 1 和 p v m ( p a r a l l e l 、r l r t u e m a c h i n e ) 【引。在消息传递( m e s s a g e p a s s i n g ) 模型中,驻留在不 同p c 处理器节点上的进程可以通过网络传递消息相互通信。消息可以是指令、 数据、同步信号或中断信号等。在消息传递并行程序中,用户必须明确地为进程 分配数据和负载,它比较适合于开发大粒度的并行,这些程序是多线程的和异步 的,要求显式同步以确保正确地执行顺序标准消息库m p i 和p v m 提供了轻便 性和优良的性能,但是它们是低层的;它们局限于局域网,不支持动态负载平衡 和容错,它们要求程序安装在每一个站点上( 或者一个文件共享系统) ,用户或者 系统需要拥有参与计算的每一台机器的一个帐户。要参加一个基于p v i v l 的并行 计算,要有下面的步骤: , ( 1 ) 在所有参与计算的机器上安装p v m 后台程序; ( 2 ) 为每一个目标体系结构编译应用程序的二进制文件; ( 3 ) 通过直接拷贝或者共享文件系统的方式分布二进制程序到每一台机器; 2 硕士学位论文 第一章绪论 ( 4 ) 为用户提供远端内核访问权限,以允许p v m 后台程序和应用程序的远端 执行。 显然,上述的处理不仅要求用户付出相当多的努力,而且要求协作者彼此之 间是信任,这种模式因此被限制在局域网内。 2 元计算系统和网格计算平台 元计算的概念是伴随着l a n 向w a n 、i n t e m e t 的发展过程中提出来的。使 得广域网上的空闲计算机资源集成和共享起来,对那些亟需科学计算的用户提供 统一界面的服务,而不必关心用户提交的任务是如何划分的,在何种机器上运行, 结果如何收集等。其中的一种形式是志愿者模型,由i n t e m e t 上的机器自愿加入 计算中,形成网络超级计算机。 在自愿计算( v o l u n t e e rc o m p u t i n g ) t 9 1 中,通常情况下,大部分的参与者是拥有 一台p c ,通过电话线、m o d e m 或者d s l 连接到i n t e r a c t 上的个体,而且通常处 于防火墙之下。他们可能会经常的关机或者与i n t e m e t 断连,参与者很可能不是 计算机专家,参与这些项目的目的只是为了兴趣或者可以得到的某些“利益”。 系统没有对参与机器的控制权,不能避免恶意的攻击。这类分布式系统更强调易 用性、可适应性,系统必须提供方便的参与方式。例如,要加入s e t l h o m e 项 目,只需要下面的步骤: ( 1 ) 访问s e t i h o m e 的网站,注册; ( 2 ) 下载机器操作系统对应版本的客户端程序; ( 3 ) 解压缩,安装客户端程序; ( 4 ) 运行客户端程序。 随后,客户端程序自动负责与项目服务器联系,请求任务,执行计算并返回 计算的结果。客户端软件安装后是作为一个屏幕保护程序( $ c r e o rs a v e r ) 运行的, 只有当该屏保程序是激活的情况下,才能处理数据。 对于这种基于i n t e m e t 的自愿计算系统,根据其特点可以分为两类: ( 1 ) 固定于应用程序的系统 早期的分布式计算例如d i s t r i b u t e n e t 、s e t i h o m e 等都是针对具体的应用编 写固定的框架。 c d 通用的分布式计算系统 这类系统不是为某一个应用编写的,而是提供一个通用的接口以支持多种应 用程序例如s e t i h o m e 后来移植到的b o i n c l l 0 1 ( b e r k e l e yo p e ni n f l a s t g u g t l 】r e f o r n e t w o r kc o m p u t i n g ) 开放式网络计算软件平台。 随着j a v a 网络编程上的优势的显现,目前更多的通用分布式计算平台用j a v a 硕士学位论文 第一章绪论 语言实现,包括b a y 衄i h 一j 、a t l a s l l l i 、j a v a l i n 1 2 1 、c h a d o t t e 1 3 1 、s u p e r w e b 0 4 p a r a w e b 嘲j e 一1 6 等等。c h a r l o t t e 系统是第一个使用嵌入了j a v a a p p l e t 的h t m l 页面来分发代码给志愿者的系统。 网格计算是在元计算的基础上发展起来的,是分布式计算的典型应用简单 地讲,网格【l7 l 是把整个因特网整合成一台巨大的超级计算机,实现计算资源、 存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。网格追求的 目标来源于人们对“电力网”的类比理解,人们希望从网格中获取“计算或服 务”,就像家电用插头从电力网中获得“电能”一样方便和普及。 早期的网格研究( 如g l o b u s 瑚,l e g i o n 1 9 1 ,c o n d o r 口o j 等) 多集中研究“计算 力”资源的共享和集成,目前,应用资源的多样性为网格研究带来新的机遇和挑 战,需要网格技术对异类、异构的网络资源提供无缝的共享和集成支持。现在, 网格早已远远超出了计算的范畴。除了计算网格外,数据网格、仪器网格、虚拟 现实网格、服务网格、信息网格、知识网格等,将网格应用扩展到方方面面。 1 3 主要研究内容、 在生物学的研究中,有大量的研究课题都与n p 难问题有关,在有限的经济 条件下,需要采用分布式并行计算的方式来解决这类难解问题,而利用i n t e r n c t 上成千上万的机器构成超级计算网络是很好的选择。 论文主要研究如何设计和实现一个通用的基于i n t e m e t 的分布式计算系统, 它提供简单的接口,实现了该接口的应用程序可以利用系统构建的超级计算网络 来完成复杂的计算任务。论文的主要研究内容如下: ( 1 ) 分析比较了分布式计算系统中常见的计算模型,研究了分布式计算系统 的三层逻辑体系结构,提出了建立一个基于m a s t e r - w o r k e r 模型的三层结构的分 布式计算系统的方案。 ( 2 ) 在分析了已有分布式计算系统在请求层实现上的不足的基础上,提出了 一种新的计算资源的请求方式:应用提交后作为w e bs e r v i c e 发布,然后用户可 以方便地调用服务,利用系统的计算资源。 ( 3 ) 开发实现了一个通用的基于i n t e r n e t 的分布式计算系统,该系统采用 j a v a a p p l c 哇作为工作机端,使用方便安全;系统提供了简单灵活的用户接口,满 足接口的应用程序可以方便地使用系统的计算资源完成复杂计算;系统使用的基 于h r r p 传输序列化对象的通信机制使系统可以跨越防火墙的障碍;同时,系统 提供了容错、检查点机制,保证了结果的正确,并且采用简单的方法保证了基于 分支一定界算法的应用在系统中有效地运行。 ( 4 ) 研究了设计实现中的关键技术,对于w e b 服务的远程部署、j a v a 序列化 4 硕士学位论文 第一章绪论 机制在系统中的应用,系统采用的多种安全技术进行了探讨。 1 4 论文的组织 论文全文共分五章。 第一章绪论。这一章主要介绍课题背景、分布式计算的发展,说明了论文 的主要研究内容。 第二章系统分析和总体设计分析比较了分布式计算系统中常用的计算模 型和体系结构,给出了建立一个基于m a s t e r - w o r k e r 模型、采用三层逻辑体系结 构的分布式计算系统的设计方案。根据此方案,决定了采用j a v a 开发,以j a v a a p p l e t 为工作机端,用w 曲s e r v i c e 技术来实现系统资源的请求和利用的技术路 线。最后得出了系统的总体架构,说明了系统的主要功能。 第三章系统详细设计和实现。说明了工作机与服务器的通信机制和具体实 现,工作机端的设计和实现以及服务器端的设计和实现。其中,重点描述了系统 检查点机制的实现、对分支一定界算法的处理、系统容错的方法和实现,以及服 务器端执行任务调度的算法。 第四章系统关键技术及实现首先描述了w e bs e r v i c e 技术在系统中的应 用:如何远程部署服务和处理复杂对象参数;然后对于j a v a 的序列化机制在系 统中的使用进行了说明,最后介绍了系统采用的多种安全技术。 第五章系统实例分析。以生物计算中d i q a 序列中的m o t i f 查找算法为例, 应用论文的分布式计算系统进行计算,分析了实验结果。 第六章结束语。对系统实现过程中的研究与开发工作进行了总结,并阐述 了将来进一步对该系统进行扩充与完善的一些工作 5 硕士学位硷文第二章系绕分叛私总钵设诗 第二章系统分析和总体设计 本章首先分析了系统需求。提出了设计耳标。然后在计算摸型瓤体系结孝句故 设计方案上进行了分析选择,接着对系统的开发技术的选择进行了描述。最后, 给出了系统的总体架构,描述了工作流程和基本功能 。 2 1 系统需求 生物学领域中绝大罄分钧褪题在计算抚科学领域中主要体现为窿巩或字褥 串的问题,而这类问题很大程度上都被理解为n p 难解问题的形式。计算生物学 除了d n a 序列分析外,尚有许多重要的课题1 2 l 】,其中序列的组合、基因的认定、 种族树的建构、蛋白质三维结构的推测等都是极为热门的主题,大部分也都是难 解问题。在当前有限的条件下,需要采用分布式并行计算的方式来解决这类难解 问题,面剩用i n t e m e t 上成于上万的机器捣j 菠超级计算网络是一个很好的选择, 因此,我们需要的是一个通用的基于l a t e r n e t 的分布式计算系统,它与集群 系统的主要不同在于网:将要参加计算的机器的信息是未知,是不可信任的; 可用的计算机资源的数量可能随时变化,参与者可以随时加入或者离开而无需通 知:系统通过i n t e m e t 连接,其上的带宽、延迟、安全性都是变化不定的。因此, 常用的分布式并行计算平台,例如m p i 、p v m 、c o n d o r 等不能满足我们的要求。 目前已有了很多 n i t n e t 上的分布式计算系统【1 2 】【1 3 】【1 4 1 1 5 1 1 嘲,它们通常存在 以下的不足: ( 1 ) 很多系统是专用的,只针对专门的应用进行分布式计算,要解决多个问 题就需要开发多个系统; ( 2 ) 一些通用的分布式计算系统不支持任务的提交,网络上的用户只能作为 计算的参与者,而不能作为系统资源的使用者用户必须为每个需要计算资源的 应用搭建一套分布式计算环境; ( 3 ) 某些系统要求计算资源的使用者学习一套系统提供的复杂的a p i 。 针对i n t e m e t 上的分布式计算系统的特点和目前存在的缺陷,根据学校生物 计算研究的需要,我们提出了建立基于i n t e r n e t 的分布式计算系统的主要目标: ( 1 ) 建立一个通用的分布式计算系统,髭侯简草易学的绩口,满足系统接口 的应用都可以利用系统的计算资源; ( 2 ) 系统的最终目标是要运行在i n t e m e t 上,利用i n t e m e t 上成千上万的机器。 因此系统需要提供一种简单的参与方式,以吸引更多的参与者加入到系统中来: ( 3 ) 对资源的使用者提供简单的资源利用方式,用户可以通过网络提交任务, 硕士学位论文第二章系统分析和总体设计 而不需要搭建自己的分布式计算环境: ( 4 ) 采取灵活的容错策略,保证大多数情况下用户可以获得正确的计算结果; ( 5 ) 开发的系统应该具有很好的扩展性和适应性,便于进一步的开发 2 2 系统设计方案选型 2 2 1 计算模型选择 并行计算中最常见的两种计算模型是m a s t e r - w o r k e r 模型和仃优模型。 1 m a s t e r - w o r k e r 模型 又称t a s k - f a r m e r 模型,如图2 - 1 所示。对每一个任务,只存在一个m 鲫【e r 节 点,负责任务初始化、子任务的分割、分发、与w o r k e r 节点通信、结果收集、 汇总。有多个w o r k e r 节点,分别执行不同的子任务,并将结果返回给m a s t 盯节 点,它由m a s t e r 进行控制,只与m a g t c r 问进行通信,w o r k e r 之间没有直接的通 信。 、 计 算 图2 - 1m a c t e r - w o r k c r 计算模型 该模型适用于具有完全程序并行性( 即能分成完全独立的小任务) 的应用程 序。对于参数化的应用,开发者可以简单地将原数据集划分成互不相交的子集, 不同的子任务对不同的数据子集进行运算,子任务问没有约束关系。b a y a n i h a n 、 c h a r l o t t e 等系统采用的是这种计算模型 2 吮模型 并行应用的常见计算模型除了m a s t e r - w o r k e r 模型以外,还有一种a 嘲模型。 硕士学位论文第二章系统分析和总体设计 t r e e 模型中,由父任务产生子任务,而子任务又可以继续产生它的子任务,由此 各级任务形成树的形状,如图2 - 2 所示 图2 - 2t r e e 计算模型 a - e e 计算模型具有很好的可扩展性。a t l a s ,j a v a l i n + 3 1 等采用的是这种计 算模型。 3 选型结论 在i n t e r n e t 上的分布式计算系统中,参与计算的志愿者通常是通过商业网络 连接的,这就意味着有限的带宽和高延迟。因此,粒度( 计算与通信的毙值) 越大, 系统的性能就越好。而具有完全程序并行性的应用程序不仅更容易划分成粗粒度 的子任务,而且子任务之间的独立性使得这样的应用更容易实现可适应并行性和 容错方案:既然子任务是彼此独立的,未完成的任务可以被重新分配给其它进程; 可以多个进程计算同一个任务来确认结果,等等。基于这样的考虑,我们采用的 是m a s t e r - w o r k e r 模型,那么适应于我们的系统的应用程序需要具有以下的特点: ( 1 ) 粒度较大; ( 2 ) 需要分布计算的并行任务之间是独立的,不需要通信; ( 3 ) 应用的运行时间较长,一般以小时,天,月计; ( 4 ) 没有严格的执行期限。 2 2 2 基于三层体系结构的解决方案 一个基于i n t e r n e t 的分布式计算系统通常在逻辑上采用三层体系结构:请求 层、代理层和服务层。其中请求层提交任务;代理层则集和请求,负责调度任务 和结果回收、管理;而服务层进行实际的计算。 很多情况下,专用的和商业的分布式计算系统并没有将代理层和请求层划分 的那么清楚。例如b o i n c 并不对外提供对请求层的存取,每一个要获得计算资 源的机器都必须在自己的机器上安装b o i n c 后台系统 目前更多的系统都倾向于提供对请求层的存取:系统中的资源请求者和资源 提供者可以互换角色,一台机器,在其空闲的时间,可以作为一台资源提供者来 0 硬士学位论文 第二章系统分析和总体设计 提供服务;而在它要计算资源时,它又可以作为资源请求者来请求资源。对请求 层存取的提供,大大方便了用户建立自己的分布式应用:用户不需要进行一系列 复杂的操作、配置来措建自己的分布式计算系统,也不需要到搭建了系统的实验 室排队预约,在家中就可以2 4 小时提交和运行任务。 因为三层体系结构带来的便利性,我们的系统也允许任务的提交。但是请求 层并不对外开放,只有授权用户可以提交任务,而不是i n t c r n 既上的任何机器。 这是考虑到可扩展性和安全等方面的原因,而这也是更为实际的情况。 根据三层体系结构,我们的分布式计算系统由三类机器组成:客户机、工作 机和服务器( 如图2 3 ) 。 “舯t 因2 - 3 三层体系结构下的系统组成 ( 1 ) 客户机( c l i e n t ) c l i e n t 是计算资源的请求和寻找者,它向服务器提交问题,等待结果的返回。 ( 2 ) 工作机( w o r k e r ) 也称作主机( h o s t ) ,提供空闲计算资源的机器,其工作流程是一个循环的过 程:向服务器申请任务,开始计算,返回计算结果。 ( 3 ) 服务器( s e r v e r ) 在很多系统中( 例如j a v a l i n ,s u p c r w e b ) ,服务器也称作代理( b r o k c r ) ,它来 协同资源的请求和分配。面向客户机,服务器接收提交的任务,最后返回结果; 面向工作机,服务器接收其请求,分配任务,接收返回的任务。 2 3 三层结构下的开发技术选型 2 3 1j a v a 与其他语言的比较 较早的分布式计算平台多是采用f o r t r a n 和c c + + 编写的,这两种语言是科 学计算、工程设计和数据处理等领域中科技人员最常用的高级程序设计语言之 一,在并行程序设计方面具有优秀的性能,在集群系统中,基于f o r t r a n ,c c + + 的平台可以工作的很好。尽管s e t i h o m e 、d i s t r b u t c d n e t 等采用多种二进制可 凰凰一凰一 硕士学位论文 第二章系统分析和总体设计 执行代码的方式解决了c ,c + + 语言不能跨平台的问题,获得了众多的志愿者,但 是f o r t r a n 、c ,c + + 语言的特点决定了它们对于i n t e m e t 上的应用还是存在缺陷。 首先,志愿者还是需要掌握某些技术一至少需要知道机器的体系结构,然 后选择对应的二进制可执行文件,下载文件、安装,然后运行软件可能对于有 经验的计算机用户来说,这些操作实在不算什么,但是部分初级计算机用户仍然 因此而放弃参加计算。而且,即使是高级的非w m d o w s 或者非m a c i n t o s h 操作系 统的用户也可能觉得安装是困难的。例如在u n i x 机器上安装s e t i h o m e 可能 需要从3 1 种版本中进行选择,然后安装脚本,从命令行运行程序。 另一个问题就是安全问题,下载的屏保程序通常运行在用户模式下,这也就 意味着这些程序可以访闯甩户的数据,包括敏感数据侈0 如信用卡账号和密码等。 用户还可能因为担心引入病毒而畏惧参加计算。因为认识到这个问题, s e t i h o m e 和d i s t r b u t e d n e t 项目都发布通知提醒志愿者不要从其他w e b 站点下 载客户端程序 、 最后,还存在的一种情况就是,用户没有在机器上安装软件的权限,这对于 网络计算机来说是一种常见的情况。这类用户也不能参加到计算中来 上述的问题在一定程度限制了更多的志愿者加入到计算中来,无疑阻碍了分 布式计算系统获得更高的性能。 最近,随着j a v a 语言的引入和流行,出现大量的基于j a v a 的分布式计算系 统。j a v a 语言和相关技术成功地解决了困扰分布式计算的几个关键问题,如异构 性和安全性,另一个重要的优势是j a v a 程序的最小执行环境可以在w e b 测览器 中执行而不需要另外安装软件,因此,理论上全球任意一台装有w e b 浏览器的 机器都可以参加分布式计算。而且j a v aa p p l e t 的沙箱机制最大地保护了志愿者的 安全。因此,采用j a v a 语言就能完全克服基于c ,c + + 、f o r t r a n 系统的不足。 归纳来说,j a v a 对分布式计算环境的良好支持具体体现在下面几个方面: ( 1 ) 平台无关性,j a v a 解释器生成与体系结构无关的字节码指令,使得j a v a 程序实现了。一次编写,到处运行”,这对在异构环境下开发并行计算程序来说 非常重要。 ( 2 ) 安全性,j a v a 是被设计用于网络及分布式的环境中,安全性自然是一个 很重要的考虑。j a v a 拥有数个阶层的互锁( i n t e r l o c k i n g ) 保护措施,能有效地防止 病毒的侵入和破坏行为的发生。j a v a 字节码验证被w e b 浏览器用来确保小程序 不含病毒或恶意代码。 ( 3 ) 健壮性,j a v a 虽然源于c + + ,但它消除了许多c + + 不可靠因素,可以防 止许多编程错误。例如:对象句柄自动初始化成n u l l ,句柄可以保证得到精确的 检查;可以及时发现数组访问是否越界;自动垃圾收集,防止出现内存漏洞;明 硕士学位论文第二章系统分析和总体设计 确清晰的异常控制机制等等。 ( 4 ) 易使用的网络编程语言,j a v a 在进行网络编程上比任何其它语言更为容 易。作为网络编程语言。j a v a 的应用程序接口( a p i ) 包含对网络通信的多层次支 持,除了支持t c p i ps o c k e t 编程以外,还提供了分布式对象支持r m i ( r e m o t e m e t h o di n v o c a t i o n ) 。 ( 5 ) 类的动态加载,j a v a 应用程序总是被编译成若干个单独c l a s s 文件,程 序执行时根据需要由j a v a 虚拟机动态载入相应的类。这种机制使编写动态的分 布式应用程序成为可能:我们可以在客户端编写自己的类载入器,而真正执行的 程序却存放在本地,局域网或世界另一端的主机上。作为充分利j a v a 的动态类 载入机制的最好例子,带有j a v a 扩展的w e b 浏览器根据请求从网络或本地文件 系统中动态加载j a v aa p p l e t ,然后在本地系统中执行它。 ( 6 ) j a v a 内建了对多线程的支持,通过继承一个特殊t h r e a d 类可以创建一个 新线程。并且,将s y n c h r o n i z e d 关键字作为方法的一个类型限制符使用,可以在 对象这一级得到互斥。在线程之间还可以实现更复杂的同步机制。 ( 7 ) 内建的对象序列化机制,对象序列化机制扩展了核心j a v a 的输入输出类 来支持对象的输入输出。通过这个机制,可以实现计算对象在i n t e r a c t 上透明地 传输 但是与c c + + 、f o r t r a n 相比,j a v a 也有不足: ( 1 ) 性能不如c c + + 、f o r t r a n 。解释性的j a v a 执行很慢,这是一个限制因 素。使用j u s t - i n - t i m e ( j i t ) 编译器可以使j a v a 的执行速度变快5 - 3 0 倍,不过还 是比c 托+ + 、f o r t r a n 慢。但是可以预见,随着j i t 编译器的发展及其他新技术 的使用,如s u n 的新的h o t s p o t j v m ,j a v a 与c c + + 的性能差距将逐渐减小。 ( 2 ) j a v a 对数值计算的支持不如c ,c + + 、f o r t r a n ,在浮点计算、运算符重载、 复数和数组的有效表示方面还存在缺陷。但是对于我们的主要为生物计算的难解 算法建立的分布式计算环境来说,大部分应用转换成对序列或字符串的分析和处 理,因此,对数值计算上的要求不高。 尽管j a v a 平台在分布式应用上还存在问题,但它无疑将大大影响分布式计 算模式的发展,使实现全球分布式计算成为容易的事情。 2 3 2 基于j a v aa p p l e t 的服务层实现方案 基于j a v a 的分布式计算系统根据任务分发形式的不同,主要分为两大类; 基于a p p l e t 的和基于a p p l i c a t i o n 的。早期的用j a v a 开发的分布式系统,例如j p v m 、 a t l a s ,主要是利用j a v a 的平台无关性,因此多是基于j a v aa p p l i c a t i o n :而后来 更多的系统充分利用了j a v a a p p l e t 的易用性,建立基于i n t e m e t 的自愿环境下的 硕士学位论文 第二章系统分折和总馋设诗 分布式计算系统,包括j a v a l i n 、b a y a n i h a n 、c h a r l o t t e 等等。 j a v a a p p l e t 在分布式计算系统中的优势有: 1 易用性 计算资源的提供者,只需要有一个支持v m 的浏览器,访问特定的页面, 包含了计算应用的j a v aa p p l e t 就自动下载到提供者机器上运:i 亍,执行计算任务, 返回计算结果。整个过程完全自动,无须人工干预,而基于j a v a a p p l i c a t i o n 的系 统,志愿者必须安装j r e 环境,下载安装a p p l i c a t i o n ,这就要求志愿者要有初步 的安装知识,要进行额外的配置。 2 安全性 j a v a a p p e t 具有一系歹錾被称为s a a b o x ( 沙箱) 的安全机翻,包括: ( 1 ) 不能监听任何网络端口; ( 2 ) 不能与宿主机外的任何主机建立连接; ( 3 ) 不能访问本地文件系统等。 j a v aa p p l e t 的沙箱安全机制,能防止恶意代码破坏志愿者机器。使志愿者能 安全缝共享诗算资源, 但是,a p p l e t 也不可避免地具有不利于我们分布式系统的缺点: ( 1 ) 采用a p p l e t 实现遇到的一个重要问题就是志愿者撤销计算的问题,在浏 览器环境下,表现为用户随时可能关闭页面或转到其他页面,不过浏览器仍被普 遍认为是将问题发布出去的良好途径; ( 2 ) 通信问题,由于a p p l e t 豹沙籀机割,a p p l e t 之间不能运信。因此a p p l e t 通常只适用于可以分解为独立的、彼此不需要通信的任务的程序,也就是 m a g l g t - w o r k e r 模型;这样。基于a p p l e t 的分布式系统是基于星型的,存在着可扩 展性差和单点失效的困扰。 尽管j a v aa p p l e t 的方式存在着上述的缺陷,但是与确定的集群环境不同,基 于i t e m e t 的分布式计算系统是自愿环境,我们必须尽可能地争取到更多的志愿 者加入到我们的计算中来而易参与性和安全性是我们吸引志愿者的重要条件, 而且j a v aa p p l e t 也适合于我们选定的m a s t e r - w o r k e r 模型。因此,我们的系统选 择j a v aa p p l e t 作为工作机端。 2 3 3 基千w e b8 9 r v i c 胄的请求层实现方案 i ,已有方案的不足 我们的系统采用三层体系结构,允许授权用户从网络上向系统服务器提交任 务,这种方式使得用户可以方便的利用到系统构建的网络超级计算资源。但是, 存在的困难就是怎样提供个方便的接口和通信方式,来完成任务的提交和结果 硕士学位论文第二章系统分析和总体设计 的返回。分析已有的系统,通常采用的方式有两种: 方式一:服务器只进行工作机的分配,并不负责任务的分发和结果的回收。 例如j a v a l i n 中,客户机向服务器提交的并不是真正的任务,而是任务的u r l 。 服务器分配给工作机某个任务的u r l 后,工作机联系任务所在的h t t p 服务器 ( 可能就是客户机) 进行通信:下载任务,并返回结果;j a v m i u j o p i 作机和客户 机都在服务器上注册,服务器将满足条件的工作机分配给对应的客户机,随后任 务的传输和结果的返回都是客户机和工作机直接通信完成的。 这种方式的优点是,客户机与服务器的通信量较小,客户机可以直接获得结 果;但是它存在着明显的缺点;对应用程序员来说,他需要关心与工作机的通信、 结果的验证等,整个应用的并行执行失去了透明性。 方式二:客户机通过访问服务器的w e b 页面来提交实际的任务。通常是提 交请求资源的表格,上传任务的软件包,表格中需要指明任务的相关信息。提交 问题后,客户机由一个监听线程等待服务器程序输出信息,或者通过w e b 页面 下载到本地,或者由服务器以o m a i l 的形式将结果返回给客户。 这种方式克服了第一种方式的缺点,应用的更为广泛,p a r a w e b 、j m e l z s ! 、 j a v am a r k

温馨提示

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

评论

0/150

提交评论