(电路与系统专业论文)分布计算协作模型与任务调度算法的研究.pdf_第1页
(电路与系统专业论文)分布计算协作模型与任务调度算法的研究.pdf_第2页
(电路与系统专业论文)分布计算协作模型与任务调度算法的研究.pdf_第3页
(电路与系统专业论文)分布计算协作模型与任务调度算法的研究.pdf_第4页
(电路与系统专业论文)分布计算协作模型与任务调度算法的研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(电路与系统专业论文)分布计算协作模型与任务调度算法的研究.pdf.pdf 免费下载

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

文档简介

北京交通大学硕士学位论文摘要 摘要 在信息处理飞速发展的今天,分布计算的重要性日益提高,应用领域不 断拓宽,提高分布式计算的性能是当前分布计算领域重要的研究课题。本文 对分布计算技术及算法进行了深入研究,并在以下方面取得研究成果。 1 在研究当前主要分布式计算技术的基础上,提出了利用e j b 和c o r b a 相结合以实现分布式计算的模型,该协作模型具有跨平台、跨语言的优势, 使用任何语言( 0 m gd l 映射的) 编写的c o 耻i a 客户端都可以调用e j b , c 0 鼬波的互操作性与e j b 的可移植性将使分布计算技术达到新的高度。 2 在研究“均衡适度”分布调度算法思想的基础上,提出了“双向动 态”的任务调度算法。通过理论分析和软件实现,证明此算法减小了系统的 滞空时间,提高了整个系统的执行效率,解决了因任务分配不当引起的死锁 问题。此外,本文中提出的滞空时间对分布计算系统效率的研究有一定的参 考意义。 【关键字】 分布计算;c o r b a ;e j b :任务调度;滞空时间;双向动态 融f a d 北京交通天学硕士学位论文 矗b 8 t r a c t w i 壤t h ed e v e l o p m e n to ft h ei n f 0 瑚a t i a t lp f o c c s s 细m o r ea n dm o f c 磷e n 蛀o ni s 涎i 叠gp a 瓣玲莲主s 曩秘撼dc o | n p 珏掂量主糯魏i sas i 咎i 董 翎l 童黼巧e d 埝 i m p m v ep c r f o 咖a l l c c0 fd i s t r i b u t c dc o m p u t a t i o n i nt l l i st h c s i s ,s o m eo fk c yt e c h n o l 0 舀e sa n dt a s ks c h e d u l i n g 她驴r j t hi n d i s l f 西u | e d 翔印t a 鞋溅a f ei n v e s 蛀翳l 挺,强e 珏遮黻精 i 。v 锄躔耄s 羽- co 哦洳e da s 南l l o w s 1 1 1 l ek e yt e c h n o l 0 舀e sa r ea n a l y z e df 龉p 。c l i v e l y d i s 胁u t e dc o m p u t i l l g s y s l e mb a s c d 衄e j b ,c o r & 气i sp f o p 黼e d l a n g l 壕g ej n d e p e n d e n a n dp l a t f o 蚋 i 蠹d 锋鞠d e 撑ea 托i | sg f e 敷a 蠢v 强| a g e 。c o n 驺唾虢b | | y ,蕊莲曲轴镧o o 掰弦掘鞋。珏w i l l b cb f o u 蚺tt op i o m i n e n c cb a s e d 蚰c o i n b i n a t i 彻o f 料ba n dc o r b a 2 1 n h ee q u i l i b r i u m m o d e r a t i o na l g o r i t h mi sa n a l y z e d ,ab i - d i r e c t i o n a l d y 珏a m et a s k 幽e d u l 赫g 耀e 氆o di sp 筘s e d + 毓棚j n gl ot h e o f ya 珏a l y s i s 臻d s i m h l a 重i o n ,疆eh n g i m ei s 捌u c e d ,m es y s t e me 灏c i c n c yi si m p r o v e da n dt h e p m b l e mo fd e a dl o c kb r o u g i i tb yi m p r o p e r t a s ks d l e d u l j n gi sr e s o l v c d t h eh 锄g t i m ep f o p o s c di nt h i sl h c s i sh a sg r e a l 唾叫巍黼c ei ns t l i d yo 艏c i c yo f d 主s 翻b 醢耗畦凇p 鞋l 弧gs y s 把珏薹, f l ( e yw b r d s 】 d i s t 哟娃翘m p u | a l i ,r b a ,嚣b ,t a s 耘s c h e d 珏酗鐾,h 矗n gt i m c b i * d i r c c t i o n a ld y n a m i c 2 北京交通大学硕士学位论文 第一嫩绪论 1 。 课题研究骛景 第一章绪论 人类未来的科学,时时剡刻离不开计算。分布式计算砖提高计算性能的 重要途径,也是当今计算机技术发展的主要方向之一。分帮计算研究的主要 羹瀚蹩惩决谗多豢丈魏薅学工纛谤算趣题,熬空气污染,瀵铸工程,邀予巍 务,神经网络等等。分布计算技术i l j 的发展,使得大型科学与工程计算,特 别鼹商维复杂问麒的计算成为可能,使得国防科技和国民缀济建设的许多领 域墨分布诗算的续合更紧密。 当前主流的分布式计算模型包括o m g 德织魏公共辩象请求代理体系结 构( c o r b a ) 、s u n 公司的企业级j a v a b e 删鼬和m i c m s o f t 公司的分布式 组件对象模型( d c o m ) 。分布对象技术重点怒解决异构环域下的互操作憔, 其核心表容在于麓蒙之闼瓣蔓撵 挈毪,竞箕怒舅捧蓼凌之瓣戆互攥露。赞瓣 目前的分布计算技术缺乏协耐工作的情况,本文提出了掰b 1 2 j 和c 0 r b a l 3 】 结合嶷现分布计算的模型,c o r b a 的互操作性与日b 的可移植性将使分稚 计算技术达至g 新的离度。 程务调度雾浚群瓷决定分帮计算系统慈体性麓静至关蘸要的霞素之一。 任务调度的目的是减少并行任务阅的通信开销和等待时间,改善负荷的均德 性,提高实时任务的响应速度和系统效率。为获得最优的任务调度方案,人 强程不凝遗探索,融形藏了一麓蠢我表瞧戆舞滚。本文在“鹭餐一逶发”分 布调魔算法i 5 j 思想的基础上,提出了“双向动态”的调度算法。在任务执行 的过程中当某一服务机存在滞空时间时发挥服务机的“主观能动性”采用双 向动态算法重新诚度任务。这不假减少了滞空时闽,提高了熬令系统灼效率, 还鼹掰任务分鸯不当弓| 起兹瑟镁瓣题有援大的意义。 第一章绪论 北京交通大学硕士学位论文 1 2 论文主要内容 论文首先讨论了分布计算技术及任务调度算法的发展趋势,论文的重点 将集中于分布计算系统的模型和调度算法的研究。提出了改进的模型和算 法,还开发了任务调度算法的仿真程序,取得了较好的结果。 论文共分七部分: 第一章:简要介绍课题背景,本文所作的工作和章节安排; 第二章:介绍分布计算技术及其模型; 第三章:提出基于e j b ,c 0 r b a 的模型设计与实现; 第四章:介绍调度问题的发展历程和研究现状及动态任务调度策略; 第五章:提出双向动态任务调度算法,并避行仿真。 结束语:对全文进行了总结,并对未来的发展进行了展望。 1 3 论文的主要工作 本文研究工作是基于导师的校级基金项目之上进行的研究。在该项目 作者主要负责完成如下的研发工作: 对当前比较流行的分布计算系统模型c 0 r i j a 和e j b 进行学习与研 参考已有模型,分析并提出了改进的模型框架 对当前主要的任务调度算法进行学习与研究; 对已有算法进行改进,提出改进算法; 设计仿真程序,并进行实现; 参与其他相关技术的讨论。 4 中l究互1龟i丘 北京交通大学碗士学位论文 第二章分布计算技术及模型 第二章分布计算技术及模型 随着网络技术的广泛运用,将应用扩展到局域网、广域网甚至i m e m e t 上已成为用户的普遍需求。这样,分布对象计算成了新的热点。分布对象技 术为h t e m e t 应用软件的设计开发提供了结构框架和模式,满足了i n t e m e t 发展的需要,也是未来软件开发的主流技术。 2 1 分布计算技术的发展及分类 2 1 1 分布计算技术的发展 分布计算( d i s t f i b u t e dc o m p u t i n g ) 是近2 0 年来影响计算技术发展的最 活跃园素之,它的发展经历了两种不同的技术路线州。 第一种是理想的技术路线,试图在互连的计算机硬件上部署伞新的分布 式操作系统,全面管理系统中各自独立的计算机,呈现给用户单一的系统视 图。在8 0 年代,学术界普遍追求这一目标,尽管产生了许多技术成果和实 验系统,但却没有被用户和市场接受。 第二种是现实的技术路线,即在阿络计算平台上部署分布计算环境( 也 称为中闻件) ,提供开发工具和公共服务,支持分布式应用,实现资源共享 和协同工作。9 0 年代,工业界普遍遵循这一技术路线,产生了一系列行之有 效的技术和广为用户接受的产品。 当前人们所说的分布计算技术是指在网络计算平台二开发、部署、管理 和维护以资源共享和协同工作为主要应用目标的分布式应用系统。从8 0 年 代中期开始至今,分布计算技术已经走过了第一代,目前正处于第二代的成 熟期,并且_ 丌始孕育第三代( 见表2 1 ) 。 熟期,并且开始孕育第三代( 见表2 1 ) 。 第二章分布计算技术及模型 北京交通大学硕士学位论文 表2 1 分布计算技术的发展阶段 第一代第二代第三代 ( 8 0 年代中一9 0 年代初)( 9 0 年代)( 本世纪初) 面向的信息共享异构环境下的智能化的 主要问题应用互操作协同j 二作 体系结构经典的客户朋r 务器面向对象的多层自主的多 计算模型客户,服务器模型 a g e n t 模型 关键技术延用传统的计算概念将面向对象技术 面向a g e n t 的拟 的特点和设施 戍用t - 分布计算人化的交互环境 成果能够提供丰富的分布式已经成为建立集概念验证系统令 系统服务、良好的分布式成构架和软构件人鼓舞,尚未达到 系统管理和典型的分布标准的核心技术广泛应用于协同 式系统应用 工作的成熟程度 8 0 年代中后期,以支持信息共享的应用需求为核心,形成了面向过程的 第一代分布计算技术。在第一代分布计算技术的推动下,9 0 年代初出现了从 集中计算模式向分布式客户服务器计算模式转移的热潮。在分布式客户,服 务器计算机系统的建立及其应用系统的开发过程中,人们逐渐体会到分布式 系统比想象的要复杂得多,例如异构环境下的应用互操作问题、系统管理问 题、系统安全问题等等,这些问题在集中计算模式下是不曾出现的或不突出 的。传统的面向过程的技术在开发大型软件系统时已经暴露出很大的局限 性,在应付复杂的分布式应用系统时更加力不从心。人们自然想到了在8 0 年代软件领域大放异彩的面向对象( 0 b i e c to r i e n t e d ,o o ) 技术。 9 0 年代初,以面向对象技术为主要特征的第二代分布计算技术开始孕 育,经过5 年多的蓬勃发展,进入了成熟时期。人们也将这一代技术称为分 布对象技术。 6 北京交潦大学硕士学能论文第= 章分布计算技术及模型 2 1 2 分布计算技术的分类 巍蔫圭滚豹分毒诗算技术,主要裔o 醚g 豹c o 袋巍、s 豫瓣翔暑帮 m i c m s o f t 的d c o m 。它们都是支持服务器端中问件技术开发的平台,但都有 其各国蛇特点,将分别阐述如下【”。 o 矾g 鹃c o r 8 a r b a 以o r b ( 0 b j e c tr e q u e s tb m k e r ,对象请求代理) 为基础,定义了 一秘与程序设诗谖言无关靛分毒对象诗霎模型秘搀磐攘熬,霉l 蔓程器稳平台 间实现对象互操作,能实现真正的跨平台。它采用连接式基础对象模型,此 外还提供了分布和组装构件的方法,因此也可以看作是一种构件集成模型, c 0 r 彗a 戆较镣爨舂蘸姆辩扩震经、开藏毪、继承往、移蘧毪帮复蠲经。程 安全蚀上,c o r b a 提供了验证、安全审计等多种机制,为网络安全提供了 充分的傈障。 d c o m d c o m 【8 嚏以m i c m s o f t 和d c e 为主提出的分布对象计算模型,它源于 动态数提交换f d 静,c 0 馘是它敬慕霭l l 。毽它毒一令致念豹弱点羧是磁 的跨平台性较豢,如何实现与第三方厂商的互操作性始终是它的一大问题。 e j b 掰雎n l e f 瞬s ej 毫v a 歉翮是j 馥v a 藤务器端穗锌貘蘩。穆终模黧逶常寄 客户端构件和服务器端构件构件。客户端构件模型j a v a b c 粕专门用于处理程 序的袭示及用户器露的问题。服务器端梅件模溅玎b ,撼构件模型的开发秘 中闻释联系起来,谣向事务处理的中耨件提供基础设施。 相关性比较分析 钤对上述的务秘分毒诗葵蔹术,本文簌滋下三令方溪遽厅努辨1 1 0 l : 集成性:集成性主要反映在基础平台对应用程序互操作能力的支持上。 它要求分布在不同机器平螽和操作系统上、采用不同的语言或者开发工具生 残翡餐类蠢盈瘦麓登矮爨戒在一怒,褐戒一个统一静套夔诗算疆粱。这 集成框架必须建立在网络的基础之上,并且具备对于遗留应用的集成能力; 可用性:要求所采用的软 牛构件技术必须怒成熟的投术,媚应的产晶也 必须怒成熟的产晶,在至关蓬要的企渡应用中能够稳定、安全、可靠地运行。 7 第二章分布计算技术及模型 北京交通大学硕士学位论文 另外,由于数据库在企业计算中扮演着重要角色,软件构件技术应能与数据 库技术紧密集成; 可扩展性:集成框架必须是可扩展的,能够协调不同的设计模式和实现 策略,可以根据企业计算的需求进行裁剪,并能迅速反应市场的变化和技术 的发展趋势。 表2 _ 2 分布计算平台比较 c o r b a ( c c m )e j bd c 0 m 集成性 跨语言性能好差( 限于j a v a )好 跨平台性能好好差( 限于w i n d o w s ) 网络通讯好好一般 公共服务构件好好一般 可用性 事务处理 好 一般 一般 消息服务一般一般一般 安全服务好好一般 目录服务 好 一般一般 容错性一般一般一般 软件开发商支持度 一般好好 产品成熟度一般一般好 可扩展性好好一般 表2 2 从集成性,可用性,可扩展性三个方面,给出了上述三种主流分 布计算平台的比较结果。 8 北京交通大学硕士学位论文第二章分布计算技术及模型 2 2 分布计算技术的介绍 c o r b a 是在当今软件与硬件资源快速发展的情况下出现的一种新的基 于总线的系统模型。它可以让分布的应用程序完成通信,无论这种应用程序 是什么厂商生产的,只要符合c 0 r b a 标准就可以通信。c o r b a l 1 于1 9 9 1 年由o m g 提出,同时还提出了接口定义语言i d l 以及能够让客户服务器对 象在特定的o r b 实现中进行通信。而1 9 9 4 年提出并被采纳的c o r b a2 0 标准才真正实现了不同生产厂商间的互操作性。同时,分布对象计算技术的 不断发展与相关技术的发展密不可分的。对象技术的发展和成熟给分布对象 计算带来了新的发展方向。在最新的c o r b a3 o 规范中还引入了许多新技 术,使c o r b a 的功能得到了进一步扩展,也使c o r b a 更易使用。c o r b a 3 o 的改进包括3 各方面,i n t e m e t 的集成,服务质量控制m o s ) 和c o r b a 组 件结构。目前还没有符合c o r b a3 0 规范的产品,但设计人员在设计过程 中应参考这些新特征,便于将来扩展应用这些新的特点,得到更好的系统性 能。 1 o m a 的参考模型结构 c o 艇埴是o m g 在其对象管理结构0 m “n l ( o b j e c tm a n a g e a r c h i t e c t i l f e ) 之下以请求代理o r b 为核心制定的分布对象计算处理标准。 o m a 参考模型由五个部分组成【1 2 l 。如下图2 k 图2 1 0 m a 参考模型结构 ( 1 ) 对象请求代理o r b :商业上称c o r b a 是构筑分布对象应用在不同 第_ :_ 二章分布计算技术及横型北京交通大学硕士学位论文 层次异构环境下互操作的繁础。0 r b 使对象在分布式环境中透明地接收请求 并返霞穗惑,o r b 是这令标准逶绩瓣心艟。 ( 2 ) 对蓉服务:是由许多分布斌对象程序使用的独立于领域的接口或基 本a 受务集合,懿鑫令骚务、事舞鼹务等,这嫠爨转挺准纯霹蒙瓣生念周鬟管 理f 1 3 1 。 f 3 应用接日:表示基于缒馋的应用挟嚣鼹户数特殊任务。 ( 4 ) 领域接口:为使用领域服务所提供的接口。 ( 5 ) 公筵设旌:向终端用户提供一组共享应用服务接网,也彀括遥避 i n 憾m e t 使用的公共设计。 对分布式集成体系结构c 0 r b a 可理勰为“软传总线”绐构,蔡核心是 基于代理静服务请求代理r a ( r c q u e s t a g c n t ) 机铡,各类服务代理s a ( s e r v e f a g e n t ) 可作为软部件挂结襁软总线上,面客户应用程序则通过本地r a 访阍 异魄s a ,致a 的作爝就是屏蔽服务鹃分布彝缝性,使用户感觉不到其中的差 异。分布式对象和s a 的物理位置可随时改变,不影响向客户机提供服务。 2 o r b 结构 c o r b a 定义了对象之f 白j 通过o r b 1 4 】透明地发遴请求接收响应的机制, 豫诞在分_ 蠢器稳嚣浚下霹象之翔静嚣操作毪。箕中,涨b 是c o r b a 豹孩心, 其结构如下图2 2 所示: 客户对蒙实现 ll ;lll 魂恋l d lo 襄bl d l 动态对象 调用 襻掇撸口 框絮 椴槊适配 接口接口 器 d l l1 _ ) 辫 。冀转接心 图2 - 2 0 r b 结构 上圈登示静蹩一个独立豹对象请求代壤( 0 r b ) 的结梅。0 r b 豹接强 北京交通大学硕士学位论文第二章分布计算技术及模型 是灰色的矩形。箭头说明0 r b 的调用关系。 为了提出一个请求,客户端可以使用动态调用接口( d v n 锄i ch w o c a t i o n i m e 舭e ) ( 和目标对象的接口独立) 或者一个o m g 的i d l 占位程序s t u b ( 具体的占位程序依赖于日标对象的接口) 。客户端也可以直接和o r b 在某 些地方交互。 对象的实现通过o m g 的i d l ( i n t e r f a c cd e 血i t i o nl a n g t l a g c ) 产生的静 态骨架或者是一个动态骨架的调用来接受请求。对象的实现可能在处理请求 或其它的时候调用o r b 。 客户端通过访问对象的对象引用和了解对象的类型及要求执行的操作 来发布一个请求。客户调甩占位程序例程来请求或者动态构造请求。无论动 态还是占位程序的接口都可以相同地被实现。接收方不可能知道请求是如何 发布的。o r b 向对象实现定位适当的代码,传递参数,传输控制。这一切都 通过i d l 骨架或者动态骨架,骨架对于不同的接口和对象适配器是不同的。 在执行该请求的时候,对象的实现可能由o r b 通过对象适配器来获得一定 的服务。当请求完成,控制和输出值返回给客户。对象的实现可能会选择使 用的对象适配器。 3 0 m gi d l 在c o r b a 标准中,客户与0 r b 接口对象被称为“接口存根”一l s t u b ; 服务器与o r b 接口对象被称为“接口框架k i d l s k e l e t o l l 。这样,c o r b a 客 户端与c o r b a 对象实现之间至少被3 组对象阻隔:接口存根、o r b 、接口 框架。这种隔离为软件的集成带来了巨大的灵活性,但同时需要c o r b a 客 户对象、接口存根、0 r b 、接口框架、c o r b a 对象实现各个部分能够相互 理解各自的数据、结构和行为。这一要求可以通过接口技术以及c 0 船狐接 口定义语一o m gi d l 【”】来实现。 o m gi d l 不是编程语言,不能用来编写具体的操作算法。但是它可以 用来定义对象能够进行的所有操作,包括全部输入、输出参数以及返回结果; 甚至连可能产生的操作错误也不例外。 用o m gi d l 定义对象就得到了c o r b a 接口。对于c o r b a 客户,这 个接口意味着一种承诺:如果客户向o r b 发出符合接口规定的请求,就一 定会得到响应( 出错、返回结果都是一种响应) ;对于c o r b a 对象实现, 第二章分布计算技术及模型 北京交通大学硕士学位论文 这个接口意味着一种义务:软件开发人员实现接口规定的方法。 在这两种情况下,都需要o m g l 能够和用户采用的具体编程语言建 立映射关系。原因非常明显:在客户端,用户需要从具体编程语言中按照接 口规定激发相应的对象实现。在对象实现端,0 r b 应该能够根据接口规定激 发软件开发人员采用具体编程语言编写的对象方法实现,综合起来考虑,就 是“每一个o m gi d l 句法都应该在具体的c o r b a 编程语言中找到一个对 应”。当然,具体编程语言中可以包含不为o m gm l 所支持、理解的句法。 0 m gi d l 通过描述对象的接口来定义对象类型,接口包括一些被命名 的操作以及这些操作所需要的参数。尽管接口定义语言提供了相关的概念框 架来描述那些由0 r b 所控制的对象,但是o r b 的正常工作不需要接口定义 语言的源代码,只要等效的信息可以从根程序倒程或运行时从接口库或得, o r b 就可以正常工作。 利用i d l ,一个特定的对象实现可以向其潜在的客户描述本身可提供的 操作,以及如何调用这些操作。根据i d l 定义,可将c o r b a 对象映射为特 定的编程语言或对象系统。i d l 保持了c o r b a 的商业中立性和语言中立性, 作为一个中介存在于像c + + c 0 r b a 服务器代码和j a v ac o r b a 客户机这样 的实体中间。 4 静态c o r b a 和动态c o 耻渔 c o r b a 为其服务提供静态和动态两种应用编程接口。客户接口定义语言 存根( s t u b ) 向对象服务提供静态接口,这些预编译的存根定义了客户如何 调用服务器上的相应服务。从客户的角度看,这个存根的作用就像是本地调 用一即远程服务器对象的一个本地代理( p m x v ) 。这些服务用接口定义语言 定义,客户和服务器的存根都由接口定义语言编译程序产生。一个客户必须 为他使用的每个服务器接口都准备一个接口定义语言存根,存根包含了用于 编组的代码。这就是说,存根可以将操作及其参数编码或者解码成可传送到 服务器的具体消息格式。c o r b a 静态调用步骤如下: ( 1 ) 接口定义语言定义对象类。接口定义语占定义了对象的类型、对象 的属性、对象输出的方法以及方法的参数。 ( 2 ) 通过语言预编译程序运行接口定义语占文件。典型的c 0 r b a 兼容 预编译程序可处理接口定义语言文件,为实现服务器类产生语言框架 北京交避太学硬士学位论文第二章分布计算技术疆模型 ( s k e l 娥o n ) 。 m 为生成的框架提供实现方法的代码。 ( 4 ) 编译代码,产生三类输出文件:a :) 向接口存储库描述对象的输入 文件;b :) l d l 定义的方法的客户存根一需要遇过o r b 静态访问l d l 定义 豹摄磐豹客户程痔涛调蠲这些存鬏;c :) 在服务器上调曩这些方法熬暇务器 框檠( s 藏e l e | c i n ) 氇馥擞j :调角接西。 ( 5 ) 将类定义与接口存储库联编。 f 6 ) 向实现存储库注册对象,对象适配器在实现存储库里记录对象标记 以及在服务器上实例化的对象类型。实现存储库还知道那一些对羧炎在某个 特定服务器上霉到了支持。对象i 毒求中介利用遮个信息去查找巢令特定服务 器上瓣溪动霹象或者谚求激滔鼹蒙。 f 秘在服务器上实例伲对象。在启动时,服务器对象适配嚣可融将为远 程客户端方法调用服务的服务器对象实例化。 弱一种无存根运行时的联编方法一c o r b a 动态调用接口( d 1 i ) 。 c o r b a 动态调用接口可以使客户可在运行时挑选目标对象,然斌动态调用 它匏方法。客户戆嚣蠲经鼹避蒙主懿 壬薅搡掺,不必羲缡译存壤。程动态谲 用菜个瓣象上的方法之篱,必须找到这个对象,获得其标记,一照鸯了对象 标波,就可以用它检索对象的接口并动态构建请求。必须在请求中规定要执 行的方法以及参数,通过从接口存储库里获得这个消息。动态调用的大致步 骤如下: f 1 ) 获褥菝霹名字。c o 黼 a 对象是塞省豹,它襄娆提供稳警多鸯关蠡 _ 蠢靛繁感。霞照,它翻碍淤遗过g e l 证耙豳e e ( ) 方法自这个对象询阔其接 口的名字,这个调用将返阐一个描述该接口的对象。 ( 2 1 从接口存储库获得方法的描述。可以把刚才返回的接口对缘用作实 现接口存储库导航的进入点。客户可以发出一个l o o kn a m e ( ) 方法去寻找 毽想调粥豹方法,然后嚣发漤一个d e s c 矗堍( ) 去获得这个方法垂穹全都国l 定义。 ( 3 ) 饿建交元列表,c o r 气规定了一个融定义的数据结构默传递参数, 这叫作命名数值列表。用户w 以使用n v l i s t 准对象实现这个列表,避过调 用c r e a t cl i s t ( ) 方法创建该列表,且有很多a d di t e m ( ) 调用,它要将每 第二章分布计算技术及模型北京交通大学硕士学位论文 个变元增加到列表上。 f 创建请求。请求是一个包含方法名,变元列表和返回值的c o r b a 准对象。可以通过调用c r e a t er e q 眦s t ( ) 方法来创建请求。必须将要调用的 方法名、n j s t 准对象和返回值指针传递给这个方法。 ( 5 ) 调用远程方法。 对于c o r b a 对象请求中介的静态和动态调用,客户通过访问对象标记 ( o b j 。c ti d ) 和调用执行这个服务的方法来发出请求。请求服务器不能区分 静态和动态的调用,对象实现,对象适配器以及用来访问这个实现的对象请 求中介对静态和动态客户是完全透明的。 5 c o r b a 调用的流程 编写一个c o r b a 客户端的一般流程如下1 1 6 l : ( 1 1 用i d l 描述接口。 ( 2 ) 根据需要,用合适的i d l 编译工具编译接口文件,得到客户端和服 务器方的若干通信辅助类,用于客户端一方的叫做s t u b ,用户服务器方的 s k e l e t o n 。 ( 3 ) 编写服务器方代码,然后编译、运行服务器。 ( 4 ) 编译客户端代码,然后编译,运行客户端。 2 2 2e j b 原理 为了推动基于j a v a 的服务器端应用开发,s 岫在1 9 9 9 年底推出了j a v a 2 技术及相关的j 2 e e l l 。7 j 规范,j 2 e e 的目标是:提供平台无关的、可移植的、 支持并发访问和安全的,完全基于j a v a 的开发服务器端中间件的标准。日b 【1 8 l 是s u n 推出的基于j a v a 的服务器端构件规范j 2 e e 的一部分,自从j 2 e e 推 出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。 1 e j b 技术简介 e j b 技术是在j a v ab e a i l 本地构件基础上,发展的面向服务器端分布应 用构件技术。它基于j a v a 语言,给出了系统的服务器端分布构件规范。e j b 技术的推出,使得用j a v a 基于构件方法开发服务器端分布式应用成为可能。 从企业应用多层结构的角度,目b 是业务逻辑层的中间件技术,与j a v a b e a n s 1 4 北京交通大学硕士学位论文第= 章分布计算技术及模型 不同,它提供了事务处瑾的能力,自从三层结构提出以蕊,中间艨,也就是 业务逻辑层,是处理事务的核心,从数据存储层分离,取代了存储层的大部 分遮佼。簸分蠢式诗算数角度,醛b 橡c o r 翳a 一嚣,掇供了分鑫式按零戆 基础,提供了对象之间的蠛讯手段。 e j b 简化了分布式对簸的开发、部署和访闯,醪b 分布式对象的开发人 员最瓣依照臻转豹蕊范帮协议实瑷辩象。支持糙b 靛应翅服务器可以霞瘸强 何分布式网络协议,包括本地j a v ar m i 协议、专有协议戚c o r b a 的网络 搬议 软件的黧用性:缎件技术的廒用将降低系统开发时闻,减少开发难 麦。 ( 4 ) 企业资源的节约:开发全新系统时,由于日b 明确了开发糟的角色, 通过缎传复用按术,可以缨短秀发避摆,如此也辘节省了不必要躬姿源浪费; 遗留系统要移植刘全新框絮下时,掰b 这种属于组件框浆的最大好处就在于 可以不用重写代码,利用包装的技术将现有的遗留系统包装起来,通过e j b 提供拣准戆器嚣可送一步每羁趸黔燕范瑟开发戆瑟系绫整合,势链逶过 e j b 分散式的特髅而与i n 把m e t 相结合,这样就节约了大缀的资金和人力。 2 e j b 特性 掰b 其有戳下关键穗褴; 第二章静布计算技术及模溅 北京交通太学硕士学位论文 ( 1 ) 为定义服务器端组件提供了一个模型。 国隽定义谤趣凌缮箨瑟爨供豹羧务熬分蠢式客户接戮定义了一令模 型。 ( 3 ) 为允许容器创建、撤销、分配、持续与激活组件实例提供了标准的 搡作与谬义。 ( 4 ) 为定义组锌提供了一个拣雅酶攘型,舔这个组释可氍由客户来维护 由容器进行会话管理处理的会话。 ( 5 ) 为定义组件提供了一个标准的模型,丽这个组件能够封装数据源 矮,势慧绦透峦褰器楚瑾麸怼象裂荚系鼗蠢懿浚磐。 ( 6 ) 为定义独立予实现的组件的配置特性与部署特性定义了一个标准。 为声明性地定义组件的安众性属性提供了一个标准的模型。 ( 8 ) 魏声明性地定义组l 牛的事务属性提供了一个标准的模型。 ( 9 ) 箍供了一个梅准豹组俘按鞭汝议,健褥缎件麓够在任何实现了标壤 接口协议的兼容供应商容器服务器上运行。 3 e j b 体系结构 转钵系结橡1 1 粥中懿客户壤毯岔毒淫霆搿转土特定蓝努方法瑟嚣戆掰辩 接口,阍时也包含有服务器端处理时象的管理旬牺。在日b 体系结构的服务 器端则包禽有实际e j b 组件实现的窝例,同时述镪含了用来将调用在客户与 b ( 程进行适当的服务器管理底髅架拇逻辑缝避之后) 之闻德行映射的嚣 器代筠。瑟蓠,r m l 遁程凌强语义憝在籀应懿臻翻中隐含实现翡,因蓝应该 打开r m w r m p 与r m i - t o c o r b a l d l 映射方法作为接口机制。 蔓三 一一 r 旨一,。 鹭2 t 3 瓣8 体系结构 北京交通大学硕士学位论文第二章分布计算技术及模型 图2 3 描述了基于e j b 的客户朋艮务器企业应用程序的体系结构。 该图所描述的e j b 体系结构中的特定应用程序元素的主要元素如下: ( 1 1e j b 客户:e j b 客户应用程序将使用j n d i 来查找对本地接口的引用, 并且使用本地e j b 接口与远程e j b 接口来充分利用所有基于日b 的功能。 ( 2 ) e j b 本地接口( 与存根) :e j b 本地接口为客户创建、删除与查找e j b 远程接口对象的句柄提供了相应的操作。底层存根整理本地接口请求并且不 再为客户编排对本地接口的响应。 ( 3 ) e j b 远程接口( 与存根) :e j b 远程接口为特定的e j b 提供了特定的 业务接口方法。相应的存根编码远程接口请求且不再为客户编码对远程接口 的嗨应。 ( 4 ) e j b 实现:勘b 实现是由开发者所实现的实际h b 应用程序组件, 用来提供任何特定应用程序业务方法的激发创建、删除、查找、激活、钝化、 数据库存储与数据库加载逻辑。 ( 5 ) 容器目b 实现( 骨架与代理) :容器可以管理分布式通信骨架,这种 骨架用来对与客户之间所传输的数据进行编码与解码。 4 e j b 的文件组成 e j b 是一种软件组件,从编程角度而言,其体现就是由若干个文件组成 【删。 ( 1 ) b e a n 类文件:e j b 类只是一个j a v a 类,具体编写该e j b 的各个方法 是如何实现的。 ( 2 ) 远程接口( r e m o t ei n t e r f a c e ) 文件:b e a l l 的客户对脚b 对象进行方 法调用,而不是b e a n 本身。所以e j b 对象必须复制b e a 类公开的每个商务 方法。至于应该复制哪些方法,就由b e a n 的编程人员编写一个远程接口, 这个接口复制对应的b e a n 类公开的所有商务方法。 ( 3 ) h o m e 接口文件:由于e j b 对象可能存在于和客户端所不同的机器 上,所以,客户端无法直接生成e j b 对象的实例;而且,e j b 倡导位置透明, 因此客户端从不清楚e j b 对象驻留在何处。客户端利用h o m e 对象获得e j b 对象的引用。它的主要职责是生成e j b 对象、查找现存的b 对象( 对实体 b e a n 而言) 、删除e j b 对象。生成h o m e 对象之后,目b 容器必须知道如何 对e j b 对象初始化,这就要通过h o m e 接口来实现。h o m e 接口仅仅定义了 第二章分布计算技术及模型北京变通大学硕士学位论文 生成、回收、查找e j b 对象方法,具体则由e j b 容器的h ( 皿e 对象来实现。 过程如图2 _ 4 所示: 幽2 - 4h o m 对象和h 0 m 接口 从上图可以看出,客户端通过e j b 的h o m e 接口创建h o m e 对象,h o m e 对象负责生成e j b 对象,然后客户端就可以通过m b 对象的远程接口来调用 该e j b 的各个商务方法。 5 e j b 的类型 在e j b 2 o 中定义了3 种不同的企业级b c 蛐【1 8 l : ( 1 ) 会话b e a n ( s e s s i o nb e 姐) :会话b c 柚模拟商务会话过程,它们执 行某种动作过程。比如算术运算、访问数据库或调用其他勘b 。会话b e a l l 分为有状态( s t a t e 向1 ) 会话b c a n 和无状态( s t a t c l e s s ) 会话b e 柚两种。 ( 2 ) 实体b e a n ( e n t i t yb e a i i ) :实体b e a n 表示持久数据的对象视图,如 数据库中的数据记录。实体b e a 拥有一个主键,作为唯一的标识符。 ( 3 ) 消息驱动b e a n :和会话b e a n 类似,消息驱动b e a i i 也代表动作。二 者不同之处在于我们只能通过向消息驱动b e a n 发送消息才能调用它。 6 叮b 平台下的应用开发流程 开发e j b 应用的典型流程如下【2 1 】: ( 1 ) 编写e j b 服务器端组件和s e r v l e t 组件。 ( 2 ) 在应用服务器上部署这些组件。 ( 3 ) 编写日b 客户端,一般客户端和w e b 客户端。 北京交通大学硕士学位论文 第二章分布计算技术及模型 ( 4 ) 编译运行客户端。 虽然c o r b a ,d c o m 和h b 因为形成的历史背景和商业背景有所不同, 各自有自己的特点,其实在它们之间也有很大的相通性和互补性。e j b 提供 了一个概念清晰、结构紧凑的分布计算模型和构件互操作的方法,为构件应 用开发提供了相当的灵活性。但由于它还处于发展初期,因此其形态很难界 定。c o r b a 是一种集成技术,而不是编程技术。它提供了对各种功能模块 进行构件化处理并将它们捆绑在一起的粘合剂。e j b 和c o r b a 在很大的程 度是可以看作为互补的。c o r b a 不只是对象请求代理o r b ,也是一个非常 完整的分布式对象平台。c o r b a 可以扩展e j b 在网络、语言、组件边界、 操作系统中的各种应用。同e j b 和c o r i 埴之间相互之间方便的互操作性相 比,d 0 c m 和c o r b a 之间的互操作性要相对复杂些,因为商业利益的原因, 在e j b 和d c o m 之间基本没有提供互操作方法。 1 9 第三黎嫠于鄯黝嗽攘羹程谤奄安筏 京交遥大学壤学链论文 第三章基于e j b c 0 舳a 模型设计与实现 3 蒸于e j 8 舳黼模型薛硒究 c o r b a 允许掰b 应用程序同现存的c o r b a 应用程序通信,同时与非 j a v a 语言( 如c + + ) 开发的现有系统相结合i 捌。事实上,c o r b a 和掰b 有 着缀密切鲢关系1 2 e e 警台企韭版中的谗多概念都是来色予c o r b a 豹。 在蘩耱塞爻上,霹鞋怒掰b 看捧蹩一个繁鸯凝怒色夔c ( ) 整浚。掰b 褒1 2 嚣e 带来了一个以j a v a 为中心、基于组俘的传统中黼件的设计方法一个为快 速开发应用程序而设计的滚容性体系结构。爝方面,c o i 己b a 提供了一系 列应用广泛的中间件特性,包括计时服务、分布式锁服务、关联服务等。同 c o r b a 相比较而言,掰b 的主要优点是其有受广泛的企业支持。 熬上溪说,毯b 采溪鬏m l 实理远程诵建,r m l 是一秘主鬣瓣资议,瘾 层爝j r m p 实现。c o r 敬a 2 o 以后使瑶l 约p 徽通讯协议。鲡采实现邵b 和 c o r b a 的互操作,需要嶷现h b 的应用服务器支持底层的1 i o p 通讯协议, 也就怒使用基于i i o p 的r m i 【2 3 | 。 幽3 1 调用c 0 r b a 对象实现的两种客户端 北京交通大学硕士学位论文 第三章基于e j b ,c 0 r b a 模型设计与实现 图3 之调用砌讧l 远程对象的两种客尸端 图3 1 是调用c o r 队对象实现的两种调用方式,图3 2 是调用e j b 远 程对象的两种方式。 如图3 1 所示,任何语言编写的c o r b a 客户端可以通过c 0 r b a 根程 序和c o r b a 对象的框架程序,和各自的0 r b 建立联系,从而能够来回穿 越符合i i o p 的网络,完成请求响应。r m i 的客户端,包括一般的j a v a 应用 程序和a p p l c t ,可以通过r m l 的根程序o r b 和c 0 r b a 对象的程序框架, 和各自的o r b 建立联系,从而能够穿越i i o p 网络访问远程的c o r b a 服务。 图3 2 和图3 1 很类似,所不同的只是提供服务的一方变成了r m l 远程 对象,和r m i - l i o p 的程序框架。 因为c o r b a 本就支持j a v a 语言,所以图3 1 所示的功能不难实现。 根据e j b 规范,应用服务器必须透明的实现每个e j b 的两个远程接口, 从而为每个日b 生成两个远程对象;彤b 对象和h o m e 对象。如上图所示, 要想满足如上的互操作功能,需要这两个远程对象能够以i i o p 方式接受客 户端的请求,并把结果以i i o p 方式发送给客户端。 目b 和c o r b a 的结合使c o r b a 客户端能够访问由i d l 定义的范围非常 广+ 泛的h b 对象服务,这使得客户端能够用不同语言编写。因此,本文利用 c o r b a 和e j b 实现分布计算系统的思想,提出了将酣b 技术和c o r b a 分布式 技术相结合来实现分布计算系统,既可以体现出c o r b a 分布式管理的思想 和c o r b a 所提供的各种服务,又可以充分利用h b 在分布计算技术中的优 势。 罄 芦专 割 第三章基于e j b 把0 r 队模型设计与实现 北京交通大学硕士学位论文 3 2 设计目标 要想在j 2 e e 应用服务器中集成c o r b a 功能,完成和c o r b a 的互操作, 需要完成如下工作1 2 4 j : 1 需要启动一些特定的所有h b 共享的c o r b a 服务。 共享的c o r b a 服务提供一些公用的c o r b a 相关的预备操作和共享信 息,包括正确的创建并初始化o r b 实例,i p o a 实例,h o n l e p o a 实例, c 0 r b 气n 锄e s e n r 毗实例,接口库实例等等。0 r b 实例用作1 1 0 p 的通信代理; r o o t p o a 实例用来创建并管理其他子p o a 实侈尊;h o m e p o a 实例用作所有部 署成1 1 0 p 方式的e i b 的h 帆e 对象的适配器;c o l m a n 锄e s e r v i c e 保存彤b 的 h o m e 对象的c 0 r b a 对象引用;接口库实例保存所有b c 柚接口的描述信息, 可以把i i o p 方式传过来的请求必须映射成日b 的远程方法,从而调用目b 实例 来完成。 2 完成面向各个日b 的特定c o i t b a 功能。 包括为每个e j b 动态生成可以接受i i o p 方式请求的h o m e 对象和i i o p 方 式的e j b 对象,用来响应通过o r b 传来的客户端请求。其中h o m e 对象负责对 h b 的h o m e 接口中远程方法的调用;e j b 对象负责对目b 的r e m o t e 接口中远 程方法的调用。为了处理i i o p 方式请求,必须为脚b 的h o m e 对象和e j b 对象 创建适配器一p o a 。创建一个持久型的h o m e p ( 埴,由所有e j b 的h o m e 对象 共享。由于不同类型的u b 对象有不同的生命周期策略,所以必须为每个e j b 创建各自的p o a ,根据具体的e j b 类型决定p o a 的策略是持久型还是短暂型。 由这两个p o a 负责把远程的h o m e 方法或者r e m o t

温馨提示

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

最新文档

评论

0/150

提交评论