




已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)移动agent技术在分布式计算中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 目前,互联网己成为人们发布和获取信息的重要平台,如何有效合理地利 用庞大的网络资源,得到最有效的服务已成为人们关注的焦点。随着网络用户 数和信息量的爆炸性增加,传统的分布式计算技术越来越呈现出效率低的劣势, 因此研究和开发新的、高效的分布式计算模型成为迫切需要。 移动a g e n t 技术是一种新型的分布式计算技术,它是为解决复杂的、动态 的、分布式的智能型应用问题而提出的一种全新的计算手段。移动a g e n t 技术 涉及计算机网络、分布式系统和人工智能等诸多领域,由于其具有移动性、自 主性和协调性等优点,因而具有广阔的应用前景和发展空间。 本文重点研究和探讨如何将移动a g e n t 技术应用于分布式计算中,成功搭 建了分布式计算的平台,并在该平台上进行了初步尝试。本文首先分析比较了 几种传统的分布式计算技术和常见的分布式对象模型,然后介绍了移动a g e n t 的概念、体系结构、计算模式和关键技术及移动a g e n t 的代理平台一一i b m a g l e t 的相关理论,并根据分布式计算的特点提出了一个新的基于移动a g e n t 的分布式计算框架结构,详细阐述了基于移动a g e n t 技术的分布式计算框架的 设计方法和实现的关键技术。最后用高阶矩阵乘法验证了该平台的高效性。 关键词移动a g e n t :a g i e t :a p p i e t ;分布式计算 东北电力大学硕士学位论文 a b s t r a c t t h ei n t e r n e th a sb e c o m ea ni m p o r t a n tp l a t f o r mf o rp e o p l et oi s s u e 酊t ha n dg a i ni n f o r m a t i o n h o wt ou s et h eh u g en e t w o r kr e s o u r c e s e f f e c t i v e l ya n dr e a s o n a b l y ,a n do b t a i nt h em o s te f f e c t i v es e r v i c e sh a s b e c o m et h ef o c u sw h i c hp e o p l ep a ya t t e n t i o nt o :w i t ht h e1 a r g en u m b e r o fu s e r sa n de x p l o s i v ei n f o r m a t i o no nn e t w o r k ,t h et r a d i t i o n a l d i s t r i b u t e dc o m p u t i n gt e c h n o l o g yi sm o r ea n dm o r ei n e f f e c t i v e s oi t b e c o m e st h eu r g e n tn e e dt os t u d ya n dd e v e l o pan e wa n dm o r ee f f e c t i v e d i s t r i b u t e dc o m p u t i n gm o d e l m o b i l ea g e n tt e c h n o l o g yi san e wk i n do fd i s t r i b u t e dc o m p u t i n g i t p r o p o s e san e wm e t h o df o rt h es o l u t i o nw h i c hc o m p l e x 、d y n a m i c 、a n dt h e d i s t r i b u t i o n a li n t e l l i g e n c ea p p l i c a t i o n m o b i l ea g e n ti n v o l v e sm a n y t e c h n o l o g yd o m a i n s ,s u c ha sc o m p u t e rn e t w o r k ,d i s t r i b u t e ds y s t e m sa n d t h ea r t i f i c i a li n t e l l i g e n c eu n d e rt h ei n t e r n e te n v i r o n m e n tf o ri t s c h a r a c t e r i s t i co fm o v i n g ,a u t o n o m ya n dc o i l a b o r a t i o n s oi th a sb r o a d p r o s p e c ta n dd e v e l o p m e n ts p a c ef o ra p p l i c a t i o n t h i st h e s i sm a i n l ye x p l o r e sh o wt oa p p l ym o b i l ea g e n tt od i s t r i b u t e d c o m p u t i n ga r e a ,a n db u i l d sad i s t r i b u t e dc o m p u t i n gp l a t f o r ms u c c e s s f u l l y m e a n w h il ew em a k es o m ee l e m e n t a r ya t t e m p to ni t t h i st h e s i sf i r s t l y a n a l y s i ss e v e r a lt r a d i t i o n a ld i s t r i b u t e dc o m p u t i n gt e c h n o l o g i e sa n dt h e c o m o nm o d e l s ,a n di n t r o d u c e st h er e l a t e dt h e o r yo fm o b i l ea g e n t ,t h e n b u i l d sap l a t f o r mw i t hp r o x yp l a t f o r i i r 一i b ma g l e t ,a n dd e s i g n sap o r t a l f r a m ec o n s t r u c t i o no fd i s t r i b u t e dc o m p u t i n gb a s e do nm o b i l ea g e n t ,a n d i l l u s t r a t e st h em e t h o do fd e s i g na n dt h ei m p l e m e n t a t i o ni nd e t a i l f i n a l l y w eu s eah i g hs t e pm a t r i xm u l t i p l i c a t i o nt oc o n f i r mt h i sp l a t f o r m k e y w o r d s m o b ii ea g e n t :a g l e t ;a p p i e t :d i s t r i b u t e dc o m p u t i n g i i - 论文原创性声明 本人声明,所呈交的学位论文系在导师指导下本人独立完成的研究成果。 文中依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法 律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申 请的论文或成果。 本人如违反上述声明,愿意承担以下责任和后果: 1 交回学校授予的学位证书: 2 学校可在相关媒体上对作者本人的行为进行通报; 3 本人按照学校规定的方式,对因不当取得学位给学校造成的名誉损害, 进行公开道歉; 4 本人负责因论文成果不实产生的法律纠纷。 论文作者签名:壹i 蕉 日期:塑2年土月丑e t 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属学校。 学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。本人 离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时,署名单 位仍然为东北电力大学。 论文作者签名: 导师签名: 第1 章前言 第1 章前言 1 1 课题研究的背景和意义 人工智能和计算机网络的飞速发展,特别是近年来i n t e r n e t 及其相关技 术的普遍应用,为高性能计算提供了必要的方法和手段。在这样的背景下,计 算已经不再像以前那样仅仅局限于网络中的几台服务器上,而是要求所有计算 机都融入到高性能计算这一大环境中来,这就引发了高性能计算新一轮的研究 热潮,其中分布式计算更是研究的热点。 在科学研究中,一直存在大规模高密度的巨型计算,但是巨型机开发困难, 硬件成本昂贵,而且将一些中小规模的计算加载到巨型机上运行,不但巨型机本 身的效能得不到充分的发挥,且对于巨型机上宝贵的计算资源而言,也是一种巨 大浪费;但另一方面,世界上存在着大量的微型计算机和工作站,它们之间用局 域网和广域网连接在一起,构成了一个巨大的计算资源,和巨型机相比,这种资 源廉价。因此利用网络连接的机群系统进行分布式计算,成为业界近十年来研究 的热点。在网络高速发展的今天,各个站点的资源都在不断地变化,即使在小范 围的局域网上,计算机和计算机上的资源也在时刻动态地变化。如要利用这种资 源进行计算,人为地去把握动态变化信息是很困难的;另一方面,网络低带宽、 高延迟越来越成为限制网络并行计算发展和推广的瓶颈,为解决这个矛盾,人 们提出许多新的网络计算模型,移动a g e n t 就是在这种形势下提出的一种新的 分布式计算模型。 移动a g e n t 技术。咖是一种新型的分布式计算技术。2 0 世纪9 0 年代初, g e n e r a lm a g i c 公司在推出其商业系统t e l e s c r i p t 时第一次提出了移动 a g e n t 的概念,即一个能在异构网络环境中自主地从一台主机迁移到另一台主 机,并可与其它a g e n t 或资源交互的软件实体。移动a g e n t 是一类特殊的软 件a g e n t ,它除了具有软件a g e n t 的基本特性自治性、响应性、主动性 和推理性外,还具有移动性,主动代表用户完成指定的任务。 移动a g e n t 具有突出的优点,正因为如此,移动a g e n t 技术受到了来自 于世界范围内的工业界及学术界的重视。移动a g e n t 可以移动到网络中的各个 节点,因而可以充分地利用网络上的资源。不少专家预言,移动a g e n t 将成为 分布式计算模式的主流,其突出优点旧主要有以下几点: 1 有利于减轻网络负载;移动a g e n t 技术能较大程度地减轻网络上原始数 据的流量。它不需要像请求与应答结构那样在网络问频繁地传送数据;不需要 保持网络的始终连通,允许间断式的连接,提高了网络的利用率。分布式系统 通常依赖于通信协议,这些协议在完成给定任务的过程中涉及多次交互行为, 这将导致网络交通拥挤。移动a g e n t 可以将一个会话过程打包,然后将其派遣 到目的主机上进行本地交互。此外当进行远地主机的大量数据处理时,这些数 据不应在网络上传来传去,而应在本地被处理完成。理由很简单:应把计算移 动到数据上去进行,而不是把数据移动到计算中来,这一特点越是在通讯量大 的情况下越能体现出优越性。 2 有利于并行处理:移动a g e n t 在进行任务处理时可以动态地创建多个 a g e n t 使之并行工作,这就提高了效率并降低了任务的响应时间。 3 可以封装协议;当数据在分布式系统中进行交换时,每一台主机都有自 己的网络协议,该协议将对传出的数据进行编码,并对传入的数据进行解码。 但是,协议经常为满足新的效率和安全需要而改进,而实现该协议的代码升级 工作要么几乎不可能,要么相当困难。而移动a g e n t 能够直接移动到远地主机, 建立起一个基于私有规程的数据传输通道。 4 能以异步方式自主运行:通常,移动设备上的计算皆依赖于昂贵而脆弱 的网络连接,它要求在移动设备和固定网络之间建立持续的连接,这种要求从 经济和技术的角度来讲都不易实现。但这些任务可以嵌入到移动a g e n t 中去, 此后移动a g e n t 就可独立于生成它的进程异步自主操作了。移动设备则可在稍 后的时间里再通过连接来收回a g e n t 。 5 具有较强的应变能力:移动a g e n t 具有感知其运行环境,并对坏境变化 做出反应的能力。许多移动a g e n t 拥有在网络主机之间动态合理分布自身的独 特能力,比如按一定规则来维持解决某个特定问题的最优配置。 6 具有天然的异构性:分布式网络计算平台往往是异构的,由于移动a g e n t 第1 章前言 通常独立于计算机和传输层,而仅仅依赖于其运行环境,所以移动a g e n t 提供 了系统无缝集成的最优条件。 7 具有较强的坚定性和容错性:移动a g e n t 具有对非预期状态和事件做出 应变的能力,这使我们更容易创建坚定和容错性好的分布式系统。当关闭一台 主机时,所有正在该主机上运行的a g e n t 会得到警告,并有足够的时间移动到 另一台主机上继续运行。 将移动a g e n t 的思想引入到分布式计算系统中,对系统进行组织和设计, 这将在很大程度上解决以往分布式计算模式中的低带宽,高延迟问题,因此采 用移动a g e n t 技术进行分布式计算是一个值得探索的研究课题。 1 2 国内外研究现状和发展趋势 目前的分布式计算主要采用远程过程调用、进程迁移、c s 模式,移动代 码等技术。随着面向对象技术的发展日趋成熟,出现了多种模型,其中o m g 的 c o r b a o 一,m i c r o s o f t 的c o m d c o m 叫,s u n 的j a v a r m i ( e j b 是对r m i 的包 装和扩展) 是其中的主流。但这些模型都存在一定的局限性,最明显的就是 要求所有参与计算的节点在进行交互时,必须同时在网络中存在,如果某些所 需资源暂时无法访问到,则整个计算过程将失败。并且目前分布式系统通常依 赖于网络通信协议,在完成任务的过程中这些协议需要进行多次交互,从而很 容易导致网络拥塞。 而基于移动a g e n t 的分布计算模型就很好地解决了这些问题。在移动 a g e n t 模式下,客户机向服务器提交的不再是一些简单的请求,而是包含代码 和数据的移动对象。移动对象代表用户,按照“程序靠近数据”的原则,在服 务器间自主的移动,完成数据处理的任务。 移动a g e n t 的出现使得计算机之间的通信变成向其它计算机提供可执行 的计算过程,通过网络传送的消息也是包含计算过程及其所处状态的计算实体。 在移动a g e n t 计算模型中,计算过程及其相应状态在接收方计算机中完全代表 了发送方的所有请求,此时网络的可靠性变得不再那么重要,这是因为: 1 移动a g e n t 仅仅在移动时使用带宽。 2 移动a g e n t 在移动后即使此时已经失去了与创建者之间的网络连接仍 东北电力大学硕士学位论文 将继续执行。 移动a g e n t 可以封装一个完整的会话过程,然后自主移动到目的主机上去 进行本地交互。因此,如果一个客户机需要与网络上特定服务器进行大量的通 信,最好的办法就是实现一个使用移动a g e n t 的系统,该a g e n t 能够自动移 动到远程服务器上,执行计算任务并返回,这样可以减少网络拥塞。整个计算 过程中客户机没有必要在网络中存在,仅仅在移动a g e n t 返回时,客户机才需 要连接到网络上。 从9 0 年代初移动a g e n t 的概念被提出以来,移动a g e n t 技术一直受到业 界的广泛关注,并得到较快的发展。移动a g e n t 目前已经从理论探索进入到实 用阶段,涌现出了一系列较为成熟的开发平台和执行环境。考虑到移动a g e n t 本身需要对不同的软硬件环境进行支持,所以最好选择在一个解释性的、独立 于具体语言的平台上开发移动a g e n t 。j a v a 是目前开发移动a g e n t 的一门理 想语言,因为经过编译后的j a v a 二进制代码可以在任何具有j a v a 解释器的 系统上运行,具有很好的跨平台特性。 目前使用的移动a g e n t 系统大致可以分为三类:一类是基于传统解释语言 的,一类是基于j a v a 语言的,另一类则是基于c o r b a 平台的。下面介绍几个 典型的移动a g e n t 系统嗍,它们代表了当今移动a g e n t 技术的基本方向和潮 流: 1 g e n e r a lm a g i c 公司的o d y s s e y :作为移动a g e n t 系统专用语言的最 早尝试,g e n e r a lm a g i c 公司开发的t e l e s c r i p t 曾经在过去的几年里被广泛 采用。t e l e s c r i p t 是一种面向对象的解释性语言。它在开始出现时还是一个比 较成功的移动a g e n t 开发平台,其安全性和健壮性都比较好,执行效率也很高。 但随着j a v a 的迅速崛起及其跨平台特性的逐步完善,t e l e s c r i p t 的优势慢慢 消失,g e n e r a lm a g i c 公司开始改变其策略,开发了一个完全用j a v a 实现的 移动a g e n t 系统o d y s s e y ,它能够支持j a v ar m i ,m i c r o s o f td c o m ,以 及c o r b ai i o p 。o d y s s e y 继承了t e l e s c r i p t 的许多特性,是目前被广泛使 用的一个移动a g e n t 开发平台。 2 i b m 公司的a g l e t m “o :a g l e t 是最早基于j a v a 的移动a g e n t 开发 平台之一。a g l e t 的名字来源于a g e n t 和a p p l e t ,可以简单地将其看成具有 第l 章前言 a g e n t 行为的a p p l e t 对象。a g l e t 以线程的形式产生于一台机器,需要时可 以随时暂停正在执行的工作,并将整个a g l e t 分派到另一台机器上,然后继续 执行尚未完成的任务。从概念上讲,一个a g l e t 就是一个移动j a v a 对象,它 支持自动运行的思想,可以从一个基于a g l e t 的主机移动到其它支持a g l e t 的主机上。 a g l e t 构造了一个简单而全面的移动a g e n t 编程框架,为移动a g e n t 之 间的通信提供了动态而有效的交互机制,同时还具备一整套详细而易用的安全 机制,这一切使得移动a g e n t 的开发变得相对简单起来。 3 r e c u r s i o n 公司的v o y a g e r 嘲:v o y a g e r 可以看成是一个增强了的对象 请求代理( o r b ) ,它是一个纯j a v a 分布式计算平台,可用来迅速生成高性 能分布式应用程序,是代表当前技术水平的一个优秀的移动a g e n t 开发平台。 移动a g e n t 为设计和建造能很好地适合大规模网络动态环境的分布式应 用提供了一个新的方法。基于移动a g e n t 的分布式计算系统具有较好的互操作 性、扩展性、动态性和普遍性,但是由于基于移动a g e n t 的分布式计算技术的 各项支撑技术,包括移动a g e n t 技术本身,还处于研究和发展的阶段,加之涉 及的技术范围广、难度大,因而从总体上对其进行研究,进而形成分布式计算 应用的比较通用的整体开发框架并投入使用的例子还鲜见报道。在国内目前关 于这类系统的研究尚处于起步阶段,很多理论和技术仍处于探索阶段,新的问 题亟待解决,大量的方法和思想亟待研究与实现。因而开展基于移动a g e n t 的 分布式计算程序开发框架的研究是一项具有挑战性,同时也极有意义的工作。 1 3 本课题的主要工作和组织结构 1 3 1 本课题的主要工作 本课题的研究工作主要有六大部分: 1 移动a g e n t 系统的选择和平台的搭建:本文在分析比较了多种分布式计 算技术和分布式对象模型后,发现移动a g e n t 技术能较好地弥补其它技术和模 型的不足。由于i 肼a g l e t 是完全基于j a v a 的移动a g e n t 平台,故决定采 用i b ma g l e t 来搭建系统的分布式计算环境。 东北电力大学硕十学位论文 2 在i b ma g l e t 的基础上实现了一个适用于通用并行问题求解的计算环 境m a d p ( m o b i l ea g e n td e v e l o p m e n tp l a t f o r m ) 。目的是让用户透明的实 现分布式计算,即不必要求用户了解移动a g e n t 机制和a g l e t 的a p i 就可以 利用移动a g e n t 进行分布式计算。 3 在分析了一般并行数值计算程序的基本框架的基础上,提出了通用的并 行问题求解设计模式。在程序框架中,具有c r e a t o r 和w o r k e r 两个角色模型。 开发者只需要在框架结构下完成创建分解计算任务和执行任务的b e a n 组件, 而创建a g e n t 、进行调度、迁移代码的全过程由系统完成,并且组件具有更好 的重用性。 4 提出了通信与交互模型m e s s e n g e r ,参照p v m 和m p i 实现了p v m 的 基础通信原语。这是一个基于消息队列的通信模型,支持发送和广播原语,以 及异步的接收原语。 。 5 在系统中实现了一个简单的平均分配任务的调度模型,然后提出了一个 能够根据负载动态调度的调度模型的具体实现方案,并介绍了一个简单事务模 型。 6 在局域网内用高阶矩阵乘法对该环境进行验证,结果表明该框架能较好 地完成用户指定的任务,有效地提高了计算的效率。 1 3 2 本文的组织结构 本文共分为五个章节。 第1 章为引言,简要介绍了课题研究的背景、意义和国内外的研究现状, 然后介绍了本文的研究内容和组织结构。 第2 章比较全面地分析比较了传统的分布式计算技术和几种常见的分布式 对象模型。 第3 章系统地介绍了移动a g e n t 技术及移动a g e n t 平台a g l e t 的相关 理论。 第4 章是本文的核心部分,详细介绍了基于移动a g e n t 技术开发分布式 计算框架的设计与实现。本课题在i b m 推出的移动a g e n t 系统a g l e t 的基础 上实现了一个适用于通用并行问题求解的计算环境m a d p 。从通用并行问题求 第l 章前 言 解的设计样式、消息通信机制、调度策略模型、简单事务模型等四个具体方面 来详细分析系统的设计过程,并讨论实现中的技术细节问题。 第5 章给出了一个比较具体的分布式计算实例高阶矩阵乘法的设计与 实现,并对运行结果作了简要的说明。 最后是结论部分,主要对本文的研究结果加以总结并对研究的发展和迸一 步的工作加以展望。 东北电力大学硕士学位论文 第2 章分布式计算技术 分布式计算技术是指在网络计算平台上开发、部署、管理和维护以资源共 享和协同工作为主要目标的分布式应用系统。即开发者设计的应用必须在互连 计算机组成的网络上分散计算以减轻系统负担,这些应用必须对已有的资源进 行最优利用以满足业务的需求,从而达到性能、可扩展性、安全应用和维护等 方面的要求。 目前分布式计算技术有很多,本章主要对几种常见的分布式计算技术和分 布式对象模型做一简要介绍。 2 1 传统的分布式计算技术 通信网络的出现使得计算能力的远程使用成为可能。下面简要讨论已有的 几种分布式计算技术,并分析其各自的优缺点。 2 1 1 远程过程调用( r e m o t ep r o c e d u r ec a | i ,r p c ) 远程过程调用( r p c ) 是为缓解最初的消息传递模型编程的琐碎性而提出 的。r p c 支持本机的程序通过标准过程调用机制调用远程机的过程。调用r p c 的客户机实际上调用的是本地的桩,桩将过程名以及调用参数放入调用信息中 并将其发送给远程主机。远程机上服务器的桩接收到消息后,从中抽取过程名 和参数,然后调用相应的过程,在过程完成后,远程机的桩将结果发回给客户 机的桩,之后客户机的桩将结果返回给客户,但在通信过程中需要在远程和本 地间进行频繁的交互,而且这种调用必须是单向的。 2 1 2 远程求值( r e m o t ee v a i u a t i o n ,r e v ) 显然,远程过程调用正确执行的前提是被调用的过程事先存在。这个要求 限制了r p c 在大型分布式系统中的应用。在很多情况下,要调用的过程在远程 节点上并不存在,这就要求人们研究新的方式解决这个问题,远程求值“”方法 第2 章分布式计算技术 正是在这种情况下出现的,它具有较高的灵活性。它允许网络中的节点向远程 节点发送子程序和参数信息,远程节点启动该“子程序”。一些初始请求可由 该子程序发出,中间结果也由该子程序处理,而不需返回源节点,子程序只是 将最后的处理结果返回源节点。 2 1 3 客户服务器模式( c i e n t s e r v e r ,c s ) 分布式技术发展到今天,c s 模式成为主流技术。在c s 通信模型中,通 信的实体双方有固定的、预先定义好的角色:服务器提供服务,客户使用服务。 这种模式隐含了一种严格的依赖关系:客户依赖于服务器所提供的服务而工作。 客户发出服务请求,然后在服务器上完成任务,最后服务器将处理结果返回到 客户机。引入客户和服务器的角色,r p c 模式和r e v 模式都是c s 模式的一 种。 c s 模式存在着一些固有的缺陷,如果服务器不确切提供客户方所要求的 服务,比如它提供更为底层的服务,则客户就必须得通过一系列的远程调用来 获得其所需的服务,这就导致了服务响应的延迟和网络带宽的浪费。另外,当 客户请求较多时,服务器的效率会大大降低,客户请求的响应时间也会延长, 这主要是由计算环境中的处理器资源( 计算资源) 、软件资源和信息资源等都 集中在服务器上造成的。 2 1 4 移动代码( c o d e o n - d e m a n d ) 针对c s 结构中资源过于集中的缺点,c o d e - o n d e m a n d “”模式使用了代码 移动的技术,即在需要远程服务时,首先从远程获得该服务的代码。例如,主 机a 最初由于没有代码而无法执行任务,但网络中主机b 可提供所需要的代 码,这时a 就可以向b 申请获得该代码。一旦a 获得b 中的相应代码,a 就 同时拥有了代码资源和本地处理器资源,任务就可在a 中完成。与c s 模式 不同,a 无需知道远程主机( 如b ) 的情况,因为只需下载所需的代码即可。 c o d e o n d e m a n d 模式最典型的例子是j a v a 中的a p p l e t ( 应用小程序) 和 s e r v l e t ( 服务小程序) ,a p p l e t 从服务器下载到浏览器中在本地运行,而 s e r v l e t 则从本地上载到服务器( 常为w e b 服务器) 上在远程运行。 可移动代码的迁移只是程序代码的迁移,而并没有携带程序的运行状态和 数据等其它信息。另外,移动代码本身不是有名字的实体,它们相互之间不能 进行通信合作。因此,移动代码只适合简单的网络服务提供以及远程软件安装 等领域。 2 2 分布式对象模型 面向对象的分布式计算发展到现在已经日趋成熟,因为面向对象的分布式 计算的核心就是分布于环境中的对象,故面向对象的分布式计算技术具体体现 于分布式对象技术。分布式对象技术采用面向对象概念组织、管理网络计算、 支持面向对象的多层客户机服务器模型,可以在不同机器的对象间相互传递消 息,共同协作实现系统功能。目前,有多种分布式对象模型,其中o m g 的c o r b a 。 m i c r o s o f t 的c o m d c 0 m ,s u n 的j a v a 跏i ( e j b 是对跚i 的包装和扩展) 是其中的主流。 2 2 1c o r b a c o r b a ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,公共对象请求代 理体系结构) 是1 9 9 1 年由o m g ( 对象管理组织,o b j e c tm a n a g e m e n tg r o u p ) 提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和 协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象 重用。 c o r b a 以o r b 为基础,定义了一种与程序设计语言无关的分布式对象模型 和构件模型,可以在异构平台间实现对象互操作,能实现真正的跨平台。它采 用连接式基础对象模型,底层网络通信采用s o c k e t 机制。此外还提供了分布 和组装构件的方法,因此也可以看作是一种构件集成模型。基于c o r b a 的软件 具有良好的扩展性、开放性、集成性、移植性和复用性。在安全性上,c o r b a 提 供了验证、安全审计等多种机制,为网络安全提供了充分的保障。但c o r b a 没 有提供垃圾回收功能。目前,已有多个软件开发商提供了对c o r b a 的支持,其 代表软件有:i n p r i s e 的v i s i b r o k e r ,i o n a 的o r b i x 等。但与其它主流技 术相比,c o r b a 在软件开发商的支持程度和产品成熟度上要稍差一些。 第2 章分布式计算技术 2 2 2d o o m d c o m 是以l “i c r o s o f t 和d c e 为主提出的分布式对象模型,它源于动态数 据交换( d d e ) ,经历d d e - o l e - c o m 发展而来,c 叫是它的基础。而c o m + 是 c o m 、d c o m 和a c t i v e x 的最新扩展,是m i c r o s o f td n a 结构的基础。比较而 言它在实现上更加简便。与c o r b a 和j a v a r i i 中的对象模型不同,c o m 只支 持封装机制和接口继承,不支持实现继承。但c o m 组件可以有多个接口,通过 包含和聚合实现对象复用,并能以二进制形式发布。它的i d l 基于d c e ,与 c o r b a 不兼容且不提供向程序设计语言的映射。c o r b a 用接口仓库管理i d l 信 息并可以从本地和远程访问,c o m 用类型库管理i d l 信息,只能在本地访问。 与c o r b a 不同,c o m 提供了垃圾回收功能。d c o m 是c o m 在网络上的扩展,它 采用产生式基础对象模型,从根本上消除了本地和远程对象的差别。在d c o m 环 境中位于某一网络上的c o m 对象能和另一个网络上的c o m 对象进行通信,其 底层通信机制是r p c ,并支持多种通信协议,如t c p i p ,i p x s p x ,h t t p 等。 d c o m 没有提供良好的安全机制,许多有安全性的问题要由用户来处理。a c t i v e x 遵循c o m 和d o c m 规范,是一种开放技术的集合,对控件、文档、脚本处理等 都提供支持。 d c 0 m 的主要支持者是m i c r o s o f t ,同时d e c ,p o w e r s o f t 等公司也对它 提供支持。d c o m 与c o r b a 一样同程序设计无关,有较好的集成性和扩展性, 产品成熟度较其它主流技术要高,但可移植性较差,主要是在微软的操作系统 上运行。 ir 唧p l 聃 l lo x i d 嘲i l 啦瓢一| 图2 id c o m 体系结构 东北电力大学硕士学位论文 2 2 3j a v a r m i j a v a r m i 是s u n 公司的提出的分布式对象模型,它与c o r b a 很相似,但 局限于j a v a 语言,采用连接式基础对象模型。j a v a 删i 能使不同j a v a 虚拟 机上的对象实现互操作,利用r m i ,某台j a v a 虚拟机上的对象可以像调用本 地机上的方法一样调用远程机上对象的方法,j a v a 雕1 支持对象可持续性和自 动垃圾回收机制。基于j a v a 剐i 的软件有较好的平台无关性和可移植性,同 时还可以实现在i n t e r n e t 上的移动执行。在安全性方面,它采用沙箱模型, 网络安全性较高。 j a v a r m i 用面向对象的思想继承和发展了r p c ,p , m i 提供了纯j a v a 的分 布式应用系统的开发方法。r m i 可以使用注册器来获得远程对象的应用,服务 器调用注册器把一个名字和远程绑定在一起,客户机通过名字从服务器注册查 找远程对象,r m i 系统也可以利用w e b 服务器下载对象字节码到客户机以及客 户机上载对象字节码到服务器。和其它类型的应用系统样,用j a v a p 珈i 开 发的分布式应用系统也由接口和类组成,接口声明了方法,类实现了接口中定 义的方法,在一个分布式系统中,应用系统的某些实现部分可以位于不同的机 器上。r m i 的一个主要特色是其动态装载类的字节码的能力,一个对象的类型 和行为可以被传递到远程的虚拟机上。蹦i 传递对象时不会改变一个对象的行 为,系统可以在运行时确定所执行任务的具体内容。 支持j a y a 跚i 的主要厂商是s u n ,其产品成熟度较其它主流技术要差一 些,j a v a r b i i 和c o r b a 有良好的互补性,两者的结合是未来的趋势。目前 j a v a 2 同时提供了对两者的支持,在j d k i 3 及以后的版本中,跚i 有了新的 发展r m i - i o p ,它在c l i e n t 和s e r v e r 问通信使用的是r m i 1 0 p 协议, 而不是使用传统的r m i 所使用的j r 胛协议,在s u n 引以为自豪的e j b 技术 中,也是使用i 瑚i - i o p 协议,配合使用j n d i 技术,j 2 e e 应用可以和c o r b a 实 现无缝对接。 上述三种主流技术虽然互有差别,但它们之间也有紧密的联系。a c t i v e x 的 底层是与j a v a 有许多相同之处的c 0 m d c o m ,m i c r o s o f t 提供了j a v a 和 a c t i v e x 的集成,利用v i s u a lj + + 中可以在j a v a 程序中加入a c t i v e x 控件。 第2 章分布式计算技术 v i s u a lj + + 中有一个j v m 的参考实现,它本身也是一个c o m 对象,通过它, w i n d o w s 平台可以像操作a c t i v e x 控件一样操纵j a v a 类。而且d c 0 m 与程序 设计语言无关,可以为j a v a 提供分布能力,将j a v aa p p l e t 作为a c t i v e x 控 件对待,使j a v aa p p l e t 可以和i n t e r n e t 上的其它组件通信。c o m 和c o r b a 的对象实例都具有全局统一的i d ,c o r b a 和d c o m 都对本地和远程的静态方法 调用提供支持,其接口均与实现相分离,并可用i d l 描述。c o r b a 提供了向多 种程序设计语言的映射,其中包括j a v a 。c o r b a 虽未提供对对象可持续性的 支持,但它可以很方便地和j a v a 结合,一方面扩充了j a v a 的功能,另一方 面可以充分利用j a v a 的可移植代码技术。总之,各项技术有同有异,其标准 也是一个值得研究的课题。 分布式计算技术发展至今,一个比较明显的趋势是智能化不断升级,如传 统的d c e 和r m i 技术,最初都由人工控制安全、事务、序列化等细节,而后 来的c o r b a 甚至e j b 技术都由一定的框架来实现( 也称为相应的服务器和设 旋) 。随着中间件技术的发展,分布式计算的目标是智能的、可热拔插的分布式 计算。近年来的软件a g e n t 技术特别是移动a g e n t 就在这些方面有比较大的 突破。 2 3 本章小结 本章首先介绍了分布式计算技术的概念,然后重点介绍了几种传统的分布式 计算技术,并分析比较了几种常见的分布式对象模型,为我们下一章分析移动 a g e n t 技术用于分布式计算作了铺垫。 东北电力大学硕十学位论文 第3 章移动a g e n t 技术 a g e n t 技术的诞生和发展是人工智能技术( a i ) 和网络技术发展的必然结 果。它是指模拟人类的行为与关系、具有一定智能并能自主运行和提供相应服 务的程序。从2 0 世纪6 0 年代起,传统的a i 技术开始致力于对知识表达、推 理、机器学习等技术的研究,其主要成果是专家系统。作为人工智能的一个分 支,a i 技术理论的研究成果使应用程序有了初步的面向目标的特征,即应用程 序具有了某种意义上的主动性,而人工智能的另一个分支决策理论和方法 则使应用程序具有了自主判断和选择行为的能力。随着网络技术的发展,可以 让a g e n t 在网络中移动并执行,完成某些功能,这就是移动a g e n t 的思想。 3 1 移动a g e n t 技术 2 0 世纪9 0 年代g e n e r a lm a g i c 公司在推出商业系统t e l e s c r i p t 时提出 了移动a g e n t 的概念,简单的说,移动a g e n t 是一个能在异构网络上自主地 从一台主机迁移到另一台主机,并可与其它a g e n t 或资源交互的软件实体。实 际上它是a g e n t 技术与分布式计算技术的结合。 3 1 1 移动a g e n t 概述 移动a g e n t 技术是一门新兴的技术,其基本思想是让a g e n t 在网络中移 动并完成某项任务。移动a g e n t 可以自主地在异构的网络上按照所定的路线移 动,寻找合适的资源,利用和这些资源同处一台主机和网络的优势,处理和使 用这些资源,代表用户完成特定的任务。 3 1 2 移动a g e n t 的技术特征 移动a g e n t 能够在异构的网络节点间移动,带来了许多新的技术特点,在 以网络为中心的计算环境中为许多应用领域提供了新的解决问题的方法。它需 要与服务设施及其它移动a g e n t 协商来提供或获取服务以完成全局目标,因此 移动a g e n t 需要具有以下技术特征“”: 第3 章移动a g e n t 技术 1 异步计算:异步计算提供不同时间和空间范围内的应用互操作机制。传 统的分布式系统一般基于同步方式,只有特定的应用程序支持有限的异步交互 ( 如电子邮件) 。移动a g e n t 引入了完整的异步计算环境,可以支持异构计 算机软件、硬件环境。用户可以自己创建a g e n t ,异步地与其它网络节点上的 a g e n t 交互,任务完成后将结果反馈给创建者。 2 资源优化:传送大量的原始信息不但费时而且容易阻塞网络。移动a g e n t 能够优化网络和计算资源,实现负载均衡。对于客户方,只需要a g e n t 的创建 与接送设施,而不必为建立网络以及数据库连接投入大量资源;服务方利用 a g e n t 的异步性能够分析请求间的逻辑相关性,将接纳的移动a g e n t 分组统一 处理;在网络使用方面,移动a g e n t 减少了网络连接耗费的带宽,能够根据任 务目标、网络通信能力和服务器负载等因素动态规划异步操作的能力;智能化 路由策略能够优化路径、降低网络延迟,避免了资源访问的盲目性。 3 移动计算:移动计算受到处理能力、网络连接质量和代价、能源及安全 性各方面的限制,缓冲管理、资源分配与撤销算法等传统方法难以提供根本的 解决方案。移动a g e n t 技术避开了移动计算中的网络和处理能力瓶颈,将交互 与信息处理转移到具有很强处理能力和安全性的主机上执行,代表用户完成信 息查询、数据交换等多种任务。 4 并行任务求解:为完成某项任务,通过将任务分解并分配给多个移动 a g e n t ,使它们同时在相同或不同节点上运行。利用其并行性、移动性和信息 处理能力能够实现大规模非确定性任务的求解。特殊的安全机制使得移动 a g e n t 的安全问题显得非常突出,它的安全机制主要有两方面:一方面保证自 身不受到攻击,另一方面保证自身是非恶性的。 此外,因为移动a g e n t 的代码和状态要在网络中传输,因此规模必须限制 在中小范围内,否则会丧失节约网络带宽这一优势。而且应该有一种在异构平台 上具有相同语义的语言来保证移动a g e n t 行为的正确性。在a g e n t 移动的过 程中,还需要保存代码和当前运行状态以便在目标节点继续运行。 总之,移动a g e n t 具有动态执行、移动计算、异步计算、并行计算和智能 化路由等技术特点,能够解决传统的c s 计算模式无法解决的问题。它能够在 一个单一的通用程序模型结构下,有效地、健壮地实现大规模的分布式应用。 东北电力大学硕十学位论文 3 1 3 移动a g e n t 的体系结构 移动a g e n t 可以在客户机和服务器之间双向移动,所以移动a g e n t 的体 系结构“埘通常包含移动a g e n t 和移动a g e n ts e r v e r 两部分。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小麦进口代理业务创新创业项目商业计划书
- 宠物医疗创新创业项目商业计划书
- 水果生态应用创新创业项目商业计划书
- 2025年5G技术的工业物联网应用探索
- 2025义务教育数学新课标课程标准考试试真题与答案
- 2025年麻精药品规范管理培训试题(附答案)
- 厦门工程实验室方案编制(3篇)
- 路桥工程降水井施工方案(3篇)
- 图书馆类课件
- 2025年中医药现代化进程在布基纳法索市场拓展前景研究报告
- 股权转让担保责任及权益保护合同
- 2025医院防控试题及答案
- 禁毒办案知识培训课件
- 物业收费知识培训
- 专题22.6二次函数与几何综合2025~2026学年九年级数学上册(人教版)
- 2025-2026学年第一学期校园“1530”安全教育记录表
- 侵犯公民个人信息罪课件
- 2025-2026学年译林版(三起)(2024)小学英语三年级上册教学计划及进度表
- 2025年注册安全工程师考试(初级)安全生产法律法规试卷及答案
- 2025-2030中国综合能源服务行业发展状况与竞争格局分析报告
- 建设单位与总包单位实名制管理协议
评论
0/150
提交评论